From a60fbf2ab37b3686d51e0b7484c0d7b7fcec71aa Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Thu, 1 Jun 2023 17:51:45 +0000 Subject: [PATCH 001/232] doc: mark Node.js 19 as End-of-Life PR-URL: https://github.com/nodejs/node/pull/48283 Reviewed-By: Moshe Atlow Reviewed-By: Debadree Chatterjee Reviewed-By: Antoine du Hamel Reviewed-By: Rich Trott Reviewed-By: Luigi Pinca Reviewed-By: Darshan Sen Reviewed-By: Yagiz Nizipli --- CHANGELOG.md | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f73ce51e8cf583..4d411d570e18c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ Select a Node.js version below to view the changelog history: * [Node.js 20](doc/changelogs/CHANGELOG_V20.md) **Long Term Support** -* [Node.js 19](doc/changelogs/CHANGELOG_V19.md) **Current** +* [Node.js 19](doc/changelogs/CHANGELOG_V19.md) End-of-Life * [Node.js 18](doc/changelogs/CHANGELOG_V18.md) Long Term Support * [Node.js 17](doc/changelogs/CHANGELOG_V17.md) End-of-Life * [Node.js 16](doc/changelogs/CHANGELOG_V16.md) End-of-Life @@ -30,7 +30,6 @@ release. - @@ -52,21 +51,6 @@ release. 20.0.0
-
20 (LTS)19 (Current) 18 (LTS) 16 (LTS)
-19.9.0
-19.8.1
-19.8.0
-19.7.0
-19.6.1
-19.6.0
-19.5.0
-19.4.0
-19.3.0
-19.2.0
-19.1.0
-19.0.1
-19.0.0
-
18.15.0
18.14.2
18.14.1
From 61b4afb7ddc08e6d9f1e49b1c12f81528ec03a29 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 22 Oct 2023 16:20:48 +0100 Subject: [PATCH 002/232] deps: update undici to 5.26.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50274 Reviewed-By: Tobias Nießen Reviewed-By: Richard Lau Reviewed-By: Matteo Collina --- .../src/docs/api/DispatchInterceptor.md | 2 +- deps/undici/src/lib/api/api-stream.js | 10 +- deps/undici/src/lib/api/readable.js | 2 +- deps/undici/src/lib/client.js | 4 +- deps/undici/src/package-lock.json | 15026 ++++++++++++++++ deps/undici/src/package.json | 10 +- deps/undici/src/scripts/esbuild-build.mjs | 24 - deps/undici/undici.js | 514 +- .../maintaining/maintaining-dependencies.md | 6 +- src/undici_version.h | 2 +- 10 files changed, 15484 insertions(+), 116 deletions(-) create mode 100644 deps/undici/src/package-lock.json delete mode 100644 deps/undici/src/scripts/esbuild-build.mjs diff --git a/deps/undici/src/docs/api/DispatchInterceptor.md b/deps/undici/src/docs/api/DispatchInterceptor.md index 652b2e86bf9920..7dfc260e32a9c8 100644 --- a/deps/undici/src/docs/api/DispatchInterceptor.md +++ b/deps/undici/src/docs/api/DispatchInterceptor.md @@ -1,4 +1,4 @@ -#Interface: DispatchInterceptor +# Interface: DispatchInterceptor Extends: `Function` diff --git a/deps/undici/src/lib/api/api-stream.js b/deps/undici/src/lib/api/api-stream.js index 3a8e71a5730eee..c571a6f79a7d06 100644 --- a/deps/undici/src/lib/api/api-stream.js +++ b/deps/undici/src/lib/api/api-stream.js @@ -104,6 +104,10 @@ class StreamHandler extends AsyncResource { { callback, body: res, contentType, statusCode, statusMessage, headers } ) } else { + if (factory === null) { + return + } + res = this.runInAsyncScope(factory, null, { statusCode, headers, @@ -152,7 +156,7 @@ class StreamHandler extends AsyncResource { onData (chunk) { const { res } = this - return res.write(chunk) + return res ? res.write(chunk) : true } onComplete (trailers) { @@ -160,6 +164,10 @@ class StreamHandler extends AsyncResource { removeSignal(this) + if (!res) { + return + } + this.trailers = util.parseHeaders(trailers) res.end() diff --git a/deps/undici/src/lib/api/readable.js b/deps/undici/src/lib/api/readable.js index 508fbdef928618..d106568cd4bad1 100644 --- a/deps/undici/src/lib/api/readable.js +++ b/deps/undici/src/lib/api/readable.js @@ -268,7 +268,7 @@ function consumeEnd (consume) { pos += buf.byteLength } - resolve(dst) + resolve(dst.buffer) } else if (type === 'blob') { if (!Blob) { Blob = require('buffer').Blob diff --git a/deps/undici/src/lib/client.js b/deps/undici/src/lib/client.js index 065fb563380dcc..00f4467cc8b718 100644 --- a/deps/undici/src/lib/client.js +++ b/deps/undici/src/lib/client.js @@ -1070,7 +1070,9 @@ function onParserTimeout (parser) { function onSocketReadable () { const { [kParser]: parser } = this - parser.readMore() + if (parser) { + parser.readMore() + } } function onSocketError (err) { diff --git a/deps/undici/src/package-lock.json b/deps/undici/src/package-lock.json new file mode 100644 index 00000000000000..eb929e548c2d86 --- /dev/null +++ b/deps/undici/src/package-lock.json @@ -0,0 +1,15026 @@ +{ + "name": "undici", + "version": "5.26.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "undici", + "version": "5.26.4", + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "devDependencies": { + "@sinonjs/fake-timers": "^11.1.0", + "@types/node": "^18.0.3", + "abort-controller": "^3.0.0", + "atomic-sleep": "^1.0.0", + "chai": "^4.3.4", + "chai-as-promised": "^7.1.1", + "chai-iterator": "^3.0.2", + "chai-string": "^1.5.0", + "concurrently": "^8.0.1", + "cronometro": "^1.0.5", + "delay": "^5.0.0", + "dns-packet": "^5.4.0", + "docsify-cli": "^4.4.3", + "form-data": "^4.0.0", + "formdata-node": "^4.3.1", + "https-pem": "^3.0.0", + "husky": "^8.0.1", + "import-fresh": "^3.3.0", + "jest": "^29.0.2", + "jsdom": "^22.1.0", + "jsfuzz": "^1.0.15", + "mocha": "^10.0.0", + "p-timeout": "^3.2.0", + "pre-commit": "^1.2.2", + "proxy": "^1.0.2", + "proxyquire": "^2.1.3", + "semver": "^7.5.4", + "sinon": "^16.1.0", + "snazzy": "^9.0.0", + "standard": "^17.0.0", + "table": "^6.8.0", + "tap": "^16.1.0", + "tsd": "^0.29.0", + "typescript": "^5.0.2", + "wait-on": "^7.0.1", + "ws": "^8.11.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.19.23", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.19.23.tgz", + "integrity": "sha512-ulkCYfFbYj01ie1MDOyxv2F6SpRN1TOj7fQxbP07D6HmeR+gr2JLSmINKjga2emB+b1L2KGrFKBTc+e00p54nw==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", + "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsd/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@tsd/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-VtjHPAKJqLJoHHKBDNofzvQB2+ZVxjXU/Gw6INAS9aINLQYVsxfzrQ2s84huCeYWZRTtrr7R0J7XgpZHjNwBCw==", + "dev": true, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.3.tgz", + "integrity": "sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.6", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.6.tgz", + "integrity": "sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.3.tgz", + "integrity": "sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.3.tgz", + "integrity": "sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/escodegen": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz", + "integrity": "sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/esprima": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/esprima/-/esprima-4.0.5.tgz", + "integrity": "sha512-i1/wCCoHMGLSfEn68SZvao+ICYR7clqRfUAiCkxzqB7DuOMLVAgiiAcxSixtY7NukBnbQNDt5C1zmaLqCX8jDw==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/estraverse": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/estraverse/-/estraverse-0.0.6.tgz", + "integrity": "sha512-ZwPw+fR4vniKCn94+Qtn4dKeew/5tFaTrwaEViLg5Ah/pSASj/D2taHo2RSbGIPWEPuD9DqyVtLGGT2X4OR5hQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz", + "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz", + "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz", + "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz", + "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.18.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", + "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz", + "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.29", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.29.tgz", + "integrity": "sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz", + "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==", + "dev": true + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acquerello": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/acquerello/-/acquerello-1.0.12.tgz", + "integrity": "sha512-6yCYGUNctkYqF7DLmm0D/CxlRmM/OrzyuHOU+mbaO6VRxHmRg4EV0phvyBexRt6jTyDtEQIb09YFiwu5LExXsA==", + "dev": true, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "dependencies": { + "default-require-extensions": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "dev": true, + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/args/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/args/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/args/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/args/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/args/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-hook-domain": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-2.0.4.tgz", + "integrity": "sha512-14LjCmlK1PK8eDtTezR6WX8TMaYNIzBIsd2D1sGoGjgx0BuNMMoSdk7i/drlbtamy0AWv9yv2tkB+ASdmeqFIw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-auth-parser": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/basic-auth-parser/-/basic-auth-parser-0.0.2.tgz", + "integrity": "sha512-Y7OBvWn+JnW45JWHLY6ybYub2k9cXCMrtCyO1Hds2s6eqClqWhPnOQpgXUPjAiMHj+A8TEPIQQ1dYENnJoBOHQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bind-obj-methods": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-3.0.0.tgz", + "integrity": "sha512-nLEaaz3/sEzNSyPWRsN9HNsqwk1AUyECtGj+XwGdIi3xABnEqecvXtIJ0wehQXuuER5uZ/5fTs2usONgYjG+iw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", + "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", + "dev": true, + "dependencies": { + "hasha": "^3.0.0", + "make-dir": "^2.0.0", + "package-hash": "^3.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/caching-transform/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/caching-transform/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001551", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001551.tgz", + "integrity": "sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chai-iterator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/chai-iterator/-/chai-iterator-3.0.2.tgz", + "integrity": "sha512-7ZKEmBJRNSYUBMK0QC1sTzyhHHS67d1R3W3uu9MdehvPPzOEOrtmI6lmTO3CxiuMbeEEDozF1pnlEMraxKXLcg==", + "dev": true, + "engines": { + "node": ">=6.0" + }, + "peerDependencies": { + "chai": "4.x" + } + }, + "node_modules/chai-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.5.0.tgz", + "integrity": "sha512-sydDC3S3pNAQMYwJrs6dQX0oBQ6KfIPuOZ78n7rocW0eJJlsHPh2t3kwW7xfwYA/1Bf6/arGtSUo16rxR2JFlw==", + "dev": true, + "peerDependencies": { + "chai": "^4.1.2" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "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/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "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/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/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect-livereload": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.6.1.tgz", + "integrity": "sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cp-file": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", + "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cronometro": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/cronometro/-/cronometro-1.1.5.tgz", + "integrity": "sha512-uotkltVBg4WLAeCgbSsLhqpEyvYTn1J++bYcsq0i/RPNMHkMp4sN/7Hx+0O3UaCqIWJ4AG1dNrzDSkzt69jwQQ==", + "dev": true, + "dependencies": { + "acquerello": "^1.0.12", + "hdr-histogram-js": "^3.0.0", + "table": "^6.8.1" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "dev": true, + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/data-urls": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha512-B0n2zDIXpzLzKeoEozorDSa1cHc1t0NjmxP0zuAxbizNU2MBqYJJKYXrrFdKuQliojXynrxgd7l4ahfg/+aA5g==", + "dev": true, + "dependencies": { + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-require-extensions/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/docsify": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/docsify/-/docsify-4.13.1.tgz", + "integrity": "sha512-BsDypTBhw0mfslw9kZgAspCMZSM+sUIIDg5K/t1hNLkvbem9h64ZQc71e1IpY+iWsi/KdeqfazDfg52y2Lmm0A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "marked": "^1.2.9", + "medium-zoom": "^1.0.6", + "opencollective-postinstall": "^2.0.2", + "prismjs": "^1.27.0", + "strip-indent": "^3.0.0", + "tinydate": "^1.3.0", + "tweezer.js": "^1.4.0" + } + }, + "node_modules/docsify-cli": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/docsify-cli/-/docsify-cli-4.4.4.tgz", + "integrity": "sha512-NAZgg6b0BsDuq/Pe+P19Qb2J1d+ZVbS0eGkeCNxyu4F9/CQSsRqZqAvPJ9/0I+BCHn4sgftA2jluqhQVzKzrSA==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "connect": "^3.6.0", + "connect-history-api-fallback": "^1.6.0", + "connect-livereload": "^0.6.0", + "cp-file": "^7.0.0", + "docsify": "^4.12.2", + "docsify-server-renderer": ">=4.10.0", + "enquirer": "^2.3.6", + "fs-extra": "^8.1.0", + "get-port": "^5.0.0", + "livereload": "^0.9.2", + "lru-cache": "^5.1.1", + "open": "^6.4.0", + "serve-static": "^1.12.1", + "update-notifier": "^4.1.0", + "yargonaut": "^1.1.2", + "yargs": "^15.3.0" + }, + "bin": { + "docsify": "bin/docsify" + }, + "engines": { + "node": ">= 10", + "npm": ">= 6" + } + }, + "node_modules/docsify-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/docsify-cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/docsify-cli/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/docsify-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/docsify-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/docsify-cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/docsify-cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/docsify-cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/docsify-cli/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docsify-cli/node_modules/wrap-ansi/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/docsify-cli/node_modules/wrap-ansi/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/docsify-cli/node_modules/wrap-ansi/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/docsify-cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/docsify-cli/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docsify-cli/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/docsify-server-renderer": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/docsify-server-renderer/-/docsify-server-renderer-4.13.1.tgz", + "integrity": "sha512-XNJeCK3zp+mVO7JZFn0bH4hNBAMMC1MbuCU7CBsjLHYn4NHrjIgCBGmylzEan3/4Qm6kbSzQx8XzUK5T7GQxHw==", + "dev": true, + "dependencies": { + "debug": "^4.3.3", + "docsify": "^4.12.4", + "node-fetch": "^2.6.6", + "resolve-pathname": "^3.0.0" + } + }, + "node_modules/docsify-server-renderer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/docsify-server-renderer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.563", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.563.tgz", + "integrity": "sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-config-standard-jsx": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-11.0.0.tgz", + "integrity": "sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^8.8.0", + "eslint-plugin-react": "^7.28.0" + } + }, + "node_modules/eslint-formatter-pretty": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz", + "integrity": "sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.2.13", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "eslint-rule-docs": "^1.1.5", + "log-symbols": "^4.0.0", + "plur": "^4.0.0", + "string-width": "^4.2.0", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-rule-docs": { + "version": "1.1.235", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz", + "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "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" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha512-inRWzRY7nG+aXZxBzEqYKB3HPgwflZRopAjDCHv0whhRx+MTUr1ei0ICZUypdyE0HRm4L2d5VEcIqLD6yl+BFA==", + "dev": true + }, + "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/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/figlet": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.6.0.tgz", + "integrity": "sha512-31EQGhCEITv6+hi2ORRPyn3bulaV9Fl4xOdR169cBzH/n1UqcxsiSB/noo6SJdD7Kfb1Ljit+IgR1USvF/XbdA==", + "dev": true, + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", + "dev": true, + "dependencies": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/findit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findit/-/findit-2.0.0.tgz", + "integrity": "sha512-ENZS237/Hr8bjczn5eKuBohLgaD0JyUd0arxretR1f9RO46vZHA1b2y0VorgGV3WaOT3c+78P8h7v4JGJ1i/rg==", + "dev": true + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha512-3TOY+4TKV0Ml83PXJQY+JFQaHNV38lzQDIzzXYg1kWdBLenGgoZhAs0CKgzI31vi2pWEpQMq/Yi4bpKwCPkw7g==", + "dev": true, + "dependencies": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "node_modules/foreground-child/node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/foreground-child/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/foreground-child/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/foreground-child/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dev": true, + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-loop": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-2.0.1.tgz", + "integrity": "sha512-ktIR+O6i/4h+j/ZhZJNdzeI4i9lEPeEK6UPR2EVyTVBqOwcU3Za9xYKLH64ZR9HmcROyRrOkizNyjjtWJzDDkQ==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "dependencies": { + "ini": "1.3.7" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", + "integrity": "sha512-w0Kz8lJFBoyaurBiNrIvxPqr/gJ6fOfSkpAPOepN3oECqGJag37xPbOv57izi/KP8auHgNYxn5fXtAb+1LsJ6w==", + "dev": true, + "dependencies": { + "is-stream": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasha/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-3.0.0.tgz", + "integrity": "sha512-/EpvQI2/Z98mNFYEnlqJ8Ogful8OpArLG/6Tf2bPnkutBVLIeMVNHjk1ZDfshF2BUweipzbk+dB1hgSB7SIakw==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.19.21", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/https-pem": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/https-pem/-/https-pem-3.0.0.tgz", + "integrity": "sha512-JqYVRTpk1WeXziwBaTX6eyXod6Dt70d/kehtY3DR6ygl+11XgcksTjSl4NjZbNCKK3rpTB1qH9hnu75RSOFUWQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "selfsigned": "^2.0.1" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "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/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "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", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/inversify": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.1.1.tgz", + "integrity": "sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==", + "dev": true + }, + "node_modules/irregular-plurals": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz", + "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "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/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "dependencies": { + "append-transform": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-1.4.2.tgz", + "integrity": "sha512-GHeGTmnuaHnvS+ZctRB01bfxARuu9wW83ENbuiweu07SFcVlZrJpcshSre/keGT7YGBhLHg/+rXCNSrsEHKU4Q==", + "dev": true, + "dependencies": { + "cliui": "^7.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/joi": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsfuzz": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/jsfuzz/-/jsfuzz-1.0.15.tgz", + "integrity": "sha512-NjzL5VD/AXTfVGfCyigbXuuGh+PLbVRnLSQQM0m8SL6hiBGMclm7ylAAxQZdNhE706YWCEBh0RzfTZl+zEnlMg==", + "dev": true, + "dependencies": { + "@types/escodegen": "^0.0.6", + "@types/esprima": "^4.0.2", + "@types/estraverse": "^0.0.6", + "@types/estree": "^0.0.39", + "deep-equal": "^1.1.0", + "escodegen": "^1.12.0", + "esprima": "^4.0.1", + "estraverse": "^4.3.0", + "inversify": "^5.0.1", + "nyc": "^14.1.1", + "pidusage": "^2.0.17", + "reflect-metadata": "^0.1.13", + "yargs": "^14.2.0" + }, + "bin": { + "jsfuzz": "build/src/index.js" + } + }, + "node_modules/jsfuzz/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsfuzz/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/jsfuzz/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jsfuzz/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/jsfuzz/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/jsfuzz/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsfuzz/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jsfuzz/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsfuzz/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsfuzz/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/jsfuzz/node_modules/yargs": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "node_modules/jsfuzz/node_modules/yargs-parser": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz", + "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libtap": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.1.tgz", + "integrity": "sha512-S9v19shLTigoMn3c02V7LZ4t09zxmVP3r3RbEAwuHFYeKgF+ESFJxoQ0PMFKW4XdgQhcjVBEwDoopG6WROq/gw==", + "dev": true, + "dependencies": { + "async-hook-domain": "^2.0.4", + "bind-obj-methods": "^3.0.0", + "diff": "^4.0.2", + "function-loop": "^2.0.1", + "minipass": "^3.1.5", + "own-or": "^1.0.0", + "own-or-env": "^1.0.2", + "signal-exit": "^3.0.4", + "stack-utils": "^2.0.4", + "tap-parser": "^11.0.0", + "tap-yaml": "^1.0.0", + "tcompare": "^5.0.6", + "trivial-deferred": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/libtap/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + }, + "bin": { + "livereload": "bin/livereload.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/livereload-js": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz", + "integrity": "sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==", + "dev": true + }, + "node_modules/livereload/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", + "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/medium-zoom": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.0.8.tgz", + "integrity": "sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA==", + "dev": true + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "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", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", + "dev": true + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true + }, + "node_modules/nise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/nyc": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", + "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "caching-transform": "^3.0.2", + "convert-source-map": "^1.6.0", + "cp-file": "^6.2.0", + "find-cache-dir": "^2.1.0", + "find-up": "^3.0.0", + "foreground-child": "^1.5.6", + "glob": "^7.1.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "merge-source-map": "^1.1.0", + "resolve-from": "^4.0.0", + "rimraf": "^2.6.3", + "signal-exit": "^3.0.2", + "spawn-wrap": "^1.4.2", + "test-exclude": "^5.2.3", + "uuid": "^3.3.2", + "yargs": "^13.2.2", + "yargs-parser": "^13.0.0" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/nyc/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/nyc/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/nyc/node_modules/cp-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", + "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^2.0.0", + "nested-error-stacks": "^2.0.0", + "pify": "^4.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nyc/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/nyc/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/nyc/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/istanbul-reports": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nyc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nyc/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/nyc/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/nyc/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nyc/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/test-exclude": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", + "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "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/open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/own-or": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz", + "integrity": "sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==", + "dev": true + }, + "node_modules/own-or-env": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.2.tgz", + "integrity": "sha512-NQ7v0fliWtK7Lkb+WdFqe6ky9XAzYmlkXthQrBbzlYbmFKoAYbDDcwmOm6q8kOuwSRXW8bdL5ORksploUJmWgw==", + "dev": true, + "dependencies": { + "own-or": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", + "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^3.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", + "integrity": "sha512-2MXDNZC4aXdkkap+rBBMv0lUsfJqvX5/2FiYYnfCnorZt3Pk06/IOR5KeaoghgS2w07MLWgjbsnyaq6PdHn2LQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pre-commit": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", + "integrity": "sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "spawn-sync": "^1.0.15", + "which": "1.2.x" + } + }, + "node_modules/pre-commit/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/pre-commit/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/pre-commit/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pre-commit/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pre-commit/node_modules/which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha512-16uPglFkRPzgiUXYMi1Jf8Z5EzN1iB4V0ZtMXcHZnwsBtQhhHeCqoWw7tsUY42hJGNDWtUsVLTjakIa5BgAxCw==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/pre-commit/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/proxy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/proxy/-/proxy-1.0.2.tgz", + "integrity": "sha512-KNac2ueWRpjbUh77OAFPZuNdfEqNynm9DD4xHT14CccGpW8wKZwEkN0yjlb7X9G9Z9F55N0Q+1z+WfgAhwYdzQ==", + "dev": true, + "dependencies": { + "args": "5.0.1", + "basic-auth-parser": "0.0.2", + "debug": "^4.1.1" + }, + "bin": { + "proxy": "bin/proxy.js" + } + }, + "node_modules/proxy/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/proxy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/proxyquire": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", + "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", + "dev": true, + "dependencies": { + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.1", + "resolve": "^1.11.1" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "dev": true + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "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/sinon": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.1.3.tgz", + "integrity": "sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.3.0", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/snazzy": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/snazzy/-/snazzy-9.0.0.tgz", + "integrity": "sha512-8QZmJb11OiYaUP90Nnjqcj/LEpO8CLgChnP87Wqjv5tNB4djwHaz27VO2usSRR0NmViapeGW04p0aWAMhxxLXg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "chalk": "^4.1.0", + "inherits": "^2.0.4", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "standard-json": "^1.1.0", + "strip-ansi": "^6.0.0", + "text-table": "^0.2.0" + }, + "bin": { + "snazzy": "bin/cmd.js" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, + "node_modules/spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, + "node_modules/spawn-wrap": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", + "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", + "dev": true, + "dependencies": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, + "node_modules/spawn-wrap/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/standard/-/standard-17.1.0.tgz", + "integrity": "sha512-jaDqlNSzLtWYW4lvQmU0EnxWMUGQiwHasZl5ZEIwx3S/ijZDjZOzs1y1QqKwKs5vqnFpGtizo4NOYX2s0Voq/g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "eslint": "^8.41.0", + "eslint-config-standard": "17.1.0", + "eslint-config-standard-jsx": "^11.0.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.32.2", + "standard-engine": "^15.0.0", + "version-guard": "^1.1.1" + }, + "bin": { + "standard": "bin/cmd.cjs" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/standard-engine": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-15.1.0.tgz", + "integrity": "sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "get-stdin": "^8.0.0", + "minimist": "^1.2.6", + "pkg-conf": "^3.1.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/standard-json": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/standard-json/-/standard-json-1.1.0.tgz", + "integrity": "sha512-nkonX+n5g3pyVBvJZmvRlFtT/7JyLbNh4CtrYC3Qfxihgs8PKX52f6ONKQXORStuBWJ5PI83EUrNXme7LKfiTQ==", + "dev": true, + "dependencies": { + "concat-stream": "^2.0.0" + }, + "bin": { + "standard-json": "bin.js" + } + }, + "node_modules/standard-json/node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tap": { + "version": "16.3.9", + "resolved": "https://registry.npmjs.org/tap/-/tap-16.3.9.tgz", + "integrity": "sha512-KKmu12hRJhb/kGvVV/UKBOJ90sNoGbcXF0E+VmNqej1DqaCmZHyOXR8R7E66qg2Wor33XhSHGrku5MPYWSRNWw==", + "bundleDependencies": [ + "ink", + "treport", + "@types/react", + "@isaacs/import-jsx", + "react" + ], + "dev": true, + "dependencies": { + "@isaacs/import-jsx": "^4.0.1", + "@types/react": "^17.0.52", + "chokidar": "^3.3.0", + "findit": "^2.0.0", + "foreground-child": "^2.0.0", + "fs-exists-cached": "^1.0.0", + "glob": "^7.2.3", + "ink": "^3.2.0", + "isexe": "^2.0.0", + "istanbul-lib-processinfo": "^2.0.3", + "jackspeak": "^1.4.2", + "libtap": "^1.4.0", + "minipass": "^3.3.4", + "mkdirp": "^1.0.4", + "nyc": "^15.1.0", + "opener": "^1.5.1", + "react": "^17.0.2", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.6", + "source-map-support": "^0.5.16", + "tap-mocha-reporter": "^5.0.3", + "tap-parser": "^11.0.2", + "tap-yaml": "^1.0.2", + "tcompare": "^5.0.7", + "treport": "^3.0.4", + "which": "^2.0.2" + }, + "bin": { + "tap": "bin/run.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "peerDependencies": { + "coveralls": "^3.1.1", + "flow-remove-types": ">=2.112.0", + "ts-node": ">=8.5.2", + "typescript": ">=3.7.2" + }, + "peerDependenciesMeta": { + "coveralls": { + "optional": true + }, + "flow-remove-types": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tap-mocha-reporter": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-5.0.4.tgz", + "integrity": "sha512-J+YMO8B7lq1O6Zxd/jeuG27vJ+Y4tLiRMKPSb7KR6FVh86k3Rq1TwYc2GKPyIjCbzzdMdReh3Vfz9L5cg1Z2Bw==", + "dev": true, + "dependencies": { + "color-support": "^1.1.0", + "debug": "^4.1.1", + "diff": "^4.0.1", + "escape-string-regexp": "^2.0.0", + "glob": "^7.0.5", + "tap-parser": "^11.0.0", + "tap-yaml": "^1.0.0", + "unicode-length": "^2.0.2" + }, + "bin": { + "tap-mocha-reporter": "index.js" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tap-mocha-reporter/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tap-mocha-reporter/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tap-mocha-reporter/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap-mocha-reporter/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/tap-parser": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-11.0.2.tgz", + "integrity": "sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==", + "dev": true, + "dependencies": { + "events-to-array": "^1.0.1", + "minipass": "^3.1.6", + "tap-yaml": "^1.0.0" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tap-yaml": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-1.0.2.tgz", + "integrity": "sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==", + "dev": true, + "dependencies": { + "yaml": "^1.10.2" + } + }, + "node_modules/tap/node_modules/@ampproject/remapping": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tap/node_modules/@babel/code-frame": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/compat-data": { + "version": "7.22.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/core": { + "version": "7.22.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/tap/node_modules/@babel/generator": { + "version": "7.22.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/helpers": { + "version": "7.22.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/parser": { + "version": "7.22.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-transform-destructuring": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/tap/node_modules/@babel/template": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/traverse": { + "version": "7.22.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@babel/types": { + "version": "7.22.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/@isaacs/import-jsx": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.5.5", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-react-jsx": "^7.3.0", + "caller-path": "^3.0.1", + "find-cache-dir": "^3.2.0", + "make-dir": "^3.0.2", + "resolve-from": "^3.0.0", + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tap/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tap/node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tap/node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tap/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/tap/node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/@types/prop-types": { + "version": "15.7.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/@types/react": { + "version": "17.0.62", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/tap/node_modules/@types/scheduler": { + "version": "0.16.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/@types/yoga-layout": { + "version": "1.9.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/ansi-escapes": { + "version": "4.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "inBundle": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/auto-bind": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/tap/node_modules/browserslist": { + "version": "4.21.9", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/tap/node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/caller-callsite": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/caller-path": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "caller-callsite": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/callsites": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/caniuse-lite": { + "version": "1.0.30001517", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "inBundle": true, + "license": "CC-BY-4.0" + }, + "node_modules/tap/node_modules/cardinal": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/tap/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/cli-cursor": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/tap/node_modules/code-excerpt": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tap/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/tap/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/convert-source-map": { + "version": "1.9.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/convert-to-spaces": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/tap/node_modules/csstype": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tap/node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/electron-to-chromium": { + "version": "1.4.477", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/escalade": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tap/node_modules/esprima": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/events-to-array": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/tap/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tap/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/tap/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tap/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/tap/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/ink": { + "version": "3.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "auto-bind": "4.0.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "indent-string": "^4.0.0", + "is-ci": "^2.0.0", + "lodash": "^4.17.20", + "patch-console": "^1.0.0", + "react-devtools-core": "^4.19.1", + "react-reconciler": "^0.26.2", + "scheduler": "^0.20.2", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "stack-utils": "^2.0.2", + "string-width": "^4.2.2", + "type-fest": "^0.12.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "ws": "^7.5.5", + "yoga-layout-prebuilt": "^1.9.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": ">=16.8.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/tap/node_modules/ink/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tap/node_modules/ink/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tap/node_modules/ink/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tap/node_modules/ink/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/ink/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/ink/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/tap/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/jsesc": { + "version": "2.5.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/json5": { + "version": "2.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/lodash": { + "version": "4.17.21", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/loose-envify": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/tap/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/tap/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tap/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tap/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/node-releases": { + "version": "2.0.13", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/tap/node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/tap/node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/patch-console": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tap/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap/node_modules/picocolors": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/punycode": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/react": { + "version": "17.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap/node_modules/react-devtools-core": { + "version": "4.28.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shell-quote": "^1.6.1", + "ws": "^7" + } + }, + "node_modules/tap/node_modules/react-reconciler": { + "version": "0.26.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^17.0.2" + } + }, + "node_modules/tap/node_modules/redeyed": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "esprima": "~4.0.0" + } + }, + "node_modules/tap/node_modules/resolve-from": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tap/node_modules/scheduler": { + "version": "0.20.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/tap/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/tap/node_modules/shell-quote": { + "version": "1.8.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tap/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tap/node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tap/node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/tap/node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/stack-utils": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tap/node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/tap-parser": { + "version": "11.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "events-to-array": "^1.0.1", + "minipass": "^3.1.6", + "tap-yaml": "^1.0.0" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tap/node_modules/tap-yaml": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yaml": "^1.10.2" + } + }, + "node_modules/tap/node_modules/to-fast-properties": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tap/node_modules/treport": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/import-jsx": "^4.0.1", + "cardinal": "^2.1.1", + "chalk": "^3.0.0", + "ink": "^3.2.0", + "ms": "^2.1.2", + "tap-parser": "^11.0.0", + "tap-yaml": "^1.0.0", + "unicode-length": "^2.0.2" + }, + "peerDependencies": { + "react": "^17.0.2" + } + }, + "node_modules/tap/node_modules/treport/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tap/node_modules/treport/node_modules/chalk": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/treport/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tap/node_modules/treport/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/treport/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/treport/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/type-fest": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tap/node_modules/unicode-length": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.0.0" + } + }, + "node_modules/tap/node_modules/update-browserslist-db": { + "version": "1.0.11", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/tap/node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tap/node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tap/node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/tap/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/tap/node_modules/ws": { + "version": "7.5.9", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/tap/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/tap/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/tap/node_modules/yaml": { + "version": "1.10.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tap/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tap/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tap/node_modules/yoga-layout-prebuilt": { + "version": "1.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@types/yoga-layout": "1.9.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tcompare": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-5.0.7.tgz", + "integrity": "sha512-d9iddt6YYGgyxJw5bjsN7UJUO1kGOtjSlNy/4PoGYAjQS5pAT/hzIoLf1bZCw+uUxRmZJh7Yy1aA7xKVRT9B4w==", + "dev": true, + "dependencies": { + "diff": "^4.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tcompare/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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/tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "dev": true, + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trivial-deferred": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.1.2.tgz", + "integrity": "sha512-vDPiDBC3hyP6O4JrJYMImW3nl3c03Tsj9fEXc7Qc/XKa1O7gf5ZtFfIR/E0dun9SnDHdwjna1Z2rSzYgqpxh/g==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tsd": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.29.0.tgz", + "integrity": "sha512-5B7jbTj+XLMg6rb9sXRBGwzv7h8KJlGOkTHxY63eWpZJiQ5vJbXEjL0u7JkIxwi5EsrRE1kRVUWmy6buK/ii8A==", + "dev": true, + "dependencies": { + "@tsd/typescript": "~5.2.2", + "eslint-formatter-pretty": "^4.1.0", + "globby": "^11.0.1", + "jest-diff": "^29.0.3", + "meow": "^9.0.0", + "path-exists": "^4.0.0", + "read-pkg-up": "^7.0.0" + }, + "bin": { + "tsd": "dist/cli.js" + }, + "engines": { + "node": ">=14.16" + } + }, + "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/tweezer.js": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/tweezer.js/-/tweezer.js-1.5.0.tgz", + "integrity": "sha512-aSiJz7rGWNAQq7hjMK9ZYDuEawXupcCWgl3woQQSoDP2Oh8O4srWb/uO1PzzHIsrPEOqrjJ2sUb9FERfzuBabQ==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-length": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.1.0.tgz", + "integrity": "sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==", + "dev": true, + "dependencies": { + "punycode": "^2.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/version-guard": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/version-guard/-/version-guard-1.1.1.tgz", + "integrity": "sha512-MGQLX89UxmYHgDvcXyjBI0cbmoW+t/dANDppNPrno64rYr8nH4SHSuElQuSYdXGEs0mUzdQe1BY+FhVPNsAmJQ==", + "dev": true, + "engines": { + "node": ">=0.10.48" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/wait-on": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", + "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", + "dev": true, + "dependencies": { + "axios": "^0.27.2", + "joi": "^17.7.0", + "lodash": "^4.17.21", + "minimist": "^1.2.7", + "rxjs": "^7.8.0" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "dev": true, + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargonaut": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", + "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "figlet": "^1.1.1", + "parent-require": "^1.0.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargonaut/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargonaut/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/deps/undici/src/package.json b/deps/undici/src/package.json index 67046ad68a3541..31e157de002b20 100644 --- a/deps/undici/src/package.json +++ b/deps/undici/src/package.json @@ -1,6 +1,6 @@ { "name": "undici", - "version": "5.26.3", + "version": "5.26.4", "description": "An HTTP/1.1 client, written from scratch for Node.js", "homepage": "https://undici.nodejs.org", "bugs": { @@ -67,11 +67,10 @@ "index-fetch.js", "lib", "types", - "docs", - "scripts/esbuild-build.mjs" + "docs" ], "scripts": { - "build:node": "node scripts/esbuild-build.mjs", + "build:node": "npx esbuild@0.19.4 index-fetch.js --bundle --platform=node --outfile=undici-fetch.js --define:esbuildDetection=1 --keep-names", "prebuild:wasm": "node build/wasm.js --prebuild", "build:wasm": "node build/wasm.js --docker", "lint": "standard | snazzy", @@ -85,7 +84,7 @@ "test:tdd": "tap test/*.js test/diagnostics-channel/*.js -w", "test:typescript": "node scripts/verifyVersion.js 14 || tsd && tsc --skipLibCheck test/imports/undici-import.ts", "test:websocket": "node scripts/verifyVersion.js 18 || tap test/websocket/*.js", - "test:wpt": "node scripts/verifyVersion 18 || (node test/wpt/start-fetch.mjs && node test/wpt/start-FileAPI.mjs && node test/wpt/start-mimesniff.mjs && node test/wpt/start-xhr.mjs && node --no-warnings test/wpt/start-websockets.mjs)", + "test:wpt": "node scripts/verifyVersion 18 || (node test/wpt/start-fetch.mjs && node test/wpt/start-FileAPI.mjs && node test/wpt/start-mimesniff.mjs && node test/wpt/start-xhr.mjs && node --no-warnings --expose-internals test/wpt/start-websockets.mjs)", "coverage": "nyc --reporter=text --reporter=html npm run test", "coverage:ci": "nyc --reporter=lcov npm run test", "bench": "PORT=3042 concurrently -k -s first npm:bench:server npm:bench:run", @@ -110,7 +109,6 @@ "delay": "^5.0.0", "dns-packet": "^5.4.0", "docsify-cli": "^4.4.3", - "esbuild": "^0.19.4", "form-data": "^4.0.0", "formdata-node": "^4.3.1", "https-pem": "^3.0.0", diff --git a/deps/undici/src/scripts/esbuild-build.mjs b/deps/undici/src/scripts/esbuild-build.mjs deleted file mode 100644 index ca5886c1a2b861..00000000000000 --- a/deps/undici/src/scripts/esbuild-build.mjs +++ /dev/null @@ -1,24 +0,0 @@ -import * as esbuild from 'esbuild' -import fs from 'node:fs' - -const bundle = { - name: 'bundle', - setup (build) { - build.onLoad({ filter: /lib(\/|\\)fetch(\/|\\)index.js/ }, async (args) => { - const text = await fs.promises.readFile(args.path, 'utf8') - - return { - contents: `var esbuildDetection = 1;${text}`, - loader: 'js' - } - }) - } -} - -await esbuild.build({ - entryPoints: ['index-fetch.js'], - bundle: true, - outfile: 'undici-fetch.js', - plugins: [bundle], - platform: 'node' -}) diff --git a/deps/undici/undici.js b/deps/undici/undici.js index 0c3dc7ebfc149b..068edd28b16ee5 100644 --- a/deps/undici/undici.js +++ b/deps/undici/undici.js @@ -1,5 +1,7 @@ "use strict"; +var __defProp = Object.defineProperty; var __getOwnPropNames = Object.getOwnPropertyNames; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; @@ -91,6 +93,9 @@ var require_errors = __commonJS({ "lib/core/errors.js"(exports2, module2) { "use strict"; var UndiciError = class extends Error { + static { + __name(this, "UndiciError"); + } constructor(message) { super(message); this.name = "UndiciError"; @@ -98,6 +103,9 @@ var require_errors = __commonJS({ } }; var ConnectTimeoutError = class _ConnectTimeoutError extends UndiciError { + static { + __name(this, "ConnectTimeoutError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _ConnectTimeoutError); @@ -107,6 +115,9 @@ var require_errors = __commonJS({ } }; var HeadersTimeoutError = class _HeadersTimeoutError extends UndiciError { + static { + __name(this, "HeadersTimeoutError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _HeadersTimeoutError); @@ -116,6 +127,9 @@ var require_errors = __commonJS({ } }; var HeadersOverflowError = class _HeadersOverflowError extends UndiciError { + static { + __name(this, "HeadersOverflowError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _HeadersOverflowError); @@ -125,6 +139,9 @@ var require_errors = __commonJS({ } }; var BodyTimeoutError = class _BodyTimeoutError extends UndiciError { + static { + __name(this, "BodyTimeoutError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _BodyTimeoutError); @@ -134,6 +151,9 @@ var require_errors = __commonJS({ } }; var ResponseStatusCodeError = class _ResponseStatusCodeError extends UndiciError { + static { + __name(this, "ResponseStatusCodeError"); + } constructor(message, statusCode, headers, body) { super(message); Error.captureStackTrace(this, _ResponseStatusCodeError); @@ -147,6 +167,9 @@ var require_errors = __commonJS({ } }; var InvalidArgumentError = class _InvalidArgumentError extends UndiciError { + static { + __name(this, "InvalidArgumentError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _InvalidArgumentError); @@ -156,6 +179,9 @@ var require_errors = __commonJS({ } }; var InvalidReturnValueError = class _InvalidReturnValueError extends UndiciError { + static { + __name(this, "InvalidReturnValueError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _InvalidReturnValueError); @@ -165,6 +191,9 @@ var require_errors = __commonJS({ } }; var RequestAbortedError = class _RequestAbortedError extends UndiciError { + static { + __name(this, "RequestAbortedError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _RequestAbortedError); @@ -174,6 +203,9 @@ var require_errors = __commonJS({ } }; var InformationalError = class _InformationalError extends UndiciError { + static { + __name(this, "InformationalError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _InformationalError); @@ -183,6 +215,9 @@ var require_errors = __commonJS({ } }; var RequestContentLengthMismatchError = class _RequestContentLengthMismatchError extends UndiciError { + static { + __name(this, "RequestContentLengthMismatchError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _RequestContentLengthMismatchError); @@ -192,6 +227,9 @@ var require_errors = __commonJS({ } }; var ResponseContentLengthMismatchError = class _ResponseContentLengthMismatchError extends UndiciError { + static { + __name(this, "ResponseContentLengthMismatchError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _ResponseContentLengthMismatchError); @@ -201,6 +239,9 @@ var require_errors = __commonJS({ } }; var ClientDestroyedError = class _ClientDestroyedError extends UndiciError { + static { + __name(this, "ClientDestroyedError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _ClientDestroyedError); @@ -210,6 +251,9 @@ var require_errors = __commonJS({ } }; var ClientClosedError = class _ClientClosedError extends UndiciError { + static { + __name(this, "ClientClosedError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _ClientClosedError); @@ -219,6 +263,9 @@ var require_errors = __commonJS({ } }; var SocketError = class _SocketError extends UndiciError { + static { + __name(this, "SocketError"); + } constructor(message, socket) { super(message); Error.captureStackTrace(this, _SocketError); @@ -229,6 +276,9 @@ var require_errors = __commonJS({ } }; var NotSupportedError = class _NotSupportedError extends UndiciError { + static { + __name(this, "NotSupportedError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _NotSupportedError); @@ -238,6 +288,9 @@ var require_errors = __commonJS({ } }; var BalancedPoolMissingUpstreamError = class extends UndiciError { + static { + __name(this, "BalancedPoolMissingUpstreamError"); + } constructor(message) { super(message); Error.captureStackTrace(this, NotSupportedError); @@ -247,6 +300,9 @@ var require_errors = __commonJS({ } }; var HTTPParserError = class _HTTPParserError extends Error { + static { + __name(this, "HTTPParserError"); + } constructor(message, code, data) { super(message); Error.captureStackTrace(this, _HTTPParserError); @@ -256,6 +312,9 @@ var require_errors = __commonJS({ } }; var ResponseExceededMaxSizeError = class _ResponseExceededMaxSizeError extends UndiciError { + static { + __name(this, "ResponseExceededMaxSizeError"); + } constructor(message) { super(message); Error.captureStackTrace(this, _ResponseExceededMaxSizeError); @@ -304,12 +363,15 @@ var require_util = __commonJS({ var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); function nop() { } + __name(nop, "nop"); function isStream(obj) { return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; } + __name(isStream, "isStream"); function isBlobLike(object) { return Blob2 && object instanceof Blob2 || object && typeof object === "object" && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && /^(Blob|File)$/.test(object[Symbol.toStringTag]); } + __name(isBlobLike, "isBlobLike"); function buildURL(url, queryParams) { if (url.includes("?") || url.includes("#")) { throw new Error('Query params cannot be passed when url already contains "?" or "#".'); @@ -320,6 +382,7 @@ var require_util = __commonJS({ } return url; } + __name(buildURL, "buildURL"); function parseURL(url) { if (typeof url === "string") { url = new URL(url); @@ -363,6 +426,7 @@ var require_util = __commonJS({ } return url; } + __name(parseURL, "parseURL"); function parseOrigin(url) { url = parseURL(url); if (url.pathname !== "/" || url.search || url.hash) { @@ -370,6 +434,7 @@ var require_util = __commonJS({ } return url; } + __name(parseOrigin, "parseOrigin"); function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); @@ -381,6 +446,7 @@ var require_util = __commonJS({ return host; return host.substr(0, idx); } + __name(getHostname, "getHostname"); function getServerName(host) { if (!host) { return null; @@ -392,15 +458,19 @@ var require_util = __commonJS({ } return servername; } + __name(getServerName, "getServerName"); function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } + __name(deepClone, "deepClone"); function isAsyncIterable(obj) { return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); } + __name(isAsyncIterable, "isAsyncIterable"); function isIterable(obj) { return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); } + __name(isIterable, "isIterable"); function bodyLength(body) { if (body == null) { return 0; @@ -414,13 +484,16 @@ var require_util = __commonJS({ } return null; } + __name(bodyLength, "bodyLength"); function isDestroyed(stream2) { return !stream2 || !!(stream2.destroyed || stream2[kDestroyed]); } + __name(isDestroyed, "isDestroyed"); function isReadableAborted(stream2) { const state = stream2 && stream2._readableState; return isDestroyed(stream2) && state && !state.endEmitted; } + __name(isReadableAborted, "isReadableAborted"); function destroy(stream2, err) { if (!isStream(stream2) || isDestroyed(stream2)) { return; @@ -439,11 +512,13 @@ var require_util = __commonJS({ stream2[kDestroyed] = true; } } + __name(destroy, "destroy"); var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val) { const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); return m ? parseInt(m[1], 10) * 1e3 : null; } + __name(parseKeepAliveTimeout, "parseKeepAliveTimeout"); function parseHeaders(headers, obj = {}) { if (!Array.isArray(headers)) return headers; @@ -469,6 +544,7 @@ var require_util = __commonJS({ } return obj; } + __name(parseHeaders, "parseHeaders"); function parseRawHeaders(headers) { const ret = []; let hasContentLength = false; @@ -490,9 +566,11 @@ var require_util = __commonJS({ } return ret; } + __name(parseRawHeaders, "parseRawHeaders"); function isBuffer(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } + __name(isBuffer, "isBuffer"); function validateHandler(handler, method, upgrade) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); @@ -522,19 +600,23 @@ var require_util = __commonJS({ } } } + __name(validateHandler, "validateHandler"); function isDisturbed(body) { return !!(body && (stream.isDisturbed ? stream.isDisturbed(body) || body[kBodyUsed] : body[kBodyUsed] || body.readableDidRead || body._readableState && body._readableState.dataEmitted || isReadableAborted(body))); } + __name(isDisturbed, "isDisturbed"); function isErrored(body) { return !!(body && (stream.isErrored ? stream.isErrored(body) : /state: 'errored'/.test( nodeUtil.inspect(body) ))); } + __name(isErrored, "isErrored"); function isReadable(body) { return !!(body && (stream.isReadable ? stream.isReadable(body) : /state: 'readable'/.test( nodeUtil.inspect(body) ))); } + __name(isReadable, "isReadable"); function getSocketInfo(socket) { return { localAddress: socket.localAddress, @@ -547,11 +629,13 @@ var require_util = __commonJS({ bytesRead: socket.bytesRead }; } + __name(getSocketInfo, "getSocketInfo"); async function* convertIterableToBuffer(iterable) { for await (const chunk of iterable) { yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); } } + __name(convertIterableToBuffer, "convertIterableToBuffer"); var ReadableStream; function ReadableStreamFrom(iterable) { if (!ReadableStream) { @@ -585,9 +669,11 @@ var require_util = __commonJS({ 0 ); } + __name(ReadableStreamFrom, "ReadableStreamFrom"); function isFormDataLike(object) { return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; } + __name(isFormDataLike, "isFormDataLike"); function throwIfAborted(signal) { if (!signal) { return; @@ -602,6 +688,7 @@ var require_util = __commonJS({ } } } + __name(throwIfAborted, "throwIfAborted"); var events; function addAbortListener(signal, listener) { if (typeof Symbol.dispose === "symbol") { @@ -619,6 +706,7 @@ var require_util = __commonJS({ signal.addListener("abort", listener); return () => signal.removeListener("abort", listener); } + __name(addAbortListener, "addAbortListener"); var hasToWellFormed = !!String.prototype.toWellFormed; function toUSVString(val) { if (hasToWellFormed) { @@ -628,6 +716,7 @@ var require_util = __commonJS({ } return `${val}`; } + __name(toUSVString, "toUSVString"); var kEnumerableProperty = /* @__PURE__ */ Object.create(null); kEnumerableProperty.enumerable = true; module2.exports = { @@ -819,7 +908,7 @@ var require_constants = __commonJS({ var channel; var structuredClone = globalThis.structuredClone ?? // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js // structuredClone was added in v17.0.0, but fetch supports v16.8 - function structuredClone2(value, options = void 0) { + /* @__PURE__ */ __name(function structuredClone2(value, options = void 0) { if (arguments.length === 0) { throw new TypeError("missing argument"); } @@ -830,7 +919,7 @@ var require_constants = __commonJS({ channel.port2.unref(); channel.port1.postMessage(value, options?.transfer); return receiveMessageOnPort(channel.port2).message; - }; + }, "structuredClone"); module2.exports = { DOMException, structuredClone, @@ -860,6 +949,7 @@ var require_global = __commonJS({ function getGlobalOrigin() { return globalThis[globalOrigin]; } + __name(getGlobalOrigin, "getGlobalOrigin"); function setGlobalOrigin(newOrigin) { if (newOrigin === void 0) { Object.defineProperty(globalThis, globalOrigin, { @@ -881,6 +971,7 @@ var require_global = __commonJS({ configurable: false }); } + __name(setGlobalOrigin, "setGlobalOrigin"); module2.exports = { getGlobalOrigin, setGlobalOrigin @@ -908,6 +999,7 @@ var require_util2 = __commonJS({ const length = urlList.length; return length === 0 ? null : urlList[length - 1].toString(); } + __name(responseURL, "responseURL"); function responseLocationURL(response, requestFragment) { if (!redirectStatus.includes(response.status)) { return null; @@ -921,9 +1013,11 @@ var require_util2 = __commonJS({ } return location; } + __name(responseLocationURL, "responseLocationURL"); function requestCurrentURL(request) { return request.urlList[request.urlList.length - 1]; } + __name(requestCurrentURL, "requestCurrentURL"); function requestBadPort(request) { const url = requestCurrentURL(request); if (urlIsHttpHttpsScheme(url) && badPorts.includes(url.port)) { @@ -931,9 +1025,11 @@ var require_util2 = __commonJS({ } return "allowed"; } + __name(requestBadPort, "requestBadPort"); function isErrorLike(object) { return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); } + __name(isErrorLike, "isErrorLike"); function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { const c = statusText.charCodeAt(i); @@ -945,9 +1041,11 @@ var require_util2 = __commonJS({ } return true; } + __name(isValidReasonPhrase, "isValidReasonPhrase"); function isTokenChar(c) { return !(c >= 127 || c <= 32 || c === "(" || c === ")" || c === "<" || c === ">" || c === "@" || c === "," || c === ";" || c === ":" || c === "\\" || c === '"' || c === "/" || c === "[" || c === "]" || c === "?" || c === "=" || c === "{" || c === "}"); } + __name(isTokenChar, "isTokenChar"); function isValidHTTPToken(characters) { if (!characters || typeof characters !== "string") { return false; @@ -960,12 +1058,14 @@ var require_util2 = __commonJS({ } return true; } + __name(isValidHTTPToken, "isValidHTTPToken"); function isValidHeaderName(potentialValue) { if (potentialValue.length === 0) { return false; } return isValidHTTPToken(potentialValue); } + __name(isValidHeaderName, "isValidHeaderName"); function isValidHeaderValue(potentialValue) { if (potentialValue.startsWith(" ") || potentialValue.startsWith(" ") || potentialValue.endsWith(" ") || potentialValue.endsWith(" ")) { return false; @@ -975,6 +1075,7 @@ var require_util2 = __commonJS({ } return true; } + __name(isValidHeaderValue, "isValidHeaderValue"); function setRequestReferrerPolicyOnRedirect(request, actualResponse) { const { headersList } = actualResponse; const policyHeader = (headersList.get("referrer-policy") ?? "").split(","); @@ -992,20 +1093,25 @@ var require_util2 = __commonJS({ request.referrerPolicy = policy; } } + __name(setRequestReferrerPolicyOnRedirect, "setRequestReferrerPolicyOnRedirect"); function crossOriginResourcePolicyCheck() { return "allowed"; } + __name(crossOriginResourcePolicyCheck, "crossOriginResourcePolicyCheck"); function corsCheck() { return "success"; } + __name(corsCheck, "corsCheck"); function TAOCheck() { return "success"; } + __name(TAOCheck, "TAOCheck"); function appendFetchMetadata(httpRequest) { let header = null; header = httpRequest.mode; httpRequest.headersList.set("sec-fetch-mode", header); } + __name(appendFetchMetadata, "appendFetchMetadata"); function appendRequestOriginHeader(request) { let serializedOrigin = request.origin; if (request.responseTainting === "cors" || request.mode === "websocket") { @@ -1036,9 +1142,11 @@ var require_util2 = __commonJS({ } } } + __name(appendRequestOriginHeader, "appendRequestOriginHeader"); function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { return performance2.now(); } + __name(coarsenedSharedCurrentTime, "coarsenedSharedCurrentTime"); function createOpaqueTimingInfo(timingInfo) { return { startTime: timingInfo.startTime ?? 0, @@ -1054,16 +1162,19 @@ var require_util2 = __commonJS({ finalConnectionTimingInfo: null }; } + __name(createOpaqueTimingInfo, "createOpaqueTimingInfo"); function makePolicyContainer() { return { referrerPolicy: "strict-origin-when-cross-origin" }; } + __name(makePolicyContainer, "makePolicyContainer"); function clonePolicyContainer(policyContainer) { return { referrerPolicy: policyContainer.referrerPolicy }; } + __name(clonePolicyContainer, "clonePolicyContainer"); function determineRequestsReferrer(request) { const policy = request.referrerPolicy; assert(policy); @@ -1109,6 +1220,7 @@ var require_util2 = __commonJS({ return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; } } + __name(determineRequestsReferrer, "determineRequestsReferrer"); function stripURLForReferrer(url, originOnly) { assert(url instanceof URL); if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { @@ -1123,6 +1235,7 @@ var require_util2 = __commonJS({ } return url; } + __name(stripURLForReferrer, "stripURLForReferrer"); function isURLPotentiallyTrustworthy(url) { if (!(url instanceof URL)) { return false; @@ -1147,7 +1260,9 @@ var require_util2 = __commonJS({ } return false; } + __name(isOriginPotentiallyTrustworthy, "isOriginPotentiallyTrustworthy"); } + __name(isURLPotentiallyTrustworthy, "isURLPotentiallyTrustworthy"); function bytesMatch(bytes, metadataList) { if (crypto === void 0) { return true; @@ -1185,6 +1300,7 @@ var require_util2 = __commonJS({ } return false; } + __name(bytesMatch, "bytesMatch"); var parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i; function parseMetadata(metadata) { const result = []; @@ -1206,8 +1322,10 @@ var require_util2 = __commonJS({ } return result; } + __name(parseMetadata, "parseMetadata"); function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { } + __name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL"); function sameOrigin(A, B) { if (A.origin === B.origin && A.origin === "null") { return true; @@ -1217,6 +1335,7 @@ var require_util2 = __commonJS({ } return false; } + __name(sameOrigin, "sameOrigin"); function createDeferredPromise() { let res; let rej; @@ -1226,15 +1345,19 @@ var require_util2 = __commonJS({ }); return { promise, resolve: res, reject: rej }; } + __name(createDeferredPromise, "createDeferredPromise"); function isAborted(fetchParams) { return fetchParams.controller.state === "aborted"; } + __name(isAborted, "isAborted"); function isCancelled(fetchParams) { return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; } + __name(isCancelled, "isCancelled"); function normalizeMethod(method) { return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method) ? method.toUpperCase() : method; } + __name(normalizeMethod, "normalizeMethod"); function serializeJavascriptValueToJSONString(value) { const result = JSON.stringify(value); if (result === void 0) { @@ -1243,6 +1366,7 @@ var require_util2 = __commonJS({ assert(typeof result === "string"); return result; } + __name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString"); var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function makeIterator(iterator, name, kind) { const object = { @@ -1274,6 +1398,7 @@ var require_util2 = __commonJS({ Object.setPrototypeOf(i, esIteratorPrototype); return Object.setPrototypeOf({}, i); } + __name(makeIterator, "makeIterator"); function iteratorResult(pair, kind) { let result; switch (kind) { @@ -1292,6 +1417,7 @@ var require_util2 = __commonJS({ } return { value: result, done: false }; } + __name(iteratorResult, "iteratorResult"); async function fullyReadBody(body, processBody, processBodyError) { const successSteps = processBody; const errorSteps = processBodyError; @@ -1309,6 +1435,7 @@ var require_util2 = __commonJS({ errorSteps(e); } } + __name(fullyReadBody, "fullyReadBody"); var ReadableStream = globalThis.ReadableStream; function isReadableStreamLike(stream) { if (!ReadableStream) { @@ -1316,6 +1443,7 @@ var require_util2 = __commonJS({ } return stream instanceof ReadableStream || stream[Symbol.toStringTag] === "ReadableStream" && typeof stream.tee === "function"; } + __name(isReadableStreamLike, "isReadableStreamLike"); var MAXIMUM_ARGUMENT_LENGTH = 65535; function isomorphicDecode(input) { if (input.length < MAXIMUM_ARGUMENT_LENGTH) { @@ -1323,6 +1451,7 @@ var require_util2 = __commonJS({ } return input.reduce((previous, current) => previous + String.fromCharCode(current), ""); } + __name(isomorphicDecode, "isomorphicDecode"); function readableStreamClose(controller) { try { controller.close(); @@ -1332,12 +1461,14 @@ var require_util2 = __commonJS({ } } } + __name(readableStreamClose, "readableStreamClose"); function isomorphicEncode(input) { for (let i = 0; i < input.length; i++) { assert(input.charCodeAt(i) <= 255); } return input; } + __name(isomorphicEncode, "isomorphicEncode"); async function readAllBytes(reader) { const bytes = []; let byteLength = 0; @@ -1353,22 +1484,26 @@ var require_util2 = __commonJS({ byteLength += chunk.length; } } + __name(readAllBytes, "readAllBytes"); function urlIsLocal(url) { assert("protocol" in url); const protocol = url.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } + __name(urlIsLocal, "urlIsLocal"); function urlHasHttpsScheme(url) { if (typeof url === "string") { return url.startsWith("https:"); } return url.protocol === "https:"; } + __name(urlHasHttpsScheme, "urlHasHttpsScheme"); function urlIsHttpHttpsScheme(url) { assert("protocol" in url); const protocol = url.protocol; return protocol === "http:" || protocol === "https:"; } + __name(urlIsHttpHttpsScheme, "urlIsHttpHttpsScheme"); var hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)); module2.exports = { isAborted, @@ -1810,6 +1945,7 @@ var require_headers = __commonJS({ ; return potentialValue.slice(0, i + 1).replace(/^[\r\n\t ]+/, ""); } + __name(headerValueNormalize, "headerValueNormalize"); function fill(headers, object) { if (Array.isArray(object)) { for (const header of object) { @@ -1833,7 +1969,11 @@ var require_headers = __commonJS({ }); } } + __name(fill, "fill"); var HeadersList = class _HeadersList { + static { + __name(this, "HeadersList"); + } /** @type {[string, string][]|null} */ cookies = null; constructor(init) { @@ -1916,6 +2056,9 @@ var require_headers = __commonJS({ } }; var Headers = class _Headers { + static { + __name(this, "Headers"); + } constructor(init = void 0) { this[kHeadersList] = new HeadersList(); this[kGuard] = "none"; @@ -2170,6 +2313,7 @@ var require_sbmh = __commonJS({ this._occ[needle[i]] = needleLength - 1 - i; } } + __name(SBMH, "SBMH"); inherits(SBMH, EventEmitter); SBMH.prototype.reset = function() { this._lookbehind_size = 0; @@ -2285,6 +2429,7 @@ var require_PartStream = __commonJS({ function PartStream(opts) { ReadableStream.call(this, opts); } + __name(PartStream, "PartStream"); inherits(PartStream, ReadableStream); PartStream.prototype._read = function(n) { }; @@ -2296,7 +2441,7 @@ var require_PartStream = __commonJS({ var require_getLimit = __commonJS({ "node_modules/@fastify/busboy/lib/utils/getLimit.js"(exports2, module2) { "use strict"; - module2.exports = function getLimit(limits, name, defaultLimit) { + module2.exports = /* @__PURE__ */ __name(function getLimit(limits, name, defaultLimit) { if (!limits || limits[name] === void 0 || limits[name] === null) { return defaultLimit; } @@ -2304,7 +2449,7 @@ var require_getLimit = __commonJS({ throw new TypeError("Limit " + name + " is not a valid number"); } return limits[name]; - }; + }, "getLimit"); } }); @@ -2348,6 +2493,7 @@ var require_HeaderParser = __commonJS({ } }); } + __name(HeaderParser, "HeaderParser"); inherits(HeaderParser, EventEmitter); HeaderParser.prototype.push = function(data) { const r = this.ss.push(data); @@ -2420,8 +2566,8 @@ var require_Dicer = __commonJS({ var DASH = 45; var B_ONEDASH = Buffer.from("-"); var B_CRLF = Buffer.from("\r\n"); - var EMPTY_FN = function() { - }; + var EMPTY_FN = /* @__PURE__ */ __name(function() { + }, "EMPTY_FN"); function Dicer(cfg) { if (!(this instanceof Dicer)) { return new Dicer(cfg); @@ -2456,6 +2602,7 @@ var require_Dicer = __commonJS({ self._part.emit("header", header); }); } + __name(Dicer, "Dicer"); inherits(Dicer, WritableStream); Dicer.prototype.emit = function(ev) { if (ev === "finish" && !this._realFinish) { @@ -2674,6 +2821,7 @@ var require_decodeText = __commonJS({ } return text; } + __name(decodeText, "decodeText"); module2.exports = decodeText; } }); @@ -2687,6 +2835,7 @@ var require_parseParams = __commonJS({ function encodedReplacer(match, byte) { return String.fromCharCode(parseInt(byte, 16)); } + __name(encodedReplacer, "encodedReplacer"); function parseParams(str) { const res = []; let state = "key"; @@ -2785,6 +2934,7 @@ var require_parseParams = __commonJS({ } return res; } + __name(parseParams, "parseParams"); module2.exports = parseParams; } }); @@ -2793,7 +2943,7 @@ var require_parseParams = __commonJS({ var require_basename = __commonJS({ "node_modules/@fastify/busboy/lib/utils/basename.js"(exports2, module2) { "use strict"; - module2.exports = function basename(path) { + module2.exports = /* @__PURE__ */ __name(function basename(path) { if (typeof path !== "string") { return ""; } @@ -2806,7 +2956,7 @@ var require_basename = __commonJS({ } } return path === ".." || path === "." ? "" : path; - }; + }, "basename"); } }); @@ -2850,6 +3000,7 @@ var require_multipart = __commonJS({ self.end(); } } + __name(checkFinished, "checkFinished"); if (typeof boundary !== "string") { throw new Error("Multipart: Boundary not found"); } @@ -2886,7 +3037,7 @@ var require_multipart = __commonJS({ self._cb = void 0; cb(); } - }).on("part", function onPart(part) { + }).on("part", /* @__PURE__ */ __name(function onPart(part) { if (++self._nparts > partsLimit) { self.parser.removeListener("part", onPart); self.parser.on("part", skipPart); @@ -2987,7 +3138,7 @@ var require_multipart = __commonJS({ } }; boy.emit("file", fieldname, file, filename, encoding, contype); - onData = function(data) { + onData = /* @__PURE__ */ __name(function(data) { if ((nsize += data.length) > fileSizeLimit) { const extralen = fileSizeLimit - nsize + data.length; if (extralen > 0) { @@ -3002,11 +3153,11 @@ var require_multipart = __commonJS({ self._pause = true; } file.bytesRead = nsize; - }; - onEnd = function() { + }, "onData"); + onEnd = /* @__PURE__ */ __name(function() { curFile = void 0; file.push(null); - }; + }, "onEnd"); } else { if (nfields === fieldsLimit) { if (!boy.hitFieldsLimit) { @@ -3020,7 +3171,7 @@ var require_multipart = __commonJS({ let buffer = ""; let truncated = false; curField = part; - onData = function(data) { + onData = /* @__PURE__ */ __name(function(data) { if ((nsize += data.length) > fieldSizeLimit) { const extralen = fieldSizeLimit - (nsize - data.length); buffer += data.toString("binary", 0, extralen); @@ -3029,8 +3180,8 @@ var require_multipart = __commonJS({ } else { buffer += data.toString("binary"); } - }; - onEnd = function() { + }, "onData"); + onEnd = /* @__PURE__ */ __name(function() { curField = void 0; if (buffer.length) { buffer = decodeText(buffer, "binary", charset); @@ -3038,7 +3189,7 @@ var require_multipart = __commonJS({ boy.emit("field", fieldname, buffer, false, truncated, encoding, contype); --nends; checkFinished(); - }; + }, "onEnd"); } part._readableState.sync = false; part.on("data", onData); @@ -3048,13 +3199,14 @@ var require_multipart = __commonJS({ curFile.emit("error", err); } }); - }).on("error", function(err) { + }, "onPart")).on("error", function(err) { boy.emit("error", err); }).on("finish", function() { finished = true; checkFinished(); }); } + __name(Multipart, "Multipart"); Multipart.prototype.write = function(chunk, cb) { const r = this.parser.write(chunk); if (r && !this._pause) { @@ -3078,11 +3230,13 @@ var require_multipart = __commonJS({ function skipPart(part) { part.resume(); } + __name(skipPart, "skipPart"); function FileStream(opts) { Readable.call(this, opts); this.bytesRead = 0; this.truncated = false; } + __name(FileStream, "FileStream"); inherits(FileStream, Readable); FileStream.prototype._read = function(n) { }; @@ -3228,6 +3382,7 @@ var require_Decoder = __commonJS({ function Decoder() { this.buffer = void 0; } + __name(Decoder, "Decoder"); Decoder.prototype.write = function(str) { str = str.replace(RE_PLUS, " "); let res = ""; @@ -3308,6 +3463,7 @@ var require_urlencoded = __commonJS({ this._valTrunc = false; this._hitLimit = false; } + __name(UrlEncoded, "UrlEncoded"); UrlEncoded.prototype.write = function(data, cb) { if (this._fields === this.fieldsLimit) { if (!this.boy.hitFieldsLimit) { @@ -3520,6 +3676,7 @@ var require_main = __commonJS({ this._parser = this.getParserByHeaders(headers); this._finished = false; } + __name(Busboy, "Busboy"); inherits(Busboy, WritableStream); Busboy.prototype.emit = function(ev) { if (ev === "finish") { @@ -3610,6 +3767,7 @@ var require_dataURL = __commonJS({ } return { mimeType: mimeTypeRecord, body }; } + __name(dataURLProcessor, "dataURLProcessor"); function URLSerializer(url, excludeFragment = false) { const href = url.href; if (!excludeFragment) { @@ -3621,6 +3779,7 @@ var require_dataURL = __commonJS({ } return href.slice(0, hash); } + __name(URLSerializer, "URLSerializer"); function collectASequenceOfCodePoints(condition, input, position) { let result = ""; while (position.position < input.length && condition(input[position.position])) { @@ -3629,6 +3788,7 @@ var require_dataURL = __commonJS({ } return result; } + __name(collectASequenceOfCodePoints, "collectASequenceOfCodePoints"); function collectASequenceOfCodePointsFast(char, input, position) { const idx = input.indexOf(char, position.position); const start = position.position; @@ -3639,10 +3799,12 @@ var require_dataURL = __commonJS({ position.position = idx; return input.slice(start, position.position); } + __name(collectASequenceOfCodePointsFast, "collectASequenceOfCodePointsFast"); function stringPercentDecode(input) { const bytes = encoder.encode(input); return percentDecode(bytes); } + __name(stringPercentDecode, "stringPercentDecode"); function percentDecode(input) { const output = []; for (let i = 0; i < input.length; i++) { @@ -3660,6 +3822,7 @@ var require_dataURL = __commonJS({ } return Uint8Array.from(output); } + __name(percentDecode, "percentDecode"); function parseMIMEType(input) { input = removeHTTPWhitespace(input, true, true); const position = { position: 0 }; @@ -3742,6 +3905,7 @@ var require_dataURL = __commonJS({ } return mimeType; } + __name(parseMIMEType, "parseMIMEType"); function forgivingBase64(data) { data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, ""); if (data.length % 4 === 0) { @@ -3760,6 +3924,7 @@ var require_dataURL = __commonJS({ } return bytes; } + __name(forgivingBase64, "forgivingBase64"); function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; @@ -3793,6 +3958,7 @@ var require_dataURL = __commonJS({ } return input.slice(positionStart, position.position); } + __name(collectAnHTTPQuotedString, "collectAnHTTPQuotedString"); function serializeAMimeType(mimeType) { assert(mimeType !== "failure"); const { parameters, essence } = mimeType; @@ -3810,9 +3976,11 @@ var require_dataURL = __commonJS({ } return serialization; } + __name(serializeAMimeType, "serializeAMimeType"); function isHTTPWhiteSpace(char) { return char === "\r" || char === "\n" || char === " " || char === " "; } + __name(isHTTPWhiteSpace, "isHTTPWhiteSpace"); function removeHTTPWhitespace(str, leading = true, trailing = true) { let lead = 0; let trail = str.length - 1; @@ -3826,9 +3994,11 @@ var require_dataURL = __commonJS({ } return str.slice(lead, trail + 1); } + __name(removeHTTPWhitespace, "removeHTTPWhitespace"); function isASCIIWhitespace(char) { return char === "\r" || char === "\n" || char === " " || char === "\f" || char === " "; } + __name(isASCIIWhitespace, "isASCIIWhitespace"); function removeASCIIWhitespace(str, leading = true, trailing = true) { let lead = 0; let trail = str.length - 1; @@ -3842,6 +4012,7 @@ var require_dataURL = __commonJS({ } return str.slice(lead, trail + 1); } + __name(removeASCIIWhitespace, "removeASCIIWhitespace"); module2.exports = { dataURLProcessor, URLSerializer, @@ -3867,6 +4038,9 @@ var require_file = __commonJS({ var { parseMIMEType, serializeAMimeType } = require_dataURL(); var { kEnumerableProperty } = require_util(); var File = class _File extends Blob2 { + static { + __name(this, "File"); + } constructor(fileBits, fileName, options = {}) { webidl.argumentLengthCheck(arguments, 2, { header: "File constructor" }); fileBits = webidl.converters["sequence"](fileBits); @@ -3907,6 +4081,9 @@ var require_file = __commonJS({ } }; var FileLike = class _FileLike { + static { + __name(this, "FileLike"); + } constructor(blobLike, fileName, options = {}) { const n = fileName; const t = options.type; @@ -4026,6 +4203,7 @@ var require_file = __commonJS({ } return bytes; } + __name(processBlobParts, "processBlobParts"); function convertLineEndingsNative(s) { let nativeLineEnding = "\n"; if (process.platform === "win32") { @@ -4033,9 +4211,11 @@ var require_file = __commonJS({ } return s.replace(/\r?\n/g, nativeLineEnding); } + __name(convertLineEndingsNative, "convertLineEndingsNative"); function isFileLike(object) { return NativeFile && object instanceof NativeFile || object instanceof File || object && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && object[Symbol.toStringTag] === "File"; } + __name(isFileLike, "isFileLike"); module2.exports = { File, FileLike, isFileLike }; } }); @@ -4051,6 +4231,9 @@ var require_formdata = __commonJS({ var { Blob: Blob2, File: NativeFile } = require("buffer"); var File = NativeFile ?? UndiciFile; var FormData = class _FormData { + static { + __name(this, "FormData"); + } constructor(form) { if (form !== void 0) { throw webidl.errors.conversionFailed({ @@ -4192,6 +4375,7 @@ var require_formdata = __commonJS({ } return { name, value }; } + __name(makeEntry, "makeEntry"); module2.exports = { FormData }; } }); @@ -4264,8 +4448,8 @@ var require_body = __commonJS({ const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, "0")}`; const prefix = `--${boundary}\r Content-Disposition: form-data`; - const escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); - const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); + const escape = /* @__PURE__ */ __name((str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), "escape"); + const normalizeLinefeeds = /* @__PURE__ */ __name((value) => value.replace(/\r?\n|\r/g, "\r\n"), "normalizeLinefeeds"); const enc = new TextEncoder(); const blobParts = []; const rn = new Uint8Array([13, 10]); @@ -4299,7 +4483,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r length = null; } source = object; - action = async function* () { + action = /* @__PURE__ */ __name(async function* () { for (const part of blobParts) { if (part.stream) { yield* part.stream(); @@ -4307,7 +4491,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r yield part; } } - }; + }, "action"); type = "multipart/form-data; boundary=" + boundary; } else if (isBlobLike(object)) { source = object; @@ -4357,6 +4541,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r const body = { stream, source, length }; return [body, type]; } + __name(extractBody, "extractBody"); function safelyExtractBody(object, keepalive = false) { if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; @@ -4367,6 +4552,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r } return extractBody(object, keepalive); } + __name(safelyExtractBody, "safelyExtractBody"); function cloneBody(body) { const [out1, out2] = body.stream.tee(); const out2Clone = structuredClone(out2, { transfer: [out2] }); @@ -4378,6 +4564,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r source: body.source }; } + __name(cloneBody, "cloneBody"); async function* consumeBody(body) { if (body) { if (isUint8Array(body)) { @@ -4395,11 +4582,13 @@ Content-Type: ${value.type || "application/octet-stream"}\r } } } + __name(consumeBody, "consumeBody"); function throwIfAborted(state) { if (state.aborted) { throw new DOMException("The operation was aborted.", "AbortError"); } } + __name(throwIfAborted, "throwIfAborted"); function bodyMixinMethods(instance) { const methods = { blob() { @@ -4511,9 +4700,11 @@ Content-Type: ${value.type || "application/octet-stream"}\r }; return methods; } + __name(bodyMixinMethods, "bodyMixinMethods"); function mixinBody(prototype) { Object.assign(prototype.prototype, bodyMixinMethods(prototype)); } + __name(mixinBody, "mixinBody"); async function specConsumeBody(object, convertBytesToJSValue, instance) { webidl.brandCheck(object, instance); throwIfAborted(object[kState]); @@ -4521,14 +4712,14 @@ Content-Type: ${value.type || "application/octet-stream"}\r throw new TypeError("Body is unusable"); } const promise = createDeferredPromise(); - const errorSteps = (error) => promise.reject(error); - const successSteps = (data) => { + const errorSteps = /* @__PURE__ */ __name((error) => promise.reject(error), "errorSteps"); + const successSteps = /* @__PURE__ */ __name((data) => { try { promise.resolve(convertBytesToJSValue(data)); } catch (e) { errorSteps(e); } - }; + }, "successSteps"); if (object[kState].body == null) { successSteps(new Uint8Array()); return promise.promise; @@ -4536,9 +4727,11 @@ Content-Type: ${value.type || "application/octet-stream"}\r await fullyReadBody(object[kState].body, successSteps, errorSteps); return promise.promise; } + __name(specConsumeBody, "specConsumeBody"); function bodyUnusable(body) { return body != null && (body.stream.locked || util.isDisturbed(body.stream)); } + __name(bodyUnusable, "bodyUnusable"); function utf8DecodeBytes(buffer) { if (buffer.length === 0) { return ""; @@ -4549,9 +4742,11 @@ Content-Type: ${value.type || "application/octet-stream"}\r const output = new TextDecoder().decode(buffer); return output; } + __name(utf8DecodeBytes, "utf8DecodeBytes"); function parseJSONFromBytes(bytes) { return JSON.parse(utf8DecodeBytes(bytes)); } + __name(parseJSONFromBytes, "parseJSONFromBytes"); function bodyMimeType(object) { const { headersList } = object[kState]; const contentType = headersList.get("content-type"); @@ -4560,6 +4755,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r } return parseMIMEType(contentType); } + __name(bodyMimeType, "bodyMimeType"); module2.exports = { extractBody, safelyExtractBody, @@ -4601,6 +4797,9 @@ var require_response = __commonJS({ var { types } = require("util"); var ReadableStream = globalThis.ReadableStream || require("stream/web").ReadableStream; var Response = class _Response { + static { + __name(this, "Response"); + } // Creates network error Response. static error() { const relevantRealm = { settingsObject: {} }; @@ -4777,6 +4976,7 @@ var require_response = __commonJS({ } return newResponse; } + __name(cloneResponse, "cloneResponse"); function makeResponse(init) { return { aborted: false, @@ -4793,6 +4993,7 @@ var require_response = __commonJS({ urlList: init.urlList ? [...init.urlList] : [] }; } + __name(makeResponse, "makeResponse"); function makeNetworkError(reason) { const isError = isErrorLike(reason); return makeResponse({ @@ -4802,6 +5003,7 @@ var require_response = __commonJS({ aborted: reason && reason.name === "AbortError" }); } + __name(makeNetworkError, "makeNetworkError"); function makeFilteredResponse(response, state) { state = { internalResponse: response, @@ -4818,6 +5020,7 @@ var require_response = __commonJS({ } }); } + __name(makeFilteredResponse, "makeFilteredResponse"); function filterResponse(response, type) { if (type === "basic") { return makeFilteredResponse(response, { @@ -4849,10 +5052,12 @@ var require_response = __commonJS({ assert(false); } } + __name(filterResponse, "filterResponse"); function makeAppropriateNetworkError(fetchParams, err = null) { assert(isCancelled(fetchParams)); return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); } + __name(makeAppropriateNetworkError, "makeAppropriateNetworkError"); function initializeResponse(response, init, body) { if (init.status !== null && (init.status < 200 || init.status > 599)) { throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); @@ -4884,6 +5089,7 @@ var require_response = __commonJS({ } } } + __name(initializeResponse, "initializeResponse"); webidl.converters.ReadableStream = webidl.interfaceConverter( ReadableStream ); @@ -4953,6 +5159,9 @@ var require_dispatcher_weakref = __commonJS({ "use strict"; var { kConnected, kSize } = require_symbols(); var CompatWeakRef = class { + static { + __name(this, "CompatWeakRef"); + } constructor(value) { this.value = value; } @@ -4961,6 +5170,9 @@ var require_dispatcher_weakref = __commonJS({ } }; var CompatFinalizer = class { + static { + __name(this, "CompatFinalizer"); + } constructor(finalizer) { this.finalizer = finalizer; } @@ -5028,6 +5240,9 @@ var require_request = __commonJS({ signal.removeEventListener("abort", abort); }); var Request = class _Request { + static { + __name(this, "Request"); + } // https://fetch.spec.whatwg.org/#dom-request constructor(input, init = {}) { if (input === kInit) { @@ -5219,12 +5434,12 @@ var require_request = __commonJS({ } else { this[kAbortController] = ac; const acRef = new WeakRef(ac); - const abort = function() { + const abort = /* @__PURE__ */ __name(function() { const ac2 = acRef.deref(); if (ac2 !== void 0) { ac2.abort(this.reason); } - }; + }, "abort"); try { if (typeof getMaxListeners === "function" && getMaxListeners(signal) === defaultMaxListeners) { setMaxListeners(100, signal); @@ -5500,6 +5715,7 @@ var require_request = __commonJS({ request.url = request.urlList[0]; return request; } + __name(makeRequest, "makeRequest"); function cloneRequest(request) { const newRequest = makeRequest({ ...request, body: null }); if (request.body != null) { @@ -5507,6 +5723,7 @@ var require_request = __commonJS({ } return newRequest; } + __name(cloneRequest, "cloneRequest"); Object.defineProperties(Request.prototype, { method: kEnumerableProperty, url: kEnumerableProperty, @@ -5634,6 +5851,9 @@ var require_dispatcher = __commonJS({ "use strict"; var EventEmitter = require("events"); var Dispatcher = class extends EventEmitter { + static { + __name(this, "Dispatcher"); + } dispatch() { throw new Error("not implemented"); } @@ -5665,6 +5885,9 @@ var require_dispatcher_base = __commonJS({ var kOnClosed = Symbol("onClosed"); var kInterceptedDispatch = Symbol("Intercepted Dispatch"); var DispatcherBase = class extends Dispatcher { + static { + __name(this, "DispatcherBase"); + } constructor() { super(); this[kDestroyed] = false; @@ -5717,13 +5940,13 @@ var require_dispatcher_base = __commonJS({ } this[kClosed] = true; this[kOnClosed].push(callback); - const onClosed = () => { + const onClosed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnClosed]; this[kOnClosed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } - }; + }, "onClosed"); this[kClose]().then(() => this.destroy()).then(() => { queueMicrotask(onClosed); }); @@ -5760,13 +5983,13 @@ var require_dispatcher_base = __commonJS({ this[kDestroyed] = true; this[kOnDestroyed] = this[kOnDestroyed] || []; this[kOnDestroyed].push(callback); - const onDestroyed = () => { + const onDestroyed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnDestroyed]; this[kOnDestroyed] = null; for (let i = 0; i < callbacks.length; i++) { callbacks[i](null, null); } - }; + }, "onDestroyed"); this[kDestroy](err).then(() => { queueMicrotask(onDestroyed); }); @@ -5818,6 +6041,9 @@ var require_fixed_queue = __commonJS({ var kSize = 2048; var kMask = kSize - 1; var FixedCircularBuffer = class { + static { + __name(this, "FixedCircularBuffer"); + } constructor() { this.bottom = 0; this.top = 0; @@ -5844,6 +6070,9 @@ var require_fixed_queue = __commonJS({ } }; module2.exports = class FixedQueue { + static { + __name(this, "FixedQueue"); + } constructor() { this.head = this.tail = new FixedCircularBuffer(); } @@ -5874,6 +6103,9 @@ var require_pool_stats = __commonJS({ var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); var kPool = Symbol("pool"); var PoolStats = class { + static { + __name(this, "PoolStats"); + } constructor(pool) { this[kPool] = pool; } @@ -5921,13 +6153,16 @@ var require_pool_base = __commonJS({ var kRemoveClient = Symbol("remove client"); var kStats = Symbol("stats"); var PoolBase = class extends DispatcherBase { + static { + __name(this, "PoolBase"); + } constructor() { super(); this[kQueue] = new FixedQueue(); this[kClients] = []; this[kQueued] = 0; const pool = this; - this[kOnDrain] = function onDrain(origin, targets) { + this[kOnDrain] = /* @__PURE__ */ __name(function onDrain(origin, targets) { const queue = pool[kQueue]; let needDrain = false; while (!needDrain) { @@ -5946,7 +6181,7 @@ var require_pool_base = __commonJS({ if (pool[kClosedResolve] && queue.isEmpty()) { Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } - }; + }, "onDrain"); this[kOnConnect] = (origin, targets) => { pool.emit("connect", origin, [pool, ...targets]); }; @@ -6090,6 +6325,7 @@ var require_timers = __commonJS({ refreshTimeout(); } } + __name(onTimeout, "onTimeout"); function refreshTimeout() { if (fastNowTimeout && fastNowTimeout.refresh) { fastNowTimeout.refresh(); @@ -6101,7 +6337,11 @@ var require_timers = __commonJS({ } } } + __name(refreshTimeout, "refreshTimeout"); var Timeout = class { + static { + __name(this, "Timeout"); + } constructor(callback, delay, opaque) { this.callback = callback; this.delay = delay; @@ -6169,6 +6409,9 @@ var require_request2 = __commonJS({ channels.error = { hasSubscribers: false }; } var Request = class _Request { + static { + __name(this, "Request"); + } constructor(origin, { path, method, @@ -6400,6 +6643,7 @@ var require_request2 = __commonJS({ return skipAppend ? val : `${key}: ${val}\r `; } + __name(processHeaderValue, "processHeaderValue"); function processHeader(request, key, val, skipAppend = false) { if (val && (typeof val === "object" && !Array.isArray(val))) { throw new InvalidArgumentError(`invalid ${key} header`); @@ -6459,6 +6703,7 @@ var require_request2 = __commonJS({ } } } + __name(processHeader, "processHeader"); module2.exports = Request; } }); @@ -6475,6 +6720,9 @@ var require_connect = __commonJS({ var SessionCache; if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { SessionCache = class WeakSessionCache { + static { + __name(this, "WeakSessionCache"); + } constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); @@ -6502,6 +6750,9 @@ var require_connect = __commonJS({ }; } else { SessionCache = class SimpleSessionCache { + static { + __name(this, "SimpleSessionCache"); + } constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); @@ -6529,7 +6780,7 @@ var require_connect = __commonJS({ const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); timeout = timeout == null ? 1e4 : timeout; allowH2 = allowH2 != null ? allowH2 : false; - return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + return /* @__PURE__ */ __name(function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { @@ -6588,8 +6839,9 @@ var require_connect = __commonJS({ } }); return socket; - }; + }, "connect"); } + __name(buildConnector, "buildConnector"); function setupTimeout(onConnectTimeout2, timeout) { if (!timeout) { return () => { @@ -6612,9 +6864,11 @@ var require_connect = __commonJS({ clearImmediate(s2); }; } + __name(setupTimeout, "setupTimeout"); function onConnectTimeout(socket) { util.destroy(socket, new ConnectTimeoutError()); } + __name(onConnectTimeout, "onConnectTimeout"); module2.exports = buildConnector; } }); @@ -6635,6 +6889,7 @@ var require_utils = __commonJS({ }); return res; } + __name(enumToMap, "enumToMap"); exports2.enumToMap = enumToMap; } }); @@ -6972,6 +7227,9 @@ var require_RedirectHandler = __commonJS({ var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; var kBody = Symbol("body"); var BodyAsyncIterable = class { + static { + __name(this, "BodyAsyncIterable"); + } constructor(body) { this[kBody] = body; this[kBodyUsed] = false; @@ -6983,6 +7241,9 @@ var require_RedirectHandler = __commonJS({ } }; var RedirectHandler = class { + static { + __name(this, "RedirectHandler"); + } constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); @@ -7074,9 +7335,11 @@ var require_RedirectHandler = __commonJS({ } } } + __name(parseLocation, "parseLocation"); function shouldRemoveHeader(header, removeContent, unknownOrigin) { return header.length === 4 && header.toString().toLowerCase() === "host" || removeContent && header.toString().toLowerCase().indexOf("content-") === 0 || unknownOrigin && header.length === 13 && header.toString().toLowerCase() === "authorization" || unknownOrigin && header.length === 6 && header.toString().toLowerCase() === "cookie"; } + __name(shouldRemoveHeader, "shouldRemoveHeader"); function cleanRequestHeaders(headers, removeContent, unknownOrigin) { const ret = []; if (Array.isArray(headers)) { @@ -7096,6 +7359,7 @@ var require_RedirectHandler = __commonJS({ } return ret; } + __name(cleanRequestHeaders, "cleanRequestHeaders"); module2.exports = RedirectHandler; } }); @@ -7107,7 +7371,7 @@ var require_redirectInterceptor = __commonJS({ var RedirectHandler = require_RedirectHandler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { return (dispatch) => { - return function Intercept(opts, handler) { + return /* @__PURE__ */ __name(function Intercept(opts, handler) { const { maxRedirections = defaultMaxRedirections } = opts; if (!maxRedirections) { return dispatch(opts, handler); @@ -7115,9 +7379,10 @@ var require_redirectInterceptor = __commonJS({ const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); opts = { ...opts, maxRedirections: 0 }; return dispatch(opts, redirectHandler); - }; + }, "Intercept"); }; } + __name(createRedirectInterceptor, "createRedirectInterceptor"); module2.exports = createRedirectInterceptor; } }); @@ -7249,6 +7514,9 @@ var require_client = __commonJS({ channels.connected = { hasSubscribers: false }; } var Client = class extends DispatcherBase { + static { + __name(this, "Client"); + } /** * * @param {string|URL} url @@ -7456,13 +7724,13 @@ var require_client = __commonJS({ const request = requests[i]; errorRequest(this, request, err); } - const callback = () => { + const callback = /* @__PURE__ */ __name(() => { if (this[kClosedResolve]) { this[kClosedResolve](); this[kClosedResolve] = null; } resolve(); - }; + }, "callback"); if (this[kHTTP2Session] != null) { util.destroy(this[kHTTP2Session], err); this[kHTTP2Session] = null; @@ -7482,6 +7750,7 @@ var require_client = __commonJS({ this[kSocket][kError] = err; onError(this[kClient], err); } + __name(onHttp2SessionError, "onHttp2SessionError"); function onHttp2FrameError(type, code, id) { const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); if (id === 0) { @@ -7489,10 +7758,12 @@ var require_client = __commonJS({ onError(this[kClient], err); } } + __name(onHttp2FrameError, "onHttp2FrameError"); function onHttp2SessionEnd() { util.destroy(this, new SocketError("other side closed")); util.destroy(this[kSocket], new SocketError("other side closed")); } + __name(onHttp2SessionEnd, "onHttp2SessionEnd"); function onHTTP2GoAway(code) { const client = this[kClient]; const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`); @@ -7520,6 +7791,7 @@ var require_client = __commonJS({ ); resume(client); } + __name(onHTTP2GoAway, "onHTTP2GoAway"); var constants = require_constants2(); var createRedirectInterceptor = require_redirectInterceptor(); var EMPTY_BUF = Buffer.alloc(0); @@ -7573,6 +7845,7 @@ var require_client = __commonJS({ } }); } + __name(lazyllhttp, "lazyllhttp"); var llhttpInstance = null; var llhttpPromise = lazyllhttp(); llhttpPromise.catch(); @@ -7584,6 +7857,9 @@ var require_client = __commonJS({ var TIMEOUT_BODY = 2; var TIMEOUT_IDLE = 3; var Parser = class { + static { + __name(this, "Parser"); + } constructor(client, socket, { exports: exports3 }) { assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports3; @@ -7960,10 +8236,14 @@ var require_client = __commonJS({ util.destroy(socket, new InformationalError("socket idle timeout")); } } + __name(onParserTimeout, "onParserTimeout"); function onSocketReadable() { const { [kParser]: parser } = this; - parser.readMore(); + if (parser) { + parser.readMore(); + } } + __name(onSocketReadable, "onSocketReadable"); function onSocketError(err) { const { [kClient]: client, [kParser]: parser } = this; assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); @@ -7976,6 +8256,7 @@ var require_client = __commonJS({ this[kError] = err; onError(this[kClient], err); } + __name(onSocketError, "onSocketError"); function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { assert(client[kPendingIdx] === client[kRunningIdx]); @@ -7987,6 +8268,7 @@ var require_client = __commonJS({ assert(client[kSize] === 0); } } + __name(onError, "onError"); function onSocketEnd() { const { [kParser]: parser, [kClient]: client } = this; if (client[kHTTPConnVersion] !== "h2") { @@ -7997,6 +8279,7 @@ var require_client = __commonJS({ } util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); } + __name(onSocketEnd, "onSocketEnd"); function onSocketClose() { const { [kClient]: client, [kParser]: parser } = this; if (client[kHTTPConnVersion] === "h1" && parser) { @@ -8025,6 +8308,7 @@ var require_client = __commonJS({ client.emit("disconnect", client[kUrl], [client], err); resume(client); } + __name(onSocketClose, "onSocketClose"); async function connect(client) { assert(!client[kConnecting]); assert(!client[kSocket]); @@ -8161,10 +8445,12 @@ var require_client = __commonJS({ } resume(client); } + __name(connect, "connect"); function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } + __name(emitDrain, "emitDrain"); function resume(client, sync) { if (client[kResuming] === 2) { return; @@ -8178,6 +8464,7 @@ var require_client = __commonJS({ client[kRunningIdx] = 0; } } + __name(resume, "resume"); function _resume(client, sync) { while (true) { if (client.destroyed) { @@ -8280,6 +8567,7 @@ var require_client = __commonJS({ } } } + __name(_resume, "_resume"); function write(client, request) { if (client[kHTTPConnVersion] === "h2") { writeH2(client, client[kHTTP2Session], request); @@ -8396,6 +8684,7 @@ upgrade: ${upgrade}\r } return true; } + __name(write, "write"); function writeH2(client, session, request) { const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; let headers; @@ -8574,13 +8863,16 @@ upgrade: ${upgrade}\r assert(false); } } + __name(writeBodyH2, "writeBodyH2"); } + __name(writeH2, "writeH2"); function writeStream({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); if (client[kHTTPConnVersion] === "h2") { let onPipeData = function(chunk) { request.onBodySent(chunk); }; + __name(onPipeData, "onPipeData"); const pipe = pipeline( body, h2stream, @@ -8602,7 +8894,7 @@ upgrade: ${upgrade}\r } let finished = false; const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }); - const onData = function(chunk) { + const onData = /* @__PURE__ */ __name(function(chunk) { if (finished) { return; } @@ -8613,19 +8905,19 @@ upgrade: ${upgrade}\r } catch (err) { util.destroy(this, err); } - }; - const onDrain = function() { + }, "onData"); + const onDrain = /* @__PURE__ */ __name(function() { if (finished) { return; } if (body.resume) { body.resume(); } - }; - const onAbort = function() { + }, "onDrain"); + const onAbort = /* @__PURE__ */ __name(function() { onFinished(new RequestAbortedError()); - }; - const onFinished = function(err) { + }, "onAbort"); + const onFinished = /* @__PURE__ */ __name(function(err) { if (finished) { return; } @@ -8646,13 +8938,14 @@ upgrade: ${upgrade}\r } else { util.destroy(body); } - }; + }, "onFinished"); body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onAbort); if (body.resume) { body.resume(); } socket.on("drain", onDrain).on("error", onFinished); } + __name(writeStream, "writeStream"); async function writeBlob({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { assert(contentLength === body.size, "blob body must have content length"); const isH2 = client[kHTTPConnVersion] === "h2"; @@ -8683,6 +8976,7 @@ upgrade: ${upgrade}\r util.destroy(isH2 ? h2stream : socket, err); } } + __name(writeBlob, "writeBlob"); async function writeIterable({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; @@ -8693,14 +8987,15 @@ upgrade: ${upgrade}\r cb(); } } - const waitForDrain = () => new Promise((resolve, reject) => { + __name(onDrain, "onDrain"); + const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => { assert(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve; } - }); + }), "waitForDrain"); if (client[kHTTPConnVersion] === "h2") { h2stream.on("close", onDrain).on("drain", onDrain); try { @@ -8741,7 +9036,11 @@ upgrade: ${upgrade}\r socket.off("close", onDrain).off("drain", onDrain); } } + __name(writeIterable, "writeIterable"); var AsyncWriter = class { + static { + __name(this, "AsyncWriter"); + } constructor({ socket, request, contentLength, client, expectsPayload, header }) { this.socket = socket; this.request = request; @@ -8855,6 +9154,7 @@ ${len.toString(16)}\r client.emit("error", err2); } } + __name(errorRequest, "errorRequest"); module2.exports = Client; } }); @@ -8883,7 +9183,11 @@ var require_pool = __commonJS({ function defaultFactory(origin, opts) { return new Client(origin, opts); } + __name(defaultFactory, "defaultFactory"); var Pool = class extends PoolBase { + static { + __name(this, "Pool"); + } constructor(origin, { connections, factory = defaultFactory, @@ -8964,7 +9268,11 @@ var require_agent = __commonJS({ function defaultFactory(origin, opts) { return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); } + __name(defaultFactory, "defaultFactory"); var Agent = class extends DispatcherBase { + static { + __name(this, "Agent"); + } constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { super(); if (typeof factory !== "function") { @@ -9080,9 +9388,11 @@ var require_global2 = __commonJS({ configurable: false }); } + __name(setGlobalDispatcher, "setGlobalDispatcher"); function getGlobalDispatcher() { return globalThis[globalDispatcher]; } + __name(getGlobalDispatcher, "getGlobalDispatcher"); module2.exports = { setGlobalDispatcher, getGlobalDispatcher @@ -9093,7 +9403,7 @@ var require_global2 = __commonJS({ // lib/fetch/index.js var require_fetch = __commonJS({ "lib/fetch/index.js"(exports2, module2) { - var esbuildDetection = 1; + "use strict"; var { Response, makeNetworkError, @@ -9157,6 +9467,9 @@ var require_fetch = __commonJS({ var resolveObjectURL; var ReadableStream = globalThis.ReadableStream; var Fetch = class extends EE { + static { + __name(this, "Fetch"); + } constructor(dispatcher) { super(); this.dispatcher = dispatcher; @@ -9219,8 +9532,8 @@ var require_fetch = __commonJS({ abortFetch(p, request, responseObject, requestObject.signal.reason); } ); - const handleFetchDone = (response) => finalizeAndReportTiming(response, "fetch"); - const processResponse = (response) => { + const handleFetchDone = /* @__PURE__ */ __name((response) => finalizeAndReportTiming(response, "fetch"), "handleFetchDone"); + const processResponse = /* @__PURE__ */ __name((response) => { if (locallyAborted) { return; } @@ -9241,7 +9554,7 @@ var require_fetch = __commonJS({ responseObject[kHeaders][kGuard] = "immutable"; responseObject[kHeaders][kRealm] = relevantRealm; p.resolve(responseObject); - }; + }, "processResponse"); controller = fetching({ request, processResponseEndOfBody: handleFetchDone, @@ -9251,6 +9564,7 @@ var require_fetch = __commonJS({ }); return p.promise; } + __name(fetch2, "fetch"); function finalizeAndReportTiming(response, initiatorType = "other") { if (response.type === "error" && response.aborted) { return; @@ -9283,11 +9597,13 @@ var require_fetch = __commonJS({ cacheState ); } + __name(finalizeAndReportTiming, "finalizeAndReportTiming"); function markResourceTiming(timingInfo, originalURL, initiatorType, globalThis2, cacheState) { if (nodeMajor > 18 || nodeMajor === 18 && nodeMinor >= 2) { performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis2, cacheState); } } + __name(markResourceTiming, "markResourceTiming"); function abortFetch(p, request, responseObject, error) { if (!error) { error = new DOMException("The operation was aborted.", "AbortError"); @@ -9314,6 +9630,7 @@ var require_fetch = __commonJS({ }); } } + __name(abortFetch, "abortFetch"); function fetching({ request, processRequestBodyChunkLength, @@ -9379,6 +9696,7 @@ var require_fetch = __commonJS({ }); return fetchParams.controller; } + __name(fetching, "fetching"); async function mainFetch(fetchParams, recursive = false) { const request = fetchParams.request; let response = null; @@ -9458,24 +9776,25 @@ var require_fetch = __commonJS({ fetchParams.controller.dump = true; } if (request.integrity) { - const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); + const processBodyError = /* @__PURE__ */ __name((reason) => fetchFinale(fetchParams, makeNetworkError(reason)), "processBodyError"); if (request.responseTainting === "opaque" || response.body == null) { processBodyError(response.error); return; } - const processBody = (bytes) => { + const processBody = /* @__PURE__ */ __name((bytes) => { if (!bytesMatch(bytes, request.integrity)) { processBodyError("integrity mismatch"); return; } response.body = safelyExtractBody(bytes)[0]; fetchFinale(fetchParams, response); - }; + }, "processBody"); await fullyReadBody(response.body, processBody, processBodyError); } else { fetchFinale(fetchParams, response); } } + __name(mainFetch, "mainFetch"); async function schemeFetch(fetchParams) { if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { return makeAppropriateNetworkError(fetchParams); @@ -9539,12 +9858,14 @@ var require_fetch = __commonJS({ } } } + __name(schemeFetch, "schemeFetch"); function finalizeResponse(fetchParams, response) { fetchParams.request.done = true; if (fetchParams.processResponseDone != null) { queueMicrotask(() => fetchParams.processResponseDone(response)); } } + __name(finalizeResponse, "finalizeResponse"); async function fetchFinale(fetchParams, response) { if (response.type === "error") { response.urlList = [fetchParams.request.urlList[0]]; @@ -9552,21 +9873,21 @@ var require_fetch = __commonJS({ startTime: fetchParams.timingInfo.startTime }); } - const processResponseEndOfBody = () => { + const processResponseEndOfBody = /* @__PURE__ */ __name(() => { fetchParams.request.done = true; if (fetchParams.processResponseEndOfBody != null) { queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); } - }; + }, "processResponseEndOfBody"); if (fetchParams.processResponse != null) { queueMicrotask(() => fetchParams.processResponse(response)); } if (response.body == null) { processResponseEndOfBody(); } else { - const identityTransformAlgorithm = (chunk, controller) => { + const identityTransformAlgorithm = /* @__PURE__ */ __name((chunk, controller) => { controller.enqueue(chunk); - }; + }, "identityTransformAlgorithm"); const transformStream = new TransformStream({ start() { }, @@ -9584,8 +9905,8 @@ var require_fetch = __commonJS({ response.body = { stream: response.body.stream.pipeThrough(transformStream) }; } if (fetchParams.processResponseConsumeBody != null) { - const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes); - const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure); + const processBody = /* @__PURE__ */ __name((nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes), "processBody"); + const processBodyError = /* @__PURE__ */ __name((failure) => fetchParams.processResponseConsumeBody(response, failure), "processBodyError"); if (response.body == null) { queueMicrotask(() => processBody(null)); } else { @@ -9593,6 +9914,7 @@ var require_fetch = __commonJS({ } } } + __name(fetchFinale, "fetchFinale"); async function httpFetch(fetchParams) { const request = fetchParams.request; let response = null; @@ -9637,6 +9959,7 @@ var require_fetch = __commonJS({ response.timingInfo = timingInfo; return response; } + __name(httpFetch, "httpFetch"); async function httpRedirectFetch(fetchParams, response) { const request = fetchParams.request; const actualResponse = response.internalResponse ? response.internalResponse : response; @@ -9695,6 +10018,7 @@ var require_fetch = __commonJS({ setRequestReferrerPolicyOnRedirect(request, actualResponse); return mainFetch(fetchParams, true); } + __name(httpRedirectFetch, "httpRedirectFetch"); async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { const request = fetchParams.request; let httpFetchParams = null; @@ -9730,7 +10054,7 @@ var require_fetch = __commonJS({ appendRequestOriginHeader(httpRequest); appendFetchMetadata(httpRequest); if (!httpRequest.headersList.contains("user-agent")) { - httpRequest.headersList.append("user-agent", typeof esbuildDetection === "undefined" ? "undici" : "node"); + httpRequest.headersList.append("user-agent", false ? "undici" : "node"); } if (httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since") || httpRequest.headersList.contains("if-none-match") || httpRequest.headersList.contains("if-unmodified-since") || httpRequest.headersList.contains("if-match") || httpRequest.headersList.contains("if-range"))) { httpRequest.cache = "no-store"; @@ -9815,6 +10139,7 @@ var require_fetch = __commonJS({ } return response; } + __name(httpNetworkOrCacheFetch, "httpNetworkOrCacheFetch"); async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { @@ -9842,22 +10167,22 @@ var require_fetch = __commonJS({ if (request.body == null && fetchParams.processRequestEndOfBody) { queueMicrotask(() => fetchParams.processRequestEndOfBody()); } else if (request.body != null) { - const processBodyChunk = async function* (bytes) { + const processBodyChunk = /* @__PURE__ */ __name(async function* (bytes) { if (isCancelled(fetchParams)) { return; } yield bytes; fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); - }; - const processEndOfBody = () => { + }, "processBodyChunk"); + const processEndOfBody = /* @__PURE__ */ __name(() => { if (isCancelled(fetchParams)) { return; } if (fetchParams.processRequestEndOfBody) { fetchParams.processRequestEndOfBody(); } - }; - const processBodyError = (e) => { + }, "processEndOfBody"); + const processBodyError = /* @__PURE__ */ __name((e) => { if (isCancelled(fetchParams)) { return; } @@ -9866,7 +10191,7 @@ var require_fetch = __commonJS({ } else { fetchParams.controller.terminate(e); } - }; + }, "processBodyError"); requestBody = async function* () { try { for await (const bytes of request.body.stream) { @@ -9894,12 +10219,12 @@ var require_fetch = __commonJS({ } return makeNetworkError(err); } - const pullAlgorithm = () => { + const pullAlgorithm = /* @__PURE__ */ __name(() => { fetchParams.controller.resume(); - }; - const cancelAlgorithm = (reason) => { + }, "pullAlgorithm"); + const cancelAlgorithm = /* @__PURE__ */ __name((reason) => { fetchParams.controller.abort(reason); - }; + }, "cancelAlgorithm"); if (!ReadableStream) { ReadableStream = require("stream/web").ReadableStream; } @@ -9979,6 +10304,7 @@ var require_fetch = __commonJS({ } fetchParams.controller.connection.destroy(); } + __name(onAborted, "onAborted"); return response; async function dispatch({ body }) { const url = requestCurrentURL(request); @@ -10113,7 +10439,9 @@ var require_fetch = __commonJS({ } )); } + __name(dispatch, "dispatch"); } + __name(httpNetworkFetch, "httpNetworkFetch"); module2.exports = { fetch: fetch2, Fetch, @@ -10192,6 +10520,9 @@ var require_events = __commonJS({ var { kEnumerableProperty } = require_util(); var { MessagePort } = require("worker_threads"); var MessageEvent = class _MessageEvent extends Event { + static { + __name(this, "MessageEvent"); + } #eventInit; constructor(type, eventInitDict = {}) { webidl.argumentLengthCheck(arguments, 1, { header: "MessageEvent constructor" }); @@ -10238,6 +10569,9 @@ var require_events = __commonJS({ } }; var CloseEvent = class _CloseEvent extends Event { + static { + __name(this, "CloseEvent"); + } #eventInit; constructor(type, eventInitDict = {}) { webidl.argumentLengthCheck(arguments, 1, { header: "CloseEvent constructor" }); @@ -10260,6 +10594,9 @@ var require_events = __commonJS({ } }; var ErrorEvent = class _ErrorEvent extends Event { + static { + __name(this, "ErrorEvent"); + } #eventInit; constructor(type, eventInitDict) { webidl.argumentLengthCheck(arguments, 1, { header: "ErrorEvent constructor" }); @@ -10437,16 +10774,20 @@ var require_util3 = __commonJS({ function isEstablished(ws) { return ws[kReadyState] === states.OPEN; } + __name(isEstablished, "isEstablished"); function isClosing(ws) { return ws[kReadyState] === states.CLOSING; } + __name(isClosing, "isClosing"); function isClosed(ws) { return ws[kReadyState] === states.CLOSED; } + __name(isClosed, "isClosed"); function fireEvent(e, target, eventConstructor = Event, eventInitDict) { const event = new eventConstructor(e, eventInitDict); target.dispatchEvent(event); } + __name(fireEvent, "fireEvent"); function websocketMessageReceived(ws, type, data) { if (ws[kReadyState] !== states.OPEN) { return; @@ -10471,6 +10812,7 @@ var require_util3 = __commonJS({ data: dataForEvent }); } + __name(websocketMessageReceived, "websocketMessageReceived"); function isValidSubprotocol(protocol) { if (protocol.length === 0) { return false; @@ -10484,6 +10826,7 @@ var require_util3 = __commonJS({ } return true; } + __name(isValidSubprotocol, "isValidSubprotocol"); function isValidStatusCode(code) { if (code >= 1e3 && code < 1015) { return code !== 1004 && // reserved @@ -10492,6 +10835,7 @@ var require_util3 = __commonJS({ } return code >= 3e3 && code <= 4999; } + __name(isValidStatusCode, "isValidStatusCode"); function failWebsocketConnection(ws, reason) { const { [kController]: controller, [kResponse]: response } = ws; controller.abort(); @@ -10504,6 +10848,7 @@ var require_util3 = __commonJS({ }); } } + __name(failWebsocketConnection, "failWebsocketConnection"); module2.exports = { isEstablished, isClosing, @@ -10620,11 +10965,13 @@ var require_connection = __commonJS({ }); return controller; } + __name(establishWebSocketConnection, "establishWebSocketConnection"); function onSocketData(chunk) { if (!this.ws[kByteParser].write(chunk)) { this.pause(); } } + __name(onSocketData, "onSocketData"); function onSocketClose() { const { ws } = this; const wasClean = ws[kSentClose] && ws[kReceivedClose]; @@ -10651,6 +10998,7 @@ var require_connection = __commonJS({ }); } } + __name(onSocketClose, "onSocketClose"); function onSocketError(error) { const { ws } = this; ws[kReadyState] = states.CLOSING; @@ -10659,6 +11007,7 @@ var require_connection = __commonJS({ } this.destroy(); } + __name(onSocketError, "onSocketError"); module2.exports = { establishWebSocketConnection }; @@ -10676,6 +11025,9 @@ var require_frame = __commonJS({ } catch { } var WebsocketFrameSend = class { + static { + __name(this, "WebsocketFrameSend"); + } /** * @param {Buffer|undefined} data */ @@ -10736,6 +11088,9 @@ var require_receiver = __commonJS({ channels.ping = diagnosticsChannel.channel("undici:websocket:ping"); channels.pong = diagnosticsChannel.channel("undici:websocket:pong"); var ByteParser = class extends Writable { + static { + __name(this, "ByteParser"); + } #buffers = []; #byteOffset = 0; #state = parserStates.INFO; @@ -10985,6 +11340,9 @@ var require_websocket = __commonJS({ var { types } = require("util"); var experimentalWarned = false; var WebSocket = class _WebSocket extends EventTarget { + static { + __name(this, "WebSocket"); + } #events = { open: null, error: null, @@ -11260,9 +11618,9 @@ var require_websocket = __commonJS({ #onConnectionEstablished(response) { this[kResponse] = response; const parser = new ByteParser(this); - parser.on("drain", function onParserDrain() { + parser.on("drain", /* @__PURE__ */ __name(function onParserDrain() { this.ws[kResponse].socket.resume(); - }); + }, "onParserDrain")); response.socket.ws = this; this[kByteParser] = parser; this[kReadyState] = states.OPEN; @@ -11365,14 +11723,14 @@ var require_websocket = __commonJS({ // index-fetch.js var fetchImpl = require_fetch().fetch; -module.exports.fetch = async function fetch(resource, init = void 0) { +module.exports.fetch = /* @__PURE__ */ __name(async function fetch(resource, init = void 0) { try { return await fetchImpl(resource, init); } catch (err) { Error.captureStackTrace(err, this); throw err; } -}; +}, "fetch"); module.exports.FormData = require_formdata().FormData; module.exports.Headers = require_headers().Headers; module.exports.Response = require_response().Response; diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 0f68d2741c0279..aeb262bb0a9f34 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -28,7 +28,7 @@ This a list of all the dependencies: * [openssl 3.0.8][] * [postject 1.0.0-alpha.6][] * [simdutf 3.2.17][] -* [undici 5.26.3][] +* [undici 5.26.4][] * [uvwasi 0.0.16][] * [V8 11.3.244.8][] * [zlib 1.2.13.1-motley-f5fd0ad][] @@ -291,7 +291,7 @@ The [postject](https://github.com/nodejs/postject) dependency is used for the The [simdutf](https://github.com/simdutf/simdutf) dependency is a C++ library for fast UTF-8 decoding and encoding. -### undici 5.26.3 +### undici 5.26.4 The [undici](https://github.com/nodejs/undici) dependency is an HTTP/1.1 client, written from scratch for Node.js.. @@ -345,7 +345,7 @@ performance improvements not currently available in standard zlib. [openssl 3.0.8]: #openssl-308 [postject 1.0.0-alpha.6]: #postject-100-alpha6 [simdutf 3.2.17]: #simdutf-3217 -[undici 5.26.3]: #undici-5263 +[undici 5.26.4]: #undici-5264 [update-openssl-action]: ../../../.github/workflows/update-openssl.yml [uvwasi 0.0.16]: #uvwasi-0016 [v8 11.3.244.8]: #v8-1132448 diff --git a/src/undici_version.h b/src/undici_version.h index 31a28ae20d3510..59e33f5a40b31e 100644 --- a/src/undici_version.h +++ b/src/undici_version.h @@ -2,5 +2,5 @@ // Refer to tools/update-undici.sh #ifndef SRC_UNDICI_VERSION_H_ #define SRC_UNDICI_VERSION_H_ -#define UNDICI_VERSION "5.26.3" +#define UNDICI_VERSION "5.26.4" #endif // SRC_UNDICI_VERSION_H_ From 3cc41d253c412639f551e7ac11f3befaa121a086 Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Fri, 13 Oct 2023 06:55:37 -0700 Subject: [PATCH 003/232] deps: upgrade npm to 10.2.0 PR-URL: https://github.com/nodejs/node/pull/50027 Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/npm/docs/content/commands/npm-audit.md | 31 + deps/npm/docs/content/commands/npm-ci.md | 14 + deps/npm/docs/content/commands/npm-dedupe.md | 14 + deps/npm/docs/content/commands/npm-doctor.md | 2 +- .../docs/content/commands/npm-find-dupes.md | 14 + deps/npm/docs/content/commands/npm-init.md | 50 + .../content/commands/npm-install-ci-test.md | 14 + .../docs/content/commands/npm-install-test.md | 14 + deps/npm/docs/content/commands/npm-install.md | 14 + deps/npm/docs/content/commands/npm-link.md | 14 + deps/npm/docs/content/commands/npm-ls.md | 16 +- deps/npm/docs/content/commands/npm-prune.md | 14 + deps/npm/docs/content/commands/npm-query.md | 29 + deps/npm/docs/content/commands/npm-sbom.md | 318 ++ deps/npm/docs/content/commands/npm-update.md | 14 + deps/npm/docs/content/commands/npm.md | 2 +- deps/npm/docs/content/using-npm/config.md | 20 + deps/npm/docs/output/commands/npm-audit.html | 23 +- deps/npm/docs/output/commands/npm-ci.html | 11 +- deps/npm/docs/output/commands/npm-dedupe.html | 11 +- deps/npm/docs/output/commands/npm-doctor.html | 2 +- .../docs/output/commands/npm-find-dupes.html | 11 +- deps/npm/docs/output/commands/npm-init.html | 37 +- .../output/commands/npm-install-ci-test.html | 11 +- .../output/commands/npm-install-test.html | 11 +- .../npm/docs/output/commands/npm-install.html | 11 +- deps/npm/docs/output/commands/npm-link.html | 11 +- deps/npm/docs/output/commands/npm-ls.html | 13 +- deps/npm/docs/output/commands/npm-prune.html | 11 +- deps/npm/docs/output/commands/npm-query.html | 21 + deps/npm/docs/output/commands/npm-sbom.html | 439 ++ deps/npm/docs/output/commands/npm-update.html | 11 +- deps/npm/docs/output/commands/npm.html | 2 +- deps/npm/docs/output/using-npm/config.html | 16 +- deps/npm/lib/commands/audit.js | 7 +- deps/npm/lib/commands/bugs.js | 5 +- deps/npm/lib/commands/ci.js | 1 + deps/npm/lib/commands/dedupe.js | 1 + deps/npm/lib/commands/deprecate.js | 2 +- deps/npm/lib/commands/doctor.js | 2 +- deps/npm/lib/commands/find-dupes.js | 1 + deps/npm/lib/commands/init.js | 5 + deps/npm/lib/commands/install.js | 1 + deps/npm/lib/commands/link.js | 1 + deps/npm/lib/commands/ls.js | 1 + deps/npm/lib/commands/outdated.js | 2 +- deps/npm/lib/commands/prune.js | 1 + deps/npm/lib/commands/query.js | 15 +- deps/npm/lib/commands/sbom.js | 155 + deps/npm/lib/commands/update.js | 1 + deps/npm/lib/utils/ansi-trim.js | 3 - deps/npm/lib/utils/cmd-list.js | 1 + deps/npm/lib/utils/format-search-stream.js | 2 +- deps/npm/lib/utils/sbom-cyclonedx.js | 194 + deps/npm/lib/utils/sbom-spdx.js | 175 + deps/npm/man/man1/npm-access.1 | 2 +- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-audit.1 | 29 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-ci.1 | 16 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 16 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-diff.1 | 2 +- deps/npm/man/man1/npm-dist-tag.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-doctor.1 | 4 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-exec.1 | 2 +- deps/npm/man/man1/npm-explain.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-find-dupes.1 | 16 +- deps/npm/man/man1/npm-fund.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-hook.1 | 2 +- deps/npm/man/man1/npm-init.1 | 52 +- deps/npm/man/man1/npm-install-ci-test.1 | 16 +- deps/npm/man/man1/npm-install-test.1 | 16 +- deps/npm/man/man1/npm-install.1 | 16 +- deps/npm/man/man1/npm-link.1 | 16 +- deps/npm/man/man1/npm-login.1 | 2 +- deps/npm/man/man1/npm-logout.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 18 +- deps/npm/man/man1/npm-org.1 | 2 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-ping.1 | 2 +- deps/npm/man/man1/npm-pkg.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-profile.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 16 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-query.1 | 22 +- deps/npm/man/man1/npm-rebuild.1 | 2 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 2 +- deps/npm/man/man1/npm-sbom.1 | 314 ++ deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-team.1 | 2 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-token.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 2 +- deps/npm/man/man1/npm-unstar.1 | 2 +- deps/npm/man/man1/npm-update.1 | 16 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man1/npx.1 | 2 +- deps/npm/man/man5/folders.5 | 2 +- deps/npm/man/man5/install.5 | 2 +- deps/npm/man/man5/npm-global.5 | 2 +- deps/npm/man/man5/npm-json.5 | 2 +- deps/npm/man/man5/npm-shrinkwrap-json.5 | 2 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package-json.5 | 2 +- deps/npm/man/man5/package-lock-json.5 | 2 +- deps/npm/man/man7/config.7 | 22 +- deps/npm/man/man7/dependency-selectors.7 | 2 +- deps/npm/man/man7/developers.7 | 2 +- deps/npm/man/man7/logging.7 | 2 +- deps/npm/man/man7/orgs.7 | 2 +- deps/npm/man/man7/package-spec.7 | 2 +- deps/npm/man/man7/registry.7 | 2 +- deps/npm/man/man7/removal.7 | 2 +- deps/npm/man/man7/scope.7 | 2 +- deps/npm/man/man7/scripts.7 | 2 +- deps/npm/man/man7/workspaces.7 | 2 +- .../node_modules/@npmcli/agent/lib/agents.js | 311 +- .../node_modules/@npmcli/agent/lib/errors.js | 8 +- .../node_modules/@npmcli/agent/lib/index.js | 44 +- .../node_modules/@npmcli/agent/lib/options.js | 64 +- .../node_modules/@npmcli/agent/lib/proxy.js | 50 +- .../node_modules/@npmcli/agent/lib/util.js | 84 - .../node_modules/@npmcli/agent/package.json | 19 +- .../@npmcli/arborist/lib/arborist/audit.js | 10 +- .../arborist/lib/query-selector-all.js | 16 +- .../@npmcli/arborist/package.json | 20 +- .../config/lib/definitions/definitions.js | 33 + .../node_modules/@npmcli/config/package.json | 14 +- .../node_modules/@npmcli/query/lib/index.js | 60 +- .../node_modules/@npmcli/query/package.json | 9 +- deps/npm/node_modules/glob/README.md | 2 +- .../node_modules/glob/dist/cjs/package.json | 4 - .../node_modules/glob/dist/cjs/src/bin.d.ts | 3 - .../glob/dist/cjs/src/bin.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/bin.js.map | 1 - .../glob/dist/cjs/src/glob.d.ts.map | 1 - .../glob/dist/cjs/src/glob.js.map | 1 - .../glob/dist/cjs/src/has-magic.d.ts.map | 1 - .../glob/dist/cjs/src/has-magic.js.map | 1 - .../glob/dist/cjs/src/ignore.d.ts.map | 1 - .../glob/dist/cjs/src/ignore.js.map | 1 - .../glob/dist/cjs/src/index.d.ts.map | 1 - .../glob/dist/cjs/src/index.js.map | 1 - .../glob/dist/cjs/src/pattern.d.ts.map | 1 - .../glob/dist/cjs/src/pattern.js.map | 1 - .../glob/dist/cjs/src/processor.d.ts.map | 1 - .../glob/dist/cjs/src/processor.js.map | 1 - .../glob/dist/cjs/src/walker.d.ts.map | 1 - .../glob/dist/cjs/src/walker.js.map | 1 - .../glob/dist/{cjs/src => commonjs}/glob.d.ts | 0 .../glob/dist/{mjs => commonjs}/glob.d.ts.map | 2 +- .../glob/dist/{cjs/src => commonjs}/glob.js | 7 +- .../glob/dist/commonjs/glob.js.map | 1 + .../dist/{cjs/src => commonjs}/has-magic.d.ts | 0 .../dist/{mjs => commonjs}/has-magic.d.ts.map | 0 .../dist/{cjs/src => commonjs}/has-magic.js | 0 .../glob/dist/commonjs/has-magic.js.map | 1 + .../dist/{cjs/src => commonjs}/ignore.d.ts | 0 .../dist/{mjs => commonjs}/ignore.d.ts.map | 2 +- .../glob/dist/{cjs/src => commonjs}/ignore.js | 7 +- .../glob/dist/commonjs/ignore.js.map | 1 + .../glob/dist/{mjs => commonjs}/index.d.ts | 1 + .../dist/{mjs => commonjs}/index.d.ts.map | 2 +- .../glob/dist/{cjs/src => commonjs}/index.js | 0 .../glob/dist/commonjs/index.js.map | 1 + .../glob/dist/commonjs/package.json | 1 + .../dist/{cjs/src => commonjs}/pattern.d.ts | 0 .../dist/{mjs => commonjs}/pattern.d.ts.map | 0 .../dist/{cjs/src => commonjs}/pattern.js | 0 .../glob/dist/commonjs/pattern.js.map | 1 + .../dist/{cjs/src => commonjs}/processor.d.ts | 0 .../dist/{mjs => commonjs}/processor.d.ts.map | 2 +- .../dist/{cjs/src => commonjs}/processor.js | 15 +- .../glob/dist/commonjs/processor.js.map | 1 + .../dist/{cjs/src => commonjs}/walker.d.ts | 0 .../dist/{mjs => commonjs}/walker.d.ts.map | 0 .../glob/dist/{cjs/src => commonjs}/walker.js | 0 .../glob/dist/commonjs/walker.js.map | 1 + deps/npm/node_modules/glob/dist/esm/bin.d.mts | 3 + .../node_modules/glob/dist/esm/bin.d.mts.map | 1 + .../glob/dist/{cjs/src/bin.js => esm/bin.mjs} | 33 +- .../node_modules/glob/dist/esm/bin.mjs.map | 1 + .../glob/dist/{mjs => esm}/glob.d.ts | 2 +- .../node_modules/glob/dist/esm/glob.d.ts.map | 1 + .../glob/dist/{mjs => esm}/glob.js | 7 +- .../node_modules/glob/dist/esm/glob.js.map | 1 + .../glob/dist/{mjs => esm}/has-magic.d.ts | 0 .../glob/dist/esm/has-magic.d.ts.map | 1 + .../glob/dist/{mjs => esm}/has-magic.js | 0 .../glob/dist/{mjs => esm}/has-magic.js.map | 0 .../glob/dist/{mjs => esm}/ignore.d.ts | 0 .../glob/dist/esm/ignore.d.ts.map | 1 + .../glob/dist/{mjs => esm}/ignore.js | 7 +- .../node_modules/glob/dist/esm/ignore.js.map | 1 + .../glob/dist/{cjs/src => esm}/index.d.ts | 1 + .../node_modules/glob/dist/esm/index.d.ts.map | 1 + .../glob/dist/{mjs => esm}/index.js | 0 .../glob/dist/{mjs => esm}/index.js.map | 2 +- .../node_modules/glob/dist/esm/package.json | 1 + .../glob/dist/{mjs => esm}/pattern.d.ts | 2 +- .../glob/dist/esm/pattern.d.ts.map | 1 + .../glob/dist/{mjs => esm}/pattern.js | 0 .../glob/dist/{mjs => esm}/pattern.js.map | 2 +- .../glob/dist/{mjs => esm}/processor.d.ts | 0 .../glob/dist/esm/processor.d.ts.map | 1 + .../glob/dist/{mjs => esm}/processor.js | 15 +- .../glob/dist/esm/processor.js.map | 1 + .../glob/dist/{mjs => esm}/walker.d.ts | 2 +- .../glob/dist/esm/walker.d.ts.map | 1 + .../glob/dist/{mjs => esm}/walker.js | 0 .../glob/dist/{mjs => esm}/walker.js.map | 0 .../node_modules/glob/dist/mjs/glob.js.map | 1 - .../node_modules/glob/dist/mjs/ignore.js.map | 1 - .../node_modules/glob/dist/mjs/package.json | 4 - .../glob/dist/mjs/processor.js.map | 1 - deps/npm/node_modules/glob/package.json | 69 +- .../node_modules/hosted-git-info/lib/hosts.js | 3 +- .../node_modules/hosted-git-info/package.json | 2 +- .../jackspeak/dist/cjs/package.json | 3 - .../jackspeak/dist/{cjs => commonjs}/index.js | 229 +- .../jackspeak/dist/commonjs/package.json | 1 + .../dist/{cjs => commonjs}/parse-args.js | 12 +- .../jackspeak/dist/{mjs => esm}/index.js | 229 +- .../jackspeak/dist/esm/package.json | 1 + .../jackspeak/dist/esm/parse-args.js | 26 + .../jackspeak/dist/mjs/package.json | 3 - .../jackspeak/dist/mjs/parse-args.js | 19 - deps/npm/node_modules/jackspeak/package.json | 56 +- .../node_modules/libnpmaccess/package.json | 16 +- deps/npm/node_modules/libnpmdiff/package.json | 20 +- deps/npm/node_modules/libnpmexec/package.json | 18 +- deps/npm/node_modules/libnpmfund/package.json | 17 +- deps/npm/node_modules/libnpmhook/package.json | 12 +- deps/npm/node_modules/libnpmorg/package.json | 16 +- deps/npm/node_modules/libnpmpack/package.json | 18 +- .../node_modules/libnpmpublish/package.json | 16 +- .../node_modules/libnpmsearch/package.json | 12 +- deps/npm/node_modules/libnpmteam/package.json | 12 +- .../node_modules/libnpmversion/package.json | 12 +- .../minipass/dist/cjs/package.json | 3 - .../minipass/dist/{cjs => commonjs}/index.js | 0 .../minipass/dist/commonjs/package.json | 1 + .../minipass/dist/{mjs => esm}/index.js | 0 .../minipass/dist/esm/package.json | 1 + .../minipass/dist/mjs/package.json | 3 - deps/npm/node_modules/minipass/package.json | 66 +- .../node_modules/npm-package-arg/lib/npa.js | 101 +- .../node_modules/npm-package-arg/package.json | 5 +- deps/npm/node_modules/tar/lib/pack.js | 24 +- deps/npm/node_modules/tar/lib/parse.js | 49 +- deps/npm/node_modules/tar/lib/replace.js | 2 +- deps/npm/node_modules/tar/lib/update.js | 2 +- deps/npm/node_modules/tar/package.json | 9 +- deps/npm/package.json | 43 +- .../test/lib/commands/completion.js.test.cjs | 1 + .../test/lib/commands/config.js.test.cjs | 4 + .../test/lib/commands/publish.js.test.cjs | 1 + .../test/lib/commands/query.js.test.cjs | 48 + .../test/lib/commands/sbom.js.test.cjs | 1410 ++++++ .../test/lib/commands/search.js.test.cjs | 14 +- .../tap-snapshots/test/lib/docs.js.test.cjs | 119 +- .../tap-snapshots/test/lib/npm.js.test.cjs | 104 +- .../test/lib/utils/sbom-cyclonedx.js.test.cjs | 1021 +++++ .../test/lib/utils/sbom-spdx.js.test.cjs | 506 +++ deps/npm/test/bin/windows-shims.js | 14 +- .../fixtures/libnpmsearch-stream-result.js | 3 + deps/npm/test/lib/commands/audit.js | 12 + deps/npm/test/lib/commands/bugs.js | 5 + deps/npm/test/lib/commands/hook.js | 4 +- deps/npm/test/lib/commands/org.js | 2 +- deps/npm/test/lib/commands/query.js | 58 + deps/npm/test/lib/commands/sbom.js | 503 +++ deps/npm/test/lib/utils/ansi-trim.js | 8 - deps/npm/test/lib/utils/sbom-cyclonedx.js | 245 ++ deps/npm/test/lib/utils/sbom-spdx.js | 188 + .../schemas/cyclonedx/bom-1.5.schema.json | 3799 +++++++++++++++++ .../schemas/cyclonedx/jsf-0.82.schema.json | 240 ++ .../test/schemas/cyclonedx/spdx.schema.json | 621 +++ .../test/schemas/spdx/spdx-2.3.schema.json | 740 ++++ 303 files changed, 13184 insertions(+), 1093 deletions(-) create mode 100644 deps/npm/docs/content/commands/npm-sbom.md create mode 100644 deps/npm/docs/output/commands/npm-sbom.html create mode 100644 deps/npm/lib/commands/sbom.js delete mode 100644 deps/npm/lib/utils/ansi-trim.js create mode 100644 deps/npm/lib/utils/sbom-cyclonedx.js create mode 100644 deps/npm/lib/utils/sbom-spdx.js create mode 100644 deps/npm/man/man1/npm-sbom.1 delete mode 100644 deps/npm/node_modules/@npmcli/agent/lib/util.js delete mode 100644 deps/npm/node_modules/glob/dist/cjs/package.json delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/bin.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/glob.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/has-magic.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/ignore.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/index.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/index.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/pattern.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/processor.js.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts.map delete mode 100644 deps/npm/node_modules/glob/dist/cjs/src/walker.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/glob.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/glob.d.ts.map (98%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/glob.js (96%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/glob.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/has-magic.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/has-magic.d.ts.map (100%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/has-magic.js (100%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/has-magic.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/ignore.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/ignore.d.ts.map (91%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/ignore.js (94%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/ignore.js.map rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/index.d.ts (97%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/index.d.ts.map (96%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/index.js (100%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/index.js.map create mode 100644 deps/npm/node_modules/glob/dist/commonjs/package.json rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/pattern.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/pattern.d.ts.map (100%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/pattern.js (100%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/pattern.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/processor.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/processor.d.ts.map (96%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/processor.js (95%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/processor.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/walker.d.ts (100%) rename deps/npm/node_modules/glob/dist/{mjs => commonjs}/walker.d.ts.map (100%) rename deps/npm/node_modules/glob/dist/{cjs/src => commonjs}/walker.js (100%) create mode 100644 deps/npm/node_modules/glob/dist/commonjs/walker.js.map create mode 100644 deps/npm/node_modules/glob/dist/esm/bin.d.mts create mode 100644 deps/npm/node_modules/glob/dist/esm/bin.d.mts.map rename deps/npm/node_modules/glob/dist/{cjs/src/bin.js => esm/bin.mjs} (91%) create mode 100644 deps/npm/node_modules/glob/dist/esm/bin.mjs.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/glob.d.ts (99%) create mode 100644 deps/npm/node_modules/glob/dist/esm/glob.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/glob.js (97%) create mode 100644 deps/npm/node_modules/glob/dist/esm/glob.js.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/has-magic.d.ts (100%) create mode 100644 deps/npm/node_modules/glob/dist/esm/has-magic.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/has-magic.js (100%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/has-magic.js.map (100%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/ignore.d.ts (100%) create mode 100644 deps/npm/node_modules/glob/dist/esm/ignore.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/ignore.js (93%) create mode 100644 deps/npm/node_modules/glob/dist/esm/ignore.js.map rename deps/npm/node_modules/glob/dist/{cjs/src => esm}/index.d.ts (97%) create mode 100644 deps/npm/node_modules/glob/dist/esm/index.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/index.js (100%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/index.js.map (93%) create mode 100644 deps/npm/node_modules/glob/dist/esm/package.json rename deps/npm/node_modules/glob/dist/{mjs => esm}/pattern.d.ts (97%) create mode 100644 deps/npm/node_modules/glob/dist/esm/pattern.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/pattern.js (100%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/pattern.js.map (69%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/processor.d.ts (100%) create mode 100644 deps/npm/node_modules/glob/dist/esm/processor.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/processor.js (95%) create mode 100644 deps/npm/node_modules/glob/dist/esm/processor.js.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/walker.d.ts (98%) create mode 100644 deps/npm/node_modules/glob/dist/esm/walker.d.ts.map rename deps/npm/node_modules/glob/dist/{mjs => esm}/walker.js (100%) rename deps/npm/node_modules/glob/dist/{mjs => esm}/walker.js.map (100%) delete mode 100644 deps/npm/node_modules/glob/dist/mjs/glob.js.map delete mode 100644 deps/npm/node_modules/glob/dist/mjs/ignore.js.map delete mode 100644 deps/npm/node_modules/glob/dist/mjs/package.json delete mode 100644 deps/npm/node_modules/glob/dist/mjs/processor.js.map delete mode 100644 deps/npm/node_modules/jackspeak/dist/cjs/package.json rename deps/npm/node_modules/jackspeak/dist/{cjs => commonjs}/index.js (81%) create mode 100644 deps/npm/node_modules/jackspeak/dist/commonjs/package.json rename deps/npm/node_modules/jackspeak/dist/{cjs => commonjs}/parse-args.js (84%) rename deps/npm/node_modules/jackspeak/dist/{mjs => esm}/index.js (81%) create mode 100644 deps/npm/node_modules/jackspeak/dist/esm/package.json create mode 100644 deps/npm/node_modules/jackspeak/dist/esm/parse-args.js delete mode 100644 deps/npm/node_modules/jackspeak/dist/mjs/package.json delete mode 100644 deps/npm/node_modules/jackspeak/dist/mjs/parse-args.js delete mode 100644 deps/npm/node_modules/minipass/dist/cjs/package.json rename deps/npm/node_modules/minipass/dist/{cjs => commonjs}/index.js (100%) create mode 100644 deps/npm/node_modules/minipass/dist/commonjs/package.json rename deps/npm/node_modules/minipass/dist/{mjs => esm}/index.js (100%) create mode 100644 deps/npm/node_modules/minipass/dist/esm/package.json delete mode 100644 deps/npm/node_modules/minipass/dist/mjs/package.json create mode 100644 deps/npm/tap-snapshots/test/lib/commands/sbom.js.test.cjs create mode 100644 deps/npm/tap-snapshots/test/lib/utils/sbom-cyclonedx.js.test.cjs create mode 100644 deps/npm/tap-snapshots/test/lib/utils/sbom-spdx.js.test.cjs create mode 100644 deps/npm/test/lib/commands/sbom.js delete mode 100644 deps/npm/test/lib/utils/ansi-trim.js create mode 100644 deps/npm/test/lib/utils/sbom-cyclonedx.js create mode 100644 deps/npm/test/lib/utils/sbom-spdx.js create mode 100644 deps/npm/test/schemas/cyclonedx/bom-1.5.schema.json create mode 100644 deps/npm/test/schemas/cyclonedx/jsf-0.82.schema.json create mode 100644 deps/npm/test/schemas/cyclonedx/spdx.schema.json create mode 100644 deps/npm/test/schemas/spdx/spdx-2.3.schema.json diff --git a/deps/npm/docs/content/commands/npm-audit.md b/deps/npm/docs/content/commands/npm-audit.md index 62f93448c2457b..c36683cf10e073 100644 --- a/deps/npm/docs/content/commands/npm-audit.md +++ b/deps/npm/docs/content/commands/npm-audit.md @@ -32,6 +32,13 @@ vulnerability is found. It may be useful in CI environments to include the will cause the command to fail. This option does not filter the report output, it simply changes the command's failure threshold. +### Package lock + +By default npm requires a package-lock or shrinkwrap in order to run the +audit. You can bypass the package lock with `--no-package-lock` but be +aware the results may be different with every run, since npm will +re-build the dependency tree each time. + ### Audit Signatures To ensure the integrity of packages you download from the public npm registry, or any registry that supports signatures, you can verify the registry signatures of downloaded packages using the npm CLI. @@ -321,6 +328,16 @@ For `list` this means the output will be based on the tree described by the +#### `package-lock` + +* Default: true +* Type: Boolean + +If set to false, then ignore `package-lock.json` files when installing. This +will also prevent _writing_ `package-lock.json` if `save` is true. + + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -341,6 +358,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `foreground-scripts` * Default: false diff --git a/deps/npm/docs/content/commands/npm-ci.md b/deps/npm/docs/content/commands/npm-ci.md index 2a1f39a00f9c81..57f6555975b260 100644 --- a/deps/npm/docs/content/commands/npm-ci.md +++ b/deps/npm/docs/content/commands/npm-ci.md @@ -132,6 +132,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `strict-peer-deps` * Default: false diff --git a/deps/npm/docs/content/commands/npm-dedupe.md b/deps/npm/docs/content/commands/npm-dedupe.md index 592d76973cff08..1e8a4bc5d0262a 100644 --- a/deps/npm/docs/content/commands/npm-dedupe.md +++ b/deps/npm/docs/content/commands/npm-dedupe.md @@ -168,6 +168,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `ignore-scripts` * Default: false diff --git a/deps/npm/docs/content/commands/npm-doctor.md b/deps/npm/docs/content/commands/npm-doctor.md index e72d273ac8172e..b36ec3883be03a 100644 --- a/deps/npm/docs/content/commands/npm-doctor.md +++ b/deps/npm/docs/content/commands/npm-doctor.md @@ -1,7 +1,7 @@ --- title: npm-doctor section: 1 -description: Check your npm environment +description: Check the health of your npm environment --- ### Synopsis diff --git a/deps/npm/docs/content/commands/npm-find-dupes.md b/deps/npm/docs/content/commands/npm-find-dupes.md index b326b9236153d1..6710760471824e 100644 --- a/deps/npm/docs/content/commands/npm-find-dupes.md +++ b/deps/npm/docs/content/commands/npm-find-dupes.md @@ -108,6 +108,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `ignore-scripts` * Default: false diff --git a/deps/npm/docs/content/commands/npm-init.md b/deps/npm/docs/content/commands/npm-init.md index b0efecdb7e6798..c4b39e6397019c 100644 --- a/deps/npm/docs/content/commands/npm-init.md +++ b/deps/npm/docs/content/commands/npm-init.md @@ -156,6 +156,56 @@ dot to represent the current directory in that context, e.g: `react-app .`: ### Configuration +#### `init-author-name` + +* Default: "" +* Type: String + +The value `npm init` should use by default for the package author's name. + + + +#### `init-author-url` + +* Default: "" +* Type: "" or URL + +The value `npm init` should use by default for the package author's +homepage. + + + +#### `init-license` + +* Default: "ISC" +* Type: String + +The value `npm init` should use by default for the package license. + + + +#### `init-module` + +* Default: "~/.npm-init.js" +* Type: Path + +A module that will be loaded by the `npm init` command. See the +documentation for the +[init-package-json](https://github.com/npm/init-package-json) module for +more information, or [npm init](/commands/npm-init). + + + +#### `init-version` + +* Default: "1.0.0" +* Type: SemVer string + +The value that `npm init` should use by default for the package version +number, if not already set in package.json. + + + #### `yes` * Default: null diff --git a/deps/npm/docs/content/commands/npm-install-ci-test.md b/deps/npm/docs/content/commands/npm-install-ci-test.md index b38f4917708326..f01b9979635deb 100644 --- a/deps/npm/docs/content/commands/npm-install-ci-test.md +++ b/deps/npm/docs/content/commands/npm-install-ci-test.md @@ -78,6 +78,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `strict-peer-deps` * Default: false diff --git a/deps/npm/docs/content/commands/npm-install-test.md b/deps/npm/docs/content/commands/npm-install-test.md index 443ccd670daa1f..3b94ea27763f8f 100644 --- a/deps/npm/docs/content/commands/npm-install-test.md +++ b/deps/npm/docs/content/commands/npm-install-test.md @@ -119,6 +119,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `strict-peer-deps` * Default: false diff --git a/deps/npm/docs/content/commands/npm-install.md b/deps/npm/docs/content/commands/npm-install.md index 6be022c8f2340c..738ca3372c8e9f 100644 --- a/deps/npm/docs/content/commands/npm-install.md +++ b/deps/npm/docs/content/commands/npm-install.md @@ -509,6 +509,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `strict-peer-deps` * Default: false diff --git a/deps/npm/docs/content/commands/npm-link.md b/deps/npm/docs/content/commands/npm-link.md index 607dc60b190dc5..34b893e471afa1 100644 --- a/deps/npm/docs/content/commands/npm-link.md +++ b/deps/npm/docs/content/commands/npm-link.md @@ -241,6 +241,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `ignore-scripts` * Default: false diff --git a/deps/npm/docs/content/commands/npm-ls.md b/deps/npm/docs/content/commands/npm-ls.md index c7b8f674862a9c..791e5f88b082bb 100644 --- a/deps/npm/docs/content/commands/npm-ls.md +++ b/deps/npm/docs/content/commands/npm-ls.md @@ -27,7 +27,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@10.1.0 /path/to/npm +npm@10.2.0 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` @@ -165,6 +165,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `link` * Default: false diff --git a/deps/npm/docs/content/commands/npm-prune.md b/deps/npm/docs/content/commands/npm-prune.md index 071258e78471ba..ec6aa1ee454d64 100644 --- a/deps/npm/docs/content/commands/npm-prune.md +++ b/deps/npm/docs/content/commands/npm-prune.md @@ -55,6 +55,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `dry-run` * Default: false diff --git a/deps/npm/docs/content/commands/npm-query.md b/deps/npm/docs/content/commands/npm-query.md index ec9cc2c5752f92..196d7d6559acf2 100644 --- a/deps/npm/docs/content/commands/npm-query.md +++ b/deps/npm/docs/content/commands/npm-query.md @@ -135,6 +135,19 @@ npm query ":type(git)" | jq 'map(.name)' | xargs -I {} npm why {} }, ... ``` +### Package lock only mode + +If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines). + +### Package lock only mode + +If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines). ### Configuration @@ -206,6 +219,22 @@ all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. This value is not exported to the environment for child processes. + +#### `package-lock-only` + +* Default: false +* Type: Boolean + +If set to true, the current operation will only use the `package-lock.json`, +ignoring `node_modules`. + +For `update` this means only the `package-lock.json` will be updated, +instead of checking `node_modules` and downloading dependencies. + +For `list` this means the output will be based on the tree described by the +`package-lock.json`, rather than the contents of `node_modules`. + + ## See Also * [dependency selectors](/using-npm/dependency-selectors) diff --git a/deps/npm/docs/content/commands/npm-sbom.md b/deps/npm/docs/content/commands/npm-sbom.md new file mode 100644 index 00000000000000..ee0d60c6fde790 --- /dev/null +++ b/deps/npm/docs/content/commands/npm-sbom.md @@ -0,0 +1,318 @@ +--- +title: npm-sbom +section: 1 +description: Generate a Software Bill of Materials (SBOM) +--- + +### Synopsis + +```bash +npm sbom +``` + +### Description + +The `npm sbom` command generates a Software Bill of Materials (SBOM) listing the +dependencies for the current project. SBOMs can be generated in either +[SPDX](https://spdx.dev/) or [CycloneDX](https://cyclonedx.org/) format. + +### Example CycloneDX SBOM + +```json +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:09f55116-97e1-49cf-b3b8-44d0207e7730", + "version": 1, + "metadata": { + "timestamp": "2023-09-01T00:00:00.001Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.1.0" + } + ], + "component": { + "bom-ref": "simple@1.0.0", + "type": "library", + "name": "simple", + "version": "1.0.0", + "scope": "required", + "author": "John Doe", + "description": "simple react app", + "purl": "pkg:npm/simple@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ] + } + }, + "components": [ + { + "bom-ref": "lodash@4.17.21", + "type": "library", + "name": "lodash", + "version": "4.17.21", + "scope": "required", + "author": "John-David Dalton", + "description": "Lodash modular utilities.", + "purl": "pkg:npm/lodash@4.17.21", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/lodash" + } + ], + "externalReferences": [ + { + "type": "distribution", + "url": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + }, + { + "type": "vcs", + "url": "git+https://github.com/lodash/lodash.git" + }, + { + "type": "website", + "url": "https://lodash.com/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/lodash/lodash/issues" + } + ], + "hashes": [ + { + "alg": "SHA-512", + "content": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a" + } + ], + "licenses": [ + { + "license": { + "id": "MIT" + } + } + ] + } + ], + "dependencies": [ + { + "ref": "simple@1.0.0", + "dependsOn": [ + "lodash@4.17.21" + ] + }, + { + "ref": "lodash@4.17.21", + "dependsOn": [] + } + ] +} +``` + +### Example SPDX SBOM + +```json +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "simple@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/simple-1.0.0-bf81090e-8bbc-459d-bec9-abeb794e096a", + "creationInfo": { + "created": "2023-09-01T00:00:00.001Z", + "creators": [ + "Tool: npm/cli-10.1.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-simple-1.0.0" + ], + "packages": [ + { + "name": "simple", + "SPDXID": "SPDXRef-Package-simple-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "description": "simple react app", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "MIT", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/simple@1.0.0" + } + ] + }, + { + "name": "lodash", + "SPDXID": "SPDXRef-Package-lodash-4.17.21", + "versionInfo": "4.17.21", + "packageFileName": "node_modules/lodash", + "description": "Lodash modular utilities.", + "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "filesAnalyzed": false, + "homepage": "https://lodash.com/", + "licenseDeclared": "MIT", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/lodash@4.17.21" + } + ], + "checksums": [ + { + "algorithm": "SHA512", + "checksumValue": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-simple-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-simple-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-lodash-4.17.21", + "relationshipType": "DEPENDS_ON" + } + ] +} +``` + +### Package lock only mode + +If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines). + +### Configuration + +#### `omit` + +* Default: 'dev' if the `NODE_ENV` environment variable is set to + 'production', otherwise empty. +* Type: "dev", "optional", or "peer" (can be set multiple times) + +Dependency types to omit from the installation tree on disk. + +Note that these dependencies _are_ still resolved and added to the +`package-lock.json` or `npm-shrinkwrap.json` file. They are just not +physically installed on disk. + +If a package type appears in both the `--include` and `--omit` lists, then +it will be included. + +If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment +variable will be set to `'production'` for all lifecycle scripts. + + + +#### `package-lock-only` + +* Default: false +* Type: Boolean + +If set to true, the current operation will only use the `package-lock.json`, +ignoring `node_modules`. + +For `update` this means only the `package-lock.json` will be updated, +instead of checking `node_modules` and downloading dependencies. + +For `list` this means the output will be based on the tree described by the +`package-lock.json`, rather than the contents of `node_modules`. + + + +#### `sbom-format` + +* Default: null +* Type: "cyclonedx" or "spdx" + +SBOM format to use when generating SBOMs. + + + +#### `sbom-type` + +* Default: "library" +* Type: "library", "application", or "framework" + +The type of package described by the generated SBOM. For SPDX, this is the +value for the `primaryPackagePurpose` fieled. For CycloneDX, this is the +value for the `type` field. + + + +#### `workspace` + +* Default: +* Type: String (can be set multiple times) + +Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option. + +Valid values for the `workspace` config are either: + +* Workspace names +* Path to a workspace directory +* Path to a parent workspace directory (will result in selecting all + workspaces within that folder) + +When set for the `npm init` command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project. + +This value is not exported to the environment for child processes. + +#### `workspaces` + +* Default: null +* Type: null or Boolean + +Set to true to run the command in the context of **all** configured +workspaces. + +Explicitly setting this to false will cause commands like `install` to +ignore workspaces altogether. When not set explicitly: + +- Commands that operate on the `node_modules` tree (install, update, etc.) +will link workspaces into the `node_modules` folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +_unless_ one or more workspaces are specified in the `workspace` config. + +This value is not exported to the environment for child processes. +## See Also + +* [package spec](/using-npm/package-spec) +* [dependency selectors](/using-npm/dependency-selectors) +* [package.json](/configuring-npm/package-json) +* [workspaces](/using-npm/workspaces) diff --git a/deps/npm/docs/content/commands/npm-update.md b/deps/npm/docs/content/commands/npm-update.md index 7a8adb62bbb27f..ea0bcdd00d9fbd 100644 --- a/deps/npm/docs/content/commands/npm-update.md +++ b/deps/npm/docs/content/commands/npm-update.md @@ -247,6 +247,20 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `include` + +* Default: +* Type: "prod", "dev", "optional", or "peer" (can be set multiple times) + +Option that allows for defining which types of dependencies to install. + +This is the inverse of `--omit=`. + +Dependency types specified in `--include` will not be omitted, regardless of +the order in which omit/include are specified on the command-line. + + + #### `strict-peer-deps` * Default: false diff --git a/deps/npm/docs/content/commands/npm.md b/deps/npm/docs/content/commands/npm.md index e7ad76c74cf65e..0a5b88d7083c8a 100644 --- a/deps/npm/docs/content/commands/npm.md +++ b/deps/npm/docs/content/commands/npm.md @@ -14,7 +14,7 @@ Note: This command is unaware of workspaces. ### Version -10.1.0 +10.2.0 ### Description diff --git a/deps/npm/docs/content/using-npm/config.md b/deps/npm/docs/content/using-npm/config.md index 253cd3dffd1d1d..80969ee23e5355 100644 --- a/deps/npm/docs/content/using-npm/config.md +++ b/deps/npm/docs/content/using-npm/config.md @@ -1358,6 +1358,26 @@ or `--save-optional` are true. +#### `sbom-format` + +* Default: null +* Type: "cyclonedx" or "spdx" + +SBOM format to use when generating SBOMs. + + + +#### `sbom-type` + +* Default: "library" +* Type: "library", "application", or "framework" + +The type of package described by the generated SBOM. For SPDX, this is the +value for the `primaryPackagePurpose` fieled. For CycloneDX, this is the +value for the `type` field. + + + #### `scope` * Default: the scope of the current project, if any, or "" diff --git a/deps/npm/docs/output/commands/npm-audit.html b/deps/npm/docs/output/commands/npm-audit.html index eda45d9bd23db3..8ac632d7336589 100644 --- a/deps/npm/docs/output/commands/npm-audit.html +++ b/deps/npm/docs/output/commands/npm-audit.html @@ -142,7 +142,7 @@

npm-audit

Table of contents

- +

Synopsis

@@ -164,6 +164,11 @@

Description

--audit-level parameter to specify the minimum vulnerability level that will cause the command to fail. This option does not filter the report output, it simply changes the command's failure threshold.

+

Package lock

+

By default npm requires a package-lock or shrinkwrap in order to run the +audit. You can bypass the package lock with --no-package-lock but be +aware the results may be different with every run, since npm will +re-build the dependency tree each time.

Audit Signatures

To ensure the integrity of packages you download from the public npm registry, or any registry that supports signatures, you can verify the registry signatures of downloaded packages using the npm CLI.

Registry signatures can be verified using the following audit command:

@@ -373,6 +378,13 @@

package-lock-only

instead of checking node_modules and downloading dependencies.

For list this means the output will be based on the tree described by the package-lock.json, rather than the contents of node_modules.

+

package-lock

+
    +
  • Default: true
  • +
  • Type: Boolean
  • +
+

If set to false, then ignore package-lock.json files when installing. This +will also prevent writing package-lock.json if save is true.

omit

  • Default: 'dev' if the NODE_ENV environment variable is set to @@ -387,6 +399,15 @@

    omit

    it will be included.

    If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

    +

    include

    +
      +
    • Default:
    • +
    • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
    • +
    +

    Option that allows for defining which types of dependencies to install.

    +

    This is the inverse of --omit=<type>.

    +

    Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

    foreground-scripts

    • Default: false
    • diff --git a/deps/npm/docs/output/commands/npm-ci.html b/deps/npm/docs/output/commands/npm-ci.html index 9fed910b2eba08..2349e46dd1c608 100644 --- a/deps/npm/docs/output/commands/npm-ci.html +++ b/deps/npm/docs/output/commands/npm-ci.html @@ -142,7 +142,7 @@

      npm-ci

      Table of contents

      - +

      Synopsis

      @@ -241,6 +241,15 @@

      omit

      it will be included.

      If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

      +

      include

      +
        +
      • Default:
      • +
      • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
      • +
      +

      Option that allows for defining which types of dependencies to install.

      +

      This is the inverse of --omit=<type>.

      +

      Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

      strict-peer-deps

      • Default: false
      • diff --git a/deps/npm/docs/output/commands/npm-dedupe.html b/deps/npm/docs/output/commands/npm-dedupe.html index 46db8279fb0412..625fe39bbd36c7 100644 --- a/deps/npm/docs/output/commands/npm-dedupe.html +++ b/deps/npm/docs/output/commands/npm-dedupe.html @@ -142,7 +142,7 @@

        npm-dedupe

        Table of contents

        - +

        Synopsis

        @@ -263,6 +263,15 @@

        omit

        it will be included.

        If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

        +

        include

        +
          +
        • Default:
        • +
        • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
        • +
        +

        Option that allows for defining which types of dependencies to install.

        +

        This is the inverse of --omit=<type>.

        +

        Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

        ignore-scripts

        • Default: false
        • diff --git a/deps/npm/docs/output/commands/npm-doctor.html b/deps/npm/docs/output/commands/npm-doctor.html index 7635c0188a2a09..d63f33389af97e 100644 --- a/deps/npm/docs/output/commands/npm-doctor.html +++ b/deps/npm/docs/output/commands/npm-doctor.html @@ -137,7 +137,7 @@

          npm-doctor

          -Check your npm environment +Check the health of your npm environment
          diff --git a/deps/npm/docs/output/commands/npm-find-dupes.html b/deps/npm/docs/output/commands/npm-find-dupes.html index 725f197e8503d4..86546d345d46cc 100644 --- a/deps/npm/docs/output/commands/npm-find-dupes.html +++ b/deps/npm/docs/output/commands/npm-find-dupes.html @@ -142,7 +142,7 @@

          npm-find-dupes

          Table of contents

          - +

          Synopsis

          @@ -220,6 +220,15 @@

          omit

          it will be included.

          If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

          +

          include

          +
            +
          • Default:
          • +
          • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
          • +
          +

          Option that allows for defining which types of dependencies to install.

          +

          This is the inverse of --omit=<type>.

          +

          Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

          ignore-scripts

          • Default: false
          • diff --git a/deps/npm/docs/output/commands/npm-init.html b/deps/npm/docs/output/commands/npm-init.html index e515d36c85d2ea..9094984dd20efa 100644 --- a/deps/npm/docs/output/commands/npm-init.html +++ b/deps/npm/docs/output/commands/npm-init.html @@ -142,7 +142,7 @@

            npm-init

            Table of contents

            - +

            Synopsis

            @@ -256,6 +256,41 @@

            Workspaces support

            `-- ...

            Configuration

            +

            init-author-name

            +
              +
            • Default: ""
            • +
            • Type: String
            • +
            +

            The value npm init should use by default for the package author's name.

            +

            init-author-url

            +
              +
            • Default: ""
            • +
            • Type: "" or URL
            • +
            +

            The value npm init should use by default for the package author's +homepage.

            +

            init-license

            +
              +
            • Default: "ISC"
            • +
            • Type: String
            • +
            +

            The value npm init should use by default for the package license.

            +

            init-module

            +
              +
            • Default: "~/.npm-init.js"
            • +
            • Type: Path
            • +
            +

            A module that will be loaded by the npm init command. See the +documentation for the +init-package-json module for +more information, or npm init.

            +

            init-version

            +
              +
            • Default: "1.0.0"
            • +
            • Type: SemVer string
            • +
            +

            The value that npm init should use by default for the package version +number, if not already set in package.json.

            yes

            • Default: null
            • diff --git a/deps/npm/docs/output/commands/npm-install-ci-test.html b/deps/npm/docs/output/commands/npm-install-ci-test.html index f87de26e312b18..635b59bbb32040 100644 --- a/deps/npm/docs/output/commands/npm-install-ci-test.html +++ b/deps/npm/docs/output/commands/npm-install-ci-test.html @@ -142,7 +142,7 @@

              npm-install-ci-test

              Table of contents

              - +

              Synopsis

              @@ -198,6 +198,15 @@

              omit

              it will be included.

              If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

              +

              include

              +
                +
              • Default:
              • +
              • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
              • +
              +

              Option that allows for defining which types of dependencies to install.

              +

              This is the inverse of --omit=<type>.

              +

              Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

              strict-peer-deps

              • Default: false
              • diff --git a/deps/npm/docs/output/commands/npm-install-test.html b/deps/npm/docs/output/commands/npm-install-test.html index 1afefac3e93869..dd78090d2a5db3 100644 --- a/deps/npm/docs/output/commands/npm-install-test.html +++ b/deps/npm/docs/output/commands/npm-install-test.html @@ -142,7 +142,7 @@

                npm-install-test

                Table of contents

                - +

                Synopsis

                @@ -229,6 +229,15 @@

                omit

                it will be included.

                If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                +

                include

                +
                  +
                • Default:
                • +
                • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                • +
                +

                Option that allows for defining which types of dependencies to install.

                +

                This is the inverse of --omit=<type>.

                +

                Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                strict-peer-deps

                • Default: false
                • diff --git a/deps/npm/docs/output/commands/npm-install.html b/deps/npm/docs/output/commands/npm-install.html index 54d8b5e31a28de..91e88eb32a9e08 100644 --- a/deps/npm/docs/output/commands/npm-install.html +++ b/deps/npm/docs/output/commands/npm-install.html @@ -142,7 +142,7 @@

                  npm-install

                  Table of contents

                  - +

                  Synopsis

                  @@ -555,6 +555,15 @@

                  omit

                  it will be included.

                  If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                  +

                  include

                  +
                    +
                  • Default:
                  • +
                  • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                  • +
                  +

                  Option that allows for defining which types of dependencies to install.

                  +

                  This is the inverse of --omit=<type>.

                  +

                  Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                  strict-peer-deps

                  • Default: false
                  • diff --git a/deps/npm/docs/output/commands/npm-link.html b/deps/npm/docs/output/commands/npm-link.html index ac36e1beb56884..93ec04390fc5b2 100644 --- a/deps/npm/docs/output/commands/npm-link.html +++ b/deps/npm/docs/output/commands/npm-link.html @@ -142,7 +142,7 @@

                    npm-link

                    Table of contents

                    - +

                    Synopsis

                    @@ -315,6 +315,15 @@

                    omit

                    it will be included.

                    If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                    +

                    include

                    +
                      +
                    • Default:
                    • +
                    • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                    • +
                    +

                    Option that allows for defining which types of dependencies to install.

                    +

                    This is the inverse of --omit=<type>.

                    +

                    Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                    ignore-scripts

                    • Default: false
                    • diff --git a/deps/npm/docs/output/commands/npm-ls.html b/deps/npm/docs/output/commands/npm-ls.html index c8ec1e95924dc6..fda40e2beabf14 100644 --- a/deps/npm/docs/output/commands/npm-ls.html +++ b/deps/npm/docs/output/commands/npm-ls.html @@ -142,7 +142,7 @@

                      npm-ls

                      Table of contents

                      - +

                      Synopsis

                      @@ -160,7 +160,7 @@

                      Description

                      the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

                      -
                      npm@10.1.0 /path/to/npm
                      +
                      npm@10.2.0 /path/to/npm
                       └─┬ init-package-json@0.0.4
                         └── promzard@0.1.5
                       
                      @@ -261,6 +261,15 @@

                      omit

                      it will be included.

                      If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                      +

                      include

                      +
                        +
                      • Default:
                      • +
                      • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                      • +
                      +

                      Option that allows for defining which types of dependencies to install.

                      +

                      This is the inverse of --omit=<type>.

                      +

                      Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                      • Default: false
                      • diff --git a/deps/npm/docs/output/commands/npm-prune.html b/deps/npm/docs/output/commands/npm-prune.html index 9ca44c4474052e..acb24ea8023cee 100644 --- a/deps/npm/docs/output/commands/npm-prune.html +++ b/deps/npm/docs/output/commands/npm-prune.html @@ -142,7 +142,7 @@

                        npm-prune

                        Table of contents

                        - +

                        Synopsis

                        @@ -179,6 +179,15 @@

                        omit

                        it will be included.

                        If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                        +

                        include

                        +
                          +
                        • Default:
                        • +
                        • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                        • +
                        +

                        Option that allows for defining which types of dependencies to install.

                        +

                        This is the inverse of --omit=<type>.

                        +

                        Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                        dry-run

                        • Default: false
                        • diff --git a/deps/npm/docs/output/commands/npm-query.html b/deps/npm/docs/output/commands/npm-query.html index ac23d6ccaaa1ce..cbfccc03e15fce 100644 --- a/deps/npm/docs/output/commands/npm-query.html +++ b/deps/npm/docs/output/commands/npm-query.html @@ -264,6 +264,16 @@

                          Example Response Output

                          }, ...
                      +

                      Package lock only mode

                      +

                      If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines).

                      +

                      Package lock only mode

                      +

                      If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines).

                      Configuration

                      global

                        @@ -324,6 +334,17 @@

                        include-workspace-root

                        all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

                        This value is not exported to the environment for child processes.

                        +

                        package-lock-only

                        +
                          +
                        • Default: false
                        • +
                        • Type: Boolean
                        • +
                        +

                        If set to true, the current operation will only use the package-lock.json, +ignoring node_modules.

                        +

                        For update this means only the package-lock.json will be updated, +instead of checking node_modules and downloading dependencies.

                        +

                        For list this means the output will be based on the tree described by the +package-lock.json, rather than the contents of node_modules.

                        See Also

                        • dependency selectors
                        • diff --git a/deps/npm/docs/output/commands/npm-sbom.html b/deps/npm/docs/output/commands/npm-sbom.html new file mode 100644 index 00000000000000..56b146680100d1 --- /dev/null +++ b/deps/npm/docs/output/commands/npm-sbom.html @@ -0,0 +1,439 @@ + + +npm-sbom + + + + + +
                          +
                          +

                          npm-sbom

                          +Generate a Software Bill of Materials (SBOM) +
                          + +
                          +

                          Table of contents

                          + +
                          + +

                          Synopsis

                          +
                          npm sbom
                          +
                          +

                          Description

                          +

                          The npm sbom command generates a Software Bill of Materials (SBOM) listing the +dependencies for the current project. SBOMs can be generated in either +SPDX or CycloneDX format.

                          +

                          Example CycloneDX SBOM

                          +
                          {
                          +  "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
                          +  "bomFormat": "CycloneDX",
                          +  "specVersion": "1.5",
                          +  "serialNumber": "urn:uuid:09f55116-97e1-49cf-b3b8-44d0207e7730",
                          +  "version": 1,
                          +  "metadata": {
                          +    "timestamp": "2023-09-01T00:00:00.001Z",
                          +    "lifecycles": [
                          +      {
                          +        "phase": "build"
                          +      }
                          +    ],
                          +    "tools": [
                          +      {
                          +        "vendor": "npm",
                          +        "name": "cli",
                          +        "version": "10.1.0"
                          +      }
                          +    ],
                          +    "component": {
                          +      "bom-ref": "simple@1.0.0",
                          +      "type": "library",
                          +      "name": "simple",
                          +      "version": "1.0.0",
                          +      "scope": "required",
                          +      "author": "John Doe",
                          +      "description": "simple react app",
                          +      "purl": "pkg:npm/simple@1.0.0",
                          +      "properties": [
                          +        {
                          +          "name": "cdx:npm:package:path",
                          +          "value": ""
                          +        }
                          +      ],
                          +      "externalReferences": [],
                          +      "licenses": [
                          +        {
                          +          "license": {
                          +            "id": "MIT"
                          +          }
                          +        }
                          +      ]
                          +    }
                          +  },
                          +  "components": [
                          +    {
                          +      "bom-ref": "lodash@4.17.21",
                          +      "type": "library",
                          +      "name": "lodash",
                          +      "version": "4.17.21",
                          +      "scope": "required",
                          +      "author": "John-David Dalton",
                          +      "description": "Lodash modular utilities.",
                          +      "purl": "pkg:npm/lodash@4.17.21",
                          +      "properties": [
                          +        {
                          +          "name": "cdx:npm:package:path",
                          +          "value": "node_modules/lodash"
                          +        }
                          +      ],
                          +      "externalReferences": [
                          +        {
                          +          "type": "distribution",
                          +          "url": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
                          +        },
                          +        {
                          +          "type": "vcs",
                          +          "url": "git+https://github.com/lodash/lodash.git"
                          +        },
                          +        {
                          +          "type": "website",
                          +          "url": "https://lodash.com/"
                          +        },
                          +        {
                          +          "type": "issue-tracker",
                          +          "url": "https://github.com/lodash/lodash/issues"
                          +        }
                          +      ],
                          +      "hashes": [
                          +        {
                          +          "alg": "SHA-512",
                          +          "content": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a"
                          +        }
                          +      ],
                          +      "licenses": [
                          +        {
                          +          "license": {
                          +            "id": "MIT"
                          +          }
                          +        }
                          +      ]
                          +    }
                          +  ],
                          +  "dependencies": [
                          +    {
                          +      "ref": "simple@1.0.0",
                          +      "dependsOn": [
                          +        "lodash@4.17.21"
                          +      ]
                          +    },
                          +    {
                          +      "ref": "lodash@4.17.21",
                          +      "dependsOn": []
                          +    }
                          +  ]
                          +}
                          +
                          +

                          Example SPDX SBOM

                          +
                          {
                          +  "spdxVersion": "SPDX-2.3",
                          +  "dataLicense": "CC0-1.0",
                          +  "SPDXID": "SPDXRef-DOCUMENT",
                          +  "name": "simple@1.0.0",
                          +  "documentNamespace": "http://spdx.org/spdxdocs/simple-1.0.0-bf81090e-8bbc-459d-bec9-abeb794e096a",
                          +  "creationInfo": {
                          +    "created": "2023-09-01T00:00:00.001Z",
                          +    "creators": [
                          +      "Tool: npm/cli-10.1.0"
                          +    ]
                          +  },
                          +  "documentDescribes": [
                          +    "SPDXRef-Package-simple-1.0.0"
                          +  ],
                          +  "packages": [
                          +    {
                          +      "name": "simple",
                          +      "SPDXID": "SPDXRef-Package-simple-1.0.0",
                          +      "versionInfo": "1.0.0",
                          +      "packageFileName": "",
                          +      "description": "simple react app",
                          +      "primaryPackagePurpose": "LIBRARY",
                          +      "downloadLocation": "NOASSERTION",
                          +      "filesAnalyzed": false,
                          +      "homepage": "NOASSERTION",
                          +      "licenseDeclared": "MIT",
                          +      "externalRefs": [
                          +        {
                          +          "referenceCategory": "PACKAGE-MANAGER",
                          +          "referenceType": "purl",
                          +          "referenceLocator": "pkg:npm/simple@1.0.0"
                          +        }
                          +      ]
                          +    },
                          +    {
                          +      "name": "lodash",
                          +      "SPDXID": "SPDXRef-Package-lodash-4.17.21",
                          +      "versionInfo": "4.17.21",
                          +      "packageFileName": "node_modules/lodash",
                          +      "description": "Lodash modular utilities.",
                          +      "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
                          +      "filesAnalyzed": false,
                          +      "homepage": "https://lodash.com/",
                          +      "licenseDeclared": "MIT",
                          +      "externalRefs": [
                          +        {
                          +          "referenceCategory": "PACKAGE-MANAGER",
                          +          "referenceType": "purl",
                          +          "referenceLocator": "pkg:npm/lodash@4.17.21"
                          +        }
                          +      ],
                          +      "checksums": [
                          +        {
                          +          "algorithm": "SHA512",
                          +          "checksumValue": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a"
                          +        }
                          +      ]
                          +    }
                          +  ],
                          +  "relationships": [
                          +    {
                          +      "spdxElementId": "SPDXRef-DOCUMENT",
                          +      "relatedSpdxElement": "SPDXRef-Package-simple-1.0.0",
                          +      "relationshipType": "DESCRIBES"
                          +    },
                          +    {
                          +      "spdxElementId": "SPDXRef-Package-simple-1.0.0",
                          +      "relatedSpdxElement": "SPDXRef-Package-lodash-4.17.21",
                          +      "relationshipType": "DEPENDS_ON"
                          +    }
                          +  ]
                          +}
                          +
                          +

                          Package lock only mode

                          +

                          If package-lock-only is enabled, only the information in the package +lock (or shrinkwrap) is loaded. This means that information from the +package.json files of your dependencies will not be included in the +result set (e.g. description, homepage, engines).

                          +

                          Configuration

                          +

                          omit

                          +
                            +
                          • Default: 'dev' if the NODE_ENV environment variable is set to +'production', otherwise empty.
                          • +
                          • Type: "dev", "optional", or "peer" (can be set multiple times)
                          • +
                          +

                          Dependency types to omit from the installation tree on disk.

                          +

                          Note that these dependencies are still resolved and added to the +package-lock.json or npm-shrinkwrap.json file. They are just not +physically installed on disk.

                          +

                          If a package type appears in both the --include and --omit lists, then +it will be included.

                          +

                          If the resulting omit list includes 'dev', then the NODE_ENV environment +variable will be set to 'production' for all lifecycle scripts.

                          +

                          package-lock-only

                          +
                            +
                          • Default: false
                          • +
                          • Type: Boolean
                          • +
                          +

                          If set to true, the current operation will only use the package-lock.json, +ignoring node_modules.

                          +

                          For update this means only the package-lock.json will be updated, +instead of checking node_modules and downloading dependencies.

                          +

                          For list this means the output will be based on the tree described by the +package-lock.json, rather than the contents of node_modules.

                          +

                          sbom-format

                          +
                            +
                          • Default: null
                          • +
                          • Type: "cyclonedx" or "spdx"
                          • +
                          +

                          SBOM format to use when generating SBOMs.

                          +

                          sbom-type

                          +
                            +
                          • Default: "library"
                          • +
                          • Type: "library", "application", or "framework"
                          • +
                          +

                          The type of package described by the generated SBOM. For SPDX, this is the +value for the primaryPackagePurpose fieled. For CycloneDX, this is the +value for the type field.

                          +

                          workspace

                          +
                            +
                          • Default:
                          • +
                          • Type: String (can be set multiple times)
                          • +
                          +

                          Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option.

                          +

                          Valid values for the workspace config are either:

                          +
                            +
                          • Workspace names
                          • +
                          • Path to a workspace directory
                          • +
                          • Path to a parent workspace directory (will result in selecting all +workspaces within that folder)
                          • +
                          +

                          When set for the npm init command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project.

                          +

                          This value is not exported to the environment for child processes.

                          +

                          workspaces

                          +
                            +
                          • Default: null
                          • +
                          • Type: null or Boolean
                          • +
                          +

                          Set to true to run the command in the context of all configured +workspaces.

                          +

                          Explicitly setting this to false will cause commands like install to +ignore workspaces altogether. When not set explicitly:

                          +
                            +
                          • Commands that operate on the node_modules tree (install, update, etc.) +will link workspaces into the node_modules folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +unless one or more workspaces are specified in the workspace config.
                          • +
                          +

                          This value is not exported to the environment for child processes.

                          +

                          See Also

                          +
                          + + +
                          + + + + \ No newline at end of file diff --git a/deps/npm/docs/output/commands/npm-update.html b/deps/npm/docs/output/commands/npm-update.html index 373a2ae22f9235..f471762ff30b87 100644 --- a/deps/npm/docs/output/commands/npm-update.html +++ b/deps/npm/docs/output/commands/npm-update.html @@ -142,7 +142,7 @@

                          npm-update

                          Table of contents

                          - +

                          Synopsis

                          @@ -319,6 +319,15 @@

                          omit

                          it will be included.

                          If the resulting omit list includes 'dev', then the NODE_ENV environment variable will be set to 'production' for all lifecycle scripts.

                          +

                          include

                          +
                            +
                          • Default:
                          • +
                          • Type: "prod", "dev", "optional", or "peer" (can be set multiple times)
                          • +
                          +

                          Option that allows for defining which types of dependencies to install.

                          +

                          This is the inverse of --omit=<type>.

                          +

                          Dependency types specified in --include will not be omitted, regardless of +the order in which omit/include are specified on the command-line.

                          strict-peer-deps

                          • Default: false
                          • diff --git a/deps/npm/docs/output/commands/npm.html b/deps/npm/docs/output/commands/npm.html index f9b1b53685768c..dafc8c4f92c3e5 100644 --- a/deps/npm/docs/output/commands/npm.html +++ b/deps/npm/docs/output/commands/npm.html @@ -150,7 +150,7 @@

                            Table of contents

                            Note: This command is unaware of workspaces.

                            Version

                            -

                            10.1.0

                            +

                            10.2.0

                            Description

                            npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency diff --git a/deps/npm/docs/output/using-npm/config.html b/deps/npm/docs/output/using-npm/config.html index 5942cf2118fae3..c80d3342fc9049 100644 --- a/deps/npm/docs/output/using-npm/config.html +++ b/deps/npm/docs/output/using-npm/config.html @@ -142,7 +142,7 @@

                            config

                            Table of contents

                            -
                            +

                            Description

                            @@ -1117,6 +1117,20 @@

                            save-prod

                            you want to move it to be a non-optional production dependency.

                            This is the default behavior if --save is true, and neither --save-dev or --save-optional are true.

                            +

                            sbom-format

                            +
                              +
                            • Default: null
                            • +
                            • Type: "cyclonedx" or "spdx"
                            • +
                            +

                            SBOM format to use when generating SBOMs.

                            +

                            sbom-type

                            +
                              +
                            • Default: "library"
                            • +
                            • Type: "library", "application", or "framework"
                            • +
                            +

                            The type of package described by the generated SBOM. For SPDX, this is the +value for the primaryPackagePurpose fieled. For CycloneDX, this is the +value for the type field.

                            scope

                            • Default: the scope of the current project, if any, or ""
                            • diff --git a/deps/npm/lib/commands/audit.js b/deps/npm/lib/commands/audit.js index de5483109d598e..c95d992c05c99f 100644 --- a/deps/npm/lib/commands/audit.js +++ b/deps/npm/lib/commands/audit.js @@ -404,7 +404,9 @@ class Audit extends ArboristWorkspaceCmd { 'force', 'json', 'package-lock-only', + 'package-lock', 'omit', + 'include', 'foreground-scripts', 'ignore-scripts', ...super.params, @@ -439,6 +441,10 @@ class Audit extends ArboristWorkspaceCmd { } async auditAdvisories (args) { + const fix = args[0] === 'fix' + if (this.npm.config.get('package-lock') === false && fix) { + throw this.usageError('fix can not be used without a package-lock') + } const reporter = this.npm.config.get('json') ? 'json' : 'detail' const Arborist = require('@npmcli/arborist') const opts = { @@ -450,7 +456,6 @@ class Audit extends ArboristWorkspaceCmd { } const arb = new Arborist(opts) - const fix = args[0] === 'fix' await arb.audit({ fix }) if (fix) { await reifyFinish(this.npm, arb) diff --git a/deps/npm/lib/commands/bugs.js b/deps/npm/lib/commands/bugs.js index 17cbd96649b871..44926afbc9a0a9 100644 --- a/deps/npm/lib/commands/bugs.js +++ b/deps/npm/lib/commands/bugs.js @@ -21,8 +21,9 @@ class Bugs extends PackageUrlCmd { // try to get it from the repo, if possible const info = this.hostedFromMani(mani) - if (info) { - return info.bugs() + const infoUrl = info?.bugs() + if (infoUrl) { + return infoUrl } // just send them to the website, hopefully that has some info! diff --git a/deps/npm/lib/commands/ci.js b/deps/npm/lib/commands/ci.js index e662379278e031..706b77ac361cf2 100644 --- a/deps/npm/lib/commands/ci.js +++ b/deps/npm/lib/commands/ci.js @@ -16,6 +16,7 @@ class CI extends ArboristWorkspaceCmd { 'legacy-bundling', 'global-style', 'omit', + 'include', 'strict-peer-deps', 'foreground-scripts', 'ignore-scripts', diff --git a/deps/npm/lib/commands/dedupe.js b/deps/npm/lib/commands/dedupe.js index d4e8d0e8c80c3c..0d0e26621b2275 100644 --- a/deps/npm/lib/commands/dedupe.js +++ b/deps/npm/lib/commands/dedupe.js @@ -13,6 +13,7 @@ class Dedupe extends ArboristWorkspaceCmd { 'strict-peer-deps', 'package-lock', 'omit', + 'include', 'ignore-scripts', 'audit', 'bin-links', diff --git a/deps/npm/lib/commands/deprecate.js b/deps/npm/lib/commands/deprecate.js index ada2bac40f2fd6..bdce313923cff8 100644 --- a/deps/npm/lib/commands/deprecate.js +++ b/deps/npm/lib/commands/deprecate.js @@ -15,7 +15,7 @@ class Deprecate extends BaseCommand { 'otp', ] - static ignoreImplicitWorkspace = false + static ignoreImplicitWorkspace = true static async completion (opts, npm) { if (opts.conf.argv.remain.length > 1) { diff --git a/deps/npm/lib/commands/doctor.js b/deps/npm/lib/commands/doctor.js index 96e343701d1d56..2a528d46ddb8dc 100644 --- a/deps/npm/lib/commands/doctor.js +++ b/deps/npm/lib/commands/doctor.js @@ -99,7 +99,7 @@ const subcommands = [ ] const BaseCommand = require('../base-command.js') class Doctor extends BaseCommand { - static description = 'Check your npm environment' + static description = 'Check the health of your npm environment' static name = 'doctor' static params = ['registry'] static ignoreImplicitWorkspace = false diff --git a/deps/npm/lib/commands/find-dupes.js b/deps/npm/lib/commands/find-dupes.js index b1a31208603663..2e06e8b6bd93f4 100644 --- a/deps/npm/lib/commands/find-dupes.js +++ b/deps/npm/lib/commands/find-dupes.js @@ -11,6 +11,7 @@ class FindDupes extends ArboristWorkspaceCmd { 'strict-peer-deps', 'package-lock', 'omit', + 'include', 'ignore-scripts', 'audit', 'bin-links', diff --git a/deps/npm/lib/commands/init.js b/deps/npm/lib/commands/init.js index 539fba885deef3..030c97356edb83 100644 --- a/deps/npm/lib/commands/init.js +++ b/deps/npm/lib/commands/init.js @@ -16,6 +16,11 @@ const BaseCommand = require('../base-command.js') class Init extends BaseCommand { static description = 'Create a package.json file' static params = [ + 'init-author-name', + 'init-author-url', + 'init-license', + 'init-module', + 'init-version', 'yes', 'force', 'scope', diff --git a/deps/npm/lib/commands/install.js b/deps/npm/lib/commands/install.js index 3983c8d26c841b..6687ec4371dd82 100644 --- a/deps/npm/lib/commands/install.js +++ b/deps/npm/lib/commands/install.js @@ -24,6 +24,7 @@ class Install extends ArboristWorkspaceCmd { 'legacy-bundling', 'global-style', 'omit', + 'include', 'strict-peer-deps', 'prefer-dedupe', 'package-lock', diff --git a/deps/npm/lib/commands/link.js b/deps/npm/lib/commands/link.js index a81450a247ed64..0c0929115a557f 100644 --- a/deps/npm/lib/commands/link.js +++ b/deps/npm/lib/commands/link.js @@ -27,6 +27,7 @@ class Link extends ArboristWorkspaceCmd { 'strict-peer-deps', 'package-lock', 'omit', + 'include', 'ignore-scripts', 'audit', 'bin-links', diff --git a/deps/npm/lib/commands/ls.js b/deps/npm/lib/commands/ls.js index 92300b1c404a35..3f9775cf125040 100644 --- a/deps/npm/lib/commands/ls.js +++ b/deps/npm/lib/commands/ls.js @@ -32,6 +32,7 @@ class LS extends ArboristWorkspaceCmd { 'global', 'depth', 'omit', + 'include', 'link', 'package-lock-only', 'unicode', diff --git a/deps/npm/lib/commands/outdated.js b/deps/npm/lib/commands/outdated.js index 419fb5f5c76acb..7e5805d41806c3 100644 --- a/deps/npm/lib/commands/outdated.js +++ b/deps/npm/lib/commands/outdated.js @@ -6,7 +6,7 @@ const npa = require('npm-package-arg') const pickManifest = require('npm-pick-manifest') const localeCompare = require('@isaacs/string-locale-compare')('en') -const ansiTrim = require('../utils/ansi-trim.js') +const ansiTrim = require('strip-ansi') const ArboristWorkspaceCmd = require('../arborist-cmd.js') class Outdated extends ArboristWorkspaceCmd { diff --git a/deps/npm/lib/commands/prune.js b/deps/npm/lib/commands/prune.js index 12136e20e4943a..189fc29cb8bc35 100644 --- a/deps/npm/lib/commands/prune.js +++ b/deps/npm/lib/commands/prune.js @@ -7,6 +7,7 @@ class Prune extends ArboristWorkspaceCmd { static name = 'prune' static params = [ 'omit', + 'include', 'dry-run', 'json', 'foreground-scripts', diff --git a/deps/npm/lib/commands/query.js b/deps/npm/lib/commands/query.js index ba39f004fae237..68aa1fa2c06a5b 100644 --- a/deps/npm/lib/commands/query.js +++ b/deps/npm/lib/commands/query.js @@ -2,6 +2,7 @@ const { resolve } = require('path') const BaseCommand = require('../base-command.js') +const log = require('../utils/log-shim.js') class QuerySelectorItem { constructor (node) { @@ -48,6 +49,7 @@ class Query extends BaseCommand { 'workspace', 'workspaces', 'include-workspace-root', + 'package-lock-only', ] get parsedResponse () { @@ -64,7 +66,18 @@ class Query extends BaseCommand { forceActual: true, } const arb = new Arborist(opts) - const tree = await arb.loadActual(opts) + let tree + if (this.npm.config.get('package-lock-only')) { + try { + tree = await arb.loadVirtual() + } catch (err) { + log.verbose('loadVirtual', err.stack) + /* eslint-disable-next-line max-len */ + throw this.usageError('A package lock or shrinkwrap file is required in package-lock-only mode') + } + } else { + tree = await arb.loadActual(opts) + } const items = await tree.querySelectorAll(args[0], this.npm.flatOptions) this.buildResponse(items) diff --git a/deps/npm/lib/commands/sbom.js b/deps/npm/lib/commands/sbom.js new file mode 100644 index 00000000000000..311dfbc852406d --- /dev/null +++ b/deps/npm/lib/commands/sbom.js @@ -0,0 +1,155 @@ +'use strict' + +const { EOL } = require('os') +const localeCompare = require('@isaacs/string-locale-compare')('en') +const BaseCommand = require('../base-command.js') +const log = require('../utils/log-shim.js') +const { cyclonedxOutput } = require('../utils/sbom-cyclonedx.js') +const { spdxOutput } = require('../utils/sbom-spdx.js') + +const SBOM_FORMATS = ['cyclonedx', 'spdx'] + +class SBOM extends BaseCommand { + #response = {} // response is the sbom response + + static description = 'Generate a Software Bill of Materials (SBOM)' + static name = 'sbom' + static workspaces = true + + static params = [ + 'omit', + 'package-lock-only', + 'sbom-format', + 'sbom-type', + 'workspace', + 'workspaces', + ] + + get #parsedResponse () { + return JSON.stringify(this.#response, null, 2) + } + + async exec () { + const sbomFormat = this.npm.config.get('sbom-format') + const packageLockOnly = this.npm.config.get('package-lock-only') + + if (!sbomFormat) { + /* eslint-disable-next-line max-len */ + throw this.usageError(`Must specify --sbom-format flag with one of: ${SBOM_FORMATS.join(', ')}.`) + } + + const Arborist = require('@npmcli/arborist') + + const opts = { + ...this.npm.flatOptions, + path: this.npm.prefix, + forceActual: true, + } + const arb = new Arborist(opts) + + let tree + if (packageLockOnly) { + try { + tree = await arb.loadVirtual(opts) + } catch (err) { + /* eslint-disable-next-line max-len */ + throw this.usageError('A package lock or shrinkwrap file is required in package-lock-only mode') + } + } else { + tree = await arb.loadActual(opts) + } + + // Collect the list of selected workspaces in the project + let wsNodes + if (this.workspaceNames && this.workspaceNames.length) { + wsNodes = arb.workspaceNodes(tree, this.workspaceNames) + } + + // Build the selector and query the tree for the list of nodes + const selector = this.#buildSelector({ wsNodes }) + log.info('sbom', `Using dependency selector: ${selector}`) + const items = await tree.querySelectorAll(selector) + + const errors = new Set() + for (const node of items) { + detectErrors(node).forEach(error => errors.add(error)) + } + + if (errors.size > 0) { + throw Object.assign( + new Error([...errors].join(EOL)), + { code: 'ESBOMPROBLEMS' } + ) + } + + // Populate the response with the list of unique nodes (sorted by location) + this.#buildResponse( + items + .sort((a, b) => localeCompare(a.location, b.location)) + ) + this.npm.output(this.#parsedResponse) + } + + async execWorkspaces (args) { + await this.setWorkspaces() + return this.exec(args) + } + + // Build the selector from all of the specified filter options + #buildSelector ({ wsNodes }) { + let selector + const omit = this.npm.flatOptions.omit + const workspacesEnabled = this.npm.flatOptions.workspacesEnabled + + // If omit is specified, omit all nodes and their children which match the + // specified selectors + const omits = omit.reduce((acc, o) => `${acc}:not(.${o})`, '') + + if (!workspacesEnabled) { + // If workspaces are disabled, omit all workspace nodes and their children + selector = `:root > :not(.workspace)${omits},:root > :not(.workspace) *${omits},:extraneous` + } else if (wsNodes && wsNodes.length > 0) { + // If one or more workspaces are selected, select only those workspaces and their children + selector = wsNodes.map(ws => `#${ws.name},#${ws.name} *${omits}`).join(',') + } else { + selector = `:root *${omits},:extraneous` + } + + // Always include the root node + return `:root,${selector}` + } + + // builds a normalized inventory + #buildResponse (items) { + const sbomFormat = this.npm.config.get('sbom-format') + const packageType = this.npm.config.get('sbom-type') + const packageLockOnly = this.npm.config.get('package-lock-only') + + this.#response = + sbomFormat === 'cyclonedx' + ? cyclonedxOutput({ npm: this.npm, nodes: items, packageType, packageLockOnly }) + : spdxOutput({ npm: this.npm, nodes: items, packageType }) + } +} + +const detectErrors = (node) => { + const errors = [] + + // Look for missing dependencies (that are NOT optional), or invalid dependencies + for (const edge of node.edgesOut.values()) { + if (edge.missing && !(edge.type === 'optional' || edge.type === 'peerOptional')) { + errors.push(`missing: ${edge.name}@${edge.spec}, required by ${edge.from.pkgid}`) + } + + if (edge.invalid) { + /* istanbul ignore next */ + const spec = edge.spec || '*' + const from = edge.from.pkgid + errors.push(`invalid: ${edge.to.pkgid}, ${spec} required by ${from}`) + } + } + + return errors +} + +module.exports = SBOM diff --git a/deps/npm/lib/commands/update.js b/deps/npm/lib/commands/update.js index caa69dd317ca6b..43d031c7ada3f3 100644 --- a/deps/npm/lib/commands/update.js +++ b/deps/npm/lib/commands/update.js @@ -16,6 +16,7 @@ class Update extends ArboristWorkspaceCmd { 'legacy-bundling', 'global-style', 'omit', + 'include', 'strict-peer-deps', 'package-lock', 'foreground-scripts', diff --git a/deps/npm/lib/utils/ansi-trim.js b/deps/npm/lib/utils/ansi-trim.js deleted file mode 100644 index e35a1baf633352..00000000000000 --- a/deps/npm/lib/utils/ansi-trim.js +++ /dev/null @@ -1,3 +0,0 @@ -const r = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + - '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g') -module.exports = str => str.replace(r, '') diff --git a/deps/npm/lib/utils/cmd-list.js b/deps/npm/lib/utils/cmd-list.js index 9bd252bc3facce..9017b2b80ce527 100644 --- a/deps/npm/lib/utils/cmd-list.js +++ b/deps/npm/lib/utils/cmd-list.js @@ -52,6 +52,7 @@ const commands = [ 'restart', 'root', 'run-script', + 'sbom', 'search', 'set', 'shrinkwrap', diff --git a/deps/npm/lib/utils/format-search-stream.js b/deps/npm/lib/utils/format-search-stream.js index ed753c27aabc83..280e96b13fa8bd 100644 --- a/deps/npm/lib/utils/format-search-stream.js +++ b/deps/npm/lib/utils/format-search-stream.js @@ -1,6 +1,6 @@ const { Minipass } = require('minipass') const columnify = require('columnify') -const ansiTrim = require('../utils/ansi-trim.js') +const ansiTrim = require('strip-ansi') // This module consumes package data in the following format: // diff --git a/deps/npm/lib/utils/sbom-cyclonedx.js b/deps/npm/lib/utils/sbom-cyclonedx.js new file mode 100644 index 00000000000000..3088068ad3b5f2 --- /dev/null +++ b/deps/npm/lib/utils/sbom-cyclonedx.js @@ -0,0 +1,194 @@ +const crypto = require('crypto') +const normalizeData = require('normalize-package-data') +const parseLicense = require('spdx-expression-parse') +const npa = require('npm-package-arg') +const ssri = require('ssri') + +const CYCLONEDX_SCHEMA = 'http://cyclonedx.org/schema/bom-1.5.schema.json' +const CYCLONEDX_FORMAT = 'CycloneDX' +const CYCLONEDX_SCHEMA_VERSION = '1.5' + +const PROP_PATH = 'cdx:npm:package:path' +const PROP_BUNDLED = 'cdx:npm:package:bundled' +const PROP_DEVELOPMENT = 'cdx:npm:package:development' +const PROP_EXTRANEOUS = 'cdx:npm:package:extraneous' +const PROP_PRIVATE = 'cdx:npm:package:private' + +const REF_VCS = 'vcs' +const REF_WEBSITE = 'website' +const REF_ISSUE_TRACKER = 'issue-tracker' +const REF_DISTRIBUTION = 'distribution' + +const ALGO_MAP = { + sha1: 'SHA-1', + sha256: 'SHA-256', + sha384: 'SHA-384', + sha512: 'SHA-512', +} + +const cyclonedxOutput = ({ npm, nodes, packageType, packageLockOnly }) => { + const rootNode = nodes.find(node => node.isRoot) + const childNodes = nodes.filter(node => !node.isRoot && !node.isLink) + const uuid = crypto.randomUUID() + + const deps = [] + const seen = new Set() + for (let node of nodes) { + if (node.isLink) { + node = node.target + } + + if (seen.has(node)) { + continue + } + seen.add(node) + deps.push(toCyclonedxDependency(node, nodes)) + } + + const bom = { + $schema: CYCLONEDX_SCHEMA, + bomFormat: CYCLONEDX_FORMAT, + specVersion: CYCLONEDX_SCHEMA_VERSION, + serialNumber: `urn:uuid:${uuid}`, + version: 1, + metadata: { + timestamp: new Date().toISOString(), + lifecycles: [ + { phase: packageLockOnly ? 'pre-build' : 'build' }, + ], + tools: [ + { + vendor: 'npm', + name: 'cli', + version: npm.version, + }, + ], + component: toCyclonedxItem(rootNode, { packageType }), + }, + components: childNodes.map(toCyclonedxItem), + dependencies: deps, + } + + return bom +} + +const toCyclonedxItem = (node, { packageType }) => { + packageType = packageType || 'library' + + // Calculate purl from package spec + let spec = npa(node.pkgid) + spec = (spec.type === 'alias') ? spec.subSpec : spec + const purl = npa.toPurl(spec) + (isGitNode(node) ? `?vcs_url=${node.resolved}` : '') + + if (node.package) { + normalizeData(node.package) + } + + let parsedLicense + try { + parsedLicense = parseLicense(node.package?.license) + } catch (err) { + parsedLicense = null + } + + const component = { + 'bom-ref': toCyclonedxID(node), + type: packageType, + name: node.name, + version: node.version, + scope: (node.optional || node.devOptional) ? 'optional' : 'required', + author: (typeof node.package?.author === 'object') + ? node.package.author.name + : (node.package?.author || undefined), + description: node.package?.description || undefined, + purl: purl, + properties: [{ + name: PROP_PATH, + value: node.location, + }], + externalReferences: [], + } + + if (node.integrity) { + const integrity = ssri.parse(node.integrity, { single: true }) + component.hashes = [{ + alg: ALGO_MAP[integrity.algorithm] || /* istanbul ignore next */ 'SHA-512', + content: integrity.hexDigest(), + }] + } + + if (node.dev === true) { + component.properties.push(prop(PROP_DEVELOPMENT)) + } + + if (node.package?.private === true) { + component.properties.push(prop(PROP_PRIVATE)) + } + + if (node.extraneous === true) { + component.properties.push(prop(PROP_EXTRANEOUS)) + } + + if (node.inBundle === true) { + component.properties.push(prop(PROP_BUNDLED)) + } + + if (!node.isLink && node.resolved) { + component.externalReferences.push(extRef(REF_DISTRIBUTION, node.resolved)) + } + + if (node.package?.repository?.url) { + component.externalReferences.push(extRef(REF_VCS, node.package.repository.url)) + } + + if (node.package?.homepage) { + component.externalReferences.push(extRef(REF_WEBSITE, node.package.homepage)) + } + + if (node.package?.bugs?.url) { + component.externalReferences.push(extRef(REF_ISSUE_TRACKER, node.package.bugs.url)) + } + + // If license is a single SPDX license, use the license field + if (parsedLicense?.license) { + component.licenses = [{ license: { id: parsedLicense.license } }] + // If license is a conjunction, use the expression field + } else if (parsedLicense?.conjunction) { + component.licenses = [{ expression: node.package.license }] + } + + return component +} + +const toCyclonedxDependency = (node, nodes) => { + return { + ref: toCyclonedxID(node), + dependsOn: [...node.edgesOut.values()] + // Filter out edges that are linking to nodes not in the list + .filter(edge => nodes.find(n => n === edge.to)) + .map(edge => toCyclonedxID(edge.to)) + .filter(id => id), + } +} + +const toCyclonedxID = (node) => `${node.packageName}@${node.version}` + +const prop = (name) => ({ name, value: 'true' }) + +const extRef = (type, url) => ({ type, url }) + +const isGitNode = (node) => { + if (!node.resolved) { + return + } + + try { + const { type } = npa(node.resolved) + return type === 'git' || type === 'hosted' + } catch (err) { + /* istanbul ignore next */ + return false + } +} + +module.exports = { cyclonedxOutput } diff --git a/deps/npm/lib/utils/sbom-spdx.js b/deps/npm/lib/utils/sbom-spdx.js new file mode 100644 index 00000000000000..890ee3310fa789 --- /dev/null +++ b/deps/npm/lib/utils/sbom-spdx.js @@ -0,0 +1,175 @@ + +const crypto = require('crypto') +const normalizeData = require('normalize-package-data') +const npa = require('npm-package-arg') +const ssri = require('ssri') + +const SPDX_SCHEMA_VERSION = 'SPDX-2.3' +const SPDX_DATA_LICENSE = 'CC0-1.0' +const SPDX_IDENTIFER = 'SPDXRef-DOCUMENT' + +const NO_ASSERTION = 'NOASSERTION' + +const REL_DESCRIBES = 'DESCRIBES' +const REL_PREREQ = 'HAS_PREREQUISITE' +const REL_OPTIONAL = 'OPTIONAL_DEPENDENCY_OF' +const REL_DEV = 'DEV_DEPENDENCY_OF' +const REL_DEP = 'DEPENDS_ON' + +const REF_CAT_PACKAGE_MANAGER = 'PACKAGE-MANAGER' +const REF_TYPE_PURL = 'purl' + +const spdxOutput = ({ npm, nodes, packageType }) => { + const rootNode = nodes.find(node => node.isRoot) + const childNodes = nodes.filter(node => !node.isRoot && !node.isLink) + const rootID = rootNode.pkgid + const uuid = crypto.randomUUID() + const ns = `http://spdx.org/spdxdocs/${npa(rootID).escapedName}-${rootNode.version}-${uuid}` + + const relationships = [] + const seen = new Set() + for (let node of nodes) { + if (node.isLink) { + node = node.target + } + + if (seen.has(node)) { + continue + } + seen.add(node) + + const rels = [...node.edgesOut.values()] + // Filter out edges that are linking to nodes not in the list + .filter(edge => nodes.find(n => n === edge.to)) + .map(edge => toSpdxRelationship(node, edge)) + .filter(rel => rel) + + relationships.push(...rels) + } + + const extraRelationships = nodes.filter(node => node.extraneous) + .map(node => toSpdxRelationship(rootNode, { to: node, type: 'optional' })) + + relationships.push(...extraRelationships) + + const bom = { + spdxVersion: SPDX_SCHEMA_VERSION, + dataLicense: SPDX_DATA_LICENSE, + SPDXID: SPDX_IDENTIFER, + name: rootID, + documentNamespace: ns, + creationInfo: { + created: new Date().toISOString(), + creators: [ + `Tool: npm/cli-${npm.version}`, + ], + }, + documentDescribes: [toSpdxID(rootNode)], + packages: [toSpdxItem(rootNode, { packageType }), ...childNodes.map(toSpdxItem)], + relationships: [ + { + spdxElementId: SPDX_IDENTIFER, + relatedSpdxElement: toSpdxID(rootNode), + relationshipType: REL_DESCRIBES, + }, + ...relationships, + ], + } + + return bom +} + +const toSpdxItem = (node, { packageType }) => { + normalizeData(node.package) + + // Calculate purl from package spec + let spec = npa(node.pkgid) + spec = (spec.type === 'alias') ? spec.subSpec : spec + const purl = npa.toPurl(spec) + (isGitNode(node) ? `?vcs_url=${node.resolved}` : '') + + /* For workspace nodes, use the location from their linkNode */ + let location = node.location + if (node.isWorkspace && node.linksIn.size > 0) { + location = node.linksIn.values().next().value.location + } + + const pkg = { + name: node.packageName, + SPDXID: toSpdxID(node), + versionInfo: node.version, + packageFileName: location, + description: node.package?.description || undefined, + primaryPackagePurpose: packageType ? packageType.toUpperCase() : undefined, + downloadLocation: (node.isLink ? undefined : node.resolved) || NO_ASSERTION, + filesAnalyzed: false, + homepage: node.package?.homepage || NO_ASSERTION, + licenseDeclared: node.package?.license || NO_ASSERTION, + externalRefs: [ + { + referenceCategory: REF_CAT_PACKAGE_MANAGER, + referenceType: REF_TYPE_PURL, + referenceLocator: purl, + }, + ], + } + + if (node.integrity) { + const integrity = ssri.parse(node.integrity, { single: true }) + pkg.checksums = [{ + algorithm: integrity.algorithm.toUpperCase(), + checksumValue: integrity.hexDigest(), + }] + } + return pkg +} + +const toSpdxRelationship = (node, edge) => { + let type + switch (edge.type) { + case 'peer': + type = REL_PREREQ + break + case 'optional': + type = REL_OPTIONAL + break + case 'dev': + type = REL_DEV + break + default: + type = REL_DEP + } + + return { + spdxElementId: toSpdxID(node), + relatedSpdxElement: toSpdxID(edge.to), + relationshipType: type, + } +} + +const toSpdxID = (node) => { + let name = node.packageName + + // Strip leading @ for scoped packages + name = name.replace(/^@/, '') + + // Replace slashes with dots + name = name.replace(/\//g, '.') + + return `SPDXRef-Package-${name}-${node.version}` +} + +const isGitNode = (node) => { + if (!node.resolved) { + return + } + + try { + const { type } = npa(node.resolved) + return type === 'git' || type === 'hosted' + } catch (err) { + /* istanbul ignore next */ + return false + } +} + +module.exports = { spdxOutput } diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 index dc455d4a5f23b2..3973970b33e774 100644 --- a/deps/npm/man/man1/npm-access.1 +++ b/deps/npm/man/man1/npm-access.1 @@ -1,4 +1,4 @@ -.TH "NPM-ACCESS" "1" "September 2023" "" "" +.TH "NPM-ACCESS" "1" "October 2023" "" "" .SH "NAME" \fBnpm-access\fR - Set access level on published packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index 81807af54a8cdf..bed0126358ba71 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -1,4 +1,4 @@ -.TH "NPM-ADDUSER" "1" "September 2023" "" "" +.TH "NPM-ADDUSER" "1" "October 2023" "" "" .SH "NAME" \fBnpm-adduser\fR - Add a registry user account .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1 index 84e580c7e5b17a..2b354792825a2a 100644 --- a/deps/npm/man/man1/npm-audit.1 +++ b/deps/npm/man/man1/npm-audit.1 @@ -1,4 +1,4 @@ -.TH "NPM-AUDIT" "1" "September 2023" "" "" +.TH "NPM-AUDIT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-audit\fR - Run a security audit .SS "Synopsis" @@ -18,6 +18,9 @@ Note that some vulnerabilities cannot be fixed automatically and will require ma fix\fR runs a full-fledged \fBnpm install\fR under the hood, all configs that apply to the installer will also apply to \fBnpm install\fR -- so things like \fBnpm audit fix --package-lock-only\fR will work as expected. .P By default, the audit command will exit with a non-zero code if any vulnerability is found. It may be useful in CI environments to include the \fB--audit-level\fR parameter to specify the minimum vulnerability level that will cause the command to fail. This option does not filter the report output, it simply changes the command's failure threshold. +.SS "Package lock" +.P +By default npm requires a package-lock or shrinkwrap in order to run the audit. You can bypass the package lock with \fB--no-package-lock\fR but be aware the results may be different with every run, since npm will re-build the dependency tree each time. .SS "Audit Signatures" .P To ensure the integrity of packages you download from the public npm registry, or any registry that supports signatures, you can verify the registry signatures of downloaded packages using the npm CLI. @@ -302,6 +305,16 @@ If set to true, the current operation will only use the \fBpackage-lock.json\fR, For \fBupdate\fR this means only the \fBpackage-lock.json\fR will be updated, instead of checking \fBnode_modules\fR and downloading dependencies. .P For \fBlist\fR this means the output will be based on the tree described by the \fBpackage-lock.json\fR, rather than the contents of \fBnode_modules\fR. +.SS "\fBpackage-lock\fR" +.RS 0 +.IP \(bu 4 +Default: true +.IP \(bu 4 +Type: Boolean +.RE 0 + +.P +If set to false, then ignore \fBpackage-lock.json\fR files when installing. This will also prevent \fIwriting\fR \fBpackage-lock.json\fR if \fBsave\fR is true. .SS "\fBomit\fR" .RS 0 .IP \(bu 4 @@ -318,6 +331,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBforeground-scripts\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index bbf9f8d979fd18..16fee0af9cf066 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,4 +1,4 @@ -.TH "NPM-BUGS" "1" "September 2023" "" "" +.TH "NPM-BUGS" "1" "October 2023" "" "" .SH "NAME" \fBnpm-bugs\fR - Report bugs for a package in a web browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index a58256bf8d4585..a0faa423af17a6 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,4 +1,4 @@ -.TH "NPM-CACHE" "1" "September 2023" "" "" +.TH "NPM-CACHE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-cache\fR - Manipulates packages cache .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1 index 59b0de021df4e5..e22f3bd8ce4134 100644 --- a/deps/npm/man/man1/npm-ci.1 +++ b/deps/npm/man/man1/npm-ci.1 @@ -1,4 +1,4 @@ -.TH "NPM-CI" "1" "September 2023" "" "" +.TH "NPM-CI" "1" "October 2023" "" "" .SH "NAME" \fBnpm-ci\fR - Clean install a project .SS "Synopsis" @@ -116,6 +116,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBstrict-peer-deps\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index e420854773c247..b8f80ed6090c85 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,4 +1,4 @@ -.TH "NPM-COMPLETION" "1" "September 2023" "" "" +.TH "NPM-COMPLETION" "1" "October 2023" "" "" .SH "NAME" \fBnpm-completion\fR - Tab Completion for npm .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index dba3356299a4f2..bdf56c7bdb49eb 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,4 +1,4 @@ -.TH "NPM-CONFIG" "1" "September 2023" "" "" +.TH "NPM-CONFIG" "1" "October 2023" "" "" .SH "NAME" \fBnpm-config\fR - Manage the npm configuration files .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 8dba928a3d78aa..7857da24d22227 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,4 +1,4 @@ -.TH "NPM-DEDUPE" "1" "September 2023" "" "" +.TH "NPM-DEDUPE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-dedupe\fR - Reduce duplication in the package tree .SS "Synopsis" @@ -139,6 +139,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBignore-scripts\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index 85447f708de39d..b58987d3afad92 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,4 +1,4 @@ -.TH "NPM-DEPRECATE" "1" "September 2023" "" "" +.TH "NPM-DEPRECATE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-deprecate\fR - Deprecate a version of a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-diff.1 b/deps/npm/man/man1/npm-diff.1 index cb21d2b1bfd135..70227dc7aaff32 100644 --- a/deps/npm/man/man1/npm-diff.1 +++ b/deps/npm/man/man1/npm-diff.1 @@ -1,4 +1,4 @@ -.TH "NPM-DIFF" "1" "September 2023" "" "" +.TH "NPM-DIFF" "1" "October 2023" "" "" .SH "NAME" \fBnpm-diff\fR - The registry diff command .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index ab3c4bec4b6838..a02570f24a6f9f 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -1,4 +1,4 @@ -.TH "NPM-DIST-TAG" "1" "September 2023" "" "" +.TH "NPM-DIST-TAG" "1" "October 2023" "" "" .SH "NAME" \fBnpm-dist-tag\fR - Modify package distribution tags .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index 32492edbf9d8f1..81f53336cdb779 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,4 +1,4 @@ -.TH "NPM-DOCS" "1" "September 2023" "" "" +.TH "NPM-DOCS" "1" "October 2023" "" "" .SH "NAME" \fBnpm-docs\fR - Open documentation for a package in a web browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 index 7bbae5311478b2..17978d0d5e532a 100644 --- a/deps/npm/man/man1/npm-doctor.1 +++ b/deps/npm/man/man1/npm-doctor.1 @@ -1,6 +1,6 @@ -.TH "NPM-DOCTOR" "1" "September 2023" "" "" +.TH "NPM-DOCTOR" "1" "October 2023" "" "" .SH "NAME" -\fBnpm-doctor\fR - Check your npm environment +\fBnpm-doctor\fR - Check the health of your npm environment .SS "Synopsis" .P .RS 2 diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 97274222f7b744..012aabad9f2858 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,4 +1,4 @@ -.TH "NPM-EDIT" "1" "September 2023" "" "" +.TH "NPM-EDIT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-edit\fR - Edit an installed package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-exec.1 b/deps/npm/man/man1/npm-exec.1 index a48b29fd1ab411..92e0cdb11895d7 100644 --- a/deps/npm/man/man1/npm-exec.1 +++ b/deps/npm/man/man1/npm-exec.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXEC" "1" "September 2023" "" "" +.TH "NPM-EXEC" "1" "October 2023" "" "" .SH "NAME" \fBnpm-exec\fR - Run a command from a local or remote npm package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-explain.1 b/deps/npm/man/man1/npm-explain.1 index 08aa51b4748f9d..667d46df151f40 100644 --- a/deps/npm/man/man1/npm-explain.1 +++ b/deps/npm/man/man1/npm-explain.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXPLAIN" "1" "September 2023" "" "" +.TH "NPM-EXPLAIN" "1" "October 2023" "" "" .SH "NAME" \fBnpm-explain\fR - Explain installed packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index bf87dc4c66d3d9..f30ffd4a5e27af 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXPLORE" "1" "September 2023" "" "" +.TH "NPM-EXPLORE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-explore\fR - Browse an installed package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-find-dupes.1 b/deps/npm/man/man1/npm-find-dupes.1 index 3310201661f1b1..e4bcc8b85db3dd 100644 --- a/deps/npm/man/man1/npm-find-dupes.1 +++ b/deps/npm/man/man1/npm-find-dupes.1 @@ -1,4 +1,4 @@ -.TH "NPM-FIND-DUPES" "1" "September 2023" "" "" +.TH "NPM-FIND-DUPES" "1" "October 2023" "" "" .SH "NAME" \fBnpm-find-dupes\fR - Find duplication in the package tree .SS "Synopsis" @@ -86,6 +86,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBignore-scripts\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-fund.1 b/deps/npm/man/man1/npm-fund.1 index 7f70ab3c45c058..afcbcfbbc85f41 100644 --- a/deps/npm/man/man1/npm-fund.1 +++ b/deps/npm/man/man1/npm-fund.1 @@ -1,4 +1,4 @@ -.TH "NPM-FUND" "1" "September 2023" "" "" +.TH "NPM-FUND" "1" "October 2023" "" "" .SH "NAME" \fBnpm-fund\fR - Retrieve funding information .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index e1bd049796d950..2c5effe6c6e186 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,4 +1,4 @@ -.TH "NPM-HELP-SEARCH" "1" "September 2023" "" "" +.TH "NPM-HELP-SEARCH" "1" "October 2023" "" "" .SH "NAME" \fBnpm-help-search\fR - Search npm help documentation .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index c7b63df80ca5b2..b5f7e3bdd959ef 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,4 +1,4 @@ -.TH "NPM-HELP" "1" "September 2023" "" "" +.TH "NPM-HELP" "1" "October 2023" "" "" .SH "NAME" \fBnpm-help\fR - Get help on npm .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1 index 345fa4bf0fa339..db68ce36d4d88a 100644 --- a/deps/npm/man/man1/npm-hook.1 +++ b/deps/npm/man/man1/npm-hook.1 @@ -1,4 +1,4 @@ -.TH "NPM-HOOK" "1" "September 2023" "" "" +.TH "NPM-HOOK" "1" "October 2023" "" "" .SH "NAME" \fBnpm-hook\fR - Manage registry hooks .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 733d132e56f283..f2e0a289b88561 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,4 +1,4 @@ -.TH "NPM-INIT" "1" "September 2023" "" "" +.TH "NPM-INIT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-init\fR - Create a package.json file .SS "Synopsis" @@ -148,6 +148,56 @@ This will make sure to generate your react app as expected, one important consid .fi .RE .SS "Configuration" +.SS "\fBinit-author-name\fR" +.RS 0 +.IP \(bu 4 +Default: "" +.IP \(bu 4 +Type: String +.RE 0 + +.P +The value \fBnpm init\fR should use by default for the package author's name. +.SS "\fBinit-author-url\fR" +.RS 0 +.IP \(bu 4 +Default: "" +.IP \(bu 4 +Type: "" or URL +.RE 0 + +.P +The value \fBnpm init\fR should use by default for the package author's homepage. +.SS "\fBinit-license\fR" +.RS 0 +.IP \(bu 4 +Default: "ISC" +.IP \(bu 4 +Type: String +.RE 0 + +.P +The value \fBnpm init\fR should use by default for the package license. +.SS "\fBinit-module\fR" +.RS 0 +.IP \(bu 4 +Default: "~/.npm-init.js" +.IP \(bu 4 +Type: Path +.RE 0 + +.P +A module that will be loaded by the \fBnpm init\fR command. See the documentation for the \fBinit-package-json\fR \fI\(lahttps://github.com/npm/init-package-json\(ra\fR module for more information, or npm help init. +.SS "\fBinit-version\fR" +.RS 0 +.IP \(bu 4 +Default: "1.0.0" +.IP \(bu 4 +Type: SemVer string +.RE 0 + +.P +The value that \fBnpm init\fR should use by default for the package version number, if not already set in package.json. .SS "\fByes\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1 index 291242bcc5551a..9f7c1a222ef31f 100644 --- a/deps/npm/man/man1/npm-install-ci-test.1 +++ b/deps/npm/man/man1/npm-install-ci-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL-CI-TEST" "1" "September 2023" "" "" +.TH "NPM-INSTALL-CI-TEST" "1" "October 2023" "" "" .SH "NAME" \fBnpm-install-ci-test\fR - Install a project with a clean slate and run tests .SS "Synopsis" @@ -64,6 +64,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBstrict-peer-deps\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 index 7a7db04ce9af80..c7361dcd7ac767 100644 --- a/deps/npm/man/man1/npm-install-test.1 +++ b/deps/npm/man/man1/npm-install-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL-TEST" "1" "September 2023" "" "" +.TH "NPM-INSTALL-TEST" "1" "October 2023" "" "" .SH "NAME" \fBnpm-install-test\fR - Install package(s) and run tests .SS "Synopsis" @@ -107,6 +107,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBstrict-peer-deps\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index 2e55418c2cbdba..0d202d94814425 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL" "1" "September 2023" "" "" +.TH "NPM-INSTALL" "1" "October 2023" "" "" .SH "NAME" \fBnpm-install\fR - Install a package .SS "Synopsis" @@ -469,6 +469,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBstrict-peer-deps\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index d07195da001f1b..13c26b8b4043de 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,4 +1,4 @@ -.TH "NPM-LINK" "1" "September 2023" "" "" +.TH "NPM-LINK" "1" "October 2023" "" "" .SH "NAME" \fBnpm-link\fR - Symlink a package folder .SS "Synopsis" @@ -198,6 +198,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBignore-scripts\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-login.1 b/deps/npm/man/man1/npm-login.1 index 54c612b86dd6a9..86bc0a1f6162f3 100644 --- a/deps/npm/man/man1/npm-login.1 +++ b/deps/npm/man/man1/npm-login.1 @@ -1,4 +1,4 @@ -.TH "NPM-LOGIN" "1" "September 2023" "" "" +.TH "NPM-LOGIN" "1" "October 2023" "" "" .SH "NAME" \fBnpm-login\fR - Login to a registry user account .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index 3bab9b35c7866a..58c7f047db0086 100644 --- a/deps/npm/man/man1/npm-logout.1 +++ b/deps/npm/man/man1/npm-logout.1 @@ -1,4 +1,4 @@ -.TH "NPM-LOGOUT" "1" "September 2023" "" "" +.TH "NPM-LOGOUT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-logout\fR - Log out of the registry .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 7254629646d7a9..385138d4876f99 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,4 +1,4 @@ -.TH "NPM-LS" "1" "September 2023" "" "" +.TH "NPM-LS" "1" "October 2023" "" "" .SH "NAME" \fBnpm-ls\fR - List installed packages .SS "Synopsis" @@ -20,7 +20,7 @@ Positional arguments are \fBname@version-range\fR identifiers, which will limit .P .RS 2 .nf -npm@10.1.0 /path/to/npm +npm@10.2.0 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 .fi @@ -140,6 +140,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBlink\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-org.1 b/deps/npm/man/man1/npm-org.1 index e1b45b50b6765f..df0495c6c6aeea 100644 --- a/deps/npm/man/man1/npm-org.1 +++ b/deps/npm/man/man1/npm-org.1 @@ -1,4 +1,4 @@ -.TH "NPM-ORG" "1" "September 2023" "" "" +.TH "NPM-ORG" "1" "October 2023" "" "" .SH "NAME" \fBnpm-org\fR - Manage orgs .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 887c252ff38778..2935461bbedd0a 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,4 +1,4 @@ -.TH "NPM-OUTDATED" "1" "September 2023" "" "" +.TH "NPM-OUTDATED" "1" "October 2023" "" "" .SH "NAME" \fBnpm-outdated\fR - Check for outdated packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 01c2050f00068e..288c891617d867 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,4 +1,4 @@ -.TH "NPM-OWNER" "1" "September 2023" "" "" +.TH "NPM-OWNER" "1" "October 2023" "" "" .SH "NAME" \fBnpm-owner\fR - Manage package owners .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index a5fc8234152216..b6d8a6bff2d275 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,4 +1,4 @@ -.TH "NPM-PACK" "1" "September 2023" "" "" +.TH "NPM-PACK" "1" "October 2023" "" "" .SH "NAME" \fBnpm-pack\fR - Create a tarball from a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 index 92f76c66dc5a2e..f5e3cc536030e8 100644 --- a/deps/npm/man/man1/npm-ping.1 +++ b/deps/npm/man/man1/npm-ping.1 @@ -1,4 +1,4 @@ -.TH "NPM-PING" "1" "September 2023" "" "" +.TH "NPM-PING" "1" "October 2023" "" "" .SH "NAME" \fBnpm-ping\fR - Ping npm registry .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-pkg.1 b/deps/npm/man/man1/npm-pkg.1 index d13bcd64cef703..75d0791abbfed6 100644 --- a/deps/npm/man/man1/npm-pkg.1 +++ b/deps/npm/man/man1/npm-pkg.1 @@ -1,4 +1,4 @@ -.TH "NPM-PKG" "1" "September 2023" "" "" +.TH "NPM-PKG" "1" "October 2023" "" "" .SH "NAME" \fBnpm-pkg\fR - Manages your package.json .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index 909e5b709787bc..c63af6e4d99fbd 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,4 +1,4 @@ -.TH "NPM-PREFIX" "1" "September 2023" "" "" +.TH "NPM-PREFIX" "1" "October 2023" "" "" .SH "NAME" \fBnpm-prefix\fR - Display prefix .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 index 4941380ad2ef58..acc437b9b904f2 100644 --- a/deps/npm/man/man1/npm-profile.1 +++ b/deps/npm/man/man1/npm-profile.1 @@ -1,4 +1,4 @@ -.TH "NPM-PROFILE" "1" "September 2023" "" "" +.TH "NPM-PROFILE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-profile\fR - Change settings on your registry profile .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index eea4ee41da6a23..1ccd763e2372f6 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,4 +1,4 @@ -.TH "NPM-PRUNE" "1" "September 2023" "" "" +.TH "NPM-PRUNE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-prune\fR - Remove extraneous packages .SS "Synopsis" @@ -38,6 +38,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBdry-run\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index b167ed8a60677a..9d580de01e5ec5 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,4 +1,4 @@ -.TH "NPM-PUBLISH" "1" "September 2023" "" "" +.TH "NPM-PUBLISH" "1" "October 2023" "" "" .SH "NAME" \fBnpm-publish\fR - Publish a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-query.1 b/deps/npm/man/man1/npm-query.1 index c5ff8ec3bffd66..5a79a5c2fac37d 100644 --- a/deps/npm/man/man1/npm-query.1 +++ b/deps/npm/man/man1/npm-query.1 @@ -1,4 +1,4 @@ -.TH "NPM-QUERY" "1" "September 2023" "" "" +.TH "NPM-QUERY" "1" "October 2023" "" "" .SH "NAME" \fBnpm-query\fR - Dependency selector query .SS "Synopsis" @@ -138,6 +138,12 @@ an array of dependency objects is returned which can contain multiple copies of ... .fi .RE +.SS "Package lock only mode" +.P +If package-lock-only is enabled, only the information in the package lock (or shrinkwrap) is loaded. This means that information from the package.json files of your dependencies will not be included in the result set (e.g. description, homepage, engines). +.SS "Package lock only mode" +.P +If package-lock-only is enabled, only the information in the package lock (or shrinkwrap) is loaded. This means that information from the package.json files of your dependencies will not be included in the result set (e.g. description, homepage, engines). .SS "Configuration" .SS "\fBglobal\fR" .RS 0 @@ -216,6 +222,20 @@ Include the workspace root when workspaces are enabled for a command. When false, specifying individual workspaces via the \fBworkspace\fR config, or all workspaces via the \fBworkspaces\fR flag, will cause npm to operate only on the specified workspaces, and not on the root project. .P This value is not exported to the environment for child processes. +.SS "\fBpackage-lock-only\fR" +.RS 0 +.IP \(bu 4 +Default: false +.IP \(bu 4 +Type: Boolean +.RE 0 + +.P +If set to true, the current operation will only use the \fBpackage-lock.json\fR, ignoring \fBnode_modules\fR. +.P +For \fBupdate\fR this means only the \fBpackage-lock.json\fR will be updated, instead of checking \fBnode_modules\fR and downloading dependencies. +.P +For \fBlist\fR this means the output will be based on the tree described by the \fBpackage-lock.json\fR, rather than the contents of \fBnode_modules\fR. .SH "SEE ALSO" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index d22edac3427f53..882b27fa6e0722 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,4 +1,4 @@ -.TH "NPM-REBUILD" "1" "September 2023" "" "" +.TH "NPM-REBUILD" "1" "October 2023" "" "" .SH "NAME" \fBnpm-rebuild\fR - Rebuild a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 8562592255a21a..85805cb46b07fc 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,4 +1,4 @@ -.TH "NPM-REPO" "1" "September 2023" "" "" +.TH "NPM-REPO" "1" "October 2023" "" "" .SH "NAME" \fBnpm-repo\fR - Open package repository page in the browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index 50f86f5aedc763..eea0fa265c0260 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,4 +1,4 @@ -.TH "NPM-RESTART" "1" "September 2023" "" "" +.TH "NPM-RESTART" "1" "October 2023" "" "" .SH "NAME" \fBnpm-restart\fR - Restart a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index 6d66168523776a..eb0cfdb848c9ef 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,4 +1,4 @@ -.TH "NPM-ROOT" "1" "September 2023" "" "" +.TH "NPM-ROOT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-root\fR - Display npm root .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index 4a3cf441d72dd7..df369cd43a6a7c 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,4 +1,4 @@ -.TH "NPM-RUN-SCRIPT" "1" "September 2023" "" "" +.TH "NPM-RUN-SCRIPT" "1" "October 2023" "" "" .SH "NAME" \fBnpm-run-script\fR - Run arbitrary package scripts .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-sbom.1 b/deps/npm/man/man1/npm-sbom.1 new file mode 100644 index 00000000000000..f9f14670f55a67 --- /dev/null +++ b/deps/npm/man/man1/npm-sbom.1 @@ -0,0 +1,314 @@ +.TH "NPM-SBOM" "1" "October 2023" "" "" +.SH "NAME" +\fBnpm-sbom\fR - Generate a Software Bill of Materials (SBOM) +.SS "Synopsis" +.P +.RS 2 +.nf +npm sbom +.fi +.RE +.SS "Description" +.P +The \fBnpm sbom\fR command generates a Software Bill of Materials (SBOM) listing the dependencies for the current project. SBOMs can be generated in either \fBSPDX\fR \fI\(lahttps://spdx.dev/\(ra\fR or \fBCycloneDX\fR \fI\(lahttps://cyclonedx.org/\(ra\fR format. +.SS "Example CycloneDX SBOM" +.P +.RS 2 +.nf +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:09f55116-97e1-49cf-b3b8-44d0207e7730", + "version": 1, + "metadata": { + "timestamp": "2023-09-01T00:00:00.001Z", + "lifecycles": \[lB] + { + "phase": "build" + } + \[rB], + "tools": \[lB] + { + "vendor": "npm", + "name": "cli", + "version": "10.1.0" + } + \[rB], + "component": { + "bom-ref": "simple@1.0.0", + "type": "library", + "name": "simple", + "version": "1.0.0", + "scope": "required", + "author": "John Doe", + "description": "simple react app", + "purl": "pkg:npm/simple@1.0.0", + "properties": \[lB] + { + "name": "cdx:npm:package:path", + "value": "" + } + \[rB], + "externalReferences": \[lB]\[rB], + "licenses": \[lB] + { + "license": { + "id": "MIT" + } + } + \[rB] + } + }, + "components": \[lB] + { + "bom-ref": "lodash@4.17.21", + "type": "library", + "name": "lodash", + "version": "4.17.21", + "scope": "required", + "author": "John-David Dalton", + "description": "Lodash modular utilities.", + "purl": "pkg:npm/lodash@4.17.21", + "properties": \[lB] + { + "name": "cdx:npm:package:path", + "value": "node_modules/lodash" + } + \[rB], + "externalReferences": \[lB] + { + "type": "distribution", + "url": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + }, + { + "type": "vcs", + "url": "git+https://github.com/lodash/lodash.git" + }, + { + "type": "website", + "url": "https://lodash.com/" + }, + { + "type": "issue-tracker", + "url": "https://github.com/lodash/lodash/issues" + } + \[rB], + "hashes": \[lB] + { + "alg": "SHA-512", + "content": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a" + } + \[rB], + "licenses": \[lB] + { + "license": { + "id": "MIT" + } + } + \[rB] + } + \[rB], + "dependencies": \[lB] + { + "ref": "simple@1.0.0", + "dependsOn": \[lB] + "lodash@4.17.21" + \[rB] + }, + { + "ref": "lodash@4.17.21", + "dependsOn": \[lB]\[rB] + } + \[rB] +} +.fi +.RE +.SS "Example SPDX SBOM" +.P +.RS 2 +.nf +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "simple@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/simple-1.0.0-bf81090e-8bbc-459d-bec9-abeb794e096a", + "creationInfo": { + "created": "2023-09-01T00:00:00.001Z", + "creators": \[lB] + "Tool: npm/cli-10.1.0" + \[rB] + }, + "documentDescribes": \[lB] + "SPDXRef-Package-simple-1.0.0" + \[rB], + "packages": \[lB] + { + "name": "simple", + "SPDXID": "SPDXRef-Package-simple-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "description": "simple react app", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "MIT", + "externalRefs": \[lB] + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/simple@1.0.0" + } + \[rB] + }, + { + "name": "lodash", + "SPDXID": "SPDXRef-Package-lodash-4.17.21", + "versionInfo": "4.17.21", + "packageFileName": "node_modules/lodash", + "description": "Lodash modular utilities.", + "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "filesAnalyzed": false, + "homepage": "https://lodash.com/", + "licenseDeclared": "MIT", + "externalRefs": \[lB] + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/lodash@4.17.21" + } + \[rB], + "checksums": \[lB] + { + "algorithm": "SHA512", + "checksumValue": "bf690311ee7b95e713ba568322e3533f2dd1cb880b189e99d4edef13592b81764daec43e2c54c61d5c558dc5cfb35ecb85b65519e74026ff17675b6f8f916f4a" + } + \[rB] + } + \[rB], + "relationships": \[lB] + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-simple-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-simple-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-lodash-4.17.21", + "relationshipType": "DEPENDS_ON" + } + \[rB] +} +.fi +.RE +.SS "Package lock only mode" +.P +If package-lock-only is enabled, only the information in the package lock (or shrinkwrap) is loaded. This means that information from the package.json files of your dependencies will not be included in the result set (e.g. description, homepage, engines). +.SS "Configuration" +.SS "\fBomit\fR" +.RS 0 +.IP \(bu 4 +Default: 'dev' if the \fBNODE_ENV\fR environment variable is set to 'production', otherwise empty. +.IP \(bu 4 +Type: "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Dependency types to omit from the installation tree on disk. +.P +Note that these dependencies \fIare\fR still resolved and added to the \fBpackage-lock.json\fR or \fBnpm-shrinkwrap.json\fR file. They are just not physically installed on disk. +.P +If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. +.P +If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBpackage-lock-only\fR" +.RS 0 +.IP \(bu 4 +Default: false +.IP \(bu 4 +Type: Boolean +.RE 0 + +.P +If set to true, the current operation will only use the \fBpackage-lock.json\fR, ignoring \fBnode_modules\fR. +.P +For \fBupdate\fR this means only the \fBpackage-lock.json\fR will be updated, instead of checking \fBnode_modules\fR and downloading dependencies. +.P +For \fBlist\fR this means the output will be based on the tree described by the \fBpackage-lock.json\fR, rather than the contents of \fBnode_modules\fR. +.SS "\fBsbom-format\fR" +.RS 0 +.IP \(bu 4 +Default: null +.IP \(bu 4 +Type: "cyclonedx" or "spdx" +.RE 0 + +.P +SBOM format to use when generating SBOMs. +.SS "\fBsbom-type\fR" +.RS 0 +.IP \(bu 4 +Default: "library" +.IP \(bu 4 +Type: "library", "application", or "framework" +.RE 0 + +.P +The type of package described by the generated SBOM. For SPDX, this is the value for the \fBprimaryPackagePurpose\fR fieled. For CycloneDX, this is the value for the \fBtype\fR field. +.SS "\fBworkspace\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: String (can be set multiple times) +.RE 0 + +.P +Enable running a command in the context of the configured workspaces of the current project while filtering by running only the workspaces defined by this configuration option. +.P +Valid values for the \fBworkspace\fR config are either: +.RS 0 +.IP \(bu 4 +Workspace names +.IP \(bu 4 +Path to a workspace directory +.IP \(bu 4 +Path to a parent workspace directory (will result in selecting all workspaces within that folder) +.RE 0 + +.P +When set for the \fBnpm init\fR command, this may be set to the folder of a workspace which does not yet exist, to create the folder and set it up as a brand new workspace within the project. +.P +This value is not exported to the environment for child processes. +.SS "\fBworkspaces\fR" +.RS 0 +.IP \(bu 4 +Default: null +.IP \(bu 4 +Type: null or Boolean +.RE 0 + +.P +Set to true to run the command in the context of \fBall\fR configured workspaces. +.P +Explicitly setting this to false will cause commands like \fBinstall\fR to ignore workspaces altogether. When not set explicitly: +.RS 0 +.IP \(bu 4 +Commands that operate on the \fBnode_modules\fR tree (install, update, etc.) will link workspaces into the \fBnode_modules\fR folder. - Commands that do other things (test, exec, publish, etc.) will operate on the root project, \fIunless\fR one or more workspaces are specified in the \fBworkspace\fR config. +.RE 0 + +.P +This value is not exported to the environment for child processes. +.SH "SEE ALSO" +.RS 0 +.IP \(bu 4 +npm help "package spec" +.IP \(bu 4 +npm help "dependency selectors" +.IP \(bu 4 +\fBpackage.json\fR \fI\(la/configuring-npm/package-json\(ra\fR +.IP \(bu 4 +npm help workspaces +.RE 0 diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index b21ea554562f9f..0dfb654fadf452 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -1,4 +1,4 @@ -.TH "NPM-SEARCH" "1" "September 2023" "" "" +.TH "NPM-SEARCH" "1" "October 2023" "" "" .SH "NAME" \fBnpm-search\fR - Search for packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 7ed46091e5f6ea..6457db0d7ecd7f 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -1,4 +1,4 @@ -.TH "NPM-SHRINKWRAP" "1" "September 2023" "" "" +.TH "NPM-SHRINKWRAP" "1" "October 2023" "" "" .SH "NAME" \fBnpm-shrinkwrap\fR - Lock down dependency versions for publication .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index 4a890b37a86170..5656bc38c20ce6 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -1,4 +1,4 @@ -.TH "NPM-STAR" "1" "September 2023" "" "" +.TH "NPM-STAR" "1" "October 2023" "" "" .SH "NAME" \fBnpm-star\fR - Mark your favorite packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index de27ac0866449a..e57b1311062b70 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -1,4 +1,4 @@ -.TH "NPM-STARS" "1" "September 2023" "" "" +.TH "NPM-STARS" "1" "October 2023" "" "" .SH "NAME" \fBnpm-stars\fR - View packages marked as favorites .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index ac0a839b353884..d88f1e2478ec73 100644 --- a/deps/npm/man/man1/npm-start.1 +++ b/deps/npm/man/man1/npm-start.1 @@ -1,4 +1,4 @@ -.TH "NPM-START" "1" "September 2023" "" "" +.TH "NPM-START" "1" "October 2023" "" "" .SH "NAME" \fBnpm-start\fR - Start a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 98f444f0863835..4980c16fc6ea90 100644 --- a/deps/npm/man/man1/npm-stop.1 +++ b/deps/npm/man/man1/npm-stop.1 @@ -1,4 +1,4 @@ -.TH "NPM-STOP" "1" "September 2023" "" "" +.TH "NPM-STOP" "1" "October 2023" "" "" .SH "NAME" \fBnpm-stop\fR - Stop a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 index 355b25afeb6427..28b7b904fe0456 100644 --- a/deps/npm/man/man1/npm-team.1 +++ b/deps/npm/man/man1/npm-team.1 @@ -1,4 +1,4 @@ -.TH "NPM-TEAM" "1" "September 2023" "" "" +.TH "NPM-TEAM" "1" "October 2023" "" "" .SH "NAME" \fBnpm-team\fR - Manage organization teams and team memberships .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index e9c3734c91912d..f2da6368450065 100644 --- a/deps/npm/man/man1/npm-test.1 +++ b/deps/npm/man/man1/npm-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-TEST" "1" "September 2023" "" "" +.TH "NPM-TEST" "1" "October 2023" "" "" .SH "NAME" \fBnpm-test\fR - Test a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 index be7912f43ca11b..8bbfaac64962aa 100644 --- a/deps/npm/man/man1/npm-token.1 +++ b/deps/npm/man/man1/npm-token.1 @@ -1,4 +1,4 @@ -.TH "NPM-TOKEN" "1" "September 2023" "" "" +.TH "NPM-TOKEN" "1" "October 2023" "" "" .SH "NAME" \fBnpm-token\fR - Manage your authentication tokens .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index a8a3ec892d8eee..17e906228b57d2 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNINSTALL" "1" "September 2023" "" "" +.TH "NPM-UNINSTALL" "1" "October 2023" "" "" .SH "NAME" \fBnpm-uninstall\fR - Remove a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 96d28182b1d468..77eeb843b363b9 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNPUBLISH" "1" "September 2023" "" "" +.TH "NPM-UNPUBLISH" "1" "October 2023" "" "" .SH "NAME" \fBnpm-unpublish\fR - Remove a package from the registry .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-unstar.1 b/deps/npm/man/man1/npm-unstar.1 index 7e9a57782a8e1e..d77464de965580 100644 --- a/deps/npm/man/man1/npm-unstar.1 +++ b/deps/npm/man/man1/npm-unstar.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNSTAR" "1" "September 2023" "" "" +.TH "NPM-UNSTAR" "1" "October 2023" "" "" .SH "NAME" \fBnpm-unstar\fR - Remove an item from your favorite packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index 73608d675a64cf..4b59f8600e0a67 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -1,4 +1,4 @@ -.TH "NPM-UPDATE" "1" "September 2023" "" "" +.TH "NPM-UPDATE" "1" "October 2023" "" "" .SH "NAME" \fBnpm-update\fR - Update packages .SS "Synopsis" @@ -215,6 +215,20 @@ Note that these dependencies \fIare\fR still resolved and added to the \fBpackag If a package type appears in both the \fB--include\fR and \fB--omit\fR lists, then it will be included. .P If the resulting omit list includes \fB'dev'\fR, then the \fBNODE_ENV\fR environment variable will be set to \fB'production'\fR for all lifecycle scripts. +.SS "\fBinclude\fR" +.RS 0 +.IP \(bu 4 +Default: +.IP \(bu 4 +Type: "prod", "dev", "optional", or "peer" (can be set multiple times) +.RE 0 + +.P +Option that allows for defining which types of dependencies to install. +.P +This is the inverse of \fB--omit=\fR. +.P +Dependency types specified in \fB--include\fR will not be omitted, regardless of the order in which omit/include are specified on the command-line. .SS "\fBstrict-peer-deps\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 3c05ff3809d0c7..03dd68d3e0956a 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,4 +1,4 @@ -.TH "NPM-VERSION" "1" "September 2023" "" "" +.TH "NPM-VERSION" "1" "October 2023" "" "" .SH "NAME" \fBnpm-version\fR - Bump a package version .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index c1c4d6f199e0ae..73512687904971 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -1,4 +1,4 @@ -.TH "NPM-VIEW" "1" "September 2023" "" "" +.TH "NPM-VIEW" "1" "October 2023" "" "" .SH "NAME" \fBnpm-view\fR - View registry info .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index 296ee8d5cff88b..67735a171494e1 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -1,4 +1,4 @@ -.TH "NPM-WHOAMI" "1" "September 2023" "" "" +.TH "NPM-WHOAMI" "1" "October 2023" "" "" .SH "NAME" \fBnpm-whoami\fR - Display npm username .SS "Synopsis" diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 824d4b8719fce3..740c99ee0be370 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "September 2023" "" "" +.TH "NPM" "1" "October 2023" "" "" .SH "NAME" \fBnpm\fR - javascript package manager .SS "Synopsis" @@ -12,7 +12,7 @@ npm Note: This command is unaware of workspaces. .SS "Version" .P -10.1.0 +10.2.0 .SS "Description" .P npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently. diff --git a/deps/npm/man/man1/npx.1 b/deps/npm/man/man1/npx.1 index d6d0e0d88e0f64..a280ca57f7a7ad 100644 --- a/deps/npm/man/man1/npx.1 +++ b/deps/npm/man/man1/npx.1 @@ -1,4 +1,4 @@ -.TH "NPX" "1" "September 2023" "" "" +.TH "NPX" "1" "October 2023" "" "" .SH "NAME" \fBnpx\fR - Run a command from a local or remote npm package .SS "Synopsis" diff --git a/deps/npm/man/man5/folders.5 b/deps/npm/man/man5/folders.5 index 023a0ec693adfd..d3e9e6fc78dffc 100644 --- a/deps/npm/man/man5/folders.5 +++ b/deps/npm/man/man5/folders.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "September 2023" "" "" +.TH "FOLDERS" "5" "October 2023" "" "" .SH "NAME" \fBfolders\fR - Folder Structures Used by npm .SS "Description" diff --git a/deps/npm/man/man5/install.5 b/deps/npm/man/man5/install.5 index 8343669c716873..3a8da18ba18544 100644 --- a/deps/npm/man/man5/install.5 +++ b/deps/npm/man/man5/install.5 @@ -1,4 +1,4 @@ -.TH "INSTALL" "5" "September 2023" "" "" +.TH "INSTALL" "5" "October 2023" "" "" .SH "NAME" \fBinstall\fR - Download and install node and npm .SS "Description" diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5 index 023a0ec693adfd..d3e9e6fc78dffc 100644 --- a/deps/npm/man/man5/npm-global.5 +++ b/deps/npm/man/man5/npm-global.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "September 2023" "" "" +.TH "FOLDERS" "5" "October 2023" "" "" .SH "NAME" \fBfolders\fR - Folder Structures Used by npm .SS "Description" diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index 2e6402de50d69e..71d630e750e645 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE.JSON" "5" "September 2023" "" "" +.TH "PACKAGE.JSON" "5" "October 2023" "" "" .SH "NAME" \fBpackage.json\fR - Specifics of npm's package.json handling .SS "Description" diff --git a/deps/npm/man/man5/npm-shrinkwrap-json.5 b/deps/npm/man/man5/npm-shrinkwrap-json.5 index 3f0af1837befc3..8346df052db259 100644 --- a/deps/npm/man/man5/npm-shrinkwrap-json.5 +++ b/deps/npm/man/man5/npm-shrinkwrap-json.5 @@ -1,4 +1,4 @@ -.TH "NPM-SHRINKWRAP.JSON" "5" "September 2023" "" "" +.TH "NPM-SHRINKWRAP.JSON" "5" "October 2023" "" "" .SH "NAME" \fBnpm-shrinkwrap.json\fR - A publishable lockfile .SS "Description" diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index 60b1794712d0b6..d7dc344865c4a0 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,4 +1,4 @@ -.TH "NPMRC" "5" "September 2023" "" "" +.TH "NPMRC" "5" "October 2023" "" "" .SH "NAME" \fBnpmrc\fR - The npm config files .SS "Description" diff --git a/deps/npm/man/man5/package-json.5 b/deps/npm/man/man5/package-json.5 index 2e6402de50d69e..71d630e750e645 100644 --- a/deps/npm/man/man5/package-json.5 +++ b/deps/npm/man/man5/package-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE.JSON" "5" "September 2023" "" "" +.TH "PACKAGE.JSON" "5" "October 2023" "" "" .SH "NAME" \fBpackage.json\fR - Specifics of npm's package.json handling .SS "Description" diff --git a/deps/npm/man/man5/package-lock-json.5 b/deps/npm/man/man5/package-lock-json.5 index bbff439d118161..22ae8cd1dd2d87 100644 --- a/deps/npm/man/man5/package-lock-json.5 +++ b/deps/npm/man/man5/package-lock-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE-LOCK.JSON" "5" "September 2023" "" "" +.TH "PACKAGE-LOCK.JSON" "5" "October 2023" "" "" .SH "NAME" \fBpackage-lock.json\fR - A manifestation of the manifest .SS "Description" diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7 index 13acb13c238167..496cfcb4ba71a2 100644 --- a/deps/npm/man/man7/config.7 +++ b/deps/npm/man/man7/config.7 @@ -1,4 +1,4 @@ -.TH "CONFIG" "7" "September 2023" "" "" +.TH "CONFIG" "7" "October 2023" "" "" .SH "NAME" \fBconfig\fR - More than you probably want to know about npm configuration .SS "Description" @@ -1355,6 +1355,26 @@ Type: Boolean Save installed packages into \fBdependencies\fR specifically. This is useful if a package already exists in \fBdevDependencies\fR or \fBoptionalDependencies\fR, but you want to move it to be a non-optional production dependency. .P This is the default behavior if \fB--save\fR is true, and neither \fB--save-dev\fR or \fB--save-optional\fR are true. +.SS "\fBsbom-format\fR" +.RS 0 +.IP \(bu 4 +Default: null +.IP \(bu 4 +Type: "cyclonedx" or "spdx" +.RE 0 + +.P +SBOM format to use when generating SBOMs. +.SS "\fBsbom-type\fR" +.RS 0 +.IP \(bu 4 +Default: "library" +.IP \(bu 4 +Type: "library", "application", or "framework" +.RE 0 + +.P +The type of package described by the generated SBOM. For SPDX, this is the value for the \fBprimaryPackagePurpose\fR fieled. For CycloneDX, this is the value for the \fBtype\fR field. .SS "\fBscope\fR" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man7/dependency-selectors.7 b/deps/npm/man/man7/dependency-selectors.7 index 51b2052587fc57..fe78a200cb682f 100644 --- a/deps/npm/man/man7/dependency-selectors.7 +++ b/deps/npm/man/man7/dependency-selectors.7 @@ -1,4 +1,4 @@ -.TH "QUERYING" "7" "September 2023" "" "" +.TH "QUERYING" "7" "October 2023" "" "" .SH "NAME" \fBQuerying\fR - Dependency Selector Syntax & Querying .SS "Description" diff --git a/deps/npm/man/man7/developers.7 b/deps/npm/man/man7/developers.7 index 7902f7258f5776..e0748fe1960c7d 100644 --- a/deps/npm/man/man7/developers.7 +++ b/deps/npm/man/man7/developers.7 @@ -1,4 +1,4 @@ -.TH "DEVELOPERS" "7" "September 2023" "" "" +.TH "DEVELOPERS" "7" "October 2023" "" "" .SH "NAME" \fBdevelopers\fR - Developer Guide .SS "Description" diff --git a/deps/npm/man/man7/logging.7 b/deps/npm/man/man7/logging.7 index 81a09df41eb3ce..767759fbb8249d 100644 --- a/deps/npm/man/man7/logging.7 +++ b/deps/npm/man/man7/logging.7 @@ -1,4 +1,4 @@ -.TH "LOGGING" "7" "September 2023" "" "" +.TH "LOGGING" "7" "October 2023" "" "" .SH "NAME" \fBLogging\fR - Why, What & How We Log .SS "Description" diff --git a/deps/npm/man/man7/orgs.7 b/deps/npm/man/man7/orgs.7 index 02fa92a4519625..68410b66be297b 100644 --- a/deps/npm/man/man7/orgs.7 +++ b/deps/npm/man/man7/orgs.7 @@ -1,4 +1,4 @@ -.TH "ORGS" "7" "September 2023" "" "" +.TH "ORGS" "7" "October 2023" "" "" .SH "NAME" \fBorgs\fR - Working with Teams & Orgs .SS "Description" diff --git a/deps/npm/man/man7/package-spec.7 b/deps/npm/man/man7/package-spec.7 index 67846da9dbe210..212d78dd71bf0b 100644 --- a/deps/npm/man/man7/package-spec.7 +++ b/deps/npm/man/man7/package-spec.7 @@ -1,4 +1,4 @@ -.TH "PACKAGE-SPEC" "7" "September 2023" "" "" +.TH "PACKAGE-SPEC" "7" "October 2023" "" "" .SH "NAME" \fBpackage-spec\fR - Package name specifier .SS "Description" diff --git a/deps/npm/man/man7/registry.7 b/deps/npm/man/man7/registry.7 index f0a8460b65464e..f1133f43666af7 100644 --- a/deps/npm/man/man7/registry.7 +++ b/deps/npm/man/man7/registry.7 @@ -1,4 +1,4 @@ -.TH "REGISTRY" "7" "September 2023" "" "" +.TH "REGISTRY" "7" "October 2023" "" "" .SH "NAME" \fBregistry\fR - The JavaScript Package Registry .SS "Description" diff --git a/deps/npm/man/man7/removal.7 b/deps/npm/man/man7/removal.7 index d1e3149c6be142..f96bbe84a4ea5a 100644 --- a/deps/npm/man/man7/removal.7 +++ b/deps/npm/man/man7/removal.7 @@ -1,4 +1,4 @@ -.TH "REMOVAL" "7" "September 2023" "" "" +.TH "REMOVAL" "7" "October 2023" "" "" .SH "NAME" \fBremoval\fR - Cleaning the Slate .SS "Synopsis" diff --git a/deps/npm/man/man7/scope.7 b/deps/npm/man/man7/scope.7 index 1f2a9565a792c4..c2a6ecd8d25342 100644 --- a/deps/npm/man/man7/scope.7 +++ b/deps/npm/man/man7/scope.7 @@ -1,4 +1,4 @@ -.TH "SCOPE" "7" "September 2023" "" "" +.TH "SCOPE" "7" "October 2023" "" "" .SH "NAME" \fBscope\fR - Scoped packages .SS "Description" diff --git a/deps/npm/man/man7/scripts.7 b/deps/npm/man/man7/scripts.7 index 6fdf8c7a903d15..8306b12e37fa8a 100644 --- a/deps/npm/man/man7/scripts.7 +++ b/deps/npm/man/man7/scripts.7 @@ -1,4 +1,4 @@ -.TH "SCRIPTS" "7" "September 2023" "" "" +.TH "SCRIPTS" "7" "October 2023" "" "" .SH "NAME" \fBscripts\fR - How npm handles the "scripts" field .SS "Description" diff --git a/deps/npm/man/man7/workspaces.7 b/deps/npm/man/man7/workspaces.7 index cac34f55ad07d4..0558c8446399f6 100644 --- a/deps/npm/man/man7/workspaces.7 +++ b/deps/npm/man/man7/workspaces.7 @@ -1,4 +1,4 @@ -.TH "WORKSPACES" "7" "September 2023" "" "" +.TH "WORKSPACES" "7" "October 2023" "" "" .SH "NAME" \fBworkspaces\fR - Working with workspaces .SS "Description" diff --git a/deps/npm/node_modules/@npmcli/agent/lib/agents.js b/deps/npm/node_modules/@npmcli/agent/lib/agents.js index 7d32768817c18f..15aa8e8764b4d6 100644 --- a/deps/npm/node_modules/@npmcli/agent/lib/agents.js +++ b/deps/npm/node_modules/@npmcli/agent/lib/agents.js @@ -1,199 +1,202 @@ 'use strict' -const http = require('http') -const https = require('https') const net = require('net') const tls = require('tls') const { once } = require('events') -const { createTimeout, abortRace, urlify, appendPort, cacheAgent } = require('./util') +const timers = require('timers/promises') const { normalizeOptions, cacheOptions } = require('./options') -const { getProxy, getProxyType, proxyCache } = require('./proxy.js') +const { getProxy, getProxyAgent, proxyCache } = require('./proxy.js') const Errors = require('./errors.js') +const { Agent: AgentBase } = require('agent-base') -const createAgent = (base, name) => { - const SECURE = base === https - const SOCKET_TYPE = SECURE ? tls : net +module.exports = class Agent extends AgentBase { + #options + #timeouts + #proxy + #noProxy + #ProxyAgent - const agent = class extends base.Agent { - #options - #timeouts - #proxy - #socket + constructor (options = {}) { + const { timeouts, proxy, noProxy, ...normalizedOptions } = normalizeOptions(options) - constructor (_options) { - const { timeouts, proxy, noProxy, ...options } = normalizeOptions(_options) + super(normalizedOptions) - super(options) + this.#options = normalizedOptions + this.#timeouts = timeouts - this.#options = options - this.#timeouts = timeouts - this.#proxy = proxy ? { proxies: getProxyType(proxy), proxy: urlify(proxy), noProxy } : null + if (proxy) { + this.#proxy = new URL(proxy) + this.#noProxy = noProxy + this.#ProxyAgent = getProxyAgent(proxy) } + } - get proxy () { - return this.#proxy ? { url: this.#proxy.proxy } : {} - } + get proxy () { + return this.#proxy ? { url: this.#proxy } : {} + } - #getProxy (options) { - const proxy = this.#proxy - ? getProxy(appendPort(`${options.protocol}//${options.host}`, options.port), this.#proxy) - : null + #getProxy (options) { + if (!this.#proxy) { + return + } - if (!proxy) { - return - } + const proxy = getProxy(`${options.protocol}//${options.host}:${options.port}`, { + proxy: this.#proxy, + noProxy: this.#noProxy, + }) - return cacheAgent({ - key: cacheOptions({ - ...options, - ...this.#options, - secure: SECURE, - timeouts: this.#timeouts, - proxy, - }), - cache: proxyCache, - secure: SECURE, - proxies: this.#proxy.proxies, - }, proxy, this.#options) + if (!proxy) { + return } - #setKeepAlive (socket) { - socket.setKeepAlive(this.keepAlive, this.keepAliveMsecs) - socket.setNoDelay(this.keepAlive) - } + const cacheKey = cacheOptions({ + ...options, + ...this.#options, + timeouts: this.#timeouts, + proxy, + }) - #setIdleTimeout (socket, options) { - if (this.#timeouts.idle) { - socket.setTimeout(this.#timeouts.idle, () => { - socket.destroy(new Errors.IdleTimeoutError(options)) - }) - } + if (proxyCache.has(cacheKey)) { + return proxyCache.get(cacheKey) } - async #proxyConnect (proxy, request, options) { - // socks-proxy-agent accepts a dns lookup function - options.lookup ??= this.#options.lookup - - // all the proxy agents use this secureEndpoint option to determine - // if the proxy should connect over tls or not. we can set it based - // on if the HttpAgent or HttpsAgent is used. - options.secureEndpoint = SECURE + let ProxyAgent = this.#ProxyAgent + if (Array.isArray(ProxyAgent)) { + ProxyAgent = options.secureEndpoint ? ProxyAgent[1] : ProxyAgent[0] + } - const socket = await abortRace([ - (ac) => createTimeout(this.#timeouts.connection, ac).catch(() => { - throw new Errors.ConnectionTimeoutError(options) - }), - (ac) => proxy.connect(request, options).then((s) => { - this.#setKeepAlive(s) + const proxyAgent = new ProxyAgent(proxy, this.#options) + proxyCache.set(cacheKey, proxyAgent) - const connectEvent = SECURE ? 'secureConnect' : 'connect' - const connectingEvent = SECURE ? 'secureConnecting' : 'connecting' + return proxyAgent + } - if (!s[connectingEvent]) { - return s + // takes an array of promises and races them against the connection timeout + // which will throw the necessary error if it is hit. This will return the + // result of the promise race. + async #timeoutConnection ({ promises, options, timeout }, ac = new AbortController()) { + if (timeout) { + const connectionTimeout = timers.setTimeout(timeout, null, { signal: ac.signal }) + .then(() => { + throw new Errors.ConnectionTimeoutError(`${options.host}:${options.port}`) + }).catch((err) => { + if (err.name === 'AbortError') { + return } + throw err + }) + promises.push(connectionTimeout) + } - return abortRace([ - () => once(s, 'error', ac).then((err) => { - throw err - }), - () => once(s, connectEvent, ac).then(() => s), - ], ac) - }), - ]) - - this.#setIdleTimeout(socket, options) - - return socket + let result + try { + result = await Promise.race(promises) + ac.abort() + } catch (err) { + ac.abort() + throw err } + return result + } - async connect (request, options) { - const proxy = this.#getProxy(options) - if (proxy) { - return this.#proxyConnect(proxy, request, options) + async connect (request, options) { + // if the connection does not have its own lookup function + // set, then use the one from our options + options.lookup ??= this.#options.lookup + + let socket + let timeout = this.#timeouts.connection + + const proxy = this.#getProxy(options) + if (proxy) { + // some of the proxies will wait for the socket to fully connect before + // returning so we have to await this while also racing it against the + // connection timeout. + const start = Date.now() + socket = await this.#timeoutConnection({ + options, + timeout, + promises: [proxy.connect(request, options)], + }) + // see how much time proxy.connect took and subtract it from + // the timeout + if (timeout) { + timeout = timeout - (Date.now() - start) } + } else { + socket = (options.secureEndpoint ? tls : net).connect(options) + } - const socket = SOCKET_TYPE.connect(options) + socket.setKeepAlive(this.keepAlive, this.keepAliveMsecs) + socket.setNoDelay(this.keepAlive) - this.#setKeepAlive(socket) + const abortController = new AbortController() + const { signal } = abortController - await abortRace([ - (s) => createTimeout(this.#timeouts.connection, s).catch(() => { - throw new Errors.ConnectionTimeoutError(options) - }), - (s) => once(socket, 'error', s).then((err) => { - throw err - }), - (s) => once(socket, 'connect', s), - ]) + const connectPromise = socket[options.secureEndpoint ? 'secureConnecting' : 'connecting'] + ? once(socket, options.secureEndpoint ? 'secureConnect' : 'connect', { signal }) + : Promise.resolve() - this.#setIdleTimeout(socket, options) + await this.#timeoutConnection({ + options, + timeout, + promises: [ + connectPromise, + once(socket, 'error', { signal }).then((err) => { + throw err[0] + }), + ], + }, abortController) - return socket + if (this.#timeouts.idle) { + socket.setTimeout(this.#timeouts.idle, () => { + socket.destroy(new Errors.IdleTimeoutError(`${options.host}:${options.port}`)) + }) } - addRequest (request, options) { - const proxy = this.#getProxy(options) - // it would be better to call proxy.addRequest here but this causes the - // http-proxy-agent to call its super.addRequest which causes the request - // to be added to the agent twice. since we only support 3 agents - // currently (see the required agents in proxy.js) we have manually - // checked that the only public methods we need to call are called in the - // next block. this could change in the future and presumably we would get - // failing tests until we have properly called the necessary methods on - // each of our proxy agents - if (proxy?.setRequestProps) { - proxy.setRequestProps(request, options) - } - - request.setHeader('connection', this.keepAlive ? 'keep-alive' : 'close') - - const responseTimeout = createTimeout(this.#timeouts.response) - if (responseTimeout) { - request.once('finish', () => { - responseTimeout.start(() => { - request.destroy(new Errors.ResponseTimeoutError(request, this.proxy?.url)) - }) - }) - request.once('response', () => { - responseTimeout.clear() - }) - } - - const transferTimeout = createTimeout(this.#timeouts.transfer) - if (transferTimeout) { - request.once('response', (res) => { - transferTimeout.start(() => { - res.destroy(new Errors.TransferTimeoutError(request, this.proxy?.url)) - }) - res.once('close', () => { - transferTimeout.clear() - }) - }) - } + return socket + } - return super.addRequest(request, options) + addRequest (request, options) { + const proxy = this.#getProxy(options) + // it would be better to call proxy.addRequest here but this causes the + // http-proxy-agent to call its super.addRequest which causes the request + // to be added to the agent twice. since we only support 3 agents + // currently (see the required agents in proxy.js) we have manually + // checked that the only public methods we need to call are called in the + // next block. this could change in the future and presumably we would get + // failing tests until we have properly called the necessary methods on + // each of our proxy agents + if (proxy?.setRequestProps) { + proxy.setRequestProps(request, options) } - createSocket (req, options, cb) { - return Promise.resolve() - .then(() => this.connect(req, options)) - .then((socket) => { - this.#socket = socket - return super.createSocket(req, options, cb) - }, cb) + request.setHeader('connection', this.keepAlive ? 'keep-alive' : 'close') + + if (this.#timeouts.response) { + let responseTimeout + request.once('finish', () => { + setTimeout(() => { + request.destroy(new Errors.ResponseTimeoutError(request, this.#proxy)) + }, this.#timeouts.response) + }) + request.once('response', () => { + clearTimeout(responseTimeout) + }) } - createConnection () { - return this.#socket + if (this.#timeouts.transfer) { + let transferTimeout + request.once('response', (res) => { + setTimeout(() => { + res.destroy(new Errors.TransferTimeoutError(request, this.#proxy)) + }, this.#timeouts.transfer) + res.once('close', () => { + clearTimeout(transferTimeout) + }) + }) } - } - Object.defineProperty(agent, 'name', { value: name }) - return agent -} - -module.exports = { - HttpAgent: createAgent(http, 'HttpAgent'), - HttpsAgent: createAgent(https, 'HttpsAgent'), + return super.addRequest(request, options) + } } diff --git a/deps/npm/node_modules/@npmcli/agent/lib/errors.js b/deps/npm/node_modules/@npmcli/agent/lib/errors.js index f41b4a065d713e..70475aec8eb357 100644 --- a/deps/npm/node_modules/@npmcli/agent/lib/errors.js +++ b/deps/npm/node_modules/@npmcli/agent/lib/errors.js @@ -1,7 +1,5 @@ 'use strict' -const { appendPort } = require('./util') - class InvalidProxyProtocolError extends Error { constructor (url) { super(`Invalid protocol \`${url.protocol}\` connecting to proxy \`${url.host}\``) @@ -11,8 +9,7 @@ class InvalidProxyProtocolError extends Error { } class ConnectionTimeoutError extends Error { - constructor ({ host, port }) { - host = appendPort(host, port) + constructor (host) { super(`Timeout connecting to host \`${host}\``) this.code = 'ECONNECTIONTIMEOUT' this.host = host @@ -20,8 +17,7 @@ class ConnectionTimeoutError extends Error { } class IdleTimeoutError extends Error { - constructor ({ host, port }) { - host = appendPort(host, port) + constructor (host) { super(`Idle timeout reached for host \`${host}\``) this.code = 'EIDLETIMEOUT' this.host = host diff --git a/deps/npm/node_modules/@npmcli/agent/lib/index.js b/deps/npm/node_modules/@npmcli/agent/lib/index.js index 2cd69390ea77e9..b33d6eaef07a21 100644 --- a/deps/npm/node_modules/@npmcli/agent/lib/index.js +++ b/deps/npm/node_modules/@npmcli/agent/lib/index.js @@ -1,38 +1,48 @@ 'use strict' const { LRUCache } = require('lru-cache') -const { urlify, cacheAgent } = require('./util') const { normalizeOptions, cacheOptions } = require('./options') const { getProxy, proxyCache } = require('./proxy.js') const dns = require('./dns.js') -const { HttpAgent, HttpsAgent } = require('./agents.js') +const Agent = require('./agents.js') const agentCache = new LRUCache({ max: 20 }) -const getAgent = (url, { agent: _agent, proxy: _proxy, noProxy, ..._options } = {}) => { +const getAgent = (url, { agent, proxy, noProxy, ...options } = {}) => { // false has meaning so this can't be a simple truthiness check - if (_agent != null) { - return _agent + if (agent != null) { + return agent } - url = urlify(url) + url = new URL(url) - const secure = url.protocol === 'https:' - const proxy = getProxy(url, { proxy: _proxy, noProxy }) - const options = { ...normalizeOptions(_options), proxy } + const proxyForUrl = getProxy(url, { proxy, noProxy }) + const normalizedOptions = { + ...normalizeOptions(options), + proxy: proxyForUrl, + } + + const cacheKey = cacheOptions({ + ...normalizedOptions, + secureEndpoint: url.protocol === 'https:', + }) + + if (agentCache.has(cacheKey)) { + return agentCache.get(cacheKey) + } + + const newAgent = new Agent(normalizedOptions) + agentCache.set(cacheKey, newAgent) - return cacheAgent({ - key: cacheOptions({ ...options, secure }), - cache: agentCache, - secure, - proxies: [HttpAgent, HttpsAgent], - }, options) + return newAgent } module.exports = { getAgent, - HttpAgent, - HttpsAgent, + Agent, + // these are exported for backwards compatability + HttpAgent: Agent, + HttpsAgent: Agent, cache: { proxy: proxyCache, agent: agentCache, diff --git a/deps/npm/node_modules/@npmcli/agent/lib/options.js b/deps/npm/node_modules/@npmcli/agent/lib/options.js index cd87c09d6a25ad..0bf53f725f0846 100644 --- a/deps/npm/node_modules/@npmcli/agent/lib/options.js +++ b/deps/npm/node_modules/@npmcli/agent/lib/options.js @@ -1,7 +1,6 @@ 'use strict' const dns = require('./dns') -const { createKey } = require('./util') const normalizeOptions = (opts) => { const family = parseInt(opts.family ?? '0', 10) @@ -41,33 +40,46 @@ const normalizeOptions = (opts) => { return normalized } -const cacheOptions = (options) => { - const { secure } = options - return createKey({ - secure: !!secure, - // socket connect options - family: options.family, - hints: options.hints, - localAddress: options.localAddress, - // tls specific connect options - strictSsl: secure ? !!options.rejectUnauthorized : false, - ca: secure ? options.ca : null, - cert: secure ? options.cert : null, - key: secure ? options.key : null, - // http agent options - keepAlive: options.keepAlive, - keepAliveMsecs: options.keepAliveMsecs, - maxSockets: options.maxSockets, - maxTotalSockets: options.maxTotalSockets, - maxFreeSockets: options.maxFreeSockets, - scheduling: options.scheduling, - // timeout options - timeouts: options.timeouts, - // proxy - proxy: options.proxy, - }) +const createKey = (obj) => { + let key = '' + const sorted = Object.entries(obj).sort((a, b) => a[0] - b[0]) + for (let [k, v] of sorted) { + if (v == null) { + v = 'null' + } else if (v instanceof URL) { + v = v.toString() + } else if (typeof v === 'object') { + v = createKey(v) + } + key += `${k}:${v}:` + } + return key } +const cacheOptions = ({ secureEndpoint, ...options }) => createKey({ + secureEndpoint: !!secureEndpoint, + // socket connect options + family: options.family, + hints: options.hints, + localAddress: options.localAddress, + // tls specific connect options + strictSsl: secureEndpoint ? !!options.rejectUnauthorized : false, + ca: secureEndpoint ? options.ca : null, + cert: secureEndpoint ? options.cert : null, + key: secureEndpoint ? options.key : null, + // http agent options + keepAlive: options.keepAlive, + keepAliveMsecs: options.keepAliveMsecs, + maxSockets: options.maxSockets, + maxTotalSockets: options.maxTotalSockets, + maxFreeSockets: options.maxFreeSockets, + scheduling: options.scheduling, + // timeout options + timeouts: options.timeouts, + // proxy + proxy: options.proxy, +}) + module.exports = { normalizeOptions, cacheOptions, diff --git a/deps/npm/node_modules/@npmcli/agent/lib/proxy.js b/deps/npm/node_modules/@npmcli/agent/lib/proxy.js index babedad45ff99f..6272e929e57bcf 100644 --- a/deps/npm/node_modules/@npmcli/agent/lib/proxy.js +++ b/deps/npm/node_modules/@npmcli/agent/lib/proxy.js @@ -5,30 +5,27 @@ const { HttpsProxyAgent } = require('https-proxy-agent') const { SocksProxyAgent } = require('socks-proxy-agent') const { LRUCache } = require('lru-cache') const { InvalidProxyProtocolError } = require('./errors.js') -const { urlify } = require('./util.js') const PROXY_CACHE = new LRUCache({ max: 20 }) -const PROXY_ENV = (() => { - const keys = new Set(['https_proxy', 'http_proxy', 'proxy', 'no_proxy']) - const values = {} - for (let [key, value] of Object.entries(process.env)) { - key = key.toLowerCase() - if (keys.has(key)) { - values[key] = value - } - } - return values -})() - const SOCKS_PROTOCOLS = new Set(SocksProxyAgent.protocols) -const getProxyType = (url) => { - url = urlify(url) +const PROXY_ENV_KEYS = new Set(['https_proxy', 'http_proxy', 'proxy', 'no_proxy']) + +const PROXY_ENV = Object.entries(process.env).reduce((acc, [key, value]) => { + key = key.toLowerCase() + if (PROXY_ENV_KEYS.has(key)) { + acc[key] = value + } + return acc +}, {}) + +const getProxyAgent = (url) => { + url = new URL(url) const protocol = url.protocol.slice(0, -1) if (SOCKS_PROTOCOLS.has(protocol)) { - return [SocksProxyAgent] + return SocksProxyAgent } if (protocol === 'https' || protocol === 'http') { return [HttpProxyAgent, HttpsProxyAgent] @@ -64,25 +61,28 @@ const isNoProxy = (url, noProxy) => { }) } -const getProxy = (url, { - proxy = PROXY_ENV.https_proxy, - noProxy = PROXY_ENV.no_proxy, -}) => { - url = urlify(url) +const getProxy = (url, { proxy, noProxy }) => { + url = new URL(url) + + if (!proxy) { + proxy = url.protocol === 'https:' + ? PROXY_ENV.https_proxy + : PROXY_ENV.https_proxy || PROXY_ENV.http_proxy || PROXY_ENV.proxy + } - if (!proxy && url.protocol !== 'https:') { - proxy = PROXY_ENV.http_proxy || PROXY_ENV.proxy + if (!noProxy) { + noProxy = PROXY_ENV.no_proxy } if (!proxy || isNoProxy(url, noProxy)) { return null } - return urlify(proxy) + return new URL(proxy) } module.exports = { - getProxyType, + getProxyAgent, getProxy, proxyCache: PROXY_CACHE, } diff --git a/deps/npm/node_modules/@npmcli/agent/lib/util.js b/deps/npm/node_modules/@npmcli/agent/lib/util.js deleted file mode 100644 index 6d42a2e202c1f9..00000000000000 --- a/deps/npm/node_modules/@npmcli/agent/lib/util.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict' - -const timers = require('timers/promises') - -const createKey = (obj) => { - let key = '' - const sorted = Object.entries(obj).sort((a, b) => a[0] - b[0]) - for (let [k, v] of sorted) { - if (v == null) { - v = 'null' - } else if (v instanceof URL) { - v = v.toString() - } else if (typeof v === 'object') { - v = createKey(v) - } - key += `${k}:${v}:` - } - return key -} - -const createTimeout = (delay, signal) => { - if (!delay) { - return signal ? new Promise(() => {}) : null - } - - if (!signal) { - let timeout - return { - start: (cb) => (timeout = setTimeout(cb, delay)), - clear: () => clearTimeout(timeout), - } - } - - return timers.setTimeout(delay, null, signal) - .then(() => { - throw new Error() - }).catch((err) => { - if (err.name === 'AbortError') { - return - } - throw err - }) -} - -const abortRace = async (promises, ac = new AbortController()) => { - let res - try { - res = await Promise.race(promises.map((p) => p(ac))) - ac.abort() - } catch (err) { - ac.abort() - throw err - } - return res -} - -const urlify = (url) => typeof url === 'string' ? new URL(url) : url - -const appendPort = (host, port) => { - // istanbul ignore next - if (port) { - host += `:${port}` - } - return host -} - -const cacheAgent = ({ key, cache, secure, proxies }, ...args) => { - if (cache.has(key)) { - return cache.get(key) - } - const Ctor = (secure ? proxies[1] : proxies[0]) ?? proxies[0] - const agent = new Ctor(...args) - cache.set(key, agent) - return agent -} - -module.exports = { - createKey, - createTimeout, - abortRace, - urlify, - cacheAgent, - appendPort, -} diff --git a/deps/npm/node_modules/@npmcli/agent/package.json b/deps/npm/node_modules/@npmcli/agent/package.json index 32379b39b5b560..7d3d6802947d99 100644 --- a/deps/npm/node_modules/@npmcli/agent/package.json +++ b/deps/npm/node_modules/@npmcli/agent/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/agent", - "version": "2.1.1", + "version": "2.2.0", "description": "the http/https agent used by the npm cli", "main": "lib/index.js", "scripts": { @@ -28,17 +28,11 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "publish": "true", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ], - "npmSpec": "next-9" + "version": "4.19.0", + "publish": "true" }, "dependencies": { + "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", @@ -46,10 +40,11 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "minipass-fetch": "^3.0.3", "nock": "^13.2.7", - "simple-socks": "^2.2.2", + "semver": "^7.5.4", + "simple-socks": "^3.1.0", "tap": "^16.3.0" }, "repository": { diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js index eb4a3565531cc9..af260bdc996fc7 100644 --- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js +++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/audit.js @@ -22,7 +22,15 @@ module.exports = cls => class Auditor extends cls { options = { ...this.options, ...options } process.emit('time', 'audit') - const tree = await this.loadVirtual() + let tree + if (options.packageLock === false) { + // build ideal tree + await this.loadActual(options) + await this.buildIdealTree() + tree = this.idealTree + } else { + tree = await this.loadVirtual() + } if (this[_workspaces] && this[_workspaces].length) { options.filterSet = this.workspaceDependencySet( tree, diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/query-selector-all.js b/deps/npm/node_modules/@npmcli/arborist/lib/query-selector-all.js index 36334e5a859f1d..96c52144060b80 100644 --- a/deps/npm/node_modules/@npmcli/arborist/lib/query-selector-all.js +++ b/deps/npm/node_modules/@npmcli/arborist/lib/query-selector-all.js @@ -695,7 +695,11 @@ const depTypes = { // the compare nodes array const hasParent = (node, compareNodes) => { // All it takes is one so we loop and return on the first hit - for (const compareNode of compareNodes) { + for (let compareNode of compareNodes) { + if (compareNode.isLink) { + compareNode = compareNode.target + } + // follows logical parent for link anscestors if (node.isTop && (node.resolveParent === compareNode)) { return true @@ -719,7 +723,10 @@ const hasAscendant = (node, compareNodes, seen = new Set()) => { } if (node.isTop && node.resolveParent) { - return hasAscendant(node.resolveParent, compareNodes) + /* istanbul ignore if - investigate if linksIn check obviates need for this */ + if (hasAscendant(node.resolveParent, compareNodes)) { + return true + } } for (const edge of node.edgesIn) { // TODO Need a test with an infinite loop @@ -731,6 +738,11 @@ const hasAscendant = (node, compareNodes, seen = new Set()) => { return true } } + for (const linkNode of node.linksIn) { + if (hasAscendant(linkNode, compareNodes, seen)) { + return true + } + } return false } diff --git a/deps/npm/node_modules/@npmcli/arborist/package.json b/deps/npm/node_modules/@npmcli/arborist/package.json index 24a442a7d88500..95d9bc7416905b 100644 --- a/deps/npm/node_modules/@npmcli/arborist/package.json +++ b/deps/npm/node_modules/@npmcli/arborist/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/arborist", - "version": "7.1.0", + "version": "7.2.0", "description": "Manage node_modules trees", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -11,18 +11,18 @@ "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", - "@npmcli/query": "^3.0.0", + "@npmcli/query": "^3.0.1", "@npmcli/run-script": "^7.0.1", "bin-links": "^4.0.1", "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", "minimatch": "^9.0.0", "nopt": "^7.0.0", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", "npm-registry-fetch": "^16.0.0", "npmlog": "^7.0.1", @@ -39,7 +39,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "benchmark": "^2.1.4", "minify-registry-metadata": "^3.0.0", "nock": "^13.3.3", @@ -90,13 +90,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" } } diff --git a/deps/npm/node_modules/@npmcli/config/lib/definitions/definitions.js b/deps/npm/node_modules/@npmcli/config/lib/definitions/definitions.js index e6b9859dc1dfb9..c5b8d4f779b92b 100644 --- a/deps/npm/node_modules/@npmcli/config/lib/definitions/definitions.js +++ b/deps/npm/node_modules/@npmcli/config/lib/definitions/definitions.js @@ -963,6 +963,7 @@ define('include-workspace-root', { define('init-author-email', { default: '', + hint: '', type: String, description: ` The value \`npm init\` should use by default for the package author's @@ -972,6 +973,7 @@ define('init-author-email', { define('init-author-name', { default: '', + hint: '', type: String, description: ` The value \`npm init\` should use by default for the package author's name. @@ -981,6 +983,7 @@ define('init-author-name', { define('init-author-url', { default: '', type: ['', url], + hint: '', description: ` The value \`npm init\` should use by default for the package author's homepage. `, @@ -988,6 +991,7 @@ define('init-author-url', { define('init-license', { default: 'ISC', + hint: '', type: String, description: ` The value \`npm init\` should use by default for the package license. @@ -997,6 +1001,7 @@ define('init-license', { define('init-module', { default: '~/.npm-init.js', type: path, + hint: '', description: ` A module that will be loaded by the \`npm init\` command. See the documentation for the @@ -1008,6 +1013,7 @@ define('init-module', { define('init-version', { default: '1.0.0', type: semver, + hint: '', description: ` The value that \`npm init\` should use by default for the package version number, if not already set in package.json. @@ -1207,6 +1213,33 @@ define('local-address', { flatten, }) +define('sbom-format', { + default: null, + type: [ + 'cyclonedx', + 'spdx', + ], + description: ` + SBOM format to use when generating SBOMs. + `, + flatten, +}) + +define('sbom-type', { + default: 'library', + type: [ + 'library', + 'application', + 'framework', + ], + description: ` + The type of package described by the generated SBOM. For SPDX, this is the + value for the \`primaryPackagePurpose\` fieled. For CycloneDX, this is the + value for the \`type\` field. + `, + flatten, +}) + define('location', { default: 'user', short: 'L', diff --git a/deps/npm/node_modules/@npmcli/config/package.json b/deps/npm/node_modules/@npmcli/config/package.json index d2e7066b654d1b..85af7ee1c7d405 100644 --- a/deps/npm/node_modules/@npmcli/config/package.json +++ b/deps/npm/node_modules/@npmcli/config/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/config", - "version": "7.2.0", + "version": "8.0.0", "files": [ "bin/", "lib/" @@ -19,8 +19,8 @@ "snap": "tap", "lint": "eslint \"**/*.js\"", "postlint": "template-oss-check", - "lintfix": "node ../.. run lint -- --fix", - "posttest": "node ../.. run lint", + "lintfix": "npm run lint -- --fix", + "posttest": "npm run lint", "template-oss-apply": "template-oss-apply --force" }, "tap": { @@ -32,7 +32,7 @@ "devDependencies": { "@npmcli/eslint-config": "^4.0.0", "@npmcli/mock-globals": "^1.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "tap": "^16.3.8" }, "dependencies": { @@ -46,10 +46,12 @@ "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0" + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js", + "npm": "npm" } } diff --git a/deps/npm/node_modules/@npmcli/query/lib/index.js b/deps/npm/node_modules/@npmcli/query/lib/index.js index 9373a4f7adbf0d..c7888d5bb5de6d 100644 --- a/deps/npm/node_modules/@npmcli/query/lib/index.js +++ b/deps/npm/node_modules/@npmcli/query/lib/index.js @@ -85,31 +85,57 @@ const fixupNestedPseudo = astNode => { transformAst(newRootNode) } -// :semver(, [selector], [function]) +// :semver(, [version|range|selector], [function]) +// note: the first or second parameter must be a static version or range const fixupSemverSpecs = astNode => { - // the first child node contains the version or range, most likely as a tag and a series of - // classes. we combine them into a single string here. this is the only required input. - const children = astNode.nodes.shift().nodes - const value = children.reduce((res, i) => `${res}${String(i)}`, '') - - // next, if we have 2 nodes left then the user called us with a total of 3. that means the - // last one tells us what specific semver function the user is requesting, so we pull that out - let semverFunc - if (astNode.nodes.length === 2) { + // if we have three nodes, the last is the semver function to use, pull that out first + if (astNode.nodes.length === 3) { const funcNode = astNode.nodes.pop().nodes[0] if (funcNode.type === 'tag') { - semverFunc = funcNode.value + astNode.semverFunc = funcNode.value + } else if (funcNode.type === 'string') { + // a string is always in some type of quotes, we don't want those so slice them off + astNode.semverFunc = funcNode.value.slice(1, -1) + } else { + // anything that isn't a tag or a string isn't a function name + throw Object.assign( + new Error('`:semver` pseudo-class expects a function name as last value'), + { code: 'ESEMVERFUNC' } + ) + } + } + + // now if we have 1 node, it's a static value + // istanbul ignore else + if (astNode.nodes.length === 1) { + const semverNode = astNode.nodes.pop() + astNode.semverValue = semverNode.nodes.reduce((res, next) => `${res}${String(next)}`, '') + } else if (astNode.nodes.length === 2) { + // and if we have two nodes, one of them is a static value and we need to determine which it is + for (let i = 0; i < astNode.nodes.length; ++i) { + const type = astNode.nodes[i].nodes[0].type + // the type of the first child may be combinator for ranges, such as >14 + if (type === 'tag' || type === 'combinator') { + const semverNode = astNode.nodes.splice(i, 1)[0] + astNode.semverValue = semverNode.nodes.reduce((res, next) => `${res}${String(next)}`, '') + astNode.semverPosition = i + break + } + } + + if (typeof astNode.semverValue === 'undefined') { + throw Object.assign( + new Error('`:semver` pseudo-class expects a static value in the first or second position'), + { code: 'ESEMVERVALUE' } + ) } } - // now if there's a node left, that node is our selector. since that is the last remaining - // child node, we call fixupAttr on ourselves so that the attribute selectors get parsed + // if we got here, the last remaining child should be attribute selector if (astNode.nodes.length === 1) { fixupAttr(astNode) } else { - // we weren't provided a selector, so we default to `[version]`. note, there's no default - // operator here. that's because we don't know yet if the user has provided us a version - // or range to assert against + // if we don't have a selector, we default to `[version]` astNode.attributeMatcher = { insensitive: false, attribute: 'version', @@ -118,8 +144,6 @@ const fixupSemverSpecs = astNode => { astNode.lookupProperties = [] } - astNode.semverFunc = semverFunc - astNode.semverValue = value astNode.nodes.length = 0 } diff --git a/deps/npm/node_modules/@npmcli/query/package.json b/deps/npm/node_modules/@npmcli/query/package.json index 1e4abd37656f62..5f9fb2744538a2 100644 --- a/deps/npm/node_modules/@npmcli/query/package.json +++ b/deps/npm/node_modules/@npmcli/query/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/query", - "version": "3.0.0", + "version": "3.0.1", "description": "npm query parser and tools", "main": "lib/index.js", "scripts": { @@ -39,11 +39,12 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.5.1" + "version": "4.18.0", + "publish": true }, "devDependencies": { - "@npmcli/eslint-config": "^3.0.1", - "@npmcli/template-oss": "4.5.1", + "@npmcli/eslint-config": "^4.0.0", + "@npmcli/template-oss": "4.18.0", "tap": "^16.2.0" }, "dependencies": { diff --git a/deps/npm/node_modules/glob/README.md b/deps/npm/node_modules/glob/README.md index 1bde1494664d4d..9f6e80fe665672 100644 --- a/deps/npm/node_modules/glob/README.md +++ b/deps/npm/node_modules/glob/README.md @@ -89,7 +89,7 @@ g3.stream().on('data', path => { const results = await glob('**', { stat: true, withFileTypes: true }) const timeSortedFiles = results - .sort((a, b) => a.mtimeMS - b.mtimeMS) + .sort((a, b) => a.mtimeMs - b.mtimeMs) .map(path => path.fullpath()) const groupReadableFiles = results diff --git a/deps/npm/node_modules/glob/dist/cjs/package.json b/deps/npm/node_modules/glob/dist/cjs/package.json deleted file mode 100644 index c15df94a3582bf..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "version": "10.3.3", - "type": "commonjs" -} diff --git a/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts b/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts deleted file mode 100644 index 34e005228653c8..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node -export {}; -//# sourceMappingURL=bin.d.ts.map \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts.map deleted file mode 100644 index c10c656ec75109..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/bin.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../../src/bin.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/bin.js.map b/deps/npm/node_modules/glob/dist/cjs/src/bin.js.map deleted file mode 100644 index e189acfd01b1a7..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/bin.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../../src/bin.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport { foregroundChild } from 'foreground-child'\nimport { existsSync } from 'fs'\nimport { jack } from 'jackspeak'\nimport { version } from '../package.json'\nimport { globStream } from './index.js'\n\nconst j = jack({\n usage: 'glob [options] [ [ ...]]',\n})\n .description(\n `\n Glob v${version}\n\n Expand the positional glob expression arguments into any matching file\n system paths found.\n `\n )\n .opt({\n cmd: {\n short: 'c',\n hint: 'command',\n description: `Run the command provided, passing the glob expression\n matches as arguments.`,\n },\n })\n .opt({\n default: {\n short: 'p',\n hint: 'pattern',\n description: `If no positional arguments are provided, glob will use\n this pattern`,\n },\n })\n .flag({\n all: {\n short: 'A',\n description: `By default, the glob cli command will not expand any\n arguments that are an exact match to a file on disk.\n\n This prevents double-expanding, in case the shell expands\n an argument whose filename is a glob expression.\n\n For example, if 'app/*.ts' would match 'app/[id].ts', then\n on Windows powershell or cmd.exe, 'glob app/*.ts' will\n expand to 'app/[id].ts', as expected. However, in posix\n shells such as bash or zsh, the shell will first expand\n 'app/*.ts' to a list of filenames. Then glob will look\n for a file matching 'app/[id].ts' (ie, 'app/i.ts' or\n 'app/d.ts'), which is unexpected.\n\n Setting '--all' prevents this behavior, causing glob\n to treat ALL patterns as glob expressions to be expanded,\n even if they are an exact match to a file on disk.\n\n When setting this option, be sure to enquote arguments\n so that the shell will not expand them prior to passing\n them to the glob command process.\n `,\n },\n absolute: {\n short: 'a',\n description: 'Expand to absolute paths',\n },\n 'dot-relative': {\n short: 'd',\n description: `Prepend './' on relative matches`,\n },\n mark: {\n short: 'm',\n description: `Append a / on any directories matched`,\n },\n posix: {\n short: 'x',\n description: `Always resolve to posix style paths, using '/' as the\n directory separator, even on Windows. Drive letter\n absolute matches on Windows will be expanded to their\n full resolved UNC maths, eg instead of 'C:\\\\foo\\\\bar',\n it will expand to '//?/C:/foo/bar'.\n `,\n },\n\n follow: {\n short: 'f',\n description: `Follow symlinked directories when expanding '**'`,\n },\n realpath: {\n short: 'R',\n description: `Call 'fs.realpath' on all of the results. In the case\n of an entry that cannot be resolved, the entry is\n omitted. This incurs a slight performance penalty, of\n course, because of the added system calls.`,\n },\n stat: {\n short: 's',\n description: `Call 'fs.lstat' on all entries, whether required or not\n to determine if it's a valid match.`,\n },\n 'match-base': {\n short: 'b',\n description: `Perform a basename-only match if the pattern does not\n contain any slash characters. That is, '*.js' would be\n treated as equivalent to '**/*.js', matching js files\n in all directories.\n `,\n },\n\n dot: {\n description: `Allow patterns to match files/directories that start\n with '.', even if the pattern does not start with '.'\n `,\n },\n nobrace: {\n description: 'Do not expand {...} patterns',\n },\n nocase: {\n description: `Perform a case-insensitive match. This defaults to\n 'true' on macOS and Windows platforms, and false on\n all others.\n\n Note: 'nocase' should only be explicitly set when it is\n known that the filesystem's case sensitivity differs\n from the platform default. If set 'true' on\n case-insensitive file systems, then the walk may return\n more or less results than expected.\n `,\n },\n nodir: {\n description: `Do not match directories, only files.\n\n Note: to *only* match directories, append a '/' at the\n end of the pattern.\n `,\n },\n noext: {\n description: `Do not expand extglob patterns, such as '+(a|b)'`,\n },\n noglobstar: {\n description: `Do not expand '**' against multiple path portions.\n Ie, treat it as a normal '*' instead.`,\n },\n 'windows-path-no-escape': {\n description: `Use '\\\\' as a path separator *only*, and *never* as an\n escape character. If set, all '\\\\' characters are\n replaced with '/' in the pattern.`,\n },\n })\n .num({\n 'max-depth': {\n short: 'D',\n description: `Maximum depth to traverse from the current\n working directory`,\n },\n })\n .opt({\n cwd: {\n short: 'C',\n description: 'Current working directory to execute/match in',\n default: process.cwd(),\n },\n root: {\n short: 'r',\n description: `A string path resolved against the 'cwd', which is\n used as the starting point for absolute patterns that\n start with '/' (but not drive letters or UNC paths\n on Windows).\n\n Note that this *doesn't* necessarily limit the walk to\n the 'root' directory, and doesn't affect the cwd\n starting point for non-absolute patterns. A pattern\n containing '..' will still be able to traverse out of\n the root directory, if it is not an actual root directory\n on the filesystem, and any non-absolute patterns will\n still be matched in the 'cwd'.\n\n To start absolute and non-absolute patterns in the same\n path, you can use '--root=' to set it to the empty\n string. However, be aware that on Windows systems, a\n pattern like 'x:/*' or '//host/share/*' will *always*\n start in the 'x:/' or '//host/share/' directory,\n regardless of the --root setting.\n `,\n },\n platform: {\n description: `Defaults to the value of 'process.platform' if\n available, or 'linux' if not. Setting --platform=win32\n on non-Windows systems may cause strange behavior!`,\n validate: v =>\n new Set([\n 'aix',\n 'android',\n 'darwin',\n 'freebsd',\n 'haiku',\n 'linux',\n 'openbsd',\n 'sunos',\n 'win32',\n 'cygwin',\n 'netbsd',\n ]).has(v),\n },\n })\n .optList({\n ignore: {\n short: 'i',\n description: `Glob patterns to ignore`,\n },\n })\n .flag({\n debug: {\n short: 'v',\n description: `Output a huge amount of noisy debug information about\n patterns as they are parsed and used to match files.`,\n },\n })\n .flag({\n help: {\n short: 'h',\n description: 'Show this usage information',\n },\n })\n\ntry {\n const { positionals, values } = j.parse()\n if (values.help) {\n console.log(j.usage())\n process.exit(0)\n }\n if (positionals.length === 0 && !values.default)\n throw 'No patterns provided'\n if (positionals.length === 0 && values.default)\n positionals.push(values.default)\n const patterns = values.all\n ? positionals\n : positionals.filter(p => !existsSync(p))\n const matches = values.all ? [] : positionals.filter(p => existsSync(p))\n const stream = globStream(patterns, {\n absolute: values.absolute,\n cwd: values.cwd,\n dot: values.dot,\n dotRelative: values['dot-relative'],\n follow: values.follow,\n ignore: values.ignore,\n mark: values.mark,\n matchBase: values['match-base'],\n maxDepth: values['max-depth'],\n nobrace: values.nobrace,\n nocase: values.nocase,\n nodir: values.nodir,\n noext: values.noext,\n noglobstar: values.noglobstar,\n platform: values.platform as undefined | NodeJS.Platform,\n realpath: values.realpath,\n root: values.root,\n stat: values.stat,\n debug: values.debug,\n posix: values.posix,\n })\n\n const cmd = values.cmd\n if (!cmd) {\n matches.forEach(m => console.log(m))\n stream.on('data', f => console.log(f))\n } else {\n stream.on('data', f => matches.push(f))\n stream.on('end', () => foregroundChild(cmd, matches, { shell: true }))\n }\n} catch (e) {\n console.error(j.usage())\n console.error(e instanceof Error ? e.message : String(e))\n process.exit(1)\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts.map deleted file mode 100644 index 6353d8b3c47126..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../src/glob.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/glob.js.map b/deps/npm/node_modules/glob/dist/cjs/src/glob.js.map deleted file mode 100644 index 7a7a9b28627480..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/glob.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n FSOption,\n Path,\n PathScurry,\n PathScurryDarwin,\n PathScurryPosix,\n PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean\n\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean\n\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL\n\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean\n\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean\n\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean\n\n /**\n * string or string[], or an object with `ignore` and `ignoreChildren`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike\n\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean\n\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean\n\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean\n\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number\n\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean\n\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean\n\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean\n\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean\n\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean\n\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform\n\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean\n\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string\n\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry\n\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean\n\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal\n\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean\n\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean\n\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption\n\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean\n\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true\n // string options not relevant if returning Path objects.\n absolute?: undefined\n mark?: undefined\n posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n ? Path\n : Opts extends GlobOptionsWithFileTypesFalse\n ? string\n : Opts extends GlobOptionsWithFileTypesUnset\n ? string\n : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n ? true\n : Opts extends GlobOptionsWithFileTypesFalse\n ? false\n : Opts extends GlobOptionsWithFileTypesUnset\n ? false\n : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n absolute?: boolean\n cwd: string\n root?: string\n dot: boolean\n dotRelative: boolean\n follow: boolean\n ignore?: string | string[] | IgnoreLike\n magicalBraces: boolean\n mark?: boolean\n matchBase: boolean\n maxDepth: number\n nobrace: boolean\n nocase: boolean\n nodir: boolean\n noext: boolean\n noglobstar: boolean\n pattern: string[]\n platform: NodeJS.Platform\n realpath: boolean\n scurry: PathScurry\n stat: boolean\n signal?: AbortSignal\n windowsPathsNoEscape: boolean\n withFileTypes: FileTypes\n\n /**\n * The options provided to the constructor.\n */\n opts: Opts\n\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[]\n\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts) {\n /* c8 ignore start */\n if (!opts) throw new TypeError('glob options required')\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes as FileTypes\n this.signal = opts.signal\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.dotRelative = !!opts.dotRelative\n this.nodir = !!opts.nodir\n this.mark = !!opts.mark\n if (!opts.cwd) {\n this.cwd = ''\n } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = fileURLToPath(opts.cwd)\n }\n this.cwd = opts.cwd || ''\n this.root = opts.root\n this.magicalBraces = !!opts.magicalBraces\n this.nobrace = !!opts.nobrace\n this.noext = !!opts.noext\n this.realpath = !!opts.realpath\n this.absolute = opts.absolute\n\n this.noglobstar = !!opts.noglobstar\n this.matchBase = !!opts.matchBase\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n this.stat = !!opts.stat\n this.ignore = opts.ignore\n\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true')\n }\n\n if (typeof pattern === 'string') {\n pattern = [pattern]\n }\n\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n (opts as GlobOptions).allowWindowsEscape === false\n\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n }\n\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar')\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n }\n\n this.pattern = pattern\n\n this.platform = opts.platform || defaultPlatform\n this.opts = { ...opts, platform: this.platform }\n if (opts.scurry) {\n this.scurry = opts.scurry\n if (\n opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase\n ) {\n throw new Error('nocase option contradicts provided scurry option')\n }\n } else {\n const Scurry =\n opts.platform === 'win32'\n ? PathScurryWin32\n : opts.platform === 'darwin'\n ? PathScurryDarwin\n : opts.platform\n ? PathScurryPosix\n : PathScurry\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n })\n }\n this.nocase = this.scurry.nocase\n\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly =\n this.platform === 'darwin' || this.platform === 'win32'\n\n const mmo: MinimatchOptions = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n }\n\n const mms = this.pattern.map(p => new Minimatch(p, mmo))\n const [matchSet, globParts] = mms.reduce(\n (set: [MatchSet, GlobParts], m) => {\n set[0].push(...m.set)\n set[1].push(...m.globParts)\n return set\n },\n [[], []]\n )\n this.patterns = matchSet.map((set, i) => {\n return new Pattern(set, globParts[i], 0, this.platform)\n })\n }\n\n /**\n * Returns a Promise that resolves to the results array.\n */\n async walk(): Promise>\n async walk(): Promise<(string | Path)[]> {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walk()),\n ]\n }\n\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results\n walkSync(): (string | Path)[] {\n return [\n ...new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walkSync(),\n ]\n }\n\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass, Result>\n stream(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).stream()\n }\n\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass, Result>\n streamSync(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).streamSync()\n }\n\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator, void, void> {\n return this.streamSync()[Symbol.iterator]()\n }\n [Symbol.iterator]() {\n return this.iterateSync()\n }\n\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator, void, void> {\n return this.stream()[Symbol.asyncIterator]()\n }\n [Symbol.asyncIterator]() {\n return this.iterate()\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts.map deleted file mode 100644 index dd5053f80b44c3..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.js.map b/deps/npm/node_modules/glob/dist/cjs/src/has-magic.js.map deleted file mode 100644 index 9b73cfad7d05e4..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../../src/has-magic.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;;;;GAUG;AACI,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;KACpB;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,IAAI,qBAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;KACtD;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n pattern: string | string[],\n options: GlobOptions = {}\n): boolean => {\n if (!Array.isArray(pattern)) {\n pattern = [pattern]\n }\n for (const p of pattern) {\n if (new Minimatch(p, options).hasMagic()) return true\n }\n return false\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts.map deleted file mode 100644 index 3d604838d1eed2..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAiDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/ignore.js.map b/deps/npm/node_modules/glob/dist/cjs/src/ignore.js.map deleted file mode 100644 index 7595b4c68f79ed..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/ignore.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n ignored?: (p: Path) => boolean\n childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n relative: Minimatch[]\n relativeChildren: Minimatch[]\n absolute: Minimatch[]\n absoluteChildren: Minimatch[]\n\n constructor(\n ignored: string[],\n {\n nobrace,\n nocase,\n noext,\n noglobstar,\n platform = defaultPlatform,\n }: GlobWalkerOpts\n ) {\n this.relative = []\n this.absolute = []\n this.relativeChildren = []\n this.absoluteChildren = []\n const mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n }\n\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n for (const ign of ignored) {\n const mm = new Minimatch(ign, mmopts)\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i]\n const globParts = mm.globParts[i]\n const p = new Pattern(parsed, globParts, 0, platform)\n const m = new Minimatch(p.globString(), mmopts)\n const children = globParts[globParts.length - 1] === '**'\n const absolute = p.isAbsolute()\n if (absolute) this.absolute.push(m)\n else this.relative.push(m)\n if (children) {\n if (absolute) this.absoluteChildren.push(m)\n else this.relativeChildren.push(m)\n }\n }\n }\n }\n\n ignored(p: Path): boolean {\n const fullpath = p.fullpath()\n const fullpaths = `${fullpath}/`\n const relative = p.relative() || '.'\n const relatives = `${relative}/`\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives)) return true\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths)) return true\n }\n return false\n }\n\n childrenIgnored(p: Path): boolean {\n const fullpath = p.fullpath() + '/'\n const relative = (p.relative() || '.') + '/'\n for (const m of this.relativeChildren) {\n if (m.match(relative)) return true\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath)) true\n }\n return false\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/index.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/index.d.ts.map deleted file mode 100644 index 4e9ba085ce45b2..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/index.js.map b/deps/npm/node_modules/glob/dist/cjs/src/index.js.map deleted file mode 100644 index 060338fbd1b94b..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAS5C,uCAAgC;AAChC,iDAAyC;AAuBzC,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AALD,wCAKC;AAsBD,SAAgB,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AALD,gCAKC;AAqBD,SAAgB,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AALD,4BAKC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AALD,0CAKC;AAqBD,SAAgB,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AALD,kCAKC;AAED,iEAAiE;AACpD,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC5D,QAAA,WAAW,GAAG,eAAe,CAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,uCAA4C;AAAnC,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,qCAAgC;AAAvB,+FAAA,IAAI,OAAA;AAOb,+CAAyC;AAAhC,wGAAA,QAAQ,OAAA;AAGjB,oBAAoB;AAEP,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,UAAU;IACV,MAAM,EAAN,cAAM;IACN,cAAc;IACd,UAAU,EAAV,kBAAU;IACV,WAAW;IACX,OAAO,EAAP,eAAO;IACP,eAAe;IACf,WAAW,EAAX,mBAAW;IACX,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,uBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,QAAQ,EAAR,oBAAQ;CACT,CAAC,CAAA;AACF,YAAI,CAAC,IAAI,GAAG,YAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync,\n globStream,\n stream,\n globStreamSync,\n streamSync,\n globIterate,\n iterate,\n globIterateSync,\n iterateSync,\n Glob,\n hasMagic,\n escape,\n unescape,\n})\nglob.glob = glob\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts.map deleted file mode 100644 index 48430f63db0947..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/pattern.js.map b/deps/npm/node_modules/glob/dist/cjs/src/pattern.js.map deleted file mode 100644 index ba5293ff9f2489..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/pattern.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n p0: '',\n p1: '',\n p2: string,\n p3: string,\n ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n readonly #patternList: PatternList\n readonly #globList: GlobList\n readonly #index: number\n readonly length: number\n readonly #platform: NodeJS.Platform\n #rest?: Pattern | null\n #globString?: string\n #isDrive?: boolean\n #isUNC?: boolean\n #isAbsolute?: boolean\n #followGlobstar: boolean = true\n\n constructor(\n patternList: MMPattern[],\n globList: string[],\n index: number,\n platform: NodeJS.Platform\n ) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list')\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list')\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths')\n }\n this.length = patternList.length\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range')\n }\n this.#patternList = patternList\n this.#globList = globList\n this.#index = index\n this.#platform = platform\n\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList\n const [g0, g1, g2, g3, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = [p0, p1, p2, p3, ''].join('/')\n const g = [g0, g1, g2, g3, ''].join('/')\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n } else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList\n const [g1, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = (p1 as string) + '/'\n const g = g1 + '/'\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n }\n }\n }\n\n /**\n * The first entry in the parsed list of patterns\n */\n pattern(): MMPattern {\n return this.#patternList[this.#index]\n }\n\n /**\n * true of if pattern() returns a string\n */\n isString(): boolean {\n return typeof this.#patternList[this.#index] === 'string'\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar(): boolean {\n return this.#patternList[this.#index] === GLOBSTAR\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp(): boolean {\n return this.#patternList[this.#index] instanceof RegExp\n }\n\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString(): string {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0\n ? this.isAbsolute()\n ? this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')))\n }\n\n /**\n * true if there are more pattern parts after this one\n */\n hasMore(): boolean {\n return this.length > this.#index + 1\n }\n\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest(): Pattern | null {\n if (this.#rest !== undefined) return this.#rest\n if (!this.hasMore()) return (this.#rest = null)\n this.#rest = new Pattern(\n this.#patternList,\n this.#globList,\n this.#index + 1,\n this.#platform\n )\n this.#rest.#isAbsolute = this.#isAbsolute\n this.#rest.#isUNC = this.#isUNC\n this.#rest.#isDrive = this.#isDrive\n return this.#rest\n }\n\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC(): boolean {\n const pl = this.#patternList\n return this.#isUNC !== undefined\n ? this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3])\n }\n\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive(): boolean {\n const pl = this.#patternList\n return this.#isDrive !== undefined\n ? this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]))\n }\n\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute(): boolean {\n const pl = this.#patternList\n return this.#isAbsolute !== undefined\n ? this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC())\n }\n\n /**\n * consume the root of the pattern, and return it\n */\n root(): string {\n const p = this.#patternList[0]\n return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n ? p\n : ''\n }\n\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar(): boolean {\n return !(\n this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar\n )\n }\n\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar(): boolean {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false\n this.#followGlobstar = false\n return true\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts.map deleted file mode 100644 index ca6c63ca264b27..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAwGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/processor.js.map b/deps/npm/node_modules/glob/dist/cjs/src/processor.js.map deleted file mode 100644 index bcbac1f723f983..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/processor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n store: Map>\n constructor(store: Map> = new Map()) {\n this.store = store\n }\n copy() {\n return new HasWalkedCache(new Map(this.store))\n }\n hasWalked(target: Path, pattern: Pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString())\n }\n storeWalked(target: Path, pattern: Pattern) {\n const fullpath = target.fullpath()\n const cached = this.store.get(fullpath)\n if (cached) cached.add(pattern.globString())\n else this.store.set(fullpath, new Set([pattern.globString()]))\n }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n store: Map = new Map()\n add(target: Path, absolute: boolean, ifDir: boolean) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n const current = this.store.get(target)\n this.store.set(target, current === undefined ? n : n & current)\n }\n // match, absolute, ifdir\n entries(): [Path, boolean, boolean][] {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ])\n }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n store: Map = new Map()\n add(target: Path, pattern: Pattern) {\n if (!target.canReaddir()) {\n return\n }\n const subs = this.store.get(target)\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern)\n }\n } else this.store.set(target, [pattern])\n }\n get(target: Path): Pattern[] {\n const subs = this.store.get(target)\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path')\n }\n /* c8 ignore stop */\n return subs\n }\n entries(): [Path, Pattern[]][] {\n return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n }\n keys(): Path[] {\n return [...this.store.keys()].filter(t => t.canReaddir())\n }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n hasWalkedCache: HasWalkedCache\n matches = new MatchRecord()\n subwalks = new SubWalks()\n patterns?: Pattern[]\n follow: boolean\n dot: boolean\n opts: GlobWalkerOpts\n\n constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n this.opts = opts\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.hasWalkedCache = hasWalkedCache\n ? hasWalkedCache.copy()\n : new HasWalkedCache()\n }\n\n processPatterns(target: Path, patterns: Pattern[]) {\n this.patterns = patterns\n const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern)\n\n const root = pattern.root()\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n // start absolute patterns at root\n if (root) {\n t = t.resolve(\n root === '/' && this.opts.root !== undefined\n ? this.opts.root\n : root\n )\n const rest = pattern.rest()\n if (!rest) {\n this.matches.add(t, true, false)\n continue\n } else {\n pattern = rest\n }\n }\n\n if (t.isENOENT()) continue\n\n let p: MMPattern\n let rest: Pattern | null\n let changed = false\n while (\n typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())\n ) {\n const c = t.resolve(p)\n // we can be reasonably sure that .. is a readable dir\n if (c.isUnknown() && p !== '..') break\n t = c\n pattern = rest\n changed = true\n }\n p = pattern.pattern()\n rest = pattern.rest()\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n this.hasWalkedCache.storeWalked(t, pattern)\n }\n\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must be final entry\n if (!rest) {\n const ifDir = p === '..' || p === '' || p === '.'\n this.matches.add(t.resolve(p), absolute, ifDir)\n } else {\n this.subwalks.add(t, pattern)\n }\n continue\n } else if (p === GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (\n !t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()\n ) {\n this.subwalks.add(t, pattern)\n }\n const rp = rest?.pattern()\n const rrest = rest?.rest()\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.')\n } else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t\n /* c8 ignore stop */\n if (!rrest) this.matches.add(tp, absolute, true)\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest)\n }\n }\n }\n } else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern)\n }\n }\n\n return this\n }\n\n subwalkTargets(): Path[] {\n return this.subwalks.keys()\n }\n\n child() {\n return new Processor(this.opts, this.hasWalkedCache)\n }\n\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent: Path, entries: Path[]): Processor {\n const patterns = this.subwalks.get(parent)\n // put matches and entry walks into the results processor\n const results = this.child()\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute()\n const p = pattern.pattern()\n const rest = pattern.rest()\n if (p === GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute)\n } else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute)\n } else {\n results.testString(e, p, rest, absolute)\n }\n }\n }\n return results\n }\n\n testGlobstar(\n e: Path,\n pattern: Pattern,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false)\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern)\n } else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest)\n } else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern)\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern()\n if (\n typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.'\n ) {\n this.testString(e, rp, rest.rest(), absolute)\n } else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e\n /* c8 ignore stop */\n this.subwalks.add(ep, rest)\n } else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute)\n }\n }\n }\n\n testRegExp(\n e: Path,\n p: MMRegExp,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (!p.test(e.name)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n\n testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n // should never happen?\n if (!e.isNamed(p)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts.map b/deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts.map deleted file mode 100644 index dda062358f1998..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/walker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/walker.js.map b/deps/npm/node_modules/glob/dist/cjs/src/walker.js.map deleted file mode 100644 index a7af398939ae48..00000000000000 --- a/deps/npm/node_modules/glob/dist/cjs/src/walker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/walker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed? that'd speed\n// things up a lot. Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n absolute?: boolean\n allowWindowsEscape?: boolean\n cwd?: string | URL\n dot?: boolean\n dotRelative?: boolean\n follow?: boolean\n ignore?: string | string[] | IgnoreLike\n mark?: boolean\n matchBase?: boolean\n // Note: maxDepth here means \"maximum actual Path.depth()\",\n // not \"maximum depth beyond cwd\"\n maxDepth?: number\n nobrace?: boolean\n nocase?: boolean\n nodir?: boolean\n noext?: boolean\n noglobstar?: boolean\n platform?: NodeJS.Platform\n posix?: boolean\n realpath?: boolean\n root?: string\n stat?: boolean\n signal?: AbortSignal\n windowsPathsNoEscape?: boolean\n withFileTypes?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n withFileTypes?: undefined\n}\n\nexport type Result = O extends GWOFileTypesTrue\n ? Path\n : O extends GWOFileTypesFalse\n ? string\n : O extends GWOFileTypesUnset\n ? string\n : Path | string\n\nexport type Matches = O extends GWOFileTypesTrue\n ? Set\n : O extends GWOFileTypesFalse\n ? Set\n : O extends GWOFileTypesUnset\n ? Set\n : Set\n\nexport type MatchStream =\n O extends GWOFileTypesTrue\n ? Minipass\n : O extends GWOFileTypesFalse\n ? Minipass\n : O extends GWOFileTypesUnset\n ? Minipass\n : Minipass\n\nconst makeIgnore = (\n ignore: string | string[] | IgnoreLike,\n opts: GlobWalkerOpts\n): IgnoreLike =>\n typeof ignore === 'string'\n ? new Ignore([ignore], opts)\n : Array.isArray(ignore)\n ? new Ignore(ignore, opts)\n : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil {\n path: Path\n patterns: Pattern[]\n opts: O\n seen: Set = new Set()\n paused: boolean = false\n aborted: boolean = false\n #onResume: (() => any)[] = []\n #ignore?: IgnoreLike\n #sep: '\\\\' | '/'\n signal?: AbortSignal\n maxDepth: number\n\n constructor(patterns: Pattern[], path: Path, opts: O)\n constructor(patterns: Pattern[], path: Path, opts: O) {\n this.patterns = patterns\n this.path = path\n this.opts = opts\n this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n if (opts.ignore) {\n this.#ignore = makeIgnore(opts.ignore, opts)\n }\n // ignore, always set with maxDepth, but it's optional on the\n // GlobOptions type\n /* c8 ignore start */\n this.maxDepth = opts.maxDepth || Infinity\n /* c8 ignore stop */\n if (opts.signal) {\n this.signal = opts.signal\n this.signal.addEventListener('abort', () => {\n this.#onResume.length = 0\n })\n }\n }\n\n #ignored(path: Path): boolean {\n return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n }\n #childrenIgnored(path: Path): boolean {\n return !!this.#ignore?.childrenIgnored?.(path)\n }\n\n // backpressure mechanism\n pause() {\n this.paused = true\n }\n resume() {\n /* c8 ignore start */\n if (this.signal?.aborted) return\n /* c8 ignore stop */\n this.paused = false\n let fn: (() => any) | undefined = undefined\n while (!this.paused && (fn = this.#onResume.shift())) {\n fn()\n }\n }\n onResume(fn: () => any) {\n if (this.signal?.aborted) return\n /* c8 ignore start */\n if (!this.paused) {\n fn()\n } else {\n /* c8 ignore stop */\n this.#onResume.push(fn)\n }\n }\n\n // do the requisite realpath/stat checking, and return the path\n // to add or undefined to filter it out.\n async matchCheck(e: Path, ifDir: boolean): Promise {\n if (ifDir && this.opts.nodir) return undefined\n let rpc: Path | undefined\n if (this.opts.realpath) {\n rpc = e.realpathCached() || (await e.realpath())\n if (!rpc) return undefined\n e = rpc\n }\n const needStat = e.isUnknown() || this.opts.stat\n return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir)\n }\n\n matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n return e &&\n (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n (!ifDir || e.canReaddir()) &&\n (!this.opts.nodir || !e.isDirectory()) &&\n !this.#ignored(e)\n ? e\n : undefined\n }\n\n matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n if (ifDir && this.opts.nodir) return undefined\n let rpc: Path | undefined\n if (this.opts.realpath) {\n rpc = e.realpathCached() || e.realpathSync()\n if (!rpc) return undefined\n e = rpc\n }\n const needStat = e.isUnknown() || this.opts.stat\n return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir)\n }\n\n abstract matchEmit(p: Result): void\n abstract matchEmit(p: string | Path): void\n\n matchFinish(e: Path, absolute: boolean) {\n if (this.#ignored(e)) return\n const abs =\n this.opts.absolute === undefined ? absolute : this.opts.absolute\n this.seen.add(e)\n const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n // ok, we have what we need!\n if (this.opts.withFileTypes) {\n this.matchEmit(e)\n } else if (abs) {\n const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n this.matchEmit(abs + mark)\n } else {\n const rel = this.opts.posix ? e.relativePosix() : e.relative()\n const pre =\n this.opts.dotRelative && !rel.startsWith('..' + this.#sep)\n ? '.' + this.#sep\n : ''\n this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n }\n }\n\n async match(e: Path, absolute: boolean, ifDir: boolean): Promise {\n const p = await this.matchCheck(e, ifDir)\n if (p) this.matchFinish(p, absolute)\n }\n\n matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n const p = this.matchCheckSync(e, ifDir)\n if (p) this.matchFinish(p, absolute)\n }\n\n walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n /* c8 ignore start */\n if (this.signal?.aborted) cb()\n /* c8 ignore stop */\n this.walkCB2(target, patterns, new Processor(this.opts), cb)\n }\n\n walkCB2(\n target: Path,\n patterns: Pattern[],\n processor: Processor,\n cb: () => any\n ) {\n if (this.#childrenIgnored(target)) return cb()\n if (this.signal?.aborted) cb()\n if (this.paused) {\n this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n return\n }\n processor.processPatterns(target, patterns)\n\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n tasks++\n this.match(m, absolute, ifDir).then(() => next())\n }\n\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue\n }\n tasks++\n const childrenCached = t.readdirCached()\n if (t.calledReaddir())\n this.walkCB3(t, childrenCached, processor, next)\n else {\n t.readdirCB(\n (_, entries) => this.walkCB3(t, entries, processor, next),\n true\n )\n }\n }\n\n next()\n }\n\n walkCB3(\n target: Path,\n entries: Path[],\n processor: Processor,\n cb: () => any\n ) {\n processor = processor.filterEntries(target, entries)\n\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n tasks++\n this.match(m, absolute, ifDir).then(() => next())\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++\n this.walkCB2(target, patterns, processor.child(), next)\n }\n\n next()\n }\n\n walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n /* c8 ignore start */\n if (this.signal?.aborted) cb()\n /* c8 ignore stop */\n this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n }\n\n walkCB2Sync(\n target: Path,\n patterns: Pattern[],\n processor: Processor,\n cb: () => any\n ) {\n if (this.#childrenIgnored(target)) return cb()\n if (this.signal?.aborted) cb()\n if (this.paused) {\n this.onResume(() =>\n this.walkCB2Sync(target, patterns, processor, cb)\n )\n return\n }\n processor.processPatterns(target, patterns)\n\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n this.matchSync(m, absolute, ifDir)\n }\n\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue\n }\n tasks++\n const children = t.readdirSync()\n this.walkCB3Sync(t, children, processor, next)\n }\n\n next()\n }\n\n walkCB3Sync(\n target: Path,\n entries: Path[],\n processor: Processor,\n cb: () => any\n ) {\n processor = processor.filterEntries(target, entries)\n\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n this.matchSync(m, absolute, ifDir)\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++\n this.walkCB2Sync(target, patterns, processor.child(), next)\n }\n\n next()\n }\n}\n\nexport class GlobWalker<\n O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n matches: O extends GWOFileTypesTrue\n ? Set\n : O extends GWOFileTypesFalse\n ? Set\n : O extends GWOFileTypesUnset\n ? Set\n : Set\n\n constructor(patterns: Pattern[], path: Path, opts: O) {\n super(patterns, path, opts)\n this.matches = new Set() as Matches\n }\n\n matchEmit(e: Result): void\n matchEmit(e: Path | string): void {\n this.matches.add(e)\n }\n\n async walk(): Promise> {\n if (this.signal?.aborted) throw this.signal.reason\n if (this.path.isUnknown()) {\n await this.path.lstat()\n }\n await new Promise((res, rej) => {\n this.walkCB(this.path, this.patterns, () => {\n if (this.signal?.aborted) {\n rej(this.signal.reason)\n } else {\n res(this.matches)\n }\n })\n })\n return this.matches\n }\n\n walkSync(): Matches {\n if (this.signal?.aborted) throw this.signal.reason\n if (this.path.isUnknown()) {\n this.path.lstatSync()\n }\n // nothing for the callback to do, because this never pauses\n this.walkCBSync(this.path, this.patterns, () => {\n if (this.signal?.aborted) throw this.signal.reason\n })\n return this.matches\n }\n}\n\nexport class GlobStream<\n O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n results: O extends GWOFileTypesTrue\n ? Minipass\n : O extends GWOFileTypesFalse\n ? Minipass\n : O extends GWOFileTypesUnset\n ? Minipass\n : Minipass\n\n constructor(patterns: Pattern[], path: Path, opts: O) {\n super(patterns, path, opts)\n this.results = new Minipass({\n signal: this.signal,\n objectMode: true,\n }) as MatchStream\n this.results.on('drain', () => this.resume())\n this.results.on('resume', () => this.resume())\n }\n\n matchEmit(e: Result): void\n matchEmit(e: Path | string): void {\n this.results.write(e)\n if (!this.results.flowing) this.pause()\n }\n\n stream(): MatchStream {\n const target = this.path\n if (target.isUnknown()) {\n target.lstat().then(() => {\n this.walkCB(target, this.patterns, () => this.results.end())\n })\n } else {\n this.walkCB(target, this.patterns, () => this.results.end())\n }\n return this.results\n }\n\n streamSync(): MatchStream {\n if (this.path.isUnknown()) {\n this.path.lstatSync()\n }\n this.walkCBSync(this.path, this.patterns, () => this.results.end())\n return this.results\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts b/deps/npm/node_modules/glob/dist/commonjs/glob.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/glob.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/glob.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/glob.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/glob.d.ts.map similarity index 98% rename from deps/npm/node_modules/glob/dist/mjs/glob.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/glob.d.ts.map index d45258ac24a580..5216438a25086b 100644 --- a/deps/npm/node_modules/glob/dist/mjs/glob.d.ts.map +++ b/deps/npm/node_modules/glob/dist/commonjs/glob.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/glob.js b/deps/npm/node_modules/glob/dist/commonjs/glob.js similarity index 96% rename from deps/npm/node_modules/glob/dist/cjs/src/glob.js rename to deps/npm/node_modules/glob/dist/commonjs/glob.js index eb37c6b9a6601e..5e37335c4426f1 100644 --- a/deps/npm/node_modules/glob/dist/cjs/src/glob.js +++ b/deps/npm/node_modules/glob/dist/commonjs/glob.js @@ -162,7 +162,12 @@ class Glob { return set; }, [[], []]); this.patterns = matchSet.map((set, i) => { - return new pattern_js_1.Pattern(set, globParts[i], 0, this.platform); + const g = globParts[i]; + /* c8 ignore start */ + if (!g) + throw new Error('invalid pattern object'); + /* c8 ignore stop */ + return new pattern_js_1.Pattern(set, g, 0, this.platform); }); } async walk() { diff --git a/deps/npm/node_modules/glob/dist/commonjs/glob.js.map b/deps/npm/node_modules/glob/dist/commonjs/glob.js.map new file mode 100644 index 00000000000000..98601fe30edf96 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/glob.js.map @@ -0,0 +1 @@ +{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n FSOption,\n Path,\n PathScurry,\n PathScurryDarwin,\n PathScurryPosix,\n PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean\n\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean\n\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL\n\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean\n\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean\n\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean\n\n /**\n * string or string[], or an object with `ignore` and `ignoreChildren`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike\n\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean\n\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean\n\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean\n\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number\n\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean\n\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean\n\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean\n\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean\n\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean\n\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform\n\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean\n\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string\n\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry\n\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean\n\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal\n\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean\n\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean\n\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption\n\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean\n\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true\n // string options not relevant if returning Path objects.\n absolute?: undefined\n mark?: undefined\n posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n ? Path\n : Opts extends GlobOptionsWithFileTypesFalse\n ? string\n : Opts extends GlobOptionsWithFileTypesUnset\n ? string\n : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n ? true\n : Opts extends GlobOptionsWithFileTypesFalse\n ? false\n : Opts extends GlobOptionsWithFileTypesUnset\n ? false\n : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n absolute?: boolean\n cwd: string\n root?: string\n dot: boolean\n dotRelative: boolean\n follow: boolean\n ignore?: string | string[] | IgnoreLike\n magicalBraces: boolean\n mark?: boolean\n matchBase: boolean\n maxDepth: number\n nobrace: boolean\n nocase: boolean\n nodir: boolean\n noext: boolean\n noglobstar: boolean\n pattern: string[]\n platform: NodeJS.Platform\n realpath: boolean\n scurry: PathScurry\n stat: boolean\n signal?: AbortSignal\n windowsPathsNoEscape: boolean\n withFileTypes: FileTypes\n\n /**\n * The options provided to the constructor.\n */\n opts: Opts\n\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[]\n\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts) {\n /* c8 ignore start */\n if (!opts) throw new TypeError('glob options required')\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes as FileTypes\n this.signal = opts.signal\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.dotRelative = !!opts.dotRelative\n this.nodir = !!opts.nodir\n this.mark = !!opts.mark\n if (!opts.cwd) {\n this.cwd = ''\n } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = fileURLToPath(opts.cwd)\n }\n this.cwd = opts.cwd || ''\n this.root = opts.root\n this.magicalBraces = !!opts.magicalBraces\n this.nobrace = !!opts.nobrace\n this.noext = !!opts.noext\n this.realpath = !!opts.realpath\n this.absolute = opts.absolute\n\n this.noglobstar = !!opts.noglobstar\n this.matchBase = !!opts.matchBase\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n this.stat = !!opts.stat\n this.ignore = opts.ignore\n\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true')\n }\n\n if (typeof pattern === 'string') {\n pattern = [pattern]\n }\n\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n (opts as GlobOptions).allowWindowsEscape === false\n\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n }\n\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar')\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n }\n\n this.pattern = pattern\n\n this.platform = opts.platform || defaultPlatform\n this.opts = { ...opts, platform: this.platform }\n if (opts.scurry) {\n this.scurry = opts.scurry\n if (\n opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase\n ) {\n throw new Error('nocase option contradicts provided scurry option')\n }\n } else {\n const Scurry =\n opts.platform === 'win32'\n ? PathScurryWin32\n : opts.platform === 'darwin'\n ? PathScurryDarwin\n : opts.platform\n ? PathScurryPosix\n : PathScurry\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n })\n }\n this.nocase = this.scurry.nocase\n\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly =\n this.platform === 'darwin' || this.platform === 'win32'\n\n const mmo: MinimatchOptions = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n }\n\n const mms = this.pattern.map(p => new Minimatch(p, mmo))\n const [matchSet, globParts] = mms.reduce(\n (set: [MatchSet, GlobParts], m) => {\n set[0].push(...m.set)\n set[1].push(...m.globParts)\n return set\n },\n [[], []]\n )\n this.patterns = matchSet.map((set, i) => {\n const g = globParts[i]\n /* c8 ignore start */\n if (!g) throw new Error('invalid pattern object')\n /* c8 ignore stop */\n return new Pattern(set, g, 0, this.platform)\n })\n }\n\n /**\n * Returns a Promise that resolves to the results array.\n */\n async walk(): Promise>\n async walk(): Promise<(string | Path)[]> {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walk()),\n ]\n }\n\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results\n walkSync(): (string | Path)[] {\n return [\n ...new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walkSync(),\n ]\n }\n\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass, Result>\n stream(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).stream()\n }\n\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass, Result>\n streamSync(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).streamSync()\n }\n\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator, void, void> {\n return this.streamSync()[Symbol.iterator]()\n }\n [Symbol.iterator]() {\n return this.iterateSync()\n }\n\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator, void, void> {\n return this.stream()[Symbol.asyncIterator]()\n }\n [Symbol.asyncIterator]() {\n return this.iterate()\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts b/deps/npm/node_modules/glob/dist/commonjs/has-magic.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/has-magic.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/has-magic.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/has-magic.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/has-magic.d.ts.map similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/has-magic.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/has-magic.d.ts.map diff --git a/deps/npm/node_modules/glob/dist/cjs/src/has-magic.js b/deps/npm/node_modules/glob/dist/commonjs/has-magic.js similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/has-magic.js rename to deps/npm/node_modules/glob/dist/commonjs/has-magic.js diff --git a/deps/npm/node_modules/glob/dist/commonjs/has-magic.js.map b/deps/npm/node_modules/glob/dist/commonjs/has-magic.js.map new file mode 100644 index 00000000000000..5e71e3a58a2d6e --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/has-magic.js.map @@ -0,0 +1 @@ +{"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;;;;GAUG;AACI,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;KACpB;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,IAAI,qBAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;KACtD;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n pattern: string | string[],\n options: GlobOptions = {}\n): boolean => {\n if (!Array.isArray(pattern)) {\n pattern = [pattern]\n }\n for (const p of pattern) {\n if (new Minimatch(p, options).hasMagic()) return true\n }\n return false\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts b/deps/npm/node_modules/glob/dist/commonjs/ignore.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/ignore.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/ignore.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/ignore.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/ignore.d.ts.map similarity index 91% rename from deps/npm/node_modules/glob/dist/mjs/ignore.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/ignore.d.ts.map index e0018cf935b046..be7831769d33ed 100644 --- a/deps/npm/node_modules/glob/dist/mjs/ignore.d.ts.map +++ b/deps/npm/node_modules/glob/dist/commonjs/ignore.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAiDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} \ No newline at end of file +{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAsDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/ignore.js b/deps/npm/node_modules/glob/dist/commonjs/ignore.js similarity index 94% rename from deps/npm/node_modules/glob/dist/cjs/src/ignore.js rename to deps/npm/node_modules/glob/dist/commonjs/ignore.js index 0cbcca335e1cca..6cffb49f8ed27c 100644 --- a/deps/npm/node_modules/glob/dist/cjs/src/ignore.js +++ b/deps/npm/node_modules/glob/dist/commonjs/ignore.js @@ -53,6 +53,11 @@ class Ignore { for (let i = 0; i < mm.set.length; i++) { const parsed = mm.set[i]; const globParts = mm.globParts[i]; + /* c8 ignore start */ + if (!parsed || !globParts) { + throw new Error('invalid pattern object'); + } + /* c8 ignore stop */ const p = new pattern_js_1.Pattern(parsed, globParts, 0, platform); const m = new minimatch_1.Minimatch(p.globString(), mmopts); const children = globParts[globParts.length - 1] === '**'; @@ -94,7 +99,7 @@ class Ignore { } for (const m of this.absoluteChildren) { if (m.match(fullpath)) - true; + return true; } return false; } diff --git a/deps/npm/node_modules/glob/dist/commonjs/ignore.js.map b/deps/npm/node_modules/glob/dist/commonjs/ignore.js.map new file mode 100644 index 00000000000000..3533cfc8811e90 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/ignore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n ignored?: (p: Path) => boolean\n childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n relative: Minimatch[]\n relativeChildren: Minimatch[]\n absolute: Minimatch[]\n absoluteChildren: Minimatch[]\n\n constructor(\n ignored: string[],\n {\n nobrace,\n nocase,\n noext,\n noglobstar,\n platform = defaultPlatform,\n }: GlobWalkerOpts\n ) {\n this.relative = []\n this.absolute = []\n this.relativeChildren = []\n this.absoluteChildren = []\n const mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n }\n\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n for (const ign of ignored) {\n const mm = new Minimatch(ign, mmopts)\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i]\n const globParts = mm.globParts[i]\n /* c8 ignore start */\n if (!parsed || !globParts) {\n throw new Error('invalid pattern object')\n }\n /* c8 ignore stop */\n const p = new Pattern(parsed, globParts, 0, platform)\n const m = new Minimatch(p.globString(), mmopts)\n const children = globParts[globParts.length - 1] === '**'\n const absolute = p.isAbsolute()\n if (absolute) this.absolute.push(m)\n else this.relative.push(m)\n if (children) {\n if (absolute) this.absoluteChildren.push(m)\n else this.relativeChildren.push(m)\n }\n }\n }\n }\n\n ignored(p: Path): boolean {\n const fullpath = p.fullpath()\n const fullpaths = `${fullpath}/`\n const relative = p.relative() || '.'\n const relatives = `${relative}/`\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives)) return true\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths)) return true\n }\n return false\n }\n\n childrenIgnored(p: Path): boolean {\n const fullpath = p.fullpath() + '/'\n const relative = (p.relative() || '.') + '/'\n for (const m of this.relativeChildren) {\n if (m.match(relative)) return true\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath)) return true\n }\n return false\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/index.d.ts b/deps/npm/node_modules/glob/dist/commonjs/index.d.ts similarity index 97% rename from deps/npm/node_modules/glob/dist/mjs/index.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/index.d.ts index 669bf12e6d5916..048e584715b772 100644 --- a/deps/npm/node_modules/glob/dist/mjs/index.d.ts +++ b/deps/npm/node_modules/glob/dist/commonjs/index.d.ts @@ -68,6 +68,7 @@ export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTyp export { hasMagic } from './has-magic.js'; export type { IgnoreLike } from './ignore.js'; export type { MatchStream } from './walker.js'; +export type { Path, WalkOptionsWithFileTypesTrue, WalkOptionsWithFileTypesUnset, WalkOptions, FSOption, } from 'path-scurry'; export declare const glob: typeof glob_ & { glob: typeof glob_; globSync: typeof globSync; diff --git a/deps/npm/node_modules/glob/dist/mjs/index.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/index.d.ts.map similarity index 96% rename from deps/npm/node_modules/glob/dist/mjs/index.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/index.d.ts.map index c60290eb118a91..3e263fb5e2dbed 100644 --- a/deps/npm/node_modules/glob/dist/mjs/index.d.ts.map +++ b/deps/npm/node_modules/glob/dist/commonjs/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/index.js b/deps/npm/node_modules/glob/dist/commonjs/index.js similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/index.js rename to deps/npm/node_modules/glob/dist/commonjs/index.js diff --git a/deps/npm/node_modules/glob/dist/commonjs/index.js.map b/deps/npm/node_modules/glob/dist/commonjs/index.js.map new file mode 100644 index 00000000000000..e8c568acf837a5 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAS5C,uCAAgC;AAChC,iDAAyC;AAuBzC,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AALD,wCAKC;AAsBD,SAAgB,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AALD,gCAKC;AAqBD,SAAgB,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AALD,4BAKC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AALD,0CAKC;AAqBD,SAAgB,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AALD,kCAKC;AAED,iEAAiE;AACpD,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC5D,QAAA,WAAW,GAAG,eAAe,CAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,uCAA4C;AAAnC,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,qCAAgC;AAAvB,+FAAA,IAAI,OAAA;AAOb,+CAAyC;AAAhC,wGAAA,QAAQ,OAAA;AAWjB,oBAAoB;AAEP,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,UAAU;IACV,MAAM,EAAN,cAAM;IACN,cAAc;IACd,UAAU,EAAV,kBAAU;IACV,WAAW;IACX,OAAO,EAAP,eAAO;IACP,eAAe;IACf,WAAW,EAAX,mBAAW;IACX,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,uBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,QAAQ,EAAR,oBAAQ;CACT,CAAC,CAAA;AACF,YAAI,CAAC,IAAI,GAAG,YAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\nexport type {\n Path,\n WalkOptionsWithFileTypesTrue,\n WalkOptionsWithFileTypesUnset,\n WalkOptions,\n FSOption,\n} from 'path-scurry'\n\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync,\n globStream,\n stream,\n globStreamSync,\n streamSync,\n globIterate,\n iterate,\n globIterateSync,\n iterateSync,\n Glob,\n hasMagic,\n escape,\n unescape,\n})\nglob.glob = glob\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/commonjs/package.json b/deps/npm/node_modules/glob/dist/commonjs/package.json new file mode 100644 index 00000000000000..0292b9956f2e40 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts b/deps/npm/node_modules/glob/dist/commonjs/pattern.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/pattern.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/pattern.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/pattern.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/pattern.d.ts.map similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/pattern.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/pattern.d.ts.map diff --git a/deps/npm/node_modules/glob/dist/cjs/src/pattern.js b/deps/npm/node_modules/glob/dist/commonjs/pattern.js similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/pattern.js rename to deps/npm/node_modules/glob/dist/commonjs/pattern.js diff --git a/deps/npm/node_modules/glob/dist/commonjs/pattern.js.map b/deps/npm/node_modules/glob/dist/commonjs/pattern.js.map new file mode 100644 index 00000000000000..d14f76b335cbc0 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/pattern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n p0: '',\n p1: '',\n p2: string,\n p3: string,\n ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n readonly #patternList: PatternList\n readonly #globList: GlobList\n readonly #index: number\n readonly length: number\n readonly #platform: NodeJS.Platform\n #rest?: Pattern | null\n #globString?: string\n #isDrive?: boolean\n #isUNC?: boolean\n #isAbsolute?: boolean\n #followGlobstar: boolean = true\n\n constructor(\n patternList: MMPattern[],\n globList: string[],\n index: number,\n platform: NodeJS.Platform\n ) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list')\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list')\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths')\n }\n this.length = patternList.length\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range')\n }\n this.#patternList = patternList\n this.#globList = globList\n this.#index = index\n this.#platform = platform\n\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList\n const [g0, g1, g2, g3, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = [p0, p1, p2, p3, ''].join('/')\n const g = [g0, g1, g2, g3, ''].join('/')\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n } else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList\n const [g1, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = (p1 as string) + '/'\n const g = g1 + '/'\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n }\n }\n }\n\n /**\n * The first entry in the parsed list of patterns\n */\n pattern(): MMPattern {\n return this.#patternList[this.#index] as MMPattern\n }\n\n /**\n * true of if pattern() returns a string\n */\n isString(): boolean {\n return typeof this.#patternList[this.#index] === 'string'\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar(): boolean {\n return this.#patternList[this.#index] === GLOBSTAR\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp(): boolean {\n return this.#patternList[this.#index] instanceof RegExp\n }\n\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString(): string {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0\n ? this.isAbsolute()\n ? this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')))\n }\n\n /**\n * true if there are more pattern parts after this one\n */\n hasMore(): boolean {\n return this.length > this.#index + 1\n }\n\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest(): Pattern | null {\n if (this.#rest !== undefined) return this.#rest\n if (!this.hasMore()) return (this.#rest = null)\n this.#rest = new Pattern(\n this.#patternList,\n this.#globList,\n this.#index + 1,\n this.#platform\n )\n this.#rest.#isAbsolute = this.#isAbsolute\n this.#rest.#isUNC = this.#isUNC\n this.#rest.#isDrive = this.#isDrive\n return this.#rest\n }\n\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC(): boolean {\n const pl = this.#patternList\n return this.#isUNC !== undefined\n ? this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3])\n }\n\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive(): boolean {\n const pl = this.#patternList\n return this.#isDrive !== undefined\n ? this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]))\n }\n\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute(): boolean {\n const pl = this.#patternList\n return this.#isAbsolute !== undefined\n ? this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC())\n }\n\n /**\n * consume the root of the pattern, and return it\n */\n root(): string {\n const p = this.#patternList[0]\n return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n ? p\n : ''\n }\n\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar(): boolean {\n return !(\n this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar\n )\n }\n\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar(): boolean {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false\n this.#followGlobstar = false\n return true\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts b/deps/npm/node_modules/glob/dist/commonjs/processor.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/processor.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/processor.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/processor.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/processor.d.ts.map similarity index 96% rename from deps/npm/node_modules/glob/dist/mjs/processor.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/processor.d.ts.map index 75d92efe28cb1d..33a39b2a8be3bf 100644 --- a/deps/npm/node_modules/glob/dist/mjs/processor.d.ts.map +++ b/deps/npm/node_modules/glob/dist/commonjs/processor.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAwGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} \ No newline at end of file +{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAmGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/processor.js b/deps/npm/node_modules/glob/dist/commonjs/processor.js similarity index 95% rename from deps/npm/node_modules/glob/dist/cjs/src/processor.js rename to deps/npm/node_modules/glob/dist/commonjs/processor.js index bd067e9b9033dc..7d30a3b6650005 100644 --- a/deps/npm/node_modules/glob/dist/cjs/src/processor.js +++ b/deps/npm/node_modules/glob/dist/commonjs/processor.js @@ -138,9 +138,6 @@ class Processor { while (typeof (p = pattern.pattern()) === 'string' && (rest = pattern.rest())) { const c = t.resolve(p); - // we can be reasonably sure that .. is a readable dir - if (c.isUnknown() && p !== '..') - break; t = c; pattern = rest; changed = true; @@ -156,14 +153,10 @@ class Processor { // more strings for an unknown entry, // or a pattern starting with magic, mounted on t. if (typeof p === 'string') { - // must be final entry - if (!rest) { - const ifDir = p === '..' || p === '' || p === '.'; - this.matches.add(t.resolve(p), absolute, ifDir); - } - else { - this.subwalks.add(t, pattern); - } + // must not be final entry, otherwise we would have + // concatenated it earlier. + const ifDir = p === '..' || p === '' || p === '.'; + this.matches.add(t.resolve(p), absolute, ifDir); continue; } else if (p === minimatch_1.GLOBSTAR) { diff --git a/deps/npm/node_modules/glob/dist/commonjs/processor.js.map b/deps/npm/node_modules/glob/dist/commonjs/processor.js.map new file mode 100644 index 00000000000000..51b21438a9b746 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/processor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":";AAAA,qEAAqE;;;AAErE,yCAA8C;AAK9C;;GAEG;AACH,MAAa,cAAc;IACzB,KAAK,CAA0B;IAC/B,YAAY,QAAkC,IAAI,GAAG,EAAE;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IACD,IAAI;QACF,OAAO,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,SAAS,CAAC,MAAY,EAAE,OAAgB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,WAAW,CAAC,MAAY,EAAE,OAAgB;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;CACF;AAjBD,wCAiBC;AAED;;;;GAIG;AACH,MAAa,WAAW;IACtB,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAA;IACpC,GAAG,CAAC,MAAY,EAAE,QAAiB,EAAE,KAAc;QACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;IACjE,CAAC;IACD,yBAAyB;IACzB,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI;YACJ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACV,CAAC,CAAA;IACJ,CAAC;CACF;AAfD,kCAeC;AAED;;;GAGG;AACH,MAAa,QAAQ;IACnB,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAA;IACvC,GAAG,CAAC,MAAY,EAAE,OAAgB;QAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;YACxB,OAAM;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE;gBAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACnB;SACF;;YAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,GAAG,CAAC,MAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,qBAAqB;QACrB,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QACD,oBAAoB;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAc,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;IAC3D,CAAC;CACF;AA5BD,4BA4BC;AAED;;;;;GAKG;AACH,MAAa,SAAS;IACpB,cAAc,CAAgB;IAC9B,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IAC3B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;IACzB,QAAQ,CAAY;IACpB,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,IAAI,CAAgB;IAEpB,YAAY,IAAoB,EAAE,cAA+B;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc;YAClC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,IAAI,cAAc,EAAE,CAAA;IAC1B,CAAC;IAED,eAAe,CAAC,MAAY,EAAE,QAAmB;QAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,MAAM,aAAa,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;QAEvE,gEAAgE;QAChE,uCAAuC;QAEvC,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE;YACtC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAA;YAErE,kCAAkC;YAClC,IAAI,IAAI,EAAE;gBACR,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;oBAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAChB,CAAC,CAAC,IAAI,CACT,CAAA;gBACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;oBAChC,SAAQ;iBACT;qBAAM;oBACL,OAAO,GAAG,IAAI,CAAA;iBACf;aACF;YAED,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAAE,SAAQ;YAE1B,IAAI,CAAY,CAAA;YAChB,IAAI,IAAoB,CAAA;YACxB,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,OACE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,QAAQ;gBAC3C,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EACvB;gBACA,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACtB,CAAC,GAAG,CAAC,CAAA;gBACL,OAAO,GAAG,IAAI,CAAA;gBACd,OAAO,GAAG,IAAI,CAAA;aACf;YACD,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YACrB,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC;oBAAE,SAAQ;gBACvD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aAC5C;YAED,uDAAuD;YACvD,qCAAqC;YACrC,kDAAkD;YAClD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACzB,mDAAmD;gBACnD,2BAA2B;gBAC3B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAA;gBACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;gBAC/C,SAAQ;aACT;iBAAM,IAAI,CAAC,KAAK,oBAAQ,EAAE;gBACzB,wCAAwC;gBACxC,4CAA4C;gBAC5C,wDAAwD;gBACxD,4DAA4D;gBAC5D,gEAAgE;gBAChE,IACE,CAAC,CAAC,CAAC,cAAc,EAAE;oBACnB,IAAI,CAAC,MAAM;oBACX,OAAO,CAAC,mBAAmB,EAAE,EAC7B;oBACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC9B;gBACD,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAClD,iDAAiD;oBACjD,6CAA6C;oBAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAA;iBACvD;qBAAM;oBACL,IAAI,EAAE,KAAK,IAAI,EAAE;wBACf,wDAAwD;wBACxD,wDAAwD;wBACxD,qBAAqB;wBACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;wBACxB,oBAAoB;wBACpB,IAAI,CAAC,KAAK;4BAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;6BAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE;4BAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;yBAC7B;qBACF;iBACF;aACF;iBAAM,IAAI,CAAC,YAAY,MAAM,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aAC9B;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACtD,CAAC;IAED,0DAA0D;IAC1D,yCAAyC;IACzC,6CAA6C;IAC7C,2BAA2B;IAC3B,aAAa,CAAC,MAAY,EAAE,OAAe;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1C,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC5B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;gBAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,oBAAQ,EAAE;oBAClB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACjD;qBAAM,IAAI,CAAC,YAAY,MAAM,EAAE;oBAC9B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACzC;qBAAM;oBACL,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACzC;aACF;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,YAAY,CACV,CAAO,EACP,OAAgB,EAChB,IAAoB,EACpB,QAAiB;QAEjB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;aACrC;YACD,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,2DAA2D;gBAC3D,gEAAgE;gBAChE,+DAA+D;gBAC/D,iEAAiE;gBACjE,uDAAuD;gBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE;oBACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC9B;qBAAM,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC7B,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,EAAE;wBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;qBAC3B;yBAAM,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE;wBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;qBAC9B;iBACF;aACF;SACF;QACD,sDAAsD;QACtD,YAAY;QACZ,IAAI,IAAI,EAAE;YACR,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YACzB,IACE,OAAO,EAAE,KAAK,QAAQ;gBACtB,sCAAsC;gBACtC,EAAE,KAAK,IAAI;gBACX,EAAE,KAAK,EAAE;gBACT,EAAE,KAAK,GAAG,EACV;gBACA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;aAC9C;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE;gBACtB,qBAAqB;gBACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;gBACxB,oBAAoB;gBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;aAC5B;iBAAM,IAAI,EAAE,YAAY,MAAM,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;aAC9C;SACF;IACH,CAAC;IAED,UAAU,CACR,CAAO,EACP,CAAW,EACX,IAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAM;QAC3B,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;SACrC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;IAED,UAAU,CAAC,CAAO,EAAE,CAAS,EAAE,IAAoB,EAAE,QAAiB;QACpE,uBAAuB;QACvB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAM;QACzB,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;SACrC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;CACF;AA/ND,8BA+NC","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n store: Map>\n constructor(store: Map> = new Map()) {\n this.store = store\n }\n copy() {\n return new HasWalkedCache(new Map(this.store))\n }\n hasWalked(target: Path, pattern: Pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString())\n }\n storeWalked(target: Path, pattern: Pattern) {\n const fullpath = target.fullpath()\n const cached = this.store.get(fullpath)\n if (cached) cached.add(pattern.globString())\n else this.store.set(fullpath, new Set([pattern.globString()]))\n }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n store: Map = new Map()\n add(target: Path, absolute: boolean, ifDir: boolean) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n const current = this.store.get(target)\n this.store.set(target, current === undefined ? n : n & current)\n }\n // match, absolute, ifdir\n entries(): [Path, boolean, boolean][] {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ])\n }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n store: Map = new Map()\n add(target: Path, pattern: Pattern) {\n if (!target.canReaddir()) {\n return\n }\n const subs = this.store.get(target)\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern)\n }\n } else this.store.set(target, [pattern])\n }\n get(target: Path): Pattern[] {\n const subs = this.store.get(target)\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path')\n }\n /* c8 ignore stop */\n return subs\n }\n entries(): [Path, Pattern[]][] {\n return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n }\n keys(): Path[] {\n return [...this.store.keys()].filter(t => t.canReaddir())\n }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n hasWalkedCache: HasWalkedCache\n matches = new MatchRecord()\n subwalks = new SubWalks()\n patterns?: Pattern[]\n follow: boolean\n dot: boolean\n opts: GlobWalkerOpts\n\n constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n this.opts = opts\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.hasWalkedCache = hasWalkedCache\n ? hasWalkedCache.copy()\n : new HasWalkedCache()\n }\n\n processPatterns(target: Path, patterns: Pattern[]) {\n this.patterns = patterns\n const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern)\n\n const root = pattern.root()\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n // start absolute patterns at root\n if (root) {\n t = t.resolve(\n root === '/' && this.opts.root !== undefined\n ? this.opts.root\n : root\n )\n const rest = pattern.rest()\n if (!rest) {\n this.matches.add(t, true, false)\n continue\n } else {\n pattern = rest\n }\n }\n\n if (t.isENOENT()) continue\n\n let p: MMPattern\n let rest: Pattern | null\n let changed = false\n while (\n typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())\n ) {\n const c = t.resolve(p)\n t = c\n pattern = rest\n changed = true\n }\n p = pattern.pattern()\n rest = pattern.rest()\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n this.hasWalkedCache.storeWalked(t, pattern)\n }\n\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must not be final entry, otherwise we would have\n // concatenated it earlier.\n const ifDir = p === '..' || p === '' || p === '.'\n this.matches.add(t.resolve(p), absolute, ifDir)\n continue\n } else if (p === GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (\n !t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()\n ) {\n this.subwalks.add(t, pattern)\n }\n const rp = rest?.pattern()\n const rrest = rest?.rest()\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.')\n } else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t\n /* c8 ignore stop */\n if (!rrest) this.matches.add(tp, absolute, true)\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest)\n }\n }\n }\n } else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern)\n }\n }\n\n return this\n }\n\n subwalkTargets(): Path[] {\n return this.subwalks.keys()\n }\n\n child() {\n return new Processor(this.opts, this.hasWalkedCache)\n }\n\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent: Path, entries: Path[]): Processor {\n const patterns = this.subwalks.get(parent)\n // put matches and entry walks into the results processor\n const results = this.child()\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute()\n const p = pattern.pattern()\n const rest = pattern.rest()\n if (p === GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute)\n } else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute)\n } else {\n results.testString(e, p, rest, absolute)\n }\n }\n }\n return results\n }\n\n testGlobstar(\n e: Path,\n pattern: Pattern,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false)\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern)\n } else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest)\n } else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern)\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern()\n if (\n typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.'\n ) {\n this.testString(e, rp, rest.rest(), absolute)\n } else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e\n /* c8 ignore stop */\n this.subwalks.add(ep, rest)\n } else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute)\n }\n }\n }\n\n testRegExp(\n e: Path,\n p: MMRegExp,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (!p.test(e.name)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n\n testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n // should never happen?\n if (!e.isNamed(p)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts b/deps/npm/node_modules/glob/dist/commonjs/walker.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/walker.d.ts rename to deps/npm/node_modules/glob/dist/commonjs/walker.d.ts diff --git a/deps/npm/node_modules/glob/dist/mjs/walker.d.ts.map b/deps/npm/node_modules/glob/dist/commonjs/walker.d.ts.map similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/walker.d.ts.map rename to deps/npm/node_modules/glob/dist/commonjs/walker.d.ts.map diff --git a/deps/npm/node_modules/glob/dist/cjs/src/walker.js b/deps/npm/node_modules/glob/dist/commonjs/walker.js similarity index 100% rename from deps/npm/node_modules/glob/dist/cjs/src/walker.js rename to deps/npm/node_modules/glob/dist/commonjs/walker.js diff --git a/deps/npm/node_modules/glob/dist/commonjs/walker.js.map b/deps/npm/node_modules/glob/dist/commonjs/walker.js.map new file mode 100644 index 00000000000000..ad1cd5f8379893 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/commonjs/walker.js.map @@ -0,0 +1 @@ +{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed? that'd speed\n// things up a lot. Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n absolute?: boolean\n allowWindowsEscape?: boolean\n cwd?: string | URL\n dot?: boolean\n dotRelative?: boolean\n follow?: boolean\n ignore?: string | string[] | IgnoreLike\n mark?: boolean\n matchBase?: boolean\n // Note: maxDepth here means \"maximum actual Path.depth()\",\n // not \"maximum depth beyond cwd\"\n maxDepth?: number\n nobrace?: boolean\n nocase?: boolean\n nodir?: boolean\n noext?: boolean\n noglobstar?: boolean\n platform?: NodeJS.Platform\n posix?: boolean\n realpath?: boolean\n root?: string\n stat?: boolean\n signal?: AbortSignal\n windowsPathsNoEscape?: boolean\n withFileTypes?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n withFileTypes?: undefined\n}\n\nexport type Result = O extends GWOFileTypesTrue\n ? Path\n : O extends GWOFileTypesFalse\n ? string\n : O extends GWOFileTypesUnset\n ? string\n : Path | string\n\nexport type Matches = O extends GWOFileTypesTrue\n ? Set\n : O extends GWOFileTypesFalse\n ? Set\n : O extends GWOFileTypesUnset\n ? Set\n : Set\n\nexport type MatchStream =\n O extends GWOFileTypesTrue\n ? Minipass\n : O extends GWOFileTypesFalse\n ? Minipass\n : O extends GWOFileTypesUnset\n ? Minipass\n : Minipass\n\nconst makeIgnore = (\n ignore: string | string[] | IgnoreLike,\n opts: GlobWalkerOpts\n): IgnoreLike =>\n typeof ignore === 'string'\n ? new Ignore([ignore], opts)\n : Array.isArray(ignore)\n ? new Ignore(ignore, opts)\n : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil {\n path: Path\n patterns: Pattern[]\n opts: O\n seen: Set = new Set()\n paused: boolean = false\n aborted: boolean = false\n #onResume: (() => any)[] = []\n #ignore?: IgnoreLike\n #sep: '\\\\' | '/'\n signal?: AbortSignal\n maxDepth: number\n\n constructor(patterns: Pattern[], path: Path, opts: O)\n constructor(patterns: Pattern[], path: Path, opts: O) {\n this.patterns = patterns\n this.path = path\n this.opts = opts\n this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n if (opts.ignore) {\n this.#ignore = makeIgnore(opts.ignore, opts)\n }\n // ignore, always set with maxDepth, but it's optional on the\n // GlobOptions type\n /* c8 ignore start */\n this.maxDepth = opts.maxDepth || Infinity\n /* c8 ignore stop */\n if (opts.signal) {\n this.signal = opts.signal\n this.signal.addEventListener('abort', () => {\n this.#onResume.length = 0\n })\n }\n }\n\n #ignored(path: Path): boolean {\n return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n }\n #childrenIgnored(path: Path): boolean {\n return !!this.#ignore?.childrenIgnored?.(path)\n }\n\n // backpressure mechanism\n pause() {\n this.paused = true\n }\n resume() {\n /* c8 ignore start */\n if (this.signal?.aborted) return\n /* c8 ignore stop */\n this.paused = false\n let fn: (() => any) | undefined = undefined\n while (!this.paused && (fn = this.#onResume.shift())) {\n fn()\n }\n }\n onResume(fn: () => any) {\n if (this.signal?.aborted) return\n /* c8 ignore start */\n if (!this.paused) {\n fn()\n } else {\n /* c8 ignore stop */\n this.#onResume.push(fn)\n }\n }\n\n // do the requisite realpath/stat checking, and return the path\n // to add or undefined to filter it out.\n async matchCheck(e: Path, ifDir: boolean): Promise {\n if (ifDir && this.opts.nodir) return undefined\n let rpc: Path | undefined\n if (this.opts.realpath) {\n rpc = e.realpathCached() || (await e.realpath())\n if (!rpc) return undefined\n e = rpc\n }\n const needStat = e.isUnknown() || this.opts.stat\n return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir)\n }\n\n matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n return e &&\n (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n (!ifDir || e.canReaddir()) &&\n (!this.opts.nodir || !e.isDirectory()) &&\n !this.#ignored(e)\n ? e\n : undefined\n }\n\n matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n if (ifDir && this.opts.nodir) return undefined\n let rpc: Path | undefined\n if (this.opts.realpath) {\n rpc = e.realpathCached() || e.realpathSync()\n if (!rpc) return undefined\n e = rpc\n }\n const needStat = e.isUnknown() || this.opts.stat\n return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir)\n }\n\n abstract matchEmit(p: Result): void\n abstract matchEmit(p: string | Path): void\n\n matchFinish(e: Path, absolute: boolean) {\n if (this.#ignored(e)) return\n const abs =\n this.opts.absolute === undefined ? absolute : this.opts.absolute\n this.seen.add(e)\n const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n // ok, we have what we need!\n if (this.opts.withFileTypes) {\n this.matchEmit(e)\n } else if (abs) {\n const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n this.matchEmit(abs + mark)\n } else {\n const rel = this.opts.posix ? e.relativePosix() : e.relative()\n const pre =\n this.opts.dotRelative && !rel.startsWith('..' + this.#sep)\n ? '.' + this.#sep\n : ''\n this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n }\n }\n\n async match(e: Path, absolute: boolean, ifDir: boolean): Promise {\n const p = await this.matchCheck(e, ifDir)\n if (p) this.matchFinish(p, absolute)\n }\n\n matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n const p = this.matchCheckSync(e, ifDir)\n if (p) this.matchFinish(p, absolute)\n }\n\n walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n /* c8 ignore start */\n if (this.signal?.aborted) cb()\n /* c8 ignore stop */\n this.walkCB2(target, patterns, new Processor(this.opts), cb)\n }\n\n walkCB2(\n target: Path,\n patterns: Pattern[],\n processor: Processor,\n cb: () => any\n ) {\n if (this.#childrenIgnored(target)) return cb()\n if (this.signal?.aborted) cb()\n if (this.paused) {\n this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n return\n }\n processor.processPatterns(target, patterns)\n\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n tasks++\n this.match(m, absolute, ifDir).then(() => next())\n }\n\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue\n }\n tasks++\n const childrenCached = t.readdirCached()\n if (t.calledReaddir())\n this.walkCB3(t, childrenCached, processor, next)\n else {\n t.readdirCB(\n (_, entries) => this.walkCB3(t, entries, processor, next),\n true\n )\n }\n }\n\n next()\n }\n\n walkCB3(\n target: Path,\n entries: Path[],\n processor: Processor,\n cb: () => any\n ) {\n processor = processor.filterEntries(target, entries)\n\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n tasks++\n this.match(m, absolute, ifDir).then(() => next())\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++\n this.walkCB2(target, patterns, processor.child(), next)\n }\n\n next()\n }\n\n walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n /* c8 ignore start */\n if (this.signal?.aborted) cb()\n /* c8 ignore stop */\n this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n }\n\n walkCB2Sync(\n target: Path,\n patterns: Pattern[],\n processor: Processor,\n cb: () => any\n ) {\n if (this.#childrenIgnored(target)) return cb()\n if (this.signal?.aborted) cb()\n if (this.paused) {\n this.onResume(() =>\n this.walkCB2Sync(target, patterns, processor, cb)\n )\n return\n }\n processor.processPatterns(target, patterns)\n\n // done processing. all of the above is sync, can be abstracted out.\n // subwalks is a map of paths to the entry filters they need\n // matches is a map of paths to [absolute, ifDir] tuples.\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n this.matchSync(m, absolute, ifDir)\n }\n\n for (const t of processor.subwalkTargets()) {\n if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n continue\n }\n tasks++\n const children = t.readdirSync()\n this.walkCB3Sync(t, children, processor, next)\n }\n\n next()\n }\n\n walkCB3Sync(\n target: Path,\n entries: Path[],\n processor: Processor,\n cb: () => any\n ) {\n processor = processor.filterEntries(target, entries)\n\n let tasks = 1\n const next = () => {\n if (--tasks === 0) cb()\n }\n\n for (const [m, absolute, ifDir] of processor.matches.entries()) {\n if (this.#ignored(m)) continue\n this.matchSync(m, absolute, ifDir)\n }\n for (const [target, patterns] of processor.subwalks.entries()) {\n tasks++\n this.walkCB2Sync(target, patterns, processor.child(), next)\n }\n\n next()\n }\n}\n\nexport class GlobWalker<\n O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n matches: O extends GWOFileTypesTrue\n ? Set\n : O extends GWOFileTypesFalse\n ? Set\n : O extends GWOFileTypesUnset\n ? Set\n : Set\n\n constructor(patterns: Pattern[], path: Path, opts: O) {\n super(patterns, path, opts)\n this.matches = new Set() as Matches\n }\n\n matchEmit(e: Result): void\n matchEmit(e: Path | string): void {\n this.matches.add(e)\n }\n\n async walk(): Promise> {\n if (this.signal?.aborted) throw this.signal.reason\n if (this.path.isUnknown()) {\n await this.path.lstat()\n }\n await new Promise((res, rej) => {\n this.walkCB(this.path, this.patterns, () => {\n if (this.signal?.aborted) {\n rej(this.signal.reason)\n } else {\n res(this.matches)\n }\n })\n })\n return this.matches\n }\n\n walkSync(): Matches {\n if (this.signal?.aborted) throw this.signal.reason\n if (this.path.isUnknown()) {\n this.path.lstatSync()\n }\n // nothing for the callback to do, because this never pauses\n this.walkCBSync(this.path, this.patterns, () => {\n if (this.signal?.aborted) throw this.signal.reason\n })\n return this.matches\n }\n}\n\nexport class GlobStream<\n O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n results: O extends GWOFileTypesTrue\n ? Minipass\n : O extends GWOFileTypesFalse\n ? Minipass\n : O extends GWOFileTypesUnset\n ? Minipass\n : Minipass\n\n constructor(patterns: Pattern[], path: Path, opts: O) {\n super(patterns, path, opts)\n this.results = new Minipass({\n signal: this.signal,\n objectMode: true,\n }) as MatchStream\n this.results.on('drain', () => this.resume())\n this.results.on('resume', () => this.resume())\n }\n\n matchEmit(e: Result): void\n matchEmit(e: Path | string): void {\n this.results.write(e)\n if (!this.results.flowing) this.pause()\n }\n\n stream(): MatchStream {\n const target = this.path\n if (target.isUnknown()) {\n target.lstat().then(() => {\n this.walkCB(target, this.patterns, () => this.results.end())\n })\n } else {\n this.walkCB(target, this.patterns, () => this.results.end())\n }\n return this.results\n }\n\n streamSync(): MatchStream {\n if (this.path.isUnknown()) {\n this.path.lstatSync()\n }\n this.walkCBSync(this.path, this.patterns, () => this.results.end())\n return this.results\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/esm/bin.d.mts b/deps/npm/node_modules/glob/dist/esm/bin.d.mts new file mode 100644 index 00000000000000..77298e47708175 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/bin.d.mts @@ -0,0 +1,3 @@ +#!/usr/bin/env node +export {}; +//# sourceMappingURL=bin.d.mts.map \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/esm/bin.d.mts.map b/deps/npm/node_modules/glob/dist/esm/bin.d.mts.map new file mode 100644 index 00000000000000..ec64bdda861bc9 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/bin.d.mts.map @@ -0,0 +1 @@ +{"version":3,"file":"bin.d.mts","sourceRoot":"","sources":["../../src/bin.mts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/bin.js b/deps/npm/node_modules/glob/dist/esm/bin.mjs similarity index 91% rename from deps/npm/node_modules/glob/dist/cjs/src/bin.js rename to deps/npm/node_modules/glob/dist/esm/bin.mjs index 4a8a88f2734d2e..9d57d4a943b26b 100755 --- a/deps/npm/node_modules/glob/dist/cjs/src/bin.js +++ b/deps/npm/node_modules/glob/dist/esm/bin.mjs @@ -1,16 +1,19 @@ #!/usr/bin/env node -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const foreground_child_1 = require("foreground-child"); -const fs_1 = require("fs"); -const jackspeak_1 = require("jackspeak"); -const package_json_1 = require("../package.json"); -const index_js_1 = require("./index.js"); -const j = (0, jackspeak_1.jack)({ +import { foregroundChild } from 'foreground-child'; +import { existsSync } from 'fs'; +import { readFile } from 'fs/promises'; +import { jack } from 'jackspeak'; +import { join } from 'path'; +import { fileURLToPath } from 'url'; +import { globStream } from './index.js'; +/* c8 ignore start */ +const { version } = JSON.parse(await readFile(fileURLToPath(new URL('../../package.json', import.meta.url)), 'utf8').catch(() => readFile(fileURLToPath(new URL('../../package.json', import.meta.url)), 'utf8'))); +/* c8 ignore stop */ +const j = jack({ usage: 'glob [options] [ [ ...]]', }) .description(` - Glob v${package_json_1.version} + Glob v${version} Expand the positional glob expression arguments into any matching file system paths found. @@ -228,9 +231,11 @@ try { positionals.push(values.default); const patterns = values.all ? positionals - : positionals.filter(p => !(0, fs_1.existsSync)(p)); - const matches = values.all ? [] : positionals.filter(p => (0, fs_1.existsSync)(p)); - const stream = (0, index_js_1.globStream)(patterns, { + : positionals.filter(p => !existsSync(p)); + const matches = values.all + ? [] + : positionals.filter(p => existsSync(p)).map(p => join(p)); + const stream = globStream(patterns, { absolute: values.absolute, cwd: values.cwd, dot: values.dot, @@ -259,7 +264,7 @@ try { } else { stream.on('data', f => matches.push(f)); - stream.on('end', () => (0, foreground_child_1.foregroundChild)(cmd, matches, { shell: true })); + stream.on('end', () => foregroundChild(cmd, matches, { shell: true })); } } catch (e) { @@ -267,4 +272,4 @@ catch (e) { console.error(e instanceof Error ? e.message : String(e)); process.exit(1); } -//# sourceMappingURL=bin.js.map \ No newline at end of file +//# sourceMappingURL=bin.mjs.map \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/esm/bin.mjs.map b/deps/npm/node_modules/glob/dist/esm/bin.mjs.map new file mode 100644 index 00000000000000..bcf08f762f710c --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/bin.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"bin.mjs","sourceRoot":"","sources":["../../src/bin.mts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport { foregroundChild } from 'foreground-child'\nimport { existsSync } from 'fs'\nimport { readFile } from 'fs/promises'\nimport { jack } from 'jackspeak'\nimport { join } from 'path'\nimport { fileURLToPath } from 'url'\nimport { globStream } from './index.js'\n\n/* c8 ignore start */\nconst { version } = JSON.parse(\n await readFile(\n fileURLToPath(new URL('../../package.json', import.meta.url)),\n 'utf8'\n ).catch(() =>\n readFile(\n fileURLToPath(new URL('../../package.json', import.meta.url)),\n 'utf8'\n )\n )\n) as { version: string }\n/* c8 ignore stop */\n\nconst j = jack({\n usage: 'glob [options] [ [ ...]]',\n})\n .description(\n `\n Glob v${version}\n\n Expand the positional glob expression arguments into any matching file\n system paths found.\n `\n )\n .opt({\n cmd: {\n short: 'c',\n hint: 'command',\n description: `Run the command provided, passing the glob expression\n matches as arguments.`,\n },\n })\n .opt({\n default: {\n short: 'p',\n hint: 'pattern',\n description: `If no positional arguments are provided, glob will use\n this pattern`,\n },\n })\n .flag({\n all: {\n short: 'A',\n description: `By default, the glob cli command will not expand any\n arguments that are an exact match to a file on disk.\n\n This prevents double-expanding, in case the shell expands\n an argument whose filename is a glob expression.\n\n For example, if 'app/*.ts' would match 'app/[id].ts', then\n on Windows powershell or cmd.exe, 'glob app/*.ts' will\n expand to 'app/[id].ts', as expected. However, in posix\n shells such as bash or zsh, the shell will first expand\n 'app/*.ts' to a list of filenames. Then glob will look\n for a file matching 'app/[id].ts' (ie, 'app/i.ts' or\n 'app/d.ts'), which is unexpected.\n\n Setting '--all' prevents this behavior, causing glob\n to treat ALL patterns as glob expressions to be expanded,\n even if they are an exact match to a file on disk.\n\n When setting this option, be sure to enquote arguments\n so that the shell will not expand them prior to passing\n them to the glob command process.\n `,\n },\n absolute: {\n short: 'a',\n description: 'Expand to absolute paths',\n },\n 'dot-relative': {\n short: 'd',\n description: `Prepend './' on relative matches`,\n },\n mark: {\n short: 'm',\n description: `Append a / on any directories matched`,\n },\n posix: {\n short: 'x',\n description: `Always resolve to posix style paths, using '/' as the\n directory separator, even on Windows. Drive letter\n absolute matches on Windows will be expanded to their\n full resolved UNC maths, eg instead of 'C:\\\\foo\\\\bar',\n it will expand to '//?/C:/foo/bar'.\n `,\n },\n\n follow: {\n short: 'f',\n description: `Follow symlinked directories when expanding '**'`,\n },\n realpath: {\n short: 'R',\n description: `Call 'fs.realpath' on all of the results. In the case\n of an entry that cannot be resolved, the entry is\n omitted. This incurs a slight performance penalty, of\n course, because of the added system calls.`,\n },\n stat: {\n short: 's',\n description: `Call 'fs.lstat' on all entries, whether required or not\n to determine if it's a valid match.`,\n },\n 'match-base': {\n short: 'b',\n description: `Perform a basename-only match if the pattern does not\n contain any slash characters. That is, '*.js' would be\n treated as equivalent to '**/*.js', matching js files\n in all directories.\n `,\n },\n\n dot: {\n description: `Allow patterns to match files/directories that start\n with '.', even if the pattern does not start with '.'\n `,\n },\n nobrace: {\n description: 'Do not expand {...} patterns',\n },\n nocase: {\n description: `Perform a case-insensitive match. This defaults to\n 'true' on macOS and Windows platforms, and false on\n all others.\n\n Note: 'nocase' should only be explicitly set when it is\n known that the filesystem's case sensitivity differs\n from the platform default. If set 'true' on\n case-insensitive file systems, then the walk may return\n more or less results than expected.\n `,\n },\n nodir: {\n description: `Do not match directories, only files.\n\n Note: to *only* match directories, append a '/' at the\n end of the pattern.\n `,\n },\n noext: {\n description: `Do not expand extglob patterns, such as '+(a|b)'`,\n },\n noglobstar: {\n description: `Do not expand '**' against multiple path portions.\n Ie, treat it as a normal '*' instead.`,\n },\n 'windows-path-no-escape': {\n description: `Use '\\\\' as a path separator *only*, and *never* as an\n escape character. If set, all '\\\\' characters are\n replaced with '/' in the pattern.`,\n },\n })\n .num({\n 'max-depth': {\n short: 'D',\n description: `Maximum depth to traverse from the current\n working directory`,\n },\n })\n .opt({\n cwd: {\n short: 'C',\n description: 'Current working directory to execute/match in',\n default: process.cwd(),\n },\n root: {\n short: 'r',\n description: `A string path resolved against the 'cwd', which is\n used as the starting point for absolute patterns that\n start with '/' (but not drive letters or UNC paths\n on Windows).\n\n Note that this *doesn't* necessarily limit the walk to\n the 'root' directory, and doesn't affect the cwd\n starting point for non-absolute patterns. A pattern\n containing '..' will still be able to traverse out of\n the root directory, if it is not an actual root directory\n on the filesystem, and any non-absolute patterns will\n still be matched in the 'cwd'.\n\n To start absolute and non-absolute patterns in the same\n path, you can use '--root=' to set it to the empty\n string. However, be aware that on Windows systems, a\n pattern like 'x:/*' or '//host/share/*' will *always*\n start in the 'x:/' or '//host/share/' directory,\n regardless of the --root setting.\n `,\n },\n platform: {\n description: `Defaults to the value of 'process.platform' if\n available, or 'linux' if not. Setting --platform=win32\n on non-Windows systems may cause strange behavior!`,\n validate: v =>\n new Set([\n 'aix',\n 'android',\n 'darwin',\n 'freebsd',\n 'haiku',\n 'linux',\n 'openbsd',\n 'sunos',\n 'win32',\n 'cygwin',\n 'netbsd',\n ]).has(v),\n },\n })\n .optList({\n ignore: {\n short: 'i',\n description: `Glob patterns to ignore`,\n },\n })\n .flag({\n debug: {\n short: 'v',\n description: `Output a huge amount of noisy debug information about\n patterns as they are parsed and used to match files.`,\n },\n })\n .flag({\n help: {\n short: 'h',\n description: 'Show this usage information',\n },\n })\n\ntry {\n const { positionals, values } = j.parse()\n if (values.help) {\n console.log(j.usage())\n process.exit(0)\n }\n if (positionals.length === 0 && !values.default)\n throw 'No patterns provided'\n if (positionals.length === 0 && values.default)\n positionals.push(values.default)\n const patterns = values.all\n ? positionals\n : positionals.filter(p => !existsSync(p))\n const matches = values.all\n ? []\n : positionals.filter(p => existsSync(p)).map(p => join(p))\n const stream = globStream(patterns, {\n absolute: values.absolute,\n cwd: values.cwd,\n dot: values.dot,\n dotRelative: values['dot-relative'],\n follow: values.follow,\n ignore: values.ignore,\n mark: values.mark,\n matchBase: values['match-base'],\n maxDepth: values['max-depth'],\n nobrace: values.nobrace,\n nocase: values.nocase,\n nodir: values.nodir,\n noext: values.noext,\n noglobstar: values.noglobstar,\n platform: values.platform as undefined | NodeJS.Platform,\n realpath: values.realpath,\n root: values.root,\n stat: values.stat,\n debug: values.debug,\n posix: values.posix,\n })\n\n const cmd = values.cmd\n if (!cmd) {\n matches.forEach(m => console.log(m))\n stream.on('data', f => console.log(f))\n } else {\n stream.on('data', f => matches.push(f))\n stream.on('end', () => foregroundChild(cmd, matches, { shell: true }))\n }\n} catch (e) {\n console.error(j.usage())\n console.error(e instanceof Error ? e.message : String(e))\n process.exit(1)\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/glob.d.ts b/deps/npm/node_modules/glob/dist/esm/glob.d.ts similarity index 99% rename from deps/npm/node_modules/glob/dist/mjs/glob.d.ts rename to deps/npm/node_modules/glob/dist/esm/glob.d.ts index a8b3da7722b652..55674de4490de9 100644 --- a/deps/npm/node_modules/glob/dist/mjs/glob.d.ts +++ b/deps/npm/node_modules/glob/dist/esm/glob.d.ts @@ -1,4 +1,4 @@ -/// +/// import { Minimatch } from 'minimatch'; import { Minipass } from 'minipass'; import { FSOption, Path, PathScurry } from 'path-scurry'; diff --git a/deps/npm/node_modules/glob/dist/esm/glob.d.ts.map b/deps/npm/node_modules/glob/dist/esm/glob.d.ts.map new file mode 100644 index 00000000000000..5216438a25086b --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/glob.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/glob.js b/deps/npm/node_modules/glob/dist/esm/glob.js similarity index 97% rename from deps/npm/node_modules/glob/dist/mjs/glob.js rename to deps/npm/node_modules/glob/dist/esm/glob.js index 8ff26154427be9..2a2b15d3685b88 100644 --- a/deps/npm/node_modules/glob/dist/mjs/glob.js +++ b/deps/npm/node_modules/glob/dist/esm/glob.js @@ -159,7 +159,12 @@ export class Glob { return set; }, [[], []]); this.patterns = matchSet.map((set, i) => { - return new Pattern(set, globParts[i], 0, this.platform); + const g = globParts[i]; + /* c8 ignore start */ + if (!g) + throw new Error('invalid pattern object'); + /* c8 ignore stop */ + return new Pattern(set, g, 0, this.platform); }); } async walk() { diff --git a/deps/npm/node_modules/glob/dist/esm/glob.js.map b/deps/npm/node_modules/glob/dist/esm/glob.js.map new file mode 100644 index 00000000000000..d08e810250ec64 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/glob.js.map @@ -0,0 +1 @@ +{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n FSOption,\n Path,\n PathScurry,\n PathScurryDarwin,\n PathScurryPosix,\n PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean\n\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean\n\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL\n\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean\n\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean\n\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean\n\n /**\n * string or string[], or an object with `ignore` and `ignoreChildren`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike\n\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean\n\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean\n\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean\n\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number\n\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean\n\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean\n\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean\n\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean\n\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean\n\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform\n\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean\n\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string\n\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry\n\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean\n\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal\n\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean\n\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean\n\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption\n\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean\n\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true\n // string options not relevant if returning Path objects.\n absolute?: undefined\n mark?: undefined\n posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n ? Path\n : Opts extends GlobOptionsWithFileTypesFalse\n ? string\n : Opts extends GlobOptionsWithFileTypesUnset\n ? string\n : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n ? true\n : Opts extends GlobOptionsWithFileTypesFalse\n ? false\n : Opts extends GlobOptionsWithFileTypesUnset\n ? false\n : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n absolute?: boolean\n cwd: string\n root?: string\n dot: boolean\n dotRelative: boolean\n follow: boolean\n ignore?: string | string[] | IgnoreLike\n magicalBraces: boolean\n mark?: boolean\n matchBase: boolean\n maxDepth: number\n nobrace: boolean\n nocase: boolean\n nodir: boolean\n noext: boolean\n noglobstar: boolean\n pattern: string[]\n platform: NodeJS.Platform\n realpath: boolean\n scurry: PathScurry\n stat: boolean\n signal?: AbortSignal\n windowsPathsNoEscape: boolean\n withFileTypes: FileTypes\n\n /**\n * The options provided to the constructor.\n */\n opts: Opts\n\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[]\n\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts) {\n /* c8 ignore start */\n if (!opts) throw new TypeError('glob options required')\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes as FileTypes\n this.signal = opts.signal\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.dotRelative = !!opts.dotRelative\n this.nodir = !!opts.nodir\n this.mark = !!opts.mark\n if (!opts.cwd) {\n this.cwd = ''\n } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = fileURLToPath(opts.cwd)\n }\n this.cwd = opts.cwd || ''\n this.root = opts.root\n this.magicalBraces = !!opts.magicalBraces\n this.nobrace = !!opts.nobrace\n this.noext = !!opts.noext\n this.realpath = !!opts.realpath\n this.absolute = opts.absolute\n\n this.noglobstar = !!opts.noglobstar\n this.matchBase = !!opts.matchBase\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n this.stat = !!opts.stat\n this.ignore = opts.ignore\n\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true')\n }\n\n if (typeof pattern === 'string') {\n pattern = [pattern]\n }\n\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n (opts as GlobOptions).allowWindowsEscape === false\n\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n }\n\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar')\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n }\n\n this.pattern = pattern\n\n this.platform = opts.platform || defaultPlatform\n this.opts = { ...opts, platform: this.platform }\n if (opts.scurry) {\n this.scurry = opts.scurry\n if (\n opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase\n ) {\n throw new Error('nocase option contradicts provided scurry option')\n }\n } else {\n const Scurry =\n opts.platform === 'win32'\n ? PathScurryWin32\n : opts.platform === 'darwin'\n ? PathScurryDarwin\n : opts.platform\n ? PathScurryPosix\n : PathScurry\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n })\n }\n this.nocase = this.scurry.nocase\n\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly =\n this.platform === 'darwin' || this.platform === 'win32'\n\n const mmo: MinimatchOptions = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n }\n\n const mms = this.pattern.map(p => new Minimatch(p, mmo))\n const [matchSet, globParts] = mms.reduce(\n (set: [MatchSet, GlobParts], m) => {\n set[0].push(...m.set)\n set[1].push(...m.globParts)\n return set\n },\n [[], []]\n )\n this.patterns = matchSet.map((set, i) => {\n const g = globParts[i]\n /* c8 ignore start */\n if (!g) throw new Error('invalid pattern object')\n /* c8 ignore stop */\n return new Pattern(set, g, 0, this.platform)\n })\n }\n\n /**\n * Returns a Promise that resolves to the results array.\n */\n async walk(): Promise>\n async walk(): Promise<(string | Path)[]> {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walk()),\n ]\n }\n\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results\n walkSync(): (string | Path)[] {\n return [\n ...new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walkSync(),\n ]\n }\n\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass, Result>\n stream(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).stream()\n }\n\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass, Result>\n streamSync(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).streamSync()\n }\n\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator, void, void> {\n return this.streamSync()[Symbol.iterator]()\n }\n [Symbol.iterator]() {\n return this.iterateSync()\n }\n\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator, void, void> {\n return this.stream()[Symbol.asyncIterator]()\n }\n [Symbol.asyncIterator]() {\n return this.iterate()\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/has-magic.d.ts b/deps/npm/node_modules/glob/dist/esm/has-magic.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/has-magic.d.ts rename to deps/npm/node_modules/glob/dist/esm/has-magic.d.ts diff --git a/deps/npm/node_modules/glob/dist/esm/has-magic.d.ts.map b/deps/npm/node_modules/glob/dist/esm/has-magic.d.ts.map new file mode 100644 index 00000000000000..b24dd4ec47e0bb --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/has-magic.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/has-magic.js b/deps/npm/node_modules/glob/dist/esm/has-magic.js similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/has-magic.js rename to deps/npm/node_modules/glob/dist/esm/has-magic.js diff --git a/deps/npm/node_modules/glob/dist/mjs/has-magic.js.map b/deps/npm/node_modules/glob/dist/esm/has-magic.js.map similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/has-magic.js.map rename to deps/npm/node_modules/glob/dist/esm/has-magic.js.map diff --git a/deps/npm/node_modules/glob/dist/mjs/ignore.d.ts b/deps/npm/node_modules/glob/dist/esm/ignore.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/ignore.d.ts rename to deps/npm/node_modules/glob/dist/esm/ignore.d.ts diff --git a/deps/npm/node_modules/glob/dist/esm/ignore.d.ts.map b/deps/npm/node_modules/glob/dist/esm/ignore.d.ts.map new file mode 100644 index 00000000000000..be7831769d33ed --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/ignore.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAsDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/ignore.js b/deps/npm/node_modules/glob/dist/esm/ignore.js similarity index 93% rename from deps/npm/node_modules/glob/dist/mjs/ignore.js rename to deps/npm/node_modules/glob/dist/esm/ignore.js index 2dbaa16a11460e..e8cbaf96b3a809 100644 --- a/deps/npm/node_modules/glob/dist/mjs/ignore.js +++ b/deps/npm/node_modules/glob/dist/esm/ignore.js @@ -50,6 +50,11 @@ export class Ignore { for (let i = 0; i < mm.set.length; i++) { const parsed = mm.set[i]; const globParts = mm.globParts[i]; + /* c8 ignore start */ + if (!parsed || !globParts) { + throw new Error('invalid pattern object'); + } + /* c8 ignore stop */ const p = new Pattern(parsed, globParts, 0, platform); const m = new Minimatch(p.globString(), mmopts); const children = globParts[globParts.length - 1] === '**'; @@ -91,7 +96,7 @@ export class Ignore { } for (const m of this.absoluteChildren) { if (m.match(fullpath)) - true; + return true; } return false; } diff --git a/deps/npm/node_modules/glob/dist/esm/ignore.js.map b/deps/npm/node_modules/glob/dist/esm/ignore.js.map new file mode 100644 index 00000000000000..736e4466180177 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/ignore.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n ignored?: (p: Path) => boolean\n childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n relative: Minimatch[]\n relativeChildren: Minimatch[]\n absolute: Minimatch[]\n absoluteChildren: Minimatch[]\n\n constructor(\n ignored: string[],\n {\n nobrace,\n nocase,\n noext,\n noglobstar,\n platform = defaultPlatform,\n }: GlobWalkerOpts\n ) {\n this.relative = []\n this.absolute = []\n this.relativeChildren = []\n this.absoluteChildren = []\n const mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n }\n\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n for (const ign of ignored) {\n const mm = new Minimatch(ign, mmopts)\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i]\n const globParts = mm.globParts[i]\n /* c8 ignore start */\n if (!parsed || !globParts) {\n throw new Error('invalid pattern object')\n }\n /* c8 ignore stop */\n const p = new Pattern(parsed, globParts, 0, platform)\n const m = new Minimatch(p.globString(), mmopts)\n const children = globParts[globParts.length - 1] === '**'\n const absolute = p.isAbsolute()\n if (absolute) this.absolute.push(m)\n else this.relative.push(m)\n if (children) {\n if (absolute) this.absoluteChildren.push(m)\n else this.relativeChildren.push(m)\n }\n }\n }\n }\n\n ignored(p: Path): boolean {\n const fullpath = p.fullpath()\n const fullpaths = `${fullpath}/`\n const relative = p.relative() || '.'\n const relatives = `${relative}/`\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives)) return true\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths)) return true\n }\n return false\n }\n\n childrenIgnored(p: Path): boolean {\n const fullpath = p.fullpath() + '/'\n const relative = (p.relative() || '.') + '/'\n for (const m of this.relativeChildren) {\n if (m.match(relative)) return true\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath)) return true\n }\n return false\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/cjs/src/index.d.ts b/deps/npm/node_modules/glob/dist/esm/index.d.ts similarity index 97% rename from deps/npm/node_modules/glob/dist/cjs/src/index.d.ts rename to deps/npm/node_modules/glob/dist/esm/index.d.ts index 669bf12e6d5916..048e584715b772 100644 --- a/deps/npm/node_modules/glob/dist/cjs/src/index.d.ts +++ b/deps/npm/node_modules/glob/dist/esm/index.d.ts @@ -68,6 +68,7 @@ export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTyp export { hasMagic } from './has-magic.js'; export type { IgnoreLike } from './ignore.js'; export type { MatchStream } from './walker.js'; +export type { Path, WalkOptionsWithFileTypesTrue, WalkOptionsWithFileTypesUnset, WalkOptions, FSOption, } from 'path-scurry'; export declare const glob: typeof glob_ & { glob: typeof glob_; globSync: typeof globSync; diff --git a/deps/npm/node_modules/glob/dist/esm/index.d.ts.map b/deps/npm/node_modules/glob/dist/esm/index.d.ts.map new file mode 100644 index 00000000000000..3e263fb5e2dbed --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/index.js b/deps/npm/node_modules/glob/dist/esm/index.js similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/index.js rename to deps/npm/node_modules/glob/dist/esm/index.js diff --git a/deps/npm/node_modules/glob/dist/mjs/index.js.map b/deps/npm/node_modules/glob/dist/esm/index.js.map similarity index 93% rename from deps/npm/node_modules/glob/dist/mjs/index.js.map rename to deps/npm/node_modules/glob/dist/esm/index.js.map index 2d4fc077271b15..d857e6b0f2d2ab 100644 --- a/deps/npm/node_modules/glob/dist/mjs/index.js.map +++ b/deps/npm/node_modules/glob/dist/esm/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAS5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAuBzC,MAAM,UAAU,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AAsBD,MAAM,UAAU,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AAqBD,MAAM,UAAU,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAqBD,MAAM,UAAU,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAA;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAA;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,oBAAoB;AAEpB,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,MAAM;IACN,cAAc;IACd,UAAU;IACV,WAAW;IACX,OAAO;IACP,eAAe;IACf,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,QAAQ;CACT,CAAC,CAAA;AACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync,\n globStream,\n stream,\n globStreamSync,\n streamSync,\n globIterate,\n iterate,\n globIterateSync,\n iterateSync,\n Glob,\n hasMagic,\n escape,\n unescape,\n})\nglob.glob = glob\n"]} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAS5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAuBzC,MAAM,UAAU,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AAsBD,MAAM,UAAU,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AAqBD,MAAM,UAAU,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAqBD,MAAM,UAAU,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAA;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAA;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAWzC,oBAAoB;AAEpB,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,MAAM;IACN,cAAc;IACd,UAAU;IACV,WAAW;IACX,OAAO;IACP,eAAe;IACf,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,QAAQ;CACT,CAAC,CAAA;AACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions\n): Promise\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\nexport type {\n Path,\n WalkOptionsWithFileTypesTrue,\n WalkOptionsWithFileTypesUnset,\n WalkOptions,\n FSOption,\n} from 'path-scurry'\n\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync,\n globStream,\n stream,\n globStreamSync,\n streamSync,\n globIterate,\n iterate,\n globIterateSync,\n iterateSync,\n Glob,\n hasMagic,\n escape,\n unescape,\n})\nglob.glob = glob\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/esm/package.json b/deps/npm/node_modules/glob/dist/esm/package.json new file mode 100644 index 00000000000000..7c34deb5837d8d --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/pattern.d.ts b/deps/npm/node_modules/glob/dist/esm/pattern.d.ts similarity index 97% rename from deps/npm/node_modules/glob/dist/mjs/pattern.d.ts rename to deps/npm/node_modules/glob/dist/esm/pattern.d.ts index 109cc4e7a5dae3..da675f9322c64f 100644 --- a/deps/npm/node_modules/glob/dist/mjs/pattern.d.ts +++ b/deps/npm/node_modules/glob/dist/esm/pattern.d.ts @@ -1,4 +1,4 @@ -/// +/// import { GLOBSTAR } from 'minimatch'; export type MMPattern = string | RegExp | typeof GLOBSTAR; export type PatternList = [p: MMPattern, ...rest: MMPattern[]]; diff --git a/deps/npm/node_modules/glob/dist/esm/pattern.d.ts.map b/deps/npm/node_modules/glob/dist/esm/pattern.d.ts.map new file mode 100644 index 00000000000000..1430a77dadbbe4 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/pattern.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/pattern.js b/deps/npm/node_modules/glob/dist/esm/pattern.js similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/pattern.js rename to deps/npm/node_modules/glob/dist/esm/pattern.js diff --git a/deps/npm/node_modules/glob/dist/mjs/pattern.js.map b/deps/npm/node_modules/glob/dist/esm/pattern.js.map similarity index 69% rename from deps/npm/node_modules/glob/dist/mjs/pattern.js.map rename to deps/npm/node_modules/glob/dist/esm/pattern.js.map index bb039c142107fc..267a339ee5ab61 100644 --- a/deps/npm/node_modules/glob/dist/mjs/pattern.js.map +++ b/deps/npm/node_modules/glob/dist/esm/pattern.js.map @@ -1 +1 @@ -{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n p0: '',\n p1: '',\n p2: string,\n p3: string,\n ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n readonly #patternList: PatternList\n readonly #globList: GlobList\n readonly #index: number\n readonly length: number\n readonly #platform: NodeJS.Platform\n #rest?: Pattern | null\n #globString?: string\n #isDrive?: boolean\n #isUNC?: boolean\n #isAbsolute?: boolean\n #followGlobstar: boolean = true\n\n constructor(\n patternList: MMPattern[],\n globList: string[],\n index: number,\n platform: NodeJS.Platform\n ) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list')\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list')\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths')\n }\n this.length = patternList.length\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range')\n }\n this.#patternList = patternList\n this.#globList = globList\n this.#index = index\n this.#platform = platform\n\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList\n const [g0, g1, g2, g3, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = [p0, p1, p2, p3, ''].join('/')\n const g = [g0, g1, g2, g3, ''].join('/')\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n } else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList\n const [g1, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = (p1 as string) + '/'\n const g = g1 + '/'\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n }\n }\n }\n\n /**\n * The first entry in the parsed list of patterns\n */\n pattern(): MMPattern {\n return this.#patternList[this.#index]\n }\n\n /**\n * true of if pattern() returns a string\n */\n isString(): boolean {\n return typeof this.#patternList[this.#index] === 'string'\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar(): boolean {\n return this.#patternList[this.#index] === GLOBSTAR\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp(): boolean {\n return this.#patternList[this.#index] instanceof RegExp\n }\n\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString(): string {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0\n ? this.isAbsolute()\n ? this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')))\n }\n\n /**\n * true if there are more pattern parts after this one\n */\n hasMore(): boolean {\n return this.length > this.#index + 1\n }\n\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest(): Pattern | null {\n if (this.#rest !== undefined) return this.#rest\n if (!this.hasMore()) return (this.#rest = null)\n this.#rest = new Pattern(\n this.#patternList,\n this.#globList,\n this.#index + 1,\n this.#platform\n )\n this.#rest.#isAbsolute = this.#isAbsolute\n this.#rest.#isUNC = this.#isUNC\n this.#rest.#isDrive = this.#isDrive\n return this.#rest\n }\n\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC(): boolean {\n const pl = this.#patternList\n return this.#isUNC !== undefined\n ? this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3])\n }\n\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive(): boolean {\n const pl = this.#patternList\n return this.#isDrive !== undefined\n ? this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]))\n }\n\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute(): boolean {\n const pl = this.#patternList\n return this.#isAbsolute !== undefined\n ? this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC())\n }\n\n /**\n * consume the root of the pattern, and return it\n */\n root(): string {\n const p = this.#patternList[0]\n return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n ? p\n : ''\n }\n\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar(): boolean {\n return !(\n this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar\n )\n }\n\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar(): boolean {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false\n this.#followGlobstar = false\n return true\n }\n}\n"]} \ No newline at end of file +{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n p0: '',\n p1: '',\n p2: string,\n p3: string,\n ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n readonly #patternList: PatternList\n readonly #globList: GlobList\n readonly #index: number\n readonly length: number\n readonly #platform: NodeJS.Platform\n #rest?: Pattern | null\n #globString?: string\n #isDrive?: boolean\n #isUNC?: boolean\n #isAbsolute?: boolean\n #followGlobstar: boolean = true\n\n constructor(\n patternList: MMPattern[],\n globList: string[],\n index: number,\n platform: NodeJS.Platform\n ) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list')\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list')\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths')\n }\n this.length = patternList.length\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range')\n }\n this.#patternList = patternList\n this.#globList = globList\n this.#index = index\n this.#platform = platform\n\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList\n const [g0, g1, g2, g3, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = [p0, p1, p2, p3, ''].join('/')\n const g = [g0, g1, g2, g3, ''].join('/')\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n } else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList\n const [g1, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = (p1 as string) + '/'\n const g = g1 + '/'\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n }\n }\n }\n\n /**\n * The first entry in the parsed list of patterns\n */\n pattern(): MMPattern {\n return this.#patternList[this.#index] as MMPattern\n }\n\n /**\n * true of if pattern() returns a string\n */\n isString(): boolean {\n return typeof this.#patternList[this.#index] === 'string'\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar(): boolean {\n return this.#patternList[this.#index] === GLOBSTAR\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp(): boolean {\n return this.#patternList[this.#index] instanceof RegExp\n }\n\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString(): string {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0\n ? this.isAbsolute()\n ? this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')))\n }\n\n /**\n * true if there are more pattern parts after this one\n */\n hasMore(): boolean {\n return this.length > this.#index + 1\n }\n\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest(): Pattern | null {\n if (this.#rest !== undefined) return this.#rest\n if (!this.hasMore()) return (this.#rest = null)\n this.#rest = new Pattern(\n this.#patternList,\n this.#globList,\n this.#index + 1,\n this.#platform\n )\n this.#rest.#isAbsolute = this.#isAbsolute\n this.#rest.#isUNC = this.#isUNC\n this.#rest.#isDrive = this.#isDrive\n return this.#rest\n }\n\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC(): boolean {\n const pl = this.#patternList\n return this.#isUNC !== undefined\n ? this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3])\n }\n\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive(): boolean {\n const pl = this.#patternList\n return this.#isDrive !== undefined\n ? this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]))\n }\n\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute(): boolean {\n const pl = this.#patternList\n return this.#isAbsolute !== undefined\n ? this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC())\n }\n\n /**\n * consume the root of the pattern, and return it\n */\n root(): string {\n const p = this.#patternList[0]\n return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n ? p\n : ''\n }\n\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar(): boolean {\n return !(\n this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar\n )\n }\n\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar(): boolean {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false\n this.#followGlobstar = false\n return true\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/processor.d.ts b/deps/npm/node_modules/glob/dist/esm/processor.d.ts similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/processor.d.ts rename to deps/npm/node_modules/glob/dist/esm/processor.d.ts diff --git a/deps/npm/node_modules/glob/dist/esm/processor.d.ts.map b/deps/npm/node_modules/glob/dist/esm/processor.d.ts.map new file mode 100644 index 00000000000000..33a39b2a8be3bf --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/processor.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAmGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/processor.js b/deps/npm/node_modules/glob/dist/esm/processor.js similarity index 95% rename from deps/npm/node_modules/glob/dist/mjs/processor.js rename to deps/npm/node_modules/glob/dist/esm/processor.js index dd2228ad6761a5..b5b2de2d314ca7 100644 --- a/deps/npm/node_modules/glob/dist/mjs/processor.js +++ b/deps/npm/node_modules/glob/dist/esm/processor.js @@ -132,9 +132,6 @@ export class Processor { while (typeof (p = pattern.pattern()) === 'string' && (rest = pattern.rest())) { const c = t.resolve(p); - // we can be reasonably sure that .. is a readable dir - if (c.isUnknown() && p !== '..') - break; t = c; pattern = rest; changed = true; @@ -150,14 +147,10 @@ export class Processor { // more strings for an unknown entry, // or a pattern starting with magic, mounted on t. if (typeof p === 'string') { - // must be final entry - if (!rest) { - const ifDir = p === '..' || p === '' || p === '.'; - this.matches.add(t.resolve(p), absolute, ifDir); - } - else { - this.subwalks.add(t, pattern); - } + // must not be final entry, otherwise we would have + // concatenated it earlier. + const ifDir = p === '..' || p === '' || p === '.'; + this.matches.add(t.resolve(p), absolute, ifDir); continue; } else if (p === GLOBSTAR) { diff --git a/deps/npm/node_modules/glob/dist/esm/processor.js.map b/deps/npm/node_modules/glob/dist/esm/processor.js.map new file mode 100644 index 00000000000000..9e4673a5324637 --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/processor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n store: Map>\n constructor(store: Map> = new Map()) {\n this.store = store\n }\n copy() {\n return new HasWalkedCache(new Map(this.store))\n }\n hasWalked(target: Path, pattern: Pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString())\n }\n storeWalked(target: Path, pattern: Pattern) {\n const fullpath = target.fullpath()\n const cached = this.store.get(fullpath)\n if (cached) cached.add(pattern.globString())\n else this.store.set(fullpath, new Set([pattern.globString()]))\n }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n store: Map = new Map()\n add(target: Path, absolute: boolean, ifDir: boolean) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n const current = this.store.get(target)\n this.store.set(target, current === undefined ? n : n & current)\n }\n // match, absolute, ifdir\n entries(): [Path, boolean, boolean][] {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ])\n }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n store: Map = new Map()\n add(target: Path, pattern: Pattern) {\n if (!target.canReaddir()) {\n return\n }\n const subs = this.store.get(target)\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern)\n }\n } else this.store.set(target, [pattern])\n }\n get(target: Path): Pattern[] {\n const subs = this.store.get(target)\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path')\n }\n /* c8 ignore stop */\n return subs\n }\n entries(): [Path, Pattern[]][] {\n return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n }\n keys(): Path[] {\n return [...this.store.keys()].filter(t => t.canReaddir())\n }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n hasWalkedCache: HasWalkedCache\n matches = new MatchRecord()\n subwalks = new SubWalks()\n patterns?: Pattern[]\n follow: boolean\n dot: boolean\n opts: GlobWalkerOpts\n\n constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n this.opts = opts\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.hasWalkedCache = hasWalkedCache\n ? hasWalkedCache.copy()\n : new HasWalkedCache()\n }\n\n processPatterns(target: Path, patterns: Pattern[]) {\n this.patterns = patterns\n const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern)\n\n const root = pattern.root()\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n // start absolute patterns at root\n if (root) {\n t = t.resolve(\n root === '/' && this.opts.root !== undefined\n ? this.opts.root\n : root\n )\n const rest = pattern.rest()\n if (!rest) {\n this.matches.add(t, true, false)\n continue\n } else {\n pattern = rest\n }\n }\n\n if (t.isENOENT()) continue\n\n let p: MMPattern\n let rest: Pattern | null\n let changed = false\n while (\n typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())\n ) {\n const c = t.resolve(p)\n t = c\n pattern = rest\n changed = true\n }\n p = pattern.pattern()\n rest = pattern.rest()\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n this.hasWalkedCache.storeWalked(t, pattern)\n }\n\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must not be final entry, otherwise we would have\n // concatenated it earlier.\n const ifDir = p === '..' || p === '' || p === '.'\n this.matches.add(t.resolve(p), absolute, ifDir)\n continue\n } else if (p === GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (\n !t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()\n ) {\n this.subwalks.add(t, pattern)\n }\n const rp = rest?.pattern()\n const rrest = rest?.rest()\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.')\n } else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t\n /* c8 ignore stop */\n if (!rrest) this.matches.add(tp, absolute, true)\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest)\n }\n }\n }\n } else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern)\n }\n }\n\n return this\n }\n\n subwalkTargets(): Path[] {\n return this.subwalks.keys()\n }\n\n child() {\n return new Processor(this.opts, this.hasWalkedCache)\n }\n\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent: Path, entries: Path[]): Processor {\n const patterns = this.subwalks.get(parent)\n // put matches and entry walks into the results processor\n const results = this.child()\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute()\n const p = pattern.pattern()\n const rest = pattern.rest()\n if (p === GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute)\n } else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute)\n } else {\n results.testString(e, p, rest, absolute)\n }\n }\n }\n return results\n }\n\n testGlobstar(\n e: Path,\n pattern: Pattern,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false)\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern)\n } else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest)\n } else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern)\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern()\n if (\n typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.'\n ) {\n this.testString(e, rp, rest.rest(), absolute)\n } else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e\n /* c8 ignore stop */\n this.subwalks.add(ep, rest)\n } else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute)\n }\n }\n }\n\n testRegExp(\n e: Path,\n p: MMRegExp,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (!p.test(e.name)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n\n testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n // should never happen?\n if (!e.isNamed(p)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/walker.d.ts b/deps/npm/node_modules/glob/dist/esm/walker.d.ts similarity index 98% rename from deps/npm/node_modules/glob/dist/mjs/walker.d.ts rename to deps/npm/node_modules/glob/dist/esm/walker.d.ts index 5c1a0414971b3a..dfbaf9b8681a55 100644 --- a/deps/npm/node_modules/glob/dist/mjs/walker.d.ts +++ b/deps/npm/node_modules/glob/dist/esm/walker.d.ts @@ -1,4 +1,4 @@ -/// +/// /** * Single-use utility classes to provide functionality to the {@link Glob} * methods. diff --git a/deps/npm/node_modules/glob/dist/esm/walker.d.ts.map b/deps/npm/node_modules/glob/dist/esm/walker.d.ts.map new file mode 100644 index 00000000000000..7c8df20b2f323c --- /dev/null +++ b/deps/npm/node_modules/glob/dist/esm/walker.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/walker.js b/deps/npm/node_modules/glob/dist/esm/walker.js similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/walker.js rename to deps/npm/node_modules/glob/dist/esm/walker.js diff --git a/deps/npm/node_modules/glob/dist/mjs/walker.js.map b/deps/npm/node_modules/glob/dist/esm/walker.js.map similarity index 100% rename from deps/npm/node_modules/glob/dist/mjs/walker.js.map rename to deps/npm/node_modules/glob/dist/esm/walker.js.map diff --git a/deps/npm/node_modules/glob/dist/mjs/glob.js.map b/deps/npm/node_modules/glob/dist/mjs/glob.js.map deleted file mode 100644 index 94558c1d2c66a4..00000000000000 --- a/deps/npm/node_modules/glob/dist/mjs/glob.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n FSOption,\n Path,\n PathScurry,\n PathScurryDarwin,\n PathScurryPosix,\n PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n /**\n * Set to `true` to always receive absolute paths for\n * matched files. Set to `false` to always return relative paths.\n *\n * When this option is not set, absolute paths are returned for patterns\n * that are absolute, and otherwise paths are returned that are relative\n * to the `cwd` setting.\n *\n * This does _not_ make an extra system call to get\n * the realpath, it only does string path resolution.\n *\n * Conflicts with {@link withFileTypes}\n */\n absolute?: boolean\n\n /**\n * Set to false to enable {@link windowsPathsNoEscape}\n *\n * @deprecated\n */\n allowWindowsEscape?: boolean\n\n /**\n * The current working directory in which to search. Defaults to\n * `process.cwd()`.\n *\n * May be eiher a string path or a `file://` URL object or string.\n */\n cwd?: string | URL\n\n /**\n * Include `.dot` files in normal matches and `globstar`\n * matches. Note that an explicit dot in a portion of the pattern\n * will always match dot files.\n */\n dot?: boolean\n\n /**\n * Prepend all relative path strings with `./` (or `.\\` on Windows).\n *\n * Without this option, returned relative paths are \"bare\", so instead of\n * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n *\n * Relative patterns starting with `'../'` are not prepended with `./`, even\n * if this option is set.\n */\n dotRelative?: boolean\n\n /**\n * Follow symlinked directories when expanding `**`\n * patterns. This can result in a lot of duplicate references in\n * the presence of cyclic links, and make performance quite bad.\n *\n * By default, a `**` in a pattern will follow 1 symbolic link if\n * it is not the first item in the pattern, or none if it is the\n * first item in the pattern, following the same behavior as Bash.\n */\n follow?: boolean\n\n /**\n * string or string[], or an object with `ignore` and `ignoreChildren`\n * methods.\n *\n * If a string or string[] is provided, then this is treated as a glob\n * pattern or array of glob patterns to exclude from matches. To ignore all\n * children within a directory, as well as the entry itself, append `'/**'`\n * to the ignore pattern.\n *\n * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n * any other settings.\n *\n * If an object is provided that has `ignored(path)` and/or\n * `childrenIgnored(path)` methods, then these methods will be called to\n * determine whether any Path is a match or if its children should be\n * traversed, respectively.\n */\n ignore?: string | string[] | IgnoreLike\n\n /**\n * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n * effect if {@link nobrace} is set.\n *\n * Only has effect on the {@link hasMagic} function.\n */\n magicalBraces?: boolean\n\n /**\n * Add a `/` character to directory matches. Note that this requires\n * additional stat calls in some cases.\n */\n mark?: boolean\n\n /**\n * Perform a basename-only match if the pattern does not contain any slash\n * characters. That is, `*.js` would be treated as equivalent to\n * `**\\/*.js`, matching all js files in all directories.\n */\n matchBase?: boolean\n\n /**\n * Limit the directory traversal to a given depth below the cwd.\n * Note that this does NOT prevent traversal to sibling folders,\n * root patterns, and so on. It only limits the maximum folder depth\n * that the walk will descend, relative to the cwd.\n */\n maxDepth?: number\n\n /**\n * Do not expand `{a,b}` and `{1..3}` brace sets.\n */\n nobrace?: boolean\n\n /**\n * Perform a case-insensitive match. This defaults to `true` on macOS and\n * Windows systems, and `false` on all others.\n *\n * **Note** `nocase` should only be explicitly set when it is\n * known that the filesystem's case sensitivity differs from the\n * platform default. If set `true` on case-sensitive file\n * systems, or `false` on case-insensitive file systems, then the\n * walk may return more or less results than expected.\n */\n nocase?: boolean\n\n /**\n * Do not match directories, only files. (Note: to match\n * _only_ directories, put a `/` at the end of the pattern.)\n */\n nodir?: boolean\n\n /**\n * Do not match \"extglob\" patterns such as `+(a|b)`.\n */\n noext?: boolean\n\n /**\n * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n * `*` instead.)\n *\n * Conflicts with {@link matchBase}\n */\n noglobstar?: boolean\n\n /**\n * Defaults to value of `process.platform` if available, or `'linux'` if\n * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n * behavior.\n */\n platform?: NodeJS.Platform\n\n /**\n * Set to true to call `fs.realpath` on all of the\n * results. In the case of an entry that cannot be resolved, the\n * entry is omitted. This incurs a slight performance penalty, of\n * course, because of the added system calls.\n */\n realpath?: boolean\n\n /**\n *\n * A string path resolved against the `cwd` option, which\n * is used as the starting point for absolute patterns that start\n * with `/`, (but not drive letters or UNC paths on Windows).\n *\n * Note that this _doesn't_ necessarily limit the walk to the\n * `root` directory, and doesn't affect the cwd starting point for\n * non-absolute patterns. A pattern containing `..` will still be\n * able to traverse out of the root directory, if it is not an\n * actual root directory on the filesystem, and any non-absolute\n * patterns will be matched in the `cwd`. For example, the\n * pattern `/../*` with `{root:'/some/path'}` will return all\n * files in `/some`, not all files in `/some/path`. The pattern\n * `*` with `{root:'/some/path'}` will return all the entries in\n * the cwd, not the entries in `/some/path`.\n *\n * To start absolute and non-absolute patterns in the same\n * path, you can use `{root:''}`. However, be aware that on\n * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n * _always_ start in the `x:/` or `//host/share` directory,\n * regardless of the `root` setting.\n */\n root?: string\n\n /**\n * A [PathScurry](http://npm.im/path-scurry) object used\n * to traverse the file system. If the `nocase` option is set\n * explicitly, then any provided `scurry` object must match this\n * setting.\n */\n scurry?: PathScurry\n\n /**\n * Call `lstat()` on all entries, whether required or not to determine\n * if it's a valid match. When used with {@link withFileTypes}, this means\n * that matches will include data such as modified time, permissions, and\n * so on. Note that this will incur a performance cost due to the added\n * system calls.\n */\n stat?: boolean\n\n /**\n * An AbortSignal which will cancel the Glob walk when\n * triggered.\n */\n signal?: AbortSignal\n\n /**\n * Use `\\\\` as a path separator _only_, and\n * _never_ as an escape character. If set, all `\\\\` characters are\n * replaced with `/` in the pattern.\n *\n * Note that this makes it **impossible** to match against paths\n * containing literal glob pattern characters, but allows matching\n * with patterns constructed using `path.join()` and\n * `path.resolve()` on Windows platforms, mimicking the (buggy!)\n * behavior of Glob v7 and before on Windows. Please use with\n * caution, and be mindful of [the caveat below about Windows\n * paths](#windows). (For legacy reasons, this is also set if\n * `allowWindowsEscape` is set to the exact value `false`.)\n */\n windowsPathsNoEscape?: boolean\n\n /**\n * Return [PathScurry](http://npm.im/path-scurry)\n * `Path` objects instead of strings. These are similar to a\n * NodeJS `Dirent` object, but with additional methods and\n * properties.\n *\n * Conflicts with {@link absolute}\n */\n withFileTypes?: boolean\n\n /**\n * An fs implementation to override some or all of the defaults. See\n * http://npm.im/path-scurry for details about what can be overridden.\n */\n fs?: FSOption\n\n /**\n * Just passed along to Minimatch. Note that this makes all pattern\n * matching operations slower and *extremely* noisy.\n */\n debug?: boolean\n\n /**\n * Return `/` delimited paths, even on Windows.\n *\n * On posix systems, this has no effect. But, on Windows, it means that\n * paths will be `/` delimited, and absolute paths will be their full\n * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n * `'//?/C:/foo/bar'`\n */\n posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n withFileTypes: true\n // string options not relevant if returning Path objects.\n absolute?: undefined\n mark?: undefined\n posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n ? Path\n : Opts extends GlobOptionsWithFileTypesFalse\n ? string\n : Opts extends GlobOptionsWithFileTypesUnset\n ? string\n : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n ? true\n : Opts extends GlobOptionsWithFileTypesFalse\n ? false\n : Opts extends GlobOptionsWithFileTypesUnset\n ? false\n : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n absolute?: boolean\n cwd: string\n root?: string\n dot: boolean\n dotRelative: boolean\n follow: boolean\n ignore?: string | string[] | IgnoreLike\n magicalBraces: boolean\n mark?: boolean\n matchBase: boolean\n maxDepth: number\n nobrace: boolean\n nocase: boolean\n nodir: boolean\n noext: boolean\n noglobstar: boolean\n pattern: string[]\n platform: NodeJS.Platform\n realpath: boolean\n scurry: PathScurry\n stat: boolean\n signal?: AbortSignal\n windowsPathsNoEscape: boolean\n withFileTypes: FileTypes\n\n /**\n * The options provided to the constructor.\n */\n opts: Opts\n\n /**\n * An array of parsed immutable {@link Pattern} objects.\n */\n patterns: Pattern[]\n\n /**\n * All options are stored as properties on the `Glob` object.\n *\n * See {@link GlobOptions} for full options descriptions.\n *\n * Note that a previous `Glob` object can be passed as the\n * `GlobOptions` to another `Glob` instantiation to re-use settings\n * and caches with a new pattern.\n *\n * Traversal functions can be called multiple times to run the walk\n * again.\n */\n constructor(pattern: string | string[], opts: Opts) {\n /* c8 ignore start */\n if (!opts) throw new TypeError('glob options required')\n /* c8 ignore stop */\n this.withFileTypes = !!opts.withFileTypes as FileTypes\n this.signal = opts.signal\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.dotRelative = !!opts.dotRelative\n this.nodir = !!opts.nodir\n this.mark = !!opts.mark\n if (!opts.cwd) {\n this.cwd = ''\n } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n opts.cwd = fileURLToPath(opts.cwd)\n }\n this.cwd = opts.cwd || ''\n this.root = opts.root\n this.magicalBraces = !!opts.magicalBraces\n this.nobrace = !!opts.nobrace\n this.noext = !!opts.noext\n this.realpath = !!opts.realpath\n this.absolute = opts.absolute\n\n this.noglobstar = !!opts.noglobstar\n this.matchBase = !!opts.matchBase\n this.maxDepth =\n typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n this.stat = !!opts.stat\n this.ignore = opts.ignore\n\n if (this.withFileTypes && this.absolute !== undefined) {\n throw new Error('cannot set absolute and withFileTypes:true')\n }\n\n if (typeof pattern === 'string') {\n pattern = [pattern]\n }\n\n this.windowsPathsNoEscape =\n !!opts.windowsPathsNoEscape ||\n (opts as GlobOptions).allowWindowsEscape === false\n\n if (this.windowsPathsNoEscape) {\n pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n }\n\n if (this.matchBase) {\n if (opts.noglobstar) {\n throw new TypeError('base matching requires globstar')\n }\n pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n }\n\n this.pattern = pattern\n\n this.platform = opts.platform || defaultPlatform\n this.opts = { ...opts, platform: this.platform }\n if (opts.scurry) {\n this.scurry = opts.scurry\n if (\n opts.nocase !== undefined &&\n opts.nocase !== opts.scurry.nocase\n ) {\n throw new Error('nocase option contradicts provided scurry option')\n }\n } else {\n const Scurry =\n opts.platform === 'win32'\n ? PathScurryWin32\n : opts.platform === 'darwin'\n ? PathScurryDarwin\n : opts.platform\n ? PathScurryPosix\n : PathScurry\n this.scurry = new Scurry(this.cwd, {\n nocase: opts.nocase,\n fs: opts.fs,\n })\n }\n this.nocase = this.scurry.nocase\n\n // If you do nocase:true on a case-sensitive file system, then\n // we need to use regexps instead of strings for non-magic\n // path portions, because statting `aBc` won't return results\n // for the file `AbC` for example.\n const nocaseMagicOnly =\n this.platform === 'darwin' || this.platform === 'win32'\n\n const mmo: MinimatchOptions = {\n // default nocase based on platform\n ...opts,\n dot: this.dot,\n matchBase: this.matchBase,\n nobrace: this.nobrace,\n nocase: this.nocase,\n nocaseMagicOnly,\n nocomment: true,\n noext: this.noext,\n nonegate: true,\n optimizationLevel: 2,\n platform: this.platform,\n windowsPathsNoEscape: this.windowsPathsNoEscape,\n debug: !!this.opts.debug,\n }\n\n const mms = this.pattern.map(p => new Minimatch(p, mmo))\n const [matchSet, globParts] = mms.reduce(\n (set: [MatchSet, GlobParts], m) => {\n set[0].push(...m.set)\n set[1].push(...m.globParts)\n return set\n },\n [[], []]\n )\n this.patterns = matchSet.map((set, i) => {\n return new Pattern(set, globParts[i], 0, this.platform)\n })\n }\n\n /**\n * Returns a Promise that resolves to the results array.\n */\n async walk(): Promise>\n async walk(): Promise<(string | Path)[]> {\n // Walkers always return array of Path objects, so we just have to\n // coerce them into the right shape. It will have already called\n // realpath() if the option was set to do so, so we know that's cached.\n // start out knowing the cwd, at least\n return [\n ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walk()),\n ]\n }\n\n /**\n * synchronous {@link Glob.walk}\n */\n walkSync(): Results\n walkSync(): (string | Path)[] {\n return [\n ...new GlobWalker(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).walkSync(),\n ]\n }\n\n /**\n * Stream results asynchronously.\n */\n stream(): Minipass, Result>\n stream(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).stream()\n }\n\n /**\n * Stream results synchronously.\n */\n streamSync(): Minipass, Result>\n streamSync(): Minipass {\n return new GlobStream(this.patterns, this.scurry.cwd, {\n ...this.opts,\n maxDepth:\n this.maxDepth !== Infinity\n ? this.maxDepth + this.scurry.cwd.depth()\n : Infinity,\n platform: this.platform,\n nocase: this.nocase,\n }).streamSync()\n }\n\n /**\n * Default sync iteration function. Returns a Generator that\n * iterates over the results.\n */\n iterateSync(): Generator, void, void> {\n return this.streamSync()[Symbol.iterator]()\n }\n [Symbol.iterator]() {\n return this.iterateSync()\n }\n\n /**\n * Default async iteration function. Returns an AsyncGenerator that\n * iterates over the results.\n */\n iterate(): AsyncGenerator, void, void> {\n return this.stream()[Symbol.asyncIterator]()\n }\n [Symbol.asyncIterator]() {\n return this.iterate()\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/ignore.js.map b/deps/npm/node_modules/glob/dist/mjs/ignore.js.map deleted file mode 100644 index 1038b712396eaf..00000000000000 --- a/deps/npm/node_modules/glob/dist/mjs/ignore.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n ignored?: (p: Path) => boolean\n childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n typeof process === 'object' &&\n process &&\n typeof process.platform === 'string'\n ? process.platform\n : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n relative: Minimatch[]\n relativeChildren: Minimatch[]\n absolute: Minimatch[]\n absoluteChildren: Minimatch[]\n\n constructor(\n ignored: string[],\n {\n nobrace,\n nocase,\n noext,\n noglobstar,\n platform = defaultPlatform,\n }: GlobWalkerOpts\n ) {\n this.relative = []\n this.absolute = []\n this.relativeChildren = []\n this.absoluteChildren = []\n const mmopts = {\n dot: true,\n nobrace,\n nocase,\n noext,\n noglobstar,\n optimizationLevel: 2,\n platform,\n nocomment: true,\n nonegate: true,\n }\n\n // this is a little weird, but it gives us a clean set of optimized\n // minimatch matchers, without getting tripped up if one of them\n // ends in /** inside a brace section, and it's only inefficient at\n // the start of the walk, not along it.\n // It'd be nice if the Pattern class just had a .test() method, but\n // handling globstars is a bit of a pita, and that code already lives\n // in minimatch anyway.\n // Another way would be if maybe Minimatch could take its set/globParts\n // as an option, and then we could at least just use Pattern to test\n // for absolute-ness.\n // Yet another way, Minimatch could take an array of glob strings, and\n // a cwd option, and do the right thing.\n for (const ign of ignored) {\n const mm = new Minimatch(ign, mmopts)\n for (let i = 0; i < mm.set.length; i++) {\n const parsed = mm.set[i]\n const globParts = mm.globParts[i]\n const p = new Pattern(parsed, globParts, 0, platform)\n const m = new Minimatch(p.globString(), mmopts)\n const children = globParts[globParts.length - 1] === '**'\n const absolute = p.isAbsolute()\n if (absolute) this.absolute.push(m)\n else this.relative.push(m)\n if (children) {\n if (absolute) this.absoluteChildren.push(m)\n else this.relativeChildren.push(m)\n }\n }\n }\n }\n\n ignored(p: Path): boolean {\n const fullpath = p.fullpath()\n const fullpaths = `${fullpath}/`\n const relative = p.relative() || '.'\n const relatives = `${relative}/`\n for (const m of this.relative) {\n if (m.match(relative) || m.match(relatives)) return true\n }\n for (const m of this.absolute) {\n if (m.match(fullpath) || m.match(fullpaths)) return true\n }\n return false\n }\n\n childrenIgnored(p: Path): boolean {\n const fullpath = p.fullpath() + '/'\n const relative = (p.relative() || '.') + '/'\n for (const m of this.relativeChildren) {\n if (m.match(relative)) return true\n }\n for (const m of this.absoluteChildren) {\n if (m.match(fullpath)) true\n }\n return false\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/dist/mjs/package.json b/deps/npm/node_modules/glob/dist/mjs/package.json deleted file mode 100644 index 5cc80943d565b7..00000000000000 --- a/deps/npm/node_modules/glob/dist/mjs/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "version": "10.3.3", - "type": "module" -} diff --git a/deps/npm/node_modules/glob/dist/mjs/processor.js.map b/deps/npm/node_modules/glob/dist/mjs/processor.js.map deleted file mode 100644 index bf17d8e99b04a6..00000000000000 --- a/deps/npm/node_modules/glob/dist/mjs/processor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n store: Map>\n constructor(store: Map> = new Map()) {\n this.store = store\n }\n copy() {\n return new HasWalkedCache(new Map(this.store))\n }\n hasWalked(target: Path, pattern: Pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString())\n }\n storeWalked(target: Path, pattern: Pattern) {\n const fullpath = target.fullpath()\n const cached = this.store.get(fullpath)\n if (cached) cached.add(pattern.globString())\n else this.store.set(fullpath, new Set([pattern.globString()]))\n }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n store: Map = new Map()\n add(target: Path, absolute: boolean, ifDir: boolean) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n const current = this.store.get(target)\n this.store.set(target, current === undefined ? n : n & current)\n }\n // match, absolute, ifdir\n entries(): [Path, boolean, boolean][] {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ])\n }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n store: Map = new Map()\n add(target: Path, pattern: Pattern) {\n if (!target.canReaddir()) {\n return\n }\n const subs = this.store.get(target)\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern)\n }\n } else this.store.set(target, [pattern])\n }\n get(target: Path): Pattern[] {\n const subs = this.store.get(target)\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path')\n }\n /* c8 ignore stop */\n return subs\n }\n entries(): [Path, Pattern[]][] {\n return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n }\n keys(): Path[] {\n return [...this.store.keys()].filter(t => t.canReaddir())\n }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n hasWalkedCache: HasWalkedCache\n matches = new MatchRecord()\n subwalks = new SubWalks()\n patterns?: Pattern[]\n follow: boolean\n dot: boolean\n opts: GlobWalkerOpts\n\n constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n this.opts = opts\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.hasWalkedCache = hasWalkedCache\n ? hasWalkedCache.copy()\n : new HasWalkedCache()\n }\n\n processPatterns(target: Path, patterns: Pattern[]) {\n this.patterns = patterns\n const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern)\n\n const root = pattern.root()\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n // start absolute patterns at root\n if (root) {\n t = t.resolve(\n root === '/' && this.opts.root !== undefined\n ? this.opts.root\n : root\n )\n const rest = pattern.rest()\n if (!rest) {\n this.matches.add(t, true, false)\n continue\n } else {\n pattern = rest\n }\n }\n\n if (t.isENOENT()) continue\n\n let p: MMPattern\n let rest: Pattern | null\n let changed = false\n while (\n typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())\n ) {\n const c = t.resolve(p)\n // we can be reasonably sure that .. is a readable dir\n if (c.isUnknown() && p !== '..') break\n t = c\n pattern = rest\n changed = true\n }\n p = pattern.pattern()\n rest = pattern.rest()\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n this.hasWalkedCache.storeWalked(t, pattern)\n }\n\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must be final entry\n if (!rest) {\n const ifDir = p === '..' || p === '' || p === '.'\n this.matches.add(t.resolve(p), absolute, ifDir)\n } else {\n this.subwalks.add(t, pattern)\n }\n continue\n } else if (p === GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (\n !t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()\n ) {\n this.subwalks.add(t, pattern)\n }\n const rp = rest?.pattern()\n const rrest = rest?.rest()\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.')\n } else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t\n /* c8 ignore stop */\n if (!rrest) this.matches.add(tp, absolute, true)\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest)\n }\n }\n }\n } else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern)\n }\n }\n\n return this\n }\n\n subwalkTargets(): Path[] {\n return this.subwalks.keys()\n }\n\n child() {\n return new Processor(this.opts, this.hasWalkedCache)\n }\n\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent: Path, entries: Path[]): Processor {\n const patterns = this.subwalks.get(parent)\n // put matches and entry walks into the results processor\n const results = this.child()\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute()\n const p = pattern.pattern()\n const rest = pattern.rest()\n if (p === GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute)\n } else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute)\n } else {\n results.testString(e, p, rest, absolute)\n }\n }\n }\n return results\n }\n\n testGlobstar(\n e: Path,\n pattern: Pattern,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false)\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern)\n } else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest)\n } else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern)\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern()\n if (\n typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.'\n ) {\n this.testString(e, rp, rest.rest(), absolute)\n } else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e\n /* c8 ignore stop */\n this.subwalks.add(ep, rest)\n } else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute)\n }\n }\n }\n\n testRegExp(\n e: Path,\n p: MMRegExp,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (!p.test(e.name)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n\n testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n // should never happen?\n if (!e.isNamed(p)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n}\n"]} \ No newline at end of file diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json index 2d25985d2bbb5d..ae0dfae17460bc 100644 --- a/deps/npm/node_modules/glob/package.json +++ b/deps/npm/node_modules/glob/package.json @@ -2,27 +2,35 @@ "author": "Isaac Z. Schlueter (https://blog.izs.me/)", "name": "glob", "description": "the most correct and second fastest glob implementation in JavaScript", - "version": "10.3.3", - "bin": "./dist/cjs/src/bin.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-glob.git" + "version": "10.3.10", + "type": "module", + "tshy": { + "main": true, + "exports": { + "./package.json": "./package.json", + ".": "./src/index.ts" + } }, - "main": "./dist/cjs/src/index.js", - "module": "./dist/mjs/index.js", - "types": "./dist/mjs/index.d.ts", + "bin": "./dist/esm/bin.mjs", + "main": "./dist/commonjs/index.js", + "types": "./dist/commonjs/index.d.ts", "exports": { + "./package.json": "./package.json", ".": { "import": { - "types": "./dist/mjs/index.d.ts", - "default": "./dist/mjs/index.js" + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" }, "require": { - "types": "./dist/cjs/src/index.d.ts", - "default": "./dist/cjs/src/index.js" + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" } } }, + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, "files": [ "dist" ], @@ -30,14 +38,13 @@ "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", - "preprepare": "rm -rf dist", - "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash fixup.sh", + "prepare": "tshy", "pretest": "npm run prepare", "presnap": "npm run prepare", - "test": "c8 tap", - "snap": "c8 tap", + "test": "tap", + "snap": "tap", "format": "prettier --write . --loglevel warn", - "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts", + "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts", "prepublish": "npm run benchclean", "profclean": "rm -f v8.log profile.txt", "test-regen": "npm run profclean && TEST_REGEN=1 node --no-warnings --loader ts-node/esm test/00-setup.ts", @@ -45,7 +52,7 @@ "bench": "bash benchmark.sh", "preprof": "npm run prepare", "prof": "bash prof.sh", - "benchclean": "node benchclean.js" + "benchclean": "node benchclean.cjs" }, "prettier": { "semi": false, @@ -60,33 +67,25 @@ }, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "devDependencies": { "@types/node": "^20.3.2", - "@types/tap": "^15.0.7", - "c8": "^7.12.0", "memfs": "^3.4.13", - "mkdirp": "^2.1.4", + "mkdirp": "^3.0.1", "prettier": "^2.8.3", - "rimraf": "^4.1.3", - "tap": "^16.3.4", - "ts-node": "^10.9.1", - "typedoc": "^0.23.24", - "typescript": "^4.9.4" + "rimraf": "^5.0.1", + "sync-content": "^1.0.2", + "tap": "^18.1.4", + "tshy": "^1.2.2", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" }, "tap": { - "before": "test/00-setup.ts", - "coverage": false, - "node-arg": [ - "--no-warnings", - "--loader", - "ts-node/esm" - ], - "ts": false + "before": "test/00-setup.ts" }, "license": "ISC", "funding": { diff --git a/deps/npm/node_modules/hosted-git-info/lib/hosts.js b/deps/npm/node_modules/hosted-git-info/lib/hosts.js index 013712b7842c8f..6dac685f42cef3 100644 --- a/deps/npm/node_modules/hosted-git-info/lib/hosts.js +++ b/deps/npm/node_modules/hosted-git-info/lib/hosts.js @@ -199,8 +199,7 @@ hosts.sourcehut = { `https://${domain}/${user}/${project}.git${maybeJoin('#', committish)}`, tarballtemplate: ({ domain, user, project, committish }) => `https://${domain}/${user}/${project}/archive/${maybeEncode(committish) || 'HEAD'}.tar.gz`, - bugstemplate: ({ user, project }) => - `https://todo.sr.ht/${user}/${project}`, + bugstemplate: ({ user, project }) => null, extract: (url) => { let [, user, project, aux] = url.pathname.split('/', 4) diff --git a/deps/npm/node_modules/hosted-git-info/package.json b/deps/npm/node_modules/hosted-git-info/package.json index 262a6c20fcf00b..c2e31fa52676a0 100644 --- a/deps/npm/node_modules/hosted-git-info/package.json +++ b/deps/npm/node_modules/hosted-git-info/package.json @@ -1,6 +1,6 @@ { "name": "hosted-git-info", - "version": "7.0.0", + "version": "7.0.1", "description": "Provides metadata and conversions from repository urls for GitHub, Bitbucket and GitLab", "main": "./lib/index.js", "repository": { diff --git a/deps/npm/node_modules/jackspeak/dist/cjs/package.json b/deps/npm/node_modules/jackspeak/dist/cjs/package.json deleted file mode 100644 index 5bbefffbabee39..00000000000000 --- a/deps/npm/node_modules/jackspeak/dist/cjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/deps/npm/node_modules/jackspeak/dist/cjs/index.js b/deps/npm/node_modules/jackspeak/dist/commonjs/index.js similarity index 81% rename from deps/npm/node_modules/jackspeak/dist/cjs/index.js rename to deps/npm/node_modules/jackspeak/dist/commonjs/index.js index f268e40e05afa9..956d6a275c3634 100644 --- a/deps/npm/node_modules/jackspeak/dist/cjs/index.js +++ b/deps/npm/node_modules/jackspeak/dist/commonjs/index.js @@ -42,7 +42,9 @@ const toEnvVal = (value, delim = '\n') => { return str; }; const fromEnvVal = (env, type, multiple, delim = '\n') => (multiple - ? env.split(delim).map(v => fromEnvVal(v, type, false)) + ? env + ? env.split(delim).map(v => fromEnvVal(v, type, false)) + : [] : type === 'string' ? env : type === 'boolean' @@ -62,7 +64,9 @@ const valueType = (v) => typeof v === 'string' : Array.isArray(v) ? joinTypes([...new Set(v.map(v => valueType(v)))]) + '[]' : `${v.type}${v.multiple ? '[]' : ''}`; -const joinTypes = (types) => types.length === 1 ? types[0] : `(${types.join('|')})`; +const joinTypes = (types) => types.length === 1 && typeof types[0] === 'string' + ? types[0] + : `(${types.join('|')})`; const isValidValue = (v, type, multi) => { if (multi) { if (!Array.isArray(v)) @@ -190,6 +194,11 @@ const toParseArgsOptionsConfig = (options) => { const c = {}; for (const longOption in options) { const config = options[longOption]; + /* c8 ignore start */ + if (!config) { + throw new Error('config must be an object: ' + longOption); + } + /* c8 ignore start */ if ((0, exports.isConfigOption)(config, 'number', true)) { c[longOption] = { type: 'string', @@ -214,8 +223,9 @@ const toParseArgsOptionsConfig = (options) => { default: conf.default, }; } + const clo = c[longOption]; if (typeof config.short === 'string') { - c[longOption].short = config.short; + clo.short = config.short; } if (config.type === 'boolean' && !longOption.startsWith('no-') && @@ -243,6 +253,7 @@ class Jack { #envPrefix; #allowPositionals; #usage; + #usageMarkdown; constructor(options = {}) { this.#options = options; this.#allowPositionals = options.allowPositionals !== false; @@ -270,6 +281,12 @@ class Jack { } for (const [field, value] of Object.entries(values)) { const my = this.#configSet[field]; + // already validated, just for TS's benefit + /* c8 ignore start */ + if (!my) { + throw new Error('unexpected field in config set: ' + field); + } + /* c8 ignore stop */ my.default = value; } return this; @@ -365,8 +382,9 @@ class Jack { } if (my.multiple) { const pv = p.values; - pv[token.name] = pv[token.name] ?? []; - pv[token.name].push(value); + const tn = pv[token.name] ?? []; + pv[token.name] = tn; + tn.push(value); } else { const pv = p.values; @@ -381,7 +399,7 @@ class Jack { } } for (const [field, value] of Object.entries(p.values)) { - const valid = this.#configSet[field].validate; + const valid = this.#configSet[field]?.validate; if (valid && !valid(value)) { throw new Error(`Invalid value provided for --${field}: ${JSON.stringify(value)}`); } @@ -389,6 +407,20 @@ class Jack { this.#writeEnv(p); return p; } + /** + * do not set fields as 'no-foo' if 'foo' exists and both are bools + * just set foo. + */ + #noNoFields(f, val, s = f) { + if (!f.startsWith('no-') || typeof val !== 'boolean') + return; + const yes = f.substring('no-'.length); + // recurse so we get the core config key we care about. + this.#noNoFields(yes, val, s); + if (this.#configSet[yes]?.type === 'boolean') { + throw new Error(`do not set '${s}', instead set '${yes}' as desired.`); + } + } /** * Validate that any arbitrary object is a valid configuration `values` * object. Useful when loading config files or other sources. @@ -398,6 +430,7 @@ class Jack { throw new Error('Invalid config: not an object'); } for (const field in o) { + this.#noNoFields(field, o[field]); const config = this.#configSet[field]; if (!config) { throw new Error(`Unknown config option: ${field}`); @@ -418,17 +451,17 @@ class Jack { return; for (const [field, value] of Object.entries(p.values)) { const my = this.#configSet[field]; - this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(value, my.delim); + this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(value, my?.delim); } } /** * Add a heading to the usage output banner */ - heading(text, level) { + heading(text, level, { pre = false } = {}) { if (level === undefined) { level = this.#fields.some(r => isHeading(r)) ? 2 : 1; } - this.#fields.push({ type: 'heading', text, level }); + this.#fields.push({ type: 'heading', text, level, pre }); return this; } /** @@ -555,7 +588,7 @@ class Jack { }); } else { - const cmd = (0, node_path_1.basename)(process.argv[1]); + const cmd = (0, node_path_1.basename)(String(process.argv[1])); const shortFlags = []; const shorts = []; const flags = []; @@ -586,12 +619,122 @@ class Jack { } ui.div({ padding: [0, 0, 0, 0], text: '' }); const maybeDesc = this.#fields[start]; - if (isDescription(maybeDesc)) { + if (maybeDesc && isDescription(maybeDesc)) { const print = normalize(maybeDesc.text, maybeDesc.pre); start++; ui.div({ padding: [0, 0, 0, 0], text: print }); ui.div({ padding: [0, 0, 0, 0], text: '' }); } + const { rows, maxWidth } = this.#usageRows(start); + // every heading/description after the first gets indented by 2 + // extra spaces. + for (const row of rows) { + if (row.left) { + // If the row is too long, don't wrap it + // Bump the right-hand side down a line to make room + const configIndent = indent(Math.max(headingLevel, 2)); + if (row.left.length > maxWidth - 3) { + ui.div({ text: row.left, padding: [0, 0, 0, configIndent] }); + ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] }); + } + else { + ui.div({ + text: row.left, + padding: [0, 1, 0, configIndent], + width: maxWidth, + }, { padding: [0, 0, 0, 0], text: row.text }); + } + if (row.skipLine) { + ui.div({ padding: [0, 0, 0, 0], text: '' }); + } + } + else { + if (isHeading(row)) { + const { level } = row; + headingLevel = level; + // only h1 and h2 have bottom padding + // h3-h6 do not + const b = level <= 2 ? 1 : 0; + ui.div({ ...row, padding: [0, 0, b, indent(level)] }); + } + else { + ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] }); + } + } + } + return (this.#usage = ui.toString()); + } + /** + * Return the usage banner markdown for the given configuration + */ + usageMarkdown() { + if (this.#usageMarkdown) + return this.#usageMarkdown; + const out = []; + let headingLevel = 1; + const first = this.#fields[0]; + let start = first?.type === 'heading' ? 1 : 0; + if (first?.type === 'heading') { + out.push(`# ${normalizeOneLine(first.text)}`); + } + out.push('Usage:'); + if (this.#options.usage) { + out.push(normalizeMarkdown(this.#options.usage, true)); + } + else { + const cmd = (0, node_path_1.basename)(String(process.argv[1])); + const shortFlags = []; + const shorts = []; + const flags = []; + const opts = []; + for (const [field, config] of Object.entries(this.#configSet)) { + if (config.short) { + if (config.type === 'boolean') + shortFlags.push(config.short); + else + shorts.push([config.short, config.hint || field]); + } + else { + if (config.type === 'boolean') + flags.push(field); + else + opts.push([field, config.hint || field]); + } + } + const sf = shortFlags.length ? ' -' + shortFlags.join('') : ''; + const so = shorts.map(([k, v]) => ` --${k}=<${v}>`).join(''); + const lf = flags.map(k => ` --${k}`).join(''); + const lo = opts.map(([k, v]) => ` --${k}=<${v}>`).join(''); + const usage = `${cmd}${sf}${so}${lf}${lo}`.trim(); + out.push(normalizeMarkdown(usage, true)); + } + const maybeDesc = this.#fields[start]; + if (maybeDesc && isDescription(maybeDesc)) { + out.push(normalizeMarkdown(maybeDesc.text, maybeDesc.pre)); + start++; + } + const { rows } = this.#usageRows(start); + // heading level in markdown is number of # ahead of text + for (const row of rows) { + if (row.left) { + out.push('#'.repeat(headingLevel + 1) + + ' ' + + normalizeOneLine(row.left, true)); + if (row.text) + out.push(normalizeMarkdown(row.text)); + } + else if (isHeading(row)) { + const { level } = row; + headingLevel = level; + out.push(`${'#'.repeat(headingLevel)} ${normalizeOneLine(row.text, row.pre)}`); + } + else { + out.push(normalizeMarkdown(row.text, !!row.pre)); + } + } + return (this.#usageMarkdown = out.join('\n\n') + '\n'); + } + #usageRows(start) { // turn each config type into a row, and figure out the width of the // left hand indentation for the option descriptions. let maxMax = Math.max(12, Math.min(26, Math.floor(width / 3))); @@ -639,43 +782,7 @@ class Jack { } rows.push(row); } - // every heading/description after the first gets indented by 2 - // extra spaces. - for (const row of rows) { - if (row.left) { - // If the row is too long, don't wrap it - // Bump the right-hand side down a line to make room - const configIndent = indent(Math.max(headingLevel, 2)); - if (row.left.length > maxWidth - 2) { - ui.div({ text: row.left, padding: [0, 0, 0, configIndent] }); - ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] }); - } - else { - ui.div({ - text: row.left, - padding: [0, 1, 0, configIndent], - width: maxWidth, - }, { padding: [0, 0, 0, 0], text: row.text }); - } - if (row.skipLine) { - ui.div({ padding: [0, 0, 0, 0], text: '' }); - } - } - else { - if (isHeading(row)) { - const { level } = row; - headingLevel = level; - // only h1 and h2 have bottom padding - // h3-h6 do not - const b = level <= 2 ? 1 : 0; - ui.div({ ...row, padding: [0, 0, b, indent(level)] }); - } - else { - ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] }); - } - } - } - return (this.#usage = ui.toString()); + return { rows, maxWidth }; } /** * Return the configuration options as a plain object @@ -688,7 +795,9 @@ class Jack { ...(def.multiple ? { multiple: true } : {}), ...(def.delim ? { delim: def.delim } : {}), ...(def.short ? { short: def.short } : {}), - ...(def.description ? { description: def.description } : {}), + ...(def.description + ? { description: normalize(def.description) } + : {}), ...(def.validate ? { validate: def.validate } : {}), ...(def.default !== undefined ? { default: def.default } : {}), }, @@ -705,8 +814,11 @@ exports.Jack = Jack; // Unwrap and un-indent, so we can wrap description // strings however makes them look nice in the code. const normalize = (s, pre = false) => pre - // prepend a ZWSP to each line so cliui doesn't strip it. - ? s.split('\n').map(l => `\u200b${l}`).join('\n') + ? // prepend a ZWSP to each line so cliui doesn't strip it. + s + .split('\n') + .map(l => `\u200b${l}`) + .join('\n') : s // remove single line breaks, except for lists .replace(/([^\n])\n[ \t]*([^\n])/g, (_, $1, $2) => !/^[-*]/.test($2) ? `${$1} ${$2}` : `${$1}\n${$2}`) @@ -714,7 +826,22 @@ const normalize = (s, pre = false) => pre .replace(/([^\n])[ \t]+([^\n])/g, '$1 $2') // two line breaks are enough .replace(/\n{3,}/g, '\n\n') + // remove any spaces at the start of a line + .replace(/\n[ \t]+/g, '\n') + .trim(); +// normalize for markdown printing, remove leading spaces on lines +const normalizeMarkdown = (s, pre = false) => { + const n = normalize(s, pre).replace(/\\/g, '\\\\'); + return pre + ? `\`\`\`\n${n.replace(/\u200b/g, '')}\n\`\`\`` + : n.replace(/\n +/g, '\n').trim(); +}; +const normalizeOneLine = (s, pre = false) => { + const n = normalize(s, pre) + .replace(/[\s\u200b]+/g, ' ') .trim(); + return pre ? `\`${n}\`` : n; +}; /** * Main entry point. Create and return a {@link Jack} object. */ diff --git a/deps/npm/node_modules/jackspeak/dist/commonjs/package.json b/deps/npm/node_modules/jackspeak/dist/commonjs/package.json new file mode 100644 index 00000000000000..0292b9956f2e40 --- /dev/null +++ b/deps/npm/node_modules/jackspeak/dist/commonjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/deps/npm/node_modules/jackspeak/dist/cjs/parse-args.js b/deps/npm/node_modules/jackspeak/dist/commonjs/parse-args.js similarity index 84% rename from deps/npm/node_modules/jackspeak/dist/cjs/parse-args.js rename to deps/npm/node_modules/jackspeak/dist/commonjs/parse-args.js index 471b4d97dc9960..ab628be8c9d5cc 100644 --- a/deps/npm/node_modules/jackspeak/dist/cjs/parse-args.js +++ b/deps/npm/node_modules/jackspeak/dist/commonjs/parse-args.js @@ -34,9 +34,17 @@ const pvs = pv .replace(/^v/, '') .split('.') .map(s => parseInt(s, 10)); +/* c8 ignore start */ +const [major = 0, minor = 0] = pvs; +/* c8 ignore stop */ let { parseArgs: pa } = util; -if (!pa || pvs[0] > 18 || pvs[1] < 11) { +/* c8 ignore start */ +if (!pa || + major < 16 || + (major === 18 && minor < 11) || + (major === 16 && minor < 19)) { + /* c8 ignore stop */ pa = require('@pkgjs/parseargs').parseArgs; } exports.parseArgs = pa; -//# sourceMappingURL=parse-args-cjs.js.map \ No newline at end of file +//# sourceMappingURL=parse-args-cjs.cjs.map \ No newline at end of file diff --git a/deps/npm/node_modules/jackspeak/dist/mjs/index.js b/deps/npm/node_modules/jackspeak/dist/esm/index.js similarity index 81% rename from deps/npm/node_modules/jackspeak/dist/mjs/index.js rename to deps/npm/node_modules/jackspeak/dist/esm/index.js index a3e2b6bab7cbb9..9914049f890269 100644 --- a/deps/npm/node_modules/jackspeak/dist/mjs/index.js +++ b/deps/npm/node_modules/jackspeak/dist/esm/index.js @@ -36,7 +36,9 @@ const toEnvVal = (value, delim = '\n') => { return str; }; const fromEnvVal = (env, type, multiple, delim = '\n') => (multiple - ? env.split(delim).map(v => fromEnvVal(v, type, false)) + ? env + ? env.split(delim).map(v => fromEnvVal(v, type, false)) + : [] : type === 'string' ? env : type === 'boolean' @@ -55,7 +57,9 @@ const valueType = (v) => typeof v === 'string' : Array.isArray(v) ? joinTypes([...new Set(v.map(v => valueType(v)))]) + '[]' : `${v.type}${v.multiple ? '[]' : ''}`; -const joinTypes = (types) => types.length === 1 ? types[0] : `(${types.join('|')})`; +const joinTypes = (types) => types.length === 1 && typeof types[0] === 'string' + ? types[0] + : `(${types.join('|')})`; const isValidValue = (v, type, multi) => { if (multi) { if (!Array.isArray(v)) @@ -182,6 +186,11 @@ const toParseArgsOptionsConfig = (options) => { const c = {}; for (const longOption in options) { const config = options[longOption]; + /* c8 ignore start */ + if (!config) { + throw new Error('config must be an object: ' + longOption); + } + /* c8 ignore start */ if (isConfigOption(config, 'number', true)) { c[longOption] = { type: 'string', @@ -206,8 +215,9 @@ const toParseArgsOptionsConfig = (options) => { default: conf.default, }; } + const clo = c[longOption]; if (typeof config.short === 'string') { - c[longOption].short = config.short; + clo.short = config.short; } if (config.type === 'boolean' && !longOption.startsWith('no-') && @@ -235,6 +245,7 @@ export class Jack { #envPrefix; #allowPositionals; #usage; + #usageMarkdown; constructor(options = {}) { this.#options = options; this.#allowPositionals = options.allowPositionals !== false; @@ -262,6 +273,12 @@ export class Jack { } for (const [field, value] of Object.entries(values)) { const my = this.#configSet[field]; + // already validated, just for TS's benefit + /* c8 ignore start */ + if (!my) { + throw new Error('unexpected field in config set: ' + field); + } + /* c8 ignore stop */ my.default = value; } return this; @@ -357,8 +374,9 @@ export class Jack { } if (my.multiple) { const pv = p.values; - pv[token.name] = pv[token.name] ?? []; - pv[token.name].push(value); + const tn = pv[token.name] ?? []; + pv[token.name] = tn; + tn.push(value); } else { const pv = p.values; @@ -373,7 +391,7 @@ export class Jack { } } for (const [field, value] of Object.entries(p.values)) { - const valid = this.#configSet[field].validate; + const valid = this.#configSet[field]?.validate; if (valid && !valid(value)) { throw new Error(`Invalid value provided for --${field}: ${JSON.stringify(value)}`); } @@ -381,6 +399,20 @@ export class Jack { this.#writeEnv(p); return p; } + /** + * do not set fields as 'no-foo' if 'foo' exists and both are bools + * just set foo. + */ + #noNoFields(f, val, s = f) { + if (!f.startsWith('no-') || typeof val !== 'boolean') + return; + const yes = f.substring('no-'.length); + // recurse so we get the core config key we care about. + this.#noNoFields(yes, val, s); + if (this.#configSet[yes]?.type === 'boolean') { + throw new Error(`do not set '${s}', instead set '${yes}' as desired.`); + } + } /** * Validate that any arbitrary object is a valid configuration `values` * object. Useful when loading config files or other sources. @@ -390,6 +422,7 @@ export class Jack { throw new Error('Invalid config: not an object'); } for (const field in o) { + this.#noNoFields(field, o[field]); const config = this.#configSet[field]; if (!config) { throw new Error(`Unknown config option: ${field}`); @@ -410,17 +443,17 @@ export class Jack { return; for (const [field, value] of Object.entries(p.values)) { const my = this.#configSet[field]; - this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(value, my.delim); + this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(value, my?.delim); } } /** * Add a heading to the usage output banner */ - heading(text, level) { + heading(text, level, { pre = false } = {}) { if (level === undefined) { level = this.#fields.some(r => isHeading(r)) ? 2 : 1; } - this.#fields.push({ type: 'heading', text, level }); + this.#fields.push({ type: 'heading', text, level, pre }); return this; } /** @@ -547,7 +580,7 @@ export class Jack { }); } else { - const cmd = basename(process.argv[1]); + const cmd = basename(String(process.argv[1])); const shortFlags = []; const shorts = []; const flags = []; @@ -578,12 +611,122 @@ export class Jack { } ui.div({ padding: [0, 0, 0, 0], text: '' }); const maybeDesc = this.#fields[start]; - if (isDescription(maybeDesc)) { + if (maybeDesc && isDescription(maybeDesc)) { const print = normalize(maybeDesc.text, maybeDesc.pre); start++; ui.div({ padding: [0, 0, 0, 0], text: print }); ui.div({ padding: [0, 0, 0, 0], text: '' }); } + const { rows, maxWidth } = this.#usageRows(start); + // every heading/description after the first gets indented by 2 + // extra spaces. + for (const row of rows) { + if (row.left) { + // If the row is too long, don't wrap it + // Bump the right-hand side down a line to make room + const configIndent = indent(Math.max(headingLevel, 2)); + if (row.left.length > maxWidth - 3) { + ui.div({ text: row.left, padding: [0, 0, 0, configIndent] }); + ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] }); + } + else { + ui.div({ + text: row.left, + padding: [0, 1, 0, configIndent], + width: maxWidth, + }, { padding: [0, 0, 0, 0], text: row.text }); + } + if (row.skipLine) { + ui.div({ padding: [0, 0, 0, 0], text: '' }); + } + } + else { + if (isHeading(row)) { + const { level } = row; + headingLevel = level; + // only h1 and h2 have bottom padding + // h3-h6 do not + const b = level <= 2 ? 1 : 0; + ui.div({ ...row, padding: [0, 0, b, indent(level)] }); + } + else { + ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] }); + } + } + } + return (this.#usage = ui.toString()); + } + /** + * Return the usage banner markdown for the given configuration + */ + usageMarkdown() { + if (this.#usageMarkdown) + return this.#usageMarkdown; + const out = []; + let headingLevel = 1; + const first = this.#fields[0]; + let start = first?.type === 'heading' ? 1 : 0; + if (first?.type === 'heading') { + out.push(`# ${normalizeOneLine(first.text)}`); + } + out.push('Usage:'); + if (this.#options.usage) { + out.push(normalizeMarkdown(this.#options.usage, true)); + } + else { + const cmd = basename(String(process.argv[1])); + const shortFlags = []; + const shorts = []; + const flags = []; + const opts = []; + for (const [field, config] of Object.entries(this.#configSet)) { + if (config.short) { + if (config.type === 'boolean') + shortFlags.push(config.short); + else + shorts.push([config.short, config.hint || field]); + } + else { + if (config.type === 'boolean') + flags.push(field); + else + opts.push([field, config.hint || field]); + } + } + const sf = shortFlags.length ? ' -' + shortFlags.join('') : ''; + const so = shorts.map(([k, v]) => ` --${k}=<${v}>`).join(''); + const lf = flags.map(k => ` --${k}`).join(''); + const lo = opts.map(([k, v]) => ` --${k}=<${v}>`).join(''); + const usage = `${cmd}${sf}${so}${lf}${lo}`.trim(); + out.push(normalizeMarkdown(usage, true)); + } + const maybeDesc = this.#fields[start]; + if (maybeDesc && isDescription(maybeDesc)) { + out.push(normalizeMarkdown(maybeDesc.text, maybeDesc.pre)); + start++; + } + const { rows } = this.#usageRows(start); + // heading level in markdown is number of # ahead of text + for (const row of rows) { + if (row.left) { + out.push('#'.repeat(headingLevel + 1) + + ' ' + + normalizeOneLine(row.left, true)); + if (row.text) + out.push(normalizeMarkdown(row.text)); + } + else if (isHeading(row)) { + const { level } = row; + headingLevel = level; + out.push(`${'#'.repeat(headingLevel)} ${normalizeOneLine(row.text, row.pre)}`); + } + else { + out.push(normalizeMarkdown(row.text, !!row.pre)); + } + } + return (this.#usageMarkdown = out.join('\n\n') + '\n'); + } + #usageRows(start) { // turn each config type into a row, and figure out the width of the // left hand indentation for the option descriptions. let maxMax = Math.max(12, Math.min(26, Math.floor(width / 3))); @@ -631,43 +774,7 @@ export class Jack { } rows.push(row); } - // every heading/description after the first gets indented by 2 - // extra spaces. - for (const row of rows) { - if (row.left) { - // If the row is too long, don't wrap it - // Bump the right-hand side down a line to make room - const configIndent = indent(Math.max(headingLevel, 2)); - if (row.left.length > maxWidth - 2) { - ui.div({ text: row.left, padding: [0, 0, 0, configIndent] }); - ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] }); - } - else { - ui.div({ - text: row.left, - padding: [0, 1, 0, configIndent], - width: maxWidth, - }, { padding: [0, 0, 0, 0], text: row.text }); - } - if (row.skipLine) { - ui.div({ padding: [0, 0, 0, 0], text: '' }); - } - } - else { - if (isHeading(row)) { - const { level } = row; - headingLevel = level; - // only h1 and h2 have bottom padding - // h3-h6 do not - const b = level <= 2 ? 1 : 0; - ui.div({ ...row, padding: [0, 0, b, indent(level)] }); - } - else { - ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] }); - } - } - } - return (this.#usage = ui.toString()); + return { rows, maxWidth }; } /** * Return the configuration options as a plain object @@ -680,7 +787,9 @@ export class Jack { ...(def.multiple ? { multiple: true } : {}), ...(def.delim ? { delim: def.delim } : {}), ...(def.short ? { short: def.short } : {}), - ...(def.description ? { description: def.description } : {}), + ...(def.description + ? { description: normalize(def.description) } + : {}), ...(def.validate ? { validate: def.validate } : {}), ...(def.default !== undefined ? { default: def.default } : {}), }, @@ -696,8 +805,11 @@ export class Jack { // Unwrap and un-indent, so we can wrap description // strings however makes them look nice in the code. const normalize = (s, pre = false) => pre - // prepend a ZWSP to each line so cliui doesn't strip it. - ? s.split('\n').map(l => `\u200b${l}`).join('\n') + ? // prepend a ZWSP to each line so cliui doesn't strip it. + s + .split('\n') + .map(l => `\u200b${l}`) + .join('\n') : s // remove single line breaks, except for lists .replace(/([^\n])\n[ \t]*([^\n])/g, (_, $1, $2) => !/^[-*]/.test($2) ? `${$1} ${$2}` : `${$1}\n${$2}`) @@ -705,7 +817,22 @@ const normalize = (s, pre = false) => pre .replace(/([^\n])[ \t]+([^\n])/g, '$1 $2') // two line breaks are enough .replace(/\n{3,}/g, '\n\n') + // remove any spaces at the start of a line + .replace(/\n[ \t]+/g, '\n') + .trim(); +// normalize for markdown printing, remove leading spaces on lines +const normalizeMarkdown = (s, pre = false) => { + const n = normalize(s, pre).replace(/\\/g, '\\\\'); + return pre + ? `\`\`\`\n${n.replace(/\u200b/g, '')}\n\`\`\`` + : n.replace(/\n +/g, '\n').trim(); +}; +const normalizeOneLine = (s, pre = false) => { + const n = normalize(s, pre) + .replace(/[\s\u200b]+/g, ' ') .trim(); + return pre ? `\`${n}\`` : n; +}; /** * Main entry point. Create and return a {@link Jack} object. */ diff --git a/deps/npm/node_modules/jackspeak/dist/esm/package.json b/deps/npm/node_modules/jackspeak/dist/esm/package.json new file mode 100644 index 00000000000000..7c34deb5837d8d --- /dev/null +++ b/deps/npm/node_modules/jackspeak/dist/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/deps/npm/node_modules/jackspeak/dist/esm/parse-args.js b/deps/npm/node_modules/jackspeak/dist/esm/parse-args.js new file mode 100644 index 00000000000000..6dbb4d813ceeb9 --- /dev/null +++ b/deps/npm/node_modules/jackspeak/dist/esm/parse-args.js @@ -0,0 +1,26 @@ +import * as util from 'util'; +const pv = typeof process === 'object' && + !!process && + typeof process.version === 'string' + ? process.version + : 'v0.0.0'; +const pvs = pv + .replace(/^v/, '') + .split('.') + .map(s => parseInt(s, 10)); +/* c8 ignore start */ +const [major = 0, minor = 0] = pvs; +/* c8 ignore stop */ +let { parseArgs: pa, } = util; +/* c8 ignore start */ +if (!pa || + major < 16 || + (major === 18 && minor < 11) || + (major === 16 && minor < 19)) { + /* c8 ignore stop */ + // Ignore because we will clobber it for commonjs + //@ts-ignore + pa = (await import('@pkgjs/parseargs')).parseArgs; +} +export const parseArgs = pa; +//# sourceMappingURL=parse-args.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/jackspeak/dist/mjs/package.json b/deps/npm/node_modules/jackspeak/dist/mjs/package.json deleted file mode 100644 index 3dbc1ca591c055..00000000000000 --- a/deps/npm/node_modules/jackspeak/dist/mjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/deps/npm/node_modules/jackspeak/dist/mjs/parse-args.js b/deps/npm/node_modules/jackspeak/dist/mjs/parse-args.js deleted file mode 100644 index 24ec319d38199c..00000000000000 --- a/deps/npm/node_modules/jackspeak/dist/mjs/parse-args.js +++ /dev/null @@ -1,19 +0,0 @@ -// polyfill that overwrites parse-args.ts in the mjs build -import { createRequire } from 'module'; -import * as util from 'util'; -const pv = typeof process === 'object' && - !!process && - typeof process.version === 'string' - ? process.version - : 'v0.0.0'; -const pvs = pv - .replace(/^v/, '') - .split('.') - .map(s => parseInt(s, 10)); -let { parseArgs: pa } = util; -if (!pa || pvs[0] > 18 || pvs[1] < 11) { - const require = createRequire(import.meta.url); - pa = require('@pkgjs/parseargs').parseArgs; -} -export const parseArgs = pa; -//# sourceMappingURL=parse-args-esm.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/jackspeak/package.json b/deps/npm/node_modules/jackspeak/package.json index afaa43e20ae4a3..e5e4752ae66368 100644 --- a/deps/npm/node_modules/jackspeak/package.json +++ b/deps/npm/node_modules/jackspeak/package.json @@ -1,19 +1,27 @@ { "name": "jackspeak", - "version": "2.2.1", + "version": "2.3.6", "description": "A very strict and proper argument parser.", - "main": "./dist/cjs/index.js", - "module": "./dist/mjs/index.js", - "types": "./dist/mjs/index.js", + "tshy": { + "main": true, + "exports": { + "./package.json": "./package.json", + ".": "./src/index.js" + } + }, + "main": "./dist/commonjs/index.js", + "types": "./dist/commonjs/index.d.ts", + "type": "module", "exports": { + "./package.json": "./package.json", ".": { "import": { - "types": "./dist/mjs/index.d.ts", - "default": "./dist/mjs/index.js" + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" }, "require": { - "types": "./dist/cjs/index.d.ts", - "default": "./dist/cjs/index.js" + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" } } }, @@ -25,13 +33,13 @@ "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", - "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash ./scripts/fixup.sh", + "prepare": "tshy", "pretest": "npm run prepare", "presnap": "npm run prepare", - "test": "c8 tap", - "snap": "c8 tap", + "test": "tap", + "snap": "tap", "format": "prettier --write . --loglevel warn", - "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts" + "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts" }, "license": "BlueOak-1.0.0", "prettier": { @@ -45,26 +53,14 @@ "arrowParens": "avoid", "endOfLine": "lf" }, - "tap": { - "coverage": false, - "node-arg": [ - "--no-warnings", - "--loader", - "ts-node/esm" - ], - "ts": false - }, "devDependencies": { - "@types/node": "^18.15.11", - "@types/pkgjs__parseargs": "^0.10.0", - "@types/tap": "^15.0.8", - "c8": "^7.13.0", - "eslint-config-prettier": "^8.8.0", + "@types/node": "^20.7.0", + "@types/pkgjs__parseargs": "^0.10.1", "prettier": "^2.8.6", - "tap": "^16.3.4", - "ts-node": "^10.9.1", - "typedoc": "^0.23.28", - "typescript": "^5.0.2" + "tap": "^18.1.4", + "tshy": "^1.2.2", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" }, "dependencies": { "@isaacs/cliui": "^8.0.2" diff --git a/deps/npm/node_modules/libnpmaccess/package.json b/deps/npm/node_modules/libnpmaccess/package.json index 9185e364a37600..78b60c3d62fe6c 100644 --- a/deps/npm/node_modules/libnpmaccess/package.json +++ b/deps/npm/node_modules/libnpmaccess/package.json @@ -1,6 +1,6 @@ { "name": "libnpmaccess", - "version": "8.0.0", + "version": "8.0.1", "description": "programmatic library for `npm access` commands", "author": "GitHub Inc.", "license": "ISC", @@ -17,7 +17,7 @@ "devDependencies": { "@npmcli/eslint-config": "^4.0.0", "@npmcli/mock-registry": "^1.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -29,7 +29,7 @@ "bugs": "https://github.com/npm/libnpmaccess/issues", "homepage": "https://npmjs.com/package/libnpmaccess", "dependencies": { - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "npm-registry-fetch": "^16.0.0" }, "engines": { @@ -41,14 +41,8 @@ ], "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmdiff/package.json b/deps/npm/node_modules/libnpmdiff/package.json index 9e8a7b62949bc1..f54a35ff5f868d 100644 --- a/deps/npm/node_modules/libnpmdiff/package.json +++ b/deps/npm/node_modules/libnpmdiff/package.json @@ -1,6 +1,6 @@ { "name": "libnpmdiff", - "version": "6.0.1", + "version": "6.0.2", "description": "The registry diff", "repository": { "type": "git", @@ -42,30 +42,24 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.1.0", + "@npmcli/arborist": "^7.2.0", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", "diff": "^5.1.0", "minimatch": "^9.0.0", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "pacote": "^17.0.4", - "tar": "^6.1.13" + "tar": "^6.2.0" }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmexec/package.json b/deps/npm/node_modules/libnpmexec/package.json index 5e49fe5264a3ae..5ab1484e216aba 100644 --- a/deps/npm/node_modules/libnpmexec/package.json +++ b/deps/npm/node_modules/libnpmexec/package.json @@ -1,6 +1,6 @@ { "name": "libnpmexec", - "version": "7.0.1", + "version": "7.0.2", "files": [ "bin/", "lib/" @@ -51,7 +51,7 @@ "devDependencies": { "@npmcli/eslint-config": "^4.0.0", "@npmcli/mock-registry": "^1.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "bin-links": "^4.0.1", "chalk": "^5.2.0", "just-extend": "^6.2.0", @@ -59,10 +59,10 @@ "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.1.0", + "@npmcli/arborist": "^7.2.0", "@npmcli/run-script": "^7.0.1", "ci-info": "^3.7.1", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "npmlog": "^7.0.1", "pacote": "^17.0.4", "proc-log": "^3.0.0", @@ -73,13 +73,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" } } diff --git a/deps/npm/node_modules/libnpmfund/package.json b/deps/npm/node_modules/libnpmfund/package.json index b20bfec92346b6..034e39c60d277d 100644 --- a/deps/npm/node_modules/libnpmfund/package.json +++ b/deps/npm/node_modules/libnpmfund/package.json @@ -1,6 +1,6 @@ { "name": "libnpmfund", - "version": "4.1.1", + "version": "5.0.0", "main": "lib/index.js", "files": [ "bin/", @@ -32,8 +32,8 @@ "license": "ISC", "scripts": { "lint": "eslint \"**/*.js\"", - "lintfix": "node ../.. run lint -- --fix", - "posttest": "node ../.. run lint", + "lintfix": "npm run lint -- --fix", + "posttest": "npm run lint", "test": "tap", "snap": "tap", "postlint": "template-oss-check", @@ -41,19 +41,20 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.1.0" + "@npmcli/arborist": "^7.2.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js" + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js", + "npm": "npm" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmhook/package.json b/deps/npm/node_modules/libnpmhook/package.json index a45f37652a804b..b59524f57b695f 100644 --- a/deps/npm/node_modules/libnpmhook/package.json +++ b/deps/npm/node_modules/libnpmhook/package.json @@ -35,7 +35,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -44,14 +44,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmorg/package.json b/deps/npm/node_modules/libnpmorg/package.json index f1964bca7eeb9b..596854acfc2a8c 100644 --- a/deps/npm/node_modules/libnpmorg/package.json +++ b/deps/npm/node_modules/libnpmorg/package.json @@ -1,6 +1,6 @@ { "name": "libnpmorg", - "version": "6.0.0", + "version": "6.0.1", "description": "Programmatic api for `npm org` commands", "author": "GitHub Inc.", "main": "lib/index.js", @@ -28,8 +28,8 @@ ], "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", - "minipass": "^7.0.3", + "@npmcli/template-oss": "4.19.0", + "minipass": "^7.0.4", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -49,14 +49,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmpack/package.json b/deps/npm/node_modules/libnpmpack/package.json index 88a80e95226183..d3ceea0882fc3b 100644 --- a/deps/npm/node_modules/libnpmpack/package.json +++ b/deps/npm/node_modules/libnpmpack/package.json @@ -1,6 +1,6 @@ { "name": "libnpmpack", - "version": "6.0.1", + "version": "6.0.2", "description": "Programmatic API for the bits behind npm pack", "author": "GitHub Inc.", "main": "lib/index.js", @@ -23,7 +23,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "spawk": "^1.7.1", "tap": "^16.3.8" @@ -36,9 +36,9 @@ "bugs": "https://github.com/npm/libnpmpack/issues", "homepage": "https://npmjs.com/package/libnpmpack", "dependencies": { - "@npmcli/arborist": "^7.1.0", + "@npmcli/arborist": "^7.2.0", "@npmcli/run-script": "^7.0.1", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "pacote": "^17.0.4" }, "engines": { @@ -46,14 +46,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmpublish/package.json b/deps/npm/node_modules/libnpmpublish/package.json index 3dcaf98e84782d..f5081a05188660 100644 --- a/deps/npm/node_modules/libnpmpublish/package.json +++ b/deps/npm/node_modules/libnpmpublish/package.json @@ -1,6 +1,6 @@ { "name": "libnpmpublish", - "version": "9.0.0", + "version": "9.0.1", "description": "Programmatic API for the bits behind npm publish and unpublish", "author": "GitHub Inc.", "main": "lib/index.js", @@ -26,7 +26,7 @@ "@npmcli/eslint-config": "^4.0.0", "@npmcli/mock-globals": "^1.0.0", "@npmcli/mock-registry": "^1.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -40,7 +40,7 @@ "dependencies": { "ci-info": "^3.6.1", "normalize-package-data": "^6.0.0", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7", @@ -52,14 +52,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmsearch/package.json b/deps/npm/node_modules/libnpmsearch/package.json index 9bd45de5f62cdb..1a1e06bb569bae 100644 --- a/deps/npm/node_modules/libnpmsearch/package.json +++ b/deps/npm/node_modules/libnpmsearch/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -45,14 +45,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmteam/package.json b/deps/npm/node_modules/libnpmteam/package.json index ca153ac301bf45..3b9ab774711858 100644 --- a/deps/npm/node_modules/libnpmteam/package.json +++ b/deps/npm/node_modules/libnpmteam/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "nock": "^13.3.3", "tap": "^16.3.8" }, @@ -39,14 +39,8 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" }, "tap": { "nyc-arg": [ diff --git a/deps/npm/node_modules/libnpmversion/package.json b/deps/npm/node_modules/libnpmversion/package.json index 6f3a5bd0b5155a..a440ee75cec7fc 100644 --- a/deps/npm/node_modules/libnpmversion/package.json +++ b/deps/npm/node_modules/libnpmversion/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "require-inject": "^1.4.4", "tap": "^16.3.8" }, @@ -48,13 +48,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", - "content": "../../scripts/template-oss/index.js", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ] + "version": "4.19.0", + "content": "../../scripts/template-oss/index.js" } } diff --git a/deps/npm/node_modules/minipass/dist/cjs/package.json b/deps/npm/node_modules/minipass/dist/cjs/package.json deleted file mode 100644 index 5bbefffbabee39..00000000000000 --- a/deps/npm/node_modules/minipass/dist/cjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/deps/npm/node_modules/minipass/dist/cjs/index.js b/deps/npm/node_modules/minipass/dist/commonjs/index.js similarity index 100% rename from deps/npm/node_modules/minipass/dist/cjs/index.js rename to deps/npm/node_modules/minipass/dist/commonjs/index.js diff --git a/deps/npm/node_modules/minipass/dist/commonjs/package.json b/deps/npm/node_modules/minipass/dist/commonjs/package.json new file mode 100644 index 00000000000000..0292b9956f2e40 --- /dev/null +++ b/deps/npm/node_modules/minipass/dist/commonjs/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/deps/npm/node_modules/minipass/dist/mjs/index.js b/deps/npm/node_modules/minipass/dist/esm/index.js similarity index 100% rename from deps/npm/node_modules/minipass/dist/mjs/index.js rename to deps/npm/node_modules/minipass/dist/esm/index.js diff --git a/deps/npm/node_modules/minipass/dist/esm/package.json b/deps/npm/node_modules/minipass/dist/esm/package.json new file mode 100644 index 00000000000000..7c34deb5837d8d --- /dev/null +++ b/deps/npm/node_modules/minipass/dist/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} \ No newline at end of file diff --git a/deps/npm/node_modules/minipass/dist/mjs/package.json b/deps/npm/node_modules/minipass/dist/mjs/package.json deleted file mode 100644 index 3dbc1ca591c055..00000000000000 --- a/deps/npm/node_modules/minipass/dist/mjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/deps/npm/node_modules/minipass/package.json b/deps/npm/node_modules/minipass/package.json index 6faaa247a5bc66..4398347289164c 100644 --- a/deps/npm/node_modules/minipass/package.json +++ b/deps/npm/node_modules/minipass/package.json @@ -1,22 +1,29 @@ { "name": "minipass", - "version": "7.0.3", + "version": "7.0.4", "description": "minimal implementation of a PassThrough stream", - "main": "./dist/cjs/index.js", - "module": "./dist/mjs/index.js", - "types": "./dist/cjs/index.js", + "main": "./dist/commonjs/index.js", + "types": "./dist/commonjs/index.d.ts", + "type": "module", + "tshy": { + "main": true, + "exports": { + "./package.json": "./package.json", + ".": "./src/index.ts" + } + }, "exports": { + "./package.json": "./package.json", ".": { "import": { - "types": "./dist/mjs/index.d.ts", - "default": "./dist/mjs/index.js" + "types": "./dist/esm/index.d.ts", + "default": "./dist/esm/index.js" }, "require": { - "types": "./dist/cjs/index.d.ts", - "default": "./dist/cjs/index.js" + "types": "./dist/commonjs/index.d.ts", + "default": "./dist/commonjs/index.js" } - }, - "./package.json": "./package.json" + } }, "files": [ "dist" @@ -25,24 +32,13 @@ "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", - "preprepare": "rm -rf dist", - "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash ./scripts/fixup.sh", + "prepare": "tshy", "pretest": "npm run prepare", "presnap": "npm run prepare", - "test": "c8 tap", - "snap": "c8 tap", + "test": "tap", + "snap": "tap", "format": "prettier --write . --loglevel warn", - "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts" - }, - "tap": { - "coverage": false, - "node-arg": [ - "--enable-source-maps", - "--no-warnings", - "--loader", - "ts-node/esm" - ], - "ts": false + "typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts" }, "prettier": { "semi": false, @@ -56,18 +52,17 @@ "endOfLine": "lf" }, "devDependencies": { + "@types/end-of-stream": "^1.4.2", "@types/node": "^20.1.2", - "@types/tap": "^15.0.8", - "c8": "^7.13.0", - "prettier": "^2.6.2", - "tap": "^16.3.0", - "ts-node": "^10.9.1", - "typedoc": "^0.24.8", - "typescript": "^5.1.3", "end-of-stream": "^1.4.0", "node-abort-controller": "^3.1.1", + "prettier": "^2.6.2", "sync-content": "^1.0.2", - "through2": "^2.0.3" + "tap": "^18.3.0", + "through2": "^2.0.3", + "tshy": "^1.2.2", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" }, "repository": "https://github.com/isaacs/minipass", "keywords": [ @@ -78,5 +73,10 @@ "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" + }, + "tap": { + "include": [ + "test/*.ts" + ] } } diff --git a/deps/npm/node_modules/npm-package-arg/lib/npa.js b/deps/npm/node_modules/npm-package-arg/lib/npa.js index f5ede2326e7b47..23bf68d2e04a39 100644 --- a/deps/npm/node_modules/npm-package-arg/lib/npa.js +++ b/deps/npm/node_modules/npm-package-arg/lib/npa.js @@ -4,7 +4,7 @@ module.exports.resolve = resolve module.exports.toPurl = toPurl module.exports.Result = Result -const url = require('url') +const { URL } = require('url') const HostedGit = require('hosted-git-info') const semver = require('semver') const path = global.FAKE_WINDOWS ? require('path').win32 : require('path') @@ -183,10 +183,11 @@ Result.prototype.toJSON = function () { return result } -function setGitCommittish (res, committish) { +// sets res.gitCommittish, res.gitRange, and res.gitSubdir +function setGitAttrs (res, committish) { if (!committish) { res.gitCommittish = null - return res + return } // for each :: separated item: @@ -224,8 +225,6 @@ function setGitCommittish (res, committish) { } log.warn('npm-package-arg', `ignoring unknown key "${name}"`) } - - return res } function fromFile (res, where) { @@ -245,10 +244,10 @@ function fromFile (res, where) { const rawWithPrefix = prefix + res.rawSpec let rawNoPrefix = rawWithPrefix.replace(/^file:/, '') try { - resolvedUrl = new url.URL(rawWithPrefix, `file://${path.resolve(where)}/`) - specUrl = new url.URL(rawWithPrefix) + resolvedUrl = new URL(rawWithPrefix, `file://${path.resolve(where)}/`) + specUrl = new URL(rawWithPrefix) } catch (originalError) { - const er = new Error('Invalid file: URL, must comply with RFC 8909') + const er = new Error('Invalid file: URL, must comply with RFC 8089') throw Object.assign(er, { raw: res.rawSpec, spec: res, @@ -257,11 +256,11 @@ function fromFile (res, where) { }) } - // XXX backwards compatibility lack of compliance with RFC 8909 + // XXX backwards compatibility lack of compliance with RFC 8089 if (resolvedUrl.host && resolvedUrl.host !== 'localhost') { const rawSpec = res.rawSpec.replace(/^file:\/\//, 'file:///') - resolvedUrl = new url.URL(rawSpec, `file://${path.resolve(where)}/`) - specUrl = new url.URL(rawSpec) + resolvedUrl = new URL(rawSpec, `file://${path.resolve(where)}/`) + specUrl = new URL(rawSpec) rawNoPrefix = rawSpec.replace(/^file:/, '') } // turn file:/../foo into file:../foo @@ -269,11 +268,11 @@ function fromFile (res, where) { // in the previous step to make it a file protocol url with a leading slash if (/^\/{1,3}\.\.?(\/|$)/.test(rawNoPrefix)) { const rawSpec = res.rawSpec.replace(/^file:\/{1,3}/, 'file:') - resolvedUrl = new url.URL(rawSpec, `file://${path.resolve(where)}/`) - specUrl = new url.URL(rawSpec) + resolvedUrl = new URL(rawSpec, `file://${path.resolve(where)}/`) + specUrl = new URL(rawSpec) rawNoPrefix = rawSpec.replace(/^file:/, '') } - // XXX end RFC 8909 violation backwards compatibility section + // XXX end RFC 8089 violation backwards compatibility section // turn /C:/blah into just C:/blah on windows let specPath = decodeURIComponent(specUrl.pathname) @@ -303,7 +302,8 @@ function fromHostedGit (res, hosted) { res.hosted = hosted res.saveSpec = hosted.toString({ noGitPlus: false, noCommittish: false }) res.fetchSpec = hosted.getDefaultRepresentation() === 'shortcut' ? null : hosted.toString() - return setGitCommittish(res, hosted.committish) + setGitAttrs(res, hosted.committish) + return res } function unsupportedURLType (protocol, spec) { @@ -312,54 +312,51 @@ function unsupportedURLType (protocol, spec) { return err } -function matchGitScp (spec) { - // git ssh specifiers are overloaded to also use scp-style git - // specifiers, so we have to parse those out and treat them special. - // They are NOT true URIs, so we can't hand them to `url.parse`. - // - // This regex looks for things that look like: - // git+ssh://git@my.custom.git.com:username/project.git#deadbeef - // - // ...and various combinations. The username in the beginning is *required*. - const matched = spec.match(/^git\+ssh:\/\/([^:#]+:[^#]+(?:\.git)?)(?:#(.*))?$/i) - return matched && !matched[1].match(/:[0-9]+\/?.*$/i) && { - fetchSpec: matched[1], - gitCommittish: matched[2] == null ? null : matched[2], - } -} - function fromURL (res) { - // eslint-disable-next-line node/no-deprecated-api - const urlparse = url.parse(res.rawSpec) - res.saveSpec = res.rawSpec + let rawSpec = res.rawSpec + res.saveSpec = rawSpec + if (rawSpec.startsWith('git+ssh:')) { + // git ssh specifiers are overloaded to also use scp-style git + // specifiers, so we have to parse those out and treat them special. + // They are NOT true URIs, so we can't hand them to URL. + + // This regex looks for things that look like: + // git+ssh://git@my.custom.git.com:username/project.git#deadbeef + // ...and various combinations. The username in the beginning is *required*. + const matched = rawSpec.match(/^git\+ssh:\/\/([^:#]+:[^#]+(?:\.git)?)(?:#(.*))?$/i) + if (matched && !matched[1].match(/:[0-9]+\/?.*$/i)) { + res.type = 'git' + setGitAttrs(res, matched[2]) + res.fetchSpec = matched[1] + return res + } + } else if (rawSpec.startsWith('git+file://')) { + // URL can't handle windows paths + rawSpec = rawSpec.replace(/\\/g, '/') + } + const parsedUrl = new URL(rawSpec) // check the protocol, and then see if it's git or not - switch (urlparse.protocol) { + switch (parsedUrl.protocol) { case 'git:': case 'git+http:': case 'git+https:': case 'git+rsync:': case 'git+ftp:': case 'git+file:': - case 'git+ssh:': { + case 'git+ssh:': res.type = 'git' - const match = urlparse.protocol === 'git+ssh:' ? matchGitScp(res.rawSpec) - : null - if (match) { - setGitCommittish(res, match.gitCommittish) - res.fetchSpec = match.fetchSpec + setGitAttrs(res, parsedUrl.hash.slice(1)) + if (parsedUrl.protocol === 'git+file:' && /^git\+file:\/\/[a-z]:/i.test(rawSpec)) { + // URL can't handle drive letters on windows file paths, the host can't contain a : + res.fetchSpec = `git+file://${parsedUrl.host.toLowerCase()}:${parsedUrl.pathname}` } else { - setGitCommittish(res, urlparse.hash != null ? urlparse.hash.slice(1) : '') - urlparse.protocol = urlparse.protocol.replace(/^git[+]/, '') - if (urlparse.protocol === 'file:' && /^git\+file:\/\/[a-z]:/i.test(res.rawSpec)) { - // keep the drive letter : on windows file paths - urlparse.host += ':' - urlparse.hostname += ':' - } - delete urlparse.hash - res.fetchSpec = url.format(urlparse) + parsedUrl.hash = '' + res.fetchSpec = parsedUrl.toString() + } + if (res.fetchSpec.startsWith('git+')) { + res.fetchSpec = res.fetchSpec.slice(4) } break - } case 'http:': case 'https:': res.type = 'remote' @@ -367,7 +364,7 @@ function fromURL (res) { break default: - throw unsupportedURLType(urlparse.protocol, res.rawSpec) + throw unsupportedURLType(parsedUrl.protocol, rawSpec) } return res diff --git a/deps/npm/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/npm-package-arg/package.json index 9ba1d135f3ebf0..f7965d5a007c9d 100644 --- a/deps/npm/node_modules/npm-package-arg/package.json +++ b/deps/npm/node_modules/npm-package-arg/package.json @@ -1,6 +1,6 @@ { "name": "npm-package-arg", - "version": "11.0.0", + "version": "11.0.1", "description": "Parse the things that can be arguments to `npm install`", "main": "./lib/npa.js", "directories": { @@ -61,6 +61,7 @@ "16.x", "18.0.0", "18.x" - ] + ], + "npmSpec": "next-9" } } diff --git a/deps/npm/node_modules/tar/lib/pack.js b/deps/npm/node_modules/tar/lib/pack.js index 938ece8e731458..d533a068f579f7 100644 --- a/deps/npm/node_modules/tar/lib/pack.js +++ b/deps/npm/node_modules/tar/lib/pack.js @@ -79,14 +79,26 @@ const Pack = warner(class Pack extends Minipass { this.portable = !!opt.portable this.zip = null - if (opt.gzip) { - if (typeof opt.gzip !== 'object') { - opt.gzip = {} + + if (opt.gzip || opt.brotli) { + if (opt.gzip && opt.brotli) { + throw new TypeError('gzip and brotli are mutually exclusive') } - if (this.portable) { - opt.gzip.portable = true + if (opt.gzip) { + if (typeof opt.gzip !== 'object') { + opt.gzip = {} + } + if (this.portable) { + opt.gzip.portable = true + } + this.zip = new zlib.Gzip(opt.gzip) + } + if (opt.brotli) { + if (typeof opt.brotli !== 'object') { + opt.brotli = {} + } + this.zip = new zlib.BrotliCompress(opt.brotli) } - this.zip = new zlib.Gzip(opt.gzip) this.zip.on('data', chunk => super.write(chunk)) this.zip.on('end', _ => super.end()) this.zip.on('drain', _ => this[ONDRAIN]()) diff --git a/deps/npm/node_modules/tar/lib/parse.js b/deps/npm/node_modules/tar/lib/parse.js index 4b85915cbe01ee..94e53042fad560 100644 --- a/deps/npm/node_modules/tar/lib/parse.js +++ b/deps/npm/node_modules/tar/lib/parse.js @@ -97,6 +97,16 @@ module.exports = warner(class Parser extends EE { this.strict = !!opt.strict this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize this.filter = typeof opt.filter === 'function' ? opt.filter : noop + // Unlike gzip, brotli doesn't have any magic bytes to identify it + // Users need to explicitly tell us they're extracting a brotli file + // Or we infer from the file extension + const isTBR = (opt.file && ( + opt.file.endsWith('.tar.br') || opt.file.endsWith('.tbr'))) + // if it's a tbr file it MIGHT be brotli, but we don't know until + // we look at it and verify it's not a valid tar file. + this.brotli = !opt.gzip && opt.brotli !== undefined ? opt.brotli + : isTBR ? undefined + : false // have to set this so that streams are ok piping into it this.writable = true @@ -347,7 +357,9 @@ module.exports = warner(class Parser extends EE { } // first write, might be gzipped - if (this[UNZIP] === null && chunk) { + const needSniff = this[UNZIP] === null || + this.brotli === undefined && this[UNZIP] === false + if (needSniff && chunk) { if (this[BUFFER]) { chunk = Buffer.concat([this[BUFFER], chunk]) this[BUFFER] = null @@ -356,15 +368,45 @@ module.exports = warner(class Parser extends EE { this[BUFFER] = chunk return true } + + // look for gzip header for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) { if (chunk[i] !== gzipHeader[i]) { this[UNZIP] = false } } - if (this[UNZIP] === null) { + + const maybeBrotli = this.brotli === undefined + if (this[UNZIP] === false && maybeBrotli) { + // read the first header to see if it's a valid tar file. If so, + // we can safely assume that it's not actually brotli, despite the + // .tbr or .tar.br file extension. + // if we ended before getting a full chunk, yes, def brotli + if (chunk.length < 512) { + if (this[ENDED]) { + this.brotli = true + } else { + this[BUFFER] = chunk + return true + } + } else { + // if it's tar, it's pretty reliably not brotli, chances of + // that happening are astronomical. + try { + new Header(chunk.slice(0, 512)) + this.brotli = false + } catch (_) { + this.brotli = true + } + } + } + + if (this[UNZIP] === null || (this[UNZIP] === false && this.brotli)) { const ended = this[ENDED] this[ENDED] = false - this[UNZIP] = new zlib.Unzip() + this[UNZIP] = this[UNZIP] === null + ? new zlib.Unzip() + : new zlib.BrotliDecompress() this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk)) this[UNZIP].on('error', er => this.abort(er)) this[UNZIP].on('end', _ => { @@ -502,6 +544,7 @@ module.exports = warner(class Parser extends EE { this[UNZIP].end(chunk) } else { this[ENDED] = true + if (this.brotli === undefined) chunk = chunk || Buffer.alloc(0) this.write(chunk) } } diff --git a/deps/npm/node_modules/tar/lib/replace.js b/deps/npm/node_modules/tar/lib/replace.js index c6e619be6f0326..8db6800bdf4644 100644 --- a/deps/npm/node_modules/tar/lib/replace.js +++ b/deps/npm/node_modules/tar/lib/replace.js @@ -23,7 +23,7 @@ module.exports = (opt_, files, cb) => { throw new TypeError('file is required') } - if (opt.gzip) { + if (opt.gzip || opt.brotli || opt.file.endsWith('.br') || opt.file.endsWith('.tbr')) { throw new TypeError('cannot append to compressed archives') } diff --git a/deps/npm/node_modules/tar/lib/update.js b/deps/npm/node_modules/tar/lib/update.js index ded977dc1dec0f..4d328543b315e4 100644 --- a/deps/npm/node_modules/tar/lib/update.js +++ b/deps/npm/node_modules/tar/lib/update.js @@ -13,7 +13,7 @@ module.exports = (opt_, files, cb) => { throw new TypeError('file is required') } - if (opt.gzip) { + if (opt.gzip || opt.brotli || opt.file.endsWith('.br') || opt.file.endsWith('.tbr')) { throw new TypeError('cannot append to compressed archives') } diff --git a/deps/npm/node_modules/tar/package.json b/deps/npm/node_modules/tar/package.json index f59f54ae837bd2..46d91ee1b299cf 100644 --- a/deps/npm/node_modules/tar/package.json +++ b/deps/npm/node_modules/tar/package.json @@ -2,20 +2,15 @@ "author": "GitHub Inc.", "name": "tar", "description": "tar for node", - "version": "6.1.15", + "version": "6.2.0", "repository": { "type": "git", "url": "https://github.com/isaacs/node-tar.git" }, "scripts": { "genparse": "node scripts/generate-parse-fixtures.js", - "template-oss-apply": "template-oss-apply --force", - "lint": "eslint \"**/*.js\"", - "postlint": "template-oss-check", - "lintfix": "npm run lint -- --fix", "snap": "tap", - "test": "tap", - "posttest": "npm run lint" + "test": "tap" }, "dependencies": { "chownr": "^2.0.0", diff --git a/deps/npm/package.json b/deps/npm/package.json index a95496f1a3eb01..3246377f0cb725 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,5 +1,5 @@ { - "version": "10.1.0", + "version": "10.2.0", "name": "npm", "description": "a package manager for JavaScript", "workspaces": [ @@ -52,8 +52,8 @@ }, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.1.0", - "@npmcli/config": "^7.2.0", + "@npmcli/arborist": "^7.2.0", + "@npmcli/config": "^8.0.0", "@npmcli/fs": "^3.1.0", "@npmcli/map-workspaces": "^3.0.4", "@npmcli/package-json": "^5.0.0", @@ -70,34 +70,35 @@ "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.3", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^7.0.1", "ini": "^4.1.1", "init-package-json": "^6.0.0", "is-cidr": "^4.0.2", "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^8.0.0", - "libnpmdiff": "^6.0.1", - "libnpmexec": "^7.0.1", - "libnpmfund": "^4.1.1", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.2", + "libnpmexec": "^7.0.2", + "libnpmfund": "^5.0.0", "libnpmhook": "^10.0.0", - "libnpmorg": "^6.0.0", - "libnpmpack": "^6.0.1", - "libnpmpublish": "^9.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^6.0.2", + "libnpmpublish": "^9.0.1", "libnpmsearch": "^7.0.0", "libnpmteam": "^6.0.0", "libnpmversion": "^5.0.0", "make-fetch-happen": "^13.0.0", "minimatch": "^9.0.3", - "minipass": "^7.0.3", + "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", "node-gyp": "^9.4.0", "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.1", "npm-pick-manifest": "^9.0.0", "npm-profile": "^9.0.0", "npm-registry-fetch": "^16.0.0", @@ -110,9 +111,11 @@ "qrcode-terminal": "^0.12.0", "read": "^2.1.0", "semver": "^7.5.4", + "spdx-expression-parse": "^3.0.1", "ssri": "^10.0.5", + "strip-ansi": "^6.0.1", "supports-color": "^9.4.0", - "tar": "^6.1.15", + "tar": "^6.2.0", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", @@ -165,6 +168,7 @@ "ms", "node-gyp", "nopt", + "normalize-package-data", "npm-audit-report", "npm-install-checks", "npm-package-arg", @@ -180,7 +184,9 @@ "qrcode-terminal", "read", "semver", + "spdx-expression-parse", "ssri", + "strip-ansi", "supports-color", "tar", "text-table", @@ -196,8 +202,11 @@ "@npmcli/git": "^5.0.3", "@npmcli/mock-globals": "^1.0.0", "@npmcli/mock-registry": "^1.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "@tufjs/repo-mock": "^2.0.0", + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "ajv-formats-draft2019": "^1.6.1", "diff": "^5.1.0", "licensee": "^10.0.0", "nock": "^13.3.3", @@ -249,7 +258,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.18.0", + "version": "4.19.0", "content": "./scripts/template-oss/root.js" }, "license": "Artistic-2.0", diff --git a/deps/npm/tap-snapshots/test/lib/commands/completion.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/completion.js.test.cjs index b21e378b1cfbe8..089d92440f653f 100644 --- a/deps/npm/tap-snapshots/test/lib/commands/completion.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/commands/completion.js.test.cjs @@ -93,6 +93,7 @@ Array [ restart root run-script + sbom search set shrinkwrap diff --git a/deps/npm/tap-snapshots/test/lib/commands/config.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/config.js.test.cjs index 3001c98b3e03d8..b210601e9118b9 100644 --- a/deps/npm/tap-snapshots/test/lib/commands/config.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/commands/config.js.test.cjs @@ -89,6 +89,8 @@ exports[`test/lib/commands/config.js TAP config list --json > output matches sna "legacy-peer-deps": false, "link": false, "local-address": null, + "sbom-format": null, + "sbom-type": "library", "location": "user", "lockfile-version": null, "loglevel": "notice", @@ -290,6 +292,8 @@ save-optional = false save-peer = false save-prefix = "^" save-prod = false +sbom-format = null +sbom-type = "library" scope = "" script-shell = null searchexclude = "" diff --git a/deps/npm/tap-snapshots/test/lib/commands/publish.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/publish.js.test.cjs index 7a5c2ddcc3882b..0055c59c3641cf 100644 --- a/deps/npm/tap-snapshots/test/lib/commands/publish.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/commands/publish.js.test.cjs @@ -191,6 +191,7 @@ Object { "man/man1/npm-restart.1", "man/man1/npm-root.1", "man/man1/npm-run-script.1", + "man/man1/npm-sbom.1", "man/man1/npm-search.1", "man/man1/npm-shrinkwrap.1", "man/man1/npm-star.1", diff --git a/deps/npm/tap-snapshots/test/lib/commands/query.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/query.js.test.cjs index a6dbfcf7c693c8..e7321354689653 100644 --- a/deps/npm/tap-snapshots/test/lib/commands/query.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/commands/query.js.test.cjs @@ -99,6 +99,54 @@ exports[`test/lib/commands/query.js TAP linked node > should return linked node ] ` +exports[`test/lib/commands/query.js TAP package-lock-only with package lock > should return valid response with only lock info 1`] = ` +[ + { + "name": "project", + "dependencies": { + "a": "^1.0.0" + }, + "pkgid": "project@", + "location": "", + "path": "{CWD}/prefix", + "realpath": "{CWD}/prefix", + "resolved": null, + "from": [], + "to": [ + "node_modules/a" + ], + "dev": false, + "inBundle": false, + "deduped": false, + "overridden": false, + "queryContext": {} + }, + { + "version": "1.2.3", + "resolved": "https://dummy.npmjs.org/a/-/a-1.2.3.tgz", + "integrity": "sha512-dummy", + "engines": { + "node": ">=14.17" + }, + "name": "a", + "_id": "a@1.2.3", + "pkgid": "a@1.2.3", + "location": "node_modules/a", + "path": "{CWD}/prefix/node_modules/a", + "realpath": "{CWD}/prefix/node_modules/a", + "from": [ + "" + ], + "to": [], + "dev": false, + "inBundle": false, + "deduped": false, + "overridden": false, + "queryContext": {} + } +] +` + exports[`test/lib/commands/query.js TAP recursive tree > should return everything in the tree, accounting for recursion 1`] = ` [ { diff --git a/deps/npm/tap-snapshots/test/lib/commands/sbom.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/sbom.js.test.cjs new file mode 100644 index 00000000000000..0079832f7427fb --- /dev/null +++ b/deps/npm/tap-snapshots/test/lib/commands/sbom.js.test.cjs @@ -0,0 +1,1410 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/lib/commands/sbom.js TAP sbom --omit dev > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-sbom@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-sbom-1.0.0" + ], + "packages": [ + { + "name": "test-npm-sbom", + "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.0.0" + } + ] + }, + { + "name": "dog", + "SPDXID": "SPDXRef-Package-dog-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo/node_modules/dog", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dog@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dog-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom --omit optional > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-sbom@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-sbom-1.0.0" + ], + "packages": [ + { + "name": "test-npm-sbom", + "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom --omit peer > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-sbom@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-sbom-1.0.0" + ], + "packages": [ + { + "name": "test-npm-sbom", + "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom basic sbom - cyclonedx > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0" + } + ], + "component": { + "bom-ref": "test-npm-sbom@1.0.0", + "type": "application", + "name": "prefix", + "version": "1.0.0", + "scope": "required", + "purl": "pkg:npm/test-npm-sbom@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [ + { + "bom-ref": "chai@1.0.0", + "type": "library", + "name": "chai", + "version": "1.0.0", + "scope": "required", + "purl": "pkg:npm/chai@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/chai" + } + ], + "externalReferences": [] + }, + { + "bom-ref": "foo@1.0.0", + "type": "library", + "name": "foo", + "version": "1.0.0", + "scope": "required", + "purl": "pkg:npm/foo@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/foo" + } + ], + "externalReferences": [] + }, + { + "bom-ref": "dog@1.0.0", + "type": "library", + "name": "dog", + "version": "1.0.0", + "scope": "required", + "purl": "pkg:npm/dog@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/foo/node_modules/dog" + } + ], + "externalReferences": [] + } + ], + "dependencies": [ + { + "ref": "test-npm-sbom@1.0.0", + "dependsOn": [ + "foo@1.0.0", + "chai@1.0.0" + ] + }, + { + "ref": "chai@1.0.0", + "dependsOn": [] + }, + { + "ref": "foo@1.0.0", + "dependsOn": [ + "dog@1.0.0" + ] + }, + { + "ref": "dog@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom basic sbom - spdx > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-sbom@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-sbom-1.0.0" + ], + "packages": [ + { + "name": "test-npm-sbom", + "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.0.0" + } + ] + }, + { + "name": "dog", + "SPDXID": "SPDXRef-Package-dog-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo/node_modules/dog", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dog@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-sbom-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dog-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom extraneous dep > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-ls@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-ls-1.0.0" + ], + "packages": [ + { + "name": "test-npm-ls", + "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.0.0" + } + ] + }, + { + "name": "dog", + "SPDXID": "SPDXRef-Package-dog-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo/node_modules/dog", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dog@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dog-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "OPTIONAL_DEPENDENCY_OF" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should filter worksapces with --workspace > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "workspaces-tree@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-workspaces-tree-1.0.0" + ], + "packages": [ + { + "name": "workspaces-tree", + "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" + } + ] + }, + { + "name": "a", + "SPDXID": "SPDXRef-Package-a-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/a", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/a@1.0.0" + } + ] + }, + { + "name": "d", + "SPDXID": "SPDXRef-Package-d-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/d", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/d@1.0.0" + } + ] + }, + { + "name": "bar", + "SPDXID": "SPDXRef-Package-bar-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/bar", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/bar@1.0.0" + } + ] + }, + { + "name": "baz", + "SPDXID": "SPDXRef-Package-baz-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/baz", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/baz@1.0.0" + } + ] + }, + { + "name": "c", + "SPDXID": "SPDXRef-Package-c-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/c", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/c@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.1.1", + "versionInfo": "1.1.1", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.1.1" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-c-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-baz-1.0.0", + "relationshipType": "DEV_DEPENDENCY_OF" + }, + { + "spdxElementId": "SPDXRef-Package-d-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.1.1", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-bar-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should filter workspaces with multiple --workspace flags > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "workspaces-tree@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-workspaces-tree-1.0.0" + ], + "packages": [ + { + "name": "workspaces-tree", + "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" + } + ] + }, + { + "name": "e", + "SPDXID": "SPDXRef-Package-e-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/e", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/e@1.0.0" + } + ] + }, + { + "name": "f", + "SPDXID": "SPDXRef-Package-f-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/f", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/f@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-e-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-f-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should list workspaces properly with default configs > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "workspaces-tree@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-workspaces-tree-1.0.0" + ], + "packages": [ + { + "name": "workspaces-tree", + "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" + } + ] + }, + { + "name": "a", + "SPDXID": "SPDXRef-Package-a-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/a", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/a@1.0.0" + } + ] + }, + { + "name": "b", + "SPDXID": "SPDXRef-Package-b-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/b", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/b@1.0.0" + } + ] + }, + { + "name": "d", + "SPDXID": "SPDXRef-Package-d-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/d", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/d@1.0.0" + } + ] + }, + { + "name": "e", + "SPDXID": "SPDXRef-Package-e-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/e", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/e@1.0.0" + } + ] + }, + { + "name": "f", + "SPDXID": "SPDXRef-Package-f-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/f", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/f@1.0.0" + } + ] + }, + { + "name": "bar", + "SPDXID": "SPDXRef-Package-bar-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/bar", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/bar@1.0.0" + } + ] + }, + { + "name": "baz", + "SPDXID": "SPDXRef-Package-baz-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/baz", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/baz@1.0.0" + } + ] + }, + { + "name": "c", + "SPDXID": "SPDXRef-Package-c-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/c", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/c@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.1.1", + "versionInfo": "1.1.1", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.1.1" + } + ] + }, + { + "name": "pacote", + "SPDXID": "SPDXRef-Package-pacote-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/pacote", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/pacote@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-b-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-e-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-f-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-pacote-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-c-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-a-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-baz-1.0.0", + "relationshipType": "DEV_DEPENDENCY_OF" + }, + { + "spdxElementId": "SPDXRef-Package-d-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.1.1", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.1.1", + "relatedSpdxElement": "SPDXRef-Package-bar-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should not list workspaces with --no-workspaces > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "workspaces-tree@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-workspaces-tree-1.0.0" + ], + "packages": [ + { + "name": "workspaces-tree", + "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" + } + ] + }, + { + "name": "pacote", + "SPDXID": "SPDXRef-Package-pacote-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/pacote", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/pacote@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-workspaces-tree-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-pacote-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom lock file only - missing lock file > must match snapshot 1`] = ` + +` + +exports[`test/lib/commands/sbom.js TAP sbom lock file only > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-ls@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-ls-1.0.0" + ], + "packages": [ + { + "name": "test-npm-ls", + "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + }, + { + "name": "dog", + "SPDXID": "SPDXRef-Package-dog-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/dog", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dog@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dog-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom missing (optional) dep > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "test-npm-ls@1.0.0", + "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0" + ] + }, + "documentDescribes": [ + "SPDXRef-Package-test-npm-ls-1.0.0" + ], + "packages": [ + { + "name": "test-npm-ls", + "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "LIBRARY", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" + } + ] + }, + { + "name": "chai", + "SPDXID": "SPDXRef-Package-chai-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/chai", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/chai@1.0.0" + } + ] + }, + { + "name": "foo", + "SPDXID": "SPDXRef-Package-foo-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/foo@1.0.0" + } + ] + }, + { + "name": "dog", + "SPDXID": "SPDXRef-Package-dog-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "node_modules/foo/node_modules/dog", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dog@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-test-npm-ls-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-chai-1.0.0", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-foo-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dog-1.0.0", + "relationshipType": "DEPENDS_ON" + } + ] +} +` + +exports[`test/lib/commands/sbom.js TAP sbom missing format > must match snapshot 1`] = ` + +` diff --git a/deps/npm/tap-snapshots/test/lib/commands/search.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/search.js.test.cjs index a47cdba22003fe..50032deb745739 100644 --- a/deps/npm/tap-snapshots/test/lib/commands/search.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/commands/search.js.test.cjs @@ -21,7 +21,7 @@ NAME | DESCRIPTION | AUTHOR | DATE libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 | libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces libnpmversion | library to do the… | =nlf… | 2020-11-04 | 1.0.7 | @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 | pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 | @@ -39,7 +39,7 @@ NAME | DESCRIPTION | AUTHOR | DATE libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 |  libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces libnpmversion | library to do the… | =nlf… | 2020-11-04 | 1.0.7 |  @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 |  pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 |  @@ -56,7 +56,7 @@ libnpmteam npm Team management APIs =nlf =ruyadorno =darcyclarke =isaacs 2020-11 libnpmhook programmatic API for managing npm registry hooks =nlf =ruyadorno =darcyclarke =isaacs 2020-11-03 6.0.1 npm hooks registry npm api libnpmpublish Programmatic API for the bits behind npm publish and unpublish =nlf =ruyadorno =darcyclarke =isaacs 2020-11-03 4.0.0 libnpmfund Programmatic API for npm fund =nlf =ruyadorno =darcyclarke =isaacs 2020-12-08 1.0.2 npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces Retrieves a name:pathname Map for a given workspaces config =nlf =ruyadorno =darcyclarke =isaacs 2020-09-30 1.0.1 npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces Retrieves a name:pathname Map for a given workspaces config =nlf =ruyadorno =darcyclarke =isaacs 2020-09-30 1.0.1 npm bad map npmcli libnpm cli workspaces map-workspaces libnpmversion library to do the things that 'npm version' does =nlf =ruyadorno =darcyclarke =isaacs 2020-11-04 1.0.7 @types/libnpmsearch TypeScript definitions for libnpmsearch =types 2019-09-26 2.0.1 pkg-no-desc =lukekarrys 2019-09-26 1.0.0 @@ -80,7 +80,7 @@ libnpmteam | npm Team management… | =nlf… | 2020-11 libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 | libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces libnpmversion | library to do the… | =nlf… | 2020-11-04 | 1.0.7 | @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 | pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 | @@ -98,7 +98,7 @@ libnpmteam | npm Team management… | =nlf… | 2020-11 libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 | libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 | pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 | ` @@ -115,7 +115,7 @@ libnpmteam | npm Team management… | =nlf… | 2020-11 libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 | libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 | pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 | ` @@ -132,7 +132,7 @@ libnpmteam | npm Team management… | =nlf… | 2020-11 libnpmhook | programmatic API… | =nlf… | 2020-11-03 | 6.0.1 | npm hooks registry npm api libnpmpublish | Programmatic API… | =nlf… | 2020-11-03 | 4.0.0 | libnpmfund | Programmatic API… | =nlf… | 2020-12-08 | 1.0.2 | npm npmcli libnpm cli git fund gitfund -@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm npmcli libnpm cli workspaces map-workspaces +@npmcli/map-workspaces | Retrieves a… | =nlf… | 2020-09-30 | 1.0.1 | npm bad map npmcli libnpm cli workspaces map-workspaces @types/libnpmsearch | TypeScript… | =types | 2019-09-26 | 2.0.1 | pkg-no-desc | | =lukekarrys | 2019-09-26 | 1.0.0 | ` diff --git a/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs b/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs index a7e3e6f665af18..55397121bc0da8 100644 --- a/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs @@ -145,6 +145,7 @@ Array [ "restart", "root", "run-script", + "sbom", "search", "set", "shrinkwrap", @@ -1405,6 +1406,26 @@ or \`--save-optional\` are true. +#### \`sbom-format\` + +* Default: null +* Type: "cyclonedx" or "spdx" + +SBOM format to use when generating SBOMs. + + + +#### \`sbom-type\` + +* Default: "library" +* Type: "library", "application", or "framework" + +The type of package described by the generated SBOM. For SPDX, this is the +value for the \`primaryPackagePurpose\` fieled. For CycloneDX, this is the +value for the \`type\` field. + + + #### \`scope\` * Default: the scope of the current project, if any, or "" @@ -2083,6 +2104,8 @@ Array [ "legacy-peer-deps", "link", "local-address", + "sbom-format", + "sbom-type", "location", "lockfile-version", "loglevel", @@ -2225,6 +2248,8 @@ Array [ "legacy-bundling", "legacy-peer-deps", "local-address", + "sbom-format", + "sbom-type", "location", "lockfile-version", "loglevel", @@ -2415,6 +2440,8 @@ Object { "save": true, "saveBundle": false, "savePrefix": "^", + "sbomFormat": null, + "sbomType": "library", "scope": "", "scriptShell": undefined, "search": Object { @@ -2552,8 +2579,9 @@ npm audit [fix|signatures] Options: [--audit-level ] [--dry-run] [-f|--force] -[--json] [--package-lock-only] +[--json] [--package-lock-only] [--no-package-lock] [--omit [--omit ...]] +[--include [--include ...]] [--foreground-scripts] [--ignore-scripts] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -2569,7 +2597,9 @@ npm audit [fix|signatures] #### \`force\` #### \`json\` #### \`package-lock-only\` +#### \`package-lock\` #### \`omit\` +#### \`include\` #### \`foreground-scripts\` #### \`ignore-scripts\` #### \`workspace\` @@ -2641,6 +2671,7 @@ npm ci Options: [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] +[--include [--include ...]] [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] @@ -2660,6 +2691,7 @@ aliases: clean-install, ic, install-clean, isntall-clean #### \`legacy-bundling\` #### \`global-style\` #### \`omit\` +#### \`include\` #### \`strict-peer-deps\` #### \`foreground-scripts\` #### \`ignore-scripts\` @@ -2738,8 +2770,9 @@ npm dedupe Options: [--install-strategy ] [--legacy-bundling] [--global-style] [--strict-peer-deps] [--no-package-lock] -[--omit [--omit ...]] [--ignore-scripts] -[--no-audit] [--no-bin-links] [--no-fund] [--dry-run] +[--omit [--omit ...]] +[--include [--include ...]] +[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -2759,6 +2792,7 @@ alias: ddp #### \`strict-peer-deps\` #### \`package-lock\` #### \`omit\` +#### \`include\` #### \`ignore-scripts\` #### \`audit\` #### \`bin-links\` @@ -2884,7 +2918,7 @@ alias: home ` exports[`test/lib/docs.js TAP usage doctor > must match snapshot 1`] = ` -Check your npm environment +Check the health of your npm environment Usage: npm doctor [ping] [registry] [versions] [environment] [permissions] [cache] @@ -3009,8 +3043,9 @@ npm find-dupes Options: [--install-strategy ] [--legacy-bundling] [--global-style] [--strict-peer-deps] [--no-package-lock] -[--omit [--omit ...]] [--ignore-scripts] -[--no-audit] [--no-bin-links] [--no-fund] +[--omit [--omit ...]] +[--include [--include ...]] +[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3026,6 +3061,7 @@ npm find-dupes #### \`strict-peer-deps\` #### \`package-lock\` #### \`omit\` +#### \`include\` #### \`ignore-scripts\` #### \`audit\` #### \`bin-links\` @@ -3159,7 +3195,9 @@ npm init (same as \`npx \`) npm init <@scope> (same as \`npx <@scope>/create\`) Options: -[-y|--yes] [-f|--force] [--scope <@scope>] +[--init-author-name ] [--init-author-url ] [--init-license ] +[--init-module ] [--init-version ] [-y|--yes] [-f|--force] +[--scope <@scope>] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--no-workspaces-update] [--include-workspace-root] @@ -3174,6 +3212,11 @@ npm init <@scope> (same as \`npx <@scope>/create\`) aliases: create, innit \`\`\` +#### \`init-author-name\` +#### \`init-author-url\` +#### \`init-license\` +#### \`init-module\` +#### \`init-version\` #### \`yes\` #### \`force\` #### \`scope\` @@ -3194,6 +3237,7 @@ Options: [-E|--save-exact] [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] +[--include [--include ...]] [--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--package-lock-only] [--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [--cpu ] [--os ] @@ -3217,6 +3261,7 @@ aliases: add, i, in, ins, inst, insta, instal, isnt, isnta, isntal, isntall #### \`legacy-bundling\` #### \`global-style\` #### \`omit\` +#### \`include\` #### \`strict-peer-deps\` #### \`prefer-dedupe\` #### \`package-lock\` @@ -3244,6 +3289,7 @@ npm install-ci-test Options: [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] +[--include [--include ...]] [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] @@ -3263,6 +3309,7 @@ aliases: cit, clean-install-test, sit #### \`legacy-bundling\` #### \`global-style\` #### \`omit\` +#### \`include\` #### \`strict-peer-deps\` #### \`foreground-scripts\` #### \`ignore-scripts\` @@ -3287,6 +3334,7 @@ Options: [-E|--save-exact] [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] +[--include [--include ...]] [--strict-peer-deps] [--prefer-dedupe] [--no-package-lock] [--package-lock-only] [--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [--cpu ] [--os ] @@ -3310,6 +3358,7 @@ alias: it #### \`legacy-bundling\` #### \`global-style\` #### \`omit\` +#### \`include\` #### \`strict-peer-deps\` #### \`prefer-dedupe\` #### \`package-lock\` @@ -3339,8 +3388,9 @@ Options: [-E|--save-exact] [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--strict-peer-deps] [--no-package-lock] -[--omit [--omit ...]] [--ignore-scripts] -[--no-audit] [--no-bin-links] [--no-fund] [--dry-run] +[--omit [--omit ...]] +[--include [--include ...]] +[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3363,6 +3413,7 @@ alias: ln #### \`strict-peer-deps\` #### \`package-lock\` #### \`omit\` +#### \`include\` #### \`ignore-scripts\` #### \`audit\` #### \`bin-links\` @@ -3382,8 +3433,9 @@ npm ll [[<@scope>/] ...] Options: [-a|--all] [--json] [-l|--long] [-p|--parseable] [-g|--global] [--depth ] -[--omit [--omit ...]] [--link] -[--package-lock-only] [--unicode] +[--omit [--omit ...]] +[--include [--include ...]] +[--link] [--package-lock-only] [--unicode] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3404,6 +3456,7 @@ alias: la #### \`global\` #### \`depth\` #### \`omit\` +#### \`include\` #### \`link\` #### \`package-lock-only\` #### \`unicode\` @@ -3464,8 +3517,9 @@ npm ls Options: [-a|--all] [--json] [-l|--long] [-p|--parseable] [-g|--global] [--depth ] -[--omit [--omit ...]] [--link] -[--package-lock-only] [--unicode] +[--omit [--omit ...]] +[--include [--include ...]] +[--link] [--package-lock-only] [--unicode] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3486,6 +3540,7 @@ alias: list #### \`global\` #### \`depth\` #### \`omit\` +#### \`include\` #### \`link\` #### \`package-lock-only\` #### \`unicode\` @@ -3736,8 +3791,9 @@ Usage: npm prune [[<@scope>/]...] Options: -[--omit [--omit ...]] [--dry-run] -[--json] [--foreground-scripts] [--ignore-scripts] +[--omit [--omit ...]] +[--include [--include ...]] +[--dry-run] [--json] [--foreground-scripts] [--ignore-scripts] [-w|--workspace [-w|--workspace ...]] [-ws|--workspaces] [--include-workspace-root] [--install-links] @@ -3748,6 +3804,7 @@ npm prune [[<@scope>/]...] \`\`\` #### \`omit\` +#### \`include\` #### \`dry-run\` #### \`json\` #### \`foreground-scripts\` @@ -3796,7 +3853,7 @@ npm query Options: [-g|--global] [-w|--workspace [-w|--workspace ...]] -[-ws|--workspaces] [--include-workspace-root] +[-ws|--workspaces] [--include-workspace-root] [--package-lock-only] Run "npm help query" for more info @@ -3808,6 +3865,7 @@ npm query #### \`workspace\` #### \`workspaces\` #### \`include-workspace-root\` +#### \`package-lock-only\` ` exports[`test/lib/docs.js TAP usage rebuild > must match snapshot 1`] = ` @@ -3934,6 +3992,33 @@ aliases: run, rum, urn #### \`script-shell\` ` +exports[`test/lib/docs.js TAP usage sbom > must match snapshot 1`] = ` +Generate a Software Bill of Materials (SBOM) + +Usage: +npm sbom + +Options: +[--omit [--omit ...]] +[--package-lock-only] [--sbom-format ] +[--sbom-type ] +[-w|--workspace [-w|--workspace ...]] +[-ws|--workspaces] + +Run "npm help sbom" for more info + +\`\`\`bash +npm sbom +\`\`\` + +#### \`omit\` +#### \`package-lock-only\` +#### \`sbom-format\` +#### \`sbom-type\` +#### \`workspace\` +#### \`workspaces\` +` + exports[`test/lib/docs.js TAP usage search > must match snapshot 1`] = ` Search for packages @@ -4256,6 +4341,7 @@ Options: [-g|--global] [--install-strategy ] [--legacy-bundling] [--global-style] [--omit [--omit ...]] +[--include [--include ...]] [--strict-peer-deps] [--no-package-lock] [--foreground-scripts] [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] [-w|--workspace [-w|--workspace ...]] @@ -4277,6 +4363,7 @@ aliases: up, upgrade, udpate #### \`legacy-bundling\` #### \`global-style\` #### \`omit\` +#### \`include\` #### \`strict-peer-deps\` #### \`package-lock\` #### \`foreground-scripts\` diff --git a/deps/npm/tap-snapshots/test/lib/npm.js.test.cjs b/deps/npm/tap-snapshots/test/lib/npm.js.test.cjs index 7bebf9b78f2bb4..e29061291137eb 100644 --- a/deps/npm/tap-snapshots/test/lib/npm.js.test.cjs +++ b/deps/npm/tap-snapshots/test/lib/npm.js.test.cjs @@ -27,10 +27,10 @@ All commands: help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, - query, rebuild, repo, restart, root, run-script, search, - set, shrinkwrap, star, stars, start, stop, team, test, - token, uninstall, unpublish, unstar, update, version, view, - whoami + query, rebuild, repo, restart, root, run-script, sbom, + search, set, shrinkwrap, star, stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -76,13 +76,13 @@ All commands: profile, prune, publish, query, rebuild, repo, restart, root, - run-script, search, set, - shrinkwrap, star, stars, - start, stop, team, test, - token, uninstall, - unpublish, unstar, - update, version, view, - whoami + run-script, sbom, + search, set, shrinkwrap, + star, stars, start, + stop, team, test, token, + uninstall, unpublish, + unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -128,13 +128,13 @@ All commands: profile, prune, publish, query, rebuild, repo, restart, root, - run-script, search, set, - shrinkwrap, star, stars, - start, stop, team, test, - token, uninstall, - unpublish, unstar, - update, version, view, - whoami + run-script, sbom, + search, set, shrinkwrap, + star, stars, start, + stop, team, test, token, + uninstall, unpublish, + unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -168,10 +168,10 @@ All commands: help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, - query, rebuild, repo, restart, root, run-script, search, - set, shrinkwrap, star, stars, start, stop, team, test, - token, uninstall, unpublish, unstar, update, version, view, - whoami + query, rebuild, repo, restart, root, run-script, sbom, + search, set, shrinkwrap, star, stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -217,13 +217,13 @@ All commands: profile, prune, publish, query, rebuild, repo, restart, root, - run-script, search, set, - shrinkwrap, star, stars, - start, stop, team, test, - token, uninstall, - unpublish, unstar, - update, version, view, - whoami + run-script, sbom, + search, set, shrinkwrap, + star, stars, start, + stop, team, test, token, + uninstall, unpublish, + unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -269,13 +269,13 @@ All commands: profile, prune, publish, query, rebuild, repo, restart, root, - run-script, search, set, - shrinkwrap, star, stars, - start, stop, team, test, - token, uninstall, - unpublish, unstar, - update, version, view, - whoami + run-script, sbom, + search, set, shrinkwrap, + star, stars, start, + stop, team, test, token, + uninstall, unpublish, + unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -320,10 +320,10 @@ All commands: profile, prune, publish, query, rebuild, repo, restart, root, - run-script, search, set, - shrinkwrap, star, stars, - start, stop, team, test, - token, uninstall, + run-script, sbom, search, + set, shrinkwrap, star, + stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, view, whoami @@ -360,10 +360,10 @@ All commands: help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, - query, rebuild, repo, restart, root, run-script, search, - set, shrinkwrap, star, stars, start, stop, team, test, - token, uninstall, unpublish, unstar, update, version, view, - whoami + query, rebuild, repo, restart, root, run-script, sbom, + search, set, shrinkwrap, star, stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -397,10 +397,10 @@ All commands: help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, - query, rebuild, repo, restart, root, run-script, search, - set, shrinkwrap, star, stars, start, stop, team, test, - token, uninstall, unpublish, unstar, update, version, view, - whoami + query, rebuild, repo, restart, root, run-script, sbom, + search, set, shrinkwrap, star, stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} @@ -434,10 +434,10 @@ All commands: help-search, hook, init, install, install-ci-test, install-test, link, ll, login, logout, ls, org, outdated, owner, pack, ping, pkg, prefix, profile, prune, publish, - query, rebuild, repo, restart, root, run-script, search, - set, shrinkwrap, star, stars, start, stop, team, test, - token, uninstall, unpublish, unstar, update, version, view, - whoami + query, rebuild, repo, restart, root, run-script, sbom, + search, set, shrinkwrap, star, stars, start, stop, team, + test, token, uninstall, unpublish, unstar, update, version, + view, whoami Specify configs in the ini-formatted file: {USERCONFIG} diff --git a/deps/npm/tap-snapshots/test/lib/utils/sbom-cyclonedx.js.test.cjs b/deps/npm/tap-snapshots/test/lib/utils/sbom-cyclonedx.js.test.cjs new file mode 100644 index 00000000000000..878dfd4be4705b --- /dev/null +++ b/deps/npm/tap-snapshots/test/lib/utils/sbom-cyclonedx.js.test.cjs @@ -0,0 +1,1021 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/lib/utils/sbom-cyclonedx.js TAP node - with deps > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [ + { + "bom-ref": "dep1@0.0.1", + "type": "library", + "name": "dep1", + "version": "0.0.1", + "scope": "required", + "purl": "pkg:npm/dep1@0.0.1", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/dep1" + } + ], + "externalReferences": [] + }, + { + "bom-ref": "dep2@0.0.2", + "type": "library", + "name": "dep2", + "version": "0.0.2", + "scope": "required", + "purl": "pkg:npm/dep2@0.0.2", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "node_modules/dep2" + } + ], + "externalReferences": [] + } + ], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [ + "dep1@0.0.1", + "dep2@0.0.2" + ] + }, + { + "ref": "dep1@0.0.1", + "dependsOn": [] + }, + { + "ref": "dep2@0.0.2", + "dependsOn": [ + "dep1@0.0.1" + ] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - application package type > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "application", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - bundled > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + }, + { + "name": "cdx:npm:package:bundled", + "value": "true" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - development > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + }, + { + "name": "cdx:npm:package:development", + "value": "true" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - extraneous > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + }, + { + "name": "cdx:npm:package:extraneous", + "value": "true" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - from git url > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0?vcs_url=https://github.com/foo/bar#1234", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [ + { + "type": "distribution", + "url": "https://github.com/foo/bar#1234" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - no package info > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - optional > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "optional", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - package lock only > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "pre-build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - private > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + }, + { + "name": "cdx:npm:package:private", + "value": "true" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with author object > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Arthur", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with description > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "description": "Package description", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with distribution url > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [ + { + "type": "distribution", + "url": "https://registry.npmjs.org/root/-/root-1.0.0.tgz" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with homepage > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [ + { + "type": "website", + "url": "https://foo.bar/README.md" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with integrity > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [], + "hashes": [ + { + "alg": "SHA-512", + "content": "d5191b14650a7b1e25bec07dca121f5a5b493397192947ed07678d6a3683bf7742304a78f62046d0ad78b87f0d9d7f483eec76fa62bb24610e0748e7e3cfc9eb" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with issue tracker > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [ + { + "type": "issue-tracker", + "url": "https://foo.bar/issues" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with license expression > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [], + "licenses": [ + { + "expression": "(MIT OR Apache-2.0)" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with repository url > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [ + { + "type": "vcs", + "url": "https://foo.bar" + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` + +exports[`test/lib/utils/sbom-cyclonedx.js TAP single node - with single license > must match snapshot 1`] = ` +{ + "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "bomFormat": "CycloneDX", + "specVersion": "1.5", + "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", + "version": 1, + "metadata": { + "timestamp": "2020-01-01T00:00:00.000Z", + "lifecycles": [ + { + "phase": "build" + } + ], + "tools": [ + { + "vendor": "npm", + "name": "cli", + "version": "10.0.0 " + } + ], + "component": { + "bom-ref": "root@1.0.0", + "type": "library", + "name": "root", + "version": "1.0.0", + "scope": "required", + "author": "Author", + "purl": "pkg:npm/root@1.0.0", + "properties": [ + { + "name": "cdx:npm:package:path", + "value": "" + } + ], + "externalReferences": [], + "licenses": [ + { + "license": { + "id": "ISC" + } + } + ] + } + }, + "components": [], + "dependencies": [ + { + "ref": "root@1.0.0", + "dependsOn": [] + } + ] +} +` diff --git a/deps/npm/tap-snapshots/test/lib/utils/sbom-spdx.js.test.cjs b/deps/npm/tap-snapshots/test/lib/utils/sbom-spdx.js.test.cjs new file mode 100644 index 00000000000000..890bd29b7d2639 --- /dev/null +++ b/deps/npm/tap-snapshots/test/lib/utils/sbom-spdx.js.test.cjs @@ -0,0 +1,506 @@ +/* IMPORTANT + * This snapshot file is auto-generated, but designed for humans. + * It should be checked into source control and tracked carefully. + * Re-generate by setting TAP_SNAPSHOT=1 and running tests. + * Make sure to inspect the output below. Do not ignore changes! + */ +'use strict' +exports[`test/lib/utils/sbom-spdx.js TAP node - with deps > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + }, + { + "name": "dep1", + "SPDXID": "SPDXRef-Package-dep1-0.0.1", + "versionInfo": "0.0.1", + "packageFileName": "node_modules/dep1", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep1@0.0.1" + } + ] + }, + { + "name": "dep2", + "SPDXID": "SPDXRef-Package-dep2-0.0.2", + "versionInfo": "0.0.2", + "packageFileName": "node_modules/dep2", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep2@0.0.2" + } + ] + }, + { + "name": "dep3", + "SPDXID": "SPDXRef-Package-dep3-0.0.3", + "versionInfo": "0.0.3", + "packageFileName": "node_modules/dep3", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep3@0.0.3" + } + ] + }, + { + "name": "dep4", + "SPDXID": "SPDXRef-Package-dep4-0.0.4", + "versionInfo": "0.0.4", + "packageFileName": "node_modules/dep4", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep4@0.0.4" + } + ] + }, + { + "name": "dep5", + "SPDXID": "SPDXRef-Package-dep5-0.0.5", + "versionInfo": "0.0.5", + "packageFileName": "node_modules/dep5", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep5@0.0.5" + } + ] + }, + { + "name": "dep6", + "SPDXID": "SPDXRef-Package-dep6-0.0.6", + "versionInfo": "0.0.6", + "packageFileName": "node_modules/dep6", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/dep6@0.0.6" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + }, + { + "spdxElementId": "SPDXRef-Package-root-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dep1-0.0.1", + "relationshipType": "HAS_PREREQUISITE" + }, + { + "spdxElementId": "SPDXRef-Package-root-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dep2-0.0.2", + "relationshipType": "OPTIONAL_DEPENDENCY_OF" + }, + { + "spdxElementId": "SPDXRef-Package-root-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dep3-0.0.3", + "relationshipType": "DEV_DEPENDENCY_OF" + }, + { + "spdxElementId": "SPDXRef-Package-root-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dep4-0.0.4", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-dep4-0.0.4", + "relatedSpdxElement": "SPDXRef-Package-dep5-0.0.5", + "relationshipType": "DEPENDS_ON" + }, + { + "spdxElementId": "SPDXRef-Package-root-1.0.0", + "relatedSpdxElement": "SPDXRef-Package-dep6-0.0.6", + "relationshipType": "OPTIONAL_DEPENDENCY_OF" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - application package type > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "primaryPackagePurpose": "APPLICATION", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - from git url > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "https://github.com/foo/bar#1234", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0?vcs_url=https://github.com/foo/bar#1234" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - linked > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - with description > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "description": "Package description", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - with distribution url > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "https://registry.npmjs.org/root/-/root-1.0.0.tgz", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - with homepage > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "https://foo.bar/README.md", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` + +exports[`test/lib/utils/sbom-spdx.js TAP single node - with integrity > must match snapshot 1`] = ` +{ + "spdxVersion": "SPDX-2.3", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "name": "root@1.0.0", + "documentNamespace": "docns", + "creationInfo": { + "created": "2020-01-01T00:00:00.000Z", + "creators": [ + "Tool: npm/cli-10.0.0 " + ] + }, + "documentDescribes": [ + "SPDXRef-Package-root-1.0.0" + ], + "packages": [ + { + "name": "root", + "SPDXID": "SPDXRef-Package-root-1.0.0", + "versionInfo": "1.0.0", + "packageFileName": "", + "downloadLocation": "NOASSERTION", + "filesAnalyzed": false, + "homepage": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "externalRefs": [ + { + "referenceCategory": "PACKAGE-MANAGER", + "referenceType": "purl", + "referenceLocator": "pkg:npm/root@1.0.0" + } + ], + "checksums": [ + { + "algorithm": "SHA512", + "checksumValue": "d5191b14650a7b1e25bec07dca121f5a5b493397192947ed07678d6a3683bf7742304a78f62046d0ad78b87f0d9d7f483eec76fa62bb24610e0748e7e3cfc9eb" + } + ] + } + ], + "relationships": [ + { + "spdxElementId": "SPDXRef-DOCUMENT", + "relatedSpdxElement": "SPDXRef-Package-root-1.0.0", + "relationshipType": "DESCRIBES" + } + ] +} +` diff --git a/deps/npm/test/bin/windows-shims.js b/deps/npm/test/bin/windows-shims.js index 29c257fc7954d3..5e8a75842293d7 100644 --- a/deps/npm/test/bin/windows-shims.js +++ b/deps/npm/test/bin/windows-shims.js @@ -1,14 +1,13 @@ const t = require('tap') const { spawnSync } = require('child_process') const { resolve, join, extname, basename, sep } = require('path') -const { readFileSync, chmodSync, readdirSync } = require('fs') +const { copyFileSync, readFileSync, chmodSync, readdirSync, rmSync } = require('fs') const Diff = require('diff') const { sync: which } = require('which') const { version } = require('../../package.json') const ROOT = resolve(__dirname, '../..') const BIN = join(ROOT, 'bin') -const NODE = readFileSync(process.execPath) const SHIMS = readdirSync(BIN).reduce((acc, shim) => { if (extname(shim) !== '.js') { acc[shim] = readFileSync(join(BIN, shim), 'utf-8') @@ -67,7 +66,6 @@ t.test('shim contents', t => { t.test('run shims', t => { const path = t.testdir({ ...SHIMS, - 'node.exe': NODE, // simulate the state where one version of npm is installed // with node, but we should load the globally installed one 'global-prefix': { @@ -92,6 +90,16 @@ t.test('run shims', t => { }, }) + // hacky fix to decrease flakes of this test from `NOTEMPTY: directory not empty, rmdir` + // this should get better in tap@18 and we can try removing it then + copyFileSync(process.execPath, join(path, 'node.exe')) + t.teardown(async () => { + rmSync(join(path, 'node.exe')) + await new Promise(res => setTimeout(res, 100)) + // this is superstition + rmSync(join(path, 'node.exe'), { force: true }) + }) + const spawnPath = (cmd, args, { log, stdioString = true, ...opts } = {}) => { if (cmd.endsWith('bash.exe')) { // only cygwin *requires* the -l, but the others are ok with it diff --git a/deps/npm/test/fixtures/libnpmsearch-stream-result.js b/deps/npm/test/fixtures/libnpmsearch-stream-result.js index ac792b1c087c8f..68245beff6e46f 100644 --- a/deps/npm/test/fixtures/libnpmsearch-stream-result.js +++ b/deps/npm/test/fixtures/libnpmsearch-stream-result.js @@ -217,6 +217,9 @@ module.exports = [ description: 'Retrieves a name:pathname Map for a given workspaces config', keywords: [ '\x1B[33mnpm\x1B[39m', + // eslint-disable-next-line no-octal-escape + '\x1b]4;0;?\007', + '\u001b[Hbad map', 'npmcli', 'libnpm', 'cli', diff --git a/deps/npm/test/lib/commands/audit.js b/deps/npm/test/lib/commands/audit.js index 4a776e89bd9e9c..25ced6655e654a 100644 --- a/deps/npm/test/lib/commands/audit.js +++ b/deps/npm/test/lib/commands/audit.js @@ -210,6 +210,18 @@ t.test('audit fix - bulk endpoint', async t => { ) }) +t.test('audit fix no package lock', async t => { + const { npm } = await loadMockNpm(t, { + config: { + 'package-lock': false, + }, + }) + await t.rejects( + npm.exec('audit', ['fix']), + { code: 'EUSAGE' } + ) +}) + t.test('completion', async t => { const { audit } = await loadMockNpm(t, { command: 'audit' }) t.test('fix', async t => { diff --git a/deps/npm/test/lib/commands/bugs.js b/deps/npm/test/lib/commands/bugs.js index 953c8e6345a2a7..e2ebfb53065748 100644 --- a/deps/npm/test/lib/commands/bugs.js +++ b/deps/npm/test/lib/commands/bugs.js @@ -6,6 +6,10 @@ const pacote = { return spec === 'nobugs' ? { name: 'nobugs', version: '1.2.3', + } : spec === 'nullbugs' ? { + name: 'nullbugs', + version: '1.2.3', + bugs: null, } : spec === 'bugsurl' ? { name: 'bugsurl', version: '1.2.3', @@ -66,6 +70,7 @@ t.test('open bugs urls & emails', async t => { const expected = { '.': 'https://example.com', nobugs: 'https://www.npmjs.com/package/nobugs', + nullbugs: 'https://www.npmjs.com/package/nullbugs', 'bugsobj-nourl': 'https://www.npmjs.com/package/bugsobj-nourl', bugsurl: 'https://bugzilla.localhost/bugsurl', bugsobj: 'https://bugzilla.localhost/bugsobj', diff --git a/deps/npm/test/lib/commands/hook.js b/deps/npm/test/lib/commands/hook.js index e4e1214b812f3b..d3de4f5c55efad 100644 --- a/deps/npm/test/lib/commands/hook.js +++ b/deps/npm/test/lib/commands/hook.js @@ -243,7 +243,7 @@ t.test('npm hook ls', async t => { 'received the correct arguments' ) t.equal(outputs[0][0], 'You have 3 hooks configured.', 'prints the correct header') - const out = require('../../../lib/utils/ansi-trim')(outputs[1][0]) + const out = require('strip-ansi')(outputs[1][0]) t.match(out, /semver.*https:\/\/google.com.*\n.*\n.*never triggered/, 'prints package hook') t.match(out, /@npmcli.*https:\/\/google.com.*\n.*\n.*triggered just now/, 'prints scope hook') t.match(out, /~npm.*https:\/\/google.com.*\n.*\n.*never triggered/, 'prints owner hook') @@ -292,7 +292,7 @@ t.test('npm hook ls, single result', async t => { 'received the correct arguments' ) t.equal(outputs[0][0], 'You have one hook configured.', 'prints the correct header') - const out = require('../../../lib/utils/ansi-trim')(outputs[1][0]) + const out = require('strip-ansi')(outputs[1][0]) t.match(out, /semver.*https:\/\/google.com.*\n.*\n.*never triggered/, 'prints package hook') }) diff --git a/deps/npm/test/lib/commands/org.js b/deps/npm/test/lib/commands/org.js index 511251e1bb096e..5c239295c33432 100644 --- a/deps/npm/test/lib/commands/org.js +++ b/deps/npm/test/lib/commands/org.js @@ -1,5 +1,5 @@ const t = require('tap') -const ansiTrim = require('../../../lib/utils/ansi-trim.js') +const ansiTrim = require('strip-ansi') const mockNpm = require('../../fixtures/mock-npm') const mockOrg = async (t, { orgSize = 1, orgList = {}, ...npmOpts } = {}) => { diff --git a/deps/npm/test/lib/commands/query.js b/deps/npm/test/lib/commands/query.js index 2b9a5b49763235..adf617316772e5 100644 --- a/deps/npm/test/lib/commands/query.js +++ b/deps/npm/test/lib/commands/query.js @@ -179,3 +179,61 @@ t.test('global', async t => { await npm.exec('query', ['[name=lorem]']) t.matchSnapshot(joinedOutput(), 'should return global package') }) + +t.test('package-lock-only', t => { + t.test('no package lock', async t => { + const { npm } = await loadMockNpm(t, { + config: { + 'package-lock-only': true, + }, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'project', + dependencies: { + a: '^1.0.0', + }, + }), + }, + }) + await t.rejects(npm.exec('query', [':root, :root > *']), { code: 'EUSAGE' }) + }) + + t.test('with package lock', async t => { + const { npm, joinedOutput } = await loadMockNpm(t, { + config: { + 'package-lock-only': true, + }, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'project', + dependencies: { + a: '^1.0.0', + }, + }), + 'package-lock.json': JSON.stringify({ + name: 'project', + lockfileVersion: 3, + requires: true, + packages: { + '': { + dependencies: { + a: '^1.0.0', + }, + }, + 'node_modules/a': { + version: '1.2.3', + resolved: 'https://dummy.npmjs.org/a/-/a-1.2.3.tgz', + integrity: 'sha512-dummy', + engines: { + node: '>=14.17', + }, + }, + }, + }), + }, + }) + await npm.exec('query', ['*']) + t.matchSnapshot(joinedOutput(), 'should return valid response with only lock info') + }) + t.end() +}) diff --git a/deps/npm/test/lib/commands/sbom.js b/deps/npm/test/lib/commands/sbom.js new file mode 100644 index 00000000000000..3c79ed82cf8370 --- /dev/null +++ b/deps/npm/test/lib/commands/sbom.js @@ -0,0 +1,503 @@ +const t = require('tap') +const mockNpm = require('../../fixtures/mock-npm.js') + +const FAKE_TIMESTAMP = '2020-01-01T00:00:00.000Z' +const FAKE_UUID = '00000000-0000-0000-0000-000000000000' + +t.cleanSnapshot = s => { + let sbom + + try { + sbom = JSON.parse(s) + } catch (e) { + return s + } + + // Clean dynamic values from snapshots. SPDX and CycloneDX have different + // formats for these values, so we need to do it separately. + if (sbom.SPDXID) { + sbom.documentNamespace = `http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-${FAKE_UUID}` + + if (sbom.creationInfo) { + sbom.creationInfo.created = FAKE_TIMESTAMP + sbom.creationInfo.creators = ['Tool: npm/cli-10.0.0'] + } + } else { + sbom.serialNumber = `urn:uuid:${FAKE_UUID}` + + if (sbom.metadata) { + sbom.metadata.timestamp = FAKE_TIMESTAMP + sbom.metadata.tools[0].version = '10.0.0' + } + } + + return JSON.stringify(sbom, null, 2) +} + +const simpleNmFixture = { + node_modules: { + foo: { + 'package.json': JSON.stringify({ + name: 'foo', + version: '1.0.0', + dependencies: { + dog: '^1.0.0', + }, + }), + node_modules: { + dog: { + 'package.json': JSON.stringify({ + name: 'dog', + version: '1.0.0', + }), + }, + }, + }, + chai: { + 'package.json': JSON.stringify({ + name: 'chai', + version: '1.0.0', + }), + }, + }, +} + +const mockSbom = async (t, { mocks, config, ...opts } = {}) => { + const mock = await mockNpm(t, { + ...opts, + config: { + ...config, + }, + command: 'sbom', + mocks: { + path: { + ...require('path'), + sep: '/', + }, + ...mocks, + }, + }) + + return { + ...mock, + result: () => mock.joinedOutput(), + } +} + +t.test('sbom', async t => { + t.test('basic sbom - spdx', async t => { + const config = { + 'sbom-format': 'spdx', + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('basic sbom - cyclonedx', async t => { + const config = { + 'sbom-format': 'cyclonedx', + 'sbom-type': 'application', + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('--omit dev', async t => { + const config = { + 'sbom-format': 'spdx', + omit: ['dev'], + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + }, + devDependencies: { + chai: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('--omit optional', async t => { + const config = { + 'sbom-format': 'spdx', + omit: ['optional'], + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + chai: '^1.0.0', + }, + optionalDependencies: { + foo: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('--omit peer', async t => { + const config = { + 'sbom-format': 'spdx', + omit: ['peer'], + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + chai: '^1.0.0', + }, + peerDependencies: { + foo: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('missing format', async t => { + const config = {} + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-sbom', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await t.rejects(sbom.exec([]), { + code: 'EUSAGE', + message: 'Must specify --sbom-format flag with one of: cyclonedx, spdx.', + }, + 'should throw error') + + t.matchSnapshot(result()) + }) + + t.test('invalid dep', async t => { + const config = { + 'sbom-format': 'spdx', + } + const { sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + foo: '^2.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await t.rejects( + sbom.exec([]), + { code: 'ESBOMPROBLEMS', message: /invalid: foo@1.0.0/ }, + 'should list dep problems' + ) + }) + + t.test('missing dep', async t => { + const config = { + 'sbom-format': 'spdx', + } + const { sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + ipsum: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await t.rejects( + sbom.exec([]), + { code: 'ESBOMPROBLEMS', message: /missing: ipsum@\^1.0.0/ }, + 'should list dep problems' + ) + }) + + t.test('missing (optional) dep', async t => { + const config = { + 'sbom-format': 'spdx', + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + optionalDependencies: { + ipsum: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('extraneous dep', async t => { + const config = { + 'sbom-format': 'spdx', + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + }, + }), + ...simpleNmFixture, + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('lock file only', async t => { + const config = { + 'sbom-format': 'spdx', + 'package-lock-only': true, + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + }), + 'package-lock.json': JSON.stringify({ + dependencies: { + foo: { + version: '1.0.0', + requires: { + dog: '^1.0.0', + }, + }, + dog: { + version: '1.0.0', + }, + chai: { + version: '1.0.0', + }, + }, + }), + }, + }) + await sbom.exec([]) + t.matchSnapshot(result()) + }) + + t.test('lock file only - missing lock file', async t => { + const config = { + 'sbom-format': 'spdx', + 'package-lock-only': true, + } + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'test-npm-ls', + version: '1.0.0', + dependencies: { + foo: '^1.0.0', + chai: '^1.0.0', + }, + }), + }, + }) + await t.rejects(sbom.exec([]), { + code: 'EUSAGE', + message: 'A package lock or shrinkwrap file is required in package-lock-only mode', + }, + 'should throw error') + + t.matchSnapshot(result()) + }) + + t.test('loading a tree containing workspaces', async t => { + const mockWorkspaces = async (t, exec = [], config = {}) => { + const { result, sbom } = await mockSbom(t, { + config, + prefixDir: { + 'package.json': JSON.stringify({ + name: 'workspaces-tree', + version: '1.0.0', + workspaces: ['./a', './b', './d', './group/*'], + dependencies: { pacote: '1.0.0' }, + }), + node_modules: { + a: t.fixture('symlink', '../a'), + b: t.fixture('symlink', '../b'), + c: { + 'package.json': JSON.stringify({ + name: 'c', + version: '1.0.0', + }), + }, + d: t.fixture('symlink', '../d'), + e: t.fixture('symlink', '../group/e'), + f: t.fixture('symlink', '../group/f'), + foo: { + 'package.json': JSON.stringify({ + name: 'foo', + version: '1.1.1', + dependencies: { + bar: '^1.0.0', + }, + }), + }, + bar: { + 'package.json': JSON.stringify({ name: 'bar', version: '1.0.0' }), + }, + baz: { + 'package.json': JSON.stringify({ name: 'baz', version: '1.0.0' }), + }, + pacote: { + 'package.json': JSON.stringify({ name: 'pacote', version: '1.0.0' }), + }, + }, + a: { + 'package.json': JSON.stringify({ + name: 'a', + version: '1.0.0', + dependencies: { + c: '^1.0.0', + d: '^1.0.0', + }, + devDependencies: { + baz: '^1.0.0', + }, + }), + }, + b: { + 'package.json': JSON.stringify({ + name: 'b', + version: '1.0.0', + }), + }, + d: { + 'package.json': JSON.stringify({ + name: 'd', + version: '1.0.0', + dependencies: { + foo: '^1.1.1', + }, + }), + }, + group: { + e: { + 'package.json': JSON.stringify({ + name: 'e', + version: '1.0.0', + }), + }, + f: { + 'package.json': JSON.stringify({ + name: 'f', + version: '1.0.0', + }), + }, + }, + }, + }) + + await sbom.exec(exec) + + t.matchSnapshot(result()) + } + + t.test('should list workspaces properly with default configs', t => mockWorkspaces(t, [], { + 'sbom-format': 'spdx', + })) + + t.test('should not list workspaces with --no-workspaces', t => mockWorkspaces(t, [], { + 'sbom-format': 'spdx', + workspaces: false, + })) + + t.test('should filter worksapces with --workspace', t => mockWorkspaces(t, [], { + 'sbom-format': 'spdx', + workspace: 'a', + })) + + t.test('should filter workspaces with multiple --workspace flags', t => mockWorkspaces(t, [], { + 'sbom-format': 'spdx', + workspace: ['e', 'f'], + })) + }) +}) diff --git a/deps/npm/test/lib/utils/ansi-trim.js b/deps/npm/test/lib/utils/ansi-trim.js deleted file mode 100644 index 5a9e3b0c87cba7..00000000000000 --- a/deps/npm/test/lib/utils/ansi-trim.js +++ /dev/null @@ -1,8 +0,0 @@ -const t = require('tap') -const ansiTrim = require('../../../lib/utils/ansi-trim.js') - -t.test('basic', async t => { - const chalk = await import('chalk').then(v => v.default) - t.equal(ansiTrim('foo'), 'foo', 'does nothing if no ansis') - t.equal(ansiTrim(chalk.red('foo')), 'foo', 'strips out ansis') -}) diff --git a/deps/npm/test/lib/utils/sbom-cyclonedx.js b/deps/npm/test/lib/utils/sbom-cyclonedx.js new file mode 100644 index 00000000000000..540feb9eb0ee34 --- /dev/null +++ b/deps/npm/test/lib/utils/sbom-cyclonedx.js @@ -0,0 +1,245 @@ +const t = require('tap') +const Ajv = require('ajv') +const applyFormats = require('ajv-formats') +const applyDraftFormats = require('ajv-formats-draft2019') +const { cyclonedxOutput } = require('../../../lib/utils/sbom-cyclonedx.js') + +const FAKE_UUID = 'urn:uuid:00000000-0000-0000-0000-000000000000' + +t.cleanSnapshot = s => { + let sbom + try { + sbom = JSON.parse(s) + } catch (e) { + return s + } + + sbom.serialNumber = FAKE_UUID + if (sbom.metadata) { + sbom.metadata.timestamp = '2020-01-01T00:00:00.000Z' + } + + return JSON.stringify(sbom, null, 2) +} + +const npm = { version: '10.0.0 ' } + +const rootPkg = { + author: 'Author', +} + +const root = { + name: 'root', + packageName: 'root', + version: '1.0.0', + pkgid: 'root@1.0.0', + isRoot: true, + package: rootPkg, + location: '', + edgesOut: [], +} + +const dep1 = { + name: 'dep1', + packageName: 'dep1', + version: '0.0.1', + pkgid: 'dep1@0.0.1', + package: {}, + location: 'node_modules/dep1', + edgesOut: [], +} + +const dep2 = { + name: 'dep2', + packageName: 'dep2', + version: '0.0.2', + pkgid: 'npm@npm:dep2@0.0.2', + package: {}, + location: 'node_modules/dep2', + edgesOut: [{ to: dep1 }], +} + +const dep2Link = { + name: 'dep2', + packageName: 'dep2', + version: '0.0.2', + pkgid: 'dep2@0.0.2', + package: {}, + location: 'node_modules/dep2', + edgesOut: [], + isLink: true, + target: dep2, +} + +t.test('single node - application package type', t => { + const res = cyclonedxOutput({ npm, nodes: [root], packageType: 'application' }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - package lock only', t => { + const res = cyclonedxOutput({ npm, nodes: [root], packageLockOnly: true }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - optional ', t => { + const node = { ...root, optional: true } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with description', t => { + const pkg = { ...rootPkg, description: 'Package description' } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with author object', t => { + const pkg = { ...rootPkg, author: { name: 'Arthur' } } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with integrity', t => { + /* eslint-disable-next-line max-len */ + const node = { ...root, integrity: 'sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==' } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - development', t => { + const node = { ...root, dev: true } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - extraneous', t => { + const node = { ...root, extraneous: true } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - bundled', t => { + const node = { ...root, inBundle: true } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - private', t => { + const pkg = { ...rootPkg, private: true } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with repository url', t => { + const pkg = { ...rootPkg, repository: { url: 'https://foo.bar' } } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with homepage', t => { + const pkg = { ...rootPkg, homepage: 'https://foo.bar/README.md' } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with issue tracker', t => { + const pkg = { ...rootPkg, bugs: { url: 'https://foo.bar/issues' } } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with distribution url', t => { + const node = { ...root, resolved: 'https://registry.npmjs.org/root/-/root-1.0.0.tgz' } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with single license', t => { + const pkg = { ...rootPkg, license: 'ISC' } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with license expression', t => { + const pkg = { ...rootPkg, license: '(MIT OR Apache-2.0)' } + const node = { ...root, package: pkg } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - from git url', t => { + const node = { ...root, type: 'git', resolved: 'https://github.com/foo/bar#1234' } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - no package info', t => { + const node = { ...root, package: undefined } + const res = cyclonedxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('node - with deps', t => { + const node = { ...root, + edgesOut: [ + { to: dep1 }, + { to: dep2 }, + { to: undefined }, + { to: { pkgid: 'foo' } }, + ] } + const res = cyclonedxOutput({ npm, nodes: [node, dep1, dep2, dep2Link] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +// Check that all of the generated test snapshots validate against the CycloneDX schema +t.test('schema validation', t => { + // Load schemas + const cdxSchema = require('../../schemas/cyclonedx/bom-1.5.schema.json') + const spdxLicenseSchema = require('../../schemas/cyclonedx/spdx.schema.json') + const jsfSchema = require('../../schemas/cyclonedx/jsf-0.82.schema.json') + + const ajv = new Ajv({ + strict: false, + schemas: [spdxLicenseSchema, jsfSchema, cdxSchema], + }) + applyFormats(ajv) + applyDraftFormats(ajv) + + // Retrieve compiled schema + const validate = ajv.getSchema('http://cyclonedx.org/schema/bom-1.5.schema.json') + + // Load snapshots for all tests in this file + const sboms = require('../../../tap-snapshots/test/lib/utils/sbom-cyclonedx.js.test.cjs') + + // Check that all snapshots validate against the CycloneDX schema + Object.entries(sboms).forEach(([name, sbom]) => { + t.ok(validate(JSON.parse(sbom)), { snapshot: name, error: validate.errors?.[0] }) + }) + t.end() +}) diff --git a/deps/npm/test/lib/utils/sbom-spdx.js b/deps/npm/test/lib/utils/sbom-spdx.js new file mode 100644 index 00000000000000..74f6c3f34e71c4 --- /dev/null +++ b/deps/npm/test/lib/utils/sbom-spdx.js @@ -0,0 +1,188 @@ +const t = require('tap') +const Ajv = require('ajv') +const { spdxOutput } = require('../../../lib/utils/sbom-spdx.js') + +t.cleanSnapshot = s => { + let sbom + try { + sbom = JSON.parse(s) + } catch (e) { + return s + } + + sbom.documentNamespace = 'docns' + + if (sbom.creationInfo) { + sbom.creationInfo.created = '2020-01-01T00:00:00.000Z' + } + + return JSON.stringify(sbom, null, 2) +} + +const npm = { version: '10.0.0 ' } + +const rootPkg = { + author: 'Author', +} + +const root = { + packageName: 'root', + version: '1.0.0', + pkgid: 'root@1.0.0', + isRoot: true, + package: rootPkg, + location: '', + edgesOut: [], +} + +const dep1 = { + packageName: 'dep1', + version: '0.0.1', + pkgid: 'dep1@0.0.1', + package: {}, + location: 'node_modules/dep1', + edgesOut: [], +} + +const dep2 = { + packageName: 'dep2', + version: '0.0.2', + pkgid: 'dep2@0.0.2', + package: {}, + location: 'node_modules/dep2', + edgesOut: [], +} + +const dep3 = { + packageName: 'dep3', + version: '0.0.3', + pkgid: 'dep3@0.0.3', + package: {}, + location: 'node_modules/dep3', + edgesOut: [], +} + +const dep5 = { + packageName: 'dep5', + version: '0.0.5', + pkgid: 'dep5@0.0.5', + package: {}, + location: 'node_modules/dep5', + edgesOut: [], +} + +const dep4 = { + packageName: 'dep4', + version: '0.0.4', + pkgid: 'npm@npm:dep4@0.0.4', + package: {}, + location: 'dep4', + isWorkspace: true, + edgesOut: [{ to: dep5 }], +} + +const dep4Link = { + packageName: 'dep4', + version: '0.0.4', + pkgid: 'dep4@0.0.4', + package: {}, + location: 'node_modules/dep4', + isLink: true, + target: dep4, +} + +dep4.linksIn = new Set([dep4Link]) + +const dep6 = { + packageName: 'dep6', + version: '0.0.6', + pkgid: 'dep6@0.0.6', + extraneous: true, + package: {}, + location: 'node_modules/dep6', + edgesOut: [], +} + +t.test('single node - application package type', t => { + const res = spdxOutput({ npm, nodes: [root], packageType: 'application' }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with description', t => { + const pkg = { ...rootPkg, description: 'Package description' } + const node = { ...root, package: pkg } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with distribution url', t => { + const node = { ...root, resolved: 'https://registry.npmjs.org/root/-/root-1.0.0.tgz' } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with homepage', t => { + const pkg = { ...rootPkg, homepage: 'https://foo.bar/README.md' } + const node = { ...root, package: pkg } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - with integrity', t => { + /* eslint-disable-next-line max-len */ + const node = { ...root, integrity: 'sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==' } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - from git url', t => { + const node = { ...root, type: 'git', resolved: 'https://github.com/foo/bar#1234' } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('single node - linked', t => { + const node = { ...root, isLink: true, target: { edgesOut: [] } } + const res = spdxOutput({ npm, nodes: [node] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +t.test('node - with deps', t => { + const node = { ...root, + edgesOut: [ + { to: dep1, type: 'peer' }, + { to: dep2, type: 'optional' }, + { to: dep3, type: 'dev' }, + { to: dep4 }, + { to: undefined }, + { to: { packageName: 'foo' } }, + ] } + const res = spdxOutput({ npm, nodes: [node, dep1, dep2, dep3, dep4Link, dep4, dep5, dep6] }) + t.matchSnapshot(JSON.stringify(res)) + t.end() +}) + +// Check that all of the generated test snapshots validate against the SPDX schema +t.test('schema validation', t => { + const ajv = new Ajv() + + // Compile schema + const spdxSchema = require('../../schemas/spdx/spdx-2.3.schema.json') + const validate = ajv.compile(spdxSchema) + + // Load snapshots for all tests in this file + const sboms = require('../../../tap-snapshots/test/lib/utils/sbom-spdx.js.test.cjs') + + // Check that all snapshots validate against the SPDX schema + Object.entries(sboms).forEach(([name, sbom]) => { + t.ok(validate(JSON.parse(sbom)), { snapshot: name, error: validate.errors?.[0] }) + }) + t.end() +}) diff --git a/deps/npm/test/schemas/cyclonedx/bom-1.5.schema.json b/deps/npm/test/schemas/cyclonedx/bom-1.5.schema.json new file mode 100644 index 00000000000000..3ecc1dcdb47557 --- /dev/null +++ b/deps/npm/test/schemas/cyclonedx/bom-1.5.schema.json @@ -0,0 +1,3799 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://cyclonedx.org/schema/bom-1.5.schema.json", + "type": "object", + "title": "CycloneDX Software Bill of Materials Standard", + "$comment" : "CycloneDX JSON schema is published under the terms of the Apache License 2.0.", + "required": [ + "bomFormat", + "specVersion" + ], + "additionalProperties": false, + "properties": { + "$schema": { + "type": "string", + "enum": [ + "http://cyclonedx.org/schema/bom-1.5.schema.json" + ] + }, + "bomFormat": { + "type": "string", + "title": "BOM Format", + "description": "Specifies the format of the BOM. This helps to identify the file as CycloneDX since BOMs do not have a filename convention nor does JSON schema support namespaces. This value MUST be \"CycloneDX\".", + "enum": [ + "CycloneDX" + ] + }, + "specVersion": { + "type": "string", + "title": "CycloneDX Specification Version", + "description": "The version of the CycloneDX specification a BOM conforms to (starting at version 1.2).", + "examples": ["1.5"] + }, + "serialNumber": { + "type": "string", + "title": "BOM Serial Number", + "description": "Every BOM generated SHOULD have a unique serial number, even if the contents of the BOM have not changed over time. If specified, the serial number MUST conform to RFC-4122. Use of serial numbers are RECOMMENDED.", + "examples": ["urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79"], + "pattern": "^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, + "version": { + "type": "integer", + "title": "BOM Version", + "description": "Whenever an existing BOM is modified, either manually or through automated processes, the version of the BOM SHOULD be incremented by 1. When a system is presented with multiple BOMs with identical serial numbers, the system SHOULD use the most recent version of the BOM. The default version is '1'.", + "minimum": 1, + "default": 1, + "examples": [1] + }, + "metadata": { + "$ref": "#/definitions/metadata", + "title": "BOM Metadata", + "description": "Provides additional information about a BOM." + }, + "components": { + "type": "array", + "items": {"$ref": "#/definitions/component"}, + "uniqueItems": true, + "title": "Components", + "description": "A list of software and hardware components." + }, + "services": { + "type": "array", + "items": {"$ref": "#/definitions/service"}, + "uniqueItems": true, + "title": "Services", + "description": "A list of services. This may include microservices, function-as-a-service, and other types of network or intra-process services." + }, + "externalReferences": { + "type": "array", + "items": {"$ref": "#/definitions/externalReference"}, + "title": "External References", + "description": "External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM." + }, + "dependencies": { + "type": "array", + "items": {"$ref": "#/definitions/dependency"}, + "uniqueItems": true, + "title": "Dependencies", + "description": "Provides the ability to document dependency relationships." + }, + "compositions": { + "type": "array", + "items": {"$ref": "#/definitions/compositions"}, + "uniqueItems": true, + "title": "Compositions", + "description": "Compositions describe constituent parts (including components, services, and dependency relationships) and their completeness. The completeness of vulnerabilities expressed in a BOM may also be described." + }, + "vulnerabilities": { + "type": "array", + "items": {"$ref": "#/definitions/vulnerability"}, + "uniqueItems": true, + "title": "Vulnerabilities", + "description": "Vulnerabilities identified in components or services." + }, + "annotations": { + "type": "array", + "items": {"$ref": "#/definitions/annotations"}, + "uniqueItems": true, + "title": "Annotations", + "description": "Comments made by people, organizations, or tools about any object with a bom-ref, such as components, services, vulnerabilities, or the BOM itself. Unlike inventory information, annotations may contain opinion or commentary from various stakeholders. Annotations may be inline (with inventory) or externalized via BOM-Link, and may optionally be signed." + }, + "formulation": { + "type": "array", + "items": {"$ref": "#/definitions/formula"}, + "uniqueItems": true, + "title": "Formulation", + "description": "Describes how a component or service was manufactured or deployed. This is achieved through the use of formulas, workflows, tasks, and steps, which declare the precise steps to reproduce along with the observed formulas describing the steps which transpired in the manufacturing process." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": { + "$ref": "#/definitions/property" + } + }, + "signature": { + "$ref": "#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + }, + "definitions": { + "refType": { + "description": "Identifier for referable and therefore interlink-able elements.", + "type": "string", + "minLength": 1, + "$comment": "value SHOULD not start with the BOM-Link intro 'urn:cdx:'" + }, + "refLinkType": { + "description": "Descriptor for an element identified by the attribute 'bom-ref' in the same BOM document.\nIn contrast to `bomLinkElementType`.", + "allOf": [{"$ref": "#/definitions/refType"}] + }, + "bomLinkDocumentType": { + "title": "BOM-Link Document", + "description": "Descriptor for another BOM document. See https://cyclonedx.org/capabilities/bomlink/", + "type": "string", + "format": "iri-reference", + "pattern": "^urn:cdx:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/[1-9][0-9]*$", + "$comment": "part of the pattern is based on `bom.serialNumber`'s pattern" + }, + "bomLinkElementType": { + "title": "BOM-Link Element", + "description": "Descriptor for an element in a BOM document. See https://cyclonedx.org/capabilities/bomlink/", + "type": "string", + "format": "iri-reference", + "pattern": "^urn:cdx:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/[1-9][0-9]*#.+$", + "$comment": "part of the pattern is based on `bom.serialNumber`'s pattern" + }, + "bomLink": { + "anyOf": [ + { + "title": "BOM-Link Document", + "$ref": "#/definitions/bomLinkDocumentType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "metadata": { + "type": "object", + "title": "BOM Metadata Object", + "additionalProperties": false, + "properties": { + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp", + "description": "The date and time (timestamp) when the BOM was created." + }, + "lifecycles": { + "type": "array", + "title": "Lifecycles", + "description": "", + "items": { + "type": "object", + "title": "Lifecycle", + "description": "The product lifecycle(s) that this BOM represents.", + "oneOf": [ + { + "required": ["phase"], + "additionalProperties": false, + "properties": { + "phase": { + "type": "string", + "title": "Phase", + "description": "A pre-defined phase in the product lifecycle.\n\n* __design__ = BOM produced early in the development lifecycle containing inventory of components and services that are proposed or planned to be used. The inventory may need to be procured, retrieved, or resourced prior to use.\n* __pre-build__ = BOM consisting of information obtained prior to a build process and may contain source files and development artifacts and manifests. The inventory may need to be resolved and retrieved prior to use.\n* __build__ = BOM consisting of information obtained during a build process where component inventory is available for use. The precise versions of resolved components are usually available at this time as well as the provenance of where the components were retrieved from.\n* __post-build__ = BOM consisting of information obtained after a build process has completed and the resulting components(s) are available for further analysis. Built components may exist as the result of a CI/CD process, may have been installed or deployed to a system or device, and may need to be retrieved or extracted from the system or device.\n* __operations__ = BOM produced that represents inventory that is running and operational. This may include staging or production environments and will generally encompass multiple SBOMs describing the applications and operating system, along with HBOMs describing the hardware that makes up the system. Operations Bill of Materials (OBOM) can provide full-stack inventory of runtime environments, configurations, and additional dependencies.\n* __discovery__ = BOM consisting of information observed through network discovery providing point-in-time enumeration of embedded, on-premise, and cloud-native services such as server applications, connected devices, microservices, and serverless functions.\n* __decommission__ = BOM containing inventory that will be, or has been retired from operations.", + "enum": [ + "design", + "pre-build", + "build", + "post-build", + "operations", + "discovery", + "decommission" + ] + } + } + }, + { + "required": ["name"], + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "The name of the lifecycle phase" + }, + "description": { + "type": "string", + "title": "Description", + "description": "The description of the lifecycle phase" + } + } + } + ] + } + }, + "tools": { + "oneOf": [ + { + "type": "object", + "title": "Creation Tools", + "description": "The tool(s) used in the creation of the BOM.", + "additionalProperties": false, + "properties": { + "components": { + "type": "array", + "items": {"$ref": "#/definitions/component"}, + "uniqueItems": true, + "title": "Components", + "description": "A list of software and hardware components used as tools" + }, + "services": { + "type": "array", + "items": {"$ref": "#/definitions/service"}, + "uniqueItems": true, + "title": "Services", + "description": "A list of services used as tools. This may include microservices, function-as-a-service, and other types of network or intra-process services." + } + } + }, + { + "type": "array", + "title": "Creation Tools (legacy)", + "description": "[Deprecated] The tool(s) used in the creation of the BOM.", + "items": {"$ref": "#/definitions/tool"} + } + ] + }, + "authors" :{ + "type": "array", + "title": "Authors", + "description": "The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors.", + "items": {"$ref": "#/definitions/organizationalContact"} + }, + "component": { + "title": "Component", + "description": "The component that the BOM describes.", + "$ref": "#/definitions/component" + }, + "manufacture": { + "title": "Manufacture", + "description": "The organization that manufactured the component that the BOM describes.", + "$ref": "#/definitions/organizationalEntity" + }, + "supplier": { + "title": "Supplier", + "description": " The organization that supplied the component that the BOM describes. The supplier may often be the manufacturer, but may also be a distributor or repackager.", + "$ref": "#/definitions/organizationalEntity" + }, + "licenses": { + "title": "BOM License(s)", + "$ref": "#/definitions/licenseChoice" + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + } + } + }, + "tool": { + "type": "object", + "title": "Tool", + "description": "[Deprecated] - DO NOT USE. This will be removed in a future version. This will be removed in a future version. Use component or service instead. Information about the automated or manual tool used", + "additionalProperties": false, + "properties": { + "vendor": { + "type": "string", + "title": "Tool Vendor", + "description": "The name of the vendor who created the tool" + }, + "name": { + "type": "string", + "title": "Tool Name", + "description": "The name of the tool" + }, + "version": { + "type": "string", + "title": "Tool Version", + "description": "The version of the tool" + }, + "hashes": { + "type": "array", + "items": {"$ref": "#/definitions/hash"}, + "title": "Hashes", + "description": "The hashes of the tool (if applicable)." + }, + "externalReferences": { + "type": "array", + "items": {"$ref": "#/definitions/externalReference"}, + "title": "External References", + "description": "External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM." + } + } + }, + "organizationalEntity": { + "type": "object", + "title": "Organizational Entity Object", + "description": "", + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "name": { + "type": "string", + "title": "Name", + "description": "The name of the organization", + "examples": [ + "Example Inc." + ] + }, + "url": { + "type": "array", + "items": { + "type": "string", + "format": "iri-reference" + }, + "title": "URL", + "description": "The URL of the organization. Multiple URLs are allowed.", + "examples": ["https://example.com"] + }, + "contact": { + "type": "array", + "title": "Contact", + "description": "A contact at the organization. Multiple contacts are allowed.", + "items": {"$ref": "#/definitions/organizationalContact"} + } + } + }, + "organizationalContact": { + "type": "object", + "title": "Organizational Contact Object", + "description": "", + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the object elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "name": { + "type": "string", + "title": "Name", + "description": "The name of a contact", + "examples": ["Contact name"] + }, + "email": { + "type": "string", + "format": "idn-email", + "title": "Email Address", + "description": "The email address of the contact.", + "examples": ["firstname.lastname@example.com"] + }, + "phone": { + "type": "string", + "title": "Phone", + "description": "The phone number of the contact.", + "examples": ["800-555-1212"] + } + } + }, + "component": { + "type": "object", + "title": "Component Object", + "required": [ + "type", + "name" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "application", + "framework", + "library", + "container", + "platform", + "operating-system", + "device", + "device-driver", + "firmware", + "file", + "machine-learning-model", + "data" + ], + "title": "Component Type", + "description": "Specifies the type of component. For software components, classify as application if no more specific appropriate classification is available or cannot be determined for the component. Types include:\n\n* __application__ = A software application. Refer to [https://en.wikipedia.org/wiki/Application_software](https://en.wikipedia.org/wiki/Application_software) for information about applications.\n* __framework__ = A software framework. Refer to [https://en.wikipedia.org/wiki/Software_framework](https://en.wikipedia.org/wiki/Software_framework) for information on how frameworks vary slightly from libraries.\n* __library__ = A software library. Refer to [https://en.wikipedia.org/wiki/Library_(computing)](https://en.wikipedia.org/wiki/Library_(computing))\n for information about libraries. All third-party and open source reusable components will likely be a library. If the library also has key features of a framework, then it should be classified as a framework. If not, or is unknown, then specifying library is RECOMMENDED.\n* __container__ = A packaging and/or runtime format, not specific to any particular technology, which isolates software inside the container from software outside of a container through virtualization technology. Refer to [https://en.wikipedia.org/wiki/OS-level_virtualization](https://en.wikipedia.org/wiki/OS-level_virtualization)\n* __platform__ = A runtime environment which interprets or executes software. This may include runtimes such as those that execute bytecode or low-code/no-code application platforms.\n* __operating-system__ = A software operating system without regard to deployment model (i.e. installed on physical hardware, virtual machine, image, etc) Refer to [https://en.wikipedia.org/wiki/Operating_system](https://en.wikipedia.org/wiki/Operating_system)\n* __device__ = A hardware device such as a processor, or chip-set. A hardware device containing firmware SHOULD include a component for the physical hardware itself, and another component of type 'firmware' or 'operating-system' (whichever is relevant), describing information about the software running on the device.\n See also the list of [known device properties](https://github.com/CycloneDX/cyclonedx-property-taxonomy/blob/main/cdx/device.md).\n* __device-driver__ = A special type of software that operates or controls a particular type of device. Refer to [https://en.wikipedia.org/wiki/Device_driver](https://en.wikipedia.org/wiki/Device_driver)\n* __firmware__ = A special type of software that provides low-level control over a devices hardware. Refer to [https://en.wikipedia.org/wiki/Firmware](https://en.wikipedia.org/wiki/Firmware)\n* __file__ = A computer file. Refer to [https://en.wikipedia.org/wiki/Computer_file](https://en.wikipedia.org/wiki/Computer_file) for information about files.\n* __machine-learning-model__ = A model based on training data that can make predictions or decisions without being explicitly programmed to do so.\n* __data__ = A collection of discrete values that convey information.", + "examples": ["library"] + }, + "mime-type": { + "type": "string", + "title": "Mime-Type", + "description": "The optional mime-type of the component. When used on file components, the mime-type can provide additional context about the kind of file being represented such as an image, font, or executable. Some library or framework components may also have an associated mime-type.", + "examples": ["image/jpeg"], + "pattern": "^[-+a-z0-9.]+/[-+a-z0-9.]+$" + }, + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the component elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "supplier": { + "title": "Component Supplier", + "description": " The organization that supplied the component. The supplier may often be the manufacturer, but may also be a distributor or repackager.", + "$ref": "#/definitions/organizationalEntity" + }, + "author": { + "type": "string", + "title": "Component Author", + "description": "The person(s) or organization(s) that authored the component", + "examples": ["Acme Inc"] + }, + "publisher": { + "type": "string", + "title": "Component Publisher", + "description": "The person(s) or organization(s) that published the component", + "examples": ["Acme Inc"] + }, + "group": { + "type": "string", + "title": "Component Group", + "description": "The grouping name or identifier. This will often be a shortened, single name of the company or project that produced the component, or the source package or domain name. Whitespace and special characters should be avoided. Examples include: apache, org.apache.commons, and apache.org.", + "examples": ["com.acme"] + }, + "name": { + "type": "string", + "title": "Component Name", + "description": "The name of the component. This will often be a shortened, single name of the component. Examples: commons-lang3 and jquery", + "examples": ["tomcat-catalina"] + }, + "version": { + "type": "string", + "title": "Component Version", + "description": "The component version. The version should ideally comply with semantic versioning but is not enforced.", + "examples": ["9.0.14"] + }, + "description": { + "type": "string", + "title": "Component Description", + "description": "Specifies a description for the component" + }, + "scope": { + "type": "string", + "enum": [ + "required", + "optional", + "excluded" + ], + "title": "Component Scope", + "description": "Specifies the scope of the component. If scope is not specified, 'required' scope SHOULD be assumed by the consumer of the BOM.", + "default": "required" + }, + "hashes": { + "type": "array", + "title": "Component Hashes", + "items": {"$ref": "#/definitions/hash"} + }, + "licenses": { + "$ref": "#/definitions/licenseChoice", + "title": "Component License(s)" + }, + "copyright": { + "type": "string", + "title": "Component Copyright", + "description": "A copyright notice informing users of the underlying claims to copyright ownership in a published work.", + "examples": ["Acme Inc"] + }, + "cpe": { + "type": "string", + "title": "Component Common Platform Enumeration (CPE)", + "description": "Specifies a well-formed CPE name that conforms to the CPE 2.2 or 2.3 specification. See [https://nvd.nist.gov/products/cpe](https://nvd.nist.gov/products/cpe)", + "examples": ["cpe:2.3:a:acme:component_framework:-:*:*:*:*:*:*:*"] + }, + "purl": { + "type": "string", + "title": "Component Package URL (purl)", + "description": "Specifies the package-url (purl). The purl, if specified, MUST be valid and conform to the specification defined at: [https://github.com/package-url/purl-spec](https://github.com/package-url/purl-spec)", + "examples": ["pkg:maven/com.acme/tomcat-catalina@9.0.14?packaging=jar"] + }, + "swid": { + "$ref": "#/definitions/swid", + "title": "SWID Tag", + "description": "Specifies metadata and content for [ISO-IEC 19770-2 Software Identification (SWID) Tags](https://www.iso.org/standard/65666.html)." + }, + "modified": { + "type": "boolean", + "title": "Component Modified From Original", + "description": "[Deprecated] - DO NOT USE. This will be removed in a future version. Use the pedigree element instead to supply information on exactly how the component was modified. A boolean value indicating if the component has been modified from the original. A value of true indicates the component is a derivative of the original. A value of false indicates the component has not been modified from the original." + }, + "pedigree": { + "type": "object", + "title": "Component Pedigree", + "description": "Component pedigree is a way to document complex supply chain scenarios where components are created, distributed, modified, redistributed, combined with other components, etc. Pedigree supports viewing this complex chain from the beginning, the end, or anywhere in the middle. It also provides a way to document variants where the exact relation may not be known.", + "additionalProperties": false, + "properties": { + "ancestors": { + "type": "array", + "title": "Ancestors", + "description": "Describes zero or more components in which a component is derived from. This is commonly used to describe forks from existing projects where the forked version contains a ancestor node containing the original component it was forked from. For example, Component A is the original component. Component B is the component being used and documented in the BOM. However, Component B contains a pedigree node with a single ancestor documenting Component A - the original component from which Component B is derived from.", + "items": {"$ref": "#/definitions/component"} + }, + "descendants": { + "type": "array", + "title": "Descendants", + "description": "Descendants are the exact opposite of ancestors. This provides a way to document all forks (and their forks) of an original or root component.", + "items": {"$ref": "#/definitions/component"} + }, + "variants": { + "type": "array", + "title": "Variants", + "description": "Variants describe relations where the relationship between the components are not known. For example, if Component A contains nearly identical code to Component B. They are both related, but it is unclear if one is derived from the other, or if they share a common ancestor.", + "items": {"$ref": "#/definitions/component"} + }, + "commits": { + "type": "array", + "title": "Commits", + "description": "A list of zero or more commits which provide a trail describing how the component deviates from an ancestor, descendant, or variant.", + "items": {"$ref": "#/definitions/commit"} + }, + "patches": { + "type": "array", + "title": "Patches", + "description": ">A list of zero or more patches describing how the component deviates from an ancestor, descendant, or variant. Patches may be complimentary to commits or may be used in place of commits.", + "items": {"$ref": "#/definitions/patch"} + }, + "notes": { + "type": "string", + "title": "Notes", + "description": "Notes, observations, and other non-structured commentary describing the components pedigree." + } + } + }, + "externalReferences": { + "type": "array", + "items": {"$ref": "#/definitions/externalReference"}, + "title": "External References", + "description": "External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM." + }, + "components": { + "type": "array", + "items": {"$ref": "#/definitions/component"}, + "uniqueItems": true, + "title": "Components", + "description": "A list of software and hardware components included in the parent component. This is not a dependency tree. It provides a way to specify a hierarchical representation of component assemblies, similar to system → subsystem → parts assembly in physical supply chains." + }, + "evidence": { + "$ref": "#/definitions/componentEvidence", + "title": "Evidence", + "description": "Provides the ability to document evidence collected through various forms of extraction or analysis." + }, + "releaseNotes": { + "$ref": "#/definitions/releaseNotes", + "title": "Release notes", + "description": "Specifies optional release notes." + }, + "modelCard": { + "$ref": "#/definitions/modelCard", + "title": "Machine Learning Model Card" + }, + "data": { + "type": "array", + "items": {"$ref": "#/definitions/componentData"}, + "title": "Data", + "description": "This object SHOULD be specified for any component of type `data` and MUST NOT be specified for other component types." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + }, + "signature": { + "$ref": "#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + } + }, + "swid": { + "type": "object", + "title": "SWID Tag", + "description": "Specifies metadata and content for ISO-IEC 19770-2 Software Identification (SWID) Tags.", + "required": [ + "tagId", + "name" + ], + "additionalProperties": false, + "properties": { + "tagId": { + "type": "string", + "title": "Tag ID", + "description": "Maps to the tagId of a SoftwareIdentity." + }, + "name": { + "type": "string", + "title": "Name", + "description": "Maps to the name of a SoftwareIdentity." + }, + "version": { + "type": "string", + "title": "Version", + "default": "0.0", + "description": "Maps to the version of a SoftwareIdentity." + }, + "tagVersion": { + "type": "integer", + "title": "Tag Version", + "default": 0, + "description": "Maps to the tagVersion of a SoftwareIdentity." + }, + "patch": { + "type": "boolean", + "title": "Patch", + "default": false, + "description": "Maps to the patch of a SoftwareIdentity." + }, + "text": { + "title": "Attachment text", + "description": "Specifies the metadata and content of the SWID tag.", + "$ref": "#/definitions/attachment" + }, + "url": { + "type": "string", + "title": "URL", + "description": "The URL to the SWID file.", + "format": "iri-reference" + } + } + }, + "attachment": { + "type": "object", + "title": "Attachment", + "description": "Specifies the metadata and content for an attachment.", + "required": [ + "content" + ], + "additionalProperties": false, + "properties": { + "contentType": { + "type": "string", + "title": "Content-Type", + "description": "Specifies the content type of the text. Defaults to text/plain if not specified.", + "default": "text/plain" + }, + "encoding": { + "type": "string", + "title": "Encoding", + "description": "Specifies the optional encoding the text is represented in.", + "enum": [ + "base64" + ] + }, + "content": { + "type": "string", + "title": "Attachment Text", + "description": "The attachment data. Proactive controls such as input validation and sanitization should be employed to prevent misuse of attachment text." + } + } + }, + "hash": { + "type": "object", + "title": "Hash Objects", + "required": [ + "alg", + "content" + ], + "additionalProperties": false, + "properties": { + "alg": { + "$ref": "#/definitions/hash-alg" + }, + "content": { + "$ref": "#/definitions/hash-content" + } + } + }, + "hash-alg": { + "type": "string", + "enum": [ + "MD5", + "SHA-1", + "SHA-256", + "SHA-384", + "SHA-512", + "SHA3-256", + "SHA3-384", + "SHA3-512", + "BLAKE2b-256", + "BLAKE2b-384", + "BLAKE2b-512", + "BLAKE3" + ], + "title": "Hash Algorithm" + }, + "hash-content": { + "type": "string", + "title": "Hash Content (value)", + "examples": ["3942447fac867ae5cdb3229b658f4d48"], + "pattern": "^([a-fA-F0-9]{32}|[a-fA-F0-9]{40}|[a-fA-F0-9]{64}|[a-fA-F0-9]{96}|[a-fA-F0-9]{128})$" + }, + "license": { + "type": "object", + "title": "License Object", + "oneOf": [ + { + "required": ["id"] + }, + { + "required": ["name"] + } + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "id": { + "$ref": "spdx.schema.json", + "title": "License ID (SPDX)", + "description": "A valid SPDX license ID", + "examples": ["Apache-2.0"] + }, + "name": { + "type": "string", + "title": "License Name", + "description": "If SPDX does not define the license used, this field may be used to provide the license name", + "examples": ["Acme Software License"] + }, + "text": { + "title": "License text", + "description": "An optional way to include the textual content of a license.", + "$ref": "#/definitions/attachment" + }, + "url": { + "type": "string", + "title": "License URL", + "description": "The URL to the license file. If specified, a 'license' externalReference should also be specified for completeness", + "examples": ["https://www.apache.org/licenses/LICENSE-2.0.txt"], + "format": "iri-reference" + }, + "licensing": { + "type": "object", + "title": "Licensing information", + "description": "Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata", + "additionalProperties": false, + "properties": { + "altIds": { + "type": "array", + "title": "Alternate License Identifiers", + "description": "License identifiers that may be used to manage licenses and their lifecycle", + "items": { + "type": "string" + } + }, + "licensor": { + "title": "Licensor", + "description": "The individual or organization that grants a license to another individual or organization", + "type": "object", + "additionalProperties": false, + "properties": { + "organization": { + "title": "Licensor (Organization)", + "description": "The organization that granted the license", + "$ref": "#/definitions/organizationalEntity" + }, + "individual": { + "title": "Licensor (Individual)", + "description": "The individual, not associated with an organization, that granted the license", + "$ref": "#/definitions/organizationalContact" + } + }, + "oneOf":[ + { + "required": ["organization"] + }, + { + "required": ["individual"] + } + ] + }, + "licensee": { + "title": "Licensee", + "description": "The individual or organization for which a license was granted to", + "type": "object", + "additionalProperties": false, + "properties": { + "organization": { + "title": "Licensee (Organization)", + "description": "The organization that was granted the license", + "$ref": "#/definitions/organizationalEntity" + }, + "individual": { + "title": "Licensee (Individual)", + "description": "The individual, not associated with an organization, that was granted the license", + "$ref": "#/definitions/organizationalContact" + } + }, + "oneOf":[ + { + "required": ["organization"] + }, + { + "required": ["individual"] + } + ] + }, + "purchaser": { + "title": "Purchaser", + "description": "The individual or organization that purchased the license", + "type": "object", + "additionalProperties": false, + "properties": { + "organization": { + "title": "Purchaser (Organization)", + "description": "The organization that purchased the license", + "$ref": "#/definitions/organizationalEntity" + }, + "individual": { + "title": "Purchaser (Individual)", + "description": "The individual, not associated with an organization, that purchased the license", + "$ref": "#/definitions/organizationalContact" + } + }, + "oneOf":[ + { + "required": ["organization"] + }, + { + "required": ["individual"] + } + ] + }, + "purchaseOrder": { + "type": "string", + "title": "Purchase Order", + "description": "The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase" + }, + "licenseTypes": { + "type": "array", + "title": "License Type", + "description": "The type of license(s) that was granted to the licensee\n\n* __academic__ = A license that grants use of software solely for the purpose of education or research.\n* __appliance__ = A license covering use of software embedded in a specific piece of hardware.\n* __client-access__ = A Client Access License (CAL) allows client computers to access services provided by server software.\n* __concurrent-user__ = A Concurrent User license (aka floating license) limits the number of licenses for a software application and licenses are shared among a larger number of users.\n* __core-points__ = A license where the core of a computer's processor is assigned a specific number of points.\n* __custom-metric__ = A license for which consumption is measured by non-standard metrics.\n* __device__ = A license that covers a defined number of installations on computers and other types of devices.\n* __evaluation__ = A license that grants permission to install and use software for trial purposes.\n* __named-user__ = A license that grants access to the software to one or more pre-defined users.\n* __node-locked__ = A license that grants access to the software on one or more pre-defined computers or devices.\n* __oem__ = An Original Equipment Manufacturer license that is delivered with hardware, cannot be transferred to other hardware, and is valid for the life of the hardware.\n* __perpetual__ = A license where the software is sold on a one-time basis and the licensee can use a copy of the software indefinitely.\n* __processor-points__ = A license where each installation consumes points per processor.\n* __subscription__ = A license where the licensee pays a fee to use the software or service.\n* __user__ = A license that grants access to the software or service by a specified number of users.\n* __other__ = Another license type.\n", + "items": { + "type": "string", + "enum": [ + "academic", + "appliance", + "client-access", + "concurrent-user", + "core-points", + "custom-metric", + "device", + "evaluation", + "named-user", + "node-locked", + "oem", + "perpetual", + "processor-points", + "subscription", + "user", + "other" + ] + } + }, + "lastRenewal": { + "type": "string", + "format": "date-time", + "title": "Last Renewal", + "description": "The timestamp indicating when the license was last renewed. For new purchases, this is often the purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of when the license was last renewed." + }, + "expiration": { + "type": "string", + "format": "date-time", + "title": "Expiration", + "description": "The timestamp indicating when the current license expires (if applicable)." + } + } + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + } + } + }, + "licenseChoice": { + "title": "License Choice", + "description": "EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)", + "type": "array", + "oneOf": [ + { + "title": "Multiple licenses", + "description": "A list of SPDX licenses and/or named licenses.", + "type": "array", + "items": { + "type": "object", + "required": ["license"], + "additionalProperties": false, + "properties": { + "license": {"$ref": "#/definitions/license"} + } + } + }, + { + "title": "SPDX License Expression", + "description": "A tuple of exactly one SPDX License Expression.", + "type": "array", + "additionalItems": false, + "minItems": 1, + "maxItems": 1, + "items": [{ + "type": "object", + "additionalProperties": false, + "required": ["expression"], + "properties": { + "expression": { + "type": "string", + "title": "SPDX License Expression", + "examples": [ + "Apache-2.0 AND (MIT OR GPL-2.0-only)", + "GPL-3.0-only WITH Classpath-exception-2.0" + ] + }, + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the license elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + } + } + }] + } + ] + }, + "commit": { + "type": "object", + "title": "Commit", + "description": "Specifies an individual commit", + "additionalProperties": false, + "properties": { + "uid": { + "type": "string", + "title": "UID", + "description": "A unique identifier of the commit. This may be version control specific. For example, Subversion uses revision numbers whereas git uses commit hashes." + }, + "url": { + "type": "string", + "title": "URL", + "description": "The URL to the commit. This URL will typically point to a commit in a version control system.", + "format": "iri-reference" + }, + "author": { + "title": "Author", + "description": "The author who created the changes in the commit", + "$ref": "#/definitions/identifiableAction" + }, + "committer": { + "title": "Committer", + "description": "The person who committed or pushed the commit", + "$ref": "#/definitions/identifiableAction" + }, + "message": { + "type": "string", + "title": "Message", + "description": "The text description of the contents of the commit" + } + } + }, + "patch": { + "type": "object", + "title": "Patch", + "description": "Specifies an individual patch", + "required": [ + "type" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "unofficial", + "monkey", + "backport", + "cherry-pick" + ], + "title": "Type", + "description": "Specifies the purpose for the patch including the resolution of defects, security issues, or new behavior or functionality.\n\n* __unofficial__ = A patch which is not developed by the creators or maintainers of the software being patched. Refer to [https://en.wikipedia.org/wiki/Unofficial_patch](https://en.wikipedia.org/wiki/Unofficial_patch)\n* __monkey__ = A patch which dynamically modifies runtime behavior. Refer to [https://en.wikipedia.org/wiki/Monkey_patch](https://en.wikipedia.org/wiki/Monkey_patch)\n* __backport__ = A patch which takes code from a newer version of software and applies it to older versions of the same software. Refer to [https://en.wikipedia.org/wiki/Backporting](https://en.wikipedia.org/wiki/Backporting)\n* __cherry-pick__ = A patch created by selectively applying commits from other versions or branches of the same software." + }, + "diff": { + "title": "Diff", + "description": "The patch file (or diff) that show changes. Refer to [https://en.wikipedia.org/wiki/Diff](https://en.wikipedia.org/wiki/Diff)", + "$ref": "#/definitions/diff" + }, + "resolves": { + "type": "array", + "items": {"$ref": "#/definitions/issue"}, + "title": "Resolves", + "description": "A collection of issues the patch resolves" + } + } + }, + "diff": { + "type": "object", + "title": "Diff", + "description": "The patch file (or diff) that show changes. Refer to https://en.wikipedia.org/wiki/Diff", + "additionalProperties": false, + "properties": { + "text": { + "title": "Diff text", + "description": "Specifies the optional text of the diff", + "$ref": "#/definitions/attachment" + }, + "url": { + "type": "string", + "title": "URL", + "description": "Specifies the URL to the diff", + "format": "iri-reference" + } + } + }, + "issue": { + "type": "object", + "title": "Diff", + "description": "An individual issue that has been resolved.", + "required": [ + "type" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": [ + "defect", + "enhancement", + "security" + ], + "title": "Type", + "description": "Specifies the type of issue" + }, + "id": { + "type": "string", + "title": "ID", + "description": "The identifier of the issue assigned by the source of the issue" + }, + "name": { + "type": "string", + "title": "Name", + "description": "The name of the issue" + }, + "description": { + "type": "string", + "title": "Description", + "description": "A description of the issue" + }, + "source": { + "type": "object", + "title": "Source", + "description": "The source of the issue where it is documented", + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "The name of the source. For example 'National Vulnerability Database', 'NVD', and 'Apache'" + }, + "url": { + "type": "string", + "title": "URL", + "description": "The url of the issue documentation as provided by the source", + "format": "iri-reference" + } + } + }, + "references": { + "type": "array", + "items": { + "type": "string", + "format": "iri-reference" + }, + "title": "References", + "description": "A collection of URL's for reference. Multiple URLs are allowed.", + "examples": ["https://example.com"] + } + } + }, + "identifiableAction": { + "type": "object", + "title": "Identifiable Action", + "description": "Specifies an individual commit", + "additionalProperties": false, + "properties": { + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp", + "description": "The timestamp in which the action occurred" + }, + "name": { + "type": "string", + "title": "Name", + "description": "The name of the individual who performed the action" + }, + "email": { + "type": "string", + "format": "idn-email", + "title": "E-mail", + "description": "The email address of the individual who performed the action" + } + } + }, + "externalReference": { + "type": "object", + "title": "External Reference", + "description": "External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM.", + "required": [ + "url", + "type" + ], + "additionalProperties": false, + "properties": { + "url": { + "anyOf": [ + { + "title": "URL", + "type": "string", + "format": "iri-reference" + }, + { + "title": "BOM-Link", + "$ref": "#/definitions/bomLink" + } + ], + "title": "URL", + "description": "The URI (URL or URN) to the external reference. External references are URIs and therefore can accept any URL scheme including https ([RFC-7230](https://www.ietf.org/rfc/rfc7230.txt)), mailto ([RFC-2368](https://www.ietf.org/rfc/rfc2368.txt)), tel ([RFC-3966](https://www.ietf.org/rfc/rfc3966.txt)), and dns ([RFC-4501](https://www.ietf.org/rfc/rfc4501.txt)). External references may also include formally registered URNs such as [CycloneDX BOM-Link](https://cyclonedx.org/capabilities/bomlink/) to reference CycloneDX BOMs or any object within a BOM. BOM-Link transforms applicable external references into relationships that can be expressed in a BOM or across BOMs." + }, + "comment": { + "type": "string", + "title": "Comment", + "description": "An optional comment describing the external reference" + }, + "type": { + "type": "string", + "title": "Type", + "description": "Specifies the type of external reference.\n\n* __vcs__ = Version Control System\n* __issue-tracker__ = Issue or defect tracking system, or an Application Lifecycle Management (ALM) system\n* __website__ = Website\n* __advisories__ = Security advisories\n* __bom__ = Bill of Materials (SBOM, OBOM, HBOM, SaaSBOM, etc)\n* __mailing-list__ = Mailing list or discussion group\n* __social__ = Social media account\n* __chat__ = Real-time chat platform\n* __documentation__ = Documentation, guides, or how-to instructions\n* __support__ = Community or commercial support\n* __distribution__ = Direct or repository download location\n* __distribution-intake__ = The location where a component was published to. This is often the same as \"distribution\" but may also include specialized publishing processes that act as an intermediary\n* __license__ = The URL to the license file. If a license URL has been defined in the license node, it should also be defined as an external reference for completeness\n* __build-meta__ = Build-system specific meta file (i.e. pom.xml, package.json, .nuspec, etc)\n* __build-system__ = URL to an automated build system\n* __release-notes__ = URL to release notes\n* __security-contact__ = Specifies a way to contact the maintainer, supplier, or provider in the event of a security incident. Common URIs include links to a disclosure procedure, a mailto (RFC-2368) that specifies an email address, a tel (RFC-3966) that specifies a phone number, or dns (RFC-4501) that specifies the records containing DNS Security TXT\n* __model-card__ = A model card describes the intended uses of a machine learning model, potential limitations, biases, ethical considerations, training parameters, datasets used to train the model, performance metrics, and other relevant data useful for ML transparency\n* __log__ = A record of events that occurred in a computer system or application, such as problems, errors, or information on current operations\n* __configuration__ = Parameters or settings that may be used by other components or services\n* __evidence__ = Information used to substantiate a claim\n* __formulation__ = Describes how a component or service was manufactured or deployed\n* __attestation__ = Human or machine-readable statements containing facts, evidence, or testimony\n* __threat-model__ = An enumeration of identified weaknesses, threats, and countermeasures, dataflow diagram (DFD), attack tree, and other supporting documentation in human-readable or machine-readable format\n* __adversary-model__ = The defined assumptions, goals, and capabilities of an adversary.\n* __risk-assessment__ = Identifies and analyzes the potential of future events that may negatively impact individuals, assets, and/or the environment. Risk assessments may also include judgments on the tolerability of each risk.\n* __vulnerability-assertion__ = A Vulnerability Disclosure Report (VDR) which asserts the known and previously unknown vulnerabilities that affect a component, service, or product including the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on a component, service, or product.\n* __exploitability-statement__ = A Vulnerability Exploitability eXchange (VEX) which asserts the known vulnerabilities that do not affect a product, product family, or organization, and optionally the ones that do. The VEX should include the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on the product, product family, or organization.\n* __pentest-report__ = Results from an authorized simulated cyberattack on a component or service, otherwise known as a penetration test\n* __static-analysis-report__ = SARIF or proprietary machine or human-readable report for which static analysis has identified code quality, security, and other potential issues with the source code\n* __dynamic-analysis-report__ = Dynamic analysis report that has identified issues such as vulnerabilities and misconfigurations\n* __runtime-analysis-report__ = Report generated by analyzing the call stack of a running application\n* __component-analysis-report__ = Report generated by Software Composition Analysis (SCA), container analysis, or other forms of component analysis\n* __maturity-report__ = Report containing a formal assessment of an organization, business unit, or team against a maturity model\n* __certification-report__ = Industry, regulatory, or other certification from an accredited (if applicable) certification body\n* __quality-metrics__ = Report or system in which quality metrics can be obtained\n* __codified-infrastructure__ = Code or configuration that defines and provisions virtualized infrastructure, commonly referred to as Infrastructure as Code (IaC)\n* __poam__ = Plans of Action and Milestones (POAM) compliment an \"attestation\" external reference. POAM is defined by NIST as a \"document that identifies tasks needing to be accomplished. It details resources required to accomplish the elements of the plan, any milestones in meeting the tasks and scheduled completion dates for the milestones\".\n* __other__ = Use this if no other types accurately describe the purpose of the external reference", + "enum": [ + "vcs", + "issue-tracker", + "website", + "advisories", + "bom", + "mailing-list", + "social", + "chat", + "documentation", + "support", + "distribution", + "distribution-intake", + "license", + "build-meta", + "build-system", + "release-notes", + "security-contact", + "model-card", + "log", + "configuration", + "evidence", + "formulation", + "attestation", + "threat-model", + "adversary-model", + "risk-assessment", + "vulnerability-assertion", + "exploitability-statement", + "pentest-report", + "static-analysis-report", + "dynamic-analysis-report", + "runtime-analysis-report", + "component-analysis-report", + "maturity-report", + "certification-report", + "codified-infrastructure", + "quality-metrics", + "poam", + "other" + ] + }, + "hashes": { + "type": "array", + "items": {"$ref": "#/definitions/hash"}, + "title": "Hashes", + "description": "The hashes of the external reference (if applicable)." + } + } + }, + "dependency": { + "type": "object", + "title": "Dependency", + "description": "Defines the direct dependencies of a component or service. Components or services that do not have their own dependencies MUST be declared as empty elements within the graph. Components or services that are not represented in the dependency graph MAY have unknown dependencies. It is RECOMMENDED that implementations assume this to be opaque and not an indicator of a object being dependency-free. It is RECOMMENDED to leverage compositions to indicate unknown dependency graphs.", + "required": [ + "ref" + ], + "additionalProperties": false, + "properties": { + "ref": { + "$ref": "#/definitions/refLinkType", + "title": "Reference", + "description": "References a component or service by its bom-ref attribute" + }, + "dependsOn": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/refLinkType" + }, + "title": "Depends On", + "description": "The bom-ref identifiers of the components or services that are dependencies of this dependency object." + } + } + }, + "service": { + "type": "object", + "title": "Service Object", + "required": [ + "name" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the service elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "provider": { + "title": "Provider", + "description": "The organization that provides the service.", + "$ref": "#/definitions/organizationalEntity" + }, + "group": { + "type": "string", + "title": "Service Group", + "description": "The grouping name, namespace, or identifier. This will often be a shortened, single name of the company or project that produced the service or domain name. Whitespace and special characters should be avoided.", + "examples": ["com.acme"] + }, + "name": { + "type": "string", + "title": "Service Name", + "description": "The name of the service. This will often be a shortened, single name of the service.", + "examples": ["ticker-service"] + }, + "version": { + "type": "string", + "title": "Service Version", + "description": "The service version.", + "examples": ["1.0.0"] + }, + "description": { + "type": "string", + "title": "Service Description", + "description": "Specifies a description for the service" + }, + "endpoints": { + "type": "array", + "items": { + "type": "string", + "format": "iri-reference" + }, + "title": "Endpoints", + "description": "The endpoint URIs of the service. Multiple endpoints are allowed.", + "examples": ["https://example.com/api/v1/ticker"] + }, + "authenticated": { + "type": "boolean", + "title": "Authentication Required", + "description": "A boolean value indicating if the service requires authentication. A value of true indicates the service requires authentication prior to use. A value of false indicates the service does not require authentication." + }, + "x-trust-boundary": { + "type": "boolean", + "title": "Crosses Trust Boundary", + "description": "A boolean value indicating if use of the service crosses a trust zone or boundary. A value of true indicates that by using the service, a trust boundary is crossed. A value of false indicates that by using the service, a trust boundary is not crossed." + }, + "trustZone": { + "type": "string", + "title": "Trust Zone", + "description": "The name of the trust zone the service resides in." + }, + "data": { + "type": "array", + "items": {"$ref": "#/definitions/serviceData"}, + "title": "Data", + "description": "Specifies information about the data including the directional flow of data and the data classification." + }, + "licenses": { + "$ref": "#/definitions/licenseChoice", + "title": "Component License(s)" + }, + "externalReferences": { + "type": "array", + "items": {"$ref": "#/definitions/externalReference"}, + "title": "External References", + "description": "External references provide a way to document systems, sites, and information that may be relevant, but are not included with the BOM. They may also establish specific relationships within or external to the BOM." + }, + "services": { + "type": "array", + "items": {"$ref": "#/definitions/service"}, + "uniqueItems": true, + "title": "Services", + "description": "A list of services included or deployed behind the parent service. This is not a dependency tree. It provides a way to specify a hierarchical representation of service assemblies." + }, + "releaseNotes": { + "$ref": "#/definitions/releaseNotes", + "title": "Release notes", + "description": "Specifies optional release notes." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + }, + "signature": { + "$ref": "#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + } + }, + "serviceData": { + "type": "object", + "title": "Hash Objects", + "required": [ + "flow", + "classification" + ], + "additionalProperties": false, + "properties": { + "flow": { + "$ref": "#/definitions/dataFlowDirection", + "title": "Directional Flow", + "description": "Specifies the flow direction of the data. Direction is relative to the service. Inbound flow states that data enters the service. Outbound flow states that data leaves the service. Bi-directional states that data flows both ways, and unknown states that the direction is not known." + }, + "classification": { + "$ref": "#/definitions/dataClassification" + }, + "name": { + "type": "string", + "title": "Name", + "description": "Name for the defined data", + "examples": [ + "Credit card reporting" + ] + }, + "description": { + "type": "string", + "title": "Description", + "description": "Short description of the data content and usage", + "examples": [ + "Credit card information being exchanged in between the web app and the database" + ] + }, + "governance": { + "type": "object", + "title": "Data Governance", + "$ref": "#/definitions/dataGovernance" + }, + "source": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "URL", + "type": "string", + "format": "iri-reference" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "title": "Source", + "description": "The URI, URL, or BOM-Link of the components or services the data came in from" + }, + "destination": { + "type": "array", + "items": { + "anyOf": [ + { + "title": "URL", + "type": "string", + "format": "iri-reference" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "title": "Destination", + "description": "The URI, URL, or BOM-Link of the components or services the data is sent to" + } + } + }, + "dataFlowDirection": { + "type": "string", + "enum": [ + "inbound", + "outbound", + "bi-directional", + "unknown" + ], + "title": "Data flow direction", + "description": "Specifies the flow direction of the data. Direction is relative to the service. Inbound flow states that data enters the service. Outbound flow states that data leaves the service. Bi-directional states that data flows both ways, and unknown states that the direction is not known." + }, + + "copyright": { + "type": "object", + "title": "Copyright", + "required": [ + "text" + ], + "additionalProperties": false, + "properties": { + "text": { + "type": "string", + "title": "Copyright Text" + } + } + }, + "componentEvidence": { + "type": "object", + "title": "Evidence", + "description": "Provides the ability to document evidence collected through various forms of extraction or analysis.", + "additionalProperties": false, + "properties": { + "identity": { + "type": "object", + "description": "Evidence that substantiates the identity of a component.", + "required": [ "field" ], + "additionalProperties": false, + "properties": { + "field": { + "type": "string", + "enum": [ + "group", "name", "version", "purl", "cpe", "swid", "hash" + ], + "title": "Field", + "description": "The identity field of the component which the evidence describes." + }, + "confidence": { + "type": "number", + "minimum": 0, + "maximum": 1, + "title": "Confidence", + "description": "The overall confidence of the evidence from 0 - 1, where 1 is 100% confidence." + }, + "methods": { + "type": "array", + "title": "Methods", + "description": "The methods used to extract and/or analyze the evidence.", + "items": { + "type": "object", + "required": [ + "technique" , + "confidence" + ], + "additionalProperties": false, + "properties": { + "technique": { + "title": "Technique", + "description": "The technique used in this method of analysis.", + "type": "string", + "enum": [ + "source-code-analysis", + "binary-analysis", + "manifest-analysis", + "ast-fingerprint", + "hash-comparison", + "instrumentation", + "dynamic-analysis", + "filename", + "attestation", + "other" + ] + }, + "confidence": { + "type": "number", + "minimum": 0, + "maximum": 1, + "title": "Confidence", + "description": "The confidence of the evidence from 0 - 1, where 1 is 100% confidence. Confidence is specific to the technique used. Each technique of analysis can have independent confidence." + }, + "value": { + "type": "string", + "title": "Value", + "description": "The value or contents of the evidence." + } + } + } + }, + "tools": { + "type": "array", + "uniqueItems": true, + "items": { + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "title": "BOM References", + "description": "The object in the BOM identified by its bom-ref. This is often a component or service, but may be any object type supporting bom-refs. Tools used for analysis should already be defined in the BOM, either in the metadata/tools, components, or formulation." + } + } + }, + "occurrences": { + "type": "array", + "title": "Occurrences", + "description": "Evidence of individual instances of a component spread across multiple locations.", + "items": { + "type": "object", + "required": [ "location" ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the occurrence elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "location": { + "type": "string", + "title": "Location", + "description": "The location or path to where the component was found." + } + } + } + }, + "callstack": { + "type": "object", + "description": "Evidence of the components use through the callstack.", + "additionalProperties": false, + "properties": { + "frames": { + "type": "array", + "title": "Methods", + "items": { + "type": "object", + "required": [ + "module" + ], + "additionalProperties": false, + "properties": { + "package": { + "title": "Package", + "description": "A package organizes modules into namespaces, providing a unique namespace for each type it contains.", + "type": "string" + }, + "module": { + "title": "Module", + "description": "A module or class that encloses functions/methods and other code.", + "type": "string" + }, + "function": { + "title": "Function", + "description": "A block of code designed to perform a particular task.", + "type": "string" + }, + "parameters": { + "title": "Parameters", + "description": "Optional arguments that are passed to the module or function.", + "type": "array", + "items": { + "type": "string" + } + }, + "line": { + "title": "Line", + "description": "The line number the code that is called resides on.", + "type": "integer" + }, + "column": { + "title": "Column", + "description": "The column the code that is called resides.", + "type": "integer" + }, + "fullFilename": { + "title": "Full Filename", + "description": "The full path and filename of the module.", + "type": "string" + } + } + } + } + } + }, + "licenses": { + "$ref": "#/definitions/licenseChoice", + "title": "Component License(s)" + }, + "copyright": { + "type": "array", + "items": {"$ref": "#/definitions/copyright"}, + "title": "Copyright" + } + } + }, + "compositions": { + "type": "object", + "title": "Compositions", + "required": [ + "aggregate" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the composition elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "aggregate": { + "$ref": "#/definitions/aggregateType", + "title": "Aggregate", + "description": "Specifies an aggregate type that describe how complete a relationship is.\n\n* __complete__ = The relationship is complete. No further relationships including constituent components, services, or dependencies are known to exist.\n* __incomplete__ = The relationship is incomplete. Additional relationships exist and may include constituent components, services, or dependencies.\n* __incomplete_first_party_only__ = The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented.\n* __incomplete_first_party_proprietary_only__ = The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are proprietary.\n* __incomplete_first_party_opensource_only__ = The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are opensource.\n* __incomplete_third_party_only__ = The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented.\n* __incomplete_third_party_proprietary_only__ = The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are proprietary.\n* __incomplete_third_party_opensource_only__ = The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are opensource.\n* __unknown__ = The relationship may be complete or incomplete. This usually signifies a 'best-effort' to obtain constituent components, services, or dependencies but the completeness is inconclusive.\n* __not_specified__ = The relationship completeness is not specified.\n" + }, + "assemblies": { + "type": "array", + "uniqueItems": true, + "items": { + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "title": "BOM references", + "description": "The bom-ref identifiers of the components or services being described. Assemblies refer to nested relationships whereby a constituent part may include other constituent parts. References do not cascade to child parts. References are explicit for the specified constituent part only." + }, + "dependencies": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "title": "BOM references", + "description": "The bom-ref identifiers of the components or services being described. Dependencies refer to a relationship whereby an independent constituent part requires another independent constituent part. References do not cascade to transitive dependencies. References are explicit for the specified dependency only." + }, + "vulnerabilities": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" + }, + "title": "BOM references", + "description": "The bom-ref identifiers of the vulnerabilities being described." + }, + "signature": { + "$ref": "#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + } + }, + "aggregateType": { + "type": "string", + "default": "not_specified", + "enum": [ + "complete", + "incomplete", + "incomplete_first_party_only", + "incomplete_first_party_proprietary_only", + "incomplete_first_party_opensource_only", + "incomplete_third_party_only", + "incomplete_third_party_proprietary_only", + "incomplete_third_party_opensource_only", + "unknown", + "not_specified" + ] + }, + "property": { + "type": "object", + "title": "Lightweight name-value pair", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "The name of the property. Duplicate names are allowed, each potentially having a different value." + }, + "value": { + "type": "string", + "title": "Value", + "description": "The value of the property." + } + } + }, + "localeType": { + "type": "string", + "pattern": "^([a-z]{2})(-[A-Z]{2})?$", + "title": "Locale", + "description": "Defines a syntax for representing two character language code (ISO-639) followed by an optional two character country code. The language code MUST be lower case. If the country code is specified, the country code MUST be upper case. The language code and country code MUST be separated by a minus sign. Examples: en, en-US, fr, fr-CA" + }, + "releaseType": { + "type": "string", + "examples": [ + "major", + "minor", + "patch", + "pre-release", + "internal" + ], + "description": "The software versioning type. It is RECOMMENDED that the release type use one of 'major', 'minor', 'patch', 'pre-release', or 'internal'. Representing all possible software release types is not practical, so standardizing on the recommended values, whenever possible, is strongly encouraged.\n\n* __major__ = A major release may contain significant changes or may introduce breaking changes.\n* __minor__ = A minor release, also known as an update, may contain a smaller number of changes than major releases.\n* __patch__ = Patch releases are typically unplanned and may resolve defects or important security issues.\n* __pre-release__ = A pre-release may include alpha, beta, or release candidates and typically have limited support. They provide the ability to preview a release prior to its general availability.\n* __internal__ = Internal releases are not for public consumption and are intended to be used exclusively by the project or manufacturer that produced it." + }, + "note": { + "type": "object", + "title": "Note", + "description": "A note containing the locale and content.", + "required": [ + "text" + ], + "additionalProperties": false, + "properties": { + "locale": { + "$ref": "#/definitions/localeType", + "title": "Locale", + "description": "The ISO-639 (or higher) language code and optional ISO-3166 (or higher) country code. Examples include: \"en\", \"en-US\", \"fr\" and \"fr-CA\"" + }, + "text": { + "title": "Release note content", + "description": "Specifies the full content of the release note.", + "$ref": "#/definitions/attachment" + } + } + }, + "releaseNotes": { + "type": "object", + "title": "Release notes", + "required": [ + "type" + ], + "additionalProperties": false, + "properties": { + "type": { + "$ref": "#/definitions/releaseType", + "title": "Type", + "description": "The software versioning type the release note describes." + }, + "title": { + "type": "string", + "title": "Title", + "description": "The title of the release." + }, + "featuredImage": { + "type": "string", + "format": "iri-reference", + "title": "Featured image", + "description": "The URL to an image that may be prominently displayed with the release note." + }, + "socialImage": { + "type": "string", + "format": "iri-reference", + "title": "Social image", + "description": "The URL to an image that may be used in messaging on social media platforms." + }, + "description": { + "type": "string", + "title": "Description", + "description": "A short description of the release." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp", + "description": "The date and time (timestamp) when the release note was created." + }, + "aliases": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Aliases", + "description": "One or more alternate names the release may be referred to. This may include unofficial terms used by development and marketing teams (e.g. code names)." + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tags", + "description": "One or more tags that may aid in search or retrieval of the release note." + }, + "resolves": { + "type": "array", + "items": {"$ref": "#/definitions/issue"}, + "title": "Resolves", + "description": "A collection of issues that have been resolved." + }, + "notes": { + "type": "array", + "items": {"$ref": "#/definitions/note"}, + "title": "Notes", + "description": "Zero or more release notes containing the locale and content. Multiple note objects may be specified to support release notes in a wide variety of languages." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + } + } + }, + "advisory": { + "type": "object", + "title": "Advisory", + "description": "Title and location where advisory information can be obtained. An advisory is a notification of a threat to a component, service, or system.", + "required": ["url"], + "additionalProperties": false, + "properties": { + "title": { + "type": "string", + "title": "Title", + "description": "An optional name of the advisory." + }, + "url": { + "type": "string", + "title": "URL", + "format": "iri-reference", + "description": "Location where the advisory can be obtained." + } + } + }, + "cwe": { + "type": "integer", + "minimum": 1, + "title": "CWE", + "description": "Integer representation of a Common Weaknesses Enumerations (CWE). For example 399 (of https://cwe.mitre.org/data/definitions/399.html)" + }, + "severity": { + "type": "string", + "title": "Severity", + "description": "Textual representation of the severity of the vulnerability adopted by the analysis method. If the analysis method uses values other than what is provided, the user is expected to translate appropriately.", + "enum": [ + "critical", + "high", + "medium", + "low", + "info", + "none", + "unknown" + ] + }, + "scoreMethod": { + "type": "string", + "title": "Method", + "description": "Specifies the severity or risk scoring methodology or standard used.\n\n* CVSSv2 - [Common Vulnerability Scoring System v2](https://www.first.org/cvss/v2/)\n* CVSSv3 - [Common Vulnerability Scoring System v3](https://www.first.org/cvss/v3-0/)\n* CVSSv31 - [Common Vulnerability Scoring System v3.1](https://www.first.org/cvss/v3-1/)\n* CVSSv4 - [Common Vulnerability Scoring System v4](https://www.first.org/cvss/v4-0/)\n* OWASP - [OWASP Risk Rating Methodology](https://owasp.org/www-community/OWASP_Risk_Rating_Methodology)\n* SSVC - [Stakeholder Specific Vulnerability Categorization](https://github.com/CERTCC/SSVC) (all versions)", + "enum": [ + "CVSSv2", + "CVSSv3", + "CVSSv31", + "CVSSv4", + "OWASP", + "SSVC", + "other" + ] + }, + "impactAnalysisState": { + "type": "string", + "title": "Impact Analysis State", + "description": "Declares the current state of an occurrence of a vulnerability, after automated or manual analysis. \n\n* __resolved__ = the vulnerability has been remediated. \n* __resolved\\_with\\_pedigree__ = the vulnerability has been remediated and evidence of the changes are provided in the affected components pedigree containing verifiable commit history and/or diff(s). \n* __exploitable__ = the vulnerability may be directly or indirectly exploitable. \n* __in\\_triage__ = the vulnerability is being investigated. \n* __false\\_positive__ = the vulnerability is not specific to the component or service and was falsely identified or associated. \n* __not\\_affected__ = the component or service is not affected by the vulnerability. Justification should be specified for all not_affected cases.", + "enum": [ + "resolved", + "resolved_with_pedigree", + "exploitable", + "in_triage", + "false_positive", + "not_affected" + ] + }, + "impactAnalysisJustification": { + "type": "string", + "title": "Impact Analysis Justification", + "description": "The rationale of why the impact analysis state was asserted. \n\n* __code\\_not\\_present__ = the code has been removed or tree-shaked. \n* __code\\_not\\_reachable__ = the vulnerable code is not invoked at runtime. \n* __requires\\_configuration__ = exploitability requires a configurable option to be set/unset. \n* __requires\\_dependency__ = exploitability requires a dependency that is not present. \n* __requires\\_environment__ = exploitability requires a certain environment which is not present. \n* __protected\\_by\\_compiler__ = exploitability requires a compiler flag to be set/unset. \n* __protected\\_at\\_runtime__ = exploits are prevented at runtime. \n* __protected\\_at\\_perimeter__ = attacks are blocked at physical, logical, or network perimeter. \n* __protected\\_by\\_mitigating\\_control__ = preventative measures have been implemented that reduce the likelihood and/or impact of the vulnerability.", + "enum": [ + "code_not_present", + "code_not_reachable", + "requires_configuration", + "requires_dependency", + "requires_environment", + "protected_by_compiler", + "protected_at_runtime", + "protected_at_perimeter", + "protected_by_mitigating_control" + ] + }, + "rating": { + "type": "object", + "title": "Rating", + "description": "Defines the severity or risk ratings of a vulnerability.", + "additionalProperties": false, + "properties": { + "source": { + "$ref": "#/definitions/vulnerabilitySource", + "description": "The source that calculated the severity or risk rating of the vulnerability." + }, + "score": { + "type": "number", + "title": "Score", + "description": "The numerical score of the rating." + }, + "severity": { + "$ref": "#/definitions/severity", + "description": "Textual representation of the severity that corresponds to the numerical score of the rating." + }, + "method": { + "$ref": "#/definitions/scoreMethod" + }, + "vector": { + "type": "string", + "title": "Vector", + "description": "Textual representation of the metric values used to score the vulnerability" + }, + "justification": { + "type": "string", + "title": "Justification", + "description": "An optional reason for rating the vulnerability as it was" + } + } + }, + "vulnerabilitySource": { + "type": "object", + "title": "Source", + "description": "The source of vulnerability information. This is often the organization that published the vulnerability.", + "additionalProperties": false, + "properties": { + "url": { + "type": "string", + "title": "URL", + "description": "The url of the vulnerability documentation as provided by the source.", + "examples": [ + "https://nvd.nist.gov/vuln/detail/CVE-2021-39182" + ] + }, + "name": { + "type": "string", + "title": "Name", + "description": "The name of the source.", + "examples": [ + "NVD", + "National Vulnerability Database", + "OSS Index", + "VulnDB", + "GitHub Advisories" + ] + } + } + }, + "vulnerability": { + "type": "object", + "title": "Vulnerability", + "description": "Defines a weakness in a component or service that could be exploited or triggered by a threat source.", + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the vulnerability elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "id": { + "type": "string", + "title": "ID", + "description": "The identifier that uniquely identifies the vulnerability.", + "examples": [ + "CVE-2021-39182", + "GHSA-35m5-8cvj-8783", + "SNYK-PYTHON-ENROCRYPT-1912876" + ] + }, + "source": { + "$ref": "#/definitions/vulnerabilitySource", + "description": "The source that published the vulnerability." + }, + "references": { + "type": "array", + "title": "References", + "description": "Zero or more pointers to vulnerabilities that are the equivalent of the vulnerability specified. Often times, the same vulnerability may exist in multiple sources of vulnerability intelligence, but have different identifiers. References provide a way to correlate vulnerabilities across multiple sources of vulnerability intelligence.", + "items": { + "type": "object", + "required": [ + "id", + "source" + ], + "additionalProperties": false, + "properties": { + "id": { + "type": "string", + "title": "ID", + "description": "An identifier that uniquely identifies the vulnerability.", + "examples": [ + "CVE-2021-39182", + "GHSA-35m5-8cvj-8783", + "SNYK-PYTHON-ENROCRYPT-1912876" + ] + }, + "source": { + "$ref": "#/definitions/vulnerabilitySource", + "description": "The source that published the vulnerability." + } + } + } + }, + "ratings": { + "type": "array", + "title": "Ratings", + "description": "List of vulnerability ratings", + "items": { + "$ref": "#/definitions/rating" + } + }, + "cwes": { + "type": "array", + "title": "CWEs", + "description": "List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability. For example 399 (of https://cwe.mitre.org/data/definitions/399.html)", + "examples": [399], + "items": { + "$ref": "#/definitions/cwe" + } + }, + "description": { + "type": "string", + "title": "Description", + "description": "A description of the vulnerability as provided by the source." + }, + "detail": { + "type": "string", + "title": "Details", + "description": "If available, an in-depth description of the vulnerability as provided by the source organization. Details often include information useful in understanding root cause." + }, + "recommendation": { + "type": "string", + "title": "Recommendation", + "description": "Recommendations of how the vulnerability can be remediated or mitigated." + }, + "workaround": { + "type": "string", + "title": "Workarounds", + "description": "A bypass, usually temporary, of the vulnerability that reduces its likelihood and/or impact. Workarounds often involve changes to configuration or deployments." + }, + "proofOfConcept": { + "type": "object", + "title": "Proof of Concept", + "description": "Evidence used to reproduce the vulnerability.", + "properties": { + "reproductionSteps": { + "type": "string", + "title": "Steps to Reproduce", + "description": "Precise steps to reproduce the vulnerability." + }, + "environment": { + "type": "string", + "title": "Environment", + "description": "A description of the environment in which reproduction was possible." + }, + "supportingMaterial": { + "type": "array", + "title": "Supporting Material", + "description": "Supporting material that helps in reproducing or understanding how reproduction is possible. This may include screenshots, payloads, and PoC exploit code.", + "items": { "$ref": "#/definitions/attachment" } + } + } + }, + "advisories": { + "type": "array", + "title": "Advisories", + "description": "Published advisories of the vulnerability if provided.", + "items": { + "$ref": "#/definitions/advisory" + } + }, + "created": { + "type": "string", + "format": "date-time", + "title": "Created", + "description": "The date and time (timestamp) when the vulnerability record was created in the vulnerability database." + }, + "published": { + "type": "string", + "format": "date-time", + "title": "Published", + "description": "The date and time (timestamp) when the vulnerability record was first published." + }, + "updated": { + "type": "string", + "format": "date-time", + "title": "Updated", + "description": "The date and time (timestamp) when the vulnerability record was last updated." + }, + "rejected": { + "type": "string", + "format": "date-time", + "title": "Rejected", + "description": "The date and time (timestamp) when the vulnerability record was rejected (if applicable)." + }, + "credits": { + "type": "object", + "title": "Credits", + "description": "Individuals or organizations credited with the discovery of the vulnerability.", + "additionalProperties": false, + "properties": { + "organizations": { + "type": "array", + "title": "Organizations", + "description": "The organizations credited with vulnerability discovery.", + "items": { + "$ref": "#/definitions/organizationalEntity" + } + }, + "individuals": { + "type": "array", + "title": "Individuals", + "description": "The individuals, not associated with organizations, that are credited with vulnerability discovery.", + "items": { + "$ref": "#/definitions/organizationalContact" + } + } + } + }, + "tools": { + "oneOf": [ + { + "type": "object", + "title": "Tools", + "description": "The tool(s) used to identify, confirm, or score the vulnerability.", + "additionalProperties": false, + "properties": { + "components": { + "type": "array", + "items": {"$ref": "#/definitions/component"}, + "uniqueItems": true, + "title": "Components", + "description": "A list of software and hardware components used as tools" + }, + "services": { + "type": "array", + "items": {"$ref": "#/definitions/service"}, + "uniqueItems": true, + "title": "Services", + "description": "A list of services used as tools. This may include microservices, function-as-a-service, and other types of network or intra-process services." + } + } + }, + { + "type": "array", + "title": "Tools (legacy)", + "description": "[Deprecated] The tool(s) used to identify, confirm, or score the vulnerability.", + "items": {"$ref": "#/definitions/tool"} + } + ] + }, + "analysis": { + "type": "object", + "title": "Impact Analysis", + "description": "An assessment of the impact and exploitability of the vulnerability.", + "additionalProperties": false, + "properties": { + "state": { + "$ref": "#/definitions/impactAnalysisState" + }, + "justification": { + "$ref": "#/definitions/impactAnalysisJustification" + }, + "response": { + "type": "array", + "title": "Response", + "description": "A response to the vulnerability by the manufacturer, supplier, or project responsible for the affected component or service. More than one response is allowed. Responses are strongly encouraged for vulnerabilities where the analysis state is exploitable.", + "items": { + "type": "string", + "enum": [ + "can_not_fix", + "will_not_fix", + "update", + "rollback", + "workaround_available" + ] + } + }, + "detail": { + "type": "string", + "title": "Detail", + "description": "Detailed description of the impact including methods used during assessment. If a vulnerability is not exploitable, this field should include specific details on why the component or service is not impacted by this vulnerability." + }, + "firstIssued": { + "type": "string", + "format": "date-time", + "title": "First Issued", + "description": "The date and time (timestamp) when the analysis was first issued." + }, + "lastUpdated": { + "type": "string", + "format": "date-time", + "title": "Last Updated", + "description": "The date and time (timestamp) when the analysis was last updated." + } + } + }, + "affects": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "object", + "required": [ + "ref" + ], + "additionalProperties": false, + "properties": { + "ref": { + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ], + "title": "Reference", + "description": "References a component or service by the objects bom-ref" + }, + "versions": { + "type": "array", + "title": "Versions", + "description": "Zero or more individual versions or range of versions.", + "items": { + "type": "object", + "oneOf": [ + { + "required": ["version"] + }, + { + "required": ["range"] + } + ], + "additionalProperties": false, + "properties": { + "version": { + "description": "A single version of a component or service.", + "$ref": "#/definitions/version" + }, + "range": { + "description": "A version range specified in Package URL Version Range syntax (vers) which is defined at https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst", + "$ref": "#/definitions/range" + }, + "status": { + "description": "The vulnerability status for the version or range of versions.", + "$ref": "#/definitions/affectedStatus", + "default": "affected" + } + } + } + } + } + }, + "title": "Affects", + "description": "The components or services that are affected by the vulnerability." + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "affectedStatus": { + "description": "The vulnerability status of a given version or range of versions of a product. The statuses 'affected' and 'unaffected' indicate that the version is affected or unaffected by the vulnerability. The status 'unknown' indicates that it is unknown or unspecified whether the given version is affected. There can be many reasons for an 'unknown' status, including that an investigation has not been undertaken or that a vendor has not disclosed the status.", + "type": "string", + "enum": [ + "affected", + "unaffected", + "unknown" + ] + }, + "version": { + "description": "A single version of a component or service.", + "type": "string", + "minLength": 1, + "maxLength": 1024 + }, + "range": { + "description": "A version range specified in Package URL Version Range syntax (vers) which is defined at https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst", + "type": "string", + "minLength": 1, + "maxLength": 1024 + }, + "annotations": { + "type": "object", + "title": "Annotations", + "description": "A comment, note, explanation, or similar textual content which provides additional context to the object(s) being annotated.", + "required": [ + "subjects", + "annotator", + "timestamp", + "text" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "subjects": { + "type": "array", + "uniqueItems": true, + "items": { + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "title": "BOM References", + "description": "The object in the BOM identified by its bom-ref. This is often a component or service, but may be any object type supporting bom-refs." + }, + "annotator": { + "type": "object", + "title": "Annotator", + "description": "The organization, person, component, or service which created the textual content of the annotation.", + "oneOf": [ + { + "required": [ + "organization" + ] + }, + { + "required": [ + "individual" + ] + }, + { + "required": [ + "component" + ] + }, + { + "required": [ + "service" + ] + } + ], + "additionalProperties": false, + "properties": { + "organization": { + "description": "The organization that created the annotation", + "$ref": "#/definitions/organizationalEntity" + }, + "individual": { + "description": "The person that created the annotation", + "$ref": "#/definitions/organizationalContact" + }, + "component": { + "description": "The tool or component that created the annotation", + "$ref": "#/definitions/component" + }, + "service": { + "description": "The service that created the annotation", + "$ref": "#/definitions/service" + } + } + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp", + "description": "The date and time (timestamp) when the annotation was created." + }, + "text": { + "type": "string", + "title": "Text", + "description": "The textual content of the annotation." + }, + "signature": { + "$ref": "#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + } + }, + "modelCard": { + "$comment": "Model card support in CycloneDX is derived from TensorFlow Model Card Toolkit released under the Apache 2.0 license and available from https://github.com/tensorflow/model-card-toolkit/blob/main/model_card_toolkit/schema/v0.0.2/model_card.schema.json. In addition, CycloneDX model card support includes portions of VerifyML, also released under the Apache 2.0 license and available from https://github.com/cylynx/verifyml/blob/main/verifyml/model_card_toolkit/schema/v0.0.4/model_card.schema.json.", + "type": "object", + "title": "Model Card", + "description": "A model card describes the intended uses of a machine learning model and potential limitations, including biases and ethical considerations. Model cards typically contain the training parameters, which datasets were used to train the model, performance metrics, and other relevant data useful for ML transparency. This object SHOULD be specified for any component of type `machine-learning-model` and MUST NOT be specified for other component types.", + "additionalProperties": false, + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the model card elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "modelParameters": { + "type": "object", + "title": "Model Parameters", + "description": "Hyper-parameters for construction of the model.", + "additionalProperties": false, + "properties": { + "approach": { + "type": "object", + "title": "Approach", + "description": "The overall approach to learning used by the model for problem solving.", + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "title": "Learning Type", + "description": "Learning types describing the learning problem or hybrid learning problem.", + "enum": [ + "supervised", + "unsupervised", + "reinforcement-learning", + "semi-supervised", + "self-supervised" + ] + } + } + }, + "task": { + "type": "string", + "title": "Task", + "description": "Directly influences the input and/or output. Examples include classification, regression, clustering, etc." + }, + "architectureFamily": { + "type": "string", + "title": "Architecture Family", + "description": "The model architecture family such as transformer network, convolutional neural network, residual neural network, LSTM neural network, etc." + }, + "modelArchitecture": { + "type": "string", + "title": "Model Architecture", + "description": "The specific architecture of the model such as GPT-1, ResNet-50, YOLOv3, etc." + }, + "datasets": { + "type": "array", + "title": "Datasets", + "description": "The datasets used to train and evaluate the model.", + "items" : { + "oneOf" : [ + { + "title": "Inline Component Data", + "$ref": "#/definitions/componentData" + }, + { + "type": "object", + "title": "Data Component Reference", + "additionalProperties": false, + "properties": { + "ref": { + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ], + "title": "Reference", + "description": "References a data component by the components bom-ref attribute" + } + } + } + ] + } + }, + "inputs": { + "type": "array", + "title": "Inputs", + "description": "The input format(s) of the model", + "items": { "$ref": "#/definitions/inputOutputMLParameters" } + }, + "outputs": { + "type": "array", + "title": "Outputs", + "description": "The output format(s) from the model", + "items": { "$ref": "#/definitions/inputOutputMLParameters" } + } + } + }, + "quantitativeAnalysis": { + "type": "object", + "title": "Quantitative Analysis", + "description": "A quantitative analysis of the model", + "additionalProperties": false, + "properties": { + "performanceMetrics": { + "type": "array", + "title": "Performance Metrics", + "description": "The model performance metrics being reported. Examples may include accuracy, F1 score, precision, top-3 error rates, MSC, etc.", + "items": { "$ref": "#/definitions/performanceMetric" } + }, + "graphics": { "$ref": "#/definitions/graphicsCollection" } + } + }, + "considerations": { + "type": "object", + "title": "Considerations", + "description": "What considerations should be taken into account regarding the model's construction, training, and application?", + "additionalProperties": false, + "properties": { + "users": { + "type": "array", + "title": "Users", + "description": "Who are the intended users of the model?", + "items": { + "type": "string" + } + }, + "useCases": { + "type": "array", + "title": "Use Cases", + "description": "What are the intended use cases of the model?", + "items": { + "type": "string" + } + }, + "technicalLimitations": { + "type": "array", + "title": "Technical Limitations", + "description": "What are the known technical limitations of the model? E.g. What kind(s) of data should the model be expected not to perform well on? What are the factors that might degrade model performance?", + "items": { + "type": "string" + } + }, + "performanceTradeoffs": { + "type": "array", + "title": "Performance Tradeoffs", + "description": "What are the known tradeoffs in accuracy/performance of the model?", + "items": { + "type": "string" + } + }, + "ethicalConsiderations": { + "type": "array", + "title": "Ethical Considerations", + "description": "What are the ethical (or environmental) risks involved in the application of this model?", + "items": { "$ref": "#/definitions/risk" } + }, + "fairnessAssessments": { + "type": "array", + "title": "Fairness Assessments", + "description": "How does the model affect groups at risk of being systematically disadvantaged? What are the harms and benefits to the various affected groups?", + "items": { + "$ref": "#/definitions/fairnessAssessment" + } + } + } + }, + "properties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.", + "items": {"$ref": "#/definitions/property"} + } + } + }, + "inputOutputMLParameters": { + "type": "object", + "title": "Input and Output Parameters", + "additionalProperties": false, + "properties": { + "format": { + "description": "The data format for input/output to the model. Example formats include string, image, time-series", + "type": "string" + } + } + }, + "componentData": { + "type": "object", + "additionalProperties": false, + "required": [ + "type" + ], + "properties": { + "bom-ref": { + "$ref": "#/definitions/refType", + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the dataset elsewhere in the BOM. Every bom-ref MUST be unique within the BOM." + }, + "type": { + "type": "string", + "title": "Type of Data", + "description": "The general theme or subject matter of the data being specified.\n\n* __source-code__ = Any type of code, code snippet, or data-as-code.\n* __configuration__ = Parameters or settings that may be used by other components.\n* __dataset__ = A collection of data.\n* __definition__ = Data that can be used to create new instances of what the definition defines.\n* __other__ = Any other type of data that does not fit into existing definitions.", + "enum": [ + "source-code", + "configuration", + "dataset", + "definition", + "other" + ] + }, + "name": { + "description": "The name of the dataset.", + "type": "string" + }, + "contents": { + "type": "object", + "title": "Data Contents", + "description": "The contents or references to the contents of the data being described.", + "additionalProperties": false, + "properties": { + "attachment": { + "title": "Data Attachment", + "description": "An optional way to include textual or encoded data.", + "$ref": "#/definitions/attachment" + }, + "url": { + "type": "string", + "title": "Data URL", + "description": "The URL to where the data can be retrieved.", + "format": "iri-reference" + }, + "properties": { + "type": "array", + "title": "Configuration Properties", + "description": "Provides the ability to document name-value parameters used for configuration.", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "classification": { + "$ref": "#/definitions/dataClassification" + }, + "sensitiveData": { + "type": "array", + "description": "A description of any sensitive data in a dataset.", + "items": { + "type": "string" + } + }, + "graphics": { "$ref": "#/definitions/graphicsCollection" }, + "description": { + "description": "A description of the dataset. Can describe size of dataset, whether it's used for source code, training, testing, or validation, etc.", + "type": "string" + }, + "governance": { + "type": "object", + "title": "Data Governance", + "$ref": "#/definitions/dataGovernance" + } + } + }, + "dataGovernance": { + "type": "object", + "title": "Data Governance", + "additionalProperties": false, + "properties": { + "custodians": { + "type": "array", + "title": "Data Custodians", + "description": "Data custodians are responsible for the safe custody, transport, and storage of data.", + "items": { "$ref": "#/definitions/dataGovernanceResponsibleParty" } + }, + "stewards": { + "type": "array", + "title": "Data Stewards", + "description": "Data stewards are responsible for data content, context, and associated business rules.", + "items": { "$ref": "#/definitions/dataGovernanceResponsibleParty" } + }, + "owners": { + "type": "array", + "title": "Data Owners", + "description": "Data owners are concerned with risk and appropriate access to data.", + "items": { "$ref": "#/definitions/dataGovernanceResponsibleParty" } + } + } + }, + "dataGovernanceResponsibleParty": { + "type": "object", + "additionalProperties": false, + "properties": { + "organization": { + "title": "Organization", + "$ref": "#/definitions/organizationalEntity" + }, + "contact": { + "title": "Individual", + "$ref": "#/definitions/organizationalContact" + } + }, + "oneOf":[ + { + "required": ["organization"] + }, + { + "required": ["contact"] + } + ] + }, + "graphicsCollection": { + "type": "object", + "title": "Graphics Collection", + "description": "A collection of graphics that represent various measurements.", + "additionalProperties": false, + "properties": { + "description": { + "description": "A description of this collection of graphics.", + "type": "string" + }, + "collection": { + "description": "A collection of graphics.", + "type": "array", + "items": { "$ref": "#/definitions/graphic" } + } + } + }, + "graphic": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "description": "The name of the graphic.", + "type": "string" + }, + "image": { + "title": "Graphic Image", + "description": "The graphic (vector or raster). Base64 encoding MUST be specified for binary images.", + "$ref": "#/definitions/attachment" + } + } + }, + "performanceMetric": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "The type of performance metric.", + "type": "string" + }, + "value": { + "description": "The value of the performance metric.", + "type": "string" + }, + "slice": { + "description": "The name of the slice this metric was computed on. By default, assume this metric is not sliced.", + "type": "string" + }, + "confidenceInterval": { + "description": "The confidence interval of the metric.", + "type": "object", + "additionalProperties": false, + "properties": { + "lowerBound": { + "description": "The lower bound of the confidence interval.", + "type": "string" + }, + "upperBound": { + "description": "The upper bound of the confidence interval.", + "type": "string" + } + } + } + } + }, + "risk": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "description": "The name of the risk.", + "type": "string" + }, + "mitigationStrategy": { + "description": "Strategy used to address this risk.", + "type": "string" + } + } + }, + "fairnessAssessment": { + "type": "object", + "title": "Fairness Assessment", + "description": "Information about the benefits and harms of the model to an identified at risk group.", + "additionalProperties": false, + "properties": { + "groupAtRisk": { + "type": "string", + "description": "The groups or individuals at risk of being systematically disadvantaged by the model." + }, + "benefits": { + "type": "string", + "description": "Expected benefits to the identified groups." + }, + "harms": { + "type": "string", + "description": "Expected harms to the identified groups." + }, + "mitigationStrategy": { + "type": "string", + "description": "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." + } + } + }, + "dataClassification": { + "type": "string", + "title": "Data Classification", + "description": "Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed." + }, + "formula": { + "title": "Formula", + "description": "Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed.", + "type": "object", + "additionalProperties": false, + "properties": { + "bom-ref": { + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the formula elsewhere in the BOM. Every bom-ref MUST be unique within the BOM.", + "$ref": "#/definitions/refType" + }, + "components": { + "title": "Components", + "description": "Transient components that are used in tasks that constitute one or more of this formula's workflows", + "type": "array", + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + }, + "services": { + "title": "Services", + "description": "Transient services that are used in tasks that constitute one or more of this formula's workflows", + "type": "array", + "items": { + "$ref": "#/definitions/service" + }, + "uniqueItems": true + }, + "workflows": { + "title": "Workflows", + "description": "List of workflows that can be declared to accomplish specific orchestrated goals and independently triggered.", + "$comment": "Different workflows can be designed to work together to perform end-to-end CI/CD builds and deployments.", + "type": "array", + "items": { + "$ref": "#/definitions/workflow" + }, + "uniqueItems": true + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "workflow": { + "title": "Workflow", + "description": "A specialized orchestration task.", + "$comment": "Workflow are as task themselves and can trigger other workflow tasks. These relationships can be modeled in the taskDependencies graph.", + "type": "object", + "required": [ + "bom-ref", + "uid", + "taskTypes" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the workflow elsewhere in the BOM. Every bom-ref MUST be unique within the BOM.", + "$ref": "#/definitions/refType" + }, + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier for the resource instance within its deployment context.", + "type": "string" + }, + "name": { + "title": "Name", + "description": "The name of the resource instance.", + "type": "string" + }, + "description": { + "title": "Description", + "description": "A description of the resource instance.", + "type": "string" + }, + "resourceReferences": { + "title": "Resource references", + "description": "References to component or service resources that are used to realize the resource instance.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/resourceReferenceChoice" + } + }, + "tasks": { + "title": "Tasks", + "description": "The tasks that comprise the workflow.", + "$comment": "Note that tasks can appear more than once as different instances (by name or UID).", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/task" + } + }, + "taskDependencies": { + "title": "Task dependency graph", + "description": "The graph of dependencies between tasks within the workflow.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/dependency" + } + }, + "taskTypes": { + "title": "Task types", + "description": "Indicates the types of activities performed by the set of workflow tasks.", + "$comment": "Currently, these types reflect common CI/CD actions.", + "type": "array", + "items": { + "$ref": "#/definitions/taskType" + } + }, + "trigger": { + "title": "Trigger", + "description": "The trigger that initiated the task.", + "$ref": "#/definitions/trigger" + }, + "steps": { + "title": "Steps", + "description": "The sequence of steps for the task.", + "type": "array", + "items": { + "$ref": "#/definitions/step" + }, + "uniqueItems": true + }, + "inputs": { + "title": "Inputs", + "description": "Represents resources and data brought into a task at runtime by executor or task commands", + "examples": ["a `configuration` file which was declared as a local `component` or `externalReference`"], + "type": "array", + "items": { + "$ref": "#/definitions/inputType" + }, + "uniqueItems": true + }, + "outputs": { + "title": "Outputs", + "description": "Represents resources and data output from a task at runtime by executor or task commands", + "examples": ["a log file or metrics data produced by the task"], + "type": "array", + "items": { + "$ref": "#/definitions/outputType" + }, + "uniqueItems": true + }, + "timeStart": { + "title": "Time start", + "description": "The date and time (timestamp) when the task started.", + "type": "string", + "format": "date-time" + }, + "timeEnd": { + "title": "Time end", + "description": "The date and time (timestamp) when the task ended.", + "type": "string", + "format": "date-time" + }, + "workspaces": { + "title": "Workspaces", + "description": "A set of named filesystem or data resource shareable by workflow tasks.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/workspace" + } + }, + "runtimeTopology": { + "title": "Runtime topology", + "description": "A graph of the component runtime topology for workflow's instance.", + "$comment": "A description of the runtime component and service topology. This can describe a partial or complete topology used to host and execute the task (e.g., hardware, operating systems, configurations, etc.),", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/dependency" + } + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "task": { + "title": "Task", + "description": "Describes the inputs, sequence of steps and resources used to accomplish a task and its output.", + "$comment": "Tasks are building blocks for constructing assemble CI/CD workflows or pipelines.", + "type": "object", + "required": [ + "bom-ref", + "uid", + "taskTypes" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the task elsewhere in the BOM. Every bom-ref MUST be unique within the BOM.", + "$ref": "#/definitions/refType" + }, + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier for the resource instance within its deployment context.", + "type": "string" + }, + "name": { + "title": "Name", + "description": "The name of the resource instance.", + "type": "string" + }, + "description": { + "title": "Description", + "description": "A description of the resource instance.", + "type": "string" + }, + "resourceReferences": { + "title": "Resource references", + "description": "References to component or service resources that are used to realize the resource instance.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/resourceReferenceChoice" + } + }, + "taskTypes": { + "title": "Task types", + "description": "Indicates the types of activities performed by the set of workflow tasks.", + "$comment": "Currently, these types reflect common CI/CD actions.", + "type": "array", + "items": { + "$ref": "#/definitions/taskType" + } + }, + "trigger": { + "title": "Trigger", + "description": "The trigger that initiated the task.", + "$ref": "#/definitions/trigger" + }, + "steps": { + "title": "Steps", + "description": "The sequence of steps for the task.", + "type": "array", + "items": { + "$ref": "#/definitions/step" + }, + "uniqueItems": true + }, + "inputs": { + "title": "Inputs", + "description": "Represents resources and data brought into a task at runtime by executor or task commands", + "examples": ["a `configuration` file which was declared as a local `component` or `externalReference`"], + "type": "array", + "items": { + "$ref": "#/definitions/inputType" + }, + "uniqueItems": true + }, + "outputs": { + "title": "Outputs", + "description": "Represents resources and data output from a task at runtime by executor or task commands", + "examples": ["a log file or metrics data produced by the task"], + "type": "array", + "items": { + "$ref": "#/definitions/outputType" + }, + "uniqueItems": true + }, + "timeStart": { + "title": "Time start", + "description": "The date and time (timestamp) when the task started.", + "type": "string", + "format": "date-time" + }, + "timeEnd": { + "title": "Time end", + "description": "The date and time (timestamp) when the task ended.", + "type": "string", + "format": "date-time" + }, + "workspaces": { + "title": "Workspaces", + "description": "A set of named filesystem or data resource shareable by workflow tasks.", + "type": "array", + "items": { + "$ref": "#/definitions/workspace" + }, + "uniqueItems": true + }, + "runtimeTopology": { + "title": "Runtime topology", + "description": "A graph of the component runtime topology for task's instance.", + "$comment": "A description of the runtime component and service topology. This can describe a partial or complete topology used to host and execute the task (e.g., hardware, operating systems, configurations, etc.),", + "type": "array", + "items": { + "$ref": "#/definitions/dependency" + }, + "uniqueItems": true + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "step": { + "type": "object", + "description": "Executes specific commands or tools in order to accomplish its owning task as part of a sequence.", + "additionalProperties": false, + "properties": { + "name": { + "title": "Name", + "description": "A name for the step.", + "type": "string" + }, + "description": { + "title": "Description", + "description": "A description of the step.", + "type": "string" + }, + "commands": { + "title": "Commands", + "description": "Ordered list of commands or directives for the step", + "type": "array", + "items": { + "$ref": "#/definitions/command" + } + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "command": { + "type": "object", + "additionalProperties": false, + "properties": { + "executed": { + "title": "Executed", + "description": "A text representation of the executed command.", + "type": "string" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "workspace": { + "title": "Workspace", + "description": "A named filesystem or data resource shareable by workflow tasks.", + "type": "object", + "required": [ + "bom-ref", + "uid" + ], + "additionalProperties": false, + "properties": { + "bom-ref": { + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the workspace elsewhere in the BOM. Every bom-ref MUST be unique within the BOM.", + "$ref": "#/definitions/refType" + }, + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier for the resource instance within its deployment context.", + "type": "string" + }, + "name": { + "title": "Name", + "description": "The name of the resource instance.", + "type": "string" + }, + "aliases": { + "title": "Aliases", + "description": "The names for the workspace as referenced by other workflow tasks. Effectively, a name mapping so other tasks can use their own local name in their steps.", + "type": "array", + "items": {"type": "string"} + }, + "description": { + "title": "Description", + "description": "A description of the resource instance.", + "type": "string" + }, + "resourceReferences": { + "title": "Resource references", + "description": "References to component or service resources that are used to realize the resource instance.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/resourceReferenceChoice" + } + }, + "accessMode": { + "title": "Access mode", + "description": "Describes the read-write access control for the workspace relative to the owning resource instance.", + "type": "string", + "enum": [ + "read-only", + "read-write", + "read-write-once", + "write-once", + "write-only" + ] + }, + "mountPath": { + "title": "Mount path", + "description": "A path to a location on disk where the workspace will be available to the associated task's steps.", + "type": "string" + }, + "managedDataType": { + "title": "Managed data type", + "description": "The name of a domain-specific data type the workspace represents.", + "$comment": "This property is for CI/CD frameworks that are able to provide access to structured, managed data at a more granular level than a filesystem.", + "examples": ["ConfigMap","Secret"], + "type": "string" + }, + "volumeRequest": { + "title": "Volume request", + "description": "Identifies the reference to the request for a specific volume type and parameters.", + "examples": ["a kubernetes Persistent Volume Claim (PVC) name"], + "type": "string" + }, + "volume": { + "title": "Volume", + "description": "Information about the actual volume instance allocated to the workspace.", + "$comment": "The actual volume allocated may be different than the request.", + "examples": ["see https://kubernetes.io/docs/concepts/storage/persistent-volumes/"], + "$ref": "#/definitions/volume" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "volume": { + "title": "Volume", + "description": "An identifiable, logical unit of data storage tied to a physical device.", + "type": "object", + "additionalProperties": false, + "properties": { + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier for the volume instance within its deployment context.", + "type": "string" + }, + "name": { + "title": "Name", + "description": "The name of the volume instance", + "type": "string" + }, + "mode": { + "title": "Mode", + "description": "The mode for the volume instance.", + "type": "string", + "enum": [ + "filesystem", "block" + ], + "default": "filesystem" + }, + "path": { + "title": "Path", + "description": "The underlying path created from the actual volume.", + "type": "string" + }, + "sizeAllocated": { + "title": "Size allocated", + "description": "The allocated size of the volume accessible to the associated workspace. This should include the scalar size as well as IEC standard unit in either decimal or binary form.", + "examples": ["10GB", "2Ti", "1Pi"], + "type": "string" + }, + "persistent": { + "title": "Persistent", + "description": "Indicates if the volume persists beyond the life of the resource it is associated with.", + "type": "boolean" + }, + "remote": { + "title": "Remote", + "description": "Indicates if the volume is remotely (i.e., network) attached.", + "type": "boolean" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "trigger": { + "title": "Trigger", + "description": "Represents a resource that can conditionally activate (or fire) tasks based upon associated events and their data.", + "type": "object", + "additionalProperties": false, + "required": [ + "type", + "bom-ref", + "uid" + ], + "properties": { + "bom-ref": { + "title": "BOM Reference", + "description": "An optional identifier which can be used to reference the trigger elsewhere in the BOM. Every bom-ref MUST be unique within the BOM.", + "$ref": "#/definitions/refType" + }, + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier for the resource instance within its deployment context.", + "type": "string" + }, + "name": { + "title": "Name", + "description": "The name of the resource instance.", + "type": "string" + }, + "description": { + "title": "Description", + "description": "A description of the resource instance.", + "type": "string" + }, + "resourceReferences": { + "title": "Resource references", + "description": "References to component or service resources that are used to realize the resource instance.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/resourceReferenceChoice" + } + }, + "type": { + "title": "Type", + "description": "The source type of event which caused the trigger to fire.", + "type": "string", + "enum": [ + "manual", + "api", + "webhook", + "scheduled" + ] + }, + "event": { + "title": "Event", + "description": "The event data that caused the associated trigger to activate.", + "$ref": "#/definitions/event" + }, + "conditions": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/condition" + } + }, + "timeActivated": { + "title": "Time activated", + "description": "The date and time (timestamp) when the trigger was activated.", + "type": "string", + "format": "date-time" + }, + "inputs": { + "title": "Inputs", + "description": "Represents resources and data brought into a task at runtime by executor or task commands", + "examples": ["a `configuration` file which was declared as a local `component` or `externalReference`"], + "type": "array", + "items": { + "$ref": "#/definitions/inputType" + }, + "uniqueItems": true + }, + "outputs": { + "title": "Outputs", + "description": "Represents resources and data output from a task at runtime by executor or task commands", + "examples": ["a log file or metrics data produced by the task"], + "type": "array", + "items": { + "$ref": "#/definitions/outputType" + }, + "uniqueItems": true + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "event": { + "title": "Event", + "description": "Represents something that happened that may trigger a response.", + "type": "object", + "additionalProperties": false, + "properties": { + "uid": { + "title": "Unique Identifier (UID)", + "description": "The unique identifier of the event.", + "type": "string" + }, + "description": { + "title": "Description", + "description": "A description of the event.", + "type": "string" + }, + "timeReceived": { + "title": "Time Received", + "description": "The date and time (timestamp) when the event was received.", + "type": "string", + "format": "date-time" + }, + "data": { + "title": "Data", + "description": "Encoding of the raw event data.", + "$ref": "#/definitions/attachment" + }, + "source": { + "title": "Source", + "description": "References the component or service that was the source of the event", + "$ref": "#/definitions/resourceReferenceChoice" + }, + "target": { + "title": "Target", + "description": "References the component or service that was the target of the event", + "$ref": "#/definitions/resourceReferenceChoice" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "inputType": { + "title": "Input type", + "description": "Type that represents various input data types and formats.", + "type": "object", + "oneOf": [ + { + "required": [ + "resource" + ] + }, + { + "required": [ + "parameters" + ] + }, + { + "required": [ + "environmentVars" + ] + }, + { + "required": [ + "data" + ] + } + ], + "additionalProperties": false, + "properties": { + "source": { + "title": "Source", + "description": "A references to the component or service that provided the input to the task (e.g., reference to a service with data flow value of `inbound`)", + "examples": [ + "source code repository", + "database" + ], + "$ref": "#/definitions/resourceReferenceChoice" + }, + "target": { + "title": "Target", + "description": "A reference to the component or service that received or stored the input if not the task itself (e.g., a local, named storage workspace)", + "examples": [ + "workspace", + "directory" + ], + "$ref": "#/definitions/resourceReferenceChoice" + }, + "resource": { + "title": "Resource", + "description": "A reference to an independent resource provided as an input to a task by the workflow runtime.", + "examples": [ + "reference to a configuration file in a repository (i.e., a bom-ref)", + "reference to a scanning service used in a task (i.e., a bom-ref)" + ], + "$ref": "#/definitions/resourceReferenceChoice" + }, + "parameters": { + "title": "Parameters", + "description": "Inputs that have the form of parameters with names and values.", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/parameter" + } + }, + "environmentVars": { + "title": "Environment variables", + "description": "Inputs that have the form of parameters with names and values.", + "type": "array", + "uniqueItems": true, + "items": { + "oneOf": [ + { + "$ref": "#/definitions/property" + }, + { + "type": "string" + } + ] + } + }, + "data": { + "title": "Data", + "description": "Inputs that have the form of data.", + "$ref": "#/definitions/attachment" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "outputType": { + "type": "object", + "oneOf": [ + { + "required": [ + "resource" + ] + }, + { + "required": [ + "environmentVars" + ] + }, + { + "required": [ + "data" + ] + } + ], + "additionalProperties": false, + "properties": { + "type": { + "title": "Type", + "description": "Describes the type of data output.", + "type": "string", + "enum": [ + "artifact", + "attestation", + "log", + "evidence", + "metrics", + "other" + ] + }, + "source": { + "title": "Source", + "description": "Component or service that generated or provided the output from the task (e.g., a build tool)", + "$ref": "#/definitions/resourceReferenceChoice" + }, + "target": { + "title": "Target", + "description": "Component or service that received the output from the task (e.g., reference to an artifactory service with data flow value of `outbound`)", + "examples": ["a log file described as an `externalReference` within its target domain."], + "$ref": "#/definitions/resourceReferenceChoice" + }, + "resource": { + "title": "Resource", + "description": "A reference to an independent resource generated as output by the task.", + "examples": [ + "configuration file", + "source code", + "scanning service" + ], + "$ref": "#/definitions/resourceReferenceChoice" + }, + "data": { + "title": "Data", + "description": "Outputs that have the form of data.", + "$ref": "#/definitions/attachment" + }, + "environmentVars": { + "title": "Environment variables", + "description": "Outputs that have the form of environment variables.", + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/property" + }, + { + "type": "string" + } + ] + }, + "uniqueItems": true + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "resourceReferenceChoice": { + "title": "Resource reference choice", + "description": "A reference to a locally defined resource (e.g., a bom-ref) or an externally accessible resource.", + "$comment": "Enables reference to a resource that participates in a workflow; using either internal (bom-ref) or external (externalReference) types.", + "type": "object", + "additionalProperties": false, + "properties": { + "ref": { + "title": "BOM Reference", + "description": "References an object by its bom-ref attribute", + "anyOf": [ + { + "title": "Ref", + "$ref": "#/definitions/refLinkType" + }, + { + "title": "BOM-Link Element", + "$ref": "#/definitions/bomLinkElementType" + } + ] + }, + "externalReference": { + "title": "External reference", + "description": "Reference to an externally accessible resource.", + "$ref": "#/definitions/externalReference" + } + }, + "oneOf": [ + { + "required": [ + "ref" + ] + }, + { + "required": [ + "externalReference" + ] + } + ] + }, + "condition": { + "title": "Condition", + "description": "A condition that was used to determine a trigger should be activated.", + "type": "object", + "additionalProperties": false, + "properties": { + "description": { + "title": "Description", + "description": "Describes the set of conditions which cause the trigger to activate.", + "type": "string" + }, + "expression": { + "title": "Expression", + "description": "The logical expression that was evaluated that determined the trigger should be fired.", + "type": "string" + }, + "properties": { + "type": "array", + "title": "Properties", + "items": { + "$ref": "#/definitions/property" + } + } + } + }, + "taskType": { + "type": "string", + "enum": [ + "copy", + "clone", + "lint", + "scan", + "merge", + "build", + "test", + "deliver", + "deploy", + "release", + "clean", + "other" + ] + }, + "parameter": { + "title": "Parameter", + "description": "A representation of a functional parameter.", + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "title": "Name", + "description": "The name of the parameter.", + "type": "string" + }, + "value": { + "title": "Value", + "description": "The value of the parameter.", + "type": "string" + }, + "dataType": { + "title": "Data type", + "description": "The data type of the parameter.", + "type": "string" + } + } + }, + "signature": { + "$ref": "jsf-0.82.schema.json#/definitions/signature", + "title": "Signature", + "description": "Enveloped signature in [JSON Signature Format (JSF)](https://cyberphone.github.io/doc/security/jsf.html)." + } + } +} diff --git a/deps/npm/test/schemas/cyclonedx/jsf-0.82.schema.json b/deps/npm/test/schemas/cyclonedx/jsf-0.82.schema.json new file mode 100644 index 00000000000000..f46bfb1e52731a --- /dev/null +++ b/deps/npm/test/schemas/cyclonedx/jsf-0.82.schema.json @@ -0,0 +1,240 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://cyclonedx.org/schema/jsf-0.82.schema.json", + "type": "object", + "title": "JSON Signature Format (JSF) standard", + "$comment" : "JSON Signature Format schema is published under the terms of the Apache License 2.0. JSF was developed by Anders Rundgren (anders.rundgren.net@gmail.com) as a part of the OpenKeyStore project. This schema supports the entirely of the JSF standard excluding 'extensions'.", + "definitions": { + "signature": { + "type": "object", + "title": "Signature", + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "signers": { + "type": "array", + "title": "Signature", + "description": "Unique top level property for Multiple Signatures. (multisignature)", + "items": {"$ref": "#/definitions/signer"} + } + } + }, + { + "additionalProperties": false, + "properties": { + "chain": { + "type": "array", + "title": "Signature", + "description": "Unique top level property for Signature Chains. (signaturechain)", + "items": {"$ref": "#/definitions/signer"} + } + } + }, + { + "title": "Signature", + "description": "Unique top level property for simple signatures. (signaturecore)", + "$ref": "#/definitions/signer" + } + ] + }, + "signer": { + "type": "object", + "title": "Signature", + "required": [ + "algorithm", + "value" + ], + "additionalProperties": false, + "properties": { + "algorithm": { + "oneOf": [ + { + "type": "string", + "title": "Algorithm", + "description": "Signature algorithm. The currently recognized JWA [RFC7518] and RFC8037 [RFC8037] asymmetric key algorithms. Note: Unlike RFC8037 [RFC8037] JSF requires explicit Ed* algorithm names instead of \"EdDSA\".", + "enum": [ + "RS256", + "RS384", + "RS512", + "PS256", + "PS384", + "PS512", + "ES256", + "ES384", + "ES512", + "Ed25519", + "Ed448", + "HS256", + "HS384", + "HS512" + ] + }, + { + "type": "string", + "title": "Algorithm", + "description": "Signature algorithm. Note: If proprietary signature algorithms are added, they must be expressed as URIs.", + "format": "uri" + } + ] + }, + "keyId": { + "type": "string", + "title": "Key ID", + "description": "Optional. Application specific string identifying the signature key." + }, + "publicKey": { + "title": "Public key", + "description": "Optional. Public key object.", + "$ref": "#/definitions/publicKey" + }, + "certificatePath": { + "type": "array", + "title": "Certificate path", + "description": "Optional. Sorted array of X.509 [RFC5280] certificates, where the first element must contain the signature certificate. The certificate path must be contiguous but is not required to be complete.", + "items": { + "type": "string" + } + }, + "excludes": { + "type": "array", + "title": "Excludes", + "description": "Optional. Array holding the names of one or more application level properties that must be excluded from the signature process. Note that the \"excludes\" property itself, must also be excluded from the signature process. Since both the \"excludes\" property and the associated data it points to are unsigned, a conforming JSF implementation must provide options for specifying which properties to accept.", + "items": { + "type": "string" + } + }, + "value": { + "type": "string", + "title": "Signature", + "description": "The signature data. Note that the binary representation must follow the JWA [RFC7518] specifications." + } + } + }, + "keyType": { + "type": "string", + "title": "Key type", + "description": "Key type indicator.", + "enum": [ + "EC", + "OKP", + "RSA" + ] + }, + "publicKey": { + "title": "Public key", + "description": "Optional. Public key object.", + "type": "object", + "required": [ + "kty" + ], + "additionalProperties": true, + "properties": { + "kty": { + "$ref": "#/definitions/keyType" + } + }, + "allOf": [ + { + "if": { + "properties": { "kty": { "const": "EC" } } + }, + "then": { + "required": [ + "kty", + "crv", + "x", + "y" + ], + "additionalProperties": false, + "properties": { + "kty": { + "$ref": "#/definitions/keyType" + }, + "crv": { + "type": "string", + "title": "Curve name", + "description": "EC curve name.", + "enum": [ + "P-256", + "P-384", + "P-521" + ] + }, + "x": { + "type": "string", + "title": "Coordinate", + "description": "EC curve point X. The length of this field must be the full size of a coordinate for the curve specified in the \"crv\" parameter. For example, if the value of \"crv\" is \"P-521\", the decoded argument must be 66 bytes." + }, + "y": { + "type": "string", + "title": "Coordinate", + "description": "EC curve point Y. The length of this field must be the full size of a coordinate for the curve specified in the \"crv\" parameter. For example, if the value of \"crv\" is \"P-256\", the decoded argument must be 32 bytes." + } + } + } + }, + { + "if": { + "properties": { "kty": { "const": "OKP" } } + }, + "then": { + "required": [ + "kty", + "crv", + "x" + ], + "additionalProperties": false, + "properties": { + "kty": { + "$ref": "#/definitions/keyType" + }, + "crv": { + "type": "string", + "title": "Curve name", + "description": "EdDSA curve name.", + "enum": [ + "Ed25519", + "Ed448" + ] + }, + "x": { + "type": "string", + "title": "Coordinate", + "description": "EdDSA curve point X. The length of this field must be the full size of a coordinate for the curve specified in the \"crv\" parameter. For example, if the value of \"crv\" is \"Ed25519\", the decoded argument must be 32 bytes." + } + } + } + }, + { + "if": { + "properties": { "kty": { "const": "RSA" } } + }, + "then": { + "required": [ + "kty", + "n", + "e" + ], + "additionalProperties": false, + "properties": { + "kty": { + "$ref": "#/definitions/keyType" + }, + "n": { + "type": "string", + "title": "Modulus", + "description": "RSA modulus." + }, + "e": { + "type": "string", + "title": "Exponent", + "description": "RSA exponent." + } + } + } + } + ] + } + } +} diff --git a/deps/npm/test/schemas/cyclonedx/spdx.schema.json b/deps/npm/test/schemas/cyclonedx/spdx.schema.json new file mode 100644 index 00000000000000..f04d013c74c48d --- /dev/null +++ b/deps/npm/test/schemas/cyclonedx/spdx.schema.json @@ -0,0 +1,621 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://cyclonedx.org/schema/spdx.schema.json", + "$comment": "v1.0-3.21", + "type": "string", + "enum": [ + "0BSD", + "AAL", + "Abstyles", + "AdaCore-doc", + "Adobe-2006", + "Adobe-Glyph", + "ADSL", + "AFL-1.1", + "AFL-1.2", + "AFL-2.0", + "AFL-2.1", + "AFL-3.0", + "Afmparse", + "AGPL-1.0", + "AGPL-1.0-only", + "AGPL-1.0-or-later", + "AGPL-3.0", + "AGPL-3.0-only", + "AGPL-3.0-or-later", + "Aladdin", + "AMDPLPA", + "AML", + "AMPAS", + "ANTLR-PD", + "ANTLR-PD-fallback", + "Apache-1.0", + "Apache-1.1", + "Apache-2.0", + "APAFML", + "APL-1.0", + "App-s2p", + "APSL-1.0", + "APSL-1.1", + "APSL-1.2", + "APSL-2.0", + "Arphic-1999", + "Artistic-1.0", + "Artistic-1.0-cl8", + "Artistic-1.0-Perl", + "Artistic-2.0", + "ASWF-Digital-Assets-1.0", + "ASWF-Digital-Assets-1.1", + "Baekmuk", + "Bahyph", + "Barr", + "Beerware", + "Bitstream-Charter", + "Bitstream-Vera", + "BitTorrent-1.0", + "BitTorrent-1.1", + "blessing", + "BlueOak-1.0.0", + "Boehm-GC", + "Borceux", + "Brian-Gladman-3-Clause", + "BSD-1-Clause", + "BSD-2-Clause", + "BSD-2-Clause-FreeBSD", + "BSD-2-Clause-NetBSD", + "BSD-2-Clause-Patent", + "BSD-2-Clause-Views", + "BSD-3-Clause", + "BSD-3-Clause-Attribution", + "BSD-3-Clause-Clear", + "BSD-3-Clause-LBNL", + "BSD-3-Clause-Modification", + "BSD-3-Clause-No-Military-License", + "BSD-3-Clause-No-Nuclear-License", + "BSD-3-Clause-No-Nuclear-License-2014", + "BSD-3-Clause-No-Nuclear-Warranty", + "BSD-3-Clause-Open-MPI", + "BSD-4-Clause", + "BSD-4-Clause-Shortened", + "BSD-4-Clause-UC", + "BSD-4.3RENO", + "BSD-4.3TAHOE", + "BSD-Advertising-Acknowledgement", + "BSD-Attribution-HPND-disclaimer", + "BSD-Protection", + "BSD-Source-Code", + "BSL-1.0", + "BUSL-1.1", + "bzip2-1.0.5", + "bzip2-1.0.6", + "C-UDA-1.0", + "CAL-1.0", + "CAL-1.0-Combined-Work-Exception", + "Caldera", + "CATOSL-1.1", + "CC-BY-1.0", + "CC-BY-2.0", + "CC-BY-2.5", + "CC-BY-2.5-AU", + "CC-BY-3.0", + "CC-BY-3.0-AT", + "CC-BY-3.0-DE", + "CC-BY-3.0-IGO", + "CC-BY-3.0-NL", + "CC-BY-3.0-US", + "CC-BY-4.0", + "CC-BY-NC-1.0", + "CC-BY-NC-2.0", + "CC-BY-NC-2.5", + "CC-BY-NC-3.0", + "CC-BY-NC-3.0-DE", + "CC-BY-NC-4.0", + "CC-BY-NC-ND-1.0", + "CC-BY-NC-ND-2.0", + "CC-BY-NC-ND-2.5", + "CC-BY-NC-ND-3.0", + "CC-BY-NC-ND-3.0-DE", + "CC-BY-NC-ND-3.0-IGO", + "CC-BY-NC-ND-4.0", + "CC-BY-NC-SA-1.0", + "CC-BY-NC-SA-2.0", + "CC-BY-NC-SA-2.0-DE", + "CC-BY-NC-SA-2.0-FR", + "CC-BY-NC-SA-2.0-UK", + "CC-BY-NC-SA-2.5", + "CC-BY-NC-SA-3.0", + "CC-BY-NC-SA-3.0-DE", + "CC-BY-NC-SA-3.0-IGO", + "CC-BY-NC-SA-4.0", + "CC-BY-ND-1.0", + "CC-BY-ND-2.0", + "CC-BY-ND-2.5", + "CC-BY-ND-3.0", + "CC-BY-ND-3.0-DE", + "CC-BY-ND-4.0", + "CC-BY-SA-1.0", + "CC-BY-SA-2.0", + "CC-BY-SA-2.0-UK", + "CC-BY-SA-2.1-JP", + "CC-BY-SA-2.5", + "CC-BY-SA-3.0", + "CC-BY-SA-3.0-AT", + "CC-BY-SA-3.0-DE", + "CC-BY-SA-3.0-IGO", + "CC-BY-SA-4.0", + "CC-PDDC", + "CC0-1.0", + "CDDL-1.0", + "CDDL-1.1", + "CDL-1.0", + "CDLA-Permissive-1.0", + "CDLA-Permissive-2.0", + "CDLA-Sharing-1.0", + "CECILL-1.0", + "CECILL-1.1", + "CECILL-2.0", + "CECILL-2.1", + "CECILL-B", + "CECILL-C", + "CERN-OHL-1.1", + "CERN-OHL-1.2", + "CERN-OHL-P-2.0", + "CERN-OHL-S-2.0", + "CERN-OHL-W-2.0", + "CFITSIO", + "checkmk", + "ClArtistic", + "Clips", + "CMU-Mach", + "CNRI-Jython", + "CNRI-Python", + "CNRI-Python-GPL-Compatible", + "COIL-1.0", + "Community-Spec-1.0", + "Condor-1.1", + "copyleft-next-0.3.0", + "copyleft-next-0.3.1", + "Cornell-Lossless-JPEG", + "CPAL-1.0", + "CPL-1.0", + "CPOL-1.02", + "Crossword", + "CrystalStacker", + "CUA-OPL-1.0", + "Cube", + "curl", + "D-FSL-1.0", + "diffmark", + "DL-DE-BY-2.0", + "DOC", + "Dotseqn", + "DRL-1.0", + "DSDP", + "dtoa", + "dvipdfm", + "ECL-1.0", + "ECL-2.0", + "eCos-2.0", + "EFL-1.0", + "EFL-2.0", + "eGenix", + "Elastic-2.0", + "Entessa", + "EPICS", + "EPL-1.0", + "EPL-2.0", + "ErlPL-1.1", + "etalab-2.0", + "EUDatagrid", + "EUPL-1.0", + "EUPL-1.1", + "EUPL-1.2", + "Eurosym", + "Fair", + "FDK-AAC", + "Frameworx-1.0", + "FreeBSD-DOC", + "FreeImage", + "FSFAP", + "FSFUL", + "FSFULLR", + "FSFULLRWD", + "FTL", + "GD", + "GFDL-1.1", + "GFDL-1.1-invariants-only", + "GFDL-1.1-invariants-or-later", + "GFDL-1.1-no-invariants-only", + "GFDL-1.1-no-invariants-or-later", + "GFDL-1.1-only", + "GFDL-1.1-or-later", + "GFDL-1.2", + "GFDL-1.2-invariants-only", + "GFDL-1.2-invariants-or-later", + "GFDL-1.2-no-invariants-only", + "GFDL-1.2-no-invariants-or-later", + "GFDL-1.2-only", + "GFDL-1.2-or-later", + "GFDL-1.3", + "GFDL-1.3-invariants-only", + "GFDL-1.3-invariants-or-later", + "GFDL-1.3-no-invariants-only", + "GFDL-1.3-no-invariants-or-later", + "GFDL-1.3-only", + "GFDL-1.3-or-later", + "Giftware", + "GL2PS", + "Glide", + "Glulxe", + "GLWTPL", + "gnuplot", + "GPL-1.0", + "GPL-1.0+", + "GPL-1.0-only", + "GPL-1.0-or-later", + "GPL-2.0", + "GPL-2.0+", + "GPL-2.0-only", + "GPL-2.0-or-later", + "GPL-2.0-with-autoconf-exception", + "GPL-2.0-with-bison-exception", + "GPL-2.0-with-classpath-exception", + "GPL-2.0-with-font-exception", + "GPL-2.0-with-GCC-exception", + "GPL-3.0", + "GPL-3.0+", + "GPL-3.0-only", + "GPL-3.0-or-later", + "GPL-3.0-with-autoconf-exception", + "GPL-3.0-with-GCC-exception", + "Graphics-Gems", + "gSOAP-1.3b", + "HaskellReport", + "Hippocratic-2.1", + "HP-1986", + "HPND", + "HPND-export-US", + "HPND-Markus-Kuhn", + "HPND-sell-variant", + "HPND-sell-variant-MIT-disclaimer", + "HTMLTIDY", + "IBM-pibs", + "ICU", + "IEC-Code-Components-EULA", + "IJG", + "IJG-short", + "ImageMagick", + "iMatix", + "Imlib2", + "Info-ZIP", + "Inner-Net-2.0", + "Intel", + "Intel-ACPI", + "Interbase-1.0", + "IPA", + "IPL-1.0", + "ISC", + "Jam", + "JasPer-2.0", + "JPL-image", + "JPNIC", + "JSON", + "Kazlib", + "Knuth-CTAN", + "LAL-1.2", + "LAL-1.3", + "Latex2e", + "Latex2e-translated-notice", + "Leptonica", + "LGPL-2.0", + "LGPL-2.0+", + "LGPL-2.0-only", + "LGPL-2.0-or-later", + "LGPL-2.1", + "LGPL-2.1+", + "LGPL-2.1-only", + "LGPL-2.1-or-later", + "LGPL-3.0", + "LGPL-3.0+", + "LGPL-3.0-only", + "LGPL-3.0-or-later", + "LGPLLR", + "Libpng", + "libpng-2.0", + "libselinux-1.0", + "libtiff", + "libutil-David-Nugent", + "LiLiQ-P-1.1", + "LiLiQ-R-1.1", + "LiLiQ-Rplus-1.1", + "Linux-man-pages-1-para", + "Linux-man-pages-copyleft", + "Linux-man-pages-copyleft-2-para", + "Linux-man-pages-copyleft-var", + "Linux-OpenIB", + "LOOP", + "LPL-1.0", + "LPL-1.02", + "LPPL-1.0", + "LPPL-1.1", + "LPPL-1.2", + "LPPL-1.3a", + "LPPL-1.3c", + "LZMA-SDK-9.11-to-9.20", + "LZMA-SDK-9.22", + "MakeIndex", + "Martin-Birgmeier", + "metamail", + "Minpack", + "MirOS", + "MIT", + "MIT-0", + "MIT-advertising", + "MIT-CMU", + "MIT-enna", + "MIT-feh", + "MIT-Festival", + "MIT-Modern-Variant", + "MIT-open-group", + "MIT-Wu", + "MITNFA", + "Motosoto", + "mpi-permissive", + "mpich2", + "MPL-1.0", + "MPL-1.1", + "MPL-2.0", + "MPL-2.0-no-copyleft-exception", + "mplus", + "MS-LPL", + "MS-PL", + "MS-RL", + "MTLL", + "MulanPSL-1.0", + "MulanPSL-2.0", + "Multics", + "Mup", + "NAIST-2003", + "NASA-1.3", + "Naumen", + "NBPL-1.0", + "NCGL-UK-2.0", + "NCSA", + "Net-SNMP", + "NetCDF", + "Newsletr", + "NGPL", + "NICTA-1.0", + "NIST-PD", + "NIST-PD-fallback", + "NIST-Software", + "NLOD-1.0", + "NLOD-2.0", + "NLPL", + "Nokia", + "NOSL", + "Noweb", + "NPL-1.0", + "NPL-1.1", + "NPOSL-3.0", + "NRL", + "NTP", + "NTP-0", + "Nunit", + "O-UDA-1.0", + "OCCT-PL", + "OCLC-2.0", + "ODbL-1.0", + "ODC-By-1.0", + "OFFIS", + "OFL-1.0", + "OFL-1.0-no-RFN", + "OFL-1.0-RFN", + "OFL-1.1", + "OFL-1.1-no-RFN", + "OFL-1.1-RFN", + "OGC-1.0", + "OGDL-Taiwan-1.0", + "OGL-Canada-2.0", + "OGL-UK-1.0", + "OGL-UK-2.0", + "OGL-UK-3.0", + "OGTSL", + "OLDAP-1.1", + "OLDAP-1.2", + "OLDAP-1.3", + "OLDAP-1.4", + "OLDAP-2.0", + "OLDAP-2.0.1", + "OLDAP-2.1", + "OLDAP-2.2", + "OLDAP-2.2.1", + "OLDAP-2.2.2", + "OLDAP-2.3", + "OLDAP-2.4", + "OLDAP-2.5", + "OLDAP-2.6", + "OLDAP-2.7", + "OLDAP-2.8", + "OLFL-1.3", + "OML", + "OpenPBS-2.3", + "OpenSSL", + "OPL-1.0", + "OPL-UK-3.0", + "OPUBL-1.0", + "OSET-PL-2.1", + "OSL-1.0", + "OSL-1.1", + "OSL-2.0", + "OSL-2.1", + "OSL-3.0", + "Parity-6.0.0", + "Parity-7.0.0", + "PDDL-1.0", + "PHP-3.0", + "PHP-3.01", + "Plexus", + "PolyForm-Noncommercial-1.0.0", + "PolyForm-Small-Business-1.0.0", + "PostgreSQL", + "PSF-2.0", + "psfrag", + "psutils", + "Python-2.0", + "Python-2.0.1", + "Qhull", + "QPL-1.0", + "QPL-1.0-INRIA-2004", + "Rdisc", + "RHeCos-1.1", + "RPL-1.1", + "RPL-1.5", + "RPSL-1.0", + "RSA-MD", + "RSCPL", + "Ruby", + "SAX-PD", + "Saxpath", + "SCEA", + "SchemeReport", + "Sendmail", + "Sendmail-8.23", + "SGI-B-1.0", + "SGI-B-1.1", + "SGI-B-2.0", + "SGP4", + "SHL-0.5", + "SHL-0.51", + "SimPL-2.0", + "SISSL", + "SISSL-1.2", + "Sleepycat", + "SMLNJ", + "SMPPL", + "SNIA", + "snprintf", + "Spencer-86", + "Spencer-94", + "Spencer-99", + "SPL-1.0", + "SSH-OpenSSH", + "SSH-short", + "SSPL-1.0", + "StandardML-NJ", + "SugarCRM-1.1.3", + "SunPro", + "SWL", + "Symlinks", + "TAPR-OHL-1.0", + "TCL", + "TCP-wrappers", + "TermReadKey", + "TMate", + "TORQUE-1.1", + "TOSL", + "TPDL", + "TPL-1.0", + "TTWL", + "TU-Berlin-1.0", + "TU-Berlin-2.0", + "UCAR", + "UCL-1.0", + "Unicode-DFS-2015", + "Unicode-DFS-2016", + "Unicode-TOU", + "UnixCrypt", + "Unlicense", + "UPL-1.0", + "Vim", + "VOSTROM", + "VSL-1.0", + "W3C", + "W3C-19980720", + "W3C-20150513", + "w3m", + "Watcom-1.0", + "Widget-Workshop", + "Wsuipa", + "WTFPL", + "wxWindows", + "X11", + "X11-distribute-modifications-variant", + "Xdebug-1.03", + "Xerox", + "Xfig", + "XFree86-1.1", + "xinetd", + "xlock", + "Xnet", + "xpp", + "XSkat", + "YPL-1.0", + "YPL-1.1", + "Zed", + "Zend-2.0", + "Zimbra-1.3", + "Zimbra-1.4", + "Zlib", + "zlib-acknowledgement", + "ZPL-1.1", + "ZPL-2.0", + "ZPL-2.1", + "389-exception", + "Asterisk-exception", + "Autoconf-exception-2.0", + "Autoconf-exception-3.0", + "Autoconf-exception-generic", + "Autoconf-exception-macro", + "Bison-exception-2.2", + "Bootloader-exception", + "Classpath-exception-2.0", + "CLISP-exception-2.0", + "cryptsetup-OpenSSL-exception", + "DigiRule-FOSS-exception", + "eCos-exception-2.0", + "Fawkes-Runtime-exception", + "FLTK-exception", + "Font-exception-2.0", + "freertos-exception-2.0", + "GCC-exception-2.0", + "GCC-exception-3.1", + "GNAT-exception", + "gnu-javamail-exception", + "GPL-3.0-interface-exception", + "GPL-3.0-linking-exception", + "GPL-3.0-linking-source-exception", + "GPL-CC-1.0", + "GStreamer-exception-2005", + "GStreamer-exception-2008", + "i2p-gpl-java-exception", + "KiCad-libraries-exception", + "LGPL-3.0-linking-exception", + "libpri-OpenH323-exception", + "Libtool-exception", + "Linux-syscall-note", + "LLGPL", + "LLVM-exception", + "LZMA-exception", + "mif-exception", + "Nokia-Qt-exception-1.1", + "OCaml-LGPL-linking-exception", + "OCCT-exception-1.0", + "OpenJDK-assembly-exception-1.0", + "openvpn-openssl-exception", + "PS-or-PDF-font-exception-20170817", + "QPL-1.0-INRIA-2004-exception", + "Qt-GPL-exception-1.0", + "Qt-LGPL-exception-1.1", + "Qwt-exception-1.0", + "SHL-2.0", + "SHL-2.1", + "SWI-exception", + "Swift-exception", + "u-boot-exception-2.0", + "Universal-FOSS-exception-1.0", + "vsftpd-openssl-exception", + "WxWindows-exception-3.1", + "x11vnc-openssl-exception" + ] +} diff --git a/deps/npm/test/schemas/spdx/spdx-2.3.schema.json b/deps/npm/test/schemas/spdx/spdx-2.3.schema.json new file mode 100644 index 00000000000000..ee61e6686e885f --- /dev/null +++ b/deps/npm/test/schemas/spdx/spdx-2.3.schema.json @@ -0,0 +1,740 @@ +{ + "$schema" : "http://json-schema.org/draft-07/schema#", + "$id" : "http://spdx.org/rdf/terms/2.3", + "title" : "SPDX 2.3", + "type" : "object", + "properties" : { + "SPDXID" : { + "type" : "string", + "description" : "Uniquely identify any element in an SPDX document which may be referenced by other elements." + }, + "annotations" : { + "description" : "Provide additional information about an SpdxElement.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "annotationDate" : { + "description" : "Identify when the comment was made. This is to be specified according to the combined date and time in the UTC format, as specified in the ISO 8601 standard.", + "type" : "string" + }, + "annotationType" : { + "description" : "Type of the annotation.", + "type" : "string", + "enum" : [ "OTHER", "REVIEW" ] + }, + "annotator" : { + "description" : "This field identifies the person, organization, or tool that has commented on a file, package, snippet, or the entire document.", + "type" : "string" + }, + "comment" : { + "type" : "string" + } + }, + "required" : [ "annotationDate", "annotationType", "annotator", "comment" ], + "additionalProperties" : false, + "description" : "An Annotation is a comment on an SpdxItem by an agent." + } + }, + "comment" : { + "type" : "string" + }, + "creationInfo" : { + "type" : "object", + "properties" : { + "comment" : { + "type" : "string" + }, + "created" : { + "description" : "Identify when the SPDX document was originally created. The date is to be specified according to combined date and time in UTC format as specified in ISO 8601 standard.", + "type" : "string" + }, + "creators" : { + "description" : "Identify who (or what, in the case of a tool) created the SPDX document. If the SPDX document was created by an individual, indicate the person's name. If the SPDX document was created on behalf of a company or organization, indicate the entity name. If the SPDX document was created using a software tool, indicate the name and version for that tool. If multiple participants or tools were involved, use multiple instances of this field. Person name or organization name may be designated as “anonymous” if appropriate.", + "minItems" : 1, + "type" : "array", + "items" : { + "description" : "Identify who (or what, in the case of a tool) created the SPDX document. If the SPDX document was created by an individual, indicate the person's name. If the SPDX document was created on behalf of a company or organization, indicate the entity name. If the SPDX document was created using a software tool, indicate the name and version for that tool. If multiple participants or tools were involved, use multiple instances of this field. Person name or organization name may be designated as “anonymous” if appropriate.", + "type" : "string" + } + }, + "licenseListVersion" : { + "description" : "An optional field for creators of the SPDX file to provide the version of the SPDX License List used when the SPDX file was created.", + "type" : "string" + } + }, + "required" : [ "created", "creators" ], + "additionalProperties" : false, + "description" : "One instance is required for each SPDX file produced. It provides the necessary information for forward and backward compatibility for processing tools." + }, + "dataLicense" : { + "description" : "License expression for dataLicense. See SPDX Annex D for the license expression syntax. Compliance with the SPDX specification includes populating the SPDX fields therein with data related to such fields (\"SPDX-Metadata\"). The SPDX specification contains numerous fields where an SPDX document creator may provide relevant explanatory text in SPDX-Metadata. Without opining on the lawfulness of \"database rights\" (in jurisdictions where applicable), such explanatory text is copyrightable subject matter in most Berne Convention countries. By using the SPDX specification, or any portion hereof, you hereby agree that any copyright rights (as determined by your jurisdiction) in any SPDX-Metadata, including without limitation explanatory text, shall be subject to the terms of the Creative Commons CC0 1.0 Universal license. For SPDX-Metadata not containing any copyright rights, you hereby agree and acknowledge that the SPDX-Metadata is provided to you \"as-is\" and without any representations or warranties of any kind concerning the SPDX-Metadata, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non-infringement, or the absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.", + "type" : "string" + }, + "externalDocumentRefs" : { + "description" : "Identify any external SPDX documents referenced within this SPDX document.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "checksum" : { + "type" : "object", + "properties" : { + "algorithm" : { + "description" : "Identifies the algorithm used to produce the subject Checksum. Currently, SHA-1 is the only supported algorithm. It is anticipated that other algorithms will be supported at a later time.", + "type" : "string", + "enum" : [ "SHA1", "BLAKE3", "SHA3-384", "SHA256", "SHA384", "BLAKE2b-512", "BLAKE2b-256", "SHA3-512", "MD2", "ADLER32", "MD4", "SHA3-256", "BLAKE2b-384", "SHA512", "MD6", "MD5", "SHA224" ] + }, + "checksumValue" : { + "description" : "The checksumValue property provides a lower case hexidecimal encoded digest value produced using a specific algorithm.", + "type" : "string" + } + }, + "required" : [ "algorithm", "checksumValue" ], + "additionalProperties" : false, + "description" : "A Checksum is value that allows the contents of a file to be authenticated. Even small changes to the content of the file will change its checksum. This class allows the results of a variety of checksum and cryptographic message digest algorithms to be represented." + }, + "externalDocumentId" : { + "description" : "externalDocumentId is a string containing letters, numbers, ., - and/or + which uniquely identifies an external document within this document.", + "type" : "string" + }, + "spdxDocument" : { + "description" : "SPDX ID for SpdxDocument. A property containing an SPDX document.", + "type" : "string" + } + }, + "required" : [ "checksum", "externalDocumentId", "spdxDocument" ], + "additionalProperties" : false, + "description" : "Information about an external SPDX document reference including the checksum. This allows for verification of the external references." + } + }, + "hasExtractedLicensingInfos" : { + "description" : "Indicates that a particular ExtractedLicensingInfo was defined in the subject SpdxDocument.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "comment" : { + "type" : "string" + }, + "crossRefs" : { + "description" : "Cross Reference Detail for a license SeeAlso URL", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "isLive" : { + "description" : "Indicate a URL is still a live accessible location on the public internet", + "type" : "boolean" + }, + "isValid" : { + "description" : "True if the URL is a valid well formed URL", + "type" : "boolean" + }, + "isWayBackLink" : { + "description" : "True if the License SeeAlso URL points to a Wayback archive", + "type" : "boolean" + }, + "match" : { + "description" : "Status of a License List SeeAlso URL reference if it refers to a website that matches the license text.", + "type" : "string" + }, + "order" : { + "description" : "The ordinal order of this element within a list", + "type" : "integer" + }, + "timestamp" : { + "description" : "Timestamp", + "type" : "string" + }, + "url" : { + "description" : "URL Reference", + "type" : "string" + } + }, + "required" : [ "url" ], + "additionalProperties" : false, + "description" : "Cross reference details for the a URL reference" + } + }, + "extractedText" : { + "description" : "Provide a copy of the actual text of the license reference extracted from the package, file or snippet that is associated with the License Identifier to aid in future analysis.", + "type" : "string" + }, + "licenseId" : { + "description" : "A human readable short form license identifier for a license. The license ID is either on the standard license list or the form \"LicenseRef-[idString]\" where [idString] is a unique string containing letters, numbers, \".\" or \"-\". When used within a license expression, the license ID can optionally include a reference to an external document in the form \"DocumentRef-[docrefIdString]:LicenseRef-[idString]\" where docRefIdString is an ID for an external document reference.", + "type" : "string" + }, + "name" : { + "description" : "Identify name of this SpdxElement.", + "type" : "string" + }, + "seeAlsos" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "required" : [ "extractedText", "licenseId" ], + "additionalProperties" : false, + "description" : "An ExtractedLicensingInfo represents a license or licensing notice that was found in a package, file or snippet. Any license text that is recognized as a license may be represented as a License rather than an ExtractedLicensingInfo." + } + }, + "name" : { + "description" : "Identify name of this SpdxElement.", + "type" : "string" + }, + "revieweds" : { + "description" : "Reviewed", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "comment" : { + "type" : "string" + }, + "reviewDate" : { + "description" : "The date and time at which the SpdxDocument was reviewed. This value must be in UTC and have 'Z' as its timezone indicator.", + "type" : "string" + }, + "reviewer" : { + "description" : "The name and, optionally, contact information of the person who performed the review. Values of this property must conform to the agent and tool syntax. The reviewer property is deprecated in favor of Annotation with an annotationType review.", + "type" : "string" + } + }, + "required" : [ "reviewDate" ], + "additionalProperties" : false, + "description" : "This class has been deprecated in favor of an Annotation with an Annotation type of review." + } + }, + "spdxVersion" : { + "description" : "Provide a reference number that can be used to understand how to parse and interpret the rest of the file. It will enable both future changes to the specification and to support backward compatibility. The version number consists of a major and minor version indicator. The major field will be incremented when incompatible changes between versions are made (one or more sections are created, modified or deleted). The minor field will be incremented when backwards compatible changes are made.", + "type" : "string" + }, + "documentNamespace" : { + "type" : "string", + "description" : "The URI provides an unambiguous mechanism for other SPDX documents to reference SPDX elements within this SPDX document." + }, + "documentDescribes" : { + "description" : "Packages, files and/or Snippets described by this SPDX document", + "type" : "array", + "items" : { + "type" : "string", + "description" : "SPDX ID for each Package, File, or Snippet." + } + }, + "packages" : { + "description" : "Packages referenced in the SPDX document", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "SPDXID" : { + "type" : "string", + "description" : "Uniquely identify any element in an SPDX document which may be referenced by other elements." + }, + "annotations" : { + "description" : "Provide additional information about an SpdxElement.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "annotationDate" : { + "description" : "Identify when the comment was made. This is to be specified according to the combined date and time in the UTC format, as specified in the ISO 8601 standard.", + "type" : "string" + }, + "annotationType" : { + "description" : "Type of the annotation.", + "type" : "string", + "enum" : [ "OTHER", "REVIEW" ] + }, + "annotator" : { + "description" : "This field identifies the person, organization, or tool that has commented on a file, package, snippet, or the entire document.", + "type" : "string" + }, + "comment" : { + "type" : "string" + } + }, + "required" : [ "annotationDate", "annotationType", "annotator", "comment" ], + "additionalProperties" : false, + "description" : "An Annotation is a comment on an SpdxItem by an agent." + } + }, + "attributionTexts" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "array", + "items" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "string" + } + }, + "builtDate" : { + "description" : "This field provides a place for recording the actual date the package was built.", + "type" : "string" + }, + "checksums" : { + "description" : "The checksum property provides a mechanism that can be used to verify that the contents of a File or Package have not changed.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "algorithm" : { + "description" : "Identifies the algorithm used to produce the subject Checksum. Currently, SHA-1 is the only supported algorithm. It is anticipated that other algorithms will be supported at a later time.", + "type" : "string", + "enum" : [ "SHA1", "BLAKE3", "SHA3-384", "SHA256", "SHA384", "BLAKE2b-512", "BLAKE2b-256", "SHA3-512", "MD2", "ADLER32", "MD4", "SHA3-256", "BLAKE2b-384", "SHA512", "MD6", "MD5", "SHA224" ] + }, + "checksumValue" : { + "description" : "The checksumValue property provides a lower case hexidecimal encoded digest value produced using a specific algorithm.", + "type" : "string" + } + }, + "required" : [ "algorithm", "checksumValue" ], + "additionalProperties" : false, + "description" : "A Checksum is value that allows the contents of a file to be authenticated. Even small changes to the content of the file will change its checksum. This class allows the results of a variety of checksum and cryptographic message digest algorithms to be represented." + } + }, + "comment" : { + "type" : "string" + }, + "copyrightText" : { + "description" : "The text of copyright declarations recited in the package, file or snippet.\n\nIf the copyrightText field is not present, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "description" : { + "description" : "Provides a detailed description of the package.", + "type" : "string" + }, + "downloadLocation" : { + "description" : "The URI at which this package is available for download. Private (i.e., not publicly reachable) URIs are acceptable as values of this property. The values http://spdx.org/rdf/terms#none and http://spdx.org/rdf/terms#noassertion may be used to specify that the package is not downloadable or that no attempt was made to determine its download location, respectively.", + "type" : "string" + }, + "externalRefs" : { + "description" : "An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "comment" : { + "type" : "string" + }, + "referenceCategory" : { + "description" : "Category for the external reference", + "type" : "string", + "enum" : [ "OTHER", "PERSISTENT-ID", "SECURITY", "PACKAGE-MANAGER" ] + }, + "referenceLocator" : { + "description" : "The unique string with no spaces necessary to access the package-specific information, metadata, or content within the target location. The format of the locator is subject to constraints defined by the .", + "type" : "string" + }, + "referenceType" : { + "description" : "Type of the external reference. These are definined in an appendix in the SPDX specification.", + "type" : "string" + } + }, + "required" : [ "referenceCategory", "referenceLocator", "referenceType" ], + "additionalProperties" : false, + "description" : "An External Reference allows a Package to reference an external source of additional information, metadata, enumerations, asset identifiers, or downloadable content believed to be relevant to the Package." + } + }, + "filesAnalyzed" : { + "description" : "Indicates whether the file content of this package has been available for or subjected to analysis when creating the SPDX document. If false indicates packages that represent metadata or URI references to a project, product, artifact, distribution or a component. If set to false, the package must not contain any files.", + "type" : "boolean" + }, + "hasFiles" : { + "description" : "Indicates that a particular file belongs to a package.", + "type" : "array", + "items" : { + "description" : "SPDX ID for File. Indicates that a particular file belongs to a package.", + "type" : "string" + } + }, + "homepage" : { + "type" : "string" + }, + "licenseComments" : { + "description" : "The licenseComments property allows the preparer of the SPDX document to describe why the licensing in spdx:licenseConcluded was chosen.", + "type" : "string" + }, + "licenseConcluded" : { + "description" : "License expression for licenseConcluded. See SPDX Annex D for the license expression syntax. The licensing that the preparer of this SPDX document has concluded, based on the evidence, actually applies to the SPDX Item.\n\nIf the licenseConcluded field is not present for an SPDX Item, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "licenseDeclared" : { + "description" : "License expression for licenseDeclared. See SPDX Annex D for the license expression syntax. The licensing that the creators of the software in the package, or the packager, have declared. Declarations by the original software creator should be preferred, if they exist.", + "type" : "string" + }, + "licenseInfoFromFiles" : { + "description" : "The licensing information that was discovered directly within the package. There will be an instance of this property for each distinct value of alllicenseInfoInFile properties of all files contained in the package.\n\nIf the licenseInfoFromFiles field is not present for a package and filesAnalyzed property for that same pacakge is true or omitted, it implies an equivalent meaning to NOASSERTION.", + "type" : "array", + "items" : { + "description" : "License expression for licenseInfoFromFiles. See SPDX Annex D for the license expression syntax. The licensing information that was discovered directly within the package. There will be an instance of this property for each distinct value of alllicenseInfoInFile properties of all files contained in the package.\n\nIf the licenseInfoFromFiles field is not present for a package and filesAnalyzed property for that same pacakge is true or omitted, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + } + }, + "name" : { + "description" : "Identify name of this SpdxElement.", + "type" : "string" + }, + "originator" : { + "description" : "The name and, optionally, contact information of the person or organization that originally created the package. Values of this property must conform to the agent and tool syntax.", + "type" : "string" + }, + "packageFileName" : { + "description" : "The base name of the package file name. For example, zlib-1.2.5.tar.gz.", + "type" : "string" + }, + "packageVerificationCode" : { + "type" : "object", + "properties" : { + "packageVerificationCodeExcludedFiles" : { + "description" : "A file that was excluded when calculating the package verification code. This is usually a file containing SPDX data regarding the package. If a package contains more than one SPDX file all SPDX files must be excluded from the package verification code. If this is not done it would be impossible to correctly calculate the verification codes in both files.", + "type" : "array", + "items" : { + "description" : "A file that was excluded when calculating the package verification code. This is usually a file containing SPDX data regarding the package. If a package contains more than one SPDX file all SPDX files must be excluded from the package verification code. If this is not done it would be impossible to correctly calculate the verification codes in both files.", + "type" : "string" + } + }, + "packageVerificationCodeValue" : { + "description" : "The actual package verification code as a hex encoded value.", + "type" : "string" + } + }, + "required" : [ "packageVerificationCodeValue" ], + "additionalProperties" : false, + "description" : "A manifest based verification code (the algorithm is defined in section 4.7 of the full specification) of the SPDX Item. This allows consumers of this data and/or database to determine if an SPDX item they have in hand is identical to the SPDX item from which the data was produced. This algorithm works even if the SPDX document is included in the SPDX item." + }, + "primaryPackagePurpose" : { + "description" : "This field provides information about the primary purpose of the identified package. Package Purpose is intrinsic to how the package is being used rather than the content of the package.", + "type" : "string", + "enum" : [ "OTHER", "INSTALL", "ARCHIVE", "FIRMWARE", "APPLICATION", "FRAMEWORK", "LIBRARY", "CONTAINER", "SOURCE", "DEVICE", "OPERATING_SYSTEM", "FILE" ] + }, + "releaseDate" : { + "description" : "This field provides a place for recording the date the package was released.", + "type" : "string" + }, + "sourceInfo" : { + "description" : "Allows the producer(s) of the SPDX document to describe how the package was acquired and/or changed from the original source.", + "type" : "string" + }, + "summary" : { + "description" : "Provides a short description of the package.", + "type" : "string" + }, + "supplier" : { + "description" : "The name and, optionally, contact information of the person or organization who was the immediate supplier of this package to the recipient. The supplier may be different than originator when the software has been repackaged. Values of this property must conform to the agent and tool syntax.", + "type" : "string" + }, + "validUntilDate" : { + "description" : "This field provides a place for recording the end of the support period for a package from the supplier.", + "type" : "string" + }, + "versionInfo" : { + "description" : "Provides an indication of the version of the package that is described by this SpdxDocument.", + "type" : "string" + } + }, + "required" : [ "SPDXID", "downloadLocation", "name" ], + "additionalProperties" : false + } + }, + "files" : { + "description" : "Files referenced in the SPDX document", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "SPDXID" : { + "type" : "string", + "description" : "Uniquely identify any element in an SPDX document which may be referenced by other elements." + }, + "annotations" : { + "description" : "Provide additional information about an SpdxElement.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "annotationDate" : { + "description" : "Identify when the comment was made. This is to be specified according to the combined date and time in the UTC format, as specified in the ISO 8601 standard.", + "type" : "string" + }, + "annotationType" : { + "description" : "Type of the annotation.", + "type" : "string", + "enum" : [ "OTHER", "REVIEW" ] + }, + "annotator" : { + "description" : "This field identifies the person, organization, or tool that has commented on a file, package, snippet, or the entire document.", + "type" : "string" + }, + "comment" : { + "type" : "string" + } + }, + "required" : [ "annotationDate", "annotationType", "annotator", "comment" ], + "additionalProperties" : false, + "description" : "An Annotation is a comment on an SpdxItem by an agent." + } + }, + "artifactOfs" : { + "description" : "Indicates the project in which the SpdxElement originated. Tools must preserve doap:homepage and doap:name properties and the URI (if one is known) of doap:Project resources that are values of this property. All other properties of doap:Projects are not directly supported by SPDX and may be dropped when translating to or from some SPDX formats.", + "type" : "array", + "items" : { + "type" : "object" + } + }, + "attributionTexts" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "array", + "items" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "string" + } + }, + "checksums" : { + "description" : "The checksum property provides a mechanism that can be used to verify that the contents of a File or Package have not changed.", + "minItems" : 1, + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "algorithm" : { + "description" : "Identifies the algorithm used to produce the subject Checksum. Currently, SHA-1 is the only supported algorithm. It is anticipated that other algorithms will be supported at a later time.", + "type" : "string", + "enum" : [ "SHA1", "BLAKE3", "SHA3-384", "SHA256", "SHA384", "BLAKE2b-512", "BLAKE2b-256", "SHA3-512", "MD2", "ADLER32", "MD4", "SHA3-256", "BLAKE2b-384", "SHA512", "MD6", "MD5", "SHA224" ] + }, + "checksumValue" : { + "description" : "The checksumValue property provides a lower case hexidecimal encoded digest value produced using a specific algorithm.", + "type" : "string" + } + }, + "required" : [ "algorithm", "checksumValue" ], + "additionalProperties" : false, + "description" : "A Checksum is value that allows the contents of a file to be authenticated. Even small changes to the content of the file will change its checksum. This class allows the results of a variety of checksum and cryptographic message digest algorithms to be represented." + } + }, + "comment" : { + "type" : "string" + }, + "copyrightText" : { + "description" : "The text of copyright declarations recited in the package, file or snippet.\n\nIf the copyrightText field is not present, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "fileContributors" : { + "description" : "This field provides a place for the SPDX file creator to record file contributors. Contributors could include names of copyright holders and/or authors who may not be copyright holders yet contributed to the file content.", + "type" : "array", + "items" : { + "description" : "This field provides a place for the SPDX file creator to record file contributors. Contributors could include names of copyright holders and/or authors who may not be copyright holders yet contributed to the file content.", + "type" : "string" + } + }, + "fileDependencies" : { + "description" : "This field is deprecated since SPDX 2.0 in favor of using Section 7 which provides more granularity about relationships.", + "type" : "array", + "items" : { + "description" : "SPDX ID for File. This field is deprecated since SPDX 2.0 in favor of using Section 7 which provides more granularity about relationships.", + "type" : "string" + } + }, + "fileName" : { + "description" : "The name of the file relative to the root of the package.", + "type" : "string" + }, + "fileTypes" : { + "description" : "The type of the file.", + "type" : "array", + "items" : { + "description" : "The type of the file.", + "type" : "string", + "enum" : [ "OTHER", "DOCUMENTATION", "IMAGE", "VIDEO", "ARCHIVE", "SPDX", "APPLICATION", "SOURCE", "BINARY", "TEXT", "AUDIO" ] + } + }, + "licenseComments" : { + "description" : "The licenseComments property allows the preparer of the SPDX document to describe why the licensing in spdx:licenseConcluded was chosen.", + "type" : "string" + }, + "licenseConcluded" : { + "description" : "License expression for licenseConcluded. See SPDX Annex D for the license expression syntax. The licensing that the preparer of this SPDX document has concluded, based on the evidence, actually applies to the SPDX Item.\n\nIf the licenseConcluded field is not present for an SPDX Item, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "licenseInfoInFiles" : { + "description" : "Licensing information that was discovered directly in the subject file. This is also considered a declared license for the file.\n\nIf the licenseInfoInFile field is not present for a file, it implies an equivalent meaning to NOASSERTION.", + "type" : "array", + "items" : { + "description" : "License expression for licenseInfoInFile. See SPDX Annex D for the license expression syntax. Licensing information that was discovered directly in the subject file. This is also considered a declared license for the file.\n\nIf the licenseInfoInFile field is not present for a file, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + } + }, + "noticeText" : { + "description" : "This field provides a place for the SPDX file creator to record potential legal notices found in the file. This may or may not include copyright statements.", + "type" : "string" + } + }, + "required" : [ "SPDXID", "checksums", "fileName" ], + "additionalProperties" : false + } + }, + "snippets" : { + "description" : "Snippets referenced in the SPDX document", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "SPDXID" : { + "type" : "string", + "description" : "Uniquely identify any element in an SPDX document which may be referenced by other elements." + }, + "annotations" : { + "description" : "Provide additional information about an SpdxElement.", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "annotationDate" : { + "description" : "Identify when the comment was made. This is to be specified according to the combined date and time in the UTC format, as specified in the ISO 8601 standard.", + "type" : "string" + }, + "annotationType" : { + "description" : "Type of the annotation.", + "type" : "string", + "enum" : [ "OTHER", "REVIEW" ] + }, + "annotator" : { + "description" : "This field identifies the person, organization, or tool that has commented on a file, package, snippet, or the entire document.", + "type" : "string" + }, + "comment" : { + "type" : "string" + } + }, + "required" : [ "annotationDate", "annotationType", "annotator", "comment" ], + "additionalProperties" : false, + "description" : "An Annotation is a comment on an SpdxItem by an agent." + } + }, + "attributionTexts" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "array", + "items" : { + "description" : "This field provides a place for the SPDX data creator to record acknowledgements that may be required to be communicated in some contexts. This is not meant to include the actual complete license text (see licenseConculded and licenseDeclared), and may or may not include copyright notices (see also copyrightText). The SPDX data creator may use this field to record other acknowledgements, such as particular clauses from license texts, which may be necessary or desirable to reproduce.", + "type" : "string" + } + }, + "comment" : { + "type" : "string" + }, + "copyrightText" : { + "description" : "The text of copyright declarations recited in the package, file or snippet.\n\nIf the copyrightText field is not present, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "licenseComments" : { + "description" : "The licenseComments property allows the preparer of the SPDX document to describe why the licensing in spdx:licenseConcluded was chosen.", + "type" : "string" + }, + "licenseConcluded" : { + "description" : "License expression for licenseConcluded. See SPDX Annex D for the license expression syntax. The licensing that the preparer of this SPDX document has concluded, based on the evidence, actually applies to the SPDX Item.\n\nIf the licenseConcluded field is not present for an SPDX Item, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + }, + "licenseInfoInSnippets" : { + "description" : "Licensing information that was discovered directly in the subject snippet. This is also considered a declared license for the snippet.\n\nIf the licenseInfoInSnippet field is not present for a snippet, it implies an equivalent meaning to NOASSERTION.", + "type" : "array", + "items" : { + "description" : "License expression for licenseInfoInSnippet. See SPDX Annex D for the license expression syntax. Licensing information that was discovered directly in the subject snippet. This is also considered a declared license for the snippet.\n\nIf the licenseInfoInSnippet field is not present for a snippet, it implies an equivalent meaning to NOASSERTION.", + "type" : "string" + } + }, + "name" : { + "description" : "Identify name of this SpdxElement.", + "type" : "string" + }, + "ranges" : { + "description" : "This field defines the byte range in the original host file (in X.2) that the snippet information applies to", + "minItems" : 1, + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "endPointer" : { + "type" : "object", + "properties" : { + "reference" : { + "description" : "SPDX ID for File", + "type" : "string" + }, + "offset" : { + "type" : "integer", + "description" : "Byte offset in the file" + }, + "lineNumber" : { + "type" : "integer", + "description" : "line number offset in the file" + } + }, + "required" : [ "reference" ], + "additionalProperties" : false + }, + "startPointer" : { + "type" : "object", + "properties" : { + "reference" : { + "description" : "SPDX ID for File", + "type" : "string" + }, + "offset" : { + "type" : "integer", + "description" : "Byte offset in the file" + }, + "lineNumber" : { + "type" : "integer", + "description" : "line number offset in the file" + } + }, + "required" : [ "reference" ], + "additionalProperties" : false + } + }, + "required" : [ "endPointer", "startPointer" ], + "additionalProperties" : false + } + }, + "snippetFromFile" : { + "description" : "SPDX ID for File. File containing the SPDX element (e.g. the file contaning a snippet).", + "type" : "string" + } + }, + "required" : [ "SPDXID", "name", "ranges", "snippetFromFile" ], + "additionalProperties" : false + } + }, + "relationships" : { + "description" : "Relationships referenced in the SPDX document", + "type" : "array", + "items" : { + "type" : "object", + "properties" : { + "spdxElementId" : { + "type" : "string", + "description" : "Id to which the SPDX element is related" + }, + "comment" : { + "type" : "string" + }, + "relatedSpdxElement" : { + "description" : "SPDX ID for SpdxElement. A related SpdxElement.", + "type" : "string" + }, + "relationshipType" : { + "description" : "Describes the type of relationship between two SPDX elements.", + "type" : "string", + "enum" : [ "VARIANT_OF", "COPY_OF", "PATCH_FOR", "TEST_DEPENDENCY_OF", "CONTAINED_BY", "DATA_FILE_OF", "OPTIONAL_COMPONENT_OF", "ANCESTOR_OF", "GENERATES", "CONTAINS", "OPTIONAL_DEPENDENCY_OF", "FILE_ADDED", "REQUIREMENT_DESCRIPTION_FOR", "DEV_DEPENDENCY_OF", "DEPENDENCY_OF", "BUILD_DEPENDENCY_OF", "DESCRIBES", "PREREQUISITE_FOR", "HAS_PREREQUISITE", "PROVIDED_DEPENDENCY_OF", "DYNAMIC_LINK", "DESCRIBED_BY", "METAFILE_OF", "DEPENDENCY_MANIFEST_OF", "PATCH_APPLIED", "RUNTIME_DEPENDENCY_OF", "TEST_OF", "TEST_TOOL_OF", "DEPENDS_ON", "SPECIFICATION_FOR", "FILE_MODIFIED", "DISTRIBUTION_ARTIFACT", "AMENDS", "DOCUMENTATION_OF", "GENERATED_FROM", "STATIC_LINK", "OTHER", "BUILD_TOOL_OF", "TEST_CASE_OF", "PACKAGE_OF", "DESCENDANT_OF", "FILE_DELETED", "EXPANDED_FROM_ARCHIVE", "DEV_TOOL_OF", "EXAMPLE_OF" ] + } + }, + "required" : [ "spdxElementId", "relatedSpdxElement", "relationshipType" ], + "additionalProperties" : false + } + } + }, + "required" : [ "SPDXID", "creationInfo", "dataLicense", "name", "spdxVersion" ], + "additionalProperties" : false +} \ No newline at end of file From 3b1c15aeb02bc8bc42be6292982cd1e98b14ad1f Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Sat, 8 Jul 2023 13:26:00 +0200 Subject: [PATCH 004/232] tools: use osx notarytool for future releases Signed-off-by: Ulises Gascon Refs: https://github.com/nodejs/build/issues/3385 PR-URL: https://github.com/nodejs/node/pull/48701 Reviewed-By: Michael Dawson Reviewed-By: James M Snell Reviewed-By: Moshe Atlow Reviewed-By: Yagiz Nizipli --- tools/osx-notarize.sh | 91 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 19 deletions(-) diff --git a/tools/osx-notarize.sh b/tools/osx-notarize.sh index 31c92c2ca426f3..beea7041793cdf 100755 --- a/tools/osx-notarize.sh +++ b/tools/osx-notarize.sh @@ -1,34 +1,87 @@ #!/bin/sh -# Uses gon, from https://github.com/mitchellh/gon, to notarize a generated node-.pkg file -# with Apple for installation on macOS Catalina and later as validated by Gatekeeper. +# Notarize a generated node-.pkg file as an Apple requirement for installation on macOS Catalina and later, as validated by Gatekeeper. +# Uses gon (Xcode version < 13.0) or notarytool (Xcode >= 13.0). -set -e - -gon_version="0.2.2" -gon_exe="${HOME}/.gon/gon_${gon_version}" +version() { + echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }' || echo "0" +} +xcode_version=$(xcodebuild -version | awk '/Xcode/ {print $2}') +xcode_version_result=$(version "$xcode_version") +xcode_version_threshold=$(version "13.0") pkgid="$1" -[ -z "$pkgid" ] && \ - echo "Usage: $0 " \ +if [ -z "$pkgid" ]; then + echo "Usage: $0 " exit 1 +fi # shellcheck disable=SC2154 -[ -z "$NOTARIZATION_ID" ] && \ - echo "No NOTARIZATION_ID environment var. Skipping notarization." \ +if [ -z "$NOTARIZATION_ID" ]; then + echo "No NOTARIZATION_ID environment variable. Skipping notarization." exit 0 +fi -set -x - -mkdir -p "${HOME}/.gon/" +if [ -z "$NOTARIZATION_PASSWORD" ]; then + echo "No NOTARIZATION_PASSWORD environment variable. Skipping notarization." + exit 0 +fi -if [ ! -f "${gon_exe}" ]; then - curl -sL "https://github.com/mitchellh/gon/releases/download/v${gon_version}/gon_${gon_version}_macos.zip" -o "${gon_exe}.zip" - (cd "${HOME}/.gon/" && rm -f gon && unzip "${gon_exe}.zip" && mv gon "${gon_exe}") +if [ -z "$NOTARIZATION_TEAM_ID" ]; then + echo "No NOTARIZATION_TEAM_ID environment variable. Skipping notarization." + exit 0 fi -sed -e "s/{{appleid}}/${NOTARIZATION_ID}/" -e "s/{{pkgid}}/${pkgid}/" tools/osx-gon-config.json.tmpl \ - > gon-config.json +# TODO(@ulisesGascon): remove support for gon +# when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready +if [ "$xcode_version_result" -lt "$xcode_version_threshold" ]; then + echo "Notarization process is done with gon." + set -x + + gon_version="0.2.2" + gon_exe="${HOME}/.gon/gon_${gon_version}" -"${gon_exe}" -log-level=info gon-config.json + mkdir -p "${HOME}/.gon/" + + if [ ! -f "${gon_exe}" ]; then + curl -sL "https://github.com/mitchellh/gon/releases/download/v${gon_version}/gon_${gon_version}_macos.zip" -o "${gon_exe}.zip" + (cd "${HOME}/.gon/" && rm -f gon && unzip "${gon_exe}.zip" && mv gon "${gon_exe}") + fi + + sed -e "s/{{appleid}}/${NOTARIZATION_ID}/" -e "s/{{pkgid}}/${pkgid}/" tools/osx-gon-config.json.tmpl \ + > gon-config.json + + "${gon_exe}" -log-level=info gon-config.json + +else + echo "Notarization process is done with Notarytool." + + if ! command -v xcrun notarytool > /dev/null + then + echo "Notarytool is not present in the system. Notarization has failed." + exit 1 + fi + + # Submit the package for notarization + # TODO(@ulisesGascon): refactor to use --keychain-profile + # when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready + notarization_output=$( + xcrun notarytool submit \ + --apple-id "$NOTARIZATION_ID" \ + --password "$NOTARIZATION_PASSWORD" \ + --team-id "$NOTARIZATION_TEAM_ID" \ + --wait \ + "node-$pkgid.pkg" 2>&1 + ) + + if [ $? -eq 0 ]; then + # Extract the operation ID from the output + operation_id=$(echo "$notarization_output" | awk '/RequestUUID/ {print $NF}') + echo "Notarization submitted. Operation ID: $operation_id" + exit 0 + else + echo "Notarization failed. Error: $notarization_output" + exit 1 + fi +fi From 2f32472544eb9cce8fb5a85d72393f0eeea4a03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Oct 2023 17:54:17 +0200 Subject: [PATCH 005/232] tools: drop support for osx notarization with gon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs: https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 PR-URL: https://github.com/nodejs/node/pull/50291 Reviewed-By: Michaël Zasso Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli Reviewed-By: Richard Lau --- tools/osx-notarize.sh | 79 +++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 52 deletions(-) diff --git a/tools/osx-notarize.sh b/tools/osx-notarize.sh index beea7041793cdf..499bf168b23562 100755 --- a/tools/osx-notarize.sh +++ b/tools/osx-notarize.sh @@ -1,15 +1,12 @@ #!/bin/sh # Notarize a generated node-.pkg file as an Apple requirement for installation on macOS Catalina and later, as validated by Gatekeeper. -# Uses gon (Xcode version < 13.0) or notarytool (Xcode >= 13.0). +# Uses notarytool and requires Xcode >= 13.0. version() { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }' || echo "0" } -xcode_version=$(xcodebuild -version | awk '/Xcode/ {print $2}') -xcode_version_result=$(version "$xcode_version") -xcode_version_threshold=$(version "13.0") pkgid="$1" if [ -z "$pkgid" ]; then @@ -33,55 +30,33 @@ if [ -z "$NOTARIZATION_TEAM_ID" ]; then exit 0 fi -# TODO(@ulisesGascon): remove support for gon -# when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready -if [ "$xcode_version_result" -lt "$xcode_version_threshold" ]; then - echo "Notarization process is done with gon." - set -x - - gon_version="0.2.2" - gon_exe="${HOME}/.gon/gon_${gon_version}" - - mkdir -p "${HOME}/.gon/" - - if [ ! -f "${gon_exe}" ]; then - curl -sL "https://github.com/mitchellh/gon/releases/download/v${gon_version}/gon_${gon_version}_macos.zip" -o "${gon_exe}.zip" - (cd "${HOME}/.gon/" && rm -f gon && unzip "${gon_exe}.zip" && mv gon "${gon_exe}") - fi +echo "Notarization process is done with Notarytool." - sed -e "s/{{appleid}}/${NOTARIZATION_ID}/" -e "s/{{pkgid}}/${pkgid}/" tools/osx-gon-config.json.tmpl \ - > gon-config.json - - "${gon_exe}" -log-level=info gon-config.json +if ! command -v xcrun notarytool > /dev/null +then + echo "Notarytool is not present in the system. Notarization has failed." + exit 1 +fi +# Submit the package for notarization +# TODO(@ulisesGascon): refactor to use --keychain-profile +# when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready +notarization_output=$( + xcrun notarytool submit \ + --apple-id "$NOTARIZATION_ID" \ + --password "$NOTARIZATION_PASSWORD" \ + --team-id "$NOTARIZATION_TEAM_ID" \ + --wait \ + "node-$pkgid.pkg" 2>&1 +) + +if [ $? -eq 0 ]; then + # Extract the operation ID from the output + operation_id=$(echo "$notarization_output" | awk '/RequestUUID/ {print $NF}') + echo "Notarization submitted. Operation ID: $operation_id" + exit 0 else - echo "Notarization process is done with Notarytool." - - if ! command -v xcrun notarytool > /dev/null - then - echo "Notarytool is not present in the system. Notarization has failed." - exit 1 - fi - - # Submit the package for notarization - # TODO(@ulisesGascon): refactor to use --keychain-profile - # when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready - notarization_output=$( - xcrun notarytool submit \ - --apple-id "$NOTARIZATION_ID" \ - --password "$NOTARIZATION_PASSWORD" \ - --team-id "$NOTARIZATION_TEAM_ID" \ - --wait \ - "node-$pkgid.pkg" 2>&1 - ) - - if [ $? -eq 0 ]; then - # Extract the operation ID from the output - operation_id=$(echo "$notarization_output" | awk '/RequestUUID/ {print $NF}') - echo "Notarization submitted. Operation ID: $operation_id" - exit 0 - else - echo "Notarization failed. Error: $notarization_output" - exit 1 - fi + echo "Notarization failed. Error: $notarization_output" + exit 1 fi + From ad326033e23c1f950b1892bdbf43e24f5b089733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Mon, 30 Oct 2023 11:23:30 +0100 Subject: [PATCH 006/232] tools: remove unused `version` function PR-URL: https://github.com/nodejs/node/pull/50390 Reviewed-By: Richard Lau Reviewed-By: Moshe Atlow Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- tools/osx-notarize.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tools/osx-notarize.sh b/tools/osx-notarize.sh index 499bf168b23562..fbb2e4eb11ee8a 100755 --- a/tools/osx-notarize.sh +++ b/tools/osx-notarize.sh @@ -3,10 +3,6 @@ # Notarize a generated node-.pkg file as an Apple requirement for installation on macOS Catalina and later, as validated by Gatekeeper. # Uses notarytool and requires Xcode >= 13.0. -version() { - echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }' || echo "0" -} - pkgid="$1" if [ -z "$pkgid" ]; then From 0aaab45d7c510f8ff850325e7d8264682282a6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Wed, 1 Nov 2023 14:40:54 +0100 Subject: [PATCH 007/232] tools: improve macOS notarization process output readability PR-URL: https://github.com/nodejs/node/pull/50389 Fixes: https://github.com/nodejs/build/issues/3529 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- tools/osx-notarize.sh | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/tools/osx-notarize.sh b/tools/osx-notarize.sh index fbb2e4eb11ee8a..300173dd7fe0e9 100755 --- a/tools/osx-notarize.sh +++ b/tools/osx-notarize.sh @@ -37,22 +37,19 @@ fi # Submit the package for notarization # TODO(@ulisesGascon): refactor to use --keychain-profile # when https://github.com/nodejs/build/issues/3385#issuecomment-1729281269 is ready -notarization_output=$( - xcrun notarytool submit \ - --apple-id "$NOTARIZATION_ID" \ - --password "$NOTARIZATION_PASSWORD" \ - --team-id "$NOTARIZATION_TEAM_ID" \ - --wait \ - "node-$pkgid.pkg" 2>&1 -) +echo "Submitting node-$pkgid.pkg for notarization..." + +xcrun notarytool submit \ + --apple-id "$NOTARIZATION_ID" \ + --password "$NOTARIZATION_PASSWORD" \ + --team-id "$NOTARIZATION_TEAM_ID" \ + --wait \ + "node-$pkgid.pkg" if [ $? -eq 0 ]; then - # Extract the operation ID from the output - operation_id=$(echo "$notarization_output" | awk '/RequestUUID/ {print $NF}') - echo "Notarization submitted. Operation ID: $operation_id" + echo "Notarization node-$pkgid.pkg submitted successfully." exit 0 else - echo "Notarization failed. Error: $notarization_output" + echo "Notarization node-$pkgid.pkg failed." exit 1 fi - From 01039795a2aaa4e59e83160ab728b53375e8aab0 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 15 Sep 2023 12:18:13 -0700 Subject: [PATCH 008/232] esm: require braces for modules code PR-URL: https://github.com/nodejs/node/pull/49657 Backport-PR-URL: https://github.com/nodejs/node/pull/50268 Reviewed-By: Antoine du Hamel Reviewed-By: Jacob Smith --- .eslintrc.js | 12 +- lib/internal/modules/cjs/loader.js | 105 +++++++++++------- .../modules/esm/create_dynamic_module.js | 6 +- lib/internal/modules/esm/formats.js | 6 +- lib/internal/modules/esm/get_format.js | 2 +- lib/internal/modules/esm/hooks.js | 4 +- lib/internal/modules/esm/module_job.js | 3 +- lib/internal/modules/esm/resolve.js | 64 ++++++----- lib/internal/modules/esm/translators.js | 16 ++- lib/internal/modules/esm/worker.js | 8 +- lib/internal/modules/run_main.js | 15 +-- test/fixtures/errors/force_colors.snapshot | 10 +- ...urce_map_sourcemapping_url_string.snapshot | 2 +- 13 files changed, 146 insertions(+), 107 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 47b218c55e9171..619ce5a1377864 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -53,10 +53,10 @@ module.exports = { overrides: [ { files: [ - 'test/es-module/test-esm-type-flag.js', - 'test/es-module/test-esm-type-flag-alias.js', '*.mjs', 'test/es-module/test-esm-example-loader.js', + 'test/es-module/test-esm-type-flag.js', + 'test/es-module/test-esm-type-flag-alias.js', ], parserOptions: { sourceType: 'module' }, }, @@ -111,6 +111,14 @@ module.exports = { }, ] }, }, + { + files: [ + 'lib/internal/modules/**/*.js', + ], + rules: { + 'curly': 'error', + }, + }, { files: [ 'lib/internal/test_runner/**/*.js', diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 19a7d7e671f5ab..108d2b7ffbd5de 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -173,7 +173,7 @@ function stat(filename) { filename = path.toNamespacedPath(filename); if (statCache !== null) { const result = statCache.get(filename); - if (result !== undefined) return result; + if (result !== undefined) { return result; } } const result = internalModuleStat(filename); if (statCache !== null && result >= 0) { @@ -197,8 +197,9 @@ ObjectDefineProperty(Module, '_stat', { function updateChildren(parent, child, scan) { const children = parent?.children; - if (children && !(scan && ArrayPrototypeIncludes(children, child))) + if (children && !(scan && ArrayPrototypeIncludes(children, child))) { ArrayPrototypePush(children, child); + } } function reportModuleToWatchMode(filename) { @@ -386,13 +387,16 @@ function readPackageScope(checkPath) { if (enabledPermission && !permission.has('fs.read', checkPath + sep)) { return false; } - if (StringPrototypeEndsWith(checkPath, sep + 'node_modules')) + if (StringPrototypeEndsWith(checkPath, sep + 'node_modules')) { return false; + } const pjson = _readPackage(checkPath + sep); - if (pjson.exists) return { - data: pjson, - path: checkPath, - }; + if (pjson.exists) { + return { + data: pjson, + path: checkPath, + }; + } } while (separatorIndex > rootSeparatorIndex); return false; } @@ -445,7 +449,7 @@ const realpathCache = new SafeMap(); // absolute realpath. function tryFile(requestPath, isMain) { const rc = _stat(requestPath); - if (rc !== 0) return; + if (rc !== 0) { return; } if (getOptionValue('--preserve-symlinks') && !isMain) { return path.resolve(requestPath); } @@ -479,15 +483,15 @@ function findLongestRegisteredExtension(filename) { let startIndex = 0; while ((index = StringPrototypeIndexOf(name, '.', startIndex)) !== -1) { startIndex = index + 1; - if (index === 0) continue; // Skip dotfiles like .gitignore + if (index === 0) { continue; } // Skip dotfiles like .gitignore currentExtension = StringPrototypeSlice(name, index); - if (Module._extensions[currentExtension]) return currentExtension; + if (Module._extensions[currentExtension]) { return currentExtension; } } return '.js'; } function trySelfParentPath(parent) { - if (!parent) return false; + if (!parent) { return false; } if (parent.filename) { return parent.filename; @@ -501,7 +505,7 @@ function trySelfParentPath(parent) { } function trySelf(parentPath, request) { - if (!parentPath) return false; + if (!parentPath) { return false; } const { data: pkg, path: pkgPath } = readPackageScope(parentPath); if (!pkg || pkg.exports == null || pkg.name === undefined) { @@ -523,8 +527,9 @@ function trySelf(parentPath, request) { pathToFileURL(pkgPath + '/package.json'), expansion, pkg, pathToFileURL(parentPath), getCjsConditions()), parentPath, pkgPath); } catch (e) { - if (e.code === 'ERR_MODULE_NOT_FOUND') + if (e.code === 'ERR_MODULE_NOT_FOUND') { throw createEsmNotFoundErr(request, pkgPath + '/package.json'); + } throw e; } } @@ -537,8 +542,7 @@ function resolveExports(nmPath, request) { // The implementation's behavior is meant to mirror resolution in ESM. const { 1: name, 2: expansion = '' } = RegExpPrototypeExec(EXPORTS_PATTERN, request) || kEmptyObject; - if (!name) - return; + if (!name) { return; } const pkgPath = path.resolve(nmPath, name); const pkg = _readPackage(pkgPath); if (pkg.exists && pkg.exports != null) { @@ -548,8 +552,9 @@ function resolveExports(nmPath, request) { pathToFileURL(pkgPath + '/package.json'), '.' + expansion, pkg, null, getCjsConditions()), null, pkgPath); } catch (e) { - if (e.code === 'ERR_MODULE_NOT_FOUND') + if (e.code === 'ERR_MODULE_NOT_FOUND') { throw createEsmNotFoundErr(request, pkgPath + '/package.json'); + } throw e; } } @@ -571,8 +576,9 @@ Module._findPath = function(request, paths, isMain) { const cacheKey = request + '\x00' + ArrayPrototypeJoin(paths, '\x00'); const entry = Module._pathCache[cacheKey]; - if (entry) + if (entry) { return entry; + } let exts; const trailingSlash = request.length > 0 && @@ -619,8 +625,9 @@ Module._findPath = function(request, paths, isMain) { if (!absoluteRequest) { const exportsResolved = resolveExports(curPath, request); - if (exportsResolved) + if (exportsResolved) { return exportsResolved; + } } const basePath = path.resolve(curPath, request); @@ -652,16 +659,18 @@ Module._findPath = function(request, paths, isMain) { if (!filename) { // Try it with each of the extensions - if (exts === undefined) + if (exts === undefined) { exts = ObjectKeys(Module._extensions); + } filename = tryExtensions(basePath, exts, isMain); } } if (!filename && rc === 1) { // Directory. // try it with each of the extensions at "index" - if (exts === undefined) + if (exts === undefined) { exts = ObjectKeys(Module._extensions); + } filename = tryPackage(basePath, exts, isMain, request); } @@ -697,8 +706,9 @@ if (isWindows) { // path.resolve will make sure from.length >=3 in Windows. if (StringPrototypeCharCodeAt(from, from.length - 1) === CHAR_BACKWARD_SLASH && - StringPrototypeCharCodeAt(from, from.length - 2) === CHAR_COLON) + StringPrototypeCharCodeAt(from, from.length - 2) === CHAR_COLON) { return [from + 'node_modules']; + } const paths = []; for (let i = from.length - 1, p = 0, last = from.length; i >= 0; --i) { @@ -711,11 +721,12 @@ if (isWindows) { if (code === CHAR_BACKWARD_SLASH || code === CHAR_FORWARD_SLASH || code === CHAR_COLON) { - if (p !== nmLen) + if (p !== nmLen) { ArrayPrototypePush( paths, StringPrototypeSlice(from, 0, last) + '\\node_modules', ); + } last = i; p = 0; } else if (p !== -1) { @@ -736,8 +747,9 @@ if (isWindows) { from = path.resolve(from); // Return early not only to avoid unnecessary work, but to *avoid* returning // an array of two items for a root: [ '//node_modules', '/node_modules' ] - if (from === '/') + if (from === '/') { return ['/node_modules']; + } // note: this approach *only* works when the path is guaranteed // to be absolute. Doing a fully-edge-case-correct path.split @@ -746,11 +758,12 @@ if (isWindows) { for (let i = from.length - 1, p = 0, last = from.length; i >= 0; --i) { const code = StringPrototypeCharCodeAt(from, i); if (code === CHAR_FORWARD_SLASH) { - if (p !== nmLen) + if (p !== nmLen) { ArrayPrototypePush( paths, StringPrototypeSlice(from, 0, last) + '/node_modules', ); + } last = i; p = 0; } else if (p !== -1) { @@ -827,14 +840,15 @@ const CircularRequirePrototypeWarningProxy = new Proxy({}, { // Allow __esModule access in any case because it is used in the output // of transpiled code to determine whether something comes from an // ES module, and is not used as a regular key of `module.exports`. - if (prop in target || prop === '__esModule') return target[prop]; + if (prop in target || prop === '__esModule') { return target[prop]; } emitCircularRequireWarning(prop); return undefined; }, getOwnPropertyDescriptor(target, prop) { - if (ObjectPrototypeHasOwnProperty(target, prop) || prop === '__esModule') + if (ObjectPrototypeHasOwnProperty(target, prop) || prop === '__esModule') { return ObjectGetOwnPropertyDescriptor(target, prop); + } emitCircularRequireWarning(prop); return undefined; }, @@ -878,8 +892,9 @@ Module._load = function(request, parent, isMain) { const cachedModule = Module._cache[filename]; if (cachedModule !== undefined) { updateChildren(parent, cachedModule, true); - if (!cachedModule.loaded) + if (!cachedModule.loaded) { return getExportsForCircularRequire(cachedModule); + } return cachedModule.exports; } delete relativeResolveCache[relResolveCacheIdentifier]; @@ -904,8 +919,9 @@ Module._load = function(request, parent, isMain) { updateChildren(parent, cachedModule, true); if (!cachedModule.loaded) { const parseCachedModule = cjsParseCache.get(cachedModule); - if (!parseCachedModule || parseCachedModule.loaded) + if (!parseCachedModule || parseCachedModule.loaded) { return getExportsForCircularRequire(cachedModule); + } parseCachedModule.loaded = true; } else { return cachedModule.exports; @@ -988,8 +1004,9 @@ Module._resolveFilename = function(request, parent, isMain, options) { const lookupPaths = Module._resolveLookupPaths(request, fakeParent); for (let j = 0; j < lookupPaths.length; j++) { - if (!ArrayPrototypeIncludes(paths, lookupPaths[j])) + if (!ArrayPrototypeIncludes(paths, lookupPaths[j])) { ArrayPrototypePush(paths, lookupPaths[j]); + } } } } @@ -1013,8 +1030,9 @@ Module._resolveFilename = function(request, parent, isMain, options) { getCjsConditions()), parentPath, pkg.path); } catch (e) { - if (e.code === 'ERR_MODULE_NOT_FOUND') + if (e.code === 'ERR_MODULE_NOT_FOUND') { throw createEsmNotFoundErr(request); + } throw e; } } @@ -1032,7 +1050,7 @@ Module._resolveFilename = function(request, parent, isMain, options) { // Look up the filename first, since that's the cache key. const filename = Module._findPath(request, paths, isMain); - if (filename) return filename; + if (filename) { return filename; } const requireStack = []; for (let cursor = parent; cursor; @@ -1053,13 +1071,15 @@ Module._resolveFilename = function(request, parent, isMain, options) { function finalizeEsmResolution(resolved, parentPath, pkgPath) { const { encodedSepRegEx } = require('internal/modules/esm/resolve'); - if (RegExpPrototypeExec(encodedSepRegEx, resolved) !== null) + if (RegExpPrototypeExec(encodedSepRegEx, resolved) !== null) { throw new ERR_INVALID_MODULE_SPECIFIER( resolved, 'must not include encoded "/" or "\\" characters', parentPath); + } const filename = fileURLToPath(resolved); const actual = tryFile(filename); - if (actual) + if (actual) { return actual; + } const err = createEsmNotFoundErr(filename, path.resolve(pkgPath, 'package.json')); throw err; @@ -1069,8 +1089,9 @@ function createEsmNotFoundErr(request, path) { // eslint-disable-next-line no-restricted-syntax const err = new Error(`Cannot find module '${request}'`); err.code = 'MODULE_NOT_FOUND'; - if (path) + if (path) { err.path = path; + } // TODO(BridgeAR): Add the requireStack as well. return err; } @@ -1085,8 +1106,9 @@ Module.prototype.load = function(filename) { const extension = findLongestRegisteredExtension(filename); // allow .mjs to be overridden - if (StringPrototypeEndsWith(filename, '.mjs') && !Module._extensions['.mjs']) + if (StringPrototypeEndsWith(filename, '.mjs') && !Module._extensions['.mjs']) { throw new ERR_REQUIRE_ESM(filename, true); + } Module._extensions[extension](this, filename); this.loaded = true; @@ -1097,8 +1119,9 @@ Module.prototype.load = function(filename) { // Preemptively cache if ((module?.module === undefined || module.module.getStatus() < kEvaluated) && - !cascadedLoader.cjsCache.has(this)) + !cascadedLoader.cjsCache.has(this)) { cascadedLoader.cjsCache.set(this, exports); + } }; // Loads a module at the given file path. Returns that module's @@ -1233,7 +1256,7 @@ Module.prototype._compile = function(content, filename) { const exports = this.exports; const thisValue = exports; const module = this; - if (requireDepth === 0) statCache = new SafeMap(); + if (requireDepth === 0) { statCache = new SafeMap(); } if (inspectorWrapper) { result = inspectorWrapper(compiledWrapper, thisValue, exports, require, module, filename, dirname); @@ -1242,7 +1265,7 @@ Module.prototype._compile = function(content, filename) { [exports, require, module, filename, dirname]); } hasLoadedAnyUserCJSModule = true; - if (requireDepth === 0) statCache = null; + if (requireDepth === 0) { statCache = null; } return result; }; @@ -1399,8 +1422,7 @@ Module._initPaths = function() { }; Module._preloadModules = function(requests) { - if (!ArrayIsArray(requests)) - return; + if (!ArrayIsArray(requests)) { return; } isPreloading = true; @@ -1416,8 +1438,9 @@ Module._preloadModules = function(requests) { throw e; } } - for (let n = 0; n < requests.length; n++) + for (let n = 0; n < requests.length; n++) { internalRequire(parent, requests[n]); + } isPreloading = false; }; diff --git a/lib/internal/modules/esm/create_dynamic_module.js b/lib/internal/modules/esm/create_dynamic_module.js index 5d7f3fed60ed8e..c8dd3c7df62f99 100644 --- a/lib/internal/modules/esm/create_dynamic_module.js +++ b/lib/internal/modules/esm/create_dynamic_module.js @@ -43,15 +43,17 @@ import.meta.done(); onReady: (cb) => { readyfns.add(cb); }, }; - if (imports.length) + if (imports.length) { reflect.imports = { __proto__: null }; + } const { registerModule } = require('internal/modules/esm/utils'); registerModule(m, { __proto__: null, initializeImportMeta: (meta, wrap) => { meta.exports = reflect.exports; - if (reflect.imports) + if (reflect.imports) { meta.imports = reflect.imports; + } meta.done = () => { evaluate(reflect); reflect.onReady = (cb) => cb(reflect); diff --git a/lib/internal/modules/esm/formats.js b/lib/internal/modules/esm/formats.js index c4181b50f10451..4ab9aa6f032b7e 100644 --- a/lib/internal/modules/esm/formats.js +++ b/lib/internal/modules/esm/formats.js @@ -29,9 +29,9 @@ function mimeToFormat(mime) { /^\s*(text|application)\/javascript\s*(;\s*charset=utf-?8\s*)?$/i, mime, ) !== null - ) return 'module'; - if (mime === 'application/json') return 'json'; - if (experimentalWasmModules && mime === 'application/wasm') return 'wasm'; + ) { return 'module'; } + if (mime === 'application/json') { return 'json'; } + if (experimentalWasmModules && mime === 'application/wasm') { return 'wasm'; } return null; } diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index 4ac9c011d153f4..b3c8a56c06c1cc 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -79,7 +79,7 @@ function getFileProtocolModuleFormat(url, context, ignoreErrors) { } const format = extensionFormatMap[ext]; - if (format) return format; + if (format) { return format; } // Explicit undefined return indicates load hook should rerun format check if (ignoreErrors) { return undefined; } diff --git a/lib/internal/modules/esm/hooks.js b/lib/internal/modules/esm/hooks.js index 05885050b82fc9..8ae5f49c0d13ba 100644 --- a/lib/internal/modules/esm/hooks.js +++ b/lib/internal/modules/esm/hooks.js @@ -261,7 +261,7 @@ class Hooks { `${hookErrIdentifier} specifier`, ); // non-strings can be coerced to a URL string - if (ctx) validateObject(ctx, `${hookErrIdentifier} context`); + if (ctx) { validateObject(ctx, `${hookErrIdentifier} context`); } }; const validateOutput = (hookErrIdentifier, output) => { if (typeof output !== 'object' || output === null) { // [2] @@ -660,7 +660,7 @@ class HooksProxy { } const { status, body } = response.message; if (status === 'error') { - if (body == null || typeof body !== 'object') throw body; + if (body == null || typeof body !== 'object') { throw body; } if (body.serializationFailed || body.serialized == null) { throw ERR_WORKER_UNSERIALIZABLE_ERROR(); } diff --git a/lib/internal/modules/esm/module_job.js b/lib/internal/modules/esm/module_job.js index 8ac5ff240bdb37..ff284367d0d49e 100644 --- a/lib/internal/modules/esm/module_job.js +++ b/lib/internal/modules/esm/module_job.js @@ -87,8 +87,9 @@ class ModuleJob { return job.modulePromise; }); - if (promises !== undefined) + if (promises !== undefined) { await SafePromiseAllReturnVoid(promises); + } return SafePromiseAllReturnArrayLike(dependencyJobs); }; diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js index acb5ddca8af3d2..438004e640bf6a 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js @@ -69,8 +69,7 @@ const emittedPackageWarnings = new SafeSet(); function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { const pjsonPath = fileURLToPath(pjsonUrl); - if (emittedPackageWarnings.has(pjsonPath + '|' + match)) - return; + if (emittedPackageWarnings.has(pjsonPath + '|' + match)) { return; } emittedPackageWarnings.add(pjsonPath + '|' + match); process.emitWarning( `Use of deprecated trailing slash pattern mapping "${match}" in the ` + @@ -107,8 +106,7 @@ function emitInvalidSegmentDeprecation(target, request, match, pjsonUrl, interna */ function emitLegacyIndexDeprecation(url, packageJSONUrl, base, main) { const format = defaultGetFormatWithoutErrors(url); - if (format !== 'module') - return; + if (format !== 'module') { return; } const path = fileURLToPath(url); const pkgPath = fileURLToPath(new URL('.', packageJSONUrl)); const basePath = fileURLToPath(base); @@ -204,10 +202,11 @@ const encodedSepRegEx = /%2F|%5C/i; * @returns {URL | undefined} */ function finalizeResolution(resolved, base, preserveSymlinks) { - if (RegExpPrototypeExec(encodedSepRegEx, resolved.pathname) !== null) + if (RegExpPrototypeExec(encodedSepRegEx, resolved.pathname) !== null) { throw new ERR_INVALID_MODULE_SPECIFIER( resolved.pathname, 'must not include encoded "/" or "\\" characters', fileURLToPath(base)); + } let path; try { @@ -328,8 +327,9 @@ function resolvePackageTargetString( conditions, ) { - if (subpath !== '' && !pattern && target[target.length - 1] !== '/') + if (subpath !== '' && !pattern && target[target.length - 1] !== '/') { throw invalidPackageTarget(match, target, packageJSONUrl, internal, base); + } if (!StringPrototypeStartsWith(target, './')) { if (internal && !StringPrototypeStartsWith(target, '../') && @@ -366,10 +366,11 @@ function resolvePackageTargetString( const resolvedPath = resolved.pathname; const packagePath = new URL('.', packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) { throw invalidPackageTarget(match, target, packageJSONUrl, internal, base); + } - if (subpath === '') return resolved; + if (subpath === '') { return resolved; } if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { const request = pattern ? StringPrototypeReplace(match, '*', () => subpath) : match + subpath; @@ -400,7 +401,7 @@ function resolvePackageTargetString( */ function isArrayIndex(key) { const keyNum = +key; - if (`${keyNum}` !== key) return false; + if (`${keyNum}` !== key) { return false; } return keyNum >= 0 && keyNum < 0xFFFF_FFFF; } @@ -452,8 +453,9 @@ function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, } return resolveResult; } - if (lastException === undefined || lastException === null) + if (lastException === undefined || lastException === null) { return lastException; + } throw lastException; } else if (typeof target === 'object' && target !== null) { const keys = ObjectGetOwnPropertyNames(target); @@ -472,8 +474,7 @@ function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, const resolveResult = resolvePackageTarget( packageJSONUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions); - if (resolveResult === undefined) - continue; + if (resolveResult === undefined) { continue; } return resolveResult; } } @@ -493,8 +494,8 @@ function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, * @returns {boolean} */ function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { - if (typeof exports === 'string' || ArrayIsArray(exports)) return true; - if (typeof exports !== 'object' || exports === null) return false; + if (typeof exports === 'string' || ArrayIsArray(exports)) { return true; } + if (typeof exports !== 'object' || exports === null) { return false; } const keys = ObjectGetOwnPropertyNames(exports); let isConditionalSugar = false; @@ -526,8 +527,9 @@ function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { function packageExportsResolve( packageJSONUrl, packageSubpath, packageConfig, base, conditions) { let exports = packageConfig.exports; - if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) + if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) { exports = { '.': exports }; + } if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, '*') && @@ -560,9 +562,10 @@ function packageExportsResolve( // throwInvalidSubpath(packageSubpath) // // To match "imports" and the spec. - if (StringPrototypeEndsWith(packageSubpath, '/')) + if (StringPrototypeEndsWith(packageSubpath, '/')) { emitTrailingSlashPatternDeprecation(packageSubpath, packageJSONUrl, base); + } const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && @@ -603,12 +606,12 @@ function patternKeyCompare(a, b) { const bPatternIndex = StringPrototypeIndexOf(b, '*'); const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; + if (baseLenA > baseLenB) { return -1; } + if (baseLenB > baseLenA) { return 1; } + if (aPatternIndex === -1) { return 1; } + if (bPatternIndex === -1) { return -1; } + if (a.length > b.length) { return -1; } + if (b.length > a.length) { return 1; } return 0; } @@ -711,8 +714,9 @@ function parsePackageName(specifier, base) { // Package name cannot have leading . and cannot have percent-encoding or // \\ separators. - if (RegExpPrototypeExec(invalidPackageNameRegEx, packageName) !== null) + if (RegExpPrototypeExec(invalidPackageNameRegEx, packageName) !== null) { validPackageName = false; + } if (!validPackageName) { throw new ERR_INVALID_MODULE_SPECIFIER( @@ -799,17 +803,17 @@ function isBareSpecifier(specifier) { function isRelativeSpecifier(specifier) { if (specifier[0] === '.') { - if (specifier.length === 1 || specifier[1] === '/') return true; + if (specifier.length === 1 || specifier[1] === '/') { return true; } if (specifier[1] === '.') { - if (specifier.length === 2 || specifier[2] === '/') return true; + if (specifier.length === 2 || specifier[2] === '/') { return true; } } } return false; } function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { - if (specifier === '') return false; - if (specifier[0] === '/') return true; + if (specifier === '') { return false; } + if (specifier[0] === '/') { return true; } return isRelativeSpecifier(specifier); } @@ -1018,10 +1022,10 @@ function defaultResolve(specifier, context = {}) { parsedParentURL, ); - if (maybeReturn) return maybeReturn; + if (maybeReturn) { return maybeReturn; } // This must come after checkIfDisallowedImport - if (parsed && parsed.protocol === 'node:') return { __proto__: null, url: specifier }; + if (parsed && parsed.protocol === 'node:') { return { __proto__: null, url: specifier }; } const isMain = parentURL === undefined; @@ -1034,7 +1038,7 @@ function defaultResolve(specifier, context = {}) { // input, to avoid user confusion over how expansive the effect of the // flag should be (i.e. entry point only, package scope surrounding the // entry point, etc.). - if (typeFlag) throw new ERR_INPUT_TYPE_NOT_ALLOWED(); + if (typeFlag) { throw new ERR_INPUT_TYPE_NOT_ALLOWED(); } } conditions = getConditionsSet(conditions); diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index b143cd0ad34d0e..62d721552ef6af 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -20,7 +20,7 @@ const { let _TYPES = null; function lazyTypes() { - if (_TYPES !== null) return _TYPES; + if (_TYPES !== null) { return _TYPES; } return _TYPES = require('internal/util/types'); } @@ -90,7 +90,7 @@ function assertBufferSource(body, allowString, hookName) { } function stringify(body) { - if (typeof body === 'string') return body; + if (typeof body === 'string') { return body; } assertBufferSource(body, false, 'transformSource'); const { TextDecoder } = require('internal/encoding'); DECODER = DECODER === null ? new TextDecoder() : DECODER; @@ -243,8 +243,9 @@ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) { } for (const exportName of exportNames) { if (!ObjectPrototypeHasOwnProperty(exports, exportName) || - exportName === 'default') + exportName === 'default') { continue; + } // We might trigger a getter -> dont fail. let value; try { @@ -303,8 +304,9 @@ function cjsPreparseModuleExports(filename, source) { let module = CJSModule._cache[filename]; if (module) { const cached = cjsParseCache.get(module); - if (cached) + if (cached) { return { module, exportNames: cached.exportNames }; + } } const loaded = Boolean(module); if (!loaded) { @@ -355,8 +357,9 @@ function cjsPreparseModuleExports(filename, source) { // (and fallback to reading the FS only if the source is nullish). const source = readFileSync(resolved, 'utf-8'); const { exportNames: reexportNames } = cjsPreparseModuleExports(resolved, source); - for (const name of reexportNames) + for (const name of reexportNames) { exportNames.add(name); + } } } } @@ -465,7 +468,8 @@ translators.set('wasm', async function(url, source) { 'internal/modules/esm/create_dynamic_module'); return createDynamicModule(imports, exports, url, (reflect) => { const { exports } = new WebAssembly.Instance(compiled, reflect.imports); - for (const expt of ObjectKeys(exports)) + for (const expt of ObjectKeys(exports)) { reflect.exports[expt].set(exports[expt]); + } }).module; }); diff --git a/lib/internal/modules/esm/worker.js b/lib/internal/modules/esm/worker.js index 380906accf6fe9..44a290467b76d0 100644 --- a/lib/internal/modules/esm/worker.js +++ b/lib/internal/modules/esm/worker.js @@ -33,10 +33,10 @@ const { initializeHooks } = require('internal/modules/esm/utils'); function transferArrayBuffer(hasError, source) { - if (hasError || source == null) return; - if (isArrayBuffer(source)) return [source]; - if (isTypedArray(source)) return [TypedArrayPrototypeGetBuffer(source)]; - if (isDataView(source)) return [DataViewPrototypeGetBuffer(source)]; + if (hasError || source == null) { return; } + if (isArrayBuffer(source)) { return [source]; } + if (isTypedArray(source)) { return [TypedArrayPrototypeGetBuffer(source)]; } + if (isDataView(source)) { return [DataViewPrototypeGetBuffer(source)]; } } function wrapMessage(status, body) { diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index 0bfe7b11241416..7636d27f3aee71 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -13,12 +13,12 @@ function resolveMainPath(main) { // Module._findPath is monkey-patchable here. const { Module, toRealPath } = require('internal/modules/cjs/loader'); let mainPath = Module._findPath(path.resolve(main), null, true); - if (!mainPath) - return; + if (!mainPath) { return; } const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main'); - if (!preserveSymlinksMain) + if (!preserveSymlinksMain) { mainPath = toRealPath(mainPath); + } return mainPath; } @@ -34,14 +34,11 @@ function shouldUseESMLoader(mainPath) { * (or an empty list when none have been registered). */ const userImports = getOptionValue('--import'); - if (userLoaders.length > 0 || userImports.length > 0) - return true; + if (userLoaders.length > 0 || userImports.length > 0) { return true; } const { readPackageScope } = require('internal/modules/cjs/loader'); // Determine the module format of the main - if (mainPath && StringPrototypeEndsWith(mainPath, '.mjs')) - return true; - if (!mainPath || StringPrototypeEndsWith(mainPath, '.cjs')) - return false; + if (mainPath && StringPrototypeEndsWith(mainPath, '.mjs')) { return true; } + if (!mainPath || StringPrototypeEndsWith(mainPath, '.cjs')) { return false; } const pkg = readPackageScope(mainPath); return pkg && pkg.data.type === 'module'; } diff --git a/test/fixtures/errors/force_colors.snapshot b/test/fixtures/errors/force_colors.snapshot index be1d45d0d8e8ba..f843a3586ee800 100644 --- a/test/fixtures/errors/force_colors.snapshot +++ b/test/fixtures/errors/force_colors.snapshot @@ -4,11 +4,11 @@ throw new Error('Should include grayed stack trace') Error: Should include grayed stack trace at Object. (/test*force_colors.js:1:7) - at Module._compile (node:internal*modules*cjs*loader:1241:14) - at Module._extensions..js (node:internal*modules*cjs*loader:1295:10) - at Module.load (node:internal*modules*cjs*loader:1091:32) - at Module._load (node:internal*modules*cjs*loader:938:12) - at Function.executeUserEntryPoint [as runMain] (node:internal*modules*run_main:83:12) + at Module._compile (node:internal*modules*cjs*loader:1264:14) + at Module._extensions..js (node:internal*modules*cjs*loader:1318:10) + at Module.load (node:internal*modules*cjs*loader:1113:32) + at Module._load (node:internal*modules*cjs*loader:954:12) + at Function.executeUserEntryPoint [as runMain] (node:internal*modules*run_main:80:12)  at node:internal*main*run_main_module:23:47 Node.js * diff --git a/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot b/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot index 2c1e11eeb9eab1..a2a988e82eda2c 100644 --- a/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot +++ b/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot @@ -1,3 +1,3 @@ Error: an exception. at Object. (*typescript-sourcemapping_url_string.ts:3:7) - at Module._compile (node:internal*modules*cjs*loader:1241:14) + at Module._compile (node:internal*modules*cjs*loader:1264:14) From 5a2351d3ab8c558aec5b7dc1c729d86176bb672e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sun, 17 Sep 2023 15:03:14 +0200 Subject: [PATCH 009/232] src: remove unused variable PR-URL: https://github.com/nodejs/node/pull/49665 Reviewed-By: Antoine du Hamel Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Geoffrey Booth --- src/module_wrap.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/module_wrap.cc b/src/module_wrap.cc index a1b0f812391486..f81d5060623a28 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -577,8 +577,6 @@ static MaybeLocal ImportModuleDynamically( return handle_scope.Escape(resolver->GetPromise()); } - Local object; - Local id = options->Get(context, HostDefinedOptions::kID).As(); From 5dfe4236f8a9c064f3c4d2328a8a36494ca3fcb6 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Sun, 17 Sep 2023 13:59:41 -0700 Subject: [PATCH 010/232] test: fix edge snapshot stack traces PR-URL: https://github.com/nodejs/node/pull/49659 Reviewed-By: James M Snell Reviewed-By: Yagiz Nizipli Reviewed-By: Moshe Atlow --- test/common/assertSnapshot.js | 5 +++++ test/fixtures/errors/force_colors.snapshot | 12 +++++------ ...urce_map_sourcemapping_url_string.snapshot | 2 +- test/parallel/test-node-output-errors.mjs | 21 ++++++++++++------- test/parallel/test-node-output-sourcemaps.mjs | 10 ++++----- 5 files changed, 29 insertions(+), 21 deletions(-) diff --git a/test/common/assertSnapshot.js b/test/common/assertSnapshot.js index 0bd0fc18534f8b..88f40281e069b7 100644 --- a/test/common/assertSnapshot.js +++ b/test/common/assertSnapshot.js @@ -8,6 +8,10 @@ const assert = require('node:assert/strict'); const stackFramesRegexp = /(?<=\n)(\s+)((.+?)\s+\()?(?:\(?(.+?):(\d+)(?::(\d+))?)\)?(\s+\{)?(\[\d+m)?(\n|$)/g; const windowNewlineRegexp = /\r/g; +function replaceNodeVersion(str) { + return str.replaceAll(process.version, '*'); +} + function replaceStackTrace(str, replacement = '$1*$7$8\n') { return str.replace(stackFramesRegexp, replacement); } @@ -84,6 +88,7 @@ module.exports = { assertSnapshot, getSnapshotPath, replaceFullPaths, + replaceNodeVersion, replaceStackTrace, replaceWindowsLineEndings, replaceWindowsPaths, diff --git a/test/fixtures/errors/force_colors.snapshot b/test/fixtures/errors/force_colors.snapshot index f843a3586ee800..3624d9f0804545 100644 --- a/test/fixtures/errors/force_colors.snapshot +++ b/test/fixtures/errors/force_colors.snapshot @@ -4,11 +4,11 @@ throw new Error('Should include grayed stack trace') Error: Should include grayed stack trace at Object. (/test*force_colors.js:1:7) - at Module._compile (node:internal*modules*cjs*loader:1264:14) - at Module._extensions..js (node:internal*modules*cjs*loader:1318:10) - at Module.load (node:internal*modules*cjs*loader:1113:32) - at Module._load (node:internal*modules*cjs*loader:954:12) - at Function.executeUserEntryPoint [as runMain] (node:internal*modules*run_main:80:12) - at node:internal*main*run_main_module:23:47 + at * + at * + at * + at * + at * + at * Node.js * diff --git a/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot b/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot index a2a988e82eda2c..6a109c904e1155 100644 --- a/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot +++ b/test/fixtures/source-map/output/source_map_sourcemapping_url_string.snapshot @@ -1,3 +1,3 @@ Error: an exception. at Object. (*typescript-sourcemapping_url_string.ts:3:7) - at Module._compile (node:internal*modules*cjs*loader:1264:14) + * diff --git a/test/parallel/test-node-output-errors.mjs b/test/parallel/test-node-output-errors.mjs index 4c4fc08c0cf382..5be920627ad70e 100644 --- a/test/parallel/test-node-output-errors.mjs +++ b/test/parallel/test-node-output-errors.mjs @@ -11,14 +11,15 @@ const skipForceColors = (common.isWindows && (Number(os.release().split('.')[0]) !== 10 || Number(os.release().split('.')[2]) < 14393)); // See https://github.com/nodejs/node/pull/33132 -function replaceNodeVersion(str) { - return str.replaceAll(process.version, '*'); -} - function replaceStackTrace(str) { return snapshot.replaceStackTrace(str, '$1at *$7\n'); } +function replaceForceColorsStackTrace(str) { + // eslint-disable-next-line no-control-regex + return str.replaceAll(/(\[90m\W+)at .*node:.*/g, '$1at *'); +} + describe('errors output', { concurrency: true }, () => { function normalize(str) { return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '') @@ -35,9 +36,12 @@ describe('errors output', { concurrency: true }, () => { } const common = snapshot .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths); - const defaultTransform = snapshot.transform(common, normalize, replaceNodeVersion); - const errTransform = snapshot.transform(common, normalizeNoNumbers, replaceNodeVersion); - const promiseTransform = snapshot.transform(common, replaceStackTrace, normalizeNoNumbers, replaceNodeVersion); + const defaultTransform = snapshot.transform(common, normalize, snapshot.replaceNodeVersion); + const errTransform = snapshot.transform(common, normalizeNoNumbers, snapshot.replaceNodeVersion); + const promiseTransform = snapshot.transform(common, replaceStackTrace, + normalizeNoNumbers, snapshot.replaceNodeVersion); + const forceColorsTransform = snapshot.transform(common, normalize, + replaceForceColorsStackTrace, snapshot.replaceNodeVersion); const tests = [ { name: 'errors/async_error_eval_cjs.js' }, @@ -57,7 +61,8 @@ describe('errors output', { concurrency: true }, () => { { name: 'errors/throw_in_line_with_tabs.js', transform: errTransform }, { name: 'errors/throw_non_error.js', transform: errTransform }, { name: 'errors/promise_always_throw_unhandled.js', transform: promiseTransform }, - { skip: skipForceColors, name: 'errors/force_colors.js', env: { FORCE_COLOR: 1 } }, + { skip: skipForceColors, name: 'errors/force_colors.js', + transform: forceColorsTransform, env: { FORCE_COLOR: 1 } }, ]; for (const { name, transform = defaultTransform, env, skip = false } of tests) { it(name, { skip }, async () => { diff --git a/test/parallel/test-node-output-sourcemaps.mjs b/test/parallel/test-node-output-sourcemaps.mjs index 2043fa57f06a8d..b01f30765c7de8 100644 --- a/test/parallel/test-node-output-sourcemaps.mjs +++ b/test/parallel/test-node-output-sourcemaps.mjs @@ -4,10 +4,6 @@ import * as snapshot from '../common/assertSnapshot.js'; import * as path from 'node:path'; import { describe, it } from 'node:test'; -function replaceNodeVersion(str) { - return str.replaceAll(process.version, '*'); -} - describe('sourcemaps output', { concurrency: true }, () => { function normalize(str) { const result = str @@ -16,7 +12,8 @@ describe('sourcemaps output', { concurrency: true }, () => { .replaceAll('/Users/bencoe/oss/coffee-script-test', '') .replaceAll(/\/(\w)/g, '*$1') .replaceAll('*test*', '*') - .replaceAll('*fixtures*source-map*', '*'); + .replaceAll('*fixtures*source-map*', '*') + .replaceAll(/(\W+).*node:internal\*modules.*/g, '$1*'); if (common.isWindows) { const currentDeviceLetter = path.parse(process.cwd()).root.substring(0, 1).toLowerCase(); const regex = new RegExp(`${currentDeviceLetter}:/?`, 'gi'); @@ -25,7 +22,8 @@ describe('sourcemaps output', { concurrency: true }, () => { return result; } const defaultTransform = snapshot - .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, normalize, replaceNodeVersion); + .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, + normalize, snapshot.replaceNodeVersion); const tests = [ { name: 'source-map/output/source_map_disabled_by_api.js' }, From 142ac3f82d3b9402ade4d2f6df9a29ea9ebfc096 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Mon, 18 Sep 2023 19:48:24 -0700 Subject: [PATCH 011/232] module, esm: jsdoc for modules files PR-URL: https://github.com/nodejs/node/pull/49523 Reviewed-By: James M Snell Reviewed-By: Yagiz Nizipli --- lib/internal/dns/promises.js | 24 ++ lib/internal/modules/cjs/loader.js | 288 +++++++++++++++--- .../modules/esm/create_dynamic_module.js | 22 ++ lib/internal/modules/esm/fetch_module.js | 39 ++- .../modules/esm/handle_process_exit.js | 8 +- lib/internal/modules/esm/loader.js | 12 + lib/internal/modules/esm/package_config.js | 19 +- lib/internal/modules/esm/resolve.js | 238 ++++++++++----- lib/internal/modules/esm/translators.js | 53 ++++ lib/internal/modules/esm/utils.js | 42 ++- lib/internal/modules/esm/worker.js | 36 +++ lib/internal/modules/helpers.js | 63 +++- lib/internal/modules/run_main.js | 25 +- 13 files changed, 711 insertions(+), 158 deletions(-) diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js index 79be8591bbcad2..1169b2735d4efe 100644 --- a/lib/internal/dns/promises.js +++ b/lib/internal/dns/promises.js @@ -113,6 +113,19 @@ function onlookupall(err, addresses) { } } +/** + * Creates a promise that resolves with the IP address of the given hostname. + * @param {0 | 4 | 6} family - The IP address family (4 or 6, or 0 for both). + * @param {string} hostname - The hostname to resolve. + * @param {boolean} all - Whether to resolve with all IP addresses for the hostname. + * @param {number} hints - One or more supported getaddrinfo flags (supply multiple via + * bitwise OR). + * @param {boolean} verbatim - Whether to use the hostname verbatim. + * @returns {Promise} The IP address(es) of the hostname. + * @typedef {object} DNSLookupResult + * @property {string} address - The IP address. + * @property {0 | 4 | 6} family - The IP address type. 4 for IPv4 or 6 for IPv6, or 0 (for both). + */ function createLookupPromise(family, hostname, all, hints, verbatim) { return new Promise((resolve, reject) => { if (!hostname) { @@ -154,6 +167,17 @@ function createLookupPromise(family, hostname, all, hints, verbatim) { } const validFamilies = [0, 4, 6]; +/** + * Get the IP address for a given hostname. + * @param {string} hostname - The hostname to resolve (ex. 'nodejs.org'). + * @param {object} [options] - Optional settings. + * @param {boolean} [options.all=false] - Whether to return all or just the first resolved address. + * @param {0 | 4 | 6} [options.family=0] - The record family. Must be 4, 6, or 0 (for both). + * @param {number} [options.hints] - One or more supported getaddrinfo flags (supply multiple via + * bitwise OR). + * @param {boolean} [options.verbatim=false] - Return results in same order DNS resolved them; + * otherwise IPv4 then IPv6. New code should supply `true`. + */ function lookup(hostname, options) { let hints = 0; let family = 0; diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 108d2b7ffbd5de..db31feb93ee724 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -155,6 +155,11 @@ let requireDepth = 0; let isPreloading = false; let statCache = null; +/** + * Our internal implementation of `require`. + * @param {Module} module Parent module of what is being required + * @param {string} id Specifier of the child module being imported + */ function internalRequire(module, id) { validateString(id, 'id'); if (id === '') { @@ -169,6 +174,10 @@ function internalRequire(module, id) { } } +/** + * Get a path's properties, using an in-memory cache to minimize lookups. + * @param {string} filename Absolute path to the file + */ function stat(filename) { filename = path.toNamespacedPath(filename); if (statCache !== null) { @@ -195,6 +204,12 @@ ObjectDefineProperty(Module, '_stat', { configurable: true, }); +/** + * Update the parent's children array with the child module. + * @param {Module} parent Module requiring the children + * @param {Module} child Module being required + * @param {boolean} scan Add the child to the parent's children if not already present + */ function updateChildren(parent, child, scan) { const children = parent?.children; if (children && !(scan && ArrayPrototypeIncludes(children, child))) { @@ -202,19 +217,34 @@ function updateChildren(parent, child, scan) { } } +/** + * Tell the watch mode that a module was required. + * @param {string} filename Absolute path of the module + */ function reportModuleToWatchMode(filename) { if (shouldReportRequiredModules() && process.send) { process.send({ 'watch:require': [filename] }); } } +/** + * Tell the watch mode that a module was not found. + * @param {string} basePath The absolute path that errored + * @param {string[]} extensions The extensions that were tried + */ function reportModuleNotFoundToWatchMode(basePath, extensions) { if (shouldReportRequiredModules() && process.send) { process.send({ 'watch:require': ArrayPrototypeMap(extensions, (ext) => path.resolve(`${basePath}${ext}`)) }); } } +/** @type {Map} */ const moduleParentCache = new SafeWeakMap(); +/** + * Create a new module instance. + * @param {string} id + * @param {Module} parent + */ function Module(id = '', parent) { this.id = id; this.path = path.dirname(id); @@ -237,16 +267,24 @@ function Module(id = '', parent) { this[require_private_symbol] = internalRequire; } +/** @type {Record} */ Module._cache = { __proto__: null }; +/** @type {Record} */ Module._pathCache = { __proto__: null }; +/** @type {Record void>} */ Module._extensions = { __proto__: null }; +/** @type {string[]} */ let modulePaths = []; +/** @type {string[]} */ Module.globalPaths = []; let patched = false; -// eslint-disable-next-line func-style -let wrap = function(script) { +/** + * Add the CommonJS wrapper around a module's source code. + * @param {string} script Module source code + */ +let wrap = function(script) { // eslint-disable-line func-style return Module.wrapper[0] + script + Module.wrapper[1]; }; @@ -297,10 +335,17 @@ const isPreloadingDesc = { get() { return isPreloading; } }; ObjectDefineProperty(Module.prototype, 'isPreloading', isPreloadingDesc); ObjectDefineProperty(BuiltinModule.prototype, 'isPreloading', isPreloadingDesc); +/** + * Get the parent of the current module from our cache. + */ function getModuleParent() { return moduleParentCache.get(this); } +/** + * Set the parent of the current module in our cache. + * @param {Module} value + */ function setModuleParent(value) { moduleParentCache.set(this, value); } @@ -327,7 +372,10 @@ ObjectDefineProperty(Module.prototype, 'parent', { Module._debug = pendingDeprecate(debug, 'Module._debug is deprecated.', 'DEP0077'); Module.isBuiltin = BuiltinModule.isBuiltin; -// This function is called during pre-execution, before any user code is run. +/** + * Prepare to run CommonJS code. + * This function is called during pre-execution, before any user code is run. + */ function initializeCJS() { // This need to be done at runtime in case --expose-internals is set. const builtinModules = BuiltinModule.getCanBeRequiredByUsersWithoutSchemeList(); @@ -375,6 +423,11 @@ ObjectDefineProperty(Module, '_readPackage', { configurable: true, }); +/** + * Get the nearest parent package.json file from a given path. + * Return the package.json data and the path to the package.json file, or false. + * @param {string} checkPath The path to start searching from. + */ function readPackageScope(checkPath) { const rootSeparatorIndex = StringPrototypeIndexOf(checkPath, sep); let separatorIndex; @@ -401,6 +454,13 @@ function readPackageScope(checkPath) { return false; } +/** + * Try to load a specifier as a package. + * @param {string} requestPath The path to what we are trying to load + * @param {string[]} exts File extensions to try appending in order to resolve the file + * @param {boolean} isMain Whether the file is the main entry point of the app + * @param {string} originalPath The specifier passed to `require` + */ function tryPackage(requestPath, exts, isMain, originalPath) { const pkg = _readPackage(requestPath).main; @@ -438,15 +498,20 @@ function tryPackage(requestPath, exts, isMain, originalPath) { return actual; } -// In order to minimize unnecessary lstat() calls, -// this cache is a list of known-real paths. -// Set to an empty Map to reset. +/** + * Cache for storing resolved real paths of modules. + * In order to minimize unnecessary lstat() calls, this cache is a list of known-real paths. + * Set to an empty Map to reset. + * @type {Map} + */ const realpathCache = new SafeMap(); -// Check if the file exists and is not a directory -// if using --preserve-symlinks and isMain is false, -// keep symlinks intact, otherwise resolve to the -// absolute realpath. +/** + * Check if the file exists and is not a directory if using `--preserve-symlinks` and `isMain` is false, keep symlinks + * intact, otherwise resolve to the absolute realpath. + * @param {string} requestPath The path to the file to load. + * @param {boolean} isMain Whether the file is the main module. + */ function tryFile(requestPath, isMain) { const rc = _stat(requestPath); if (rc !== 0) { return; } @@ -456,16 +521,26 @@ function tryFile(requestPath, isMain) { return toRealPath(requestPath); } + +/** + * Resolves the path of a given `require` specifier, following symlinks. + * @param {string} requestPath The `require` specifier + */ function toRealPath(requestPath) { return fs.realpathSync(requestPath, { [internalFS.realpathCacheKey]: realpathCache, }); } -// Given a path, check if the file exists with any of the set extensions -function tryExtensions(p, exts, isMain) { +/** + * Given a path, check if the file exists with any of the set extensions. + * @param {string} basePath The path and filename without extension + * @param {string[]} exts The extensions to try + * @param {boolean} isMain Whether the module is the main module + */ +function tryExtensions(basePath, exts, isMain) { for (let i = 0; i < exts.length; i++) { - const filename = tryFile(p + exts[i], isMain); + const filename = tryFile(basePath + exts[i], isMain); if (filename) { return filename; @@ -474,8 +549,10 @@ function tryExtensions(p, exts, isMain) { return false; } -// Find the longest (possibly multi-dot) extension registered in -// Module._extensions +/** + * Find the longest (possibly multi-dot) extension registered in `Module._extensions`. + * @param {string} filename The filename to find the longest registered extension for. + */ function findLongestRegisteredExtension(filename) { const name = path.basename(filename); let currentExtension; @@ -490,6 +567,10 @@ function findLongestRegisteredExtension(filename) { return '.js'; } +/** + * Tries to get the absolute file path of the parent module. + * @param {Module} parent The parent module object. + */ function trySelfParentPath(parent) { if (!parent) { return false; } @@ -504,6 +585,11 @@ function trySelfParentPath(parent) { } } +/** + * Attempt to resolve a module request using the parent module package metadata. + * @param {string} parentPath The path of the parent module + * @param {string} request The module request to resolve + */ function trySelf(parentPath, request) { if (!parentPath) { return false; } @@ -534,10 +620,18 @@ function trySelf(parentPath, request) { } } -// This only applies to requests of a specific form: -// 1. name/.* -// 2. @scope/name/.* +/** + * This only applies to requests of a specific form: + * 1. `name/.*` + * 2. `@scope/name/.*` + */ const EXPORTS_PATTERN = /^((?:@[^/\\%]+\/)?[^./\\%][^/\\%]*)(\/.*)?$/; + +/** + * Resolves the exports for a given module path and request. + * @param {string} nmPath The path to the module. + * @param {string} request The request for the module. + */ function resolveExports(nmPath, request) { // The implementation's behavior is meant to mirror resolution in ESM. const { 1: name, 2: expansion = '' } = @@ -561,9 +655,10 @@ function resolveExports(nmPath, request) { } /** - * @param {string} request a relative or absolute file path - * @param {Array} paths file system directories to search as file paths - * @param {boolean} isMain if the request is the main app entry point + * Get the absolute path to a module. + * @param {string} request Relative or absolute file path + * @param {Array} paths Folders to search as file paths + * @param {boolean} isMain Whether the request is the main app entry point * @returns {string | false} */ Module._findPath = function(request, paths, isMain) { @@ -689,11 +784,14 @@ Module._findPath = function(request, paths, isMain) { return false; }; -// 'node_modules' character codes reversed +/** `node_modules` character codes reversed */ const nmChars = [ 115, 101, 108, 117, 100, 111, 109, 95, 101, 100, 111, 110 ]; const nmLen = nmChars.length; if (isWindows) { - // 'from' is the __dirname of the module. + /** + * Get the paths to the `node_modules` folder for a given path. + * @param {string} from `__dirname` of the module + */ Module._nodeModulePaths = function(from) { // Guarantee that 'from' is absolute. from = path.resolve(from); @@ -710,6 +808,7 @@ if (isWindows) { return [from + 'node_modules']; } + /** @type {string[]} */ const paths = []; for (let i = from.length - 1, p = 0, last = from.length; i >= 0; --i) { const code = StringPrototypeCharCodeAt(from, i); @@ -741,7 +840,10 @@ if (isWindows) { return paths; }; } else { // posix - // 'from' is the __dirname of the module. + /** + * Get the paths to the `node_modules` folder for a given path. + * @param {string} from `__dirname` of the module + */ Module._nodeModulePaths = function(from) { // Guarantee that 'from' is absolute. from = path.resolve(from); @@ -754,6 +856,7 @@ if (isWindows) { // note: this approach *only* works when the path is guaranteed // to be absolute. Doing a fully-edge-case-correct path.split // that works on both Windows and Posix is non-trivial. + /** @type {string[]} */ const paths = []; for (let i = from.length - 1, p = 0, last = from.length; i >= 0; --i) { const code = StringPrototypeCharCodeAt(from, i); @@ -782,6 +885,11 @@ if (isWindows) { }; } +/** + * Get the paths for module resolution. + * @param {string} request + * @param {Module} parent + */ Module._resolveLookupPaths = function(request, parent) { if (BuiltinModule.normalizeRequirableId(request)) { debug('looking for %j in []', request); @@ -795,6 +903,7 @@ Module._resolveLookupPaths = function(request, parent) { StringPrototypeCharAt(request, 1) !== '/' && (!isWindows || StringPrototypeCharAt(request, 1) !== '\\'))) { + /** @type {string[]} */ let paths; if (parent?.paths?.length) { paths = ArrayPrototypeSlice(modulePaths); @@ -824,6 +933,10 @@ Module._resolveLookupPaths = function(request, parent) { return parentDir; }; +/** + * Emits a warning when a non-existent property of module exports is accessed inside a circular dependency. + * @param {string} prop The name of the non-existent property. + */ function emitCircularRequireWarning(prop) { process.emitWarning( `Accessing non-existent property '${String(prop)}' of module exports ` + @@ -854,6 +967,12 @@ const CircularRequirePrototypeWarningProxy = new Proxy({}, { }, }); +/** + * Returns the exports object for a module that has a circular `require`. + * If the exports object is a plain object, it is wrapped in a proxy that warns + * about circular dependencies. + * @param {Module} module The module instance + */ function getExportsForCircularRequire(module) { if (module.exports && !isProxy(module.exports) && @@ -871,13 +990,17 @@ function getExportsForCircularRequire(module) { return module.exports; } -// Check the cache for the requested file. -// 1. If a module already exists in the cache: return its exports object. -// 2. If the module is native: call -// `BuiltinModule.prototype.compileForPublicLoader()` and return the exports. -// 3. Otherwise, create a new module for the file and save it to the cache. -// Then have it load the file contents before returning its exports -// object. +/** + * Load a module from cache if it exists, otherwise create a new module instance. + * 1. If a module already exists in the cache: return its exports object. + * 2. If the module is native: call + * `BuiltinModule.prototype.compileForPublicLoader()` and return the exports. + * 3. Otherwise, create a new module for the file and save it to the cache. + * Then have it load the file contents before returning its exports object. + * @param {string} request Specifier of module to load via `require` + * @param {string} parent Absolute path of the module importing the child + * @param {boolean} isMain Whether the module is the main entry point + */ Module._load = function(request, parent, isMain) { let relResolveCacheIdentifier; if (parent) { @@ -977,6 +1100,15 @@ Module._load = function(request, parent, isMain) { return module.exports; }; +/** + * Given a `require` string and its context, get its absolute file path. + * @param {string} request The specifier to resolve + * @param {Module} parent The module containing the `require` call + * @param {boolean} isMain Whether the module is the main entry point + * @param {ResolveFilenameOptions} options Options object + * @typedef {object} ResolveFilenameOptions + * @property {string[]} paths Paths to search for modules in + */ Module._resolveFilename = function(request, parent, isMain, options) { if (BuiltinModule.normalizeRequirableId(request)) { return request; @@ -1069,6 +1201,14 @@ Module._resolveFilename = function(request, parent, isMain, options) { throw err; }; +/** + * Finishes resolving an ES module specifier into an absolute file path. + * @param {string} resolved The resolved module specifier + * @param {string} parentPath The path of the parent module + * @param {string} pkgPath The path of the package.json file + * @throws {ERR_INVALID_MODULE_SPECIFIER} If the resolved module specifier contains encoded `/` or `\\` characters + * @throws {Error} If the module cannot be found + */ function finalizeEsmResolution(resolved, parentPath, pkgPath) { const { encodedSepRegEx } = require('internal/modules/esm/resolve'); if (RegExpPrototypeExec(encodedSepRegEx, resolved) !== null) { @@ -1085,6 +1225,11 @@ function finalizeEsmResolution(resolved, parentPath, pkgPath) { throw err; } +/** + * Creates an error object for when a requested ES module cannot be found. + * @param {string} request The name of the requested module + * @param {string} [path] The path to the requested module + */ function createEsmNotFoundErr(request, path) { // eslint-disable-next-line no-restricted-syntax const err = new Error(`Cannot find module '${request}'`); @@ -1096,7 +1241,10 @@ function createEsmNotFoundErr(request, path) { return err; } -// Given a file name, pass it to the proper extension handler. +/** + * Given a file name, pass it to the proper extension handler. + * @param {string} filename The `require` specifier + */ Module.prototype.load = function(filename) { debug('load %j for module %j', filename, this.id); @@ -1124,9 +1272,12 @@ Module.prototype.load = function(filename) { } }; -// Loads a module at the given file path. Returns that module's -// `exports` property. -// Note: when using the experimental policy mechanism this function is overridden +/** + * Loads a module at the given file path. Returns that module's `exports` property. + * Note: when using the experimental policy mechanism this function is overridden. + * @param {string} id + * @throws {ERR_INVALID_ARG_TYPE} When `id` is not a string + */ Module.prototype.require = function(id) { validateString(id, 'id'); if (id === '') { @@ -1141,11 +1292,23 @@ Module.prototype.require = function(id) { } }; -// Resolved path to process.argv[1] will be lazily placed here -// (needed for setting breakpoint when called with --inspect-brk) +/** + * Resolved path to `process.argv[1]` will be lazily placed here + * (needed for setting breakpoint when called with `--inspect-brk`). + * @type {string | undefined} + */ let resolvedArgv; let hasPausedEntry = false; +/** @type {import('vm').Script} */ let Script; + +/** + * Wraps the given content in a script and runs it in a new context. + * @param {string} filename The name of the file being loaded + * @param {string} content The content of the file being loaded + * @param {Module} cjsModuleInstance The CommonJS loader instance + * @param {object} codeCache The SEA code cache + */ function wrapSafe(filename, content, cjsModuleInstance, codeCache) { if (patched) { const wrapper = Module.wrap(content); @@ -1211,10 +1374,12 @@ function wrapSafe(filename, content, cjsModuleInstance, codeCache) { } } -// Run the file contents in the correct scope or sandbox. Expose -// the correct helper variables (require, module, exports) to -// the file. -// Returns exception, if any. +/** + * Run the file contents in the correct scope or sandbox. Expose the correct helper variables (`require`, `module`, + * `exports`) to the file. Returns exception, if any. + * @param {string} content The source code of the module + * @param {string} filename The file path of the module + */ Module.prototype._compile = function(content, filename) { let moduleURL; let redirects; @@ -1269,7 +1434,11 @@ Module.prototype._compile = function(content, filename) { return result; }; -// Native extension for .js +/** + * Native handler for `.js` files. + * @param {Module} module The module to compile + * @param {string} filename The file path of the module + */ Module._extensions['.js'] = function(module, filename) { // If already analyzed the source, then it will be cached. const cached = cjsParseCache.get(module); @@ -1318,8 +1487,11 @@ Module._extensions['.js'] = function(module, filename) { module._compile(content, filename); }; - -// Native extension for .json +/** + * Native handler for `.json` files. + * @param {Module} module The module to compile + * @param {string} filename The file path of the module + */ Module._extensions['.json'] = function(module, filename) { const content = fs.readFileSync(filename, 'utf8'); @@ -1337,8 +1509,11 @@ Module._extensions['.json'] = function(module, filename) { } }; - -// Native extension for .node +/** + * Native handler for `.node` files. + * @param {Module} module The module to compile + * @param {string} filename The file path of the module + */ Module._extensions['.node'] = function(module, filename) { const manifest = policy()?.manifest; if (manifest) { @@ -1350,6 +1525,10 @@ Module._extensions['.node'] = function(module, filename) { return process.dlopen(module, path.toNamespacedPath(filename)); }; +/** + * Creates a `require` function that can be used to load modules from the specified path. + * @param {string} filename The path to the module + */ function createRequireFromPath(filename) { // Allow a directory to be passed as the filename const trailingSlash = @@ -1370,6 +1549,12 @@ function createRequireFromPath(filename) { const createRequireError = 'must be a file URL object, file URL string, or ' + 'absolute path string'; +/** + * Creates a new `require` function that can be used to load modules. + * @param {string | URL} filename The path or URL to the module context for this `require` + * @throws {ERR_INVALID_ARG_VALUE} If `filename` is not a string or URL, or if it is a relative path that cannot be + * resolved to an absolute path. + */ function createRequire(filename) { let filepath; @@ -1391,6 +1576,9 @@ function createRequire(filename) { Module.createRequire = createRequire; +/** + * Define the paths to use for resolving a module. + */ Module._initPaths = function() { const homeDir = isWindows ? process.env.USERPROFILE : safeGetenv('HOME'); const nodePath = isWindows ? process.env.NODE_PATH : safeGetenv('NODE_PATH'); @@ -1421,6 +1609,10 @@ Module._initPaths = function() { Module.globalPaths = ArrayPrototypeSlice(modulePaths); }; +/** + * Handle modules loaded via `--require`. + * @param {string[]} requests The values of `--require` + */ Module._preloadModules = function(requests) { if (!ArrayIsArray(requests)) { return; } @@ -1444,6 +1636,10 @@ Module._preloadModules = function(requests) { isPreloading = false; }; +/** + * If the user has overridden an export from a builtin module, this function can ensure that the override is used in + * both CommonJS and ES module contexts. + */ Module.syncBuiltinESMExports = function syncBuiltinESMExports() { for (const mod of BuiltinModule.map.values()) { if (BuiltinModule.canBeRequiredWithoutScheme(mod.id)) { diff --git a/lib/internal/modules/esm/create_dynamic_module.js b/lib/internal/modules/esm/create_dynamic_module.js index c8dd3c7df62f99..d4f5a85db95f77 100644 --- a/lib/internal/modules/esm/create_dynamic_module.js +++ b/lib/internal/modules/esm/create_dynamic_module.js @@ -11,12 +11,22 @@ let debug = require('internal/util/debuglog').debuglog('esm', (fn) => { debug = fn; }); +/** + * Creates an import statement for a given module path and index. + * @param {string} impt - The module path to import. + * @param {number} index - The index of the import statement. + */ function createImport(impt, index) { const imptPath = JSONStringify(impt); return `import * as $import_${index} from ${imptPath}; import.meta.imports[${imptPath}] = $import_${index};`; } +/** + * Creates an export for a given module. + * @param {string} expt - The name of the export. + * @param {number} index - The index of the export statement. + */ function createExport(expt, index) { const nameStringLit = JSONStringify(expt); return `let $export_${index}; @@ -27,6 +37,17 @@ import.meta.exports[${nameStringLit}] = { };`; } +/** + * Creates a dynamic module with the given imports, exports, URL, and evaluate function. + * @param {string[]} imports - An array of imports. + * @param {string[]} exports - An array of exports. + * @param {string} [url=''] - The URL of the module. + * @param {(reflect: DynamicModuleReflect) => void} evaluate - The function to evaluate the module. + * @typedef {object} DynamicModuleReflect + * @property {string[]} imports - The imports of the module. + * @property {string[]} exports - The exports of the module. + * @property {(cb: (reflect: DynamicModuleReflect) => void) => void} onReady - Callback to evaluate the module. + */ const createDynamicModule = (imports, exports, url = '', evaluate) => { debug('creating ESM facade for %s with exports: %j', url, exports); const source = ` @@ -38,6 +59,7 @@ import.meta.done(); const m = new ModuleWrap(`${url}`, undefined, source, 0, 0); const readyfns = new SafeSet(); + /** @type {DynamicModuleReflect} */ const reflect = { exports: { __proto__: null }, onReady: (cb) => { readyfns.add(cb); }, diff --git a/lib/internal/modules/esm/fetch_module.js b/lib/internal/modules/esm/fetch_module.js index ca5c9c83c316de..21b7456899604f 100644 --- a/lib/internal/modules/esm/fetch_module.js +++ b/lib/internal/modules/esm/fetch_module.js @@ -44,37 +44,56 @@ const cacheForGET = new SafeMap(); // [2] Creating a new agent instead of using the gloabl agent improves // performance and precludes the agent becoming tainted. +/** @type {import('https').Agent} The Cached HTTP Agent for **secure** HTTP requests. */ let HTTPSAgent; -function HTTPSGet(url, opts) { +/** + * Make a HTTPs GET request (handling agent setup if needed, caching the agent to avoid + * redudant instantiations). + * @param {Parameters[0]} input - The URI to fetch. + * @param {Parameters[1]} options - See https.get() options. + */ +function HTTPSGet(input, options) { const https = require('https'); // [1] HTTPSAgent ??= new https.Agent({ // [2] keepAlive: true, }); - return https.get(url, { + return https.get(input, { agent: HTTPSAgent, - ...opts, + ...options, }); } +/** @type {import('https').Agent} The Cached HTTP Agent for **insecure** HTTP requests. */ let HTTPAgent; -function HTTPGet(url, opts) { +/** + * Make a HTTP GET request (handling agent setup if needed, caching the agent to avoid + * redudant instantiations). + * @param {Parameters[0]} input - The URI to fetch. + * @param {Parameters[1]} options - See http.get() options. + */ +function HTTPGet(input, options) { const http = require('http'); // [1] HTTPAgent ??= new http.Agent({ // [2] keepAlive: true, }); - return http.get(url, { + return http.get(input, { agent: HTTPAgent, - ...opts, + ...options, }); } -function dnsLookup(name, opts) { +/** @type {import('../../dns/promises.js').lookup} */ +function dnsLookup(hostname, options) { // eslint-disable-next-line no-func-assign dnsLookup = require('dns/promises').lookup; - return dnsLookup(name, opts); + return dnsLookup(hostname, options); } let zlib; +/** + * Create a decompressor for the Brotli format. + * @returns {import('zlib').BrotliDecompress} + */ function createBrotliDecompress() { zlib ??= require('zlib'); // [1] // eslint-disable-next-line no-func-assign @@ -82,6 +101,10 @@ function createBrotliDecompress() { return createBrotliDecompress(); } +/** + * Create an unzip handler. + * @returns {import('zlib').Unzip} + */ function createUnzip() { zlib ??= require('zlib'); // [1] // eslint-disable-next-line no-func-assign diff --git a/lib/internal/modules/esm/handle_process_exit.js b/lib/internal/modules/esm/handle_process_exit.js index 9d6b609ef1cfc3..4689ef6bb204c0 100644 --- a/lib/internal/modules/esm/handle_process_exit.js +++ b/lib/internal/modules/esm/handle_process_exit.js @@ -2,9 +2,11 @@ const { exitCodes: { kUnfinishedTopLevelAwait } } = internalBinding('errors'); -// Handle a Promise from running code that potentially does Top-Level Await. -// In that case, it makes sense to set the exit code to a specific non-zero -// value if the main code never finishes running. +/** + * Handle a Promise from running code that potentially does Top-Level Await. + * In that case, it makes sense to set the exit code to a specific non-zero value + * if the main code never finishes running. + */ function handleProcessExit() { process.exitCode ??= kUnfinishedTopLevelAwait; } diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js index 109ec9be8aee69..0b08db7ffef7ec 100644 --- a/lib/internal/modules/esm/loader.js +++ b/lib/internal/modules/esm/loader.js @@ -28,16 +28,28 @@ const { } = require('internal/modules/esm/utils'); let defaultResolve, defaultLoad, defaultLoadSync, importMetaInitializer; +/** + * Lazy loads the module_map module and returns a new instance of ResolveCache. + * @returns {import('./module_map.js').ResolveCache')} + */ function newResolveCache() { const { ResolveCache } = require('internal/modules/esm/module_map'); return new ResolveCache(); } +/** + * Generate a load cache (to store the final result of a load-chain for a particular module). + * @returns {import('./module_map.js').LoadCache')} + */ function newLoadCache() { const { LoadCache } = require('internal/modules/esm/module_map'); return new LoadCache(); } +/** + * Lazy-load translators to avoid potentially unnecessary work at startup (ex if ESM is not used). + * @returns {import('./translators.js').Translators} + */ function getTranslators() { const { translators } = require('internal/modules/esm/translators'); return translators; diff --git a/lib/internal/modules/esm/package_config.js b/lib/internal/modules/esm/package_config.js index 4ca701d4810f74..5da47764c9de2c 100644 --- a/lib/internal/modules/esm/package_config.js +++ b/lib/internal/modules/esm/package_config.js @@ -7,8 +7,23 @@ const { URL, fileURLToPath } = require('internal/url'); const packageJsonReader = require('internal/modules/package_json_reader'); /** - * @param {URL | string} resolved - * @returns {PackageConfig} + * @typedef {object} PackageConfig + * @property {string} pjsonPath - The path to the package.json file. + * @property {boolean} exists - Whether the package.json file exists. + * @property {'none' | 'commonjs' | 'module'} type - The type of the package. + * @property {string} [name] - The name of the package. + * @property {string} [main] - The main entry point of the package. + * @property {PackageTarget} [exports] - The exports configuration of the package. + * @property {Record>} [imports] - The imports configuration of the package. + */ +/** + * @typedef {string | string[] | Record>} PackageTarget + */ + +/** + * Returns the package configuration for the given resolved URL. + * @param {URL | string} resolved - The resolved URL. + * @returns {PackageConfig} - The package configuration. */ function getPackageScopeConfig(resolved) { let packageJSONUrl = new URL('./package.json', resolved); diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js index 438004e640bf6a..0d277915b3a01f 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js @@ -67,6 +67,13 @@ const { internalModuleStat } = internalBinding('fs'); const emittedPackageWarnings = new SafeSet(); +/** + * Emits a deprecation warning for the use of a deprecated trailing slash pattern mapping in the "exports" field + * module resolution of a package. + * @param {string} match - The deprecated trailing slash pattern mapping. + * @param {string} pjsonUrl - The URL of the package.json file. + * @param {string} base - The URL of the module that imported the package. + */ function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { const pjsonPath = fileURLToPath(pjsonUrl); if (emittedPackageWarnings.has(pjsonPath + '|' + match)) { return; } @@ -83,6 +90,16 @@ function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { const doubleSlashRegEx = /[/\\][/\\]/; +/** + * Emits a deprecation warning for invalid segment in module resolution. + * @param {string} target - The target module. + * @param {string} request - The requested module. + * @param {string} match - The matched module. + * @param {string} pjsonUrl - The package.json URL. + * @param {boolean} internal - Whether the module is in the "imports" or "exports" field. + * @param {string} base - The base URL. + * @param {boolean} isTarget - Whether the target is a module. + */ function emitInvalidSegmentDeprecation(target, request, match, pjsonUrl, internal, base, isTarget) { const pjsonPath = fileURLToPath(pjsonUrl); const double = RegExpPrototypeExec(doubleSlashRegEx, isTarget ? target : request) !== null; @@ -98,11 +115,12 @@ function emitInvalidSegmentDeprecation(target, request, match, pjsonUrl, interna } /** - * @param {URL} url - * @param {URL} packageJSONUrl - * @param {string | URL | undefined} base - * @param {string} [main] - * @returns {void} + * Emits a deprecation warning if the given URL is a module and + * the package.json file does not define a "main" or "exports" field. + * @param {URL} url - The URL of the module being resolved. + * @param {URL} packageJSONUrl - The URL of the package.json file for the module. + * @param {string | URL} [base] - The base URL for the module being resolved. + * @param {string} [main] - The "main" field from the package.json file. */ function emitLegacyIndexDeprecation(url, packageJSONUrl, base, main) { const format = defaultGetFormatWithoutErrors(url); @@ -196,10 +214,15 @@ function legacyMainResolve(packageJSONUrl, packageConfig, base) { const encodedSepRegEx = /%2F|%5C/i; /** - * @param {URL} resolved - * @param {string | URL | undefined} base - * @param {boolean} preserveSymlinks - * @returns {URL | undefined} + * Finalizes the resolution of a module specifier by checking if the resolved pathname contains encoded "/" or "\\" + * characters, checking if the resolved pathname is a directory or file, and resolving any symlinks if necessary. + * @param {URL} resolved - The resolved URL object. + * @param {string | URL | undefined} base - The base URL object. + * @param {boolean} preserveSymlinks - Whether to preserve symlinks or not. + * @returns {URL} - The finalized URL object. + * @throws {ERR_INVALID_MODULE_SPECIFIER} - If the resolved pathname contains encoded "/" or "\\" characters. + * @throws {ERR_UNSUPPORTED_DIR_IMPORT} - If the resolved pathname is a directory. + * @throws {ERR_MODULE_NOT_FOUND} - If the resolved pathname is not a file. */ function finalizeResolution(resolved, base, preserveSymlinks) { if (RegExpPrototypeExec(encodedSepRegEx, resolved.pathname) !== null) { @@ -248,9 +271,11 @@ function finalizeResolution(resolved, base, preserveSymlinks) { } /** - * @param {string} specifier - * @param {URL} packageJSONUrl - * @param {string | URL | undefined} base + * Returns an error object indicating that the specified import is not defined. + * @param {string} specifier - The import specifier that is not defined. + * @param {URL} packageJSONUrl - The URL of the package.json file, or null if not available. + * @param {string | URL | undefined} base - The base URL to use for resolving relative URLs. + * @returns {ERR_PACKAGE_IMPORT_NOT_DEFINED} - The error object. */ function importNotDefined(specifier, packageJSONUrl, base) { return new ERR_PACKAGE_IMPORT_NOT_DEFINED( @@ -259,9 +284,11 @@ function importNotDefined(specifier, packageJSONUrl, base) { } /** - * @param {string} subpath - * @param {URL} packageJSONUrl - * @param {string | URL | undefined} base + * Returns an error object indicating that the specified subpath was not exported by the package. + * @param {string} subpath - The subpath that was not exported. + * @param {URL} packageJSONUrl - The URL of the package.json file. + * @param {string | URL | undefined} [base] - The base URL to use for resolving the subpath. + * @returns {ERR_PACKAGE_PATH_NOT_EXPORTED} - The error object. */ function exportsNotFound(subpath, packageJSONUrl, base) { return new ERR_PACKAGE_PATH_NOT_EXPORTED( @@ -270,12 +297,13 @@ function exportsNotFound(subpath, packageJSONUrl, base) { } /** - * - * @param {string} request - * @param {string} match - * @param {URL} packageJSONUrl - * @param {boolean} internal - * @param {string | URL | undefined} base + * Throws an error indicating that the given request is not a valid subpath match for the specified pattern. + * @param {string} request - The request that failed to match the pattern. + * @param {string} match - The pattern that the request was compared against. + * @param {URL} packageJSONUrl - The URL of the package.json file being resolved. + * @param {boolean} internal - Whether the resolution is for an "imports" or "exports" field in package.json. + * @param {string | URL | undefined} base - The base URL for the resolution. + * @throws {ERR_INVALID_MODULE_SPECIFIER} When the request is not a valid match for the pattern. */ function throwInvalidSubpath(request, match, packageJSONUrl, internal, base) { const reason = `request is not a valid match in pattern "${match}" for the "${ @@ -285,6 +313,15 @@ function throwInvalidSubpath(request, match, packageJSONUrl, internal, base) { base && fileURLToPath(base)); } +/** + * Creates an error object for an invalid package target. + * @param {string} subpath - The subpath. + * @param {import('internal/modules/esm/package_config.js').PackageTarget} target - The target. + * @param {URL} packageJSONUrl - The URL of the package.json file. + * @param {boolean} internal - Whether the package is internal. + * @param {string | URL | undefined} base - The base URL. + * @returns {ERR_INVALID_PACKAGE_TARGET} - The error object. + */ function invalidPackageTarget( subpath, target, packageJSONUrl, internal, base) { if (typeof target === 'object' && target !== null) { @@ -303,17 +340,19 @@ const invalidPackageNameRegEx = /^\.|%|\\/; const patternRegEx = /\*/g; /** - * - * @param {string} target - * @param {*} subpath - * @param {*} match - * @param {*} packageJSONUrl - * @param {*} base - * @param {*} pattern - * @param {*} internal - * @param {*} isPathMap - * @param {*} conditions - * @returns {URL} + * Resolves the package target string to a URL object. + * @param {string} target - The target string to resolve. + * @param {string} subpath - The subpath to append to the resolved URL. + * @param {RegExpMatchArray} match - The matched string array from the import statement. + * @param {string} packageJSONUrl - The URL of the package.json file. + * @param {string} base - The base URL to resolve the target against. + * @param {RegExp} pattern - The pattern to replace in the target string. + * @param {boolean} internal - Whether the target is internal to the package. + * @param {boolean} isPathMap - Whether the target is a path map. + * @param {string[]} conditions - The import conditions. + * @returns {URL} - The resolved URL object. + * @throws {ERR_INVALID_PACKAGE_TARGET} - If the target is invalid. + * @throws {ERR_INVALID_SUBPATH} - If the subpath is invalid. */ function resolvePackageTargetString( target, @@ -396,8 +435,9 @@ function resolvePackageTargetString( } /** - * @param {string} key - * @returns {boolean} + * Checks if the given key is a valid array index. + * @param {string} key - The key to check. + * @returns {boolean} - Returns `true` if the key is a valid array index, else `false`. */ function isArrayIndex(key) { const keyNum = +key; @@ -406,17 +446,17 @@ function isArrayIndex(key) { } /** - * - * @param {*} packageJSONUrl - * @param {string|[string]} target - * @param {*} subpath - * @param {*} packageSubpath - * @param {*} base - * @param {*} pattern - * @param {*} internal - * @param {*} isPathMap - * @param {*} conditions - * @returns {URL|null} + * Resolves the target of a package based on the provided parameters. + * @param {string} packageJSONUrl - The URL of the package.json file. + * @param {import('internal/modules/esm/package_config.js').PackageTarget} target - The target to resolve. + * @param {string} subpath - The subpath to resolve. + * @param {string} packageSubpath - The subpath of the package to resolve. + * @param {string} base - The base path to resolve. + * @param {RegExp} pattern - The pattern to match. + * @param {boolean} internal - Whether the package is internal. + * @param {boolean} isPathMap - Whether the package is a path map. + * @param {Set} conditions - The conditions to match. + * @returns {URL | null | undefined} - The resolved target, or null if not found, or undefined if not resolvable. */ function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) { @@ -487,11 +527,10 @@ function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, } /** - * - * @param {import('internal/modules/esm/package_config.js').Exports} exports - * @param {URL} packageJSONUrl - * @param {string | URL | undefined} base - * @returns {boolean} + * Is the given exports object using the shorthand syntax? + * @param {import('internal/modules/esm/package_config.js').PackageConfig['exports']} exports + * @param {URL} packageJSONUrl The URL of the package.json file. + * @param {string | URL | undefined} base The base URL. */ function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { if (typeof exports === 'string' || ArrayIsArray(exports)) { return true; } @@ -517,12 +556,13 @@ function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { } /** - * @param {URL} packageJSONUrl - * @param {string} packageSubpath - * @param {PackageConfig} packageConfig - * @param {string | URL | undefined} base - * @param {Set} conditions - * @returns {URL} + * Resolves the exports of a package. + * @param {URL} packageJSONUrl - The URL of the package.json file. + * @param {string} packageSubpath - The subpath of the package to resolve. + * @param {import('internal/modules/esm/package_config.js').PackageConfig} packageConfig - The package metadata. + * @param {string | URL | undefined} base - The base path to resolve from. + * @param {Set} conditions - An array of conditions to match. + * @returns {URL} - The resolved package target. */ function packageExportsResolve( packageJSONUrl, packageSubpath, packageConfig, base, conditions) { @@ -601,6 +641,13 @@ function packageExportsResolve( throw exportsNotFound(packageSubpath, packageJSONUrl, base); } +/** + * Compares two strings that may contain a wildcard character ('*') and returns a value indicating their order. + * @param {string} a - The first string to compare. + * @param {string} b - The second string to compare. + * @returns {number} - A negative number if `a` should come before `b`, a positive number if `a` should come after `b`, + * or 0 if they are equal. + */ function patternKeyCompare(a, b) { const aPatternIndex = StringPrototypeIndexOf(a, '*'); const bPatternIndex = StringPrototypeIndexOf(b, '*'); @@ -616,10 +663,13 @@ function patternKeyCompare(a, b) { } /** - * @param {string} name - * @param {string | URL | undefined} base - * @param {Set} conditions - * @returns {URL} + * Resolves the given import name for a package. + * @param {string} name - The name of the import to resolve. + * @param {string | URL | undefined} base - The base URL to resolve the import from. + * @param {Set} conditions - An object containing the import conditions. + * @throws {ERR_INVALID_MODULE_SPECIFIER} If the import name is not valid. + * @throws {ERR_PACKAGE_IMPORT_NOT_DEFINED} If the import name cannot be resolved. + * @returns {URL} The resolved import URL. */ function packageImportsResolve(name, base, conditions) { if (name === '#' || StringPrototypeStartsWith(name, '#/') || @@ -682,8 +732,8 @@ function packageImportsResolve(name, base, conditions) { } /** - * @param {URL} url - * @returns {import('internal/modules/esm/package_config.js').PackageType} + * Returns the package type for a given URL. + * @param {URL} url - The URL to get the package type for. */ function getPackageType(url) { const packageConfig = getPackageScopeConfig(url); @@ -691,9 +741,9 @@ function getPackageType(url) { } /** - * @param {string} specifier - * @param {string | URL | undefined} base - * @returns {{ packageName: string, packageSubpath: string, isScoped: boolean }} + * Parse a package name from a specifier. + * @param {string} specifier - The import specifier. + * @param {string | URL | undefined} base - The parent URL. */ function parsePackageName(specifier, base) { let separatorIndex = StringPrototypeIndexOf(specifier, '/'); @@ -730,10 +780,11 @@ function parsePackageName(specifier, base) { } /** - * @param {string} specifier - * @param {string | URL | undefined} base - * @param {Set} conditions - * @returns {resolved: URL, format? : string} + * Resolves a package specifier to a URL. + * @param {string} specifier - The package specifier to resolve. + * @param {string | URL | undefined} base - The base URL to use for resolution. + * @param {Set} conditions - An object containing the conditions for resolution. + * @returns {URL} - The resolved URL. */ function packageResolve(specifier, base, conditions) { if (BuiltinModule.canBeRequiredWithoutScheme(specifier)) { @@ -794,13 +845,17 @@ function packageResolve(specifier, base, conditions) { } /** - * @param {string} specifier - * @returns {boolean} + * Checks if a specifier is a bare specifier. + * @param {string} specifier - The specifier to check. */ function isBareSpecifier(specifier) { return specifier[0] && specifier[0] !== '/' && specifier[0] !== '.'; } +/** + * Determines whether a specifier is a relative path. + * @param {string} specifier - The specifier to check. + */ function isRelativeSpecifier(specifier) { if (specifier[0] === '.') { if (specifier.length === 1 || specifier[1] === '/') { return true; } @@ -811,6 +866,10 @@ function isRelativeSpecifier(specifier) { return false; } +/** + * Determines whether a specifier should be treated as a relative or absolute path. + * @param {string} specifier - The specifier to check. + */ function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { if (specifier === '') { return false; } if (specifier[0] === '/') { return true; } @@ -818,11 +877,11 @@ function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { } /** - * @param {string} specifier - * @param {string | URL | undefined} base - * @param {Set} conditions - * @param {boolean} preserveSymlinks - * @returns {url: URL, format?: string} + * Resolves a module specifier to a URL. + * @param {string} specifier - The module specifier to resolve. + * @param {string | URL | undefined} base - The base URL to resolve against. + * @param {Set} conditions - An object containing environment conditions. + * @param {boolean} preserveSymlinks - Whether to preserve symlinks in the resolved URL. */ function moduleResolve(specifier, base, conditions, preserveSymlinks) { const isRemote = base.protocol === 'http:' || @@ -850,10 +909,9 @@ function moduleResolve(specifier, base, conditions, preserveSymlinks) { } /** - * Try to resolve an import as a CommonJS module - * @param {string} specifier - * @param {string} parentURL - * @returns {boolean|string} + * Try to resolve an import as a CommonJS module. + * @param {string} specifier - The specifier to resolve. + * @param {string} parentURL - The base URL. */ function resolveAsCommonJS(specifier, parentURL) { try { @@ -895,7 +953,14 @@ function resolveAsCommonJS(specifier, parentURL) { } } -// TODO(@JakobJingleheimer): de-dupe `specifier` & `parsed` +/** + * Throw an error if an import is not allowed. + * TODO(@JakobJingleheimer): de-dupe `specifier` & `parsed` + * @param {string} specifier - The import specifier. + * @param {URL} parsed - The parsed URL of the import specifier. + * @param {URL} parsedParentURL - The parsed URL of the parent module. + * @throws {ERR_NETWORK_IMPORT_DISALLOWED} - If the import is disallowed. + */ function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { if (parsedParentURL) { // Avoid accessing the `protocol` property due to the lazy getters. @@ -941,6 +1006,7 @@ function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { /** * Validate user-input in `context` supplied by a custom loader. + * @param {string | URL | undefined} parentURL - The parent URL. */ function throwIfInvalidParentURL(parentURL) { if (parentURL === undefined) { @@ -951,7 +1017,15 @@ function throwIfInvalidParentURL(parentURL) { } } - +/** + * Resolves the given specifier using the provided context, which includes the parent URL and conditions. + * Throws an error if the parent URL is invalid or if the resolution is disallowed by the policy manifest. + * Otherwise, attempts to resolve the specifier and returns the resulting URL and format. + * @param {string} specifier - The specifier to resolve. + * @param {object} [context={}] - The context object containing the parent URL and conditions. + * @param {string} [context.parentURL] - The URL of the parent module. + * @param {string[]} [context.conditions] - The conditions for resolving the specifier. + */ function defaultResolve(specifier, context = {}) { let { parentURL, conditions } = context; throwIfInvalidParentURL(parentURL); diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index 62d721552ef6af..bd67593f993e07 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -18,7 +18,11 @@ const { globalThis: { WebAssembly }, } = primordials; +/** @type {import('internal/util/types')} */ let _TYPES = null; +/** + * Lazily loads and returns the internal/util/types module. + */ function lazyTypes() { if (_TYPES !== null) { return _TYPES; } return _TYPES = require('internal/util/types'); @@ -52,7 +56,13 @@ const asyncESM = require('internal/process/esm_loader'); const { emitWarningSync } = require('internal/process/warning'); const { internalCompileFunction } = require('internal/vm'); +/** @type {import('deps/cjs-module-lexer/lexer.js').parse} */ let cjsParse; +/** + * Initializes the CommonJS module lexer parser. + * If WebAssembly is available, it uses the optimized version from the dist folder. + * Otherwise, it falls back to the JavaScript version from the lexer folder. + */ async function initCJSParse() { if (typeof WebAssembly === 'undefined') { cjsParse = require('internal/deps/cjs-module-lexer/lexer').parse; @@ -73,6 +83,14 @@ exports.translators = translators; exports.enrichCJSError = enrichCJSError; let DECODER = null; +/** + * Asserts that the given body is a buffer source (either a string, array buffer, or typed array). + * Throws an error if the body is not a buffer source. + * @param {string | ArrayBufferView | ArrayBuffer} body - The body to check. + * @param {boolean} allowString - Whether or not to allow a string as a valid buffer source. + * @param {string} hookName - The name of the hook being called. + * @throws {ERR_INVALID_RETURN_PROPERTY_VALUE} If the body is not a buffer source. + */ function assertBufferSource(body, allowString, hookName) { if (allowString && typeof body === 'string') { return; @@ -89,6 +107,11 @@ function assertBufferSource(body, allowString, hookName) { ); } +/** + * Converts a buffer or buffer-like object to a string. + * @param {string | ArrayBuffer | ArrayBufferView} body - The buffer or buffer-like object to convert to a string. + * @returns {string} The resulting string. + */ function stringify(body) { if (typeof body === 'string') { return body; } assertBufferSource(body, false, 'transformSource'); @@ -97,6 +120,10 @@ function stringify(body) { return DECODER.decode(body); } +/** + * Converts a URL to a file path if the URL protocol is 'file:'. + * @param {string} url - The URL to convert. + */ function errPath(url) { const parsed = new URL(url); if (parsed.protocol === 'file:') { @@ -105,6 +132,14 @@ function errPath(url) { return url; } +/** + * Dynamically imports a module using the ESM loader. + * @param {string} specifier - The module specifier to import. + * @param {object} options - An object containing options for the import. + * @param {string} options.url - The URL of the module requesting the import. + * @param {Record} [assertions] - An object containing assertions for the import. + * @returns {Promise} The imported module. + */ async function importModuleDynamically(specifier, { url }, assertions) { return asyncESM.esmLoader.import(specifier, url, assertions); } @@ -126,6 +161,7 @@ translators.set('module', async function moduleStrategy(url, source, isMain) { }); /** + * Provide a more informative error for CommonJS imports. * @param {Error | any} err * @param {string} [content] Content of the file, if known. * @param {string} [filename] Useful only if `content` is unknown. @@ -148,6 +184,10 @@ function enrichCJSError(err, content, filename) { * This translator creates its own version of the `require` function passed into CommonJS modules. * Any monkey patches applied to the CommonJS Loader will not affect this module. * Any `require` calls in this module will load all children in the same way. + * @param {import('internal/modules/cjs/loader').Module} module - The module to load. + * @param {string} source - The source code of the module. + * @param {string} url - The URL of the module. + * @param {string} filename - The filename of the module. */ function loadCJSModule(module, source, url, filename) { let compiledWrapper; @@ -212,6 +252,14 @@ function loadCJSModule(module, source, url, filename) { // TODO: can we use a weak map instead? const cjsCache = new SafeMap(); +/** + * Creates a ModuleWrap object for a CommonJS module. + * @param {string} url - The URL of the module. + * @param {string} source - The source code of the module. + * @param {boolean} isMain - Whether the module is the main module. + * @param {typeof loadCJSModule} [loadCJS=loadCJSModule] - The function to load the CommonJS module. + * @returns {ModuleWrap} The ModuleWrap object for the CommonJS module. + */ function createCJSModuleWrap(url, source, isMain, loadCJS = loadCJSModule) { debug(`Translating CJSModule ${url}`); @@ -299,6 +347,11 @@ translators.set('commonjs', async function commonjsStrategy(url, source, }); +/** + * Pre-parses a CommonJS module's exports and re-exports. + * @param {string} filename - The filename of the module. + * @param {string} [source] - The source code of the module. + */ function cjsPreparseModuleExports(filename, source) { // TODO: Do we want to keep hitting the user mutable CJS loader here? let module = CJSModule._cache[filename]; diff --git a/lib/internal/modules/esm/utils.js b/lib/internal/modules/esm/utils.js index 98578438302445..a540f7c2d61fd1 100644 --- a/lib/internal/modules/esm/utils.js +++ b/lib/internal/modules/esm/utils.js @@ -29,18 +29,28 @@ const { const assert = require('internal/assert'); let defaultConditions; +/** + * Returns the default conditions for ES module loading. + */ function getDefaultConditions() { assert(defaultConditions !== undefined); return defaultConditions; } +/** @type {Set} */ let defaultConditionsSet; +/** + * Returns the default conditions for ES module loading, as a Set. + */ function getDefaultConditionsSet() { assert(defaultConditionsSet !== undefined); return defaultConditionsSet; } -// This function is called during pre-execution, before any user code is run. +/** + * Initializes the default conditions for ESM module loading. + * This function is called during pre-execution, before any user code is run. + */ function initializeDefaultConditions() { const userConditions = getOptionValue('--conditions'); const noAddons = getOptionValue('--no-addons'); @@ -123,7 +133,11 @@ function registerModule(referrer, registry) { moduleRegistries.set(idSymbol, registry); } -// The native callback +/** + * Defines the `import.meta` object for a given module. + * @param {symbol} symbol - Reference to the module. + * @param {Record} meta - The import.meta object to initialize. + */ function initializeImportMetaObject(symbol, meta) { if (moduleRegistries.has(symbol)) { const { initializeImportMeta, callbackReferrer } = moduleRegistries.get(symbol); @@ -133,7 +147,14 @@ function initializeImportMetaObject(symbol, meta) { } } -// The native callback +/** + * Asynchronously imports a module dynamically using a callback function. The native callback. + * @param {symbol} symbol - Reference to the module. + * @param {string} specifier - The module specifier string. + * @param {Record} assertions - The import assertions object. + * @returns {Promise} - The imported module object. + * @throws {ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING} - If the callback function is missing. + */ async function importModuleDynamicallyCallback(symbol, specifier, assertions) { if (moduleRegistries.has(symbol)) { const { importModuleDynamically, callbackReferrer } = moduleRegistries.get(symbol); @@ -144,9 +165,13 @@ async function importModuleDynamicallyCallback(symbol, specifier, assertions) { throw new ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING(); } -// This is configured during pre-execution. Specifically it's set to true for -// the loader worker in internal/main/worker_thread.js. let _isLoaderWorker = false; +/** + * Initializes handling of ES modules. + * This is configured during pre-execution. Specifically it's set to true for + * the loader worker in internal/main/worker_thread.js. + * @param {boolean} [isLoaderWorker=false] - A boolean indicating whether the loader is a worker or not. + */ function initializeESM(isLoaderWorker = false) { _isLoaderWorker = isLoaderWorker; initializeDefaultConditions(); @@ -156,10 +181,17 @@ function initializeESM(isLoaderWorker = false) { setImportModuleDynamicallyCallback(importModuleDynamicallyCallback); } +/** + * Determine whether the current process is a loader worker. + * @returns {boolean} Whether the current process is a loader worker. + */ function isLoaderWorker() { return _isLoaderWorker; } +/** + * Register module customization hooks. + */ async function initializeHooks() { const customLoaderURLs = getOptionValue('--experimental-loader'); diff --git a/lib/internal/modules/esm/worker.js b/lib/internal/modules/esm/worker.js index 44a290467b76d0..7b295973abe7a4 100644 --- a/lib/internal/modules/esm/worker.js +++ b/lib/internal/modules/esm/worker.js @@ -32,6 +32,11 @@ const { const { initializeHooks } = require('internal/modules/esm/utils'); +/** + * Transfers an ArrayBuffer, TypedArray, or DataView to a worker thread. + * @param {boolean} hasError - Whether an error occurred during transfer. + * @param {ArrayBuffer | TypedArray | DataView} source - The data to transfer. + */ function transferArrayBuffer(hasError, source) { if (hasError || source == null) { return; } if (isArrayBuffer(source)) { return [source]; } @@ -39,6 +44,11 @@ function transferArrayBuffer(hasError, source) { if (isDataView(source)) { return [DataViewPrototypeGetBuffer(source)]; } } +/** + * Wraps a message with a status and body, and serializes the body if necessary. + * @param {string} status - The status of the message. + * @param {unknown} body - The body of the message. + */ function wrapMessage(status, body) { if (status === 'success' || body === null || (typeof body !== 'object' && @@ -65,6 +75,14 @@ function wrapMessage(status, body) { }; } +/** + * Initializes a worker thread for a customized module loader. + * @param {SharedArrayBuffer} lock - The lock used to synchronize communication between the worker and the main thread. + * @param {MessagePort} syncCommPort - The message port used for synchronous communication between the worker and the + * main thread. + * @param {(err: Error, origin?: string) => void} errorHandler - The function to use for uncaught exceptions. + * @returns {Promise} A promise that resolves when the worker thread has been initialized. + */ async function customizedModuleWorker(lock, syncCommPort, errorHandler) { let hooks, preloadScripts, initializationError; let hasInitializationError = false; @@ -107,6 +125,9 @@ async function customizedModuleWorker(lock, syncCommPort, errorHandler) { AtomicsNotify(lock, WORKER_TO_MAIN_THREAD_NOTIFICATION); let immediate; + /** + * Checks for messages on the syncCommPort and handles them asynchronously. + */ function checkForMessages() { immediate = setImmediate(checkForMessages).unref(); // We need to let the event loop tick a few times to give the main thread a chance to send @@ -140,6 +161,13 @@ async function customizedModuleWorker(lock, syncCommPort, errorHandler) { setImmediate(() => {}); }); + /** + * Handles incoming messages from the main thread or other workers. + * @param {object} options - The options object. + * @param {string} options.method - The name of the hook. + * @param {Array} options.args - The arguments to pass to the method. + * @param {MessagePort} options.port - The message port to use for communication. + */ async function handleMessage({ method, args, port }) { // Each potential exception needs to be caught individually so that the correct error is sent to // the main thread. @@ -198,11 +226,19 @@ async function customizedModuleWorker(lock, syncCommPort, errorHandler) { } /** + * Initializes a worker thread for a module with customized hooks. * ! Run everything possible within this function so errors get reported. + * @param {{lock: SharedArrayBuffer}} workerData - The lock used to synchronize with the main thread. + * @param {MessagePort} syncCommPort - The communication port used to communicate with the main thread. */ module.exports = function setupModuleWorker(workerData, syncCommPort) { const lock = new Int32Array(workerData.lock); + /** + * Handles errors that occur in the worker thread. + * @param {Error} err - The error that occurred. + * @param {string} [origin='unhandledRejection'] - The origin of the error. + */ function errorHandler(err, origin = 'unhandledRejection') { AtomicsAdd(lock, WORKER_TO_MAIN_THREAD_NOTIFICATION, 1); AtomicsNotify(lock, WORKER_TO_MAIN_THREAD_NOTIFICATION); diff --git a/lib/internal/modules/helpers.js b/lib/internal/modules/helpers.js index 307a34cb09b512..cc32e95c4eb413 100644 --- a/lib/internal/modules/helpers.js +++ b/lib/internal/modules/helpers.js @@ -37,7 +37,13 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => { debug = fn; }); +/** @typedef {import('internal/modules/cjs/loader.js').Module} Module */ + +/** @type {Set} */ let cjsConditions; +/** + * Define the conditions that apply to the CommonJS loader. + */ function initializeCjsConditions() { const userConditions = getOptionValue('--conditions'); const noAddons = getOptionValue('--no-addons'); @@ -51,6 +57,9 @@ function initializeCjsConditions() { ]); } +/** + * Get the conditions that apply to the CommonJS loader. + */ function getCjsConditions() { if (cjsConditions === undefined) { initializeCjsConditions(); @@ -58,27 +67,45 @@ function getCjsConditions() { return cjsConditions; } -function loadBuiltinModule(filename, request) { - if (!BuiltinModule.canBeRequiredByUsers(filename)) { +/** + * Provide one of Node.js' public modules to user code. + * @param {string} id - The identifier/specifier of the builtin module to load + * @param {string} request - The module requiring or importing the builtin module + */ +function loadBuiltinModule(id, request) { + if (!BuiltinModule.canBeRequiredByUsers(id)) { return; } - const mod = BuiltinModule.map.get(filename); + /** @type {import('internal/bootstrap/realm.js').BuiltinModule} */ + const mod = BuiltinModule.map.get(id); debug('load built-in module %s', request); // compileForPublicLoader() throws if canBeRequiredByUsers is false: mod.compileForPublicLoader(); return mod; } +/** @type {Module} */ let $Module = null; +/** + * Import the Module class on first use. + */ function lazyModule() { $Module = $Module || require('internal/modules/cjs/loader').Module; return $Module; } -// Invoke with makeRequireFunction(module) where |module| is the Module object -// to use as the context for the require() function. -// Use redirects to set up a mapping from a policy and restrict dependencies +/** + * Invoke with `makeRequireFunction(module)` where `module` is the `Module` object to use as the context for the + * `require()` function. + * Use redirects to set up a mapping from a policy and restrict dependencies. + */ const urlToFileCache = new SafeMap(); +/** + * Create the module-scoped `require` function to pass into CommonJS modules. + * @param {Module} mod - The module to create the `require` function for. + * @param {ReturnType} redirects + * @typedef {(specifier: string) => unknown} RequireFunction + */ function makeRequireFunction(mod, redirects) { // lazy due to cycle const Module = lazyModule(); @@ -86,6 +113,7 @@ function makeRequireFunction(mod, redirects) { throw new ERR_INVALID_ARG_TYPE('mod', 'Module', mod); } + /** @type {RequireFunction} */ let require; if (redirects) { const id = mod.filename || mod.id; @@ -131,6 +159,11 @@ function makeRequireFunction(mod, redirects) { }; } + /** + * The `resolve` method that gets attached to module-scope `require`. + * @param {string} request + * @param {Parameters[3]} options + */ function resolve(request, options) { validateString(request, 'request'); return Module._resolveFilename(request, mod, false, options); @@ -138,6 +171,10 @@ function makeRequireFunction(mod, redirects) { require.resolve = resolve; + /** + * The `paths` method that gets attached to module-scope `require`. + * @param {string} request + */ function paths(request) { validateString(request, 'request'); return Module._resolveLookupPaths(request, mod); @@ -159,6 +196,7 @@ function makeRequireFunction(mod, redirects) { * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) * because the buffer-to-string conversion in `fs.readFileSync()` * translates it to FEFF, the UTF-16 BOM. + * @param {string} content */ function stripBOM(content) { if (StringPrototypeCharCodeAt(content) === 0xFEFF) { @@ -167,6 +205,11 @@ function stripBOM(content) { return content; } +/** + * Add built-in modules to a global or REPL scope object. + * @param {Record} object - The object such as `globalThis` to add the built-in modules to. + * @param {string} dummyModuleName - The label representing the set of built-in modules to add. + */ function addBuiltinLibsToObject(object, dummyModuleName) { // Make built-in modules available directly (loaded lazily). const Module = require('internal/modules/cjs/loader').Module; @@ -227,9 +270,8 @@ function addBuiltinLibsToObject(object, dummyModuleName) { } /** - * + * If a referrer is an URL instance or absolute path, convert it into an URL string. * @param {string | URL} referrer - * @returns {string} */ function normalizeReferrerURL(referrer) { if (typeof referrer === 'string' && path.isAbsolute(referrer)) { @@ -238,7 +280,10 @@ function normalizeReferrerURL(referrer) { return new URL(referrer).href; } -// For error messages only - used to check if ESM syntax is in use. +/** + * For error messages only, check if ESM syntax is in use. + * @param {string} code + */ function hasEsmSyntax(code) { debug('Checking for ESM syntax'); const parser = require('internal/deps/acorn/acorn/dist/acorn').Parser; diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index 7636d27f3aee71..ac1ffef0412b17 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -7,6 +7,10 @@ const { const { getOptionValue } = require('internal/options'); const path = require('path'); +/** + * Get the absolute path to the main entry point. + * @param {string} main Entry point path + */ function resolveMainPath(main) { // Note extension resolution for the main entry point can be deprecated in a // future major. @@ -23,6 +27,10 @@ function resolveMainPath(main) { return mainPath; } +/** + * Determine whether the main entry point should be loaded through the ESM Loader. + * @param {string} mainPath Absolute path to the main entry point + */ function shouldUseESMLoader(mainPath) { /** * @type {string[]} userLoaders A list of custom loaders registered by the user @@ -43,6 +51,10 @@ function shouldUseESMLoader(mainPath) { return pkg && pkg.data.type === 'module'; } +/** + * Run the main entry point through the ESM Loader. + * @param {string} mainPath Absolute path to the main entry point + */ function runMainESM(mainPath) { const { loadESM } = require('internal/process/esm_loader'); const { pathToFileURL } = require('internal/url'); @@ -54,6 +66,10 @@ function runMainESM(mainPath) { })); } +/** + * Handle process exit events around the main entry point promise. + * @param {Promise} promise Main entry point promise + */ async function handleMainPromise(promise) { const { handleProcessExit, @@ -66,9 +82,12 @@ async function handleMainPromise(promise) { } } -// For backwards compatibility, we have to run a bunch of -// monkey-patchable code that belongs to the CJS loader (exposed by -// `require('module')`) even when the entry point is ESM. +/** + * Parse the CLI main entry point string and run it. + * For backwards compatibility, we have to run a bunch of monkey-patchable code that belongs to the CJS loader (exposed + * by `require('module')`) even when the entry point is ESM. + * @param {string} main CLI main entry point string + */ function executeUserEntryPoint(main = process.argv[1]) { const resolvedMain = resolveMainPath(main); const useESMLoader = shouldUseESMLoader(resolvedMain); From 27558c4314671c99a627f50f81fb5f9ae450c6d9 Mon Sep 17 00:00:00 2001 From: Moshe Atlow Date: Thu, 21 Sep 2023 09:17:23 +0300 Subject: [PATCH 012/232] test_runner: catch reporter errors PR-URL: https://github.com/nodejs/node/pull/49646 Fixes: https://github.com/nodejs/node/issues/48937 Reviewed-By: Chemi Atlow Reviewed-By: Benjamin Gruenbaum Reviewed-By: Colin Ihrig --- lib/internal/test_runner/harness.js | 10 ++++++++- lib/internal/test_runner/utils.js | 8 ++++--- .../custom_reporters/throwing-async.js | 8 +++++++ .../test-runner/custom_reporters/throwing.js | 6 ++++++ test/parallel/test-runner-reporters.js | 21 +++++++++++++++++++ 5 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/test-runner/custom_reporters/throwing-async.js create mode 100644 test/fixtures/test-runner/custom_reporters/throwing.js diff --git a/lib/internal/test_runner/harness.js b/lib/internal/test_runner/harness.js index 357347627fcc2b..2f18b0bcf091ac 100644 --- a/lib/internal/test_runner/harness.js +++ b/lib/internal/test_runner/harness.js @@ -21,12 +21,15 @@ const { kEmptyObject } = require('internal/util'); const { kCancelledByParent, Test, Suite } = require('internal/test_runner/test'); const { parseCommandLine, + reporterScope, setupTestReporters, } = require('internal/test_runner/utils'); const { bigint: hrtime } = process.hrtime; const testResources = new SafeMap(); +testResources.set(reporterScope.asyncId(), reporterScope); + function createTestTree(options = kEmptyObject) { return setup(new Test({ __proto__: null, ...options, name: '' })); } @@ -40,9 +43,14 @@ function createProcessEventHandler(eventName, rootTest) { throw err; } - // Check if this error is coming from a test. If it is, fail the test. const test = testResources.get(executionAsyncId()); + // Check if this error is coming from a reporter. If it is, throw it. + if (test === reporterScope) { + throw err; + } + + // Check if this error is coming from a test. If it is, fail the test. if (!test || test.finished) { // If the test is already finished or the resource that created the error // is not mapped to a Test, report this as a top level diagnostic. diff --git a/lib/internal/test_runner/utils.js b/lib/internal/test_runner/utils.js index ba1b4f0fa10869..6b2620601e41ef 100644 --- a/lib/internal/test_runner/utils.js +++ b/lib/internal/test_runner/utils.js @@ -20,6 +20,7 @@ const { StringPrototypeSlice, } = primordials; +const { AsyncResource } = require('async_hooks'); const { basename, relative } = require('path'); const { createWriteStream } = require('fs'); const { pathToFileURL } = require('internal/url'); @@ -169,15 +170,15 @@ async function getReportersMap(reporters, destinations, rootTest) { }); } - -async function setupTestReporters(rootTest) { +const reporterScope = new AsyncResource('TestReporterScope'); +const setupTestReporters = reporterScope.bind(async (rootTest) => { const { reporters, destinations } = parseCommandLine(); const reportersMap = await getReportersMap(reporters, destinations, rootTest); for (let i = 0; i < reportersMap.length; i++) { const { reporter, destination } = reportersMap[i]; compose(rootTest.reporter, reporter).pipe(destination); } -} +}); let globalTestOptions; @@ -424,6 +425,7 @@ module.exports = { isSupportedFileType, isTestFailureError, parseCommandLine, + reporterScope, setupTestReporters, getCoverageReport, }; diff --git a/test/fixtures/test-runner/custom_reporters/throwing-async.js b/test/fixtures/test-runner/custom_reporters/throwing-async.js new file mode 100644 index 00000000000000..b24a632e697e4f --- /dev/null +++ b/test/fixtures/test-runner/custom_reporters/throwing-async.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = async function * customReporter() { + yield 'Going to throw an error\n'; + setImmediate(() => { + throw new Error('Reporting error'); + }); +}; diff --git a/test/fixtures/test-runner/custom_reporters/throwing.js b/test/fixtures/test-runner/custom_reporters/throwing.js new file mode 100644 index 00000000000000..8d04901c773ac8 --- /dev/null +++ b/test/fixtures/test-runner/custom_reporters/throwing.js @@ -0,0 +1,6 @@ +'use strict'; + +module.exports = async function * customReporter() { + yield 'Going to throw an error\n'; + throw new Error('Reporting error'); +}; diff --git a/test/parallel/test-runner-reporters.js b/test/parallel/test-runner-reporters.js index c7c883286c70c0..bb831491366dfc 100644 --- a/test/parallel/test-runner-reporters.js +++ b/test/parallel/test-runner-reporters.js @@ -134,4 +134,25 @@ describe('node:test reporters', { concurrency: true }, () => { assert.strictEqual(child.stdout.toString(), ''); assert.match(child.stderr.toString(), /ERR_INVALID_ARG_TYPE/); }); + + it('should throw when reporter errors', async () => { + const child = spawnSync(process.execPath, + ['--test', '--test-reporter', fixtures.fileURL('test-runner/custom_reporters/throwing.js'), + fixtures.path('test-runner/default-behavior/index.test.js')]); + assert.strictEqual(child.status, 7); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stdout.toString(), 'Going to throw an error\n'); + assert.match(child.stderr.toString(), /Error: Reporting error\r?\n\s+at customReporter/); + }); + + it('should throw when reporter errors asynchronously', async () => { + const child = spawnSync(process.execPath, + ['--test', '--test-reporter', + fixtures.fileURL('test-runner/custom_reporters/throwing-async.js'), + fixtures.path('test-runner/default-behavior/index.test.js')]); + assert.strictEqual(child.status, 7); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stdout.toString(), 'Going to throw an error\n'); + assert.match(child.stderr.toString(), /Emitted 'error' event on Duplex instance/); + }); }); From 393fd5b7c920325a40c74f9b992d099b99fd3fce Mon Sep 17 00:00:00 2001 From: Yiyun Lei Date: Thu, 21 Sep 2023 18:14:34 -0400 Subject: [PATCH 013/232] test: migrate message error tests from Python to JS Migrate the remaining error tests in the `test/message` folder from Python to JS. Fixes: https://github.com/nodejs/node/issues/47707 PR-URL: https://github.com/nodejs/node/pull/49721 Reviewed-By: Moshe Atlow Reviewed-By: Chemi Atlow --- .../errors}/core_line_numbers.js | 2 +- .../errors/core_line_numbers.snapshot} | 4 +-- .../errors}/if-error-has-good-stack.js | 2 +- .../errors/if-error-has-good-stack.snapshot} | 2 +- .../promise_unhandled_warn_with_error.js | 2 +- ...promise_unhandled_warn_with_error.snapshot | 10 +++++++ .../test-no-extra-info-on-fatal-exception.js | 2 +- ...-no-extra-info-on-fatal-exception.snapshot | 6 +++++ .../errors}/throw_error_with_getter_throw.js | 2 +- .../throw_error_with_getter_throw.snapshot | 8 ++++++ .../errors}/throw_null.js | 2 +- test/fixtures/errors/throw_null.snapshot | 8 ++++++ .../errors}/throw_undefined.js | 2 +- test/fixtures/errors/throw_undefined.snapshot | 8 ++++++ .../errors}/timeout_throw.js | 2 +- test/fixtures/errors/timeout_throw.snapshot | 10 +++++++ .../undefined_reference_in_new_context.js | 2 +- ...ndefined_reference_in_new_context.snapshot | 13 ++++++++++ .../unhandled_promise_trace_warnings.js | 2 +- .../unhandled_promise_trace_warnings.snapshot | 26 +++++++++++++++++++ .../promise_unhandled_warn_with_error.out | 10 ------- .../test-no-extra-info-on-fatal-exception.out | 6 ----- .../message/throw_error_with_getter_throw.out | 8 ------ test/message/throw_null.out | 8 ------ test/message/throw_undefined.out | 8 ------ test/message/timeout_throw.out | 9 ------- .../undefined_reference_in_new_context.out | 13 ---------- .../unhandled_promise_trace_warnings.out | 26 ------------------- test/parallel/test-node-output-errors.mjs | 10 +++++++ 29 files changed, 112 insertions(+), 101 deletions(-) rename test/{message => fixtures/errors}/core_line_numbers.js (95%) rename test/{message/core_line_numbers.out => fixtures/errors/core_line_numbers.snapshot} (54%) rename test/{message => fixtures/errors}/if-error-has-good-stack.js (93%) rename test/{message/if-error-has-good-stack.out => fixtures/errors/if-error-has-good-stack.snapshot} (94%) rename test/{message => fixtures/errors}/promise_unhandled_warn_with_error.js (88%) create mode 100644 test/fixtures/errors/promise_unhandled_warn_with_error.snapshot rename test/{message => fixtures/errors}/test-no-extra-info-on-fatal-exception.js (81%) create mode 100644 test/fixtures/errors/test-no-extra-info-on-fatal-exception.snapshot rename test/{message => fixtures/errors}/throw_error_with_getter_throw.js (88%) create mode 100644 test/fixtures/errors/throw_error_with_getter_throw.snapshot rename test/{message => fixtures/errors}/throw_null.js (97%) create mode 100644 test/fixtures/errors/throw_null.snapshot rename test/{message => fixtures/errors}/throw_undefined.js (97%) create mode 100644 test/fixtures/errors/throw_undefined.snapshot rename test/{message => fixtures/errors}/timeout_throw.js (98%) create mode 100644 test/fixtures/errors/timeout_throw.snapshot rename test/{message => fixtures/errors}/undefined_reference_in_new_context.js (98%) create mode 100644 test/fixtures/errors/undefined_reference_in_new_context.snapshot rename test/{message => fixtures/errors}/unhandled_promise_trace_warnings.js (86%) create mode 100644 test/fixtures/errors/unhandled_promise_trace_warnings.snapshot delete mode 100644 test/message/promise_unhandled_warn_with_error.out delete mode 100644 test/message/test-no-extra-info-on-fatal-exception.out delete mode 100644 test/message/throw_error_with_getter_throw.out delete mode 100644 test/message/throw_null.out delete mode 100644 test/message/throw_undefined.out delete mode 100644 test/message/timeout_throw.out delete mode 100644 test/message/undefined_reference_in_new_context.out delete mode 100644 test/message/unhandled_promise_trace_warnings.out diff --git a/test/message/core_line_numbers.js b/test/fixtures/errors/core_line_numbers.js similarity index 95% rename from test/message/core_line_numbers.js rename to test/fixtures/errors/core_line_numbers.js index 585a6042652df1..5482a21bae9a1f 100644 --- a/test/message/core_line_numbers.js +++ b/test/fixtures/errors/core_line_numbers.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +require('../../common'); Error.stackTraceLimit = 3; const punycode = require('punycode'); diff --git a/test/message/core_line_numbers.out b/test/fixtures/errors/core_line_numbers.snapshot similarity index 54% rename from test/message/core_line_numbers.out rename to test/fixtures/errors/core_line_numbers.snapshot index ee439cac2f4354..3bebfdf04ca15f 100644 --- a/test/message/core_line_numbers.out +++ b/test/fixtures/errors/core_line_numbers.snapshot @@ -4,7 +4,7 @@ node:punycode:52 RangeError: Invalid input at error (node:punycode:52:8) - at Object.decode (node:punycode:*:*) - at Object. (*test*message*core_line_numbers.js:*:*) + at Object.decode (node:punycode:245:5) + at Object. (*core_line_numbers.js:13:10) Node.js * diff --git a/test/message/if-error-has-good-stack.js b/test/fixtures/errors/if-error-has-good-stack.js similarity index 93% rename from test/message/if-error-has-good-stack.js rename to test/fixtures/errors/if-error-has-good-stack.js index 4f529d3e5d17ff..85c127c4e24c54 100644 --- a/test/message/if-error-has-good-stack.js +++ b/test/fixtures/errors/if-error-has-good-stack.js @@ -1,6 +1,6 @@ 'use strict'; -require('../common'); +require('../../common'); Error.stackTraceLimit = 4; const assert = require('assert'); diff --git a/test/message/if-error-has-good-stack.out b/test/fixtures/errors/if-error-has-good-stack.snapshot similarity index 94% rename from test/message/if-error-has-good-stack.out rename to test/fixtures/errors/if-error-has-good-stack.snapshot index e394127bd4c473..9296b25f10b7c6 100644 --- a/test/message/if-error-has-good-stack.out +++ b/test/fixtures/errors/if-error-has-good-stack.snapshot @@ -3,7 +3,7 @@ node:assert:* ^ AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error - at z (*if-error-has-good-stack.js:*:* + at z (*if-error-has-good-stack.js:*:*) at y (*if-error-has-good-stack.js:*:*) at x (*if-error-has-good-stack.js:*:*) at Object. (*if-error-has-good-stack.js:*:*) diff --git a/test/message/promise_unhandled_warn_with_error.js b/test/fixtures/errors/promise_unhandled_warn_with_error.js similarity index 88% rename from test/message/promise_unhandled_warn_with_error.js rename to test/fixtures/errors/promise_unhandled_warn_with_error.js index e07f52039101a3..b71757a259f04a 100644 --- a/test/message/promise_unhandled_warn_with_error.js +++ b/test/fixtures/errors/promise_unhandled_warn_with_error.js @@ -1,7 +1,7 @@ // Flags: --unhandled-rejections=warn-with-error-code 'use strict'; -require('../common'); +require('../../common'); const assert = require('assert'); Promise.reject(new Error('alas')); diff --git a/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot b/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot new file mode 100644 index 00000000000000..d7f1aa2f72007f --- /dev/null +++ b/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot @@ -0,0 +1,10 @@ +(node:*) UnhandledPromiseRejectionWarning: Error: alas + at * + at * + at * + at * + at * + at * + at * +(Use `node --trace-warnings ...` to show where the warning was created) +(node:*) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https:*nodejs.org*api*cli.html#cli_unhandled_rejections_mode). (rejection id: 1) diff --git a/test/message/test-no-extra-info-on-fatal-exception.js b/test/fixtures/errors/test-no-extra-info-on-fatal-exception.js similarity index 81% rename from test/message/test-no-extra-info-on-fatal-exception.js rename to test/fixtures/errors/test-no-extra-info-on-fatal-exception.js index dbc61b0f2382e0..d72a7a22cd727e 100644 --- a/test/message/test-no-extra-info-on-fatal-exception.js +++ b/test/fixtures/errors/test-no-extra-info-on-fatal-exception.js @@ -1,7 +1,7 @@ // Flags: --no-extra-info-on-fatal-exception 'use strict'; -require('../common'); +require('../../common'); Error.stackTraceLimit = 1; throw new Error('foo'); diff --git a/test/fixtures/errors/test-no-extra-info-on-fatal-exception.snapshot b/test/fixtures/errors/test-no-extra-info-on-fatal-exception.snapshot new file mode 100644 index 00000000000000..26e096170b3fbd --- /dev/null +++ b/test/fixtures/errors/test-no-extra-info-on-fatal-exception.snapshot @@ -0,0 +1,6 @@ +*test-no-extra-info-on-fatal-exception.js:7 +throw new Error('foo'); +^ + +Error: foo + at Object. (*test-no-extra-info-on-fatal-exception.js:7:7) diff --git a/test/message/throw_error_with_getter_throw.js b/test/fixtures/errors/throw_error_with_getter_throw.js similarity index 88% rename from test/message/throw_error_with_getter_throw.js rename to test/fixtures/errors/throw_error_with_getter_throw.js index a807ff3e2b6504..0f38a9493dc7c3 100644 --- a/test/message/throw_error_with_getter_throw.js +++ b/test/fixtures/errors/throw_error_with_getter_throw.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +require('../../common'); throw { // eslint-disable-line no-throw-literal get stack() { throw new Error('weird throw but ok'); diff --git a/test/fixtures/errors/throw_error_with_getter_throw.snapshot b/test/fixtures/errors/throw_error_with_getter_throw.snapshot new file mode 100644 index 00000000000000..30bbb336a22aaf --- /dev/null +++ b/test/fixtures/errors/throw_error_with_getter_throw.snapshot @@ -0,0 +1,8 @@ + +*throw_error_with_getter_throw.js:* +throw { * eslint-disable-line no-throw-literal +^ +[object Object] +(Use `node --trace-uncaught ...` to show where the exception was thrown) + +Node.js * diff --git a/test/message/throw_null.js b/test/fixtures/errors/throw_null.js similarity index 97% rename from test/message/throw_null.js rename to test/fixtures/errors/throw_null.js index fb233d1db56704..d8fc14ba784488 100644 --- a/test/message/throw_null.js +++ b/test/fixtures/errors/throw_null.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +require('../../common'); // eslint-disable-next-line no-throw-literal throw null; diff --git a/test/fixtures/errors/throw_null.snapshot b/test/fixtures/errors/throw_null.snapshot new file mode 100644 index 00000000000000..88494ec6832205 --- /dev/null +++ b/test/fixtures/errors/throw_null.snapshot @@ -0,0 +1,8 @@ + +*throw_null.js:* +throw null; +^ +null +(Use `node --trace-uncaught ...` to show where the exception was thrown) + +Node.js * diff --git a/test/message/throw_undefined.js b/test/fixtures/errors/throw_undefined.js similarity index 97% rename from test/message/throw_undefined.js rename to test/fixtures/errors/throw_undefined.js index a89aaf2ee2da59..8c486a7ff4c470 100644 --- a/test/message/throw_undefined.js +++ b/test/fixtures/errors/throw_undefined.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +require('../../common'); // eslint-disable-next-line no-throw-literal throw undefined; diff --git a/test/fixtures/errors/throw_undefined.snapshot b/test/fixtures/errors/throw_undefined.snapshot new file mode 100644 index 00000000000000..baae7384453373 --- /dev/null +++ b/test/fixtures/errors/throw_undefined.snapshot @@ -0,0 +1,8 @@ + +*throw_undefined.js:* +throw undefined; +^ +undefined +(Use `node --trace-uncaught ...` to show where the exception was thrown) + +Node.js * diff --git a/test/message/timeout_throw.js b/test/fixtures/errors/timeout_throw.js similarity index 98% rename from test/message/timeout_throw.js rename to test/fixtures/errors/timeout_throw.js index 9bcbd85b5036e2..bd4130479b48c6 100644 --- a/test/message/timeout_throw.js +++ b/test/fixtures/errors/timeout_throw.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +require('../../common'); setTimeout(function() { // eslint-disable-next-line no-undef,no-unused-expressions diff --git a/test/fixtures/errors/timeout_throw.snapshot b/test/fixtures/errors/timeout_throw.snapshot new file mode 100644 index 00000000000000..ddbb221c27ca3a --- /dev/null +++ b/test/fixtures/errors/timeout_throw.snapshot @@ -0,0 +1,10 @@ +*timeout_throw.js:* + undefined_reference_error_maker; + ^ + +ReferenceError: undefined_reference_error_maker is not defined + at Timeout._onTimeout (*timeout_throw.js:*:*) + at listOnTimeout (node:internal*timers:*:*) + at process.processTimers (node:internal*timers:*:*) + +Node.js * diff --git a/test/message/undefined_reference_in_new_context.js b/test/fixtures/errors/undefined_reference_in_new_context.js similarity index 98% rename from test/message/undefined_reference_in_new_context.js rename to test/fixtures/errors/undefined_reference_in_new_context.js index 29a67632f8f7dd..baa45de11ecef7 100644 --- a/test/message/undefined_reference_in_new_context.js +++ b/test/fixtures/errors/undefined_reference_in_new_context.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +require('../../common'); const vm = require('vm'); console.error('before'); diff --git a/test/fixtures/errors/undefined_reference_in_new_context.snapshot b/test/fixtures/errors/undefined_reference_in_new_context.snapshot new file mode 100644 index 00000000000000..798306c282bfd1 --- /dev/null +++ b/test/fixtures/errors/undefined_reference_in_new_context.snapshot @@ -0,0 +1,13 @@ +before +evalmachine.:* +Error.stackTraceLimit = 5; foo.bar = 5; + ^ + +ReferenceError: foo is not defined + at evalmachine.:*:* + at Script.runInContext (node:vm:*:*) + at Script.runInNewContext (node:vm:*:*) + at Object.runInNewContext (node:vm:*:*) + at Object. (*undefined_reference_in_new_context.js:*:*) + +Node.js * diff --git a/test/message/unhandled_promise_trace_warnings.js b/test/fixtures/errors/unhandled_promise_trace_warnings.js similarity index 86% rename from test/message/unhandled_promise_trace_warnings.js rename to test/fixtures/errors/unhandled_promise_trace_warnings.js index 66c1f39e5de091..53c5315a2dabfd 100644 --- a/test/message/unhandled_promise_trace_warnings.js +++ b/test/fixtures/errors/unhandled_promise_trace_warnings.js @@ -1,5 +1,5 @@ // Flags: --trace-warnings --unhandled-rejections=warn 'use strict'; -require('../common'); +require('../../common'); const p = Promise.reject(new Error('This was rejected')); setImmediate(() => p.catch(() => {})); diff --git a/test/fixtures/errors/unhandled_promise_trace_warnings.snapshot b/test/fixtures/errors/unhandled_promise_trace_warnings.snapshot new file mode 100644 index 00000000000000..1ed082d0736851 --- /dev/null +++ b/test/fixtures/errors/unhandled_promise_trace_warnings.snapshot @@ -0,0 +1,26 @@ +(node:*) UnhandledPromiseRejectionWarning: Error: This was rejected + at * + at * + at * + at * + at * + at * + at * + at * + at * + at * +(node:*) Error: This was rejected + at * + at * + at * + at * + at * + at * + at * +(node:*) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1) + at * + at * + at Promise.then () + at Promise.catch () + at * + at * diff --git a/test/message/promise_unhandled_warn_with_error.out b/test/message/promise_unhandled_warn_with_error.out deleted file mode 100644 index 66c98c57f71717..00000000000000 --- a/test/message/promise_unhandled_warn_with_error.out +++ /dev/null @@ -1,10 +0,0 @@ -*UnhandledPromiseRejectionWarning: Error: alas - at *promise_unhandled_warn_with_error.js:*:* - at * - at * - at * - at * - at * - at * -(Use `* --trace-warnings ...` to show where the warning was created) -*UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) \ No newline at end of file diff --git a/test/message/test-no-extra-info-on-fatal-exception.out b/test/message/test-no-extra-info-on-fatal-exception.out deleted file mode 100644 index d26573344cc41a..00000000000000 --- a/test/message/test-no-extra-info-on-fatal-exception.out +++ /dev/null @@ -1,6 +0,0 @@ -*:7 -throw new Error('foo'); -^ - -Error: foo - at Object. (*:7:7) diff --git a/test/message/throw_error_with_getter_throw.out b/test/message/throw_error_with_getter_throw.out deleted file mode 100644 index 565acfe9e6bf06..00000000000000 --- a/test/message/throw_error_with_getter_throw.out +++ /dev/null @@ -1,8 +0,0 @@ - -*:3 -throw { // eslint-disable-line no-throw-literal -^ -[object Object] -(Use `* --trace-uncaught ...` to show where the exception was thrown) - -Node.js * diff --git a/test/message/throw_null.out b/test/message/throw_null.out deleted file mode 100644 index 0fe2a49d050b18..00000000000000 --- a/test/message/throw_null.out +++ /dev/null @@ -1,8 +0,0 @@ - -*test*message*throw_null.js:* -throw null; -^ -null -(Use `* --trace-uncaught ...` to show where the exception was thrown) - -Node.js * diff --git a/test/message/throw_undefined.out b/test/message/throw_undefined.out deleted file mode 100644 index 56b0cac4259d6d..00000000000000 --- a/test/message/throw_undefined.out +++ /dev/null @@ -1,8 +0,0 @@ - -*test*message*throw_undefined.js:* -throw undefined; -^ -undefined -(Use `* --trace-uncaught ...` to show where the exception was thrown) - -Node.js * diff --git a/test/message/timeout_throw.out b/test/message/timeout_throw.out deleted file mode 100644 index 83b861caa7ca29..00000000000000 --- a/test/message/timeout_throw.out +++ /dev/null @@ -1,9 +0,0 @@ -*test*message*timeout_throw.js:* - undefined_reference_error_maker; - ^ -ReferenceError: undefined_reference_error_maker is not defined - at Timeout._onTimeout (*test*message*timeout_throw.js:*:*) - at listOnTimeout (node:internal/timers:*:*) - at process.processTimers (node:internal/timers:*:*) - -Node.js * diff --git a/test/message/undefined_reference_in_new_context.out b/test/message/undefined_reference_in_new_context.out deleted file mode 100644 index 8d8228bd902950..00000000000000 --- a/test/message/undefined_reference_in_new_context.out +++ /dev/null @@ -1,13 +0,0 @@ -before -evalmachine.:1 -Error.stackTraceLimit = 5; foo.bar = 5; - ^ - -ReferenceError: foo is not defined - at evalmachine.:*:* - at Script.runInContext (node:vm:*) - at Script.runInNewContext (node:vm:*) - at Object.runInNewContext (node:vm:*) - at Object. (*test*message*undefined_reference_in_new_context.js:*) - -Node.js * diff --git a/test/message/unhandled_promise_trace_warnings.out b/test/message/unhandled_promise_trace_warnings.out deleted file mode 100644 index a8717d0e13d1e4..00000000000000 --- a/test/message/unhandled_promise_trace_warnings.out +++ /dev/null @@ -1,26 +0,0 @@ -(node:*) UnhandledPromiseRejectionWarning: Error: This was rejected - at * (*test*message*unhandled_promise_trace_warnings.js:*) - at * - at * - at * - at * - at * - at * - at * - at * - at * -(node:*) Error: This was rejected - at * (*test*message*unhandled_promise_trace_warnings.js:*) - at * - at * - at * - at * - at * - at * -(node:*) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1) - at handledRejection (node:internal/process/promises:*) - at promiseRejectHandler (node:internal/process/promises:*) - at Promise.then * - at Promise.catch * - at Immediate. (*test*message*unhandled_promise_trace_warnings.js:*) - at * diff --git a/test/parallel/test-node-output-errors.mjs b/test/parallel/test-node-output-errors.mjs index 5be920627ad70e..c0acee2bfc8c12 100644 --- a/test/parallel/test-node-output-errors.mjs +++ b/test/parallel/test-node-output-errors.mjs @@ -49,7 +49,9 @@ describe('errors output', { concurrency: true }, () => { { name: 'errors/async_error_microtask_main.js' }, { name: 'errors/async_error_nexttick_main.js' }, { name: 'errors/async_error_sync_main.js' }, + { name: 'errors/core_line_numbers.js' }, { name: 'errors/async_error_sync_esm.mjs' }, + { name: 'errors/test-no-extra-info-on-fatal-exception.js' }, { name: 'errors/error_aggregateTwoErrors.js', transform: errTransform }, { name: 'errors/error_exit.js', transform: errTransform }, { name: 'errors/error_with_nul.js', transform: errTransform }, @@ -57,10 +59,18 @@ describe('errors output', { concurrency: true }, () => { { name: 'errors/events_unhandled_error_nexttick.js', transform: errTransform }, { name: 'errors/events_unhandled_error_sameline.js', transform: errTransform }, { name: 'errors/events_unhandled_error_subclass.js', transform: errTransform }, + { name: 'errors/if-error-has-good-stack.js', transform: errTransform }, { name: 'errors/throw_custom_error.js', transform: errTransform }, + { name: 'errors/throw_error_with_getter_throw.js', transform: errTransform }, { name: 'errors/throw_in_line_with_tabs.js', transform: errTransform }, { name: 'errors/throw_non_error.js', transform: errTransform }, + { name: 'errors/throw_null.js', transform: errTransform }, + { name: 'errors/throw_undefined.js', transform: errTransform }, + { name: 'errors/timeout_throw.js', transform: errTransform }, + { name: 'errors/undefined_reference_in_new_context.js', transform: errTransform }, { name: 'errors/promise_always_throw_unhandled.js', transform: promiseTransform }, + { name: 'errors/promise_unhandled_warn_with_error.js', transform: promiseTransform }, + { name: 'errors/unhandled_promise_trace_warnings.js', transform: promiseTransform }, { skip: skipForceColors, name: 'errors/force_colors.js', transform: forceColorsTransform, env: { FORCE_COLOR: 1 } }, ]; From 7ca1228be8aba9a1810125f8d1c3202064b6440f Mon Sep 17 00:00:00 2001 From: Abdirahim Musse <33973272+abmusse@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:26:01 +0000 Subject: [PATCH 014/232] deps: V8: cherry-pick 8ec2651fbdd8 Original commit message: fix: EmbeddedTargetOs on IBM i with Python 3.9 For some context, Python 3.9 on IBM i returns "os400" for sys.platform instead of "aix". We used to build with Python 3.6 which returned "aix" as the platform When attempting to build Node.js with python 3.9 on IBM i we run into a build error. Ref: https://github.com/nodejs/node/pull/48056 Ref: https://github.com/nodejs/node/pull/48056#issuecomment-1553719508 I'm not quite sure where target_os is being passed down to the function ToEmbeddedTargetOs. It seems as though target_os is being generated from sys.platform or similar call from python as we started running into this issue after building with Python 3.9. This PR supersedes initial changes proposed in: https://chromium-review.googlesource.com/c/v8/v8/+/4259330 This PR contains the minimal changes to successfully build Node.js (builds v8 as an internal dep) on IBM i with Python 3.9. Change-Id: I32d43197bce994a72a0d85091e91f80eeea4482d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4846413 Commit-Queue: Jakob Linke Reviewed-by: Michael Achenbach Reviewed-by: Jakob Linke Cr-Commit-Position: refs/heads/main@{#89981} Refs: https://github.com/v8/v8/commit/8ec2651fbdd8adf054397ee832031c9ff7aa16ac PR-URL: https://github.com/nodejs/node/pull/49862 Reviewed-By: Richard Lau Reviewed-By: Michael Dawson --- common.gypi | 2 +- .../snapshot/embedded/platform-embedded-file-writer-base.cc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index d783c7f970237a..519ddcd28e6524 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.16', + 'v8_embedder_string': '-node.17', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc b/deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc index e0602edc7e1c6a..e4ca7bfdacb11c 100644 --- a/deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc +++ b/deps/v8/src/snapshot/embedded/platform-embedded-file-writer-base.cc @@ -130,7 +130,8 @@ EmbeddedTargetOs ToEmbeddedTargetOs(const char* s) { } std::string string(s); - if (string == "aix") { + // Python 3.9+ on IBM i returns os400 as sys.platform instead of aix + if (string == "aix" || string == "os400") { return EmbeddedTargetOs::kAIX; } else if (string == "chromeos") { return EmbeddedTargetOs::kChromeOS; From c71e548b65d912a976b65ea10ad6ee7d66b6e997 Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Thu, 28 Sep 2023 11:57:38 +0200 Subject: [PATCH 015/232] errors: improve performance of instantiation PR-URL: https://github.com/nodejs/node/pull/49654 Reviewed-By: Matteo Collina Reviewed-By: Yagiz Nizipli Reviewed-By: Stephen Belanger Reviewed-By: Joyee Cheung Reviewed-By: Raz Luvaton --- benchmark/{misc => error}/hidestackframes.js | 0 benchmark/error/node-error-instantiation.js | 66 ++++++++ benchmark/error/node-error-stack.js | 62 ++++++++ benchmark/error/node-error.js | 21 --- lib/internal/crypto/hkdf.js | 2 +- lib/internal/errors.js | 150 +++++++++++++----- lib/internal/fs/streams.js | 4 +- lib/internal/modules/esm/hooks.js | 4 +- lib/internal/url.js | 2 +- lib/stream.js | 4 +- test/common/index.js | 3 +- .../output/junit_reporter.snapshot | 102 ++++++------ .../test-runner/output/spec_reporter.snapshot | 8 +- .../output/spec_reporter_cli.snapshot | 8 +- test/message/internal_assert.out | 1 - test/message/internal_assert_fail.out | 1 - test/parallel/test-repl-top-level-await.js | 4 +- 17 files changed, 305 insertions(+), 137 deletions(-) rename benchmark/{misc => error}/hidestackframes.js (100%) create mode 100644 benchmark/error/node-error-instantiation.js create mode 100644 benchmark/error/node-error-stack.js delete mode 100644 benchmark/error/node-error.js diff --git a/benchmark/misc/hidestackframes.js b/benchmark/error/hidestackframes.js similarity index 100% rename from benchmark/misc/hidestackframes.js rename to benchmark/error/hidestackframes.js diff --git a/benchmark/error/node-error-instantiation.js b/benchmark/error/node-error-instantiation.js new file mode 100644 index 00000000000000..333087b9195894 --- /dev/null +++ b/benchmark/error/node-error-instantiation.js @@ -0,0 +1,66 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e6], + code: [ + 'built-in', + 'ERR_HTTP2_STREAM_SELF_DEPENDENCY', + 'ERR_INVALID_STATE', + 'ERR_INVALID_URL', + ], + stackTraceLimit: [0, 10], +}, { + flags: ['--expose-internals'], +}); + +function getErrorFactory(code) { + const { + ERR_HTTP2_STREAM_SELF_DEPENDENCY, + ERR_INVALID_STATE, + ERR_INVALID_URL, + } = require('internal/errors').codes; + + switch (code) { + case 'built-in': + return (n) => new Error(); + case 'ERR_HTTP2_STREAM_SELF_DEPENDENCY': + return (n) => new ERR_HTTP2_STREAM_SELF_DEPENDENCY(); + case 'ERR_INVALID_STATE': + return (n) => new ERR_INVALID_STATE(n + ''); + case 'ERR_INVALID_URL': + return (n) => new ERR_INVALID_URL({ input: n + '' }); + default: + throw new Error(`${code} not supported`); + } +} + +function main({ n, code, stackTraceLimit }) { + const getError = getErrorFactory(code); + + Error.stackTraceLimit = stackTraceLimit; + + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(getError(i)); + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = getError(index); + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'object'); + } +} diff --git a/benchmark/error/node-error-stack.js b/benchmark/error/node-error-stack.js new file mode 100644 index 00000000000000..06319ccd17105f --- /dev/null +++ b/benchmark/error/node-error-stack.js @@ -0,0 +1,62 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e6], + code: [ + 'built-in', + 'ERR_HTTP2_STREAM_SELF_DEPENDENCY', + 'ERR_INVALID_STATE', + ], + stackTraceLimit: [0, 10], +}, { + flags: ['--expose-internals'], +}); + +function getErrorStackFactory(code) { + const { + ERR_INVALID_STATE, + ERR_HTTP2_STREAM_SELF_DEPENDENCY, + } = require('internal/errors').codes; + + switch (code) { + case 'built-in': + return (n) => new Error().stack; + case 'ERR_HTTP2_STREAM_SELF_DEPENDENCY': + return (n) => new ERR_HTTP2_STREAM_SELF_DEPENDENCY().stack; + case 'ERR_INVALID_STATE': + return (n) => new ERR_INVALID_STATE(n + '').stack; + default: + throw new Error(`${code} not supported`); + } +} + +function main({ n, code, stackTraceLimit }) { + const getStack = getErrorStackFactory(code); + + Error.stackTraceLimit = stackTraceLimit; + + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(getStack(i)); + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = getStack(index); + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'string'); + } +} diff --git a/benchmark/error/node-error.js b/benchmark/error/node-error.js deleted file mode 100644 index 3a0aef91f04a06..00000000000000 --- a/benchmark/error/node-error.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -const common = require('../common'); - -const bench = common.createBenchmark(main, { - n: [1e7], -}, { - flags: ['--expose-internals'], -}); - -function main({ n }) { - const { - codes: { - ERR_INVALID_STATE, - }, - } = require('internal/errors'); - bench.start(); - for (let i = 0; i < n; ++i) - new ERR_INVALID_STATE.TypeError('test'); - bench.end(n); -} diff --git a/lib/internal/crypto/hkdf.js b/lib/internal/crypto/hkdf.js index 7f0fe5534ee843..cf3c39e8d9da5a 100644 --- a/lib/internal/crypto/hkdf.js +++ b/lib/internal/crypto/hkdf.js @@ -57,7 +57,7 @@ const validateParameters = hideStackFrames((hash, key, salt, info, length) => { validateInteger(length, 'length', 0, kMaxLength); if (info.byteLength > 1024) { - throw ERR_OUT_OF_RANGE( + throw new ERR_OUT_OF_RANGE( 'info', 'must not contain more than 1024 bytes', info.byteLength); diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 4e332e1ce18d16..6bba8ec095e86e 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -175,9 +175,10 @@ const aggregateErrors = hideStackFrames((errors, message, code) => { return err; }); +const assert = require('internal/assert'); + // Lazily loaded let util; -let assert; let internalUtil = null; function lazyInternalUtil() { @@ -371,42 +372,103 @@ function makeSystemErrorWithCode(key) { } function makeNodeErrorWithCode(Base, key) { - return function NodeError(...args) { - const limit = Error.stackTraceLimit; - if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; - const error = new Base(); - // Reset the limit and setting the name property. - if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; - const message = getMessage(key, args, error); - ObjectDefineProperties(error, { - [kIsNodeError]: { - __proto__: null, - value: true, - enumerable: false, - writable: false, - configurable: true, - }, - message: { - __proto__: null, - value: message, - enumerable: false, - writable: true, - configurable: true, - }, - toString: { - __proto__: null, - value() { + const msg = messages.get(key); + const expectedLength = typeof msg !== 'string' ? -1 : getExpectedArgumentLength(msg); + + switch (expectedLength) { + case 0: { + class NodeError extends Base { + code = key; + + constructor(...args) { + assert( + args.length === 0, + `Code: ${key}; The provided arguments length (${args.length}) does not ` + + `match the required ones (${expectedLength}).`, + ); + super(msg); + } + + // This is a workaround for wpt tests that expect that the error + // constructor has a `name` property of the base class. + get ['constructor']() { + return Base; + } + + get [kIsNodeError]() { + return true; + } + + toString() { return `${this.name} [${key}]: ${this.message}`; - }, - enumerable: false, - writable: true, - configurable: true, - }, - }); - captureLargerStackTrace(error); - error.code = key; - return error; - }; + } + } + return NodeError; + } + case -1: { + class NodeError extends Base { + code = key; + + constructor(...args) { + super(); + ObjectDefineProperty(this, 'message', { + __proto__: null, + value: getMessage(key, args, this), + enumerable: false, + writable: true, + configurable: true, + }); + } + + // This is a workaround for wpt tests that expect that the error + // constructor has a `name` property of the base class. + get ['constructor']() { + return Base; + } + + get [kIsNodeError]() { + return true; + } + + toString() { + return `${this.name} [${key}]: ${this.message}`; + } + } + return NodeError; + } + default: { + + class NodeError extends Base { + code = key; + + constructor(...args) { + assert( + args.length === expectedLength, + `Code: ${key}; The provided arguments length (${args.length}) does not ` + + `match the required ones (${expectedLength}).`, + ); + + ArrayPrototypeUnshift(args, msg); + super(ReflectApply(lazyInternalUtilInspect().format, null, args)); + } + + // This is a workaround for wpt tests that expect that the error + // constructor has a `name` property of the base class. + get ['constructor']() { + return Base; + } + + get [kIsNodeError]() { + return true; + } + + toString() { + return `${this.name} [${key}]: ${this.message}`; + } + } + return NodeError; + } + } } /** @@ -443,11 +505,16 @@ function E(sym, val, def, ...otherClasses) { codes[sym] = def; } +function getExpectedArgumentLength(msg) { + let expectedLength = 0; + const regex = /%[dfijoOs]/g; + while (RegExpPrototypeExec(regex, msg) !== null) expectedLength++; + return expectedLength; +} + function getMessage(key, args, self) { const msg = messages.get(key); - assert ??= require('internal/assert'); - if (typeof msg === 'function') { assert( msg.length <= args.length, // Default options do not count. @@ -457,9 +524,7 @@ function getMessage(key, args, self) { return ReflectApply(msg, self, args); } - const regex = /%[dfijoOs]/g; - let expectedLength = 0; - while (RegExpPrototypeExec(regex, msg) !== null) expectedLength++; + const expectedLength = getExpectedArgumentLength(msg); assert( expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + @@ -1476,8 +1541,7 @@ E('ERR_NETWORK_IMPORT_DISALLOWED', "import of '%s' by %s is not supported: %s", Error); E('ERR_NOT_BUILDING_SNAPSHOT', 'Operation cannot be invoked when not building startup snapshot', Error); -E('ERR_NOT_SUPPORTED_IN_SNAPSHOT', - '%s is not supported in startup snapshot', Error); +E('ERR_NOT_SUPPORTED_IN_SNAPSHOT', '%s is not supported in startup snapshot', Error); E('ERR_NO_CRYPTO', 'Node.js is not compiled with OpenSSL crypto support', Error); E('ERR_NO_ICU', diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js index c317f3b9202af9..6a213693342b94 100644 --- a/lib/internal/fs/streams.js +++ b/lib/internal/fs/streams.js @@ -143,8 +143,8 @@ function importFd(stream, options) { return options.fd.fd; } - throw ERR_INVALID_ARG_TYPE('options.fd', - ['number', 'FileHandle'], options.fd); + throw new ERR_INVALID_ARG_TYPE('options.fd', + ['number', 'FileHandle'], options.fd); } function ReadStream(path, options) { diff --git a/lib/internal/modules/esm/hooks.js b/lib/internal/modules/esm/hooks.js index 8ae5f49c0d13ba..2965945d4e1515 100644 --- a/lib/internal/modules/esm/hooks.js +++ b/lib/internal/modules/esm/hooks.js @@ -471,7 +471,7 @@ class Hooks { !isAnyArrayBuffer(source) && !isArrayBufferView(source) ) { - throw ERR_INVALID_RETURN_PROPERTY_VALUE( + throw new ERR_INVALID_RETURN_PROPERTY_VALUE( 'a string, an ArrayBuffer, or a TypedArray', hookErrIdentifier, 'source', @@ -662,7 +662,7 @@ class HooksProxy { if (status === 'error') { if (body == null || typeof body !== 'object') { throw body; } if (body.serializationFailed || body.serialized == null) { - throw ERR_WORKER_UNSERIALIZABLE_ERROR(); + throw new ERR_WORKER_UNSERIALIZABLE_ERROR(); } // eslint-disable-next-line no-restricted-syntax diff --git a/lib/internal/url.js b/lib/internal/url.js index 8d5926e8fcb9df..a58f96aee7cc42 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -847,7 +847,7 @@ class URL { set href(value) { value = `${value}`; const href = bindingUrl.update(this.#context.href, updateActions.kHref, value); - if (!href) { throw ERR_INVALID_URL(value); } + if (!href) { throw new ERR_INVALID_URL(value); } this.#updateContext(href); } diff --git a/lib/stream.js b/lib/stream.js index 9a09401e7d016a..cdbc1fe0380694 100644 --- a/lib/stream.js +++ b/lib/stream.js @@ -64,7 +64,7 @@ for (const key of ObjectKeys(streamReturningOperators)) { const op = streamReturningOperators[key]; function fn(...args) { if (new.target) { - throw ERR_ILLEGAL_CONSTRUCTOR(); + throw new ERR_ILLEGAL_CONSTRUCTOR(); } return Stream.Readable.from(ReflectApply(op, this, args)); } @@ -82,7 +82,7 @@ for (const key of ObjectKeys(promiseReturningOperators)) { const op = promiseReturningOperators[key]; function fn(...args) { if (new.target) { - throw ERR_ILLEGAL_CONSTRUCTOR(); + throw new ERR_ILLEGAL_CONSTRUCTOR(); } return ReflectApply(op, this, args); } diff --git a/test/common/index.js b/test/common/index.js index 2a8ef3a3b183cc..b1d9747b3373f9 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -712,9 +712,8 @@ function expectsError(validator, exact) { assert.fail(`Expected one argument, got ${inspect(args)}`); } const error = args.pop(); - const descriptor = Object.getOwnPropertyDescriptor(error, 'message'); // The error message should be non-enumerable - assert.strictEqual(descriptor.enumerable, false); + assert.strictEqual(Object.prototype.propertyIsEnumerable.call(error, 'message'), false); assert.throws(() => { throw error; }, validator); return true; diff --git a/test/fixtures/test-runner/output/junit_reporter.snapshot b/test/fixtures/test-runner/output/junit_reporter.snapshot index 6516387e7ed582..e0a4c331dd5c22 100644 --- a/test/fixtures/test-runner/output/junit_reporter.snapshot +++ b/test/fixtures/test-runner/output/junit_reporter.snapshot @@ -10,6 +10,7 @@ [Error [ERR_TEST_FAILURE]: thrown from sync fail todo] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from sync fail todo * @@ -18,8 +19,7 @@ * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -27,6 +27,7 @@ [Error [ERR_TEST_FAILURE]: thrown from sync fail todo with message] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from sync fail todo with message * @@ -35,8 +36,7 @@ * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -51,6 +51,7 @@ [Error [ERR_TEST_FAILURE]: thrown from sync throw fail] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from sync throw fail * @@ -59,8 +60,7 @@ * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -71,6 +71,7 @@ [Error [ERR_TEST_FAILURE]: thrown from async throw fail] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from async throw fail * @@ -79,8 +80,7 @@ * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -88,6 +88,7 @@ [Error [ERR_TEST_FAILURE]: thrown from async throw fail] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from async throw fail * @@ -96,8 +97,7 @@ * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -107,6 +107,7 @@ true !== false ] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: @@ -124,8 +125,7 @@ true !== false actual: true, expected: false, operator: 'strictEqual' - }, - code: 'ERR_TEST_FAILURE' + } } @@ -133,6 +133,7 @@ true !== false [Error [ERR_TEST_FAILURE]: rejected from reject fail] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: rejected from reject fail * @@ -141,8 +142,7 @@ true !== false * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -156,6 +156,7 @@ true !== false Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail * { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from subtest sync throw fail * @@ -167,8 +168,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail * * * - at Test.postRun (node:internal/test_runner/test:715:19), - code: 'ERR_TEST_FAILURE' + * } @@ -176,7 +176,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail -[Error [ERR_TEST_FAILURE]: Symbol(thrown symbol from sync throw non-error fail)] { failureType: 'testCodeFailure', cause: Symbol(thrown symbol from sync throw non-error fail), code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: Symbol(thrown symbol from sync throw non-error fail)] { code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Symbol(thrown symbol from sync throw non-error fail) } @@ -188,7 +188,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail -[Error [ERR_TEST_FAILURE]: test did not finish before its parent and was cancelled] { failureType: 'cancelledByParent', cause: 'test did not finish before its parent and was cancelled', code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: test did not finish before its parent and was cancelled] { code: 'ERR_TEST_FAILURE', failureType: 'cancelledByParent', cause: 'test did not finish before its parent and was cancelled' } @@ -205,6 +205,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail [Error [ERR_TEST_FAILURE]: this should be executed] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: this should be executed * @@ -213,8 +214,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -236,11 +236,11 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail [Error [ERR_TEST_FAILURE]: callback failure] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: callback failure * - at process.processImmediate (node:internal/timers:478:21), - code: 'ERR_TEST_FAILURE' + * } @@ -249,12 +249,13 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail -[Error [ERR_TEST_FAILURE]: passed a callback but also returned a Promise] { failureType: 'callbackAndPromisePresent', cause: 'passed a callback but also returned a Promise', code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: passed a callback but also returned a Promise] { code: 'ERR_TEST_FAILURE', failureType: 'callbackAndPromisePresent', cause: 'passed a callback but also returned a Promise' } [Error [ERR_TEST_FAILURE]: thrown from callback throw] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from callback throw * @@ -263,8 +264,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail * * * - at async Test.processPendingSubtests (node:internal/test_runner/test:374:7), - code: 'ERR_TEST_FAILURE' + * } @@ -273,9 +273,9 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fail Error [ERR_TEST_FAILURE]: callback invoked multiple times * * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' } @@ -284,14 +284,14 @@ Error [ERR_TEST_FAILURE]: callback invoked multiple times Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'uncaughtException', cause: Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' - }, - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' + } } @@ -299,11 +299,11 @@ Error [ERR_TEST_FAILURE]: callback invoked multiple times Error [ERR_TEST_FAILURE]: thrown from callback async throw * { + code: 'ERR_TEST_FAILURE', failureType: 'uncaughtException', cause: Error: thrown from callback async throw * - at process.processImmediate (node:internal/timers:478:21), - code: 'ERR_TEST_FAILURE' + * } @@ -319,7 +319,7 @@ Error [ERR_TEST_FAILURE]: thrown from callback async throw -[Error [ERR_TEST_FAILURE]: customized] { failureType: 'testCodeFailure', cause: customized, code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: customized] { code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: customized } @@ -328,9 +328,9 @@ Error [ERR_TEST_FAILURE]: thrown from callback async throw foo: 1, [Symbol(nodejs.util.inspect.custom)]: [Function: [nodejs.util.inspect.custom]] }] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', - cause: { foo: 1, [Symbol(nodejs.util.inspect.custom)]: [Function: [nodejs.util.inspect.custom]] }, - code: 'ERR_TEST_FAILURE' + cause: { foo: 1, [Symbol(nodejs.util.inspect.custom)]: [Function: [nodejs.util.inspect.custom]] } } @@ -339,6 +339,7 @@ Error [ERR_TEST_FAILURE]: thrown from callback async throw Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at first * { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from subtest sync throw fails at first * @@ -350,8 +351,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at first * * * - at Test.postRun (node:internal/test_runner/test:715:19), - code: 'ERR_TEST_FAILURE' + * } @@ -359,6 +359,7 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at first Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at second * { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: Error: thrown from subtest sync throw fails at second * @@ -370,20 +371,19 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at second * * * - at async Test.run (node:internal/test_runner/test:632:9), - code: 'ERR_TEST_FAILURE' + * } -[Error [ERR_TEST_FAILURE]: test timed out after 5ms] { failureType: 'testTimeoutFailure', cause: 'test timed out after 5ms', code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: test timed out after 5ms] { code: 'ERR_TEST_FAILURE', failureType: 'testTimeoutFailure', cause: 'test timed out after 5ms' } -[Error [ERR_TEST_FAILURE]: test timed out after 5ms] { failureType: 'testTimeoutFailure', cause: 'test timed out after 5ms', code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: test timed out after 5ms] { code: 'ERR_TEST_FAILURE', failureType: 'testTimeoutFailure', cause: 'test timed out after 5ms' } @@ -391,19 +391,19 @@ Error [ERR_TEST_FAILURE]: thrown from subtest sync throw fails at second -[Error [ERR_TEST_FAILURE]: custom error] { failureType: 'testCodeFailure', cause: 'custom error', code: 'ERR_TEST_FAILURE' } +[Error [ERR_TEST_FAILURE]: custom error] { code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: 'custom error' } Error [ERR_TEST_FAILURE]: foo * { + code: 'ERR_TEST_FAILURE', failureType: 'uncaughtException', cause: Error: foo * * - at process.processTimers (node:internal/timers:514:7), - code: 'ERR_TEST_FAILURE' + * } @@ -411,12 +411,12 @@ Error [ERR_TEST_FAILURE]: foo Error [ERR_TEST_FAILURE]: bar * { + code: 'ERR_TEST_FAILURE', failureType: 'unhandledRejection', cause: Error: bar * * - at process.processTimers (node:internal/timers:514:7), - code: 'ERR_TEST_FAILURE' + * } @@ -435,6 +435,7 @@ should loosely deep-equal bar: 2, c: [Circular *1] }] { + code: 'ERR_TEST_FAILURE', failureType: 'testCodeFailure', cause: AssertionError [ERR_ASSERTION]: Expected values to be loosely deep-equal: @@ -455,8 +456,7 @@ should loosely deep-equal actual: [Object], expected: [Object], operator: 'deepEqual' - }, - code: 'ERR_TEST_FAILURE' + } } @@ -464,9 +464,9 @@ should loosely deep-equal Error [ERR_TEST_FAILURE]: test could not be started because its parent finished * { + code: 'ERR_TEST_FAILURE', failureType: 'parentAlreadyFinished', - cause: 'test could not be started because its parent finished', - code: 'ERR_TEST_FAILURE' + cause: 'test could not be started because its parent finished' } diff --git a/test/fixtures/test-runner/output/spec_reporter.snapshot b/test/fixtures/test-runner/output/spec_reporter.snapshot index 5dc05d5b43c12d..8f14dc7fc9bade 100644 --- a/test/fixtures/test-runner/output/spec_reporter.snapshot +++ b/test/fixtures/test-runner/output/spec_reporter.snapshot @@ -178,9 +178,9 @@ callback called twice in future tick (*ms) Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' } callback async throw (*ms) @@ -449,9 +449,9 @@ callback called twice in future tick (*ms) Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' } * diff --git a/test/fixtures/test-runner/output/spec_reporter_cli.snapshot b/test/fixtures/test-runner/output/spec_reporter_cli.snapshot index 25c22069c3b8e7..a9b70560d905b2 100644 --- a/test/fixtures/test-runner/output/spec_reporter_cli.snapshot +++ b/test/fixtures/test-runner/output/spec_reporter_cli.snapshot @@ -178,9 +178,9 @@ callback called twice in future tick (*ms) Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' } callback async throw (*ms) @@ -449,9 +449,9 @@ callback called twice in future tick (*ms) Error [ERR_TEST_FAILURE]: callback invoked multiple times * { + code: 'ERR_TEST_FAILURE', failureType: 'multipleCallbackInvocations', - cause: 'callback invoked multiple times', - code: 'ERR_TEST_FAILURE' + cause: 'callback invoked multiple times' } * diff --git a/test/message/internal_assert.out b/test/message/internal_assert.out index bd25c879478083..197b863bf6ae69 100644 --- a/test/message/internal_assert.out +++ b/test/message/internal_assert.out @@ -5,7 +5,6 @@ node:internal/assert:* Error [ERR_INTERNAL_ASSERTION]: This is caused by either a bug in Node.js or incorrect usage of Node.js internals. Please open an issue with this stack trace at https://github.com/nodejs/node/issues - at new NodeError (node:internal/errors:*:*) at assert (node:internal/assert:*:*) at * (*test*message*internal_assert.js:7:1) at * diff --git a/test/message/internal_assert_fail.out b/test/message/internal_assert_fail.out index 408d6d3364470d..e6895691cda9c1 100644 --- a/test/message/internal_assert_fail.out +++ b/test/message/internal_assert_fail.out @@ -6,7 +6,6 @@ Error [ERR_INTERNAL_ASSERTION]: Unreachable! This is caused by either a bug in Node.js or incorrect usage of Node.js internals. Please open an issue with this stack trace at https://github.com/nodejs/node/issues - at new NodeError (node:internal/errors:*:*) at Function.fail (node:internal/assert:*:*) at * (*test*message*internal_assert_fail.js:7:8) at * diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js index 1abcca75f1e2a0..c8bc26fad62e5c 100644 --- a/test/parallel/test-repl-top-level-await.js +++ b/test/parallel/test-repl-top-level-await.js @@ -207,8 +207,8 @@ async function ctrlCTest() { assert.deepStrictEqual(output.slice(0, 3), [ 'await new Promise(() => {})\r', 'Uncaught:', - 'Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + - 'Script execution was interrupted by `SIGINT`', + '[Error [ERR_SCRIPT_EXECUTION_INTERRUPTED]: ' + + 'Script execution was interrupted by `SIGINT`] {', ]); assert.deepStrictEqual(output.slice(-2), [ '}', From 5bca8feed217ab71b1c0d1bde81eeca9f2af748b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 28 Sep 2023 14:50:20 +0200 Subject: [PATCH 016/232] lib,test: do not hardcode Buffer.kMaxLength V8 will soon support typed arrays as large as the maximum array buffer length. This patch replaces hardcoded values related to Buffer.kMaxLength with the actual constant. It also fixes a test that was passing by accident. Refs: https://github.com/v8/v8/commit/44b299590083b888637c79fb5632806e607ab861 PR-URL: https://github.com/nodejs/node/pull/49876 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli --- lib/internal/blob.js | 8 +++++--- test/parallel/test-blob-buffer-too-large.js | 6 +++--- test/parallel/test-buffer-alloc.js | 9 ++++++--- test/parallel/test-buffer-over-max-length.js | 10 ---------- .../parallel/test-buffer-tostring-rangeerror.js | 17 +++++++++++------ 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/lib/internal/blob.js b/lib/internal/blob.js index d0e47c1a4397a8..400d2c5fd21bc9 100644 --- a/lib/internal/blob.js +++ b/lib/internal/blob.js @@ -24,6 +24,9 @@ const { concat, getDataObject, } = internalBinding('blob'); +const { + kMaxLength, +} = internalBinding('buffer'); const { TextDecoder, @@ -62,7 +65,6 @@ const { } = require('internal/errors'); const { - isUint32, validateDictionary, } = require('internal/validators'); @@ -158,8 +160,8 @@ class Blob { return src; }); - if (!isUint32(length)) - throw new ERR_BUFFER_TOO_LARGE(0xFFFFFFFF); + if (length > kMaxLength) + throw new ERR_BUFFER_TOO_LARGE(kMaxLength); this[kHandle] = _createBlob(sources_, length); this[kLength] = length; diff --git a/test/parallel/test-blob-buffer-too-large.js b/test/parallel/test-blob-buffer-too-large.js index 2fd8b8754bd593..a9cf53b025bbff 100644 --- a/test/parallel/test-blob-buffer-too-large.js +++ b/test/parallel/test-blob-buffer-too-large.js @@ -3,17 +3,17 @@ const common = require('../common'); const assert = require('assert'); -const { Blob } = require('buffer'); +const { Blob, kMaxLength } = require('buffer'); if (common.isFreeBSD) common.skip('Oversized buffer make the FreeBSD CI runner crash'); try { - new Blob([new Uint8Array(0xffffffff), [1]]); + new Blob([new Uint8Array(kMaxLength), [1]]); } catch (e) { if ( e.message === 'Array buffer allocation failed' || - e.message === 'Invalid typed array length: 4294967295' + e.message === `Invalid typed array length: ${kMaxLength}` ) { common.skip( 'Insufficient memory on this platform for oversized buffer test.' diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index c6b728027057ec..aad9c6bcab69e9 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -4,13 +4,16 @@ const common = require('../common'); const assert = require('assert'); const vm = require('vm'); -const SlowBuffer = require('buffer').SlowBuffer; +const { + SlowBuffer, + kMaxLength, +} = require('buffer'); // Verify the maximum Uint8Array size. There is no concrete limit by spec. The // internal limits should be updated if this fails. assert.throws( - () => new Uint8Array(2 ** 32 + 1), - { message: 'Invalid typed array length: 4294967297' } + () => new Uint8Array(kMaxLength + 1), + { message: `Invalid typed array length: ${kMaxLength + 1}` }, ); const b = Buffer.allocUnsafe(1024); diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js index d2df358cc00ca4..f29d6b62d4aa40 100644 --- a/test/parallel/test-buffer-over-max-length.js +++ b/test/parallel/test-buffer-over-max-length.js @@ -12,18 +12,8 @@ const bufferMaxSizeMsg = { name: 'RangeError', }; -assert.throws(() => Buffer((-1 >>> 0) + 2), bufferMaxSizeMsg); -assert.throws(() => SlowBuffer((-1 >>> 0) + 2), bufferMaxSizeMsg); -assert.throws(() => Buffer.alloc((-1 >>> 0) + 2), bufferMaxSizeMsg); -assert.throws(() => Buffer.allocUnsafe((-1 >>> 0) + 2), bufferMaxSizeMsg); -assert.throws(() => Buffer.allocUnsafeSlow((-1 >>> 0) + 2), bufferMaxSizeMsg); - assert.throws(() => Buffer(kMaxLength + 1), bufferMaxSizeMsg); assert.throws(() => SlowBuffer(kMaxLength + 1), bufferMaxSizeMsg); assert.throws(() => Buffer.alloc(kMaxLength + 1), bufferMaxSizeMsg); assert.throws(() => Buffer.allocUnsafe(kMaxLength + 1), bufferMaxSizeMsg); assert.throws(() => Buffer.allocUnsafeSlow(kMaxLength + 1), bufferMaxSizeMsg); - -// issue GH-4331 -assert.throws(() => Buffer.allocUnsafe(0x100000001), bufferMaxSizeMsg); -assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFFF), bufferMaxSizeMsg); diff --git a/test/parallel/test-buffer-tostring-rangeerror.js b/test/parallel/test-buffer-tostring-rangeerror.js index d2e1e0d6e46438..0ebea759b5c42b 100644 --- a/test/parallel/test-buffer-tostring-rangeerror.js +++ b/test/parallel/test-buffer-tostring-rangeerror.js @@ -1,17 +1,22 @@ 'use strict'; require('../common'); -// This test ensures that Node.js throws a RangeError when trying to convert a -// gigantic buffer into a string. +// This test ensures that Node.js throws an Error when trying to convert a +// large buffer into a string. // Regression test for https://github.com/nodejs/node/issues/649. const assert = require('assert'); -const SlowBuffer = require('buffer').SlowBuffer; +const { + SlowBuffer, + constants: { + MAX_STRING_LENGTH, + }, +} = require('buffer'); -const len = 1422561062959; +const len = MAX_STRING_LENGTH + 1; const message = { - code: 'ERR_OUT_OF_RANGE', - name: 'RangeError', + code: 'ERR_STRING_TOO_LONG', + name: 'Error', }; assert.throws(() => Buffer(len).toString('utf8'), message); assert.throws(() => SlowBuffer(len).toString('utf8'), message); From a01050dec4d92ec9849fdda8d02a86c863add26f Mon Sep 17 00:00:00 2001 From: Khafra Date: Thu, 28 Sep 2023 09:01:30 -0400 Subject: [PATCH 017/232] lib: add WebSocket client fixup add test lint fixup update doc/node.1 PR-URL: https://github.com/nodejs/node/pull/49830 Reviewed-By: Matteo Collina Reviewed-By: Robert Nagy --- .eslintrc.js | 1 + doc/api/cli.md | 10 ++++++ doc/api/globals.md | 13 ++++++++ doc/node.1 | 3 ++ lib/internal/process/pre_execution.js | 48 ++++++++++++++++----------- src/node_options.cc | 5 +++ src/node_options.h | 1 + test/common/globals.js | 1 + test/common/index.js | 3 ++ test/parallel/test-websocket.js | 7 ++++ 10 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 test/parallel/test-websocket.js diff --git a/.eslintrc.js b/.eslintrc.js index 619ce5a1377864..6974224e422449 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -360,5 +360,6 @@ module.exports = { WritableStream: 'readable', WritableStreamDefaultWriter: 'readable', WritableStreamDefaultController: 'readable', + WebSocket: 'readable', }, }; diff --git a/doc/api/cli.md b/doc/api/cli.md index f50b22f729c283..f3dd47fa929429 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -725,6 +725,14 @@ added: v12.3.0 Enable experimental WebAssembly module support. +### `--experimental-websocket` + + + +Enable experimental [`WebSocket`][] support. + ### `--force-context-aware` + +> Stability: 1 - Experimental. + +A browser-compatible implementation of [`WebSocket`][]. Enable this API +with the [`--experimental-websocket`][] CLI flag. + ## Class: `WritableStream`
                            diff --git a/tools/doc/allhtml.mjs b/tools/doc/allhtml.mjs index cdf7140f728469..ccf3a10ea7f95b 100644 --- a/tools/doc/allhtml.mjs +++ b/tools/doc/allhtml.mjs @@ -27,7 +27,7 @@ for (const link of toc.match(//g)) { const data = fs.readFileSync(new URL(`./${href}`, source), 'utf8'); // Split the doc. - const match = /(<\/ul>\s*)?<\/\w+>\s*<\w+ id="apicontent">/.exec(data); + const match = /(<\/ul>\s*)?<\/\w+>\s*<\w+ role="main" id="apicontent">/.exec(data); // Get module name const moduleName = href.replace(/\.html$/, ''); @@ -89,7 +89,7 @@ all = all.slice(0, tocStart.index + tocStart[0].length) + all.slice(tocStart.index + tocStart[0].length); // Replace apicontent with the concatenated set of apicontents from each source. -const apiStart = /<\w+ id="apicontent">\s*/.exec(all); +const apiStart = /<\w+ role="main" id="apicontent">\s*/.exec(all); const apiEnd = all.lastIndexOf(''); all = all.slice(0, apiStart.index + apiStart[0].length) .replace( From 732b5661ea0074f419965e9c6f42b8e77dae8f6a Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 26 Sep 2023 10:54:02 -0700 Subject: [PATCH 021/232] tools: add navigation ARIA landmark to generated API ToC As an accessibility improvement, specify the navigation landmark for the element of our docs that contains the table of contents generated for the specific API page. Ref: https://www.w3.org/WAI/ARIA/apg/practices/landmark-regions/ Ref: https://www.w3.org/WAI/WCAG21/Techniques/aria/ARIA20.html PR-URL: https://github.com/nodejs/node/pull/49882 Reviewed-By: Luigi Pinca Reviewed-By: Claudio Wunder Reviewed-By: LiviaMedeiros --- tools/doc/html.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/doc/html.mjs b/tools/doc/html.mjs index 168f68c1b03f21..95782efe03d554 100644 --- a/tools/doc/html.mjs +++ b/tools/doc/html.mjs @@ -467,7 +467,7 @@ export function buildToc({ filename, apilinks }) { .use(htmlStringify) .processSync(toc).toString(); - file.toc = `
                            Table of contents${inner}
                            `; + file.toc = ``; file.tocPicker = `
                            ${inner}
                            `; } else { file.toc = file.tocPicker = ''; From d356e5e39547a5d4fddac174c3a55fe4a7051458 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 26 Sep 2023 11:27:31 -0700 Subject: [PATCH 022/232] meta: update website team with new name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pings for the website team aren't working because the team name changed but it did not get updated in CODEOWNERS. PR-URL: https://github.com/nodejs/node/pull/49883 Reviewed-By: Yagiz Nizipli Reviewed-By: Antoine du Hamel Reviewed-By: Claudio Wunder Reviewed-By: Moshe Atlow Reviewed-By: Darshan Sen Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca --- .github/CODEOWNERS | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1a62e3560a23ef..3e7c3f62aa752f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -20,10 +20,10 @@ /LICENSE @nodejs/tsc /onboarding.md @nodejs/tsc -# website -/doc/api_assets @nodejs/website -/doc/template.html @nodejs/website -/tools/doc @nodejs/website +# nodejs.org website +/doc/api_assets @nodejs/nodejs-website +/doc/template.html @nodejs/nodejs-website +/tools/doc @nodejs/web-infra # streams From dc80ccef25cc3703312a931577e35099f0bb73e3 Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Thu, 28 Sep 2023 23:18:44 -0700 Subject: [PATCH 023/232] esm: --experimental-default-type flag to flip module defaults PR-URL: https://github.com/nodejs/node/pull/49869 Reviewed-By: Guy Bedford Reviewed-By: Matteo Collina Reviewed-By: Antoine du Hamel --- doc/api/cli.md | 31 ++++ doc/api/esm.md | 10 +- doc/api/packages.md | 43 +++-- doc/node.1 | 5 + lib/internal/main/check_syntax.js | 3 +- lib/internal/main/eval_stdin.js | 6 +- lib/internal/main/eval_string.js | 5 +- lib/internal/modules/esm/formats.js | 29 ++++ lib/internal/modules/esm/get_format.js | 59 ++++++- lib/internal/modules/esm/resolve.js | 4 +- lib/internal/modules/run_main.js | 9 +- src/node_options.cc | 17 +- src/node_options.h | 3 +- test/common/package.json | 3 + ...rrors.js => test-esm-type-field-errors.js} | 0 ...-type-flag.mjs => test-esm-type-field.mjs} | 0 test/es-module/test-esm-type-flag-errors.mjs | 31 ++++ .../test-esm-type-flag-loose-files.mjs | 75 +++++++++ .../test-esm-type-flag-package-scopes.mjs | 150 ++++++++++++++++++ .../test-esm-type-flag-string-input.mjs | 44 +++++ .../test-esm-unknown-or-no-extension.js | 4 +- .../test-esm-url-extname.js | 0 .../test-wasm-memory-out-of-bound.js | 0 .../test-wasm-simple.js | 0 .../test-wasm-web-api.js | 0 test/fixtures/es-modules/imports-loose.mjs | 1 + test/fixtures/es-modules/imports-noext.mjs | 1 + test/fixtures/es-modules/loose.js | 3 + test/fixtures/es-modules/noext-esm | 2 + test/fixtures/es-modules/noext-wasm | Bin 0 -> 136 bytes .../es-modules/package-type-module/index.js | 2 +- .../node_modules/dep-with-package-json/dep.js | 2 + .../dep-with-package-json/noext-cjs | 3 + .../dep-with-package-json/package.json | 7 + .../node_modules/dep-with-package-json/run.js | 3 + .../{dep => dep-without-package-json}/dep.js | 0 .../dep-without-package-json/noext-cjs | 3 + .../dep-without-package-json/run.js | 3 + .../es-modules/package-type-module/noext-wasm | Bin 0 -> 136 bytes .../package-type-module/wasm-dep.mjs | 15 ++ .../es-modules/package-without-type/module.js | 3 + .../es-modules/package-without-type/noext-esm | 3 + 42 files changed, 541 insertions(+), 41 deletions(-) create mode 100644 test/common/package.json rename test/es-module/{test-esm-type-flag-errors.js => test-esm-type-field-errors.js} (100%) rename test/es-module/{test-esm-type-flag.mjs => test-esm-type-field.mjs} (100%) create mode 100644 test/es-module/test-esm-type-flag-errors.mjs create mode 100644 test/es-module/test-esm-type-flag-loose-files.mjs create mode 100644 test/es-module/test-esm-type-flag-package-scopes.mjs create mode 100644 test/es-module/test-esm-type-flag-string-input.mjs rename test/{parallel => es-module}/test-esm-url-extname.js (100%) rename test/{parallel => es-module}/test-wasm-memory-out-of-bound.js (100%) rename test/{parallel => es-module}/test-wasm-simple.js (100%) rename test/{parallel => es-module}/test-wasm-web-api.js (100%) create mode 100644 test/fixtures/es-modules/imports-loose.mjs create mode 100644 test/fixtures/es-modules/imports-noext.mjs create mode 100644 test/fixtures/es-modules/loose.js create mode 100644 test/fixtures/es-modules/noext-esm create mode 100644 test/fixtures/es-modules/noext-wasm create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/dep.js create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/package.json create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/run.js rename test/fixtures/es-modules/package-type-module/node_modules/{dep => dep-without-package-json}/dep.js (100%) create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/noext-cjs create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/run.js create mode 100644 test/fixtures/es-modules/package-type-module/noext-wasm create mode 100644 test/fixtures/es-modules/package-type-module/wasm-dep.mjs create mode 100644 test/fixtures/es-modules/package-without-type/module.js create mode 100644 test/fixtures/es-modules/package-without-type/noext-esm diff --git a/doc/api/cli.md b/doc/api/cli.md index f3dd47fa929429..fc012de3087fbc 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -578,6 +578,36 @@ On Windows, using `cmd.exe` a single quote will not work correctly because it only recognizes double `"` for quoting. In Powershell or Git bash, both `'` and `"` are usable. +### `--experimental-default-type=type` + + + +> Stability: 1.0 - Early development + +Define which module system, `module` or `commonjs`, to use for the following: + +* String input provided via `--eval` or STDIN, if `--input-type` is unspecified. + +* Files ending in `.js` or with no extension, if there is no `package.json` file + present in the same folder or any parent folder. + +* Files ending in `.js` or with no extension, if the nearest parent + `package.json` field lacks a `"type"` field; unless the `package.json` folder + or any parent folder is inside a `node_modules` folder. + +In other words, `--experimental-default-type=module` flips all the places where +Node.js currently defaults to CommonJS to instead default to ECMAScript modules, +with the exception of folders and subfolders below `node_modules`, for backward +compatibility. + +Under `--experimental-default-type=module` and `--experimental-wasm-modules`, +files with no extension will be treated as WebAssembly if they begin with the +WebAssembly magic number (`\0asm`); otherwise they will be treated as ES module +JavaScript. + ### `--experimental-import-meta-resolve` @@ -1059,6 +1060,7 @@ resolution for ESM specifiers is [commonjs-extension-resolution-loader][]. [URL]: https://url.spec.whatwg.org/ [`"exports"`]: packages.md#exports [`"type"`]: packages.md#type +[`--experimental-default-type`]: cli.md#--experimental-default-typetype [`--input-type`]: cli.md#--input-typetype [`data:` URLs]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs [`export`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export diff --git a/doc/api/packages.md b/doc/api/packages.md index a42e1e041a00b6..9f55cbbb15939f 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -55,6 +55,8 @@ along with a reference for the [`package.json`][] fields defined by Node.js. ## Determining module system +### Introduction + Node.js will treat the following as [ES modules][] when passed to `node` as the initial input, or when referenced by `import` statements or `import()` expressions: @@ -67,14 +69,9 @@ expressions: * Strings passed in as an argument to `--eval`, or piped to `node` via `STDIN`, with the flag `--input-type=module`. -Node.js will treat as [CommonJS][] all other forms of input, such as `.js` files -where the nearest parent `package.json` file contains no top-level `"type"` -field, or string input without the flag `--input-type`. This behavior is to -preserve backward compatibility. However, now that Node.js supports both -CommonJS and ES modules, it is best to be explicit whenever possible. Node.js -will treat the following as CommonJS when passed to `node` as the initial input, -or when referenced by `import` statements, `import()` expressions, or -`require()` expressions: +Node.js will treat the following as [CommonJS][] when passed to `node` as the +initial input, or when referenced by `import` statements or `import()` +expressions: * Files with a `.cjs` extension. @@ -84,11 +81,30 @@ or when referenced by `import` statements, `import()` expressions, or * Strings passed in as an argument to `--eval` or `--print`, or piped to `node` via `STDIN`, with the flag `--input-type=commonjs`. -Package authors should include the [`"type"`][] field, even in packages where -all sources are CommonJS. Being explicit about the `type` of the package will -future-proof the package in case the default type of Node.js ever changes, and -it will also make things easier for build tools and loaders to determine how the -files in the package should be interpreted. +Aside from these explicit cases, there are other cases where Node.js defaults to +one module system or the other based on the value of the +[`--experimental-default-type`][] flag: + +* Files ending in `.js` or with no extension, if there is no `package.json` file + present in the same folder or any parent folder. + +* Files ending in `.js` or with no extension, if the nearest parent + `package.json` field lacks a `"type"` field; unless the folder is inside a + `node_modules` folder. (Package scopes under `node_modules` are always treated + as CommonJS when the `package.json` file lacks a `"type"` field, regardless + of `--experimental-default-type`, for backward compatibility.) + +* Strings passed in as an argument to `--eval` or piped to `node` via `STDIN`, + when `--input-type` is unspecified. + +This flag currently defaults to `"commonjs"`, but it may change in the future to +default to `"module"`. For this reason it is best to be explicit wherever +possible; in particular, package authors should always include the [`"type"`][] +field in their `package.json` files, even in packages where all sources are +CommonJS. Being explicit about the `type` of the package will future-proof the +package in case the default type of Node.js ever changes, and it will also make +things easier for build tools and loaders to determine how the files in the +package should be interpreted. ### Modules loaders @@ -1337,6 +1353,7 @@ This field defines [subpath imports][] for the current package. [`"packageManager"`]: #packagemanager [`"type"`]: #type [`--conditions` / `-C` flag]: #resolving-user-conditions +[`--experimental-default-type`]: cli.md#--experimental-default-typetype [`--no-addons` flag]: cli.md#--no-addons [`ERR_PACKAGE_PATH_NOT_EXPORTED`]: errors.md#err_package_path_not_exported [`esm`]: https://github.com/standard-things/esm#readme diff --git a/doc/node.1 b/doc/node.1 index dd10330d4f567a..715cf0fdc4bc2b 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -152,6 +152,11 @@ Requires Node.js to be built with .It Fl -enable-source-maps Enable Source Map V3 support for stack traces. . +.It Fl -experimental-default-type Ns = Ns Ar type +Interpret as either ES modules or CommonJS modules input via --eval or STDIN, when --input-type is unspecified; +.js or extensionless files with no sibling or parent package.json; +.js or extensionless files whose nearest parent package.json lacks a "type" field, unless under node_modules. +. .It Fl -experimental-global-webcrypto Expose the Web Crypto API on the global scope. . diff --git a/lib/internal/main/check_syntax.js b/lib/internal/main/check_syntax.js index 50e0b7d6de67c4..9a19c1809fe102 100644 --- a/lib/internal/main/check_syntax.js +++ b/lib/internal/main/check_syntax.js @@ -60,7 +60,8 @@ function loadESMIfNeeded(cb) { async function checkSyntax(source, filename) { let isModule = true; if (filename === '[stdin]' || filename === '[eval]') { - isModule = getOptionValue('--input-type') === 'module'; + isModule = getOptionValue('--input-type') === 'module' || + (getOptionValue('--experimental-default-type') === 'module' && getOptionValue('--input-type') !== 'commonjs'); } else { const { defaultResolve } = require('internal/modules/esm/resolve'); const { defaultGetFormat } = require('internal/modules/esm/get_format'); diff --git a/lib/internal/main/eval_stdin.js b/lib/internal/main/eval_stdin.js index d947af49a6a942..d71751e781b9b5 100644 --- a/lib/internal/main/eval_stdin.js +++ b/lib/internal/main/eval_stdin.js @@ -25,12 +25,14 @@ readStdin((code) => { const print = getOptionValue('--print'); const loadESM = getOptionValue('--import').length > 0; - if (getOptionValue('--input-type') === 'module') + if (getOptionValue('--input-type') === 'module' || + (getOptionValue('--experimental-default-type') === 'module' && getOptionValue('--input-type') !== 'commonjs')) { evalModule(code, print); - else + } else { evalScript('[stdin]', code, getOptionValue('--inspect-brk'), print, loadESM); + } }); diff --git a/lib/internal/main/eval_string.js b/lib/internal/main/eval_string.js index dc59a2ce4f7709..908532b0b1865a 100644 --- a/lib/internal/main/eval_string.js +++ b/lib/internal/main/eval_string.js @@ -25,9 +25,10 @@ markBootstrapComplete(); const source = getOptionValue('--eval'); const print = getOptionValue('--print'); const loadESM = getOptionValue('--import').length > 0 || getOptionValue('--experimental-loader').length > 0; -if (getOptionValue('--input-type') === 'module') +if (getOptionValue('--input-type') === 'module' || + (getOptionValue('--experimental-default-type') === 'module' && getOptionValue('--input-type') !== 'commonjs')) { evalModule(source, print); -else { +} else { // For backward compatibility, we want the identifier crypto to be the // `node:crypto` module rather than WebCrypto. const isUsingCryptoIdentifier = diff --git a/lib/internal/modules/esm/formats.js b/lib/internal/modules/esm/formats.js index 4ab9aa6f032b7e..b4e8d7a69d306b 100644 --- a/lib/internal/modules/esm/formats.js +++ b/lib/internal/modules/esm/formats.js @@ -2,9 +2,12 @@ const { RegExpPrototypeExec, + Uint8Array, } = primordials; const { getOptionValue } = require('internal/options'); +const { closeSync, openSync, readSync } = require('fs'); + const experimentalWasmModules = getOptionValue('--experimental-wasm-modules'); const extensionFormatMap = { @@ -35,7 +38,33 @@ function mimeToFormat(mime) { return null; } +/** + * For extensionless files in a `module` package scope, or a default `module` scope enabled by the + * `--experimental-default-type` flag, we check the file contents to disambiguate between ES module JavaScript and Wasm. + * We do this by taking advantage of the fact that all Wasm files start with the header `0x00 0x61 0x73 0x6d` (`_asm`). + * @param {URL} url + */ +function getFormatOfExtensionlessFile(url) { + if (!experimentalWasmModules) { return 'module'; } + + const magic = new Uint8Array(4); + let fd; + try { + // TODO(@anonrig): Optimize the following by having a single C++ call + fd = openSync(url); + readSync(fd, magic, 0, 4); // Only read the first four bytes + if (magic[0] === 0x00 && magic[1] === 0x61 && magic[2] === 0x73 && magic[3] === 0x6d) { + return 'wasm'; + } + } finally { + if (fd !== undefined) { closeSync(fd); } + } + + return 'module'; +} + module.exports = { extensionFormatMap, + getFormatOfExtensionlessFile, mimeToFormat, }; diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index b3c8a56c06c1cc..59ab89f6f76377 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -1,9 +1,11 @@ 'use strict'; + const { RegExpPrototypeExec, ObjectPrototypeHasOwnProperty, PromisePrototypeThen, PromiseResolve, + StringPrototypeIncludes, StringPrototypeCharCodeAt, StringPrototypeSlice, } = primordials; @@ -11,11 +13,15 @@ const { basename, relative } = require('path'); const { getOptionValue } = require('internal/options'); const { extensionFormatMap, + getFormatOfExtensionlessFile, mimeToFormat, } = require('internal/modules/esm/formats'); const experimentalNetworkImports = getOptionValue('--experimental-network-imports'); +const defaultTypeFlag = getOptionValue('--experimental-default-type'); +// The next line is where we flip the default to ES modules someday. +const defaultType = defaultTypeFlag === 'module' ? 'module' : 'commonjs'; const { getPackageType, getPackageScopeConfig } = require('internal/modules/esm/resolve'); const { fileURLToPath } = require('internal/url'); const { ERR_UNKNOWN_FILE_EXTENSION } = require('internal/errors').codes; @@ -66,6 +72,18 @@ function extname(url) { return ''; } +/** + * Determine whether the given file URL is under a `node_modules` folder. + * This function assumes that the input has already been verified to be a `file:` URL, + * and is a file rather than a folder. + * @param {URL} url + */ +function underNodeModules(url) { + if (url.protocol !== 'file:') { return false; } // We determine module types for other protocols based on MIME header + + return StringPrototypeIncludes(url.pathname, '/node_modules/'); +} + /** * @param {URL} url * @param {{parentURL: string}} context @@ -74,8 +92,37 @@ function extname(url) { */ function getFileProtocolModuleFormat(url, context, ignoreErrors) { const ext = extname(url); + if (ext === '.js') { - return getPackageType(url) === 'module' ? 'module' : 'commonjs'; + const packageType = getPackageType(url); + if (packageType !== 'none') { + return packageType; + } + // The controlling `package.json` file has no `type` field. + if (defaultType === 'module') { + // An exception to the type flag making ESM the default everywhere is that package scopes under `node_modules` + // should retain the assumption that a lack of a `type` field means CommonJS. + return underNodeModules(url) ? 'commonjs' : 'module'; + } + return 'commonjs'; + } + + if (ext === '') { + const packageType = getPackageType(url); + if (defaultType === 'commonjs') { // Legacy behavior + if (packageType === 'none' || packageType === 'commonjs') { + return 'commonjs'; + } + // If package type is `module`, fall through to the error case below + } else { // Else defaultType === 'module' + if (underNodeModules(url)) { // Exception for package scopes under `node_modules` + return 'commonjs'; + } + if (packageType === 'none' || packageType === 'module') { + return getFormatOfExtensionlessFile(url); + } // Else packageType === 'commonjs' + return 'commonjs'; + } } const format = extensionFormatMap[ext]; @@ -89,12 +136,10 @@ function getFileProtocolModuleFormat(url, context, ignoreErrors) { const config = getPackageScopeConfig(url); const fileBasename = basename(filepath); const relativePath = StringPrototypeSlice(relative(config.pjsonPath, filepath), 1); - suggestion = 'Loading extensionless files is not supported inside of ' + - '"type":"module" package.json contexts. The package.json file ' + - `${config.pjsonPath} caused this "type":"module" context. Try ` + - `changing ${filepath} to have a file extension. Note the "bin" ` + - 'field of package.json can point to a file with an extension, for example ' + - `{"type":"module","bin":{"${fileBasename}":"${relativePath}.js"}}`; + suggestion = 'Loading extensionless files is not supported inside of "type":"module" package.json contexts ' + + `without --experimental-default-type=module. The package.json file ${config.pjsonPath} caused this "type":"module" ` + + `context. Try changing ${filepath} to have a file extension. Note the "bin" field of package.json can point ` + + `to a file with an extension, for example {"type":"module","bin":{"${fileBasename}":"${relativePath}.js"}}`; } throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath, suggestion); } diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js index 0d277915b3a01f..5aea5ca5460199 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js @@ -35,7 +35,7 @@ const preserveSymlinks = getOptionValue('--preserve-symlinks'); const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main'); const experimentalNetworkImports = getOptionValue('--experimental-network-imports'); -const typeFlag = getOptionValue('--input-type'); +const inputTypeFlag = getOptionValue('--input-type'); const { URL, pathToFileURL, fileURLToPath, isURL } = require('internal/url'); const { getCWDURL } = require('internal/util'); const { canParse: URLCanParse } = internalBinding('url'); @@ -1112,7 +1112,7 @@ function defaultResolve(specifier, context = {}) { // input, to avoid user confusion over how expansive the effect of the // flag should be (i.e. entry point only, package scope surrounding the // entry point, etc.). - if (typeFlag) { throw new ERR_INPUT_TYPE_NOT_ALLOWED(); } + if (inputTypeFlag) { throw new ERR_INPUT_TYPE_NOT_ALLOWED(); } } conditions = getConditionsSet(conditions); diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index ac1ffef0412b17..2e4dabd503a883 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -43,12 +43,15 @@ function shouldUseESMLoader(mainPath) { */ const userImports = getOptionValue('--import'); if (userLoaders.length > 0 || userImports.length > 0) { return true; } - const { readPackageScope } = require('internal/modules/cjs/loader'); - // Determine the module format of the main + + // Determine the module format of the entry point. if (mainPath && StringPrototypeEndsWith(mainPath, '.mjs')) { return true; } if (!mainPath || StringPrototypeEndsWith(mainPath, '.cjs')) { return false; } + + const { readPackageScope } = require('internal/modules/cjs/loader'); const pkg = readPackageScope(mainPath); - return pkg && pkg.data.type === 'module'; + // No need to guard `pkg` as it can only be an object or `false`. + return pkg.data?.type === 'module' || getOptionValue('--experimental-default-type') === 'module'; } /** diff --git a/src/node_options.cc b/src/node_options.cc index 0285f422dfd62c..cf44003538f42f 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -114,12 +114,19 @@ void EnvironmentOptions::CheckOptions(std::vector* errors, errors->push_back("--policy-integrity cannot be empty"); } - if (!module_type.empty()) { - if (module_type != "commonjs" && module_type != "module") { + if (!input_type.empty()) { + if (input_type != "commonjs" && input_type != "module") { errors->push_back("--input-type must be \"module\" or \"commonjs\""); } } + if (!type.empty()) { + if (type != "commonjs" && type != "module") { + errors->push_back("--experimental-default-type must be " + "\"module\" or \"commonjs\""); + } + } + if (syntax_check_only && has_eval_string) { errors->push_back("either --check or --eval can be used, not both"); } @@ -474,7 +481,7 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { kAllowedInEnvvar); AddOption("--input-type", "set module type for string input", - &EnvironmentOptions::module_type, + &EnvironmentOptions::input_type, kAllowedInEnvvar); AddOption( "--experimental-specifier-resolution", "", NoOp{}, kAllowedInEnvvar); @@ -646,6 +653,10 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { "show stack traces on process warnings", &EnvironmentOptions::trace_warnings, kAllowedInEnvvar); + AddOption("--experimental-default-type", + "set module system to use by default", + &EnvironmentOptions::type, + kAllowedInEnvvar); AddOption("--extra-info-on-fatal-exception", "hide extra information on fatal exception that causes exit", &EnvironmentOptions::extra_info_on_fatal_exception, diff --git a/src/node_options.h b/src/node_options.h index 2b9f3d3084651a..eed6216deb67b2 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -117,7 +117,8 @@ class EnvironmentOptions : public Options { bool experimental_https_modules = false; bool experimental_wasm_modules = false; bool experimental_import_meta_resolve = false; - std::string module_type; + std::string input_type; // Value of --input-type + std::string type; // Value of --experimental-default-type std::string experimental_policy; std::string experimental_policy_integrity; bool has_policy_integrity_string = false; diff --git a/test/common/package.json b/test/common/package.json new file mode 100644 index 00000000000000..5bbefffbabee39 --- /dev/null +++ b/test/common/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/test/es-module/test-esm-type-flag-errors.js b/test/es-module/test-esm-type-field-errors.js similarity index 100% rename from test/es-module/test-esm-type-flag-errors.js rename to test/es-module/test-esm-type-field-errors.js diff --git a/test/es-module/test-esm-type-flag.mjs b/test/es-module/test-esm-type-field.mjs similarity index 100% rename from test/es-module/test-esm-type-flag.mjs rename to test/es-module/test-esm-type-field.mjs diff --git a/test/es-module/test-esm-type-flag-errors.mjs b/test/es-module/test-esm-type-flag-errors.mjs new file mode 100644 index 00000000000000..6d54eff94763ef --- /dev/null +++ b/test/es-module/test-esm-type-flag-errors.mjs @@ -0,0 +1,31 @@ +import { spawnPromisified } from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { describe, it } from 'node:test'; +import { match, strictEqual } from 'node:assert'; + +describe('--experimental-default-type=module should not affect the interpretation of files with unknown extensions', + { concurrency: true }, () => { + it('should error on an entry point with an unknown extension', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-type-module/extension.unknown'), + ]); + + match(stderr, /ERR_UNKNOWN_FILE_EXTENSION/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + + it('should error on an import with an unknown extension', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-type-module/imports-unknownext.mjs'), + ]); + + match(stderr, /ERR_UNKNOWN_FILE_EXTENSION/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + }); diff --git a/test/es-module/test-esm-type-flag-loose-files.mjs b/test/es-module/test-esm-type-flag-loose-files.mjs new file mode 100644 index 00000000000000..ed95e1807f57c7 --- /dev/null +++ b/test/es-module/test-esm-type-flag-loose-files.mjs @@ -0,0 +1,75 @@ +// Flags: --experimental-default-type=module --experimental-wasm-modules +import { spawnPromisified } from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { describe, it } from 'node:test'; +import { strictEqual } from 'node:assert'; + +describe('the type flag should change the interpretation of certain files outside of any package scope', + { concurrency: true }, () => { + it('should run as ESM a .js file that is outside of any package scope', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/loose.js'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should run as ESM an extensionless JavaScript file that is outside of any package scope', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/noext-esm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should run as Wasm an extensionless Wasm file that is outside of any package scope', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--experimental-wasm-modules', + '--no-warnings', + fixtures.path('es-modules/noext-wasm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, ''); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should import as ESM a .js file that is outside of any package scope', async () => { + const { default: defaultExport } = await import(fixtures.fileURL('es-modules/loose.js')); + strictEqual(defaultExport, 'module'); + }); + + it('should import as ESM an extensionless JavaScript file that is outside of any package scope', + async () => { + const { default: defaultExport } = await import(fixtures.fileURL('es-modules/noext-esm')); + strictEqual(defaultExport, 'module'); + }); + + it('should import as Wasm an extensionless Wasm file that is outside of any package scope', async () => { + const { add } = await import(fixtures.fileURL('es-modules/noext-wasm')); + strictEqual(add(1, 2), 3); + }); + + it('should check as ESM input passed via --check', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--check', + fixtures.path('es-modules/loose.js'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, ''); + strictEqual(code, 0); + strictEqual(signal, null); + }); + }); diff --git a/test/es-module/test-esm-type-flag-package-scopes.mjs b/test/es-module/test-esm-type-flag-package-scopes.mjs new file mode 100644 index 00000000000000..6b16e8a3ae223b --- /dev/null +++ b/test/es-module/test-esm-type-flag-package-scopes.mjs @@ -0,0 +1,150 @@ +// Flags: --experimental-default-type=module --experimental-wasm-modules +import { spawnPromisified } from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { describe, it } from 'node:test'; +import { strictEqual } from 'node:assert'; + +describe('the type flag should change the interpretation of certain files within a "type": "module" package scope', + { concurrency: true }, () => { + it('should run as ESM an extensionless JavaScript file within a "type": "module" scope', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-type-module/noext-esm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should import an extensionless JavaScript file within a "type": "module" scope', async () => { + const { default: defaultExport } = + await import(fixtures.fileURL('es-modules/package-type-module/noext-esm')); + strictEqual(defaultExport, 'module'); + }); + + it('should run as Wasm an extensionless Wasm file within a "type": "module" scope', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--experimental-wasm-modules', + '--no-warnings', + fixtures.path('es-modules/package-type-module/noext-wasm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should import as Wasm an extensionless Wasm file within a "type": "module" scope', async () => { + const { add } = await import(fixtures.fileURL('es-modules/package-type-module/noext-wasm')); + strictEqual(add(1, 2), 3); + }); + }); + +describe(`the type flag should change the interpretation of certain files within a package scope that lacks a +"type" field and is not under node_modules`, { concurrency: true }, () => { + it('should run as ESM a .js file within package scope that has no defined "type" and is not under node_modules', + async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-without-type/module.js'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it(`should run as ESM an extensionless JavaScript file within a package scope that has no defined "type" and is not +under node_modules`, async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-without-type/noext-esm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it(`should run as Wasm an extensionless Wasm file within a package scope that has no defined "type" and is not under + node_modules`, async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--experimental-wasm-modules', + '--no-warnings', + fixtures.path('es-modules/noext-wasm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, ''); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should import as ESM a .js file within package scope that has no defined "type" and is not under node_modules', + async () => { + const { default: defaultExport } = await import(fixtures.fileURL('es-modules/package-without-type/module.js')); + strictEqual(defaultExport, 'module'); + }); + + it(`should import as ESM an extensionless JavaScript file within a package scope that has no defined "type" and is + not under node_modules`, async () => { + const { default: defaultExport } = await import(fixtures.fileURL('es-modules/package-without-type/noext-esm')); + strictEqual(defaultExport, 'module'); + }); + + it(`should import as Wasm an extensionless Wasm file within a package scope that has no defined "type" and is not + under node_modules`, async () => { + const { add } = await import(fixtures.fileURL('es-modules/noext-wasm')); + strictEqual(add(1, 2), 3); + }); +}); + +describe(`the type flag should NOT change the interpretation of certain files within a package scope that lacks a +"type" field and is under node_modules`, { concurrency: true }, () => { + it('should run as CommonJS a .js file within package scope that has no defined "type" and is under node_modules', + async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json/run.js'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it(`should import as CommonJS a .js file within a package scope that has no defined "type" and is under + node_modules`, async () => { + const { default: defaultExport } = + await import(fixtures.fileURL('es-modules/package-type-module/node_modules/dep-with-package-json/run.js')); + strictEqual(defaultExport, 42); + }); + + it(`should run as CommonJS an extensionless JavaScript file within a package scope that has no defined "type" and is + under node_modules`, async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it(`should import as CommonJS an extensionless JavaScript file within a package scope that has no defined "type" and + is under node_modules`, async () => { + const { default: defaultExport } = + await import(fixtures.fileURL('es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs')); + strictEqual(defaultExport, 42); + }); +}); diff --git a/test/es-module/test-esm-type-flag-string-input.mjs b/test/es-module/test-esm-type-flag-string-input.mjs new file mode 100644 index 00000000000000..c4236c00c4f28f --- /dev/null +++ b/test/es-module/test-esm-type-flag-string-input.mjs @@ -0,0 +1,44 @@ +import { spawnPromisified } from '../common/index.mjs'; +import { spawn } from 'node:child_process'; +import { describe, it } from 'node:test'; +import { strictEqual, match } from 'node:assert'; + +describe('the type flag should change the interpretation of string input', { concurrency: true }, () => { + it('should run as ESM input passed via --eval', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--eval', + 'import "data:text/javascript,console.log(42)"', + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, '42\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + // ESM is unsupported for --print via --input-type=module + + it('should run as ESM input passed via STDIN', async () => { + const child = spawn(process.execPath, [ + '--experimental-default-type=module', + ]); + child.stdin.end('console.log(typeof import.meta.resolve)'); + + match((await child.stdout.toArray()).toString(), /^function\r?\n$/); + }); + + it('should be overridden by --input-type', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-default-type=module', + '--input-type=commonjs', + '--eval', + 'console.log(require("process").version)', + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, `${process.version}\n`); + strictEqual(code, 0); + strictEqual(signal, null); + }); +}); diff --git a/test/es-module/test-esm-unknown-or-no-extension.js b/test/es-module/test-esm-unknown-or-no-extension.js index 3f0660e5aa9225..83ebcc6267bfc3 100644 --- a/test/es-module/test-esm-unknown-or-no-extension.js +++ b/test/es-module/test-esm-unknown-or-no-extension.js @@ -26,10 +26,10 @@ describe('ESM: extensionless and unknown specifiers', { concurrency: true }, () assert.strictEqual(code, 1); assert.strictEqual(signal, null); assert.strictEqual(stdout, ''); - assert.ok(stderr.includes('ERR_UNKNOWN_FILE_EXTENSION')); + assert.match(stderr, /ERR_UNKNOWN_FILE_EXTENSION/); if (fixturePath.includes('noext')) { // Check for explanation to users - assert.ok(stderr.includes('extensionless')); + assert.match(stderr, /extensionless/); } }); } diff --git a/test/parallel/test-esm-url-extname.js b/test/es-module/test-esm-url-extname.js similarity index 100% rename from test/parallel/test-esm-url-extname.js rename to test/es-module/test-esm-url-extname.js diff --git a/test/parallel/test-wasm-memory-out-of-bound.js b/test/es-module/test-wasm-memory-out-of-bound.js similarity index 100% rename from test/parallel/test-wasm-memory-out-of-bound.js rename to test/es-module/test-wasm-memory-out-of-bound.js diff --git a/test/parallel/test-wasm-simple.js b/test/es-module/test-wasm-simple.js similarity index 100% rename from test/parallel/test-wasm-simple.js rename to test/es-module/test-wasm-simple.js diff --git a/test/parallel/test-wasm-web-api.js b/test/es-module/test-wasm-web-api.js similarity index 100% rename from test/parallel/test-wasm-web-api.js rename to test/es-module/test-wasm-web-api.js diff --git a/test/fixtures/es-modules/imports-loose.mjs b/test/fixtures/es-modules/imports-loose.mjs new file mode 100644 index 00000000000000..13831e5db03e82 --- /dev/null +++ b/test/fixtures/es-modules/imports-loose.mjs @@ -0,0 +1 @@ +import './loose.js'; diff --git a/test/fixtures/es-modules/imports-noext.mjs b/test/fixtures/es-modules/imports-noext.mjs new file mode 100644 index 00000000000000..96eca54521b9d3 --- /dev/null +++ b/test/fixtures/es-modules/imports-noext.mjs @@ -0,0 +1 @@ +import './noext-esm'; diff --git a/test/fixtures/es-modules/loose.js b/test/fixtures/es-modules/loose.js new file mode 100644 index 00000000000000..69147a3b8ca027 --- /dev/null +++ b/test/fixtures/es-modules/loose.js @@ -0,0 +1,3 @@ +// This file can be run or imported only if `--experimental-default-type=module` is set. +export default 'module'; +console.log('executed'); diff --git a/test/fixtures/es-modules/noext-esm b/test/fixtures/es-modules/noext-esm new file mode 100644 index 00000000000000..251d6e538a1fcf --- /dev/null +++ b/test/fixtures/es-modules/noext-esm @@ -0,0 +1,2 @@ +export default 'module'; +console.log('executed'); diff --git a/test/fixtures/es-modules/noext-wasm b/test/fixtures/es-modules/noext-wasm new file mode 100644 index 0000000000000000000000000000000000000000..9e035904b2e4d0a30ce5a63bcf05cc3a2c8449db GIT binary patch literal 136 zcmZ9COA5k35Jam#kl=s>MAx~130^|TEhaEo*f23T0he=in=IYDDqa=lk_iA^G=gdb zBG>AL9Q@$(Fn;}VPs=uBD{AGr0)Mu(GOe%O7ZMd>X|61DN|4~3^7j7hOM should still be CommonJS as it is in node_modules +module.exports = 42; diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs new file mode 100644 index 00000000000000..7712b3bad54497 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs @@ -0,0 +1,3 @@ +// No package.json -> should still be CommonJS as it is in node_modules +module.exports = 42; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/package.json b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/package.json new file mode 100644 index 00000000000000..5ee78b14c414b2 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/package.json @@ -0,0 +1,7 @@ +{ + "name": "dep-with-package-json", + "version": "1.0.0", + "exports": { + "./*": "./*" + } +} diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/run.js b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/run.js new file mode 100644 index 00000000000000..7712b3bad54497 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json/run.js @@ -0,0 +1,3 @@ +// No package.json -> should still be CommonJS as it is in node_modules +module.exports = 42; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep/dep.js b/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/dep.js similarity index 100% rename from test/fixtures/es-modules/package-type-module/node_modules/dep/dep.js rename to test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/dep.js diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/noext-cjs b/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/noext-cjs new file mode 100644 index 00000000000000..7712b3bad54497 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/noext-cjs @@ -0,0 +1,3 @@ +// No package.json -> should still be CommonJS as it is in node_modules +module.exports = 42; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/run.js b/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/run.js new file mode 100644 index 00000000000000..7712b3bad54497 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-without-package-json/run.js @@ -0,0 +1,3 @@ +// No package.json -> should still be CommonJS as it is in node_modules +module.exports = 42; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/noext-wasm b/test/fixtures/es-modules/package-type-module/noext-wasm new file mode 100644 index 0000000000000000000000000000000000000000..9e035904b2e4d0a30ce5a63bcf05cc3a2c8449db GIT binary patch literal 136 zcmZ9COA5k35Jam#kl=s>MAx~130^|TEhaEo*f23T0he=in=IYDDqa=lk_iA^G=gdb zBG>AL9Q@$(Fn;}VPs=uBD{AGr0)Mu(GOe%O7ZMd>X|61DN|4~3^7j7hOM Date: Fri, 29 Sep 2023 09:46:32 +0100 Subject: [PATCH 024/232] esm: fix cache collision on JSON files using file: URL PR-URL: https://github.com/nodejs/node/pull/49887 Fixes: https://github.com/nodejs/node/issues/49724 Reviewed-By: Geoffrey Booth Reviewed-By: LiviaMedeiros Reviewed-By: Jacob Smith Reviewed-By: Chemi Atlow --- lib/internal/modules/esm/translators.js | 10 ++-- test/es-module/test-esm-json.mjs | 62 +++++++++++++++++++++++- test/es-module/test-esm-virtual-json.mjs | 30 ++++++++++++ 3 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 test/es-module/test-esm-virtual-json.mjs diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index bd67593f993e07..cf9afb741aab85 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -11,6 +11,7 @@ const { SafeArrayIterator, SafeMap, SafeSet, + StringPrototypeIncludes, StringPrototypeReplaceAll, StringPrototypeSlice, StringPrototypeStartsWith, @@ -443,9 +444,12 @@ translators.set('json', function jsonStrategy(url, source) { debug(`Loading JSONModule ${url}`); const pathname = StringPrototypeStartsWith(url, 'file:') ? fileURLToPath(url) : null; + const shouldCheckAndPopulateCJSModuleCache = + // We want to involve the CJS loader cache only for `file:` URL with no search query and no hash. + pathname && !StringPrototypeIncludes(url, '?') && !StringPrototypeIncludes(url, '#'); let modulePath; let module; - if (pathname) { + if (shouldCheckAndPopulateCJSModuleCache) { modulePath = isWindows ? StringPrototypeReplaceAll(pathname, '/', '\\') : pathname; module = CJSModule._cache[modulePath]; @@ -457,7 +461,7 @@ translators.set('json', function jsonStrategy(url, source) { } } source = stringify(source); - if (pathname) { + if (shouldCheckAndPopulateCJSModuleCache) { // A require call could have been called on the same file during loading and // that resolves synchronously. To make sure we always return the identical // export, we have to check again if the module already exists or not. @@ -484,7 +488,7 @@ translators.set('json', function jsonStrategy(url, source) { err.message = errPath(url) + ': ' + err.message; throw err; } - if (pathname) { + if (shouldCheckAndPopulateCJSModuleCache) { CJSModule._cache[modulePath] = module; } cjsCache.set(url, module); diff --git a/test/es-module/test-esm-json.mjs b/test/es-module/test-esm-json.mjs index 2740c0097f77da..82232838b79150 100644 --- a/test/es-module/test-esm-json.mjs +++ b/test/es-module/test-esm-json.mjs @@ -2,7 +2,10 @@ import { spawnPromisified } from '../common/index.mjs'; import * as fixtures from '../common/fixtures.mjs'; import assert from 'node:assert'; import { execPath } from 'node:process'; -import { describe, it } from 'node:test'; +import { describe, it, test } from 'node:test'; + +import { mkdir, rm, writeFile } from 'node:fs/promises'; +import * as tmpdir from '../common/tmpdir.js'; import secret from '../fixtures/experimental.json' assert { type: 'json' }; @@ -21,4 +24,61 @@ describe('ESM: importing JSON', () => { assert.strictEqual(code, 0); assert.strictEqual(signal, null); }); + + test('should load different modules when the URL is different', async (t) => { + const root = tmpdir.fileURL(`./test-esm-json-${Math.random()}/`); + try { + await mkdir(root, { recursive: true }); + + await t.test('json', async () => { + let i = 0; + const url = new URL('./foo.json', root); + await writeFile(url, JSON.stringify({ id: i++ })); + const absoluteURL = await import(`${url}`, { + assert: { type: 'json' }, + }); + await writeFile(url, JSON.stringify({ id: i++ })); + const queryString = await import(`${url}?a=2`, { + assert: { type: 'json' }, + }); + await writeFile(url, JSON.stringify({ id: i++ })); + const hash = await import(`${url}#a=2`, { + assert: { type: 'json' }, + }); + await writeFile(url, JSON.stringify({ id: i++ })); + const queryStringAndHash = await import(`${url}?a=2#a=2`, { + assert: { type: 'json' }, + }); + + assert.notDeepStrictEqual(absoluteURL, queryString); + assert.notDeepStrictEqual(absoluteURL, hash); + assert.notDeepStrictEqual(queryString, hash); + assert.notDeepStrictEqual(absoluteURL, queryStringAndHash); + assert.notDeepStrictEqual(queryString, queryStringAndHash); + assert.notDeepStrictEqual(hash, queryStringAndHash); + }); + + await t.test('js', async () => { + let i = 0; + const url = new URL('./foo.mjs', root); + await writeFile(url, `export default ${JSON.stringify({ id: i++ })}\n`); + const absoluteURL = await import(`${url}`); + await writeFile(url, `export default ${JSON.stringify({ id: i++ })}\n`); + const queryString = await import(`${url}?a=1`); + await writeFile(url, `export default ${JSON.stringify({ id: i++ })}\n`); + const hash = await import(`${url}#a=1`); + await writeFile(url, `export default ${JSON.stringify({ id: i++ })}\n`); + const queryStringAndHash = await import(`${url}?a=1#a=1`); + + assert.notDeepStrictEqual(absoluteURL, queryString); + assert.notDeepStrictEqual(absoluteURL, hash); + assert.notDeepStrictEqual(queryString, hash); + assert.notDeepStrictEqual(absoluteURL, queryStringAndHash); + assert.notDeepStrictEqual(queryString, queryStringAndHash); + assert.notDeepStrictEqual(hash, queryStringAndHash); + }); + } finally { + await rm(root, { force: true, recursive: true }); + } + }); }); diff --git a/test/es-module/test-esm-virtual-json.mjs b/test/es-module/test-esm-virtual-json.mjs new file mode 100644 index 00000000000000..8ff185a428ef01 --- /dev/null +++ b/test/es-module/test-esm-virtual-json.mjs @@ -0,0 +1,30 @@ +import '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { register } from 'node:module'; +import assert from 'node:assert'; + +async function resolve(referrer, context, next) { + const result = await next(referrer, context); + const url = new URL(result.url); + url.searchParams.set('randomSeed', Math.random()); + result.url = url.href; + return result; +} + +function load(url, context, next) { + if (context.importAssertions.type === 'json') { + return { + shortCircuit: true, + format: 'json', + source: JSON.stringify({ data: Math.random() }), + }; + } + return next(url, context); +} + +register(`data:text/javascript,export ${encodeURIComponent(resolve)};export ${encodeURIComponent(load)}`); + +assert.notDeepStrictEqual( + await import(fixtures.fileURL('empty.json'), { assert: { type: 'json' } }), + await import(fixtures.fileURL('empty.json'), { assert: { type: 'json' } }), +); From 55485ff1cc4caec867e460d8b0c26e140178ded5 Mon Sep 17 00:00:00 2001 From: Tim Perry <1526883+pimterry@users.noreply.github.com> Date: Fri, 29 Sep 2023 13:56:33 +0300 Subject: [PATCH 025/232] crypto: return clear errors when loading invalid PFX data PR-URL: https://github.com/nodejs/node/pull/49566 Reviewed-By: Ben Noordhuis --- src/crypto/crypto_context.cc | 76 ++++++++++++++++-------- test/fixtures/keys/cert-without-key.pfx | Bin 0 -> 1483 bytes test/parallel/test-tls-invalid-pfx.js | 23 +++++++ 3 files changed, 74 insertions(+), 25 deletions(-) create mode 100644 test/fixtures/keys/cert-without-key.pfx create mode 100644 test/parallel/test-tls-invalid-pfx.js diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc index 3876adf7d72211..6e5bbe07d0c337 100644 --- a/src/crypto/crypto_context.cc +++ b/src/crypto/crypto_context.cc @@ -1052,34 +1052,60 @@ void SecureContext::LoadPKCS12(const FunctionCallbackInfo& args) { EVP_PKEY* pkey_ptr = nullptr; X509* cert_ptr = nullptr; STACK_OF(X509)* extra_certs_ptr = nullptr; - if (d2i_PKCS12_bio(in.get(), &p12_ptr) && - (p12.reset(p12_ptr), true) && // Move ownership to the smart pointer. - PKCS12_parse(p12.get(), pass.data(), - &pkey_ptr, - &cert_ptr, - &extra_certs_ptr) && - (pkey.reset(pkey_ptr), cert.reset(cert_ptr), - extra_certs.reset(extra_certs_ptr), true) && // Move ownership. - SSL_CTX_use_certificate_chain(sc->ctx_.get(), - std::move(cert), - extra_certs.get(), - &sc->cert_, - &sc->issuer_) && - SSL_CTX_use_PrivateKey(sc->ctx_.get(), pkey.get())) { - // Add CA certs too - for (int i = 0; i < sk_X509_num(extra_certs.get()); i++) { - X509* ca = sk_X509_value(extra_certs.get(), i); - - if (cert_store == GetOrCreateRootCertStore()) { - cert_store = NewRootCertStore(); - SSL_CTX_set_cert_store(sc->ctx_.get(), cert_store); - } - X509_STORE_add_cert(cert_store, ca); - SSL_CTX_add_client_CA(sc->ctx_.get(), ca); + + if (!d2i_PKCS12_bio(in.get(), &p12_ptr)) { + goto done; + } + + // Move ownership to the smart pointer: + p12.reset(p12_ptr); + + if (!PKCS12_parse( + p12.get(), pass.data(), &pkey_ptr, &cert_ptr, &extra_certs_ptr)) { + goto done; + } + + // Move ownership of the parsed data: + pkey.reset(pkey_ptr); + cert.reset(cert_ptr); + extra_certs.reset(extra_certs_ptr); + + if (!pkey) { + return THROW_ERR_CRYPTO_OPERATION_FAILED( + env, "Unable to load private key from PFX data"); + } + + if (!cert) { + return THROW_ERR_CRYPTO_OPERATION_FAILED( + env, "Unable to load certificate from PFX data"); + } + + if (!SSL_CTX_use_certificate_chain(sc->ctx_.get(), + std::move(cert), + extra_certs.get(), + &sc->cert_, + &sc->issuer_)) { + goto done; + } + + if (!SSL_CTX_use_PrivateKey(sc->ctx_.get(), pkey.get())) { + goto done; + } + + // Add CA certs too + for (int i = 0; i < sk_X509_num(extra_certs.get()); i++) { + X509* ca = sk_X509_value(extra_certs.get(), i); + + if (cert_store == GetOrCreateRootCertStore()) { + cert_store = NewRootCertStore(); + SSL_CTX_set_cert_store(sc->ctx_.get(), cert_store); } - ret = true; + X509_STORE_add_cert(cert_store, ca); + SSL_CTX_add_client_CA(sc->ctx_.get(), ca); } + ret = true; +done: if (!ret) { // TODO(@jasnell): Should this use ThrowCryptoError? unsigned long err = ERR_get_error(); // NOLINT(runtime/int) diff --git a/test/fixtures/keys/cert-without-key.pfx b/test/fixtures/keys/cert-without-key.pfx new file mode 100644 index 0000000000000000000000000000000000000000..6d3dfca11fe98446931033e13becbac383c4ffe0 GIT binary patch literal 1483 zcmV;+1vL6Ff(6F{0Ru3C1$_nyDuzgg_YDCD0ic2fZUlk_YA}KYW-x*UVg?B+hDe6@ z4FLxRpn?TcFoFe70s#Opf(1wh2`Yw2hW8Bt2LUiw1_>&LNQU{y72y2mmk)1_&yKNQU#O#UHS2`M*uHl*Y}gTW4Q|oITZZb;6sl8 z(4$~E$;+L?JrMzk8(BxR;3u%tVo07nMt4gkG}qqa&eGuX8Jmo0gyfwfC#ZZv7#Od> zf7Ms*50>9X^O`|_z%csxE%??5SQ`}<3H|n^MevmqNw||p0`xmubT1pdlzs~~0zM)p z1@-J>32N$x3_xU<)7aAWlH0acz*gg(3PyHh=0ZQj=dD$qXfsfPxV^wS=`Pif&Pi?E zvXX+YyS%WMbm?6JA4Bn$Y(!(vOQNi{tj+`B*4X_K$6&6UVxv6N?k>{B#WU#1YC-bm zxK=>q`{1xwwx^F`t0DN>0z-T+A-W9ho+f4=^kUF$McklhPYxMM7+q~lrO z$l@`7JSoQS)bY5nyqGtLipeawJbqhxYX1Ro90l&dUG*OCZ8I5dxg003PcVVJv?pNG zynCut%73q?{bv5~Ojsm};it&!X=wOgB1RL?v&%*yf!V}7<6tQ}-f`6fZ}nj?&ZmR0MPr4{Y`66nsSo6FrFtZHsE!}%3^IzQ|FLg5t_dSYR(W` zCQBF-bw|o=c41Sw{xV@QRZtl|Fy_elo%iw@O$d(Zxiw)dQ5OP+)V?^)B{78g<>`m; z?`0GJcLvrYR{!a#H7;7wn3qcNJSjUPvezmA3_jH$Kpg7WT?r3pXjPQ(~l|vF1!kwnm=ZE_FKb}?L%KJ5`%fSKnRIjZnrfBbTuY|g$l~k z)`xjW;3Xl`Gm5HcICGd3Bd$ggIk$Pu2yQ8Ap;p zi#xF3uFLq=^EZfVMTuX~Zg>2^14sU<7{ZP@a!kD+x=J0tz<^OaOcor%%YI>!O~A-V zUrp-(Fm?m4RFZRa!gxNTwB;8tK`=2e4F(BdhDZTr0|WvA1povfbA{bAVR(y9g{P(W l8fsA}>cmtx`2HsZuA { + assert.strictEqual(e.message, 'Unable to load private key from PFX data'); + cleanup(); +})); From e66991e6b24be18e03741ab31b129a2f50772473 Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Fri, 29 Sep 2023 13:04:38 +0200 Subject: [PATCH 026/232] errors: improve formatList in errors.js PR-URL: https://github.com/nodejs/node/pull/49642 Reviewed-By: Yagiz Nizipli Reviewed-By: LiviaMedeiros Reviewed-By: Antoine du Hamel --- benchmark/error/format-list.js | 44 +++++++++++++++++++++++++ lib/internal/errors.js | 10 ++++-- test/parallel/test-error-format-list.js | 2 +- 3 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 benchmark/error/format-list.js diff --git a/benchmark/error/format-list.js b/benchmark/error/format-list.js new file mode 100644 index 00000000000000..f35ca3593a743c --- /dev/null +++ b/benchmark/error/format-list.js @@ -0,0 +1,44 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + n: [1e7], + input: [ + '', + 'a', + 'a,b', + 'a,b,c', + 'a,b,c,d', + ], + type: [ + 'undefined', + 'and', + 'or', + ], +}, { + flags: ['--expose-internals'], +}); + +function main({ n, input, type }) { + const { + formatList, + } = require('internal/errors'); + + const list = input.split(','); + + if (type === 'undefined') { + bench.start(); + for (let i = 0; i < n; ++i) { + formatList(list); + } + bench.end(n); + return; + } + + bench.start(); + for (let i = 0; i < n; ++i) { + formatList(list, type); + } + bench.end(n); +} diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 6bba8ec095e86e..4928ac97d51537 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -967,8 +967,14 @@ function determineSpecificType(value) { * @returns {string} */ function formatList(array, type = 'and') { - return array.length < 3 ? ArrayPrototypeJoin(array, ` ${type} `) : - `${ArrayPrototypeJoin(ArrayPrototypeSlice(array, 0, -1), ', ')}, ${type} ${array[array.length - 1]}`; + switch (array.length) { + case 0: return ''; + case 1: return `${array[0]}`; + case 2: return `${array[0]} ${type} ${array[1]}`; + case 3: return `${array[0]}, ${array[1]}, ${type} ${array[2]}`; + default: + return `${ArrayPrototypeJoin(ArrayPrototypeSlice(array, 0, -1), ', ')}, ${type} ${array[array.length - 1]}`; + } } module.exports = { diff --git a/test/parallel/test-error-format-list.js b/test/parallel/test-error-format-list.js index 54ae4e0aee714d..2fd95584d22318 100644 --- a/test/parallel/test-error-format-list.js +++ b/test/parallel/test-error-format-list.js @@ -11,7 +11,7 @@ if (!common.hasIntl) common.skip('missing Intl'); const and = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' }); const or = new Intl.ListFormat('en', { style: 'long', type: 'disjunction' }); - const input = ['apple', 'banana', 'orange']; + const input = ['apple', 'banana', 'orange', 'pear']; for (let i = 0; i < input.length; i++) { const slicedInput = input.slice(0, i); strictEqual(formatList(slicedInput), and.format(slicedInput)); From ba169be5ca7f2d6061414d58f28edafb58c71f6b Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Fri, 29 Sep 2023 20:04:48 +0900 Subject: [PATCH 027/232] src: move const variable in `node_file.h` to `node_file.cc` PR-URL: https://github.com/nodejs/node/pull/49688 Refs: https://github.com/nodejs/node/pull/48325 Reviewed-By: Yagiz Nizipli --- src/node_file.cc | 23 ++++++++++++++++------- src/node_file.h | 8 -------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/node_file.cc b/src/node_file.cc index 59780dec1c4b6d..8284ab744d829c 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -3155,11 +3155,19 @@ BindingData::FilePathIsFileReturnType BindingData::FilePathIsFile( return BindingData::FilePathIsFileReturnType::kIsNotFile; } +namespace { + +// define the final index of the algorithm resolution +// when packageConfig.main is defined. +constexpr uint8_t legacy_main_extensions_with_main_end = 7; +// define the final index of the algorithm resolution +// when packageConfig.main is NOT defined +constexpr uint8_t legacy_main_extensions_package_fallback_end = 10; // the possible file extensions that should be tested // 0-6: when packageConfig.main is defined // 7-9: when packageConfig.main is NOT defined, // or when the previous case didn't found the file -const std::array BindingData::legacy_main_extensions = { +constexpr std::array legacy_main_extensions = { "", ".js", ".json", @@ -3171,6 +3179,8 @@ const std::array BindingData::legacy_main_extensions = { ".json", ".node"}; +} // namespace + void BindingData::LegacyMainResolve(const FunctionCallbackInfo& args) { CHECK_GE(args.Length(), 1); CHECK(args[0]->IsString()); @@ -3211,9 +3221,8 @@ void BindingData::LegacyMainResolve(const FunctionCallbackInfo& args) { FromNamespacedPath(&initial_file_path); - for (int i = 0; i < BindingData::legacy_main_extensions_with_main_end; - i++) { - file_path = initial_file_path + BindingData::legacy_main_extensions[i]; + for (int i = 0; i < legacy_main_extensions_with_main_end; i++) { + file_path = initial_file_path + std::string(legacy_main_extensions[i]); switch (FilePathIsFile(env, file_path)) { case BindingData::FilePathIsFileReturnType::kIsFile: @@ -3246,10 +3255,10 @@ void BindingData::LegacyMainResolve(const FunctionCallbackInfo& args) { FromNamespacedPath(&initial_file_path); - for (int i = BindingData::legacy_main_extensions_with_main_end; - i < BindingData::legacy_main_extensions_package_fallback_end; + for (int i = legacy_main_extensions_with_main_end; + i < legacy_main_extensions_package_fallback_end; i++) { - file_path = initial_file_path + BindingData::legacy_main_extensions[i]; + file_path = initial_file_path + std::string(legacy_main_extensions[i]); switch (FilePathIsFile(env, file_path)) { case BindingData::FilePathIsFileReturnType::kIsFile: diff --git a/src/node_file.h b/src/node_file.h index 4599546c524530..dad50996f1b003 100644 --- a/src/node_file.h +++ b/src/node_file.h @@ -102,14 +102,6 @@ class BindingData : public SnapshotableObject { static FilePathIsFileReturnType FilePathIsFile(Environment* env, const std::string& file_path); - - static const std::array legacy_main_extensions; - // define the final index of the algorithm resolution - // when packageConfig.main is defined. - static const uint8_t legacy_main_extensions_with_main_end = 7; - // define the final index of the algorithm resolution - // when packageConfig.main is NOT defined - static const uint8_t legacy_main_extensions_package_fallback_end = 10; }; // structure used to store state during a complex operation, e.g., mkdirp. From 10b35cfb6e94b523e200f87253719d09c8f837b0 Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Fri, 29 Sep 2023 07:04:58 -0400 Subject: [PATCH 028/232] test_runner: replace spurious if with else There is an `if` statement that likely should have been an `else` in the original PR. Refs: https://github.com/nodejs/node/pull/48915 PR-URL: https://github.com/nodejs/node/pull/49943 Reviewed-By: Chemi Atlow Reviewed-By: Moshe Atlow Reviewed-By: Raz Luvaton Reviewed-By: Benjamin Gruenbaum Reviewed-By: LiviaMedeiros --- lib/internal/test_runner/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/test_runner/test.js b/lib/internal/test_runner/test.js index 4afb93f4a60df0..4eb02c5d4e3118 100644 --- a/lib/internal/test_runner/test.js +++ b/lib/internal/test_runner/test.js @@ -86,7 +86,7 @@ function stopTest(timeout, signal) { if (timeout === kDefaultTimeout) { disposeFunction = abortListener[SymbolDispose]; - } if (timeout !== kDefaultTimeout) { + } else { timer = setTimeout(() => deferred.resolve(), timeout); timer.unref(); From 3e0d47c1f49fc3f360b6de95b61c2787b531e96d Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Fri, 29 Sep 2023 20:14:24 +0900 Subject: [PATCH 029/232] lib: update params in jsdoc for `HTTPRequestOptions` PR-URL: https://github.com/nodejs/node/pull/49872 Reviewed-By: Marco Ippolito Reviewed-By: Matteo Collina --- lib/http.js | 2 ++ lib/https.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib/http.js b/lib/http.js index d86d36d12c2b14..9fce02d6e3b3ac 100644 --- a/lib/http.js +++ b/lib/http.js @@ -76,6 +76,7 @@ function createServer(opts, requestListener) { * @property {string} [host] A domain name or IP address of the server to issue the request to. * @property {string} [hostname] Alias for host. * @property {boolean} [insecureHTTPParser] Use an insecure HTTP parser that accepts invalid HTTP headers when true. + * @property {boolean} [joinDuplicateHeaders] Multiple header that joined with `,` field line values. * @property {string} [localAddress] Local interface to bind for network connections. * @property {number} [localPort] Local port to connect from. * @property {Function} [lookup] Custom lookup function. Default: dns.lookup(). @@ -88,6 +89,7 @@ function createServer(opts, requestListener) { * @property {AbortSignal} [signal] An AbortSignal that may be used to abort an ongoing request. * @property {string} [socketPath] Unix domain socket. * @property {number} [timeout] A number specifying the socket timeout in milliseconds. + * @property {Array} [uniqueHeaders] A list of request headers that should be sent only once. */ /** diff --git a/lib/https.js b/lib/https.js index 70ffa73ff1996b..ca8c49d5bef319 100644 --- a/lib/https.js +++ b/lib/https.js @@ -392,6 +392,7 @@ function request(...args) { * host?: string; * hostname?: string; * insecureHTTPParser?: boolean; + * joinDuplicateHeaders?: boolean; * localAddress?: string; * localPort?: number; * lookup?: Function; @@ -404,6 +405,7 @@ function request(...args) { * socketPath?: string; * timeout?: number; * signal?: AbortSignal; + * uniqueHeaders?: Array; * } | string | URL} [options] * @param {Function} [cb] * @returns {ClientRequest} From 24458e2ac33f88cf7281d767e02c2ceb1e2605fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Fri, 29 Sep 2023 13:31:51 +0200 Subject: [PATCH 030/232] doc: document dangerous symlink behavior Much earlier, a design decision was made that the permission model should not prevent following symbolic links to presumably inaccessible locations. Recently, after some back and forth, it had been decided that it is indeed a vulnerability that symbolic links, which currently point to an accessible location, can potentially be re-targeted to point to a presumably inaccessible location. Nevertheless, months later, no solution has been found and the issue is deemed unfixable in the context of the current permission model implementation, so it was decided to disclose the vulnerability and to shift responsibiliy onto users who are now responsible for ensuring that no potentially dangerous symlinks exist in any directories that they grant access to. I believe that this design issue might be surprising and that it comes with significant security implications for users, so it should be documented. Original vulnerability report: https://hackerone.com/reports/1961655 PR-URL: https://github.com/nodejs/node/pull/49154 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Antoine du Hamel --- doc/api/permissions.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/api/permissions.md b/doc/api/permissions.md index 33e24f49dd5a7e..e17bbb38e55cbc 100644 --- a/doc/api/permissions.md +++ b/doc/api/permissions.md @@ -568,6 +568,11 @@ There are constraints you need to know before using this system: * Relative paths are not supported through the CLI (`--allow-fs-*`). * The model does not inherit to a child node process. * The model does not inherit to a worker thread. +* Symbolic links will be followed even to locations outside of the set of paths + that access has been granted to. Relative symbolic links may allow access to + arbitrary files and directories. When starting applications with the + permission model enabled, you must ensure that no paths to which access has + been granted contain relative symbolic links. * When creating symlinks the target (first argument) should have read and write access. * Permission changes are not retroactively applied to existing resources. From d9eda6761bb306e97268ef3d03852c875289e1a1 Mon Sep 17 00:00:00 2001 From: Sam Verschueren Date: Fri, 29 Sep 2023 15:58:42 +0200 Subject: [PATCH 031/232] lib: fix `primordials` typings PR-URL: https://github.com/nodejs/node/pull/49895 Reviewed-By: Antoine du Hamel Reviewed-By: Moshe Atlow Reviewed-By: Yagiz Nizipli Reviewed-By: Chemi Atlow --- typings/primordials.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typings/primordials.d.ts b/typings/primordials.d.ts index c0a4dd2348bf03..006ecace1ead1c 100644 --- a/typings/primordials.d.ts +++ b/typings/primordials.d.ts @@ -427,8 +427,8 @@ declare namespace primordials { export const SymbolFor: typeof Symbol.for export const SymbolKeyFor: typeof Symbol.keyFor export const SymbolAsyncIterator: typeof Symbol.asyncIterator - export const SymbolDispose: typeof Symbol // TODO(MoLow): use typeof Symbol.dispose when it's available - export const SymbolAsyncDispose: typeof Symbol // TODO(MoLow): use typeof Symbol.asyncDispose when it's available + export const SymbolDispose: symbol // TODO(MoLow): use typeof Symbol.dispose when it's available + export const SymbolAsyncDispose: symbol // TODO(MoLow): use typeof Symbol.asyncDispose when it's available export const SymbolHasInstance: typeof Symbol.hasInstance export const SymbolIsConcatSpreadable: typeof Symbol.isConcatSpreadable export const SymbolIterator: typeof Symbol.iterator From f564ed4e05c9859d7b27a9f947f20f7a0d09e236 Mon Sep 17 00:00:00 2001 From: MatteoBax <98881971+MatteoBax@users.noreply.github.com> Date: Fri, 29 Sep 2023 14:34:21 +0200 Subject: [PATCH 032/232] zlib: fix discovery of cpu-features.h for android Fixed cpu-features.h not found issue. Co-Authored-By: Luigi Pinca Fixes: https://github.com/nodejs/node/issues/49766 PR-URL: https://github.com/nodejs/node/pull/49828 Reviewed-By: Ben Noordhuis Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau --- android_configure.py | 1 + common.gypi | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/android_configure.py b/android_configure.py index 57d940239150df..a82bb56bc5f5b6 100644 --- a/android_configure.py +++ b/android_configure.py @@ -70,6 +70,7 @@ def patch_android(): GYP_DEFINES += " v8_target_arch=" + arch GYP_DEFINES += " android_target_arch=" + arch GYP_DEFINES += " host_os=" + host_os + " OS=android" +GYP_DEFINES += " android_ndk_path=" + android_ndk_path os.environ['GYP_DEFINES'] = GYP_DEFINES if os.path.exists("./configure"): diff --git a/common.gypi b/common.gypi index 519ddcd28e6524..4c856c0912260c 100644 --- a/common.gypi +++ b/common.gypi @@ -230,7 +230,7 @@ ], },], ['OS == "android"', { - 'cflags': [ '-fPIC' ], + 'cflags': [ '-fPIC', '-I<(android_ndk_path)/sources/android/cpufeatures' ], 'ldflags': [ '-fPIC' ] }], ], From 126407d43891bf41dc52f3583f39a9730e9f5afd Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 27 Sep 2023 14:00:21 +0200 Subject: [PATCH 033/232] test: deflake test-perf-hooks.js Previously when checking the initial timing we did a lot of checks after accessing and copying timing.duration and before we check that timing.duration is roughly the same as performance.now(), which can lead to flakes if the overhead of the checking is big enough. Update the test to check timing.duration against performance.now() as soon as possible when it's copied instead of computed. :# PR-URL: https://github.com/nodejs/node/pull/49892 Refs: https://github.com/nodejs/reliability/issues/676 Reviewed-By: Chemi Atlow Reviewed-By: Richard Lau --- test/sequential/test-perf-hooks.js | 62 +++++++++++++++--------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/test/sequential/test-perf-hooks.js b/test/sequential/test-perf-hooks.js index 5ed9ff22ce2d38..1e11f26571480d 100644 --- a/test/sequential/test-perf-hooks.js +++ b/test/sequential/test-perf-hooks.js @@ -41,8 +41,40 @@ const epsilon = 50; assert.strictEqual(performance.nodeTiming.name, 'node'); assert.strictEqual(performance.nodeTiming.entryType, 'node'); +// If timing.duration gets copied into the argument instead of being computed +// via the getter, this should be called right after timing is created. +function checkNodeTiming(timing) { + // Calculate the difference between now() and duration as soon as possible. + const now = performance.now(); + const delta = Math.abs(now - timing.duration); + + log(JSON.stringify(timing, null, 2)); + // Check that the properties are still reasonable. + assert.strictEqual(timing.name, 'node'); + assert.strictEqual(timing.entryType, 'node'); + + // Check that duration is positive and practically the same as + // performance.now() i.e. measures Node.js instance up time. + assert.strictEqual(typeof timing.duration, 'number'); + assert(timing.duration > 0, `timing.duration ${timing.duration} <= 0`); + assert(delta < 10, + `now (${now}) - timing.duration (${timing.duration}) = ${delta} >= ${10}`); + + // Check that the following fields do not change. + assert.strictEqual(timing.startTime, initialTiming.startTime); + assert.strictEqual(timing.nodeStart, initialTiming.nodeStart); + assert.strictEqual(timing.v8Start, initialTiming.v8Start); + assert.strictEqual(timing.environment, initialTiming.environment); + assert.strictEqual(timing.bootstrapComplete, initialTiming.bootstrapComplete); + + assert.strictEqual(typeof timing.loopStart, 'number'); + assert.strictEqual(typeof timing.loopExit, 'number'); +} + +log('check initial nodeTiming'); // Copy all the values from the getters. const initialTiming = { ...performance.nodeTiming }; +checkNodeTiming(initialTiming); { const { @@ -87,36 +119,6 @@ const initialTiming = { ...performance.nodeTiming }; `bootstrapComplete ${bootstrapComplete} >= ${testStartTime}`); } -function checkNodeTiming(timing) { - // Calculate the difference between now() and duration as soon as possible. - const now = performance.now(); - const delta = Math.abs(now - timing.duration); - - log(JSON.stringify(timing, null, 2)); - // Check that the properties are still reasonable. - assert.strictEqual(timing.name, 'node'); - assert.strictEqual(timing.entryType, 'node'); - - // Check that duration is positive and practically the same as - // performance.now() i.e. measures Node.js instance up time. - assert.strictEqual(typeof timing.duration, 'number'); - assert(timing.duration > 0, `timing.duration ${timing.duration} <= 0`); - assert(delta < 10, - `now (${now}) - timing.duration (${timing.duration}) = ${delta} >= 10`); - - // Check that the following fields do not change. - assert.strictEqual(timing.startTime, initialTiming.startTime); - assert.strictEqual(timing.nodeStart, initialTiming.nodeStart); - assert.strictEqual(timing.v8Start, initialTiming.v8Start); - assert.strictEqual(timing.environment, initialTiming.environment); - assert.strictEqual(timing.bootstrapComplete, initialTiming.bootstrapComplete); - - assert.strictEqual(typeof timing.loopStart, 'number'); - assert.strictEqual(typeof timing.loopExit, 'number'); -} - -log('check initial nodeTiming'); -checkNodeTiming(initialTiming); assert.strictEqual(initialTiming.loopExit, -1); function checkValue(timing, name, min, max) { From ad17126501759e05aa67c066e2027482e99e37eb Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Fri, 29 Sep 2023 18:20:46 +0200 Subject: [PATCH 034/232] doc: update CHANGELOG_V20 about vm fixes Jest users might need additional changes to unblock upgrade from v16. PR-URL: https://github.com/nodejs/node/pull/49951 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Richard Lau --- doc/changelogs/CHANGELOG_V20.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/changelogs/CHANGELOG_V20.md b/doc/changelogs/CHANGELOG_V20.md index e97d6ce631993b..b30015ec50785a 100644 --- a/doc/changelogs/CHANGELOG_V20.md +++ b/doc/changelogs/CHANGELOG_V20.md @@ -123,7 +123,7 @@ This rework addressed a series of long-standing memory leaks and use-after-free * `vm.SyntheticModule` * `vm.SourceTextModule` -This should enable affected users (in particular Jest users) to upgrade from older versions of Node.js. +This should enable affected users to upgrade from older versions of Node.js. Contributed by Joyee Cheung in [#48510](https://github.com/nodejs/node/pull/48510). From 35ec93115df6721ec359d07774eece084f756072 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Fri, 29 Sep 2023 20:13:44 +0200 Subject: [PATCH 035/232] stream: writable state bitmap PR-URL: https://github.com/nodejs/node/pull/49899 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Matteo Collina Reviewed-By: Raz Luvaton Reviewed-By: Yagiz Nizipli --- benchmark/streams/writable-manywrites.js | 4 +- lib/internal/streams/writable.js | 267 ++++++++++++++++------- 2 files changed, 192 insertions(+), 79 deletions(-) diff --git a/benchmark/streams/writable-manywrites.js b/benchmark/streams/writable-manywrites.js index e6ab65162c366c..d244c7d606479e 100644 --- a/benchmark/streams/writable-manywrites.js +++ b/benchmark/streams/writable-manywrites.js @@ -4,7 +4,7 @@ const common = require('../common'); const Writable = require('stream').Writable; const bench = common.createBenchmark(main, { - n: [2e6], + n: [1e5], sync: ['yes', 'no'], writev: ['yes', 'no'], callback: ['yes', 'no'], @@ -13,7 +13,7 @@ const bench = common.createBenchmark(main, { function main({ n, sync, writev, callback, len }) { const b = Buffer.allocUnsafe(len); - const s = new Writable(); + const s = new Writable({ highWaterMark: 16 * 1024 }); sync = sync === 'yes'; const writecb = (cb) => { diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 595aadc23c8bec..7b1896baeb47c2 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -72,7 +72,11 @@ ObjectSetPrototypeOf(Writable, Stream); function nop() {} -const kOnFinished = Symbol('kOnFinished'); +const kOnFinishedValue = Symbol('kOnFinishedValue'); +const kErroredValue = Symbol('kErroredValue'); +const kDefaultEncodingValue = Symbol('kDefaultEncodingValue'); +const kWriteCbValue = Symbol('kWriteCbValue'); +const kAfterWriteTickInfoValue = Symbol('kAfterWriteTickInfoValue'); const kObjectMode = 1 << 0; const kEnded = 1 << 1; @@ -94,6 +98,16 @@ const kBufferProcessing = 1 << 16; const kPrefinished = 1 << 17; const kAllBuffers = 1 << 18; const kAllNoop = 1 << 19; +const kOnFinished = 1 << 20; +const kErrored = 1 << 21; +const kHasWritable = 1 << 22; +const kWritable = 1 << 23; +const kCorked = 1 << 24; +const kDefaultUTF8Encoding = 1 << 25; +const kWriteCb = 1 << 26; +const kExpectWriteCb = 1 << 27; +const kAfterWriteTickInfo = 1 << 28; +const kAfterWritePending = 1 << 29; // TODO(benjamingr) it is likely slower to do it this way than with free functions function makeBitMapDescriptor(bit) { @@ -176,6 +190,85 @@ ObjectDefineProperties(WritableState.prototype, { allBuffers: makeBitMapDescriptor(kAllBuffers), allNoop: makeBitMapDescriptor(kAllNoop), + + // Indicates whether the stream has errored. When true all write() calls + // should return false. This is needed since when autoDestroy + // is disabled we need a way to tell whether the stream has failed. + // This is/should be a cold path. + errored: { + __proto__: null, + enumerable: false, + get() { return (this.state & kErrored) !== 0 ? this[kErroredValue] : null; }, + set(value) { + if (value) { + this[kErroredValue] = value; + this.state |= kErrored; + } else { + this.state &= ~kErrored; + } + }, + }, + + writable: { + __proto__: null, + enumerable: false, + get() { return (this.state & kHasWritable) !== 0 ? (this.state & kWritable) !== 0 : undefined; }, + set(value) { + if (value == null) { + this.state &= ~(kHasWritable | kWritable); + } else if (value) { + this.state |= (kHasWritable | kWritable); + } else { + this.state |= kHasWritable; + this.state &= ~kWritable; + } + }, + }, + + defaultEncoding: { + __proto__: null, + enumerable: false, + get() { return (this.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : this[kDefaultEncodingValue]; }, + set(value) { + if (value === 'utf8' || value === 'utf-8') { + this.state |= kDefaultUTF8Encoding; + } else { + this.state &= ~kDefaultUTF8Encoding; + this[kDefaultEncodingValue] = value; + } + }, + }, + + // The callback that the user supplies to write(chunk, encoding, cb). + writecb: { + __proto__: null, + enumerable: false, + get() { return (this.state & kWriteCb) !== 0 ? this[kWriteCbValue] : nop; }, + set(value) { + if (value) { + this[kWriteCbValue] = value; + this.state |= kWriteCb; + } else { + this.state &= ~kWriteCb; + } + }, + }, + + // Storage for data passed to the afterWrite() callback in case of + // synchronous _write() completion. + afterWriteTickInfo: { + __proto__: null, + enumerable: false, + get() { return (this.state & kAfterWriteTickInfo) !== 0 ? this[kAfterWriteTickInfoValue] : null; }, + set(value) { + if (value) { + this[kAfterWriteTickInfoValue] = value; + this.state |= kAfterWriteTickInfo; + } else { + this.state &= ~kAfterWriteTickInfo; + } + }, + }, }); function WritableState(options, stream, isDuplex) { @@ -213,10 +306,11 @@ function WritableState(options, stream, isDuplex) { // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. const defaultEncoding = options?.defaultEncoding; - if (defaultEncoding == null) { - this.defaultEncoding = 'utf8'; + if (defaultEncoding == null || defaultEncoding === 'utf8' || defaultEncoding === 'utf-8') { + this.state |= kDefaultUTF8Encoding; } else if (Buffer.isEncoding(defaultEncoding)) { - this.defaultEncoding = defaultEncoding; + this.state &= ~kDefaultUTF8Encoding; + this[kDefaultEncodingValue] = defaultEncoding; } else { throw new ERR_UNKNOWN_ENCODING(defaultEncoding); } @@ -232,28 +326,14 @@ function WritableState(options, stream, isDuplex) { // The callback that's passed to _write(chunk, cb). this.onwrite = onwrite.bind(undefined, stream); - // The callback that the user supplies to write(chunk, encoding, cb). - this.writecb = null; - // The amount that is being written when _write is called. this.writelen = 0; - // Storage for data passed to the afterWrite() callback in case of - // synchronous _write() completion. - this.afterWriteTickInfo = null; - resetBuffer(this); // Number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted. this.pendingcb = 0; - - // Indicates whether the stream has errored. When true all write() calls - // should return false. This is needed since when autoDestroy - // is disabled we need a way to tell whether the stream has failed. - this.errored = null; - - this[kOnFinished] = []; } function resetBuffer(state) { @@ -344,10 +424,10 @@ function _write(stream, chunk, encoding, cb) { if (typeof encoding === 'function') { cb = encoding; - encoding = state.defaultEncoding; + encoding = (state.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; } else { if (!encoding) - encoding = state.defaultEncoding; + encoding = (state.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); if (typeof cb !== 'function') @@ -394,7 +474,10 @@ Writable.prototype.write = function(chunk, encoding, cb) { }; Writable.prototype.cork = function() { - this._writableState.corked++; + const state = this._writableState; + + state.state |= kCorked; + state.corked++; }; Writable.prototype.uncork = function() { @@ -403,6 +486,10 @@ Writable.prototype.uncork = function() { if (state.corked) { state.corked--; + if (!state.corked) { + state.state &= ~kCorked; + } + if ((state.state & kWriting) === 0) clearBuffer(this, state); } @@ -428,11 +515,13 @@ function writeOrBuffer(stream, state, chunk, encoding, callback) { // stream._write resets state.length const ret = state.length < state.highWaterMark; + // We must ensure that previous needDrain will not be reset to false. - if (!ret) + if (!ret) { state.state |= kNeedDrain; + } - if ((state.state & kWriting) !== 0 || state.corked || state.errored || (state.state & kConstructed) === 0) { + if ((state.state & (kWriting | kErrored | kCorked | kConstructed)) !== kConstructed) { state.buffered.push({ chunk, encoding, callback }); if ((state.state & kAllBuffers) !== 0 && encoding !== 'buffer') { state.state &= ~kAllBuffers; @@ -442,21 +531,25 @@ function writeOrBuffer(stream, state, chunk, encoding, callback) { } } else { state.writelen = len; - state.writecb = callback; - state.state |= kWriting | kSync; + if (callback !== nop) { + state.writecb = callback; + } + state.state |= kWriting | kSync | kExpectWriteCb; stream._write(chunk, encoding, state.onwrite); state.state &= ~kSync; } // Return false if errored or destroyed in order to break // any synchronous while(stream.write(data)) loops. - return ret && !state.errored && (state.state & kDestroyed) === 0; + return ret && (state.state & (kDestroyed | kErrored)) === 0; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; - state.writecb = cb; - state.state |= kWriting | kSync; + if (cb !== nop) { + state.writecb = cb; + } + state.state |= kWriting | kSync | kExpectWriteCb; if ((state.state & kDestroyed) !== 0) state.onwrite(new ERR_STREAM_DESTROYED('write')); else if (writev) @@ -481,16 +574,16 @@ function onwriteError(stream, state, er, cb) { function onwrite(stream, er) { const state = stream._writableState; - const sync = (state.state & kSync) !== 0; - const cb = state.writecb; - if (typeof cb !== 'function') { + if ((state.state & kExpectWriteCb) === 0) { errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK()); return; } - state.state &= ~kWriting; - state.writecb = null; + const sync = (state.state & kSync) !== 0; + const cb = (state.state & kWriteCb) !== 0 ? state[kWriteCbValue] : nop; + + state.state &= ~(kWriting | kExpectWriteCb | kWriteCb); state.length -= state.writelen; state.writelen = 0; @@ -523,12 +616,20 @@ function onwrite(stream, er) { // the same. In that case, we do not schedule a new nextTick(), but // rather just increase a counter, to improve performance and avoid // memory allocations. - if (state.afterWriteTickInfo !== null && - state.afterWriteTickInfo.cb === cb) { + if (cb === nop) { + if ((state.state & kAfterWritePending) === 0) { + process.nextTick(afterWrite, stream, state, 1, cb); + state.state |= kAfterWritePending; + } else { + state.pendingcb -= 1; + } + } else if (state.afterWriteTickInfo !== null && + state.afterWriteTickInfo.cb === cb) { state.afterWriteTickInfo.count++; } else { state.afterWriteTickInfo = { count: 1, cb, stream, state }; process.nextTick(afterWriteTick, state.afterWriteTickInfo); + state.state |= kAfterWritePending; } } else { afterWrite(stream, state, 1, cb); @@ -542,7 +643,9 @@ function afterWriteTick({ stream, state, count, cb }) { } function afterWrite(stream, state, count, cb) { - const needDrain = (state.state & (kEnding | kNeedDrain)) === kNeedDrain && !stream.destroyed && state.length === 0; + state.state &= ~kAfterWritePending; + + const needDrain = (state.state & (kEnding | kNeedDrain | kDestroyed)) === kNeedDrain && state.length === 0; if (needDrain) { state.state &= ~kNeedDrain; stream.emit('drain'); @@ -573,19 +676,16 @@ function errorBuffer(state) { callback(state.errored ?? new ERR_STREAM_DESTROYED('write')); } - const onfinishCallbacks = state[kOnFinished].splice(0); - for (let i = 0; i < onfinishCallbacks.length; i++) { - onfinishCallbacks[i](state.errored ?? new ERR_STREAM_DESTROYED('end')); - } + + callFinishedCallbacks(state, state.errored ?? new ERR_STREAM_DESTROYED('end')); resetBuffer(state); } // If there's something in the buffer waiting, then process it. function clearBuffer(stream, state) { - if (state.corked || - (state.state & (kDestroyed | kBufferProcessing)) !== 0 || - (state.state & kConstructed) === 0) { + if ((state.state & (kDestroyed | kBufferProcessing | kCorked)) !== 0 || + (state.state & kConstructed) === 0) { return; } @@ -661,7 +761,7 @@ Writable.prototype.end = function(chunk, encoding, cb) { let err; - if (chunk !== null && chunk !== undefined) { + if (chunk != null) { const ret = _write(this, chunk, encoding); if (ret instanceof Error) { err = ret; @@ -669,14 +769,14 @@ Writable.prototype.end = function(chunk, encoding, cb) { } // .end() fully uncorks. - if (state.corked) { + if ((state.state & kCorked) !== 0) { state.corked = 1; this.uncork(); } if (err) { // Do nothing... - } else if (!state.errored && (state.state & kEnding) === 0) { + } else if ((state.state & (kEnding | kErrored)) === 0) { // This is forgiving in terms of unnecessary calls to end() and can hide // logic errors. However, usually such errors are harmless and causing a // hard error can be disproportionately destructive. It is not always @@ -698,7 +798,9 @@ Writable.prototype.end = function(chunk, encoding, cb) { } else if ((state.state & kFinished) !== 0) { process.nextTick(cb, null); } else { - state[kOnFinished].push(cb); + state.state |= kOnFinished; + state[kOnFinishedValue] ??= []; + state[kOnFinishedValue].push(cb); } } @@ -715,10 +817,10 @@ function needFinish(state) { kFinished | kWriting | kErrorEmitted | - kCloseEmitted + kCloseEmitted | + kErrored )) === (kEnding | kConstructed) && state.length === 0 && - !state.errored && state.buffered.length === 0); } @@ -734,10 +836,7 @@ function callFinal(stream, state) { state.pendingcb--; if (err) { - const onfinishCallbacks = state[kOnFinished].splice(0); - for (let i = 0; i < onfinishCallbacks.length; i++) { - onfinishCallbacks[i](err); - } + callFinishedCallbacks(state, err); errorOrDestroy(stream, err, (state.state & kSync) !== 0); } else if (needFinish(state)) { state.state |= kPrefinished; @@ -799,10 +898,7 @@ function finish(stream, state) { state.pendingcb--; state.state |= kFinished; - const onfinishCallbacks = state[kOnFinished].splice(0); - for (let i = 0; i < onfinishCallbacks.length; i++) { - onfinishCallbacks[i](null); - } + callFinishedCallbacks(state, null); stream.emit('finish'); @@ -822,8 +918,20 @@ function finish(stream, state) { } } -ObjectDefineProperties(Writable.prototype, { +function callFinishedCallbacks(state, err) { + if ((state.state & kOnFinished) === 0) { + return; + } + + const onfinishCallbacks = state[kOnFinishedValue]; + state[kOnFinishedValue] = null; + state.state &= ~kOnFinished; + for (let i = 0; i < onfinishCallbacks.length; i++) { + onfinishCallbacks[i](err); + } +} +ObjectDefineProperties(Writable.prototype, { closed: { __proto__: null, get() { @@ -867,60 +975,64 @@ ObjectDefineProperties(Writable.prototype, { writableFinished: { __proto__: null, get() { - return this._writableState ? (this._writableState.state & kFinished) !== 0 : false; + const state = this._writableState; + return state ? (state.state & kFinished) !== 0 : false; }, }, writableObjectMode: { __proto__: null, get() { - return this._writableState ? (this._writableState.state & kObjectMode) !== 0 : false; + const state = this._writableState; + return state ? (state.state & kObjectMode) !== 0 : false; }, }, writableBuffer: { __proto__: null, get() { - return this._writableState && this._writableState.getBuffer(); + const state = this._writableState; + return state && state.getBuffer(); }, }, writableEnded: { __proto__: null, get() { - return this._writableState ? (this._writableState.state & kEnding) !== 0 : false; + const state = this._writableState; + return state ? (state.state & kEnding) !== 0 : false; }, }, writableNeedDrain: { __proto__: null, get() { - const wState = this._writableState; - if (!wState) return false; - - // !destroyed && !ending && needDrain - return (wState.state & (kDestroyed | kEnding | kNeedDrain)) === kNeedDrain; + const state = this._writableState; + return state ? (state.state & (kDestroyed | kEnding | kNeedDrain)) === kNeedDrain : false; }, }, writableHighWaterMark: { __proto__: null, get() { - return this._writableState && this._writableState.highWaterMark; + const state = this._writableState; + return state && state.highWaterMark; }, }, writableCorked: { __proto__: null, get() { - return this._writableState ? this._writableState.corked : 0; + const state = this._writableState; + return state ? state.corked : 0; }, }, writableLength: { __proto__: null, get() { - return this._writableState && this._writableState.length; + const state = this._writableState; + return state && state.length; }, }, @@ -928,18 +1040,19 @@ ObjectDefineProperties(Writable.prototype, { __proto__: null, enumerable: false, get() { - return this._writableState ? this._writableState.errored : null; + const state = this._writableState; + return state ? state.errored : null; }, }, writableAborted: { __proto__: null, - enumerable: false, get: function() { - return !!( - this._writableState.writable !== false && - ((this._writableState.state & kDestroyed) !== 0 || this._writableState.errored) && - (this._writableState.state & kFinished) === 0 + const state = this._writableState; + return ( + (state.state & (kHasWritable | kWritable)) !== kHasWritable && + (state.state & (kDestroyed | kErrored)) !== 0 && + (state.state & kFinished) === 0 ); }, }, @@ -952,7 +1065,7 @@ Writable.prototype.destroy = function(err, cb) { // Invoke pending callbacks. if ((state.state & kDestroyed) === 0 && (state.bufferedIndex < state.buffered.length || - state[kOnFinished].length)) { + (state.state & kOnFinished) !== 0)) { process.nextTick(errorBuffer, state); } From 829eb99afd947c4044855574304a5cf3f689081a Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Thu, 28 Sep 2023 13:51:44 +0100 Subject: [PATCH 036/232] test: disambiguate AIX and IBM i When built with Python 3.9 on IBM i, `process.platform` will return `os400` instead of `aix`. In preparation for this, make `common.isAIX` only return true for AIX and update the tests to add checks for `common.isIBMi` where they were missing. PR-URL: https://github.com/nodejs/node/pull/48056 Refs: https://github.com/nodejs/node/pull/46739 Refs: https://github.com/nodejs/build/pull/3358 Reviewed-By: Moshe Atlow Reviewed-By: Michael Dawson Reviewed-By: Luigi Pinca --- test/abort/test-addon-uv-handle-leak.js | 1 + test/common/index.js | 9 ++++++--- test/known_issues/test-cwd-enoent-file.js | 2 +- test/parallel/test-cwd-enoent-preload.js | 2 +- test/parallel/test-cwd-enoent-repl.js | 2 +- test/parallel/test-cwd-enoent.js | 2 +- test/parallel/test-fs-readfile-pipe-large.js | 2 +- test/parallel/test-fs-readfile-pipe.js | 2 +- test/parallel/test-fs-readfilesync-pipe-large.js | 2 +- test/parallel/test-fs-realpath-pipe.js | 2 +- test/parallel/test-fs-utimes.js | 2 +- test/parallel/test-os.js | 13 ++++++++----- .../test-process-dlopen-error-message-crash.js | 2 +- 13 files changed, 25 insertions(+), 18 deletions(-) diff --git a/test/abort/test-addon-uv-handle-leak.js b/test/abort/test-addon-uv-handle-leak.js index e494b12f2de558..d2c4f8e646f457 100644 --- a/test/abort/test-addon-uv-handle-leak.js +++ b/test/abort/test-addon-uv-handle-leak.js @@ -78,6 +78,7 @@ if (process.argv[2] === 'child') { if (!(common.isFreeBSD || common.isAIX || + common.isIBMi || (common.isLinux && !isGlibc()) || common.isWindows)) { assert(stderr.includes('ExampleOwnerClass'), stderr); diff --git a/test/common/index.js b/test/common/index.js index 169ab0c28824e9..827f7332495fbe 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -123,7 +123,6 @@ if (process.argv.length === 2 && } const isWindows = process.platform === 'win32'; -const isAIX = process.platform === 'aix'; const isSunOS = process.platform === 'sunos'; const isFreeBSD = process.platform === 'freebsd'; const isOpenBSD = process.platform === 'openbsd'; @@ -274,7 +273,7 @@ function platformTimeout(ms) { if (process.features.debug) ms = multipliers.two * ms; - if (isAIX) + if (exports.isAIX || exports.isIBMi) return multipliers.two * ms; // Default localhost speed is slower on AIX if (isPi) @@ -920,7 +919,6 @@ const common = { hasQuic, hasMultiLocalhost, invalidArgTypeHelper, - isAIX, isAlive, isAsan, isDumbTerminal, @@ -991,7 +989,12 @@ const common = { }, // On IBMi, process.platform and os.platform() both return 'aix', + // when built with Python versions earlier than 3.9. // It is not enough to differentiate between IBMi and real AIX system. + get isAIX() { + return require('os').type() === 'AIX'; + }, + get isIBMi() { return require('os').type() === 'OS400'; }, diff --git a/test/known_issues/test-cwd-enoent-file.js b/test/known_issues/test-cwd-enoent-file.js index 0f75896134f7e3..6d99987895baf4 100644 --- a/test/known_issues/test-cwd-enoent-file.js +++ b/test/known_issues/test-cwd-enoent-file.js @@ -5,7 +5,7 @@ const common = require('../common'); const assert = require('assert'); -if (common.isSunOS || common.isWindows || common.isAIX) { +if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi) { // The current working directory cannot be removed on these platforms. // Change this to common.skip() when this is no longer a known issue test. assert.fail('cannot rmdir current working directory'); diff --git a/test/parallel/test-cwd-enoent-preload.js b/test/parallel/test-cwd-enoent-preload.js index 2077d9c1478335..21b20d6d035672 100644 --- a/test/parallel/test-cwd-enoent-preload.js +++ b/test/parallel/test-cwd-enoent-preload.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); // Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAIX) +if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi) common.skip('cannot rmdir current working directory'); if (!common.isMainThread) common.skip('process.chdir is not available in Workers'); diff --git a/test/parallel/test-cwd-enoent-repl.js b/test/parallel/test-cwd-enoent-repl.js index 5ea8abc7e42b52..0a61cbfbced9b4 100644 --- a/test/parallel/test-cwd-enoent-repl.js +++ b/test/parallel/test-cwd-enoent-repl.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); // Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAIX) +if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi) common.skip('cannot rmdir current working directory'); if (!common.isMainThread) common.skip('process.chdir is not available in Workers'); diff --git a/test/parallel/test-cwd-enoent.js b/test/parallel/test-cwd-enoent.js index 8beb1e3fbe0a05..876888bc2be518 100644 --- a/test/parallel/test-cwd-enoent.js +++ b/test/parallel/test-cwd-enoent.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); // Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAIX) +if (common.isSunOS || common.isWindows || common.isAIX || common.isIBMi) common.skip('cannot rmdir current working directory'); if (!common.isMainThread) common.skip('process.chdir is not available in Workers'); diff --git a/test/parallel/test-fs-readfile-pipe-large.js b/test/parallel/test-fs-readfile-pipe-large.js index 1a685ebc612b85..4376774bb411d6 100644 --- a/test/parallel/test-fs-readfile-pipe-large.js +++ b/test/parallel/test-fs-readfile-pipe-large.js @@ -3,7 +3,7 @@ const common = require('../common'); // Simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAIX) +if (common.isWindows || common.isAIX || common.isIBMi) common.skip(`No /dev/stdin on ${process.platform}.`); const assert = require('assert'); diff --git a/test/parallel/test-fs-readfile-pipe.js b/test/parallel/test-fs-readfile-pipe.js index 0cffbd0f5aa162..79d5699fef64a4 100644 --- a/test/parallel/test-fs-readfile-pipe.js +++ b/test/parallel/test-fs-readfile-pipe.js @@ -24,7 +24,7 @@ const common = require('../common'); // Simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAIX) +if (common.isWindows || common.isAIX || common.isIBMi) common.skip(`No /dev/stdin on ${process.platform}.`); const assert = require('assert'); diff --git a/test/parallel/test-fs-readfilesync-pipe-large.js b/test/parallel/test-fs-readfilesync-pipe-large.js index 2cb857a329fbee..5450337c4f680a 100644 --- a/test/parallel/test-fs-readfilesync-pipe-large.js +++ b/test/parallel/test-fs-readfilesync-pipe-large.js @@ -3,7 +3,7 @@ const common = require('../common'); // Simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAIX) +if (common.isWindows || common.isAIX || common.isIBMi) common.skip(`No /dev/stdin on ${process.platform}.`); const assert = require('assert'); diff --git a/test/parallel/test-fs-realpath-pipe.js b/test/parallel/test-fs-realpath-pipe.js index 29fe1d3b7d28e1..f637642ca21d67 100644 --- a/test/parallel/test-fs-realpath-pipe.js +++ b/test/parallel/test-fs-realpath-pipe.js @@ -2,7 +2,7 @@ const common = require('../common'); -if (common.isWindows || common.isAIX) +if (common.isWindows || common.isAIX || common.isIBMi) common.skip(`No /dev/stdin on ${process.platform}.`); const assert = require('assert'); diff --git a/test/parallel/test-fs-utimes.js b/test/parallel/test-fs-utimes.js index 8f8286f8a3343f..e6ae75d4e33a5f 100644 --- a/test/parallel/test-fs-utimes.js +++ b/test/parallel/test-fs-utimes.js @@ -39,7 +39,7 @@ function stat_resource(resource, statSync = fs.statSync) { const stats = fs.fstatSync(resource); // Ensure mtime has been written to disk // except for directories on AIX where it cannot be synced - if (common.isAIX && stats.isDirectory()) + if ((common.isAIX || common.isIBMi) && stats.isDirectory()) return stats; fs.fsyncSync(resource); return fs.fstatSync(resource); diff --git a/test/parallel/test-os.js b/test/parallel/test-os.js index d82f2ece3159a6..f7059260ce507e 100644 --- a/test/parallel/test-os.js +++ b/test/parallel/test-os.js @@ -81,11 +81,14 @@ const hostname = os.hostname(); is.string(hostname); assert.ok(hostname.length > 0); -const DUMMY_PRIORITY = 10; -os.setPriority(DUMMY_PRIORITY); -const priority = os.getPriority(); -is.number(priority); -assert.strictEqual(priority, DUMMY_PRIORITY); +// IBMi process priority is different. +if (!common.isIBMi) { + const DUMMY_PRIORITY = 10; + os.setPriority(DUMMY_PRIORITY); + const priority = os.getPriority(); + is.number(priority); + assert.strictEqual(priority, DUMMY_PRIORITY); +} // On IBMi, os.uptime() returns 'undefined' if (!common.isIBMi) { diff --git a/test/parallel/test-process-dlopen-error-message-crash.js b/test/parallel/test-process-dlopen-error-message-crash.js index d678021764e8f4..de8b3033195a46 100644 --- a/test/parallel/test-process-dlopen-error-message-crash.js +++ b/test/parallel/test-process-dlopen-error-message-crash.js @@ -17,7 +17,7 @@ assert.throws(() => { }, ({ name, code, message }) => { assert.strictEqual(name, 'Error'); assert.strictEqual(code, 'ERR_DLOPEN_FAILED'); - if (!common.isAIX) { + if (!common.isAIX && !common.isIBMi) { assert.match(message, /foo-%s\.node/); } return true; From 878c0b332ebeba03523cdb21e7391f43b82de225 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Thu, 18 May 2023 12:51:19 +0100 Subject: [PATCH 037/232] build: fix IBM i build with Python 3.9 Python 3.9 on IBM i returns "os400" for `sys.platform`. PR-URL: https://github.com/nodejs/node/pull/48056 Refs: https://github.com/nodejs/node/pull/46739 Refs: https://github.com/nodejs/build/pull/3358 Reviewed-By: Moshe Atlow Reviewed-By: Michael Dawson Reviewed-By: Luigi Pinca --- deps/openssl/openssl-cl_asm.gypi | 2 +- deps/openssl/openssl-cl_asm_avx2.gypi | 2 +- deps/openssl/openssl-cl_no_asm.gypi | 2 +- deps/openssl/openssl-fips_asm.gypi | 2 +- deps/openssl/openssl-fips_asm_avx2.gypi | 2 +- deps/openssl/openssl-fips_no_asm.gypi | 2 +- deps/openssl/openssl_asm.gypi | 2 +- deps/openssl/openssl_asm_avx2.gypi | 2 +- deps/openssl/openssl_common.gypi | 2 +- deps/openssl/openssl_no_asm.gypi | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/deps/openssl/openssl-cl_asm.gypi b/deps/openssl/openssl-cl_asm.gypi index 8791e005bf0f41..cd10355c171228 100644 --- a/deps/openssl/openssl-cl_asm.gypi +++ b/deps/openssl/openssl-cl_asm.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm/openssl-cl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm/openssl-cl.gypi'], diff --git a/deps/openssl/openssl-cl_asm_avx2.gypi b/deps/openssl/openssl-cl_asm_avx2.gypi index 815598676770c6..50b5a9c375bd8d 100644 --- a/deps/openssl/openssl-cl_asm_avx2.gypi +++ b/deps/openssl/openssl-cl_asm_avx2.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm_avx2/openssl-cl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm_avx2/openssl-cl.gypi'], diff --git a/deps/openssl/openssl-cl_no_asm.gypi b/deps/openssl/openssl-cl_no_asm.gypi index 22bcf1c3c77d84..0964fb36739b3a 100644 --- a/deps/openssl/openssl-cl_no_asm.gypi +++ b/deps/openssl/openssl-cl_no_asm.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/no-asm/openssl-cl.gypi'], diff --git a/deps/openssl/openssl-fips_asm.gypi b/deps/openssl/openssl-fips_asm.gypi index d0717df2a5094f..631df9eb893288 100644 --- a/deps/openssl/openssl-fips_asm.gypi +++ b/deps/openssl/openssl-fips_asm.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm/openssl-fips.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm/openssl-fips.gypi'], diff --git a/deps/openssl/openssl-fips_asm_avx2.gypi b/deps/openssl/openssl-fips_asm_avx2.gypi index d2a2a4bc11413f..4d63cacf29d040 100644 --- a/deps/openssl/openssl-fips_asm_avx2.gypi +++ b/deps/openssl/openssl-fips_asm_avx2.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm_avx2/openssl-fips.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm_avx2/openssl-fips.gypi'], diff --git a/deps/openssl/openssl-fips_no_asm.gypi b/deps/openssl/openssl-fips_no_asm.gypi index d598bde68c783d..7fdfd772abbce8 100644 --- a/deps/openssl/openssl-fips_no_asm.gypi +++ b/deps/openssl/openssl-fips_no_asm.gypi @@ -1,7 +1,7 @@ { 'defines': ['OPENSSL_NO_ASM'], 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-fips.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/no-asm/openssl-fips.gypi'], diff --git a/deps/openssl/openssl_asm.gypi b/deps/openssl/openssl_asm.gypi index dbd5a5f69ff8d9..dd7e636eb08893 100644 --- a/deps/openssl/openssl_asm.gypi +++ b/deps/openssl/openssl_asm.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm/openssl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm/openssl.gypi'], diff --git a/deps/openssl/openssl_asm_avx2.gypi b/deps/openssl/openssl_asm_avx2.gypi index 2883f83d694394..6a9c56d76a211a 100644 --- a/deps/openssl/openssl_asm_avx2.gypi +++ b/deps/openssl/openssl_asm_avx2.gypi @@ -1,6 +1,6 @@ { 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/asm_avx2/openssl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/asm_avx2/openssl.gypi'], diff --git a/deps/openssl/openssl_common.gypi b/deps/openssl/openssl_common.gypi index 256eb7d1808db3..1290fff251fc5b 100644 --- a/deps/openssl/openssl_common.gypi +++ b/deps/openssl/openssl_common.gypi @@ -13,7 +13,7 @@ ], # build options specific to OS 'conditions': [ - [ 'OS=="aix"', { + [ 'OS in ("aix", "os400")', { # AIX is missing /usr/include/endian.h 'defines': [ '__LITTLE_ENDIAN=1234', diff --git a/deps/openssl/openssl_no_asm.gypi b/deps/openssl/openssl_no_asm.gypi index de0e486f67e90e..20663decabba23 100644 --- a/deps/openssl/openssl_no_asm.gypi +++ b/deps/openssl/openssl_no_asm.gypi @@ -1,7 +1,7 @@ { 'defines': ['OPENSSL_NO_ASM'], 'conditions': [ - ['target_arch=="ppc64" and OS=="aix"', { + ['target_arch=="ppc64" and OS in ("aix", "os400")', { 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl.gypi'], }, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', { 'includes': ['config/archs/linux-ppc64le/no-asm/openssl.gypi'], From 21453ae555f85b1c09c78f039791a347ca18a44f Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Wed, 27 Sep 2023 18:51:03 +0000 Subject: [PATCH 038/232] deps: update uvwasi to 0.0.19 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49908 Reviewed-By: Tobias Nießen Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- deps/uvwasi/include/uvwasi.h | 11 +- deps/uvwasi/src/fd_table.c | 69 +++- deps/uvwasi/src/fd_table.h | 5 + deps/uvwasi/src/sync_helpers.c | 95 ++++++ deps/uvwasi/src/sync_helpers.h | 27 ++ deps/uvwasi/src/uvwasi.c | 320 ++++++++++++++++-- deps/uvwasi/src/wasi_rights.h | 5 +- .../maintaining/maintaining-dependencies.md | 6 +- 8 files changed, 491 insertions(+), 47 deletions(-) create mode 100644 deps/uvwasi/src/sync_helpers.c create mode 100644 deps/uvwasi/src/sync_helpers.h diff --git a/deps/uvwasi/include/uvwasi.h b/deps/uvwasi/include/uvwasi.h index d475d3e67512bf..a458cfe17daaa3 100644 --- a/deps/uvwasi/include/uvwasi.h +++ b/deps/uvwasi/include/uvwasi.h @@ -5,12 +5,13 @@ extern "C" { #endif +#include "uv.h" #include "wasi_serdes.h" #include "wasi_types.h" #define UVWASI_VERSION_MAJOR 0 #define UVWASI_VERSION_MINOR 0 -#define UVWASI_VERSION_PATCH 18 +#define UVWASI_VERSION_PATCH 19 #define UVWASI_VERSION_HEX ((UVWASI_VERSION_MAJOR << 16) | \ (UVWASI_VERSION_MINOR << 8) | \ (UVWASI_VERSION_PATCH)) @@ -47,6 +48,7 @@ typedef struct uvwasi_s { char* env_buf; uvwasi_size_t env_buf_size; const uvwasi_mem_t* allocator; + uv_loop_t* loop; } uvwasi_t; typedef struct uvwasi_preopen_s { @@ -54,10 +56,17 @@ typedef struct uvwasi_preopen_s { const char* real_path; } uvwasi_preopen_t; +typedef struct uvwasi_preopen_socket_s { + const char* address; + int port; +} uvwasi_preopen_socket_t; + typedef struct uvwasi_options_s { uvwasi_size_t fd_table_size; uvwasi_size_t preopenc; uvwasi_preopen_t* preopens; + uvwasi_size_t preopen_socketc; + uvwasi_preopen_socket_t* preopen_sockets; uvwasi_size_t argc; const char** argv; const char** envp; diff --git a/deps/uvwasi/src/fd_table.c b/deps/uvwasi/src/fd_table.c index 7782f1ee43b420..881d192ff3a340 100644 --- a/deps/uvwasi/src/fd_table.c +++ b/deps/uvwasi/src/fd_table.c @@ -37,6 +37,7 @@ static uvwasi_errno_t uvwasi__insert_stdio(uvwasi_t* uvwasi, err = uvwasi_fd_table_insert(uvwasi, table, fd, + NULL, name, name, type, @@ -58,6 +59,7 @@ static uvwasi_errno_t uvwasi__insert_stdio(uvwasi_t* uvwasi, uvwasi_errno_t uvwasi_fd_table_insert(uvwasi_t* uvwasi, struct uvwasi_fd_table_t* table, uv_file fd, + uv_tcp_t* sock, const char* mapped_path, const char* real_path, uvwasi_filetype_t type, @@ -78,29 +80,40 @@ uvwasi_errno_t uvwasi_fd_table_insert(uvwasi_t* uvwasi, char* rp_copy; char* np_copy; - mp_len = strlen(mapped_path); - rp_len = strlen(real_path); + if (type != UVWASI_FILETYPE_SOCKET_STREAM) { + mp_len = strlen(mapped_path); + rp_len = strlen(real_path); + } else { + mp_len = 0; + rp_len = 0; + rp_copy = NULL; + mp_copy = NULL; + np_copy = NULL; + } + /* Reserve room for the mapped path, real path, and normalized mapped path. */ entry = (struct uvwasi_fd_wrap_t*) uvwasi__malloc(uvwasi, sizeof(*entry) + mp_len + mp_len + rp_len + 3); if (entry == NULL) return UVWASI_ENOMEM; - mp_copy = (char*)(entry + 1); - rp_copy = mp_copy + mp_len + 1; - np_copy = rp_copy + rp_len + 1; - memcpy(mp_copy, mapped_path, mp_len); - mp_copy[mp_len] = '\0'; - memcpy(rp_copy, real_path, rp_len); - rp_copy[rp_len] = '\0'; - - /* Calculate the normalized version of the mapped path, as it will be used for - any path calculations on this fd. Use the length of the mapped path as an - upper bound for the normalized path length. */ - err = uvwasi__normalize_path(mp_copy, mp_len, np_copy, mp_len); - if (err) { - uvwasi__free(uvwasi, entry); - goto exit; + if (type != UVWASI_FILETYPE_SOCKET_STREAM) { + mp_copy = (char*)(entry + 1); + rp_copy = mp_copy + mp_len + 1; + np_copy = rp_copy + rp_len + 1; + memcpy(mp_copy, mapped_path, mp_len); + mp_copy[mp_len] = '\0'; + memcpy(rp_copy, real_path, rp_len); + rp_copy[rp_len] = '\0'; + + /* Calculate the normalized version of the mapped path, as it will be used for + any path calculations on this fd. Use the length of the mapped path as an + upper bound for the normalized path length. */ + err = uvwasi__normalize_path(mp_copy, mp_len, np_copy, mp_len); + if (err) { + uvwasi__free(uvwasi, entry); + goto exit; + } } uv_rwlock_wrlock(&table->rwlock); @@ -150,6 +163,7 @@ uvwasi_errno_t uvwasi_fd_table_insert(uvwasi_t* uvwasi, entry->id = index; entry->fd = fd; + entry->sock = sock; entry->path = mp_copy; entry->real_path = rp_copy; entry->normalized_path = np_copy; @@ -280,6 +294,7 @@ uvwasi_errno_t uvwasi_fd_table_insert_preopen(uvwasi_t* uvwasi, return uvwasi_fd_table_insert(uvwasi, table, fd, + NULL, path, real_path, UVWASI_FILETYPE_DIRECTORY, @@ -290,6 +305,26 @@ uvwasi_errno_t uvwasi_fd_table_insert_preopen(uvwasi_t* uvwasi, } +uvwasi_errno_t uvwasi_fd_table_insert_preopen_socket(uvwasi_t* uvwasi, + struct uvwasi_fd_table_t* table, + uv_tcp_t* sock) { + if (table == NULL || sock == NULL) + return UVWASI_EINVAL; + + return uvwasi_fd_table_insert(uvwasi, + table, + -1, + sock, + NULL, + NULL, + UVWASI_FILETYPE_SOCKET_STREAM, + UVWASI__RIGHTS_SOCKET_BASE, + UVWASI__RIGHTS_SOCKET_INHERITING, + 1, + NULL); +} + + uvwasi_errno_t uvwasi_fd_table_get(struct uvwasi_fd_table_t* table, const uvwasi_fd_t id, struct uvwasi_fd_wrap_t** wrap, diff --git a/deps/uvwasi/src/fd_table.h b/deps/uvwasi/src/fd_table.h index 0755c2d17fdec2..9a7a825bc85d4c 100644 --- a/deps/uvwasi/src/fd_table.h +++ b/deps/uvwasi/src/fd_table.h @@ -11,6 +11,7 @@ struct uvwasi_options_s; struct uvwasi_fd_wrap_t { uvwasi_fd_t id; uv_file fd; + uv_tcp_t* sock; char* path; char* real_path; char* normalized_path; @@ -35,6 +36,7 @@ void uvwasi_fd_table_free(struct uvwasi_s* uvwasi, uvwasi_errno_t uvwasi_fd_table_insert(struct uvwasi_s* uvwasi, struct uvwasi_fd_table_t* table, uv_file fd, + uv_tcp_t* sock, const char* mapped_path, const char* real_path, uvwasi_filetype_t type, @@ -47,6 +49,9 @@ uvwasi_errno_t uvwasi_fd_table_insert_preopen(struct uvwasi_s* uvwasi, const uv_file fd, const char* path, const char* real_path); +uvwasi_errno_t uvwasi_fd_table_insert_preopen_socket(struct uvwasi_s* uvwasi, + struct uvwasi_fd_table_t* table, + uv_tcp_t* sock); uvwasi_errno_t uvwasi_fd_table_get(struct uvwasi_fd_table_t* table, const uvwasi_fd_t id, struct uvwasi_fd_wrap_t** wrap, diff --git a/deps/uvwasi/src/sync_helpers.c b/deps/uvwasi/src/sync_helpers.c new file mode 100644 index 00000000000000..c63a62b83d75ed --- /dev/null +++ b/deps/uvwasi/src/sync_helpers.c @@ -0,0 +1,95 @@ +#include "uv.h" +#include "sync_helpers.h" +#include "uv_mapping.h" +#include "uvwasi_alloc.h" + +typedef struct free_handle_data_s { + uvwasi_t* uvwasi; + int done; +} free_handle_data_t; + +static void free_handle_cb(uv_handle_t* handle) { + free_handle_data_t* free_handle_data = uv_handle_get_data((uv_handle_t*) handle); + uvwasi__free(free_handle_data->uvwasi, handle); + free_handle_data->done = 1; +} + +int free_handle_sync(struct uvwasi_s* uvwasi, uv_handle_t* handle) { + free_handle_data_t free_handle_data = { uvwasi, 0 }; + uv_handle_set_data(handle, (void*) &free_handle_data); + uv_close(handle, free_handle_cb); + uv_loop_t* handle_loop = uv_handle_get_loop(handle); + while(!free_handle_data.done) { + if (uv_run(handle_loop, UV_RUN_ONCE) == 0) { + break; + } + } + return UVWASI_ESUCCESS; +} + +static void do_stream_shutdown(uv_shutdown_t* req, int status) { + shutdown_data_t* shutdown_data; + shutdown_data = uv_handle_get_data((uv_handle_t*) req->handle); + shutdown_data->status = status; + shutdown_data->done = 1; + } + +int shutdown_stream_sync(struct uvwasi_s* uvwasi, + uv_stream_t* stream, + shutdown_data_t* shutdown_data) { + uv_shutdown_t req; + uv_loop_t* stream_loop; + + shutdown_data->done = 0; + shutdown_data->status = 0; + stream_loop = uv_handle_get_loop((uv_handle_t*) stream); + + uv_handle_set_data((uv_handle_t*) stream, (void*) shutdown_data); + uv_shutdown(&req, stream, do_stream_shutdown); + while (!shutdown_data->done) { + if (uv_run(stream_loop, UV_RUN_ONCE) == 0) { + return UVWASI_ECANCELED; + } + } + return UVWASI_ESUCCESS; +} + +static void recv_alloc_cb(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buf) { + recv_data_t* recv_data; + recv_data = uv_handle_get_data(handle); + buf->base = recv_data->base; + buf->len = recv_data->len; +} + +void do_stream_recv(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf) { + recv_data_t* recv_data; + recv_data = uv_handle_get_data((uv_handle_t*) stream); + uv_read_stop(stream); + recv_data->nread = nread; + recv_data->done = 1; +} + +int read_stream_sync(struct uvwasi_s* uvwasi, + uv_stream_t* stream, + recv_data_t* recv_data) { + uv_loop_t* recv_loop; + int r; + + recv_data->nread = 0; + recv_data->done = 0; + recv_loop = uv_handle_get_loop((uv_handle_t*) stream); + + uv_handle_set_data((uv_handle_t*) stream, (void*) recv_data); + r = uv_read_start(stream, recv_alloc_cb, do_stream_recv); + if (r != 0) { + return uvwasi__translate_uv_error(r); + } + + while (!recv_data->done) { + if (uv_run(recv_loop, UV_RUN_ONCE) == 0) { + return UVWASI_ECANCELED; + } + } + + return UVWASI_ESUCCESS; +} diff --git a/deps/uvwasi/src/sync_helpers.h b/deps/uvwasi/src/sync_helpers.h new file mode 100644 index 00000000000000..6ffe2cac133d6c --- /dev/null +++ b/deps/uvwasi/src/sync_helpers.h @@ -0,0 +1,27 @@ +#ifndef __UVWASI_SYNC_HELPERS_H__ +#define __UVWASI_SYNC_HELPERS_H__ + +struct uvwasi_s; + +typedef struct shutdown_data_s { + int status; + int done; +} shutdown_data_t; + +typedef struct recv_data_s { + char* base; + size_t len; + ssize_t nread; + int done; +} recv_data_t; + +int free_handle_sync(struct uvwasi_s* uvwasi, uv_handle_t* handle); + +int shutdown_stream_sync(struct uvwasi_s* uvwasi, + uv_stream_t* stream, + shutdown_data_t* shutdown_data); + +int read_stream_sync(struct uvwasi_s* uvwasi, + uv_stream_t* stream, + recv_data_t* recv_data); +#endif /* __UVWASI_SYNC_HELPERS_H__ */ diff --git a/deps/uvwasi/src/uvwasi.c b/deps/uvwasi/src/uvwasi.c index 9e7fc7681664b8..e904b9f9293864 100644 --- a/deps/uvwasi/src/uvwasi.c +++ b/deps/uvwasi/src/uvwasi.c @@ -25,6 +25,7 @@ #include "clocks.h" #include "path_resolver.h" #include "poll_oneoff.h" +#include "sync_helpers.h" #include "wasi_rights.h" #include "wasi_serdes.h" #include "debug.h" @@ -231,6 +232,13 @@ static uvwasi_errno_t uvwasi__setup_ciovs(const uvwasi_t* uvwasi, return UVWASI_ESUCCESS; } +typedef struct new_connection_data_s { + int done; +} new_connection_data_t; + +void on_new_connection(uv_stream_t *server, int status) { + // just do nothing +} uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { uv_fs_t realpath_req; @@ -243,11 +251,16 @@ uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { uvwasi_size_t env_buf_size; uvwasi_size_t i; int r; + struct sockaddr_in addr; if (uvwasi == NULL || options == NULL || options->fd_table_size == 0) return UVWASI_EINVAL; + // loop is only needed if there were pre-open sockets + uvwasi->loop = NULL; + uvwasi->allocator = options->allocator; + if (uvwasi->allocator == NULL) uvwasi->allocator = &default_allocator; @@ -328,6 +341,14 @@ uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { } } + for (i = 0; i < options->preopen_socketc; ++i) { + if (options->preopen_sockets[i].address == NULL || + options->preopen_sockets[i].port > 65535) { + err = UVWASI_EINVAL; + goto exit; + } + } + err = uvwasi_fd_table_init(uvwasi, options); if (err != UVWASI_ESUCCESS) goto exit; @@ -363,6 +384,36 @@ uvwasi_errno_t uvwasi_init(uvwasi_t* uvwasi, const uvwasi_options_t* options) { goto exit; } + if (options->preopen_socketc > 0) { + uvwasi->loop = uvwasi__malloc(uvwasi, sizeof(uv_loop_t)); + r = uv_loop_init(uvwasi->loop); + if (r != 0) { + err = uvwasi__translate_uv_error(r); + goto exit; + } + } + + for (i = 0; i < options->preopen_socketc; ++i) { + uv_tcp_t* socket = (uv_tcp_t*) malloc(sizeof(uv_tcp_t)); + uv_tcp_init(uvwasi->loop, socket); + + uv_ip4_addr(options->preopen_sockets[i].address, options->preopen_sockets[i].port, &addr); + + uv_tcp_bind(socket, (const struct sockaddr*)&addr, 0); + r = uv_listen((uv_stream_t*) socket, 128, on_new_connection); + if (r != 0) { + err = uvwasi__translate_uv_error(r); + goto exit; + } + + err = uvwasi_fd_table_insert_preopen_socket(uvwasi, + uvwasi->fds, + socket); + + if (err != UVWASI_ESUCCESS) + goto exit; + } + return UVWASI_ESUCCESS; exit: @@ -380,6 +431,12 @@ void uvwasi_destroy(uvwasi_t* uvwasi) { uvwasi__free(uvwasi, uvwasi->argv); uvwasi__free(uvwasi, uvwasi->env_buf); uvwasi__free(uvwasi, uvwasi->env); + if (uvwasi->loop != NULL) { + uv_stop(uvwasi->loop); + uv_loop_close(uvwasi->loop); + uvwasi__free(uvwasi, uvwasi->loop); + uvwasi->loop = NULL; + } uvwasi->fds = NULL; uvwasi->argv_buf = NULL; uvwasi->argv = NULL; @@ -401,6 +458,8 @@ void uvwasi_options_init(uvwasi_options_t* options) { options->envp = NULL; options->preopenc = 0; options->preopens = NULL; + options->preopen_socketc = 0; + options->preopen_sockets = NULL; options->allocator = NULL; } @@ -694,10 +753,9 @@ uvwasi_errno_t uvwasi_fd_allocate(uvwasi_t* uvwasi, return err; } - uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd) { struct uvwasi_fd_wrap_t* wrap; - uvwasi_errno_t err; + uvwasi_errno_t err = 0; uv_fs_t req; int r; @@ -712,9 +770,18 @@ uvwasi_errno_t uvwasi_fd_close(uvwasi_t* uvwasi, uvwasi_fd_t fd) { if (err != UVWASI_ESUCCESS) goto exit; - r = uv_fs_close(NULL, &req, wrap->fd, NULL); - uv_mutex_unlock(&wrap->mutex); - uv_fs_req_cleanup(&req); + if (wrap->sock == NULL) { + r = uv_fs_close(NULL, &req, wrap->fd, NULL); + uv_mutex_unlock(&wrap->mutex); + uv_fs_req_cleanup(&req); + } else { + r = 0; + err = free_handle_sync(uvwasi, (uv_handle_t*) wrap->sock); + uv_mutex_unlock(&wrap->mutex); + if (err != UVWASI_ESUCCESS) { + goto exit; + } + } if (r != 0) { err = uvwasi__translate_uv_error(r); @@ -1997,6 +2064,7 @@ uvwasi_errno_t uvwasi_path_open(uvwasi_t* uvwasi, err = uvwasi_fd_table_insert(uvwasi, uvwasi->fds, r, + NULL, resolved_path, resolved_path, filetype, @@ -2520,7 +2588,6 @@ uvwasi_errno_t uvwasi_sched_yield(uvwasi_t* uvwasi) { return UVWASI_ESUCCESS; } - uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, uvwasi_fd_t sock, const uvwasi_iovec_t* ri_data, @@ -2528,10 +2595,50 @@ uvwasi_errno_t uvwasi_sock_recv(uvwasi_t* uvwasi, uvwasi_riflags_t ri_flags, uvwasi_size_t* ro_datalen, uvwasi_roflags_t* ro_flags) { - /* TODO(cjihrig): Waiting to implement, pending - https://github.com/WebAssembly/WASI/issues/4 */ - UVWASI_DEBUG("uvwasi_sock_recv(uvwasi=%p, unimplemented)\n", uvwasi); - return UVWASI_ENOTSUP; + struct uvwasi_fd_wrap_t* wrap; + uvwasi_errno_t err = 0; + recv_data_t recv_data; + + UVWASI_DEBUG("uvwasi_sock_recv(uvwasi=%p, sock=%d, ri_data=%p, " + "ri_data_len=%d, ri_flags=%d, ro_datalen=%p, ro_flags=%p)\n", + uvwasi, + sock, + ri_data, + ri_data_len, + ri_flags, + ro_datalen, + ro_flags); + + if (uvwasi == NULL || ri_data == NULL || ro_datalen == NULL || ro_flags == NULL) + return UVWASI_EINVAL; + + if (ri_flags != 0) + return UVWASI_ENOTSUP; + + err = uvwasi_fd_table_get(uvwasi->fds, + sock, + &wrap, + UVWASI__RIGHTS_SOCKET_BASE, + 0); + if (err != UVWASI_ESUCCESS) + return err; + + recv_data.base = ri_data->buf; + recv_data.len = ri_data->buf_len; + err = read_stream_sync(uvwasi, (uv_stream_t*) wrap->sock, &recv_data); + uv_mutex_unlock(&wrap->mutex); + if (err != 0) { + return err; + } + + if (recv_data.nread == 0) { + return UVWASI_EAGAIN; + } else if (recv_data.nread < 0) { + return uvwasi__translate_uv_error(recv_data.nread); + } + + *ro_datalen = recv_data.nread; + return UVWASI_ESUCCESS; } @@ -2541,30 +2648,195 @@ uvwasi_errno_t uvwasi_sock_send(uvwasi_t* uvwasi, uvwasi_size_t si_data_len, uvwasi_siflags_t si_flags, uvwasi_size_t* so_datalen) { - /* TODO(cjihrig): Waiting to implement, pending - https://github.com/WebAssembly/WASI/issues/4 */ - UVWASI_DEBUG("uvwasi_sock_send(uvwasi=%p, unimplemented)\n", uvwasi); - return UVWASI_ENOTSUP; -} + struct uvwasi_fd_wrap_t* wrap; + uvwasi_errno_t err = 0; + uv_buf_t* bufs; + int r = 0; + + UVWASI_DEBUG("uvwasi_sock_send(uvwasi=%p, sock=%d, si_data=%p, " + "si_data_len=%d, si_flags=%d, so_datalen=%p)\n", + uvwasi, + sock, + si_data, + si_data_len, + si_flags, + so_datalen); + + if (uvwasi == NULL || si_data == NULL || so_datalen == NULL || + si_flags != 0) + return UVWASI_EINVAL; + + err = uvwasi_fd_table_get(uvwasi->fds, + sock, + &wrap, + UVWASI__RIGHTS_SOCKET_BASE, + 0); + if (err != UVWASI_ESUCCESS) + return err; + + err = uvwasi__setup_ciovs(uvwasi, &bufs, si_data, si_data_len); + if (err != UVWASI_ESUCCESS) { + uv_mutex_unlock(&wrap->mutex); + return err; + } + + r = uv_try_write((uv_stream_t*) wrap->sock, bufs, si_data_len); + uvwasi__free(uvwasi, bufs); + uv_mutex_unlock(&wrap->mutex); + if (r < 0) + return uvwasi__translate_uv_error(r); + + *so_datalen = (uvwasi_size_t) r; + return UVWASI_ESUCCESS; +} uvwasi_errno_t uvwasi_sock_shutdown(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_sdflags_t how) { - /* TODO(cjihrig): Waiting to implement, pending - https://github.com/WebAssembly/WASI/issues/4 */ - UVWASI_DEBUG("uvwasi_sock_shutdown(uvwasi=%p, unimplemented)\n", uvwasi); - return UVWASI_ENOTSUP; + struct uvwasi_fd_wrap_t* wrap; + uvwasi_errno_t err = 0; + shutdown_data_t shutdown_data; + + if (how & ~UVWASI_SHUT_WR) + return UVWASI_ENOTSUP; + + UVWASI_DEBUG("uvwasi_sock_shutdown(uvwasi=%p, sock=%d, how=%d)\n", + uvwasi, + sock, + how); + + if (uvwasi == NULL) + return UVWASI_EINVAL; + + err = uvwasi_fd_table_get(uvwasi->fds, + sock, + &wrap, + UVWASI__RIGHTS_SOCKET_BASE, + 0); + if (err != UVWASI_ESUCCESS) + return err; + + if (how & UVWASI_SHUT_WR) { + err = shutdown_stream_sync(uvwasi, (uv_stream_t*) wrap->sock, &shutdown_data); + if (err != UVWASI_ESUCCESS) { + uv_mutex_unlock(&wrap->mutex); + return err; + } + } + + uv_mutex_unlock(&wrap->mutex); + + if (shutdown_data.status != 0) + return uvwasi__translate_uv_error(shutdown_data.status); + + return UVWASI_ESUCCESS; } uvwasi_errno_t uvwasi_sock_accept(uvwasi_t* uvwasi, uvwasi_fd_t sock, uvwasi_fdflags_t flags, - uvwasi_fd_t* fd) { - /* TODO(mhdawson): Needs implementation */ - UVWASI_DEBUG("uvwasi_sock_accept(uvwasi=%p, unimplemented)\n", uvwasi); - return UVWASI_ENOTSUP; -}; + uvwasi_fd_t* connect_sock) { + struct uvwasi_fd_wrap_t* wrap; + struct uvwasi_fd_wrap_t* connected_wrap; + uvwasi_errno_t err = 0; + uv_loop_t* sock_loop = NULL; + int r = 0; + + UVWASI_DEBUG("uvwasi_sock_accept(uvwasi=%p, sock=%d, flags=%d, " + "connect_sock=%p)\n", + uvwasi, + sock, + flags, + connect_sock); + + if (uvwasi == NULL || connect_sock == NULL) + return UVWASI_EINVAL; + + if (flags & ~UVWASI_FDFLAG_NONBLOCK) + return UVWASI_ENOTSUP; + + err = uvwasi_fd_table_get(uvwasi->fds, + sock, + &wrap, + UVWASI__RIGHTS_SOCKET_BASE, + 0); + if (err != UVWASI_ESUCCESS) + return err; + + sock_loop = uv_handle_get_loop((uv_handle_t*) wrap->sock); + uv_tcp_t* uv_connect_sock = (uv_tcp_t*) uvwasi__malloc(uvwasi, sizeof(uv_tcp_t)); + uv_tcp_init(sock_loop, uv_connect_sock); + + r = uv_accept((uv_stream_t*) wrap->sock, (uv_stream_t*) uv_connect_sock); + if (r != 0) { + if (r == UV_EAGAIN) { + // if not blocking then just return as we have to wait for a connection + if (flags & UVWASI_FDFLAG_NONBLOCK) { + err = free_handle_sync(uvwasi, (uv_handle_t*) uv_connect_sock); + uv_mutex_unlock(&wrap->mutex); + if (err != UVWASI_ESUCCESS) { + return err; + } + return UVWASI_EAGAIN; + } + } else { + err = uvwasi__translate_uv_error(r); + goto close_sock_and_error_exit; + } + + // request was blocking and we have no connection yet. run + // the loop until a connection comes in + while (1) { + err = 0; + if (uv_run(sock_loop, UV_RUN_ONCE) == 0) { + err = UVWASI_ECONNABORTED; + goto close_sock_and_error_exit; + } + + int r = uv_accept((uv_stream_t*) wrap->sock, (uv_stream_t*) uv_connect_sock); + if (r == UV_EAGAIN) { + // still no connection or error so run the loop again + continue; + } + + if (r != 0) { + // An error occurred accepting the connection. Break out of the loop and + // report an error. + err = uvwasi__translate_uv_error(r); + goto close_sock_and_error_exit; + } + + // if we get here a new connection was successfully accepted + break; + } + } + + err = uvwasi_fd_table_insert(uvwasi, + uvwasi->fds, + -1, + uv_connect_sock, + NULL, + NULL, + UVWASI_FILETYPE_SOCKET_STREAM, + UVWASI__RIGHTS_SOCKET_BASE, + UVWASI__RIGHTS_SOCKET_INHERITING, + 1, + &connected_wrap); + + if (err != UVWASI_ESUCCESS) + goto close_sock_and_error_exit; + + *connect_sock = connected_wrap->id; + uv_mutex_unlock(&wrap->mutex); + uv_mutex_unlock(&connected_wrap->mutex); + return UVWASI_ESUCCESS; + +close_sock_and_error_exit: + uvwasi__free(uvwasi, uv_connect_sock); + uv_mutex_unlock(&wrap->mutex); + return err; +} const char* uvwasi_embedder_err_code_to_string(uvwasi_errno_t code) { diff --git a/deps/uvwasi/src/wasi_rights.h b/deps/uvwasi/src/wasi_rights.h index 09009b39889cc0..54ac7d7072b7fe 100644 --- a/deps/uvwasi/src/wasi_rights.h +++ b/deps/uvwasi/src/wasi_rights.h @@ -84,8 +84,9 @@ UVWASI_RIGHT_FD_WRITE | \ UVWASI_RIGHT_FD_FILESTAT_GET | \ UVWASI_RIGHT_POLL_FD_READWRITE | \ - UVWASI_RIGHT_SOCK_SHUTDOWN) -#define UVWASI__RIGHTS_SOCKET_INHERITING UVWASI__RIGHTS_ALL; + UVWASI_RIGHT_SOCK_SHUTDOWN | \ + UVWASI_RIGHT_SOCK_ACCEPT) +#define UVWASI__RIGHTS_SOCKET_INHERITING UVWASI__RIGHTS_ALL #define UVWASI__RIGHTS_TTY_BASE (UVWASI_RIGHT_FD_READ | \ UVWASI_RIGHT_FD_FDSTAT_SET_FLAGS | \ diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index aeb262bb0a9f34..58caff9ed5a056 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -29,7 +29,7 @@ This a list of all the dependencies: * [postject 1.0.0-alpha.6][] * [simdutf 3.2.17][] * [undici 5.26.4][] -* [uvwasi 0.0.16][] +* [uvwasi 0.0.19][] * [V8 11.3.244.8][] * [zlib 1.2.13.1-motley-f5fd0ad][] @@ -297,7 +297,7 @@ The [undici](https://github.com/nodejs/undici) dependency is an HTTP/1.1 client, written from scratch for Node.js.. See [maintaining-http][] for more informations. -### uvwasi 0.0.16 +### uvwasi 0.0.19 The [uvwasi](https://github.com/nodejs/uvwasi) dependency implements the WASI system call API, so that WebAssembly runtimes can easily @@ -347,6 +347,6 @@ performance improvements not currently available in standard zlib. [simdutf 3.2.17]: #simdutf-3217 [undici 5.26.4]: #undici-5264 [update-openssl-action]: ../../../.github/workflows/update-openssl.yml -[uvwasi 0.0.16]: #uvwasi-0016 +[uvwasi 0.0.19]: #uvwasi-0019 [v8 11.3.244.8]: #v8-1132448 [zlib 1.2.13.1-motley-f5fd0ad]: #zlib-12131-motley-f5fd0ad From b86e1f5cbdf0ef022e5381dc5b5988af6d62629b Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Wed, 27 Sep 2023 20:06:12 +0000 Subject: [PATCH 039/232] wasi: updates required for latest uvwasi version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michael Dawson PR-URL: https://github.com/nodejs/node/pull/49908 Reviewed-By: Tobias Nießen Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- deps/uvwasi/uvwasi.gyp | 1 + test/wasi/c/sock.c | 4 ++-- test/wasi/wasm/sock.wasm | Bin 18999 -> 19026 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deps/uvwasi/uvwasi.gyp b/deps/uvwasi/uvwasi.gyp index 229dc9f41f8de8..4dfe3c46d51818 100644 --- a/deps/uvwasi/uvwasi.gyp +++ b/deps/uvwasi/uvwasi.gyp @@ -5,6 +5,7 @@ 'src/fd_table.c', 'src/path_resolver.c', 'src/poll_oneoff.c', + 'src/sync_helpers.c', 'src/uv_mapping.c', 'src/uvwasi.c', 'src/wasi_rights.c', diff --git a/test/wasi/c/sock.c b/test/wasi/c/sock.c index de4a3ccc5f95a6..d11e86c805784d 100644 --- a/test/wasi/c/sock.c +++ b/test/wasi/c/sock.c @@ -9,9 +9,9 @@ int main(void) { int fd = 0 ; socklen_t addrlen = 0; int flags = 0; - int ret = accept(0, NULL, &addrlen); + int ret = accept(10, NULL, &addrlen); assert(ret == -1); - assert(errno == ENOTSUP); + assert(errno == EBADF); return 0; } diff --git a/test/wasi/wasm/sock.wasm b/test/wasi/wasm/sock.wasm index 78e7b8e430f91141c4d2305da27a6dbc367f5437..9fdba111a23ca2298b62a449a5f8bce92fcc1f80 100755 GIT binary patch delta 2181 zcmZ`(Yit`u5Z*n%b9Q`b9M|z9*>!Bk)JdAARhrO7>XuSSg;EI#0fOpqoJ&aJ_?){7 zX{ELfj~~1W4O_&cDYWzfloX_zf>a3*FBKtv@Rr~Q1tA{dU#kkK{6NfJ9TcQs$+NRF zv){~oJ9}>*!e1W32XCU%-U{A(kE2>T1^M;$k^ZSnzuiK3z2_cL< zZV5SkJ_-5id`R{O+z5fr8D8%Qg(G|xZ-~#&&CMZ#0yromBom}OCJacvAmMg?0S{K{ zsD~lyWg+S#67fyYI#Nev;vrrlD+fd{^@GFTE5VYL{4~HSw4MZLkknI!1c|bpHZV+A zkp{AAnl?&XNMiu8uOAjCL+rG@Hn9K=vm>^?nuJIb36s^zlYm}vePYxr%15K5Ay&Bhn-h^82! zY3L$7K{F(ig1kUVDkujLuXCKnukmw^HT;reAos^3!sAq)5)o1539%qqLUKJ)4vLNP zypZxnjQM$IG>Ql&l5$ems6-r0nW%wF{Lh}8lY@hAb$*7Q=0Vp!$E4{PA^nU6cHVo;RbvW9$MibPePyNe8r!s1tG?<`22g;?sPi zX8<4OGoBAY@AvlfIpMZtKL~=A7wk;8VGIZiWu=cq!XyTaMVoQVYFe-K5uf+A1P(k3 z0TTpgrI7L>cWvsyi`BkOb(mkezR`6|pmDZ&CqB;SH*al80WJ*GqA*j5RTu(>5d%UX z^$~v2yAPk@yL_|cu!sm?m_A_3!9KwgAU}sZ4t5kzD5t7de7|74Q2kzRk?_m>YJh-@ z)(g4GmUr87pDkao<$LuMygvz9bp&t5{s>KwFvAl`OvC(k<$17QR*pI1_GrOaDM#%x zLw+d3m6iIEjqFGMMu_6q`4^!%{1U&lX%gn(-KI2N;M18_u0&j3D6t7TT;NJL4I#bZ z3^;d%xBY+MmGHN=Gr`MQF9cs&odcPO#6b2(64`ge*pgO8rjv~^c1rBn`?jqy1~Z!+ zjxmRwaet(L1)#d-6h2;E+uZ2^=PvR9$or|N81ls6N?~SY7!}ls5Tpnok|u37+%0s& z@>n?W75xq@XOeNyKTW3PAM9GN9sO7GB>0ZDQSg1x*0<^vf$VqI9x99XO5C5CgOCHM z73sQ|YKD_nQzBh;h~V)^<~&&LXm103Z+qrHHJ@qE zg7w?>?xW48%s%p4PIR%{ zSL#SW#N!>Jfp?ph-Smn#kRZ)APO5Wx>RhUJTO>}R;=dyX6N!cbNM2%jpjWDX)_I-e zepRrK_?E5^4|Wei(mT78f`IP!o+S_$o0Do^9yyNKZ}wdtg?ERP6ZTXreaU{Up55>e z#)H+q-Y$%HR>wB3$JO@rk7C|&eHCBkZ}t7m7y1uIqxRc|7mbxO0w4)5dlFu+6yslR z?#)`7X|0{jo8xN>YfZf{*;PP8YzPewZAY46lyovMKyKX1wpB9&pS#a)n|4<6!@6Mw z1FD)gP0g^>(foK(agEGOP3>uDP*uR1QVaQFQ5~^#!(8PVEgRz{YqZf-DC(vbf`g_t zGOnxkw#hwfj9c1$;eXBceziwci>9VcM*K_RV%J=!sug{-s1~8p=)W#)_qY}Fsj8*h zhvT4*+S=}f`J-n-l0cDIjxc4oWVZo8#cC{L+ym51=7YLuuk=Ca-1V%u%+_U@K~ zfLk9iKCw6ike9p)h=|esVIU+LF@nesqlg+};v+_kG4jWR@XIr^r6A#M_S`e)oH^(F z&dfdEY{egM#S_b^t;io-Ty23DT3ueE)zZcy-YA{Gwpv!Tymrg82Z`P8LOqi35Iay2pfVvG zC#)CnTWo`E5+t>MVBHE<_K7ou53tM5kMLo(+0_O51=ktSC)_ieR$*L}7ON;Jo#sSi z7-$?4l(9Oc&5=&C>+WdB3$H@J0KrMgue`^r$#K{WSl{IfDyc;k0Ue}bkXYHyTD_a_ zE_T#A1{Fy~6z?i6s`wq_ZKZ?~mGEx1q?&-#g?vfKBSM}N@=qb%J_<2yT$Z|h4`5HN ziU(qt*1};#*a81euy@t$w}gR#I4Wg_K;!pdnb?xjyqHhD#IDyP%UA>!dgs%IOo5tQNBp)7(DWWj|kAo`iiFo_~8;D84EZ z$0th9L}oa^c{Kh!$h~cx37`VGDG>mI zw)@#r){5qx+)gE8QI&zI2_?x+q<+drg#3a9TVQ%9``8ux5dNH1I9E9&F-(Nc9L`g0 z+}dhA2w6(D`LARAM~TdS5lbUWOOtcjF&-&hoI4ALgJO=r^uWqdUN8nzWRSoZ3CaJm zrT6@1fzOB~7f!G(3rba17>}|C1VkU>(Jbxp{($z(lc0c&&BdZ=l-D)>l(Ov53`r2+q@RY9KKV~iVjt&j2udLFv zv2=b&%cQeet+!y9dBv9QG0Z}hSJTq@ylxh>zI1=K+CFCX7xcA0Fy{-s{e~vieut)I z^SVA*#xV7; zBWL8aw7Di?$)$UvfvhpSM(Z_3d$PJVY!tNoXf6l%^xg)?)OO<5G@~!8Wr07P#-Xq4 zFT?;x!4N Date: Sat, 30 Sep 2023 03:17:00 +0200 Subject: [PATCH 040/232] fs: throw errors from sync branches instead of separate implementations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously to throw errors from C++ land, sync versions of the fs were created by copying C++ code from the original implementation and moving JS code to a separate file. This can lead to several problems: 1. By moving code to a new file for the sake of moving, it would be harder to use git blame to trace changes and harder to backport changes to older branches. 2. Scattering the async and sync versions of fs methods in different files makes it harder to keep them in sync and share code in the prologues and epilogues. 3. Having two copies of code doing almost the same thing results in duplication and can be prone to out-of-sync problems when the prologue and epilogue get updated. 4. There is a minor cost to startup in adding an additional file. This can add up even with the help of snapshots. This patch moves the JS code back to lib/fs.js to stop 1, 2 & 4 and introduces C++ helpers SyncCallAndThrowIf() and SyncCallAndThrowOnError() so that the original implementations can be easily tweaked to allow throwing from C++ and stop 3. PR-URL: https://github.com/nodejs/node/pull/49913 Reviewed-By: Stephen Belanger Reviewed-By: Colin Ihrig Reviewed-By: Darshan Sen Reviewed-By: Benjamin Gruenbaum Reviewed-By: Tobias Nießen Reviewed-By: Yagiz Nizipli --- lib/fs.js | 66 ++++- lib/internal/fs/sync.js | 106 -------- src/node_file-inl.h | 32 +++ src/node_file.cc | 323 +++++------------------- src/node_file.h | 29 ++- test/parallel/test-bootstrap-modules.js | 1 - 6 files changed, 173 insertions(+), 384 deletions(-) delete mode 100644 lib/internal/fs/sync.js diff --git a/lib/fs.js b/lib/fs.js index 29f356a57cd22e..86895cf84170d5 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -141,7 +141,6 @@ const { validateObject, validateString, } = require('internal/validators'); -const syncFs = require('internal/fs/sync'); let truncateWarn = true; let fs; @@ -243,7 +242,10 @@ function access(path, mode, callback) { * @returns {void} */ function accessSync(path, mode) { - syncFs.access(path, mode); + path = getValidatedPath(path); + mode = getValidMode(mode, 'access'); + + binding.access(pathModule.toNamespacedPath(path), mode); } /** @@ -285,7 +287,13 @@ ObjectDefineProperty(exists, kCustomPromisifiedSymbol, { * @returns {boolean} */ function existsSync(path) { - return syncFs.exists(path); + try { + path = getValidatedPath(path); + } catch { + return false; + } + + return binding.existsSync(pathModule.toNamespacedPath(path)); } function readFileAfterOpen(err, fd) { @@ -438,7 +446,10 @@ function readFileSync(path, options) { options = getOptions(options, { flag: 'r' }); if (options.encoding === 'utf8' || options.encoding === 'utf-8') { - return syncFs.readFileUtf8(path, options.flag); + if (!isInt32(path)) { + path = pathModule.toNamespacedPath(getValidatedPath(path)); + } + return binding.readFileUtf8(path, stringToFlags(options.flag)); } const isUserFd = isFd(path); // File descriptor ownership @@ -516,7 +527,9 @@ function close(fd, callback = defaultCloseCallback) { * @returns {void} */ function closeSync(fd) { - return syncFs.close(fd); + fd = getValidatedFd(fd); + + return binding.close(fd); } /** @@ -562,7 +575,13 @@ function open(path, flags, mode, callback) { * @returns {number} */ function openSync(path, flags, mode) { - return syncFs.open(path, flags, mode); + path = getValidatedPath(path); + + return binding.open( + pathModule.toNamespacedPath(path), + stringToFlags(flags), + parseFileMode(mode, 'mode', 0o666), + ); } /** @@ -1665,12 +1684,24 @@ function lstatSync(path, options = { bigint: false, throwIfNoEntry: true }) { * }} [options] * @returns {Stats} */ -function statSync(path, options) { - return syncFs.stat(path, options); +function statSync(path, options = { bigint: false, throwIfNoEntry: true }) { + path = getValidatedPath(path); + const stats = binding.stat( + pathModule.toNamespacedPath(path), + options.bigint, + undefined, + options.throwIfNoEntry, + ); + if (stats === undefined) { + return undefined; + } + return getStatsFromBinding(stats); } -function statfsSync(path, options) { - return syncFs.statfs(path, options); +function statfsSync(path, options = { bigint: false }) { + path = getValidatedPath(path); + const stats = binding.statfs(pathModule.toNamespacedPath(path), options.bigint); + return getStatFsFromBinding(stats); } /** @@ -1850,7 +1881,8 @@ function unlink(path, callback) { * @returns {void} */ function unlinkSync(path) { - return syncFs.unlink(path); + path = pathModule.toNamespacedPath(getValidatedPath(path)); + return binding.unlink(path); } /** @@ -2650,8 +2682,7 @@ function realpathSync(p, options) { } if (linkTarget === null) { const ctx = { path: base }; - binding.stat(baseLong, false, undefined, ctx); - handleErrorFromBinding(ctx); + binding.stat(baseLong, false, undefined, true); linkTarget = binding.readlink(baseLong, undefined, undefined, ctx); handleErrorFromBinding(ctx); } @@ -2946,7 +2977,14 @@ function copyFile(src, dest, mode, callback) { * @returns {void} */ function copyFileSync(src, dest, mode) { - syncFs.copyFile(src, dest, mode); + src = getValidatedPath(src, 'src'); + dest = getValidatedPath(dest, 'dest'); + + binding.copyFile( + pathModule.toNamespacedPath(src), + pathModule.toNamespacedPath(dest), + getValidMode(mode, 'copyFile'), + ); } /** diff --git a/lib/internal/fs/sync.js b/lib/internal/fs/sync.js deleted file mode 100644 index fbcc2ad2e25b2a..00000000000000 --- a/lib/internal/fs/sync.js +++ /dev/null @@ -1,106 +0,0 @@ -'use strict'; - -const pathModule = require('path'); -const { - getValidatedPath, - stringToFlags, - getValidMode, - getStatsFromBinding, - getStatFsFromBinding, - getValidatedFd, -} = require('internal/fs/utils'); -const { parseFileMode, isInt32 } = require('internal/validators'); - -const binding = internalBinding('fs'); - -/** - * @param {string} path - * @param {number} flag - * @return {string} - */ -function readFileUtf8(path, flag) { - if (!isInt32(path)) { - path = pathModule.toNamespacedPath(getValidatedPath(path)); - } - return binding.readFileUtf8(path, stringToFlags(flag)); -} - -function exists(path) { - try { - path = getValidatedPath(path); - } catch { - return false; - } - - return binding.existsSync(pathModule.toNamespacedPath(path)); -} - -function access(path, mode) { - path = getValidatedPath(path); - mode = getValidMode(mode, 'access'); - - binding.accessSync(pathModule.toNamespacedPath(path), mode); -} - -function copyFile(src, dest, mode) { - src = getValidatedPath(src, 'src'); - dest = getValidatedPath(dest, 'dest'); - - binding.copyFileSync( - pathModule.toNamespacedPath(src), - pathModule.toNamespacedPath(dest), - getValidMode(mode, 'copyFile'), - ); -} - -function stat(path, options = { bigint: false, throwIfNoEntry: true }) { - path = getValidatedPath(path); - const stats = binding.statSync( - pathModule.toNamespacedPath(path), - options.bigint, - options.throwIfNoEntry, - ); - if (stats === undefined) { - return undefined; - } - return getStatsFromBinding(stats); -} - -function statfs(path, options = { bigint: false }) { - path = getValidatedPath(path); - const stats = binding.statfsSync(pathModule.toNamespacedPath(path), options.bigint); - return getStatFsFromBinding(stats); -} - -function open(path, flags, mode) { - path = getValidatedPath(path); - - return binding.openSync( - pathModule.toNamespacedPath(path), - stringToFlags(flags), - parseFileMode(mode, 'mode', 0o666), - ); -} - -function close(fd) { - fd = getValidatedFd(fd); - - return binding.closeSync(fd); -} - -function unlink(path) { - path = pathModule.toNamespacedPath(getValidatedPath(path)); - return binding.unlinkSync(path); -} - -module.exports = { - readFileUtf8, - exists, - access, - copyFile, - stat, - statfs, - open, - close, - unlink, -}; diff --git a/src/node_file-inl.h b/src/node_file-inl.h index cdf21a4b3a6c22..6c059add3bfc02 100644 --- a/src/node_file-inl.h +++ b/src/node_file-inl.h @@ -349,6 +349,38 @@ int SyncCall(Environment* env, v8::Local ctx, return err; } +// Similar to SyncCall but throws immediately if there is an error. +template +int SyncCallAndThrowIf(Predicate should_throw, + Environment* env, + FSReqWrapSync* req_wrap, + Func fn, + Args... args) { + env->PrintSyncTrace(); + int result = fn(nullptr, &(req_wrap->req), args..., nullptr); + if (should_throw(result)) { + env->ThrowUVException(result, + req_wrap->syscall_p, + nullptr, + req_wrap->path_p, + req_wrap->dest_p); + } + return result; +} + +constexpr bool is_uv_error(int result) { + return result < 0; +} + +// Similar to SyncCall but throws immediately if there is an error. +template +int SyncCallAndThrowOnError(Environment* env, + FSReqWrapSync* req_wrap, + Func fn, + Args... args) { + return SyncCallAndThrowIf(is_uv_error, env, req_wrap, fn, args...); +} + } // namespace fs } // namespace node diff --git a/src/node_file.cc b/src/node_file.cc index 8284ab744d829c..b31dcc168486d8 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -981,90 +981,45 @@ void Access(const FunctionCallbackInfo& args) { THROW_IF_INSUFFICIENT_PERMISSIONS( env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); - FSReqBase* req_wrap_async = GetReqWrap(args, 2); - if (req_wrap_async != nullptr) { // access(path, mode, req) + if (argc > 2) { // access(path, mode, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 2); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN1( UV_FS_ACCESS, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, req_wrap_async, args, "access", UTF8, AfterNoArgs, uv_fs_access, *path, mode); - } else { // access(path, mode, undefined, ctx) - CHECK_EQ(argc, 4); - FSReqWrapSync req_wrap_sync; + } else { // access(path, mode) + FSReqWrapSync req_wrap_sync("access", *path); FS_SYNC_TRACE_BEGIN(access); - SyncCall(env, args[3], &req_wrap_sync, "access", uv_fs_access, *path, mode); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_access, *path, mode); FS_SYNC_TRACE_END(access); } } -static void AccessSync(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - Isolate* isolate = env->isolate(); - - const int argc = args.Length(); - CHECK_GE(argc, 2); - - CHECK(args[1]->IsInt32()); - int mode = args[1].As()->Value(); - - BufferValue path(isolate, args[0]); - CHECK_NOT_NULL(*path); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); - - uv_fs_t req; - FS_SYNC_TRACE_BEGIN(access); - int err = uv_fs_access(nullptr, &req, *path, mode, nullptr); - uv_fs_req_cleanup(&req); - FS_SYNC_TRACE_END(access); - - if (err) { - return env->ThrowUVException(err, "access", nullptr, path.out()); - } -} - void Close(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 2); + CHECK_GE(argc, 1); CHECK(args[0]->IsInt32()); int fd = args[0].As()->Value(); env->RemoveUnmanagedFd(fd); - FSReqBase* req_wrap_async = GetReqWrap(args, 1); - if (req_wrap_async != nullptr) { // close(fd, req) + if (argc > 1) { // close(fd, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 1); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN0(UV_FS_CLOSE, req_wrap_async) AsyncCall(env, req_wrap_async, args, "close", UTF8, AfterNoArgs, uv_fs_close, fd); - } else { // close(fd, undefined, ctx) - CHECK_EQ(argc, 3); - FSReqWrapSync req_wrap_sync; + } else { // close(fd) + FSReqWrapSync req_wrap_sync("close"); FS_SYNC_TRACE_BEGIN(close); - SyncCall(env, args[2], &req_wrap_sync, "close", uv_fs_close, fd); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_close, fd); FS_SYNC_TRACE_END(close); } } -static void CloseSync(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - CHECK_GE(args.Length(), 1); - CHECK(args[0]->IsInt32()); - - int fd = args[0].As()->Value(); - env->RemoveUnmanagedFd(fd); - - uv_fs_t req; - FS_SYNC_TRACE_BEGIN(close); - int err = uv_fs_close(nullptr, &req, fd, nullptr); - FS_SYNC_TRACE_END(close); - uv_fs_req_cleanup(&req); - - if (err < 0) { - return env->ThrowUVException(err, "close"); - } -} - static void ExistsSync(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); Isolate* isolate = env->isolate(); @@ -1214,13 +1169,17 @@ static void InternalModuleStat(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(rc); } +constexpr bool is_uv_error_except_no_entry(int result) { + return result < 0 && result != UV_ENOENT; +} + static void Stat(const FunctionCallbackInfo& args) { Realm* realm = Realm::GetCurrent(args); BindingData* binding_data = realm->GetBindingData(); Environment* env = realm->env(); const int argc = args.Length(); - CHECK_GE(argc, 2); + CHECK_GE(argc, 3); BufferValue path(realm->isolate(), args[0]); CHECK_NOT_NULL(*path); @@ -1228,63 +1187,34 @@ static void Stat(const FunctionCallbackInfo& args) { env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); bool use_bigint = args[1]->IsTrue(); - FSReqBase* req_wrap_async = GetReqWrap(args, 2, use_bigint); - if (req_wrap_async != nullptr) { // stat(path, use_bigint, req) + if (!args[2]->IsUndefined()) { // stat(path, use_bigint, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 2, use_bigint); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN1( UV_FS_STAT, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, req_wrap_async, args, "stat", UTF8, AfterStat, uv_fs_stat, *path); - } else { // stat(path, use_bigint, undefined, ctx) - CHECK_EQ(argc, 4); - FSReqWrapSync req_wrap_sync; + } else { // stat(path, use_bigint, undefined, do_not_throw_if_no_entry) + bool do_not_throw_if_no_entry = args[3]->IsFalse(); + FSReqWrapSync req_wrap_sync("stat", *path); FS_SYNC_TRACE_BEGIN(stat); - int err = SyncCall(env, args[3], &req_wrap_sync, "stat", uv_fs_stat, *path); + int result; + if (do_not_throw_if_no_entry) { + result = SyncCallAndThrowIf( + is_uv_error_except_no_entry, env, &req_wrap_sync, uv_fs_stat, *path); + } else { + result = SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_stat, *path); + } FS_SYNC_TRACE_END(stat); - if (err != 0) { - return; // error info is in ctx + if (is_uv_error(result)) { + return; } - Local arr = FillGlobalStatsArray(binding_data, use_bigint, static_cast(req_wrap_sync.req.ptr)); args.GetReturnValue().Set(arr); } } -static void StatSync(const FunctionCallbackInfo& args) { - Realm* realm = Realm::GetCurrent(args); - BindingData* binding_data = realm->GetBindingData(); - Environment* env = realm->env(); - - CHECK_GE(args.Length(), 3); - - BufferValue path(realm->isolate(), args[0]); - bool use_bigint = args[1]->IsTrue(); - bool do_not_throw_if_no_entry = args[2]->IsFalse(); - CHECK_NOT_NULL(*path); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); - - env->PrintSyncTrace(); - - uv_fs_t req; - auto make = OnScopeLeave([&req]() { uv_fs_req_cleanup(&req); }); - - FS_SYNC_TRACE_BEGIN(stat); - int err = uv_fs_stat(nullptr, &req, *path, nullptr); - FS_SYNC_TRACE_END(stat); - - if (err < 0) { - if (err == UV_ENOENT && do_not_throw_if_no_entry) { - return; - } - return env->ThrowUVException(err, "stat", nullptr, path.out()); - } - - Local arr = FillGlobalStatsArray( - binding_data, use_bigint, static_cast(req.ptr)); - args.GetReturnValue().Set(arr); -} - static void LStat(const FunctionCallbackInfo& args) { Realm* realm = Realm::GetCurrent(args); BindingData* binding_data = realm->GetBindingData(); @@ -1367,8 +1297,9 @@ static void StatFs(const FunctionCallbackInfo& args) { env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); bool use_bigint = args[1]->IsTrue(); - FSReqBase* req_wrap_async = GetReqWrap(args, 2, use_bigint); - if (req_wrap_async != nullptr) { // statfs(path, use_bigint, req) + if (argc > 2) { // statfs(path, use_bigint, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 2, use_bigint); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN1( UV_FS_STATFS, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, @@ -1379,15 +1310,14 @@ static void StatFs(const FunctionCallbackInfo& args) { AfterStatFs, uv_fs_statfs, *path); - } else { // statfs(path, use_bigint, undefined, ctx) - CHECK_EQ(argc, 4); - FSReqWrapSync req_wrap_sync; + } else { // statfs(path, use_bigint) + FSReqWrapSync req_wrap_sync("statfs", *path); FS_SYNC_TRACE_BEGIN(statfs); - int err = - SyncCall(env, args[3], &req_wrap_sync, "statfs", uv_fs_statfs, *path); + int result = + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_statfs, *path); FS_SYNC_TRACE_END(statfs); - if (err != 0) { - return; // error info is in ctx + if (is_uv_error(result)) { + return; } Local arr = FillGlobalStatFsArray( @@ -1398,34 +1328,6 @@ static void StatFs(const FunctionCallbackInfo& args) { } } -static void StatFsSync(const FunctionCallbackInfo& args) { - Realm* realm = Realm::GetCurrent(args); - BindingData* binding_data = realm->GetBindingData(); - Environment* env = realm->env(); - - CHECK_GE(args.Length(), 2); - - BufferValue path(realm->isolate(), args[0]); - bool use_bigint = args[1]->IsTrue(); - - CHECK_NOT_NULL(*path); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemRead, path.ToStringView()); - - uv_fs_t req; - auto make = OnScopeLeave([&req]() { uv_fs_req_cleanup(&req); }); - FS_SYNC_TRACE_BEGIN(statfs); - int err = uv_fs_statfs(nullptr, &req, *path, nullptr); - FS_SYNC_TRACE_END(statfs); - if (err < 0) { - return env->ThrowUVException(err, "statfs", *path, nullptr); - } - - Local arr = FillGlobalStatFsArray( - binding_data, use_bigint, static_cast(req.ptr)); - args.GetReturnValue().Set(arr); -} - static void Symlink(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); Isolate* isolate = env->isolate(); @@ -1680,49 +1582,28 @@ static void Unlink(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 2); + CHECK_GE(argc, 1); BufferValue path(env->isolate(), args[0]); CHECK_NOT_NULL(*path); THROW_IF_INSUFFICIENT_PERMISSIONS( env, permission::PermissionScope::kFileSystemWrite, path.ToStringView()); - FSReqBase* req_wrap_async = GetReqWrap(args, 1); - if (req_wrap_async != nullptr) { + if (argc > 1) { // unlink(path, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 1); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN1( UV_FS_UNLINK, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, req_wrap_async, args, "unlink", UTF8, AfterNoArgs, uv_fs_unlink, *path); - } else { - CHECK_EQ(argc, 3); - FSReqWrapSync req_wrap_sync; + } else { // unlink(path) + FSReqWrapSync req_wrap_sync("unlink", *path); FS_SYNC_TRACE_BEGIN(unlink); - SyncCall(env, args[2], &req_wrap_sync, "unlink", uv_fs_unlink, *path); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_unlink, *path); FS_SYNC_TRACE_END(unlink); } } -static void UnlinkSync(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - - const int argc = args.Length(); - CHECK_GE(argc, 1); - - BufferValue path(env->isolate(), args[0]); - CHECK_NOT_NULL(*path); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemWrite, path.ToStringView()); - - uv_fs_t req; - auto make = OnScopeLeave([&req]() { uv_fs_req_cleanup(&req); }); - FS_SYNC_TRACE_BEGIN(unlink); - int err = uv_fs_unlink(nullptr, &req, *path, nullptr); - FS_SYNC_TRACE_END(unlink); - if (err < 0) { - return env->ThrowUVException(err, "unlink", nullptr, *path); - } -} - static void RMDir(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); @@ -2172,54 +2053,26 @@ static void Open(const FunctionCallbackInfo& args) { if (CheckOpenPermissions(env, path, flags).IsNothing()) return; - FSReqBase* req_wrap_async = GetReqWrap(args, 3); - if (req_wrap_async != nullptr) { // open(path, flags, mode, req) + if (argc > 3) { // open(path, flags, mode, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 3); + CHECK_NOT_NULL(req_wrap_async); req_wrap_async->set_is_plain_open(true); FS_ASYNC_TRACE_BEGIN1( UV_FS_OPEN, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, req_wrap_async, args, "open", UTF8, AfterInteger, uv_fs_open, *path, flags, mode); - } else { // open(path, flags, mode, undefined, ctx) - CHECK_EQ(argc, 5); - FSReqWrapSync req_wrap_sync; + } else { // open(path, flags, mode) + FSReqWrapSync req_wrap_sync("open", *path); FS_SYNC_TRACE_BEGIN(open); - int result = SyncCall(env, args[4], &req_wrap_sync, "open", - uv_fs_open, *path, flags, mode); + int result = SyncCallAndThrowOnError( + env, &req_wrap_sync, uv_fs_open, *path, flags, mode); FS_SYNC_TRACE_END(open); - if (result >= 0) env->AddUnmanagedFd(result); + if (is_uv_error(result)) return; + env->AddUnmanagedFd(result); args.GetReturnValue().Set(result); } } -static void OpenSync(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - - const int argc = args.Length(); - CHECK_GE(argc, 3); - - BufferValue path(env->isolate(), args[0]); - CHECK_NOT_NULL(*path); - - CHECK(args[1]->IsInt32()); - const int flags = args[1].As()->Value(); - - CHECK(args[2]->IsInt32()); - const int mode = args[2].As()->Value(); - - if (CheckOpenPermissions(env, path, flags).IsNothing()) return; - - uv_fs_t req; - auto make = OnScopeLeave([&req]() { uv_fs_req_cleanup(&req); }); - FS_SYNC_TRACE_BEGIN(open); - auto err = uv_fs_open(nullptr, &req, *path, flags, mode, nullptr); - FS_SYNC_TRACE_END(open); - if (err < 0) { - return env->ThrowUVException(err, "open", nullptr, path.out()); - } - env->AddUnmanagedFd(err); - args.GetReturnValue().Set(err); -} - static void OpenFileHandle(const FunctionCallbackInfo& args) { Realm* realm = Realm::GetCurrent(args); BindingData* binding_data = realm->GetBindingData(); @@ -2281,8 +2134,8 @@ static void CopyFile(const FunctionCallbackInfo& args) { CHECK(args[2]->IsInt32()); const int flags = args[2].As()->Value(); - FSReqBase* req_wrap_async = GetReqWrap(args, 3); - if (req_wrap_async != nullptr) { // copyFile(src, dest, flags, req) + if (argc > 3) { // copyFile(src, dest, flags, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 3); FS_ASYNC_TRACE_BEGIN2(UV_FS_COPYFILE, req_wrap_async, "src", @@ -2292,49 +2145,15 @@ static void CopyFile(const FunctionCallbackInfo& args) { AsyncDestCall(env, req_wrap_async, args, "copyfile", *dest, dest.length(), UTF8, AfterNoArgs, uv_fs_copyfile, *src, *dest, flags); - } else { // copyFile(src, dest, flags, undefined, ctx) - CHECK_EQ(argc, 5); - FSReqWrapSync req_wrap_sync; + } else { // copyFile(src, dest, flags) + FSReqWrapSync req_wrap_sync("copyfile", *src, *dest); FS_SYNC_TRACE_BEGIN(copyfile); - SyncCall(env, args[4], &req_wrap_sync, "copyfile", - uv_fs_copyfile, *src, *dest, flags); + SyncCallAndThrowOnError( + env, &req_wrap_sync, uv_fs_copyfile, *src, *dest, flags); FS_SYNC_TRACE_END(copyfile); } } -static void CopyFileSync(const FunctionCallbackInfo& args) { - Environment* env = Environment::GetCurrent(args); - Isolate* isolate = env->isolate(); - - const int argc = args.Length(); - CHECK_GE(argc, 3); - - BufferValue src(isolate, args[0]); - CHECK_NOT_NULL(*src); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemRead, src.ToStringView()); - - BufferValue dest(isolate, args[1]); - CHECK_NOT_NULL(*dest); - THROW_IF_INSUFFICIENT_PERMISSIONS( - env, permission::PermissionScope::kFileSystemWrite, dest.ToStringView()); - - CHECK(args[2]->IsInt32()); - const int flags = args[2].As()->Value(); - - uv_fs_t req; - FS_SYNC_TRACE_BEGIN(copyfile); - int err = - uv_fs_copyfile(nullptr, &req, src.out(), dest.out(), flags, nullptr); - uv_fs_req_cleanup(&req); - FS_SYNC_TRACE_END(copyfile); - - if (err) { - return env->ThrowUVException( - err, "copyfile", nullptr, src.out(), dest.out()); - } -} - // Wrapper for write(2). // // bytesWritten = write(fd, buffer, offset, length, position, callback) @@ -3426,12 +3245,9 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data, Isolate* isolate = isolate_data->isolate(); SetMethod(isolate, target, "access", Access); - SetMethod(isolate, target, "accessSync", AccessSync); SetMethod(isolate, target, "close", Close); - SetMethod(isolate, target, "closeSync", CloseSync); SetMethod(isolate, target, "existsSync", ExistsSync); SetMethod(isolate, target, "open", Open); - SetMethod(isolate, target, "openSync", OpenSync); SetMethod(isolate, target, "openFileHandle", OpenFileHandle); SetMethod(isolate, target, "read", Read); SetMethod(isolate, target, "readFileUtf8", ReadFileUtf8); @@ -3446,22 +3262,18 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data, SetMethod(isolate, target, "internalModuleReadJSON", InternalModuleReadJSON); SetMethod(isolate, target, "internalModuleStat", InternalModuleStat); SetMethod(isolate, target, "stat", Stat); - SetMethod(isolate, target, "statSync", StatSync); SetMethod(isolate, target, "lstat", LStat); SetMethod(isolate, target, "fstat", FStat); SetMethod(isolate, target, "statfs", StatFs); - SetMethod(isolate, target, "statfsSync", StatFsSync); SetMethod(isolate, target, "link", Link); SetMethod(isolate, target, "symlink", Symlink); SetMethod(isolate, target, "readlink", ReadLink); SetMethod(isolate, target, "unlink", Unlink); - SetMethod(isolate, target, "unlinkSync", UnlinkSync); SetMethod(isolate, target, "writeBuffer", WriteBuffer); SetMethod(isolate, target, "writeBuffers", WriteBuffers); SetMethod(isolate, target, "writeString", WriteString); SetMethod(isolate, target, "realpath", RealPath); SetMethod(isolate, target, "copyFile", CopyFile); - SetMethod(isolate, target, "copyFileSync", CopyFileSync); SetMethod(isolate, target, "chmod", Chmod); SetMethod(isolate, target, "fchmod", FChmod); @@ -3549,15 +3361,12 @@ BindingData* FSReqBase::binding_data() { void RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(Access); - registry->Register(AccessSync); StatWatcher::RegisterExternalReferences(registry); BindingData::RegisterExternalReferences(registry); registry->Register(Close); - registry->Register(CloseSync); registry->Register(ExistsSync); registry->Register(Open); - registry->Register(OpenSync); registry->Register(OpenFileHandle); registry->Register(Read); registry->Register(ReadFileUtf8); @@ -3572,22 +3381,18 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(InternalModuleReadJSON); registry->Register(InternalModuleStat); registry->Register(Stat); - registry->Register(StatSync); registry->Register(LStat); registry->Register(FStat); registry->Register(StatFs); - registry->Register(StatFsSync); registry->Register(Link); registry->Register(Symlink); registry->Register(ReadLink); registry->Register(Unlink); - registry->Register(UnlinkSync); registry->Register(WriteBuffer); registry->Register(WriteBuffers); registry->Register(WriteString); registry->Register(RealPath); registry->Register(CopyFile); - registry->Register(CopyFileSync); registry->Register(Chmod); registry->Register(FChmod); diff --git a/src/node_file.h b/src/node_file.h index dad50996f1b003..6f1b55284db0f4 100644 --- a/src/node_file.h +++ b/src/node_file.h @@ -457,10 +457,22 @@ int MKDirpSync(uv_loop_t* loop, class FSReqWrapSync { public: - FSReqWrapSync() = default; + FSReqWrapSync(const char* syscall = nullptr, + const char* path = nullptr, + const char* dest = nullptr) + : syscall_p(syscall), path_p(path), dest_p(dest) {} ~FSReqWrapSync() { uv_fs_req_cleanup(&req); } + uv_fs_t req; + const char* syscall_p; + const char* path_p; + const char* dest_p; + + FSReqWrapSync(const FSReqWrapSync&) = delete; + FSReqWrapSync& operator=(const FSReqWrapSync&) = delete; + // TODO(joyeecheung): move these out of FSReqWrapSync and into a special + // class for mkdirp FSContinuationData* continuation_data() const { return continuation_data_.get(); } @@ -468,9 +480,6 @@ class FSReqWrapSync { continuation_data_ = std::move(data); } - FSReqWrapSync(const FSReqWrapSync&) = delete; - FSReqWrapSync& operator=(const FSReqWrapSync&) = delete; - private: std::unique_ptr continuation_data_; }; @@ -507,6 +516,18 @@ inline int SyncCall(Environment* env, v8::Local ctx, FSReqWrapSync* req_wrap, const char* syscall, Func fn, Args... args); +// Similar to SyncCall but throws immediately if there is an error. +template +int SyncCallAndThrowIf(Predicate should_throw, + Environment* env, + FSReqWrapSync* req_wrap, + Func fn, + Args... args); +template +int SyncCallAndThrowOnError(Environment* env, + FSReqWrapSync* req_wrap, + Func fn, + Args... args); } // namespace fs } // namespace node diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 8e9f6fa0f1535d..78db466a95b38e 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -74,7 +74,6 @@ const expectedModules = new Set([ 'NativeModule internal/webstreams/queuingstrategies', 'NativeModule internal/blob', 'NativeModule internal/fs/utils', - 'NativeModule internal/fs/sync', 'NativeModule fs', 'Internal Binding options', 'NativeModule internal/options', From 5c66ec9e66d2a5e6ba678c67051b1fb8d9fea581 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Fri, 29 Sep 2023 21:58:09 -0400 Subject: [PATCH 041/232] inspector: simplify dispatchProtocolMessage PR-URL: https://github.com/nodejs/node/pull/49780 Reviewed-By: Yagiz Nizipli --- src/inspector/node_string.cc | 10 ---------- src/inspector/node_string.h | 2 -- src/inspector_agent.cc | 4 ++-- .../lib/base_string_adapter_cc.template | 12 ------------ .../lib/base_string_adapter_h.template | 1 - 5 files changed, 2 insertions(+), 27 deletions(-) diff --git a/src/inspector/node_string.cc b/src/inspector/node_string.cc index 0f780f46c8ebdd..7960971a094fd4 100644 --- a/src/inspector/node_string.cc +++ b/src/inspector/node_string.cc @@ -97,16 +97,6 @@ double toDouble(const char* buffer, size_t length, bool* ok) { return d; } -std::unique_ptr parseMessage(const std::string_view message, - bool binary) { - if (binary) { - return Value::parseBinary( - reinterpret_cast(message.data()), - message.length()); - } - return parseJSON(message); -} - ProtocolMessage jsonToMessage(String message) { return message; } diff --git a/src/inspector/node_string.h b/src/inspector/node_string.h index e36da446248ef1..369041841ef96d 100644 --- a/src/inspector/node_string.h +++ b/src/inspector/node_string.h @@ -68,8 +68,6 @@ void builderAppendQuotedString(StringBuilder& builder, const std::string_view); std::unique_ptr parseJSON(const std::string_view); std::unique_ptr parseJSON(v8_inspector::StringView view); -std::unique_ptr parseMessage(const std::string_view message, - bool binary); ProtocolMessage jsonToMessage(String message); ProtocolMessage binaryToMessage(std::vector message); String fromUTF8(const uint8_t* data, size_t length); diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index f0b4cc43c864ae..de372400fd9ced 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -253,8 +253,8 @@ class ChannelImpl final : public v8_inspector::V8Inspector::Channel, "[inspector received] %s\n", raw_message); std::unique_ptr value = - protocol::DictionaryValue::cast(protocol::StringUtil::parseMessage( - raw_message, false)); + protocol::DictionaryValue::cast( + protocol::StringUtil::parseJSON(message)); int call_id; std::string method; node_dispatcher_->parseCommand(value.get(), &call_id, &method); diff --git a/tools/inspector_protocol/lib/base_string_adapter_cc.template b/tools/inspector_protocol/lib/base_string_adapter_cc.template index 639b39bb520d85..af078b8e8ae729 100644 --- a/tools/inspector_protocol/lib/base_string_adapter_cc.template +++ b/tools/inspector_protocol/lib/base_string_adapter_cc.template @@ -128,18 +128,6 @@ std::unique_ptr toBaseValue(Value* value, int depth) { return nullptr; } -// static -std::unique_ptr StringUtil::parseMessage( - const std::string& message, bool binary) { - if (binary) { - return Value::parseBinary( - reinterpret_cast(message.data()), - message.length()); - } - std::unique_ptr value = base::JSONReader::ReadDeprecated(message); - return toProtocolValue(value.get(), 1000); -} - // static ProtocolMessage StringUtil::jsonToMessage(String message) { return message; diff --git a/tools/inspector_protocol/lib/base_string_adapter_h.template b/tools/inspector_protocol/lib/base_string_adapter_h.template index 8bf3c355c0e584..46f9e1778b12bb 100644 --- a/tools/inspector_protocol/lib/base_string_adapter_h.template +++ b/tools/inspector_protocol/lib/base_string_adapter_h.template @@ -92,7 +92,6 @@ class {{config.lib.export_macro}} StringUtil { return builder.toString(); } - static std::unique_ptr parseMessage(const std::string& message, bool binary); static ProtocolMessage jsonToMessage(String message); static ProtocolMessage binaryToMessage(std::vector message); From 2ff4e71452c6871604b6e5513bef05b8f1bc13fc Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 29 Sep 2023 19:24:14 -0700 Subject: [PATCH 042/232] module: move helpers out of cjs loader PR-URL: https://github.com/nodejs/node/pull/49912 Reviewed-By: Antoine du Hamel Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli --- lib/internal/modules/cjs/loader.js | 72 ++------------------- lib/internal/modules/helpers.js | 20 ++++++ lib/internal/modules/package_json_reader.js | 52 ++++++++++++++- lib/internal/modules/run_main.js | 5 +- 4 files changed, 79 insertions(+), 70 deletions(-) diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index db31feb93ee724..44c3f4c31fb352 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -55,7 +55,6 @@ const { StringPrototypeCharAt, StringPrototypeCharCodeAt, StringPrototypeEndsWith, - StringPrototypeLastIndexOf, StringPrototypeIndexOf, StringPrototypeRepeat, StringPrototypeSlice, @@ -68,7 +67,7 @@ const cjsParseCache = new SafeWeakMap(); // Set first due to cycle with ESM loader functions. module.exports = { - wrapSafe, Module, toRealPath, readPackageScope, cjsParseCache, + wrapSafe, Module, cjsParseCache, get hasLoadedAnyUserCJSModule() { return hasLoadedAnyUserCJSModule; }, initializeCJS, }; @@ -88,9 +87,7 @@ const { const { internalCompileFunction } = require('internal/vm'); const assert = require('internal/assert'); const fs = require('fs'); -const internalFS = require('internal/fs/utils'); const path = require('path'); -const { sep } = path; const { internalModuleStat } = internalBinding('fs'); const { safeGetenv } = internalBinding('credentials'); const { @@ -106,6 +103,7 @@ const { makeRequireFunction, normalizeReferrerURL, stripBOM, + toRealPath, } = require('internal/modules/helpers'); const packageJsonReader = require('internal/modules/package_json_reader'); const { getOptionValue, getEmbedderOptions } = require('internal/options'); @@ -403,15 +401,7 @@ function initializeCJS() { // -> a. // -> a/index. -/** - * @param {string} requestPath - * @return {PackageConfig} - */ -function readPackage(requestPath) { - return packageJsonReader.read(path.resolve(requestPath, 'package.json')); -} - -let _readPackage = readPackage; +let _readPackage = packageJsonReader.readPackage; ObjectDefineProperty(Module, '_readPackage', { __proto__: null, get() { return _readPackage; }, @@ -423,37 +413,6 @@ ObjectDefineProperty(Module, '_readPackage', { configurable: true, }); -/** - * Get the nearest parent package.json file from a given path. - * Return the package.json data and the path to the package.json file, or false. - * @param {string} checkPath The path to start searching from. - */ -function readPackageScope(checkPath) { - const rootSeparatorIndex = StringPrototypeIndexOf(checkPath, sep); - let separatorIndex; - const enabledPermission = permission.isEnabled(); - do { - separatorIndex = StringPrototypeLastIndexOf(checkPath, sep); - checkPath = StringPrototypeSlice(checkPath, 0, separatorIndex); - // Stop the search when the process doesn't have permissions - // to walk upwards - if (enabledPermission && !permission.has('fs.read', checkPath + sep)) { - return false; - } - if (StringPrototypeEndsWith(checkPath, sep + 'node_modules')) { - return false; - } - const pjson = _readPackage(checkPath + sep); - if (pjson.exists) { - return { - data: pjson, - path: checkPath, - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} - /** * Try to load a specifier as a package. * @param {string} requestPath The path to what we are trying to load @@ -498,14 +457,6 @@ function tryPackage(requestPath, exts, isMain, originalPath) { return actual; } -/** - * Cache for storing resolved real paths of modules. - * In order to minimize unnecessary lstat() calls, this cache is a list of known-real paths. - * Set to an empty Map to reset. - * @type {Map} - */ -const realpathCache = new SafeMap(); - /** * Check if the file exists and is not a directory if using `--preserve-symlinks` and `isMain` is false, keep symlinks * intact, otherwise resolve to the absolute realpath. @@ -521,17 +472,6 @@ function tryFile(requestPath, isMain) { return toRealPath(requestPath); } - -/** - * Resolves the path of a given `require` specifier, following symlinks. - * @param {string} requestPath The `require` specifier - */ -function toRealPath(requestPath) { - return fs.realpathSync(requestPath, { - [internalFS.realpathCacheKey]: realpathCache, - }); -} - /** * Given a path, check if the file exists with any of the set extensions. * @param {string} basePath The path and filename without extension @@ -593,7 +533,7 @@ function trySelfParentPath(parent) { function trySelf(parentPath, request) { if (!parentPath) { return false; } - const { data: pkg, path: pkgPath } = readPackageScope(parentPath); + const { data: pkg, path: pkgPath } = packageJsonReader.readPackageScope(parentPath); if (!pkg || pkg.exports == null || pkg.name === undefined) { return false; } @@ -1153,7 +1093,7 @@ Module._resolveFilename = function(request, parent, isMain, options) { if (request[0] === '#' && (parent?.filename || parent?.id === '')) { const parentPath = parent?.filename ?? process.cwd() + path.sep; - const pkg = readPackageScope(parentPath) || { __proto__: null }; + const pkg = packageJsonReader.readPackageScope(parentPath) || { __proto__: null }; if (pkg.data?.imports != null) { try { const { packageImportsResolve } = require('internal/modules/esm/resolve'); @@ -1450,7 +1390,7 @@ Module._extensions['.js'] = function(module, filename) { content = fs.readFileSync(filename, 'utf8'); } if (StringPrototypeEndsWith(filename, '.js')) { - const pkg = readPackageScope(filename) || { __proto__: null }; + const pkg = packageJsonReader.readPackageScope(filename) || { __proto__: null }; // Function require shouldn't be used in ES modules. if (pkg.data?.type === 'module') { const parent = moduleParentCache.get(module); diff --git a/lib/internal/modules/helpers.js b/lib/internal/modules/helpers.js index cc32e95c4eb413..7f2959cc469dc1 100644 --- a/lib/internal/modules/helpers.js +++ b/lib/internal/modules/helpers.js @@ -21,6 +21,8 @@ const { const { BuiltinModule } = require('internal/bootstrap/realm'); const { validateString } = require('internal/validators'); +const fs = require('fs'); // Import all of `fs` so that it can be monkey-patched. +const internalFS = require('internal/fs/utils'); const path = require('path'); const { pathToFileURL, fileURLToPath, URL } = require('internal/url'); @@ -39,6 +41,23 @@ let debug = require('internal/util/debuglog').debuglog('module', (fn) => { /** @typedef {import('internal/modules/cjs/loader.js').Module} Module */ +/** + * Cache for storing resolved real paths of modules. + * In order to minimize unnecessary lstat() calls, this cache is a list of known-real paths. + * Set to an empty Map to reset. + * @type {Map} + */ +const realpathCache = new SafeMap(); +/** + * Resolves the path of a given `require` specifier, following symlinks. + * @param {string} requestPath The `require` specifier + */ +function toRealPath(requestPath) { + return fs.realpathSync(requestPath, { + [internalFS.realpathCacheKey]: realpathCache, + }); +} + /** @type {Set} */ let cjsConditions; /** @@ -310,4 +329,5 @@ module.exports = { makeRequireFunction, normalizeReferrerURL, stripBOM, + toRealPath, }; diff --git a/lib/internal/modules/package_json_reader.js b/lib/internal/modules/package_json_reader.js index c6377faae6f5a8..88c079d10d1161 100644 --- a/lib/internal/modules/package_json_reader.js +++ b/lib/internal/modules/package_json_reader.js @@ -4,12 +4,17 @@ const { JSONParse, ObjectPrototypeHasOwnProperty, SafeMap, + StringPrototypeEndsWith, + StringPrototypeIndexOf, + StringPrototypeLastIndexOf, + StringPrototypeSlice, } = primordials; const { ERR_INVALID_PACKAGE_CONFIG, } = require('internal/errors').codes; const { internalModuleReadJSON } = internalBinding('fs'); -const { toNamespacedPath } = require('path'); +const { resolve, sep, toNamespacedPath } = require('path'); +const permission = require('internal/process/permission'); const { kEmptyObject } = require('internal/util'); const { fileURLToPath, pathToFileURL } = require('internal/url'); @@ -128,4 +133,47 @@ function read(jsonPath, { base, specifier, isESM } = kEmptyObject) { return result; } -module.exports = { read }; +/** + * @param {string} requestPath + * @return {PackageConfig} + */ +function readPackage(requestPath) { + return read(resolve(requestPath, 'package.json')); +} + +/** + * Get the nearest parent package.json file from a given path. + * Return the package.json data and the path to the package.json file, or false. + * @param {string} checkPath The path to start searching from. + */ +function readPackageScope(checkPath) { + const rootSeparatorIndex = StringPrototypeIndexOf(checkPath, sep); + let separatorIndex; + const enabledPermission = permission.isEnabled(); + do { + separatorIndex = StringPrototypeLastIndexOf(checkPath, sep); + checkPath = StringPrototypeSlice(checkPath, 0, separatorIndex); + // Stop the search when the process doesn't have permissions + // to walk upwards + if (enabledPermission && !permission.has('fs.read', checkPath + sep)) { + return false; + } + if (StringPrototypeEndsWith(checkPath, sep + 'node_modules')) { + return false; + } + const pjson = readPackage(checkPath + sep); + if (pjson.exists) { + return { + data: pjson, + path: checkPath, + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} + +module.exports = { + read, + readPackage, + readPackageScope, +}; diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index 2e4dabd503a883..e5969bf7b75ea6 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -15,12 +15,13 @@ function resolveMainPath(main) { // Note extension resolution for the main entry point can be deprecated in a // future major. // Module._findPath is monkey-patchable here. - const { Module, toRealPath } = require('internal/modules/cjs/loader'); + const { Module } = require('internal/modules/cjs/loader'); let mainPath = Module._findPath(path.resolve(main), null, true); if (!mainPath) { return; } const preserveSymlinksMain = getOptionValue('--preserve-symlinks-main'); if (!preserveSymlinksMain) { + const { toRealPath } = require('internal/modules/helpers'); mainPath = toRealPath(mainPath); } @@ -48,7 +49,7 @@ function shouldUseESMLoader(mainPath) { if (mainPath && StringPrototypeEndsWith(mainPath, '.mjs')) { return true; } if (!mainPath || StringPrototypeEndsWith(mainPath, '.cjs')) { return false; } - const { readPackageScope } = require('internal/modules/cjs/loader'); + const { readPackageScope } = require('internal/modules/package_json_reader'); const pkg = readPackageScope(mainPath); // No need to guard `pkg` as it can only be an object or `false`. return pkg.data?.type === 'module' || getOptionValue('--experimental-default-type') === 'module'; From 2ca867f2abe7d3ddfcf956d2ae7a886b00487f8f Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 27 Aug 2023 00:22:38 +0000 Subject: [PATCH 043/232] deps: update ada to 2.6.3 PR-URL: https://github.com/nodejs/node/pull/49340 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/ada/ada.cpp | 20 ++- deps/ada/ada.h | 143 ++++++++++++++++-- deps/ada/ada_c.h | 2 + .../maintaining/maintaining-dependencies.md | 6 +- 4 files changed, 152 insertions(+), 19 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index ce4e6302acbe87..35f83eae9af00f 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-07-23 15:03:22 -0400. Do not edit! */ +/* auto-generated on 2023-08-26 17:38:28 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -11231,6 +11231,7 @@ bool url::parse_ipv4(std::string_view input) { } else { host = ada::serializers::ipv4(ipv4); // We have to reserialize the address. } + host_type = IPV4; return true; } @@ -11460,6 +11461,7 @@ bool url::parse_ipv6(std::string_view input) { } host = ada::serializers::ipv6(address); ada_log("parse_ipv6 ", *host); + host_type = IPV6; return true; } @@ -12569,7 +12571,6 @@ result_type parse_url(std::string_view user_input, // If c is U+002F (/) and remaining starts with U+002F (/), // then set state to special authority ignore slashes state and increase // pointer by 1. - state = ada::state::SPECIAL_AUTHORITY_IGNORE_SLASHES; std::string_view view = helpers::substring(url_data, input_position); if (ada::checkers::begins_with(view, "//")) { input_position += 2; @@ -14021,6 +14022,7 @@ bool url_aggregator::parse_ipv4(std::string_view input) { update_base_hostname( ada::serializers::ipv4(ipv4)); // We have to reserialize the address. } + host_type = IPV4; ADA_ASSERT_TRUE(validate()); return true; } @@ -14256,6 +14258,7 @@ bool url_aggregator::parse_ipv6(std::string_view input) { update_base_hostname(ada::serializers::ipv6(address)); ada_log("parse_ipv6 ", get_hostname()); ADA_ASSERT_TRUE(validate()); + host_type = IPV6; return true; } @@ -14890,6 +14893,11 @@ void ada_free(ada_url result) noexcept { delete r; } +ada_url ada_copy(ada_url input) noexcept { + ada::result& r = get_instance(input); + return new ada::result(r); +} + bool ada_is_valid(ada_url result) noexcept { ada::result& r = get_instance(result); return r.has_value(); @@ -15007,6 +15015,14 @@ ada_string ada_get_protocol(ada_url result) noexcept { return ada_string_create(out.data(), out.length()); } +uint8_t ada_get_url_host_type(ada_url result) noexcept { + ada::result& r = get_instance(result); + if (!r) { + return 0; + } + return r->host_type; +} + bool ada_set_href(ada_url result, const char* input, size_t length) noexcept { ada::result& r = get_instance(result); if (!r) { diff --git a/deps/ada/ada.h b/deps/ada/ada.h index 3f1531944e96e7..caceff37d56121 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-07-23 15:03:22 -0400. Do not edit! */ +/* auto-generated on 2023-08-26 17:38:28 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -1008,6 +1008,7 @@ ada_really_inline bool bit_at(const uint8_t a[], const uint8_t i) { #define ADA_CHECKERS_INL_H +#include #include #include @@ -1058,7 +1059,7 @@ ada_really_inline constexpr bool begins_with(std::string_view view, std::string_view prefix) { // in C++20, you have view.begins_with(prefix) return view.size() >= prefix.size() && - (view.substr(0, prefix.size()) == prefix); + std::equal(prefix.begin(), prefix.end(), view.begin()); } } // namespace ada::checkers @@ -1406,6 +1407,25 @@ constexpr ada::scheme::type get_scheme_type(std::string_view scheme) noexcept; namespace ada { +/** + * Type of URL host as an enum. + */ +enum url_host_type : uint8_t { + /** + * Represents common URLs such as "https://www.google.com" + */ + DEFAULT = 0, + /** + * Represents ipv4 addresses such as "http://127.0.0.1" + */ + IPV4 = 1, + /** + * Represents ipv6 addresses such as + * "http://[2001:db8:3333:4444:5555:6666:7777:8888]" + */ + IPV6 = 2, +}; + /** * @brief Base class of URL implementations * @@ -1428,6 +1448,11 @@ struct url_base { */ bool has_opaque_path{false}; + /** + * URL hosts type + */ + url_host_type host_type = url_host_type::DEFAULT; + /** * @private */ @@ -1768,8 +1793,8 @@ inline int fast_digit_count(uint32_t x) noexcept { #define TL_EXPECTED_HPP #define TL_EXPECTED_VERSION_MAJOR 1 -#define TL_EXPECTED_VERSION_MINOR 0 -#define TL_EXPECTED_VERSION_PATCH 1 +#define TL_EXPECTED_VERSION_MINOR 1 +#define TL_EXPECTED_VERSION_PATCH 0 #include #include @@ -1802,6 +1827,16 @@ inline int fast_digit_count(uint32_t x) noexcept { #define TL_EXPECTED_GCC55 #endif +#if !defined(TL_ASSERT) +// can't have assert in constexpr in C++11 and GCC 4.9 has a compiler bug +#if (__cplusplus > 201103L) && !defined(TL_EXPECTED_GCC49) +#include +#define TL_ASSERT(x) assert(x) +#else +#define TL_ASSERT(x) +#endif +#endif + #if (defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ <= 9 && \ !defined(__clang__)) // GCC < 5 doesn't support overloading on const&& for member functions @@ -1957,6 +1992,7 @@ template #ifdef TL_EXPECTED_EXCEPTIONS_ENABLED throw std::forward(e); #else + (void)e; #ifdef _MSC_VER __assume(0); #else @@ -2597,7 +2633,7 @@ struct expected_operations_base : expected_storage_base { geterr().~unexpected(); construct(std::move(rhs).get()); } else { - assign_common(rhs); + assign_common(std::move(rhs)); } } @@ -2960,7 +2996,7 @@ struct default_constructor_tag { }; // expected_default_ctor_base will ensure that expected has a deleted default -// constructor if T is not default constructible. +// consturctor if T is not default constructible. // This specialization is for when T is default constructible template , return map_error_impl(std::move(*this), std::forward(f)); } #endif +#endif +#if defined(TL_EXPECTED_CXX14) && !defined(TL_EXPECTED_GCC49) && \ + !defined(TL_EXPECTED_GCC54) && !defined(TL_EXPECTED_GCC55) + template + TL_EXPECTED_11_CONSTEXPR auto transform_error(F &&f) & { + return map_error_impl(*this, std::forward(f)); + } + template + TL_EXPECTED_11_CONSTEXPR auto transform_error(F &&f) && { + return map_error_impl(std::move(*this), std::forward(f)); + } + template + constexpr auto transform_error(F &&f) const & { + return map_error_impl(*this, std::forward(f)); + } + template + constexpr auto transform_error(F &&f) const && { + return map_error_impl(std::move(*this), std::forward(f)); + } +#else + template + TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval(), + std::declval())) + transform_error(F &&f) & { + return map_error_impl(*this, std::forward(f)); + } + template + TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval(), + std::declval())) + transform_error(F &&f) && { + return map_error_impl(std::move(*this), std::forward(f)); + } + template + constexpr decltype(map_error_impl(std::declval(), + std::declval())) + transform_error(F &&f) const & { + return map_error_impl(*this, std::forward(f)); + } + +#ifndef TL_EXPECTED_NO_CONSTRR + template + constexpr decltype(map_error_impl(std::declval(), + std::declval())) + transform_error(F &&f) const && { + return map_error_impl(std::move(*this), std::forward(f)); + } +#endif #endif template expected TL_EXPECTED_11_CONSTEXPR or_else(F &&f) & { @@ -3697,27 +3780,37 @@ class expected : private detail::expected_move_assign_base, } } - constexpr const T *operator->() const { return valptr(); } - TL_EXPECTED_11_CONSTEXPR T *operator->() { return valptr(); } + constexpr const T *operator->() const { + TL_ASSERT(has_value()); + return valptr(); + } + TL_EXPECTED_11_CONSTEXPR T *operator->() { + TL_ASSERT(has_value()); + return valptr(); + } template ::value> * = nullptr> constexpr const U &operator*() const & { + TL_ASSERT(has_value()); return val(); } template ::value> * = nullptr> TL_EXPECTED_11_CONSTEXPR U &operator*() & { + TL_ASSERT(has_value()); return val(); } template ::value> * = nullptr> constexpr const U &&operator*() const && { + TL_ASSERT(has_value()); return std::move(val()); } template ::value> * = nullptr> TL_EXPECTED_11_CONSTEXPR U &&operator*() && { + TL_ASSERT(has_value()); return std::move(val()); } @@ -3753,10 +3846,22 @@ class expected : private detail::expected_move_assign_base, return std::move(val()); } - constexpr const E &error() const & { return err().value(); } - TL_EXPECTED_11_CONSTEXPR E &error() & { return err().value(); } - constexpr const E &&error() const && { return std::move(err().value()); } - TL_EXPECTED_11_CONSTEXPR E &&error() && { return std::move(err().value()); } + constexpr const E &error() const & { + TL_ASSERT(!has_value()); + return err().value(); + } + TL_EXPECTED_11_CONSTEXPR E &error() & { + TL_ASSERT(!has_value()); + return err().value(); + } + constexpr const E &&error() const && { + TL_ASSERT(!has_value()); + return std::move(err().value()); + } + TL_EXPECTED_11_CONSTEXPR E &&error() && { + TL_ASSERT(!has_value()); + return std::move(err().value()); + } template constexpr T value_or(U &&v) const & { @@ -6609,6 +6714,7 @@ struct url_search_params { * @see https://url.spec.whatwg.org/#dom-urlsearchparams-has */ inline bool has(std::string_view key) noexcept; + inline bool has(std::string_view key, std::string_view value) noexcept; /** * @see https://url.spec.whatwg.org/#dom-urlsearchparams-set @@ -6733,6 +6839,15 @@ inline bool url_search_params::has(const std::string_view key) noexcept { return entry != params.end(); } +inline bool url_search_params::has(std::string_view key, + std::string_view value) noexcept { + auto entry = + std::find_if(params.begin(), params.end(), [&key, &value](auto ¶m) { + return param.first == key && param.second == value; + }); + return entry != params.end(); +} + inline std::string url_search_params::to_string() { auto character_set = ada::character_sets::WWW_FORM_URLENCODED_PERCENT_ENCODE; std::string out{}; @@ -6807,14 +6922,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.0" +#define ADA_VERSION "2.6.3" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 0, + ADA_VERSION_REVISION = 3, }; } // namespace ada diff --git a/deps/ada/ada_c.h b/deps/ada/ada_c.h index 6e22584f612a75..170686b56320f1 100644 --- a/deps/ada/ada_c.h +++ b/deps/ada/ada_c.h @@ -51,6 +51,7 @@ bool ada_can_parse_with_base(const char* input, size_t input_length, void ada_free(ada_url result); void ada_free_owned_string(ada_owned_string owned); +ada_url ada_copy(ada_url input); bool ada_is_valid(ada_url result); @@ -67,6 +68,7 @@ ada_string ada_get_hostname(ada_url result); ada_string ada_get_pathname(ada_url result); ada_string ada_get_search(ada_url result); ada_string ada_get_protocol(ada_url result); +uint8_t ada_get_url_host_type(ada_url result); // url_aggregator setters // if ada_is_valid(result)) is false, the setters have no effect diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 58caff9ed5a056..0b0d262fad9ecf 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.0][] +* [ada 2.6.3][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.0 +### ada 2.6.3 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.0]: #ada-260 +[ada 2.6.3]: #ada-263 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 31a4e9781a6630a66db79e2df5dcc769a0d2b3dc Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 3 Sep 2023 00:23:02 +0000 Subject: [PATCH 044/232] deps: update ada to 2.6.5 PR-URL: https://github.com/nodejs/node/pull/49340 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/ada/ada.cpp | 107 ++++++++++++------ deps/ada/ada.h | 26 +++-- deps/ada/ada_c.h | 7 +- .../maintaining/maintaining-dependencies.md | 6 +- 4 files changed, 94 insertions(+), 52 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index 35f83eae9af00f..ad7a1a74cb4db0 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-26 17:38:28 -0400. Do not edit! */ +/* auto-generated on 2023-08-30 11:44:21 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -116,10 +116,11 @@ ada_really_inline constexpr bool verify_dns_length( ADA_PUSH_DISABLE_ALL_WARNINGS /* begin file src/ada_idna.cpp */ -/* auto-generated on 2023-05-07 19:12:14 -0400. Do not edit! */ +/* auto-generated on 2023-08-29 15:28:19 -0400. Do not edit! */ /* begin file src/idna.cpp */ /* begin file src/unicode_transcoding.cpp */ +#include #include #include @@ -226,38 +227,22 @@ size_t utf8_length_from_utf32(const char32_t* buf, size_t len) { // We are not BOM aware. const uint32_t* p = reinterpret_cast(buf); size_t counter{0}; - for (size_t i = 0; i < len; i++) { - /** ASCII **/ - if (p[i] <= 0x7F) { - counter++; - } - /** two-byte **/ - else if (p[i] <= 0x7FF) { - counter += 2; - } - /** three-byte **/ - else if (p[i] <= 0xFFFF) { - counter += 3; - } - /** four-bytes **/ - else { - counter += 4; - } + for (size_t i = 0; i != len; ++i) { + ++counter; // ASCII + counter += static_cast(p[i] > 0x7F); // two-byte + counter += static_cast(p[i] > 0x7FF); // three-byte + counter += static_cast(p[i] > 0xFFFF); // four-bytes } return counter; } size_t utf32_length_from_utf8(const char* buf, size_t len) { const int8_t* p = reinterpret_cast(buf); - size_t counter{0}; - for (size_t i = 0; i < len; i++) { + return std::count_if(p, std::next(p, len), [](int8_t c) { // -65 is 0b10111111, anything larger in two-complement's // should start a new code point. - if (p[i] > -65) { - counter++; - } - } - return counter; + return c > -65; + }); } size_t utf32_to_utf8(const char32_t* buf, size_t len, char* utf8_output) { @@ -9525,14 +9510,14 @@ bool constexpr begins_with(std::u32string_view view, if (view.size() < prefix.size()) { return false; } - return view.substr(0, prefix.size()) == prefix; + return std::equal(prefix.begin(), prefix.end(), view.begin()); } bool constexpr begins_with(std::string_view view, std::string_view prefix) { if (view.size() < prefix.size()) { return false; } - return view.substr(0, prefix.size()) == prefix; + return std::equal(prefix.begin(), prefix.end(), view.begin()); } bool constexpr is_ascii(std::u32string_view view) { @@ -10144,13 +10129,12 @@ ada_really_inline constexpr bool is_lowercase_hex(const char c) noexcept { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f'); } +constexpr static char hex_to_binary_table[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 10, 11, + 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15}; unsigned constexpr convert_hex_to_binary(const char c) noexcept { - // this code can be optimized. - if (c <= '9') { - return c - '0'; - } - char del = c >= 'a' ? 'a' : 'A'; - return 10 + (c - del); + return hex_to_binary_table[c - '0']; } std::string percent_decode(const std::string_view input, size_t first_percent) { @@ -10159,8 +10143,9 @@ std::string percent_decode(const std::string_view input, size_t first_percent) { if (first_percent == std::string_view::npos) { return std::string(input); } - std::string dest(input.substr(0, first_percent)); + std::string dest; dest.reserve(input.length()); + dest.append(input.substr(0, first_percent)); const char* pointer = input.data() + first_percent; const char* end = input.data() + input.size(); // Optimization opportunity: if the following code gets @@ -10197,9 +10182,10 @@ std::string percent_encode(const std::string_view input, return std::string(input); } - std::string result(input.substr(0, std::distance(input.begin(), pointer))); + std::string result; result.reserve(input.length()); // in the worst case, percent encoding might // produce 3 characters. + result.append(input.substr(0, std::distance(input.begin(), pointer))); for (; pointer != input.end(); pointer++) { if (character_sets::bit_at(character_set, *pointer)) { @@ -15015,7 +15001,7 @@ ada_string ada_get_protocol(ada_url result) noexcept { return ada_string_create(out.data(), out.length()); } -uint8_t ada_get_url_host_type(ada_url result) noexcept { +uint8_t ada_get_host_type(ada_url result) noexcept { ada::result& r = get_instance(result); if (!r) { return 0; @@ -15092,6 +15078,13 @@ bool ada_set_pathname(ada_url result, const char* input, return r->set_pathname(std::string_view(input, length)); } +/** + * Update the search/query of the URL. + * + * If a URL has `?` as the search value, passing empty string to this function + * does not remove the attribute. If you need to remove it, please use + * `ada_clear_search` method. + */ void ada_set_search(ada_url result, const char* input, size_t length) noexcept { ada::result& r = get_instance(result); if (r) { @@ -15099,6 +15092,13 @@ void ada_set_search(ada_url result, const char* input, size_t length) noexcept { } } +/** + * Update the hash/fragment of the URL. + * + * If a URL has `#` as the hash value, passing empty string to this function + * does not remove the attribute. If you need to remove it, please use + * `ada_clear_hash` method. + */ void ada_set_hash(ada_url result, const char* input, size_t length) noexcept { ada::result& r = get_instance(result); if (r) { @@ -15106,6 +15106,39 @@ void ada_set_hash(ada_url result, const char* input, size_t length) noexcept { } } +void ada_clear_port(ada_url result) noexcept { + ada::result& r = get_instance(result); + if (r) { + r->clear_port(); + } +} + +/** + * Removes the hash of the URL. + * + * Despite `ada_set_hash` method, this function allows the complete + * removal of the hash attribute, even if it has a value of `#`. + */ +void ada_clear_hash(ada_url result) noexcept { + ada::result& r = get_instance(result); + if (r) { + r->clear_hash(); + } +} + +/** + * Removes the search of the URL. + * + * Despite `ada_set_search` method, this function allows the complete + * removal of the search attribute, even if it has a value of `?`. + */ +void ada_clear_search(ada_url result) noexcept { + ada::result& r = get_instance(result); + if (r) { + r->clear_search(); + } +} + bool ada_has_credentials(ada_url result) noexcept { ada::result& r = get_instance(result); if (!r) { diff --git a/deps/ada/ada.h b/deps/ada/ada.h index caceff37d56121..eeae41e24f8d27 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-26 17:38:28 -0400. Do not edit! */ +/* auto-generated on 2023-08-30 11:44:21 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -8,7 +8,7 @@ #define ADA_H /* begin file include/ada/ada_idna.h */ -/* auto-generated on 2023-05-07 19:12:14 -0400. Do not edit! */ +/* auto-generated on 2023-08-29 15:28:19 -0400. Do not edit! */ /* begin file include/idna.h */ #ifndef ADA_IDNA_H #define ADA_IDNA_H @@ -4584,9 +4584,10 @@ ada_really_inline constexpr bool is_single_dot_path_segment( ada_really_inline constexpr bool is_lowercase_hex(const char c) noexcept; /** - * @details Convert hex to binary. + * @details Convert hex to binary. Caller is responsible to ensure that + * the parameter is an hexadecimal digit (0-9, A-F, a-f). */ -unsigned constexpr convert_hex_to_binary(char c) noexcept; +ada_really_inline unsigned constexpr convert_hex_to_binary(char c) noexcept; /** * first_percent should be = input.find('%') @@ -4840,6 +4841,10 @@ struct url_aggregator : url_base { /** @return true if the URL has a search component */ [[nodiscard]] inline bool has_search() const noexcept override; + inline void clear_port(); + inline void clear_hash(); + inline void clear_search() override; + private: friend ada::url_aggregator ada::parser::parse_url( std::string_view, const ada::url_aggregator *); @@ -4914,12 +4919,9 @@ struct url_aggregator : url_base { inline void update_base_port(uint32_t input); inline void append_base_pathname(const std::string_view input); inline uint32_t retrieve_base_port() const; - inline void clear_port(); inline void clear_hostname(); - inline void clear_hash(); - inline void clear_pathname() override; - inline void clear_search() override; inline void clear_password(); + inline void clear_pathname() override; inline bool has_dash_dot() const noexcept; void delete_dash_dot(); inline void consume_prepared_path(std::string_view input); @@ -6448,7 +6450,9 @@ inline void url_aggregator::clear_hostname() { " with " + components.to_string() + "\n" + to_diagram()); #endif ADA_ASSERT_TRUE(has_authority()); - ADA_ASSERT_TRUE(has_empty_hostname()); + ADA_ASSERT_EQUAL(has_empty_hostname(), true, + "hostname should have been cleared on buffer=" + buffer + + " with " + components.to_string() + "\n" + to_diagram()); ADA_ASSERT_TRUE(validate()); } @@ -6922,14 +6926,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.3" +#define ADA_VERSION "2.6.5" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 3, + ADA_VERSION_REVISION = 5, }; } // namespace ada diff --git a/deps/ada/ada_c.h b/deps/ada/ada_c.h index 170686b56320f1..0d01e57c48d72d 100644 --- a/deps/ada/ada_c.h +++ b/deps/ada/ada_c.h @@ -68,7 +68,7 @@ ada_string ada_get_hostname(ada_url result); ada_string ada_get_pathname(ada_url result); ada_string ada_get_search(ada_url result); ada_string ada_get_protocol(ada_url result); -uint8_t ada_get_url_host_type(ada_url result); +uint8_t ada_get_host_type(ada_url result); // url_aggregator setters // if ada_is_valid(result)) is false, the setters have no effect @@ -84,6 +84,11 @@ bool ada_set_pathname(ada_url result, const char* input, size_t length); void ada_set_search(ada_url result, const char* input, size_t length); void ada_set_hash(ada_url result, const char* input, size_t length); +// url_aggregator clear methods +void ada_clear_port(ada_url result); +void ada_clear_hash(ada_url result); +void ada_clear_search(ada_url result); + // url_aggregator functions // if ada_is_valid(result) is false, functions below will return false bool ada_has_credentials(ada_url result); diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 0b0d262fad9ecf..23c89e07d94d84 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.3][] +* [ada 2.6.5][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.3 +### ada 2.6.5 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.3]: #ada-263 +[ada 2.6.5]: #ada-265 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 759cf5a7603b023ee2ed90300c49ed828bf6852f Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 10 Sep 2023 00:23:06 +0000 Subject: [PATCH 045/232] deps: update ada to 2.6.7 PR-URL: https://github.com/nodejs/node/pull/49340 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/ada/ada.cpp | 10 +++++++++- deps/ada/ada.h | 6 +++--- deps/ada/ada_c.h | 1 + .../maintaining/maintaining-dependencies.md | 6 +++--- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index ad7a1a74cb4db0..5eb0a3f2ad0b27 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-30 11:44:21 -0400. Do not edit! */ +/* auto-generated on 2023-09-05 16:55:45 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -15009,6 +15009,14 @@ uint8_t ada_get_host_type(ada_url result) noexcept { return r->host_type; } +uint8_t ada_get_scheme_type(ada_url result) noexcept { + ada::result& r = get_instance(result); + if (!r) { + return 0; + } + return r->type; +} + bool ada_set_href(ada_url result, const char* input, size_t length) noexcept { ada::result& r = get_instance(result); if (!r) { diff --git a/deps/ada/ada.h b/deps/ada/ada.h index eeae41e24f8d27..1485e37356bcd5 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-30 11:44:21 -0400. Do not edit! */ +/* auto-generated on 2023-09-05 16:55:45 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -6926,14 +6926,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.5" +#define ADA_VERSION "2.6.7" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 5, + ADA_VERSION_REVISION = 7, }; } // namespace ada diff --git a/deps/ada/ada_c.h b/deps/ada/ada_c.h index 0d01e57c48d72d..040915518f32a0 100644 --- a/deps/ada/ada_c.h +++ b/deps/ada/ada_c.h @@ -69,6 +69,7 @@ ada_string ada_get_pathname(ada_url result); ada_string ada_get_search(ada_url result); ada_string ada_get_protocol(ada_url result); uint8_t ada_get_host_type(ada_url result); +uint8_t ada_get_scheme_type(ada_url result); // url_aggregator setters // if ada_is_valid(result)) is false, the setters have no effect diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 23c89e07d94d84..2f50cbea429c35 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.5][] +* [ada 2.6.7][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.5 +### ada 2.6.7 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.5]: #ada-265 +[ada 2.6.7]: #ada-267 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 4c740b1dd8d8a831e2a325ac7a5757df73e85410 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 19 Sep 2023 23:52:22 +0000 Subject: [PATCH 046/232] deps: update ada to 2.6.8 PR-URL: https://github.com/nodejs/node/pull/49340 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/ada/ada.cpp | 9 ++++---- deps/ada/ada.h | 21 +++++++++++-------- .../maintaining/maintaining-dependencies.md | 6 +++--- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index 5eb0a3f2ad0b27..1a028b200bc960 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-05 16:55:45 -0400. Do not edit! */ +/* auto-generated on 2023-09-19 16:48:25 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -11864,7 +11864,7 @@ bool url::set_host_or_hostname(const std::string_view input) { } // Let host be the result of host parsing host_view with url is not special. - if (host_view.empty()) { + if (host_view.empty() && !is_special()) { host = ""; return true; } @@ -13625,13 +13625,12 @@ bool url_aggregator::set_host_or_hostname(const std::string_view input) { // empty string, and either url includes credentials or url's port is // non-null, return. else if (host_view.empty() && - (is_special() || has_credentials() || - components.port != url_components::omitted)) { + (is_special() || has_credentials() || has_port())) { return false; } // Let host be the result of host parsing host_view with url is not special. - if (host_view.empty()) { + if (host_view.empty() && !is_special()) { if (has_hostname()) { clear_hostname(); // easy! } else if (has_dash_dot()) { diff --git a/deps/ada/ada.h b/deps/ada/ada.h index 1485e37356bcd5..b3ae3d0aa7635b 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-05 16:55:45 -0400. Do not edit! */ +/* auto-generated on 2023-09-19 16:48:25 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -1055,9 +1055,10 @@ inline constexpr bool is_normalized_windows_drive_letter( return input.size() >= 2 && (is_alpha(input[0]) && (input[1] == ':')); } -ada_really_inline constexpr bool begins_with(std::string_view view, - std::string_view prefix) { +ada_really_inline bool begins_with(std::string_view view, + std::string_view prefix) { // in C++20, you have view.begins_with(prefix) + // std::equal is constexpr in C++20 return view.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), view.begin()); } @@ -5020,10 +5021,10 @@ inline constexpr bool is_normalized_windows_drive_letter( std::string_view input) noexcept; /** - * @warning Will be removed when Ada supports C++20. + * @warning Will be removed when Ada requires C++20. */ -ada_really_inline constexpr bool begins_with(std::string_view view, - std::string_view prefix); +ada_really_inline bool begins_with(std::string_view view, + std::string_view prefix); /** * Returns true if an input is an ipv4 address. @@ -6557,7 +6558,9 @@ inline bool url_aggregator::has_hostname() const noexcept { inline bool url_aggregator::has_port() const noexcept { ada_log("url_aggregator::has_port"); - return components.pathname_start != components.host_end; + // A URL cannot have a username/password/port if its host is null or the empty + // string, or its scheme is "file". + return has_hostname() && components.pathname_start != components.host_end; } inline bool url_aggregator::has_dash_dot() const noexcept { @@ -6926,14 +6929,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.7" +#define ADA_VERSION "2.6.8" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 7, + ADA_VERSION_REVISION = 8, }; } // namespace ada diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 2f50cbea429c35..b6c9d732da3a29 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.7][] +* [ada 2.6.8][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.7 +### ada 2.6.8 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.7]: #ada-267 +[ada 2.6.8]: #ada-268 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 03654b44b69d34deb5aba90848aa9b58063102ca Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Fri, 29 Sep 2023 18:40:10 +0000 Subject: [PATCH 047/232] deps: update ada to 2.6.9 PR-URL: https://github.com/nodejs/node/pull/49340 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Trivikram Kamat --- deps/ada/ada.cpp | 11 ++++++----- deps/ada/ada.h | 13 ++++++------- .../maintaining/maintaining-dependencies.md | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index 1a028b200bc960..0cd21f21090bc6 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-19 16:48:25 -0400. Do not edit! */ +/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -116,7 +116,7 @@ ada_really_inline constexpr bool verify_dns_length( ADA_PUSH_DISABLE_ALL_WARNINGS /* begin file src/ada_idna.cpp */ -/* auto-generated on 2023-08-29 15:28:19 -0400. Do not edit! */ +/* auto-generated on 2023-09-19 15:58:51 -0400. Do not edit! */ /* begin file src/idna.cpp */ /* begin file src/unicode_transcoding.cpp */ @@ -9505,18 +9505,19 @@ bool is_label_valid(const std::u32string_view label) { namespace ada::idna { -bool constexpr begins_with(std::u32string_view view, - std::u32string_view prefix) { +bool begins_with(std::u32string_view view, std::u32string_view prefix) { if (view.size() < prefix.size()) { return false; } + // constexpr as of C++20 return std::equal(prefix.begin(), prefix.end(), view.begin()); } -bool constexpr begins_with(std::string_view view, std::string_view prefix) { +bool begins_with(std::string_view view, std::string_view prefix) { if (view.size() < prefix.size()) { return false; } + // constexpr as of C++20 return std::equal(prefix.begin(), prefix.end(), view.begin()); } diff --git a/deps/ada/ada.h b/deps/ada/ada.h index b3ae3d0aa7635b..da75a5d985b6cd 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-19 16:48:25 -0400. Do not edit! */ +/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -8,7 +8,7 @@ #define ADA_H /* begin file include/ada/ada_idna.h */ -/* auto-generated on 2023-08-29 15:28:19 -0400. Do not edit! */ +/* auto-generated on 2023-09-19 15:58:51 -0400. Do not edit! */ /* begin file include/idna.h */ #ifndef ADA_IDNA_H #define ADA_IDNA_H @@ -129,9 +129,8 @@ std::string to_ascii(std::string_view ut8_string); // https://url.spec.whatwg.org/#forbidden-domain-code-point bool contains_forbidden_domain_code_point(std::string_view ascii_string); -bool constexpr begins_with(std::u32string_view view, - std::u32string_view prefix); -bool constexpr begins_with(std::string_view view, std::string_view prefix); +bool begins_with(std::u32string_view view, std::u32string_view prefix); +bool begins_with(std::string_view view, std::string_view prefix); bool constexpr is_ascii(std::u32string_view view); bool constexpr is_ascii(std::string_view view); @@ -6929,14 +6928,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.8" +#define ADA_VERSION "2.6.9" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 8, + ADA_VERSION_REVISION = 9, }; } // namespace ada diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index b6c9d732da3a29..92c6cb06fb1f6e 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.8][] +* [ada 2.6.9][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.8 +### ada 2.6.9 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.8]: #ada-268 +[ada 2.6.9]: #ada-269 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 179e2931037f48dcd8f4c90b81576a2f0afc9be8 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Sat, 30 Sep 2023 17:43:14 +0200 Subject: [PATCH 048/232] Revert "test: mark test-runner-output as flaky" This reverts commit 717e233cd95602f79256c5b70c49703fa699174b. Refs: https://github.com/nodejs/node/commit/fef7927cc3a7 PR-URL: https://github.com/nodejs/node/pull/49905 Reviewed-By: Colin Ihrig Reviewed-By: Moshe Atlow Reviewed-By: Michael Dawson --- test/parallel/parallel.status | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index fe8ddee7cbf05e..6f4b9de73778b2 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -5,8 +5,6 @@ prefix parallel # sample-test : PASS,FLAKY [true] # This section applies to all platforms -# https://github.com/nodejs/node/issues/49853 -test-runner-output: PASS,FLAKY [$system==win32] # https://github.com/nodejs/node/issues/41206 From 01b01527d7a7d5eb963af3b1423442c04efca5d1 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Sat, 30 Sep 2023 19:10:14 +0100 Subject: [PATCH 049/232] test: update skip for moved `test-wasm-web-api` `test-wasm-web-api` was moved from `test/parallel` to `test/es-modules`. Update the status files for parallel and es-modules accordingly. Refs: https://github.com/nodejs/node/pull/49869 Refs: https://github.com/nodejs/node/pull/47299 Refs: https://github.com/nodejs/node/issues/47297 PR-URL: https://github.com/nodejs/node/pull/49958 Reviewed-By: Joyee Cheung Reviewed-By: Luigi Pinca Reviewed-By: Geoffrey Booth Reviewed-By: Moshe Atlow --- test/es-module/es-module.status | 4 ++++ test/parallel/parallel.status | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/es-module/es-module.status b/test/es-module/es-module.status index d986e94222a3e7..58a422dc152258 100644 --- a/test/es-module/es-module.status +++ b/test/es-module/es-module.status @@ -9,3 +9,7 @@ prefix es-module [$system==linux || $system==freebsd] # https://github.com/nodejs/node/issues/47836 test-esm-loader-http-imports: PASS,FLAKY + +[$arch==arm || $arch==arm64] +# https://github.com/nodejs/node/issues/47297 +test-wasm-web-api: SKIP diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 6f4b9de73778b2..e59e3f7ff24832 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -36,8 +36,6 @@ test-http-server-request-timeouts-mixed: PASS,FLAKY # https://github.com/nodejs/node/pull/31178 test-crypto-dh-stateless: SKIP test-crypto-keygen: SKIP -# https://github.com/nodejs/node/issues/47297 -test-wasm-web-api: SKIP [$system==solaris] # Also applies to SmartOS # https://github.com/nodejs/node/issues/43457 From b80e9497f3e8a4100baa0da0cf5486b76f72bf36 Mon Sep 17 00:00:00 2001 From: Khafra Date: Sat, 30 Sep 2023 14:48:36 -0400 Subject: [PATCH 050/232] lib: make fetch sync and return a Promise update test PR-URL: https://github.com/nodejs/node/pull/49936 Reviewed-By: Antoine du Hamel Reviewed-By: Benjamin Gruenbaum Reviewed-By: Luigi Pinca Reviewed-By: Chemi Atlow Reviewed-By: LiviaMedeiros Reviewed-By: Yagiz Nizipli Reviewed-By: Minwoo Jung --- lib/internal/process/pre_execution.js | 3 ++- test/parallel/test-fetch.mjs | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js index f120f371d9b634..2be86f907bd47c 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js @@ -292,7 +292,8 @@ function setupUndici() { } if (!getOptionValue('--no-experimental-fetch')) { - async function fetch(input, init = undefined) { + // Fetch is meant to return a Promise, but not be async. + function fetch(input, init = undefined) { return lazyUndici().fetch(input, init); } diff --git a/test/parallel/test-fetch.mjs b/test/parallel/test-fetch.mjs index e24a38eb27db37..bbdb7130ed2324 100644 --- a/test/parallel/test-fetch.mjs +++ b/test/parallel/test-fetch.mjs @@ -10,6 +10,14 @@ assert.strictEqual(typeof globalThis.Headers, 'function'); assert.strictEqual(typeof globalThis.Request, 'function'); assert.strictEqual(typeof globalThis.Response, 'function'); +{ + const asyncFunction = async function() {}.constructor; + + assert.ok(!(fetch instanceof asyncFunction)); + assert.notStrictEqual(Reflect.getPrototypeOf(fetch), Reflect.getPrototypeOf(async function() {})); + assert.strictEqual(Reflect.getPrototypeOf(fetch), Reflect.getPrototypeOf(function() {})); +} + const server = http.createServer(common.mustCall((req, res) => { res.end('Hello world'); })); From 5131fde655ae24b873829482d0145d841cd2c50c Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Sat, 30 Sep 2023 17:43:30 -0400 Subject: [PATCH 051/232] src: use exact return value for `uv_os_getenv` PR-URL: https://github.com/nodejs/node/pull/49149 Reviewed-By: Luigi Pinca Reviewed-By: Stephen Belanger --- src/node_credentials.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node_credentials.cc b/src/node_credentials.cc index c1f7a4f2acbdf6..8a832b0e3efb3a 100644 --- a/src/node_credentials.cc +++ b/src/node_credentials.cc @@ -116,7 +116,7 @@ bool SafeGetenv(const char* key, ret = uv_os_getenv(key, *val, &init_sz); } - if (ret >= 0) { // Env key value fetch success. + if (ret == 0) { // Env key value fetch success. *text = *val; return true; } From c255575699d293ec8f9d4d7f86d3e9120dbca03b Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Sat, 30 Sep 2023 23:43:40 +0200 Subject: [PATCH 052/232] errors: improve performance of determine-specific-type PR-URL: https://github.com/nodejs/node/pull/49696 Reviewed-By: Yagiz Nizipli Reviewed-By: Moshe Atlow --- benchmark/error/determine-specific-type.js | 58 ++++++++++++++++++ lib/internal/errors.js | 61 ++++++++++++++----- test/common/index.js | 2 +- .../test-error-value-type-detection.mjs | 61 +++++++++++++++++++ test/parallel/test-fs-readfile-error.js | 2 +- 5 files changed, 167 insertions(+), 17 deletions(-) create mode 100644 benchmark/error/determine-specific-type.js diff --git a/benchmark/error/determine-specific-type.js b/benchmark/error/determine-specific-type.js new file mode 100644 index 00000000000000..12acab267b725e --- /dev/null +++ b/benchmark/error/determine-specific-type.js @@ -0,0 +1,58 @@ +'use strict'; + +const common = require('../common'); + +const bench = common.createBenchmark(main, { + n: [1e6], + v: [ + '() => 1n', + '() => true', + '() => false', + '() => 2', + '() => +0', + '() => -0', + '() => NaN', + '() => Infinity', + '() => ""', + '() => "\'"', + '() => Symbol("foo")', + '() => function foo() {}', + '() => null', + '() => undefined', + '() => new Array()', + '() => new BigInt64Array()', + '() => new BigUint64Array()', + '() => new Int8Array()', + '() => new Int16Array()', + '() => new Int32Array()', + '() => new Float32Array()', + '() => new Float64Array()', + '() => new Uint8Array()', + '() => new Uint8ClampedArray()', + '() => new Uint16Array()', + '() => new Uint32Array()', + '() => new Date()', + '() => new Map()', + '() => new WeakMap()', + '() => new Object()', + '() => Promise.resolve("foo")', + '() => new Set()', + '() => new WeakSet()', + '() => ({ __proto__: null })', + ], +}, { + flags: ['--expose-internals'], +}); + +function main({ n, v }) { + const { + determineSpecificType, + } = require('internal/errors'); + + const value = eval(v)(); + + bench.start(); + for (let i = 0; i < n; ++i) + determineSpecificType(value); + bench.end(n); +} diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 4928ac97d51537..d577f8efbd63ff 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -48,6 +48,7 @@ const { String, StringPrototypeEndsWith, StringPrototypeIncludes, + StringPrototypeIndexOf, StringPrototypeSlice, StringPrototypeSplit, StringPrototypeStartsWith, @@ -939,23 +940,53 @@ const genericNodeError = hideStackFrames(function genericNodeError(message, erro * @returns {string} */ function determineSpecificType(value) { - if (value == null) { - return '' + value; + if (value === null) { + return 'null'; + } else if (value === undefined) { + return 'undefined'; } - if (typeof value === 'function' && value.name) { - return `function ${value.name}`; - } - if (typeof value === 'object') { - if (value.constructor?.name) { - return `an instance of ${value.constructor.name}`; - } - return `${lazyInternalUtilInspect().inspect(value, { depth: -1 })}`; - } - let inspected = lazyInternalUtilInspect() - .inspect(value, { colors: false }); - if (inspected.length > 28) { inspected = `${StringPrototypeSlice(inspected, 0, 25)}...`; } - return `type ${typeof value} (${inspected})`; + const type = typeof value; + + switch (type) { + case 'bigint': + return `type bigint (${value}n)`; + case 'number': + if (value === 0) { + return 1 / value === -Infinity ? 'type number (-0)' : 'type number (0)'; + } else if (value !== value) { // eslint-disable-line no-self-compare + return 'type number (NaN)'; + } else if (value === Infinity) { + return 'type number (Infinity)'; + } else if (value === -Infinity) { + return 'type number (-Infinity)'; + } + return `type number (${value})`; + case 'boolean': + return value ? 'type boolean (true)' : 'type boolean (false)'; + case 'symbol': + return `type symbol (${String(value)})`; + case 'function': + return `function ${value.name}`; + case 'object': + if (value.constructor && 'name' in value.constructor) { + return `an instance of ${value.constructor.name}`; + } + return `${lazyInternalUtilInspect().inspect(value, { depth: -1 })}`; + case 'string': + value.length > 28 && (value = `${StringPrototypeSlice(value, 0, 25)}...`); + if (StringPrototypeIndexOf(value, "'") === -1) { + return `type string ('${value}')`; + } + return `type string (${JSONStringify(value)})`; + default: + value = lazyInternalUtilInspect().inspect(value, { colors: false }); + if (value.length > 28) { + value = `${StringPrototypeSlice(value, 0, 25)}...`; + } + + return `type ${type} (${value})`; + } } /** diff --git a/test/common/index.js b/test/common/index.js index 827f7332495fbe..52ac054c8c3f9a 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -808,7 +808,7 @@ function invalidArgTypeHelper(input) { if (input == null) { return ` Received ${input}`; } - if (typeof input === 'function' && input.name) { + if (typeof input === 'function') { return ` Received function ${input.name}`; } if (typeof input === 'object') { diff --git a/test/parallel/test-error-value-type-detection.mjs b/test/parallel/test-error-value-type-detection.mjs index b0e418ab5129ab..c317197054c1f0 100644 --- a/test/parallel/test-error-value-type-detection.mjs +++ b/test/parallel/test-error-value-type-detection.mjs @@ -12,6 +12,10 @@ strictEqual( 'type bigint (1n)', ); +strictEqual( + determineSpecificType(true), + 'type boolean (true)', +); strictEqual( determineSpecificType(false), 'type boolean (false)', @@ -42,6 +46,27 @@ strictEqual( "type string ('')", ); +strictEqual( + determineSpecificType(''), + "type string ('')", +); +strictEqual( + determineSpecificType("''"), + "type string (\"''\")", +); +strictEqual( + determineSpecificType('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor'), + "type string ('Lorem ipsum dolor sit ame...')", +); +strictEqual( + determineSpecificType("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor'"), + "type string ('Lorem ipsum dolor sit ame...')", +); +strictEqual( + determineSpecificType("Lorem' ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor"), + "type string (\"Lorem' ipsum dolor sit am...\")", +); + strictEqual( determineSpecificType(Symbol('foo')), 'type symbol (Symbol(foo))', @@ -52,6 +77,38 @@ strictEqual( 'function foo', ); +const implicitlyNamed = function() {}; // eslint-disable-line func-style +strictEqual( + determineSpecificType(implicitlyNamed), + 'function implicitlyNamed', +); +strictEqual( + determineSpecificType(() => {}), + 'function ', +); +function noName() {} +delete noName.name; +strictEqual( + noName.name, + '', +); +strictEqual( + determineSpecificType(noName), + 'function ', +); + +function * generatorFn() {} +strictEqual( + determineSpecificType(generatorFn), + 'function generatorFn', +); + +async function asyncFn() {} +strictEqual( + determineSpecificType(asyncFn), + 'function asyncFn', +); + strictEqual( determineSpecificType(null), 'null', @@ -134,6 +191,10 @@ strictEqual( determineSpecificType({}), 'an instance of Object', ); +strictEqual( + determineSpecificType(new Object()), + 'an instance of Object', +); strictEqual( determineSpecificType(Promise.resolve('foo')), diff --git a/test/parallel/test-fs-readfile-error.js b/test/parallel/test-fs-readfile-error.js index 8c5a3a71c6f530..da4638d22d59f1 100644 --- a/test/parallel/test-fs-readfile-error.js +++ b/test/parallel/test-fs-readfile-error.js @@ -61,7 +61,7 @@ assert.throws( { code: 'ERR_INVALID_ARG_TYPE', message: 'The "path" argument must be of type string or an instance of ' + - 'Buffer or URL. Received type function ([Function (anonymous)])', + 'Buffer or URL. Received function ', name: 'TypeError' } ); From 42e49ec38194477cb6e7830b3c5d68ad5e4879ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinicius=20Louren=C3=A7o?= <12551007+H4ad@users.noreply.github.com> Date: Sat, 30 Sep 2023 18:44:02 -0300 Subject: [PATCH 053/232] perf_hooks: reduce overhead of new resource timings PR-URL: https://github.com/nodejs/node/pull/49837 Reviewed-By: Stephen Belanger Reviewed-By: Yagiz Nizipli --- benchmark/perf_hooks/resourcetiming.js | 2 +- lib/internal/perf/performance_entry.js | 20 ++++++++------ lib/internal/perf/resource_timing.js | 38 ++++++++++++++------------ 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/benchmark/perf_hooks/resourcetiming.js b/benchmark/perf_hooks/resourcetiming.js index ddc40767b16196..51c4778d20065f 100644 --- a/benchmark/perf_hooks/resourcetiming.js +++ b/benchmark/perf_hooks/resourcetiming.js @@ -72,6 +72,6 @@ function main({ n, observe }) { obs.observe({ entryTypes: [observe], buffered: true }); bench.start(); - for (let i = 0; i < 1e5; i++) + for (let i = 0; i < n; i++) test(); } diff --git a/lib/internal/perf/performance_entry.js b/lib/internal/perf/performance_entry.js index aa97a652626606..f6a7520e267c5b 100644 --- a/lib/internal/perf/performance_entry.js +++ b/lib/internal/perf/performance_entry.js @@ -31,10 +31,18 @@ function isPerformanceEntry(obj) { } class PerformanceEntry { - constructor(skipThrowSymbol = undefined) { + constructor( + skipThrowSymbol = undefined, + name = undefined, + type = undefined, + start = undefined, + duration = undefined, + ) { if (skipThrowSymbol !== kSkipThrow) { throw new ERR_ILLEGAL_CONSTRUCTOR(); } + + initPerformanceEntry(this, name, type, start, duration); } get name() { @@ -94,11 +102,7 @@ function initPerformanceEntry(entry, name, type, start, duration) { } function createPerformanceEntry(name, type, start, duration) { - const entry = new PerformanceEntry(kSkipThrow); - - initPerformanceEntry(entry, name, type, start, duration); - - return entry; + return new PerformanceEntry(kSkipThrow, name, type, start, duration); } /** @@ -123,9 +127,8 @@ class PerformanceNodeEntry extends PerformanceEntry { } function createPerformanceNodeEntry(name, type, start, duration, detail) { - const entry = new PerformanceNodeEntry(kSkipThrow); + const entry = new PerformanceNodeEntry(kSkipThrow, name, type, start, duration); - initPerformanceEntry(entry, name, type, start, duration); entry[kDetail] = detail; return entry; @@ -138,4 +141,5 @@ module.exports = { isPerformanceEntry, PerformanceNodeEntry, createPerformanceNodeEntry, + kSkipThrow, }; diff --git a/lib/internal/perf/resource_timing.js b/lib/internal/perf/resource_timing.js index 13f25d0af79cf7..e7c2f1fa448864 100644 --- a/lib/internal/perf/resource_timing.js +++ b/lib/internal/perf/resource_timing.js @@ -3,19 +3,17 @@ const { ObjectDefineProperties, - ObjectSetPrototypeOf, - ReflectConstruct, Symbol, SymbolToStringTag, } = primordials; -const { initPerformanceEntry, PerformanceEntry } = require('internal/perf/performance_entry'); -const assert = require('internal/assert'); -const { enqueue, bufferResourceTiming } = require('internal/perf/observe'); const { codes: { ERR_ILLEGAL_CONSTRUCTOR, }, } = require('internal/errors'); +const { PerformanceEntry, kSkipThrow } = require('internal/perf/performance_entry'); +const assert = require('internal/assert'); +const { enqueue, bufferResourceTiming } = require('internal/perf/observe'); const { validateInternalField } = require('internal/validators'); const { kEnumerableProperty } = require('internal/util'); @@ -25,8 +23,12 @@ const kTimingInfo = Symbol('kTimingInfo'); const kInitiatorType = Symbol('kInitiatorType'); class PerformanceResourceTiming extends PerformanceEntry { - constructor() { - throw new ERR_ILLEGAL_CONSTRUCTOR(); + constructor(skipThrowSymbol = undefined, name = undefined, type = undefined) { + if (skipThrowSymbol !== kSkipThrow) { + throw new ERR_ILLEGAL_CONSTRUCTOR(); + } + + super(skipThrowSymbol, name, type); } get name() { @@ -189,16 +191,17 @@ ObjectDefineProperties(PerformanceResourceTiming.prototype, { }); function createPerformanceResourceTiming(requestedUrl, initiatorType, timingInfo, cacheMode = '') { - return ReflectConstruct(function PerformanceResourceTiming() { - initPerformanceEntry(this, requestedUrl, 'resource'); - this[kInitiatorType] = initiatorType; - this[kRequestedUrl] = requestedUrl; - // https://fetch.spec.whatwg.org/#fetch-timing-info - // This class is using timingInfo assuming it's already validated. - // The spec doesn't say to validate it in the class construction. - this[kTimingInfo] = timingInfo; - this[kCacheMode] = cacheMode; - }, [], PerformanceResourceTiming); + const resourceTiming = new PerformanceResourceTiming(kSkipThrow, requestedUrl, 'resource'); + + resourceTiming[kInitiatorType] = initiatorType; + resourceTiming[kRequestedUrl] = requestedUrl; + // https://fetch.spec.whatwg.org/#fetch-timing-info + // This class is using timingInfo assuming it's already validated. + // The spec doesn't say to validate it in the class construction. + resourceTiming[kTimingInfo] = timingInfo; + resourceTiming[kCacheMode] = cacheMode; + + return resourceTiming; } // https://w3c.github.io/resource-timing/#dfn-mark-resource-timing @@ -221,7 +224,6 @@ function markResourceTiming( cacheMode, ); - ObjectSetPrototypeOf(resource, PerformanceResourceTiming.prototype); enqueue(resource); bufferResourceTiming(resource); return resource; From 112cc7f9f28ee8a1bd54d67fe2224408409a3571 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sun, 1 Oct 2023 08:26:56 +0100 Subject: [PATCH 054/232] esm: improve JSDoc annotation of internal functions Co-authored-by: Geoffrey Booth PR-URL: https://github.com/nodejs/node/pull/49959 Reviewed-By: Geoffrey Booth Reviewed-By: Chemi Atlow --- lib/internal/modules/run_main.js | 11 ++++++----- lib/internal/process/pre_execution.js | 10 ++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index e5969bf7b75ea6..0b58d348203bfe 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -9,7 +9,7 @@ const path = require('path'); /** * Get the absolute path to the main entry point. - * @param {string} main Entry point path + * @param {string} main - Entry point path */ function resolveMainPath(main) { // Note extension resolution for the main entry point can be deprecated in a @@ -30,7 +30,7 @@ function resolveMainPath(main) { /** * Determine whether the main entry point should be loaded through the ESM Loader. - * @param {string} mainPath Absolute path to the main entry point + * @param {string} mainPath - Absolute path to the main entry point */ function shouldUseESMLoader(mainPath) { /** @@ -57,7 +57,7 @@ function shouldUseESMLoader(mainPath) { /** * Run the main entry point through the ESM Loader. - * @param {string} mainPath Absolute path to the main entry point + * @param {string} mainPath - Absolute path for the main entry point */ function runMainESM(mainPath) { const { loadESM } = require('internal/process/esm_loader'); @@ -72,7 +72,7 @@ function runMainESM(mainPath) { /** * Handle process exit events around the main entry point promise. - * @param {Promise} promise Main entry point promise + * @param {Promise} promise - Main entry point promise */ async function handleMainPromise(promise) { const { @@ -90,7 +90,8 @@ async function handleMainPromise(promise) { * Parse the CLI main entry point string and run it. * For backwards compatibility, we have to run a bunch of monkey-patchable code that belongs to the CJS loader (exposed * by `require('module')`) even when the entry point is ESM. - * @param {string} main CLI main entry point string + * Because of backwards compatibility, this function is exposed publicly via `import { runMain } from 'node:module'`. + * @param {string} main - Resolved absolute path for the main entry point, if found */ function executeUserEntryPoint(main = process.argv[1]) { const resolvedMain = resolveMainPath(main); diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js index 2be86f907bd47c..d066d12a553d6f 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js @@ -176,12 +176,20 @@ function refreshRuntimeOptions() { refreshOptions(); } +/** + * Patch the process object with legacy properties and normalizations. + * Replace `process.argv[0]` with `process.execPath`, preserving the original `argv[0]` value as `process.argv0`. + * Replace `process.argv[1]` with the resolved absolute file path of the entry point, if found. + * @param {boolean} expandArgv1 - Whether to replace `process.argv[1]` with the resolved absolute file path of + * the main entry point. + */ function patchProcessObject(expandArgv1) { const binding = internalBinding('process_methods'); binding.patchProcessObject(process); require('internal/process/per_thread').refreshHrtimeBuffer(); + // Since we replace process.argv[0] below, preserve the original value in case the user needs it. ObjectDefineProperty(process, 'argv0', { __proto__: null, enumerable: true, @@ -194,6 +202,8 @@ function patchProcessObject(expandArgv1) { process._exiting = false; process.argv[0] = process.execPath; + // If requested, update process.argv[1] to replace whatever the user provided with the resolved absolute file path of + // the entry point. if (expandArgv1 && process.argv[1] && !StringPrototypeStartsWith(process.argv[1], '-')) { // Expand process.argv[1] into a full path. From f63a92bb6cd8ae264d5fcb4fe184cceab68945f5 Mon Sep 17 00:00:00 2001 From: Claudio W Date: Sun, 1 Oct 2023 16:22:58 +0200 Subject: [PATCH 055/232] doc: updated building docs for windows PR-URL: https://github.com/nodejs/node/pull/49767 Reviewed-By: Jacob Smith Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau Reviewed-By: Rafael Gonzaga Reviewed-By: Moshe Atlow --- BUILDING.md | 31 +++++++++++++++++++----------- tools/bootstrap/windows_boxstarter | 8 ++++---- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index e608aa318f87df..d1f00c3cfd42f2 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -576,9 +576,9 @@ to run it again before invoking `make -j4`. * [Python 3.11](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K) * The "Desktop development with C++" workload from - [Visual Studio 2019](https://visualstudio.microsoft.com/vs/older-downloads/#visual-studio-2019-and-other-products) or + [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) or the "C++ build tools" workload from the - [Build Tools](https://aka.ms/vs/16/release/vs_buildtools.exe), + [Build Tools](https://aka.ms/vs/17/release/vs_buildtools.exe), with the default optional components * Basic Unix tools required for some tests, [Git for Windows](https://git-scm.com/download/win) includes Git Bash @@ -590,11 +590,12 @@ to run it again before invoking `make -j4`. Optional requirements to build the MSI installer package: -* The .NET SDK component from [Visual Studio 2019](https://visualstudio.microsoft.com/vs/older-downloads/#visual-studio-2019-and-other-products) +* The .NET SDK component from [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) + * This component can be installed via the Visual Studio Installer Application Optional requirements for compiling for Windows 10 on ARM (ARM64): -* Visual Studio 15.9.0 or newer +* Visual Studio 17.6.0 or newer * Visual Studio optional components * Visual C++ compilers and libraries for ARM64 * Visual C++ ATL for ARM64 @@ -610,8 +611,8 @@ packages: * [Git for Windows](https://chocolatey.org/packages/git) with the `git` and Unix tools added to the `PATH` * [Python 3.x](https://chocolatey.org/packages/python) -* [Visual Studio 2019 Build Tools](https://chocolatey.org/packages/visualstudio2019buildtools) - with [Visual C++ workload](https://chocolatey.org/packages/visualstudio2019-workload-vctools) +* [Visual Studio 2022 Build Tools](https://chocolatey.org/packages/visualstudio2022buildtools) + with [Visual C++ workload](https://chocolatey.org/packages/visualstudio2022-workload-vctools) * [NetWide Assembler](https://chocolatey.org/packages/nasm) To install Node.js prerequisites using @@ -619,8 +620,8 @@ To install Node.js prerequisites using with Internet Explorer or Edge browser on the target machine. -Alternatively, you can use PowerShell. Run those commands from an elevated -PowerShell terminal: +Alternatively, you can use PowerShell. Run those commands from +an elevated (Administrator) PowerShell terminal: ```powershell Set-ExecutionPolicy Unrestricted -Force @@ -635,8 +636,16 @@ disk space. #### Building Node.js -If the path to your build directory contains a space or a non-ASCII character, -the build will likely fail. +* Remember to first clone the Node.js repository with the Git command + and head to the directory that Git created; If you haven't already + ```powershell + git clone https://github.com/nodejs/node.git + cd node + ``` +* If the path to your build directory contains a space or a non-ASCII character, + the build will likely fail + +To start the build process: ```powershell .\vcbuild @@ -697,7 +706,7 @@ This is the default option. ### Trimmed: `small-icu` (English only) support In this configuration, only English data is included, but -the full `Intl` (ECMA-402) APIs. It does not need to download +the full `Intl` (ECMA-402) APIs. It does not need to download any dependencies to function. You can add full data at runtime. #### Unix/macOS diff --git a/tools/bootstrap/windows_boxstarter b/tools/bootstrap/windows_boxstarter index eb0b2d72e98381..00ac4a0b711004 100644 --- a/tools/bootstrap/windows_boxstarter +++ b/tools/bootstrap/windows_boxstarter @@ -14,11 +14,11 @@ # Git and Unix tools will be added to the PATH choco install git -params /GitAndUnixToolsOnPath -y -choco install python python2 -y +choco install python3 -y -# Installs VS 2019 Build Tools -choco install visualstudio2019buildtools -y -choco install visualstudio2019-workload-vctools -y --params="--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.ATL.ARM64" +# Installs VS 2022 Build Tools +choco install visualstudio2022buildtools -y +choco install visualstudio2022-workload-vctools -y --params="--add Microsoft.VisualStudio.Component.VC.Tools.ARM64 --add Microsoft.VisualStudio.Component.VC.ATL.ARM64" # NASM choco install nasm -y From 1e762ddf63be4571e18286c388324dcc2c0c504a Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Sun, 1 Oct 2023 14:32:07 -0400 Subject: [PATCH 056/232] esm: improve `getFormatOfExtensionlessFile` speed PR-URL: https://github.com/nodejs/node/pull/49965 Reviewed-By: Geoffrey Booth Reviewed-By: Stephen Belanger Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum --- lib/internal/modules/esm/formats.js | 29 ++++++--------- src/node_constants.cc | 4 +++ src/node_constants.h | 3 ++ src/node_file.cc | 50 ++++++++++++++++++++++++++ typings/internalBinding/constants.d.ts | 2 ++ typings/internalBinding/fs.d.ts | 6 ++++ 6 files changed, 76 insertions(+), 18 deletions(-) diff --git a/lib/internal/modules/esm/formats.js b/lib/internal/modules/esm/formats.js index b4e8d7a69d306b..2d69a3e93c3a75 100644 --- a/lib/internal/modules/esm/formats.js +++ b/lib/internal/modules/esm/formats.js @@ -1,12 +1,11 @@ 'use strict'; -const { - RegExpPrototypeExec, - Uint8Array, -} = primordials; +const { RegExpPrototypeExec } = primordials; const { getOptionValue } = require('internal/options'); - -const { closeSync, openSync, readSync } = require('fs'); +const { getValidatedPath } = require('internal/fs/utils'); +const pathModule = require('path'); +const fsBindings = internalBinding('fs'); +const { fs: fsConstants } = internalBinding('constants'); const experimentalWasmModules = getOptionValue('--experimental-wasm-modules'); @@ -47,20 +46,14 @@ function mimeToFormat(mime) { function getFormatOfExtensionlessFile(url) { if (!experimentalWasmModules) { return 'module'; } - const magic = new Uint8Array(4); - let fd; - try { - // TODO(@anonrig): Optimize the following by having a single C++ call - fd = openSync(url); - readSync(fd, magic, 0, 4); // Only read the first four bytes - if (magic[0] === 0x00 && magic[1] === 0x61 && magic[2] === 0x73 && magic[3] === 0x6d) { + const path = pathModule.toNamespacedPath(getValidatedPath(url)); + + switch (fsBindings.getFormatOfExtensionlessFile(path)) { + case fsConstants.EXTENSIONLESS_FORMAT_WASM: return 'wasm'; - } - } finally { - if (fd !== undefined) { closeSync(fd); } + default: + return 'module'; } - - return 'module'; } module.exports = { diff --git a/src/node_constants.cc b/src/node_constants.cc index 05582b28dafd9f..149c7c10732291 100644 --- a/src/node_constants.cc +++ b/src/node_constants.cc @@ -1058,6 +1058,10 @@ void DefineSystemConstants(Local target) { NODE_DEFINE_CONSTANT(target, UV_DIRENT_CHAR); NODE_DEFINE_CONSTANT(target, UV_DIRENT_BLOCK); + // Define module specific constants + NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_JAVASCRIPT); + NODE_DEFINE_CONSTANT(target, EXTENSIONLESS_FORMAT_WASM); + NODE_DEFINE_CONSTANT(target, S_IFMT); NODE_DEFINE_CONSTANT(target, S_IFREG); NODE_DEFINE_CONSTANT(target, S_IFDIR); diff --git a/src/node_constants.h b/src/node_constants.h index 08f94bd623aa60..97429c0e5e9462 100644 --- a/src/node_constants.h +++ b/src/node_constants.h @@ -27,6 +27,9 @@ #include "node.h" #include "v8.h" +#define EXTENSIONLESS_FORMAT_JAVASCRIPT (0) +#define EXTENSIONLESS_FORMAT_WASM (1) + #if HAVE_OPENSSL #ifndef RSA_PSS_SALTLEN_DIGEST diff --git a/src/node_file.cc b/src/node_file.cc index b31dcc168486d8..4f50cd9954df5f 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -2832,6 +2832,51 @@ static void Mkdtemp(const FunctionCallbackInfo& args) { } } +static void GetFormatOfExtensionlessFile( + const FunctionCallbackInfo& args) { + CHECK_EQ(args.Length(), 1); + CHECK(args[0]->IsString()); + + Environment* env = Environment::GetCurrent(args); + node::Utf8Value input(args.GetIsolate(), args[0]); + + THROW_IF_INSUFFICIENT_PERMISSIONS( + env, permission::PermissionScope::kFileSystemRead, input.ToStringView()); + + uv_fs_t req; + FS_SYNC_TRACE_BEGIN(open) + uv_file file = uv_fs_open(nullptr, &req, input.out(), O_RDONLY, 0, nullptr); + FS_SYNC_TRACE_END(open); + + if (req.result < 0) { + return args.GetReturnValue().Set(EXTENSIONLESS_FORMAT_JAVASCRIPT); + } + + auto cleanup = OnScopeLeave([&req, &file]() { + FS_SYNC_TRACE_BEGIN(close); + CHECK_EQ(0, uv_fs_close(nullptr, &req, file, nullptr)); + FS_SYNC_TRACE_END(close); + uv_fs_req_cleanup(&req); + }); + + char buffer[4]; + uv_buf_t buf = uv_buf_init(buffer, sizeof(buffer)); + int err = uv_fs_read(nullptr, &req, file, &buf, 1, 0, nullptr); + + if (err < 0) { + return args.GetReturnValue().Set(EXTENSIONLESS_FORMAT_JAVASCRIPT); + } + + // We do this by taking advantage of the fact that all Wasm files start with + // the header `0x00 0x61 0x73 0x6d` + if (buffer[0] == 0x00 && buffer[1] == 0x61 && buffer[2] == 0x73 && + buffer[3] == 0x6d) { + return args.GetReturnValue().Set(EXTENSIONLESS_FORMAT_WASM); + } + + return args.GetReturnValue().Set(EXTENSIONLESS_FORMAT_JAVASCRIPT); +} + static bool FileURLToPath( Environment* env, const ada::url_aggregator& file_url, @@ -3244,6 +3289,10 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data, Local target) { Isolate* isolate = isolate_data->isolate(); + SetMethod(isolate, + target, + "getFormatOfExtensionlessFile", + GetFormatOfExtensionlessFile); SetMethod(isolate, target, "access", Access); SetMethod(isolate, target, "close", Close); SetMethod(isolate, target, "existsSync", ExistsSync); @@ -3364,6 +3413,7 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { StatWatcher::RegisterExternalReferences(registry); BindingData::RegisterExternalReferences(registry); + registry->Register(GetFormatOfExtensionlessFile); registry->Register(Close); registry->Register(ExistsSync); registry->Register(Open); diff --git a/typings/internalBinding/constants.d.ts b/typings/internalBinding/constants.d.ts index 0495724e85869c..89d2a53aae2118 100644 --- a/typings/internalBinding/constants.d.ts +++ b/typings/internalBinding/constants.d.ts @@ -186,6 +186,8 @@ export interface ConstantsBinding { COPYFILE_FICLONE: 2; UV_FS_COPYFILE_FICLONE_FORCE: 4; COPYFILE_FICLONE_FORCE: 4; + EXTENSIONLESS_FORMAT_JAVASCRIPT: 0; + EXTENSIONLESS_FORMAT_WASM: 1; }; crypto: { OPENSSL_VERSION_NUMBER: 269488319; diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index d87b326e42efc8..a59045e33066cb 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -1,3 +1,5 @@ +import { ConstantsBinding } from './constants'; + declare namespace InternalFSBinding { class FSReqCallback { constructor(bigint?: boolean); @@ -218,6 +220,8 @@ declare namespace InternalFSBinding { function writeString(fd: number, value: string, pos: unknown, encoding: unknown, req: FSReqCallback): void; function writeString(fd: number, value: string, pos: unknown, encoding: unknown, req: undefined, ctx: FSSyncContext): number; function writeString(fd: number, value: string, pos: unknown, encoding: unknown, usePromises: typeof kUsePromises): Promise; + + function getFormatOfExtensionlessFile(url: string): ConstantsBinding['fs']; } export interface FsBinding { @@ -269,4 +273,6 @@ export interface FsBinding { writeBuffer: typeof InternalFSBinding.writeBuffer; writeBuffers: typeof InternalFSBinding.writeBuffers; writeString: typeof InternalFSBinding.writeString; + + getFormatOfExtensionlessFile: typeof InternalFSBinding.getFormatOfExtensionlessFile; } From 315d82a73ea0a3b0d3befeee90b901d46b293280 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sun, 1 Oct 2023 11:41:51 -0700 Subject: [PATCH 057/232] doc: update link to Abstract Modules Records spec The current link in the docs go to a page that does not have the Abstract Module Records information. Update the link to an official source that does. PR-URL: https://github.com/nodejs/node/pull/49961 Reviewed-By: Luigi Pinca Reviewed-By: Benjamin Gruenbaum --- doc/api/vm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/vm.md b/doc/api/vm.md index 19d39c77a01720..e5c116d54af0bf 100644 --- a/doc/api/vm.md +++ b/doc/api/vm.md @@ -1581,7 +1581,7 @@ are not controllable through the timeout either. [GetModuleNamespace]: https://tc39.es/ecma262/#sec-getmodulenamespace [HostResolveImportedModule]: https://tc39.es/ecma262/#sec-hostresolveimportedmodule [Link() concrete method]: https://tc39.es/ecma262/#sec-moduledeclarationlinking -[Module Record]: https://www.ecma-international.org/ecma-262/#sec-abstract-module-records +[Module Record]: https://262.ecma-international.org/14.0/#sec-abstract-module-records [Source Text Module Record]: https://tc39.es/ecma262/#sec-source-text-module-records [Synthetic Module Record]: https://heycam.github.io/webidl/#synthetic-module-records [V8 Embedder's Guide]: https://v8.dev/docs/embed#contexts From def55f80a11410008e045447cb147daf52d40782 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sun, 1 Oct 2023 22:07:12 +0200 Subject: [PATCH 058/232] stream: avoid tick in writable hot path PR-URL: https://github.com/nodejs/node/pull/49966 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Yagiz Nizipli Reviewed-By: Matteo Collina Reviewed-By: Luigi Pinca --- lib/internal/streams/writable.js | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 7b1896baeb47c2..5800c9df171ff2 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -612,24 +612,31 @@ function onwrite(stream, er) { } if (sync) { + const needDrain = state.length === 0 && (state.state & kNeedDrain) !== 0; + const needTick = needDrain || (state.state & kDestroyed !== 0) || cb !== nop; + // It is a common case that the callback passed to .write() is always // the same. In that case, we do not schedule a new nextTick(), but // rather just increase a counter, to improve performance and avoid // memory allocations. if (cb === nop) { - if ((state.state & kAfterWritePending) === 0) { + if ((state.state & kAfterWritePending) === 0 && needTick) { process.nextTick(afterWrite, stream, state, 1, cb); state.state |= kAfterWritePending; } else { - state.pendingcb -= 1; + state.pendingcb--; + finishMaybe(stream, state, true); } - } else if (state.afterWriteTickInfo !== null && - state.afterWriteTickInfo.cb === cb) { - state.afterWriteTickInfo.count++; + } else if ((state.state & kAfterWriteTickInfo) !== 0 && + state[kAfterWriteTickInfoValue].cb === cb) { + state[kAfterWriteTickInfoValue].count++; + } else if (needTick) { + state[kAfterWriteTickInfoValue] = { count: 1, cb, stream, state }; + process.nextTick(afterWriteTick, state[kAfterWriteTickInfoValue]); + state.state |= (kAfterWritePending | kAfterWriteTickInfo); } else { - state.afterWriteTickInfo = { count: 1, cb, stream, state }; - process.nextTick(afterWriteTick, state.afterWriteTickInfo); - state.state |= kAfterWritePending; + state.pendingcb--; + finishMaybe(stream, state, true); } } else { afterWrite(stream, state, 1, cb); @@ -638,7 +645,8 @@ function onwrite(stream, er) { } function afterWriteTick({ stream, state, count, cb }) { - state.afterWriteTickInfo = null; + state.state &= ~kAfterWriteTickInfo; + state[kAfterWriteTickInfoValue] = null; return afterWrite(stream, state, count, cb); } @@ -795,6 +803,8 @@ Writable.prototype.end = function(chunk, encoding, cb) { if (typeof cb === 'function') { if (err) { process.nextTick(cb, err); + } else if ((state.state & kErrored) !== 0) { + process.nextTick(cb, state[kErroredValue]); } else if ((state.state & kFinished) !== 0) { process.nextTick(cb, null); } else { From 36ecd2c588dd712f47caa4263eca175bc16f534b Mon Sep 17 00:00:00 2001 From: Tierney Cyren Date: Sun, 1 Oct 2023 22:07:21 +0200 Subject: [PATCH 059/232] doc: update Collaborator pronouns Signed-off-by: Tierney Cyren PR-URL: https://github.com/nodejs/node/pull/50005 Reviewed-By: Colin Ihrig Reviewed-By: Moshe Atlow --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9eafa7595ef93..b70c0fbc648b3d 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ For information about the governance of the Node.js project, see * [bmeck](https://github.com/bmeck) - **Bradley Farias** <> * [bnb](https://github.com/bnb) - - **Tierney Cyren** <> (they/he) + **Tierney Cyren** <> (they/them) * [bnoordhuis](https://github.com/bnoordhuis) - **Ben Noordhuis** <> * [BridgeAR](https://github.com/BridgeAR) - From 34c7eb0eb22f93186b01a76659734d6719a17c0a Mon Sep 17 00:00:00 2001 From: MatteoBax <98881971+MatteoBax@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:44:16 +0200 Subject: [PATCH 060/232] deps: fix call to undeclared functions 'ntohl' and 'htons' This reverts commit 2070ad27a5fc674909f4bbd34e7d862c625fc54b. deps: fix call to undeclared functions 'ntohl' and 'htons' PR-URL: https://github.com/nodejs/node/pull/49979 Reviewed-By: Ben Noordhuis Reviewed-By: Richard Lau --- deps/ngtcp2/ngtcp2.gyp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/ngtcp2/ngtcp2.gyp b/deps/ngtcp2/ngtcp2.gyp index a47a791610e86a..e53b7f61ea387b 100644 --- a/deps/ngtcp2/ngtcp2.gyp +++ b/deps/ngtcp2/ngtcp2.gyp @@ -112,7 +112,7 @@ }, }, }], - ['OS=="linux"', { + ['OS=="linux" or OS=="android"', { 'defines': [ 'HAVE_ARPA_INET_H', 'HAVE_NETINET_IN_H', @@ -162,7 +162,7 @@ }, }, }], - ['OS=="linux"', { + ['OS=="linux" or OS=="android"', { 'defines': [ 'HAVE_ARPA_INET_H', 'HAVE_NETINET_IN_H', From 24cbc550c2aa4c6c75e2943bab16a75d0ebbaaba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinicius=20Louren=C3=A7o?= <12551007+H4ad@users.noreply.github.com> Date: Mon, 2 Oct 2023 09:56:39 -0300 Subject: [PATCH 061/232] lib: reduce overhead of validateObject PR-URL: https://github.com/nodejs/node/pull/49928 Reviewed-By: Yagiz Nizipli Reviewed-By: Benjamin Gruenbaum Reviewed-By: Antoine du Hamel --- benchmark/validators/validate-object.js | 75 +++++++++++++++++++++ lib/fs.js | 7 +- lib/internal/abort_controller.js | 4 +- lib/internal/encoding.js | 31 +++------ lib/internal/event_target.js | 13 ++-- lib/internal/fs/promises.js | 3 +- lib/internal/util/inspect.js | 3 +- lib/internal/validators.js | 65 ++++++++++-------- lib/internal/vm.js | 6 +- lib/internal/webstreams/readablestream.js | 4 +- test/benchmark/test-benchmark-validators.js | 10 +++ test/parallel/test-validators.js | 23 +++---- 12 files changed, 170 insertions(+), 74 deletions(-) create mode 100644 benchmark/validators/validate-object.js create mode 100644 test/benchmark/test-benchmark-validators.js diff --git a/benchmark/validators/validate-object.js b/benchmark/validators/validate-object.js new file mode 100644 index 00000000000000..50e722c52426a4 --- /dev/null +++ b/benchmark/validators/validate-object.js @@ -0,0 +1,75 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e5], + objectToTest: [ + 'object', + 'null', + 'array', + 'function', + ], +}, { + flags: ['--expose-internals'], +}); + +function getObjectToTest(objectToTest) { + switch (objectToTest) { + case 'object': + return { foo: 'bar' }; + case 'null': + return null; + case 'array': + return ['foo', 'bar']; + case 'function': + return () => 'foo'; + default: + throw new Error(`Value ${objectToTest} is not a valid objectToTest.`); + } +} + +function getOptions(objectToTest) { + const { + kValidateObjectAllowNullable, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, + } = require('internal/validators'); + + switch (objectToTest) { + case 'object': + return 0; + case 'null': + return kValidateObjectAllowNullable; + case 'array': + return kValidateObjectAllowArray; + case 'function': + return kValidateObjectAllowFunction; + default: + throw new Error(`Value ${objectToTest} is not a valid objectToTest.`); + } +} + +let _validateResult; + +function main({ n, objectToTest }) { + const { + validateObject, + } = require('internal/validators'); + + const value = getObjectToTest(objectToTest); + const options = getOptions(objectToTest); + + bench.start(); + for (let i = 0; i < n; ++i) { + try { + _validateResult = validateObject(value, 'Object', options); + } catch { + _validateResult = undefined; + } + } + bench.end(n); + + assert.ok(!_validateResult); +} diff --git a/lib/fs.js b/lib/fs.js index 86895cf84170d5..0f7a46dcb9c595 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -140,6 +140,7 @@ const { validateInteger, validateObject, validateString, + kValidateObjectAllowNullable, } = require('internal/validators'); let truncateWarn = true; @@ -624,7 +625,7 @@ function read(fd, buffer, offsetOrOptions, length, position, callback) { if (arguments.length <= 4) { if (arguments.length === 4) { // This is fs.read(fd, buffer, options, callback) - validateObject(offsetOrOptions, 'options', { nullable: true }); + validateObject(offsetOrOptions, 'options', kValidateObjectAllowNullable); callback = length; params = offsetOrOptions; } else if (arguments.length === 3) { @@ -642,7 +643,7 @@ function read(fd, buffer, offsetOrOptions, length, position, callback) { } if (params !== undefined) { - validateObject(params, 'options', { nullable: true }); + validateObject(params, 'options', kValidateObjectAllowNullable); } ({ offset = 0, @@ -714,7 +715,7 @@ function readSync(fd, buffer, offsetOrOptions, length, position) { let offset = offsetOrOptions; if (arguments.length <= 3 || typeof offsetOrOptions === 'object') { if (offsetOrOptions !== undefined) { - validateObject(offsetOrOptions, 'options', { nullable: true }); + validateObject(offsetOrOptions, 'options', kValidateObjectAllowNullable); } ({ diff --git a/lib/internal/abort_controller.js b/lib/internal/abort_controller.js index 1d9d09aaff62c9..ce3539fda3154d 100644 --- a/lib/internal/abort_controller.js +++ b/lib/internal/abort_controller.js @@ -46,6 +46,8 @@ const { validateAbortSignalArray, validateObject, validateUint32, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, } = require('internal/validators'); const { @@ -432,7 +434,7 @@ async function aborted(signal, resource) { throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal); } validateAbortSignal(signal, 'signal'); - validateObject(resource, 'resource', { nullable: false, allowFunction: true, allowArray: true }); + validateObject(resource, 'resource', kValidateObjectAllowArray | kValidateObjectAllowFunction); if (signal.aborted) return PromiseResolve(); const abortPromise = createDeferredPromise(); diff --git a/lib/internal/encoding.js b/lib/internal/encoding.js index a9bfb665c2f1e8..6ed89b3f9b15a4 100644 --- a/lib/internal/encoding.js +++ b/lib/internal/encoding.js @@ -47,6 +47,9 @@ const { const { validateString, validateObject, + kValidateObjectAllowNullable, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, } = require('internal/validators'); const binding = internalBinding('encoding_binding'); const { @@ -390,6 +393,10 @@ const TextDecoder = makeTextDecoderICU() : makeTextDecoderJS(); +const kValidateObjectAllowObjectsAndNull = kValidateObjectAllowNullable | + kValidateObjectAllowArray | + kValidateObjectAllowFunction; + function makeTextDecoderICU() { const { decode: _decode, @@ -399,11 +406,7 @@ function makeTextDecoderICU() { class TextDecoder { constructor(encoding = 'utf-8', options = kEmptyObject) { encoding = `${encoding}`; - validateObject(options, 'options', { - nullable: true, - allowArray: true, - allowFunction: true, - }); + validateObject(options, 'options', kValidateObjectAllowObjectsAndNull); const enc = getEncodingFromLabel(encoding); if (enc === undefined) @@ -448,11 +451,7 @@ function makeTextDecoderICU() { this.#prepareConverter(); - validateObject(options, 'options', { - nullable: true, - allowArray: true, - allowFunction: true, - }); + validateObject(options, 'options', kValidateObjectAllowObjectsAndNull); let flags = 0; if (options !== null) @@ -482,11 +481,7 @@ function makeTextDecoderJS() { class TextDecoder { constructor(encoding = 'utf-8', options = kEmptyObject) { encoding = `${encoding}`; - validateObject(options, 'options', { - nullable: true, - allowArray: true, - allowFunction: true, - }); + validateObject(options, 'options', kValidateObjectAllowObjectsAndNull); const enc = getEncodingFromLabel(encoding); if (enc === undefined || !hasConverter(enc)) @@ -528,11 +523,7 @@ function makeTextDecoderJS() { ['ArrayBuffer', 'ArrayBufferView'], input); } - validateObject(options, 'options', { - nullable: true, - allowArray: true, - allowFunction: true, - }); + validateObject(options, 'options', kValidateObjectAllowObjectsAndNull); if (this[kFlags] & CONVERTER_FLAGS_FLUSH) { this[kBOMSeen] = false; diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 177f2a939d2c45..682cb156c34185 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -34,7 +34,14 @@ const { ERR_INVALID_THIS, }, } = require('internal/errors'); -const { validateAbortSignal, validateObject, validateString, validateInternalField } = require('internal/validators'); +const { + validateAbortSignal, + validateObject, + validateString, + validateInternalField, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, +} = require('internal/validators'); const { customInspectSymbol, @@ -1041,9 +1048,7 @@ function validateEventListenerOptions(options) { if (options === null) return kEmptyObject; - validateObject(options, 'options', { - allowArray: true, allowFunction: true, - }); + validateObject(options, 'options', kValidateObjectAllowArray | kValidateObjectAllowFunction); return { once: Boolean(options.once), capture: Boolean(options.capture), diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js index 8a92c000c3179a..f2756f7e37f925 100644 --- a/lib/internal/fs/promises.js +++ b/lib/internal/fs/promises.js @@ -82,6 +82,7 @@ const { validateInteger, validateObject, validateString, + kValidateObjectAllowNullable, } = require('internal/validators'); const pathModule = require('path'); const { @@ -596,7 +597,7 @@ async function read(handle, bufferOrParams, offset, length, position) { if (!isArrayBufferView(buffer)) { // This is fh.read(params) if (bufferOrParams !== undefined) { - validateObject(bufferOrParams, 'options', { nullable: true }); + validateObject(bufferOrParams, 'options', kValidateObjectAllowNullable); } ({ buffer = Buffer.alloc(16384), diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 2e3e1b60be871c..73da4446f824fe 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -154,6 +154,7 @@ const { BuiltinModule } = require('internal/bootstrap/realm'); const { validateObject, validateString, + kValidateObjectAllowArray, } = require('internal/validators'); let hexSlice; @@ -2155,7 +2156,7 @@ function format(...args) { } function formatWithOptions(inspectOptions, ...args) { - validateObject(inspectOptions, 'inspectOptions', { allowArray: true }); + validateObject(inspectOptions, 'inspectOptions', kValidateObjectAllowArray); return formatWithOptionsInternal(inspectOptions, args); } diff --git a/lib/internal/validators.js b/lib/internal/validators.js index c73cb213ebe72b..088a0a668ba8b2 100644 --- a/lib/internal/validators.js +++ b/lib/internal/validators.js @@ -177,7 +177,7 @@ function validateNumber(value, name, min = undefined, max) { throw new ERR_INVALID_ARG_TYPE(name, 'number', value); if ((min != null && value < min) || (max != null && value > max) || - ((min != null || max != null) && NumberIsNaN(value))) { + ((min != null || max != null) && NumberIsNaN(value))) { throw new ERR_OUT_OF_RANGE( name, `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`, @@ -218,41 +218,48 @@ function validateBoolean(value, name) { throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value); } -/** - * @param {any} options - * @param {string} key - * @param {boolean} defaultValue - * @returns {boolean} - */ -function getOwnPropertyValueOrDefault(options, key, defaultValue) { - return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? - defaultValue : - options[key]; -} +const kValidateObjectNone = 0; +const kValidateObjectAllowNullable = 1 << 0; +const kValidateObjectAllowArray = 1 << 1; +const kValidateObjectAllowFunction = 1 << 2; /** * @callback validateObject * @param {*} value * @param {string} name - * @param {{ - * allowArray?: boolean, - * allowFunction?: boolean, - * nullable?: boolean - * }} [options] + * @param {number} [options] */ /** @type {validateObject} */ const validateObject = hideStackFrames( - (value, name, options = null) => { - const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false); - const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false); - const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false); - if ((!nullable && value === null) || - (!allowArray && ArrayIsArray(value)) || - (typeof value !== 'object' && ( - !allowFunction || typeof value !== 'function' - ))) { - throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + (value, name, options = kValidateObjectNone) => { + if (options === kValidateObjectNone) { + if (value === null || ArrayIsArray(value)) { + throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + } + + if (typeof value !== 'object') { + throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + } + } else { + const throwOnNullable = (kValidateObjectAllowNullable & options) === 0; + + if (throwOnNullable && value === null) { + throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + } + + const throwOnArray = (kValidateObjectAllowArray & options) === 0; + + if (throwOnArray && ArrayIsArray(value)) { + throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + } + + const throwOnFunction = (kValidateObjectAllowFunction & options) === 0; + const typeofValue = typeof value; + + if (typeofValue !== 'object' && (throwOnFunction || typeofValue !== 'function')) { + throw new ERR_INVALID_ARG_TYPE(name, 'Object', value); + } } }); @@ -564,6 +571,10 @@ module.exports = { validateInteger, validateNumber, validateObject, + kValidateObjectNone, + kValidateObjectAllowNullable, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, validateOneOf, validatePlainFunction, validatePort, diff --git a/lib/internal/vm.js b/lib/internal/vm.js index ba5e2324667374..100118e7b4dbb5 100644 --- a/lib/internal/vm.js +++ b/lib/internal/vm.js @@ -17,13 +17,15 @@ const { validateString, validateStringArray, validateUint32, + kValidateObjectAllowArray, + kValidateObjectAllowNullable, } = require('internal/validators'); const { ERR_INVALID_ARG_TYPE, } = require('internal/errors').codes; function isContext(object) { - validateObject(object, 'object', { __proto__: null, allowArray: true }); + validateObject(object, 'object', kValidateObjectAllowArray); return _isContext(object); } @@ -67,7 +69,7 @@ function internalCompileFunction(code, params, options) { validateArray(contextExtensions, 'options.contextExtensions'); ArrayPrototypeForEach(contextExtensions, (extension, i) => { const name = `options.contextExtensions[${i}]`; - validateObject(extension, name, { __proto__: null, nullable: true }); + validateObject(extension, name, kValidateObjectAllowNullable); }); const result = compileFunction( diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js index 5603d2bfd8500f..4be996c1cac020 100644 --- a/lib/internal/webstreams/readablestream.js +++ b/lib/internal/webstreams/readablestream.js @@ -59,6 +59,8 @@ const { validateAbortSignal, validateBuffer, validateObject, + kValidateObjectAllowNullable, + kValidateObjectAllowFunction, } = require('internal/validators'); const { @@ -347,7 +349,7 @@ class ReadableStream { getReader(options = kEmptyObject) { if (!isReadableStream(this)) throw new ERR_INVALID_THIS('ReadableStream'); - validateObject(options, 'options', { nullable: true, allowFunction: true }); + validateObject(options, 'options', kValidateObjectAllowNullable | kValidateObjectAllowFunction); const mode = options?.mode; if (mode === undefined) diff --git a/test/benchmark/test-benchmark-validators.js b/test/benchmark/test-benchmark-validators.js new file mode 100644 index 00000000000000..3a6caba9b0bb20 --- /dev/null +++ b/test/benchmark/test-benchmark-validators.js @@ -0,0 +1,10 @@ +'use strict'; + +require('../common'); + +// Minimal test for assert benchmarks. This makes sure the benchmarks aren't +// completely broken but nothing more than that. + +const runBenchmark = require('../common/benchmark'); + +runBenchmark('validators'); diff --git a/test/parallel/test-validators.js b/test/parallel/test-validators.js index a40139678eee65..848fa0c27bbebe 100644 --- a/test/parallel/test-validators.js +++ b/test/parallel/test-validators.js @@ -9,6 +9,9 @@ const { validateInteger, validateNumber, validateObject, + kValidateObjectAllowNullable, + kValidateObjectAllowArray, + kValidateObjectAllowFunction, validateString, validateInt32, validateUint32, @@ -106,10 +109,6 @@ const invalidArgValueError = { { // validateObject tests. - Object.prototype.nullable = true; - Object.prototype.allowArray = true; - Object.prototype.allowFunction = true; - validateObject({}, 'foo'); validateObject({ a: 42, b: 'foo' }, 'foo'); @@ -121,18 +120,14 @@ const invalidArgValueError = { }); // validateObject options tests: - validateObject(null, 'foo', { nullable: true }); - validateObject([], 'foo', { allowArray: true }); - validateObject(() => {}, 'foo', { allowFunction: true }); + validateObject(null, 'foo', kValidateObjectAllowNullable); + validateObject([], 'foo', kValidateObjectAllowArray); + validateObject(() => {}, 'foo', kValidateObjectAllowFunction); // validateObject should not be affected by Object.prototype tampering. - assert.throws(() => validateObject(null, 'foo', { allowArray: true }), invalidArgTypeError); - assert.throws(() => validateObject([], 'foo', { nullable: true }), invalidArgTypeError); - assert.throws(() => validateObject(() => {}, 'foo', { nullable: true }), invalidArgTypeError); - - delete Object.prototype.nullable; - delete Object.prototype.allowArray; - delete Object.prototype.allowFunction; + assert.throws(() => validateObject(null, 'foo', kValidateObjectAllowArray), invalidArgTypeError); + assert.throws(() => validateObject([], 'foo', kValidateObjectAllowNullable), invalidArgTypeError); + assert.throws(() => validateObject(() => {}, 'foo', kValidateObjectAllowNullable), invalidArgTypeError); } { From 40672cfe530d0c64d6b91148e0d8b712fdfaef5b Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 3 Oct 2023 01:48:08 +0100 Subject: [PATCH 062/232] deps: update ada to 2.6.10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49984 Reviewed-By: Yagiz Nizipli Reviewed-By: Debadree Chatterjee Reviewed-By: Tobias Nießen --- deps/ada/ada.cpp | 34 +++++++++++++++---- deps/ada/ada.h | 6 ++-- .../maintaining/maintaining-dependencies.md | 6 ++-- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index 0cd21f21090bc6..1175b114d8addd 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */ +/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -9810,6 +9810,17 @@ constexpr bool to_lower_ascii(char* input, size_t length) noexcept { #if ADA_NEON ada_really_inline bool has_tabs_or_newline( std::string_view user_input) noexcept { + // first check for short strings in which case we do it naively. + if (user_input.size() < 16) { // slow path + for (size_t i = 0; i < user_input.size(); i++) { + if (user_input[i] == '\r' || user_input[i] == '\n' || + user_input[i] == '\t') { + return true; + } + } + return false; + } + // fast path for long strings (expected to be common) size_t i = 0; const uint8x16_t mask1 = vmovq_n_u8('\r'); const uint8x16_t mask2 = vmovq_n_u8('\n'); @@ -9822,9 +9833,8 @@ ada_really_inline bool has_tabs_or_newline( vceqq_u8(word, mask3)); } if (i < user_input.size()) { - uint8_t buffer[16]{}; - memcpy(buffer, user_input.data() + i, user_input.size() - i); - uint8x16_t word = vld1q_u8((const uint8_t*)user_input.data() + i); + uint8x16_t word = + vld1q_u8((const uint8_t*)user_input.data() + user_input.length() - 16); running = vorrq_u8(vorrq_u8(running, vorrq_u8(vceqq_u8(word, mask1), vceqq_u8(word, mask2))), vceqq_u8(word, mask3)); @@ -9834,6 +9844,17 @@ ada_really_inline bool has_tabs_or_newline( #elif ADA_SSE2 ada_really_inline bool has_tabs_or_newline( std::string_view user_input) noexcept { + // first check for short strings in which case we do it naively. + if (user_input.size() < 16) { // slow path + for (size_t i = 0; i < user_input.size(); i++) { + if (user_input[i] == '\r' || user_input[i] == '\n' || + user_input[i] == '\t') { + return true; + } + } + return false; + } + // fast path for long strings (expected to be common) size_t i = 0; const __m128i mask1 = _mm_set1_epi8('\r'); const __m128i mask2 = _mm_set1_epi8('\n'); @@ -9847,9 +9868,8 @@ ada_really_inline bool has_tabs_or_newline( _mm_cmpeq_epi8(word, mask3)); } if (i < user_input.size()) { - alignas(16) uint8_t buffer[16]{}; - memcpy(buffer, user_input.data() + i, user_input.size() - i); - __m128i word = _mm_load_si128((const __m128i*)buffer); + __m128i word = _mm_loadu_si128( + (const __m128i*)(user_input.data() + user_input.length() - 16)); running = _mm_or_si128( _mm_or_si128(running, _mm_or_si128(_mm_cmpeq_epi8(word, mask1), _mm_cmpeq_epi8(word, mask2))), diff --git a/deps/ada/ada.h b/deps/ada/ada.h index da75a5d985b6cd..d6f705a5d6db67 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-29 13:28:16 -0400. Do not edit! */ +/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -6928,14 +6928,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.9" +#define ADA_VERSION "2.6.10" namespace ada { enum { ADA_VERSION_MAJOR = 2, ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 9, + ADA_VERSION_REVISION = 10, }; } // namespace ada diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 92c6cb06fb1f6e..11fe32de7f0dfc 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.9][] +* [ada 2.6.10][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.19.0][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.9 +### ada 2.6.10 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.9]: #ada-269 +[ada 2.6.10]: #ada-2610 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.19.0]: #c-ares-1190 From 27e02b633de33b41c48a2aad58c087a0d2fbbb8e Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 29 Sep 2023 22:01:55 -0700 Subject: [PATCH 063/232] esm: unflag extensionless javascript and wasm in module scope MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49974 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Guy Bedford Reviewed-By: Michaël Zasso --- doc/api/esm.md | 8 +- lib/internal/errors.js | 8 +- lib/internal/modules/esm/get_format.js | 34 ++---- .../test-esm-extensionless-esm-and-wasm.mjs | 106 ++++++++++++++++++ .../test-esm-type-flag-package-scopes.mjs | 25 ++++- ...nsion.js => test-esm-unknown-extension.js} | 13 +-- .../noext-esm | 2 + .../noext-wasm | Bin 0 -> 136 bytes .../package.json | 8 ++ .../wasm-dep.mjs | 15 +++ .../dep.js | 0 .../noext-cjs | 0 .../package.json | 2 +- .../run.js | 0 14 files changed, 174 insertions(+), 47 deletions(-) create mode 100644 test/es-module/test-esm-extensionless-esm-and-wasm.mjs rename test/es-module/{test-esm-unknown-or-no-extension.js => test-esm-unknown-extension.js} (65%) create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-wasm create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/package.json create mode 100644 test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/wasm-dep.mjs rename test/fixtures/es-modules/package-type-module/node_modules/{dep-with-package-json => dep-with-package-json-without-type}/dep.js (100%) rename test/fixtures/es-modules/package-type-module/node_modules/{dep-with-package-json => dep-with-package-json-without-type}/noext-cjs (100%) rename test/fixtures/es-modules/package-type-module/node_modules/{dep-with-package-json => dep-with-package-json-without-type}/package.json (56%) rename test/fixtures/es-modules/package-type-module/node_modules/{dep-with-package-json => dep-with-package-json-without-type}/run.js (100%) diff --git a/doc/api/esm.md b/doc/api/esm.md index bfd40556e5fcab..fa2abac7029b3d 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -1009,8 +1009,12 @@ _isImports_, _conditions_) > 5. Let _packageURL_ be the result of **LOOKUP\_PACKAGE\_SCOPE**(_url_). > 6. Let _pjson_ be the result of **READ\_PACKAGE\_JSON**(_packageURL_). > 7. If _pjson?.type_ exists and is _"module"_, then -> 1. If _url_ ends in _".js"_, then -> 1. Return _"module"_. +> 1. If _url_ ends in _".js"_ or has no file extension, then +> 1. If `--experimental-wasm-modules` is enabled and the file at _url_ +> contains the header for a WebAssembly module, then +> 1. Return _"wasm"_. +> 2. Otherwise, +> 1. Return _"module"_. > 2. Return **undefined**. > 8. Otherwise, > 1. Return **undefined**. diff --git a/lib/internal/errors.js b/lib/internal/errors.js index d577f8efbd63ff..ea8138d8dca7eb 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -1791,13 +1791,7 @@ E('ERR_UNHANDLED_ERROR', E('ERR_UNKNOWN_BUILTIN_MODULE', 'No such built-in module: %s', Error); E('ERR_UNKNOWN_CREDENTIAL', '%s identifier does not exist: %s', Error); E('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError); -E('ERR_UNKNOWN_FILE_EXTENSION', (ext, path, suggestion) => { - let msg = `Unknown file extension "${ext}" for ${path}`; - if (suggestion) { - msg += `. ${suggestion}`; - } - return msg; -}, TypeError); +E('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension "%s" for %s', TypeError); E('ERR_UNKNOWN_MODULE_FORMAT', 'Unknown module format: %s for URL %s', RangeError); E('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s', TypeError); diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index 59ab89f6f76377..56d002ca0883ad 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -9,7 +9,6 @@ const { StringPrototypeCharCodeAt, StringPrototypeSlice, } = primordials; -const { basename, relative } = require('path'); const { getOptionValue } = require('internal/options'); const { extensionFormatMap, @@ -22,7 +21,7 @@ const experimentalNetworkImports = const defaultTypeFlag = getOptionValue('--experimental-default-type'); // The next line is where we flip the default to ES modules someday. const defaultType = defaultTypeFlag === 'module' ? 'module' : 'commonjs'; -const { getPackageType, getPackageScopeConfig } = require('internal/modules/esm/resolve'); +const { getPackageType } = require('internal/modules/esm/resolve'); const { fileURLToPath } = require('internal/url'); const { ERR_UNKNOWN_FILE_EXTENSION } = require('internal/errors').codes; @@ -112,17 +111,16 @@ function getFileProtocolModuleFormat(url, context, ignoreErrors) { if (defaultType === 'commonjs') { // Legacy behavior if (packageType === 'none' || packageType === 'commonjs') { return 'commonjs'; - } - // If package type is `module`, fall through to the error case below - } else { // Else defaultType === 'module' - if (underNodeModules(url)) { // Exception for package scopes under `node_modules` - return 'commonjs'; - } - if (packageType === 'none' || packageType === 'module') { - return getFormatOfExtensionlessFile(url); - } // Else packageType === 'commonjs' - return 'commonjs'; + } // Else packageType === 'module' + return getFormatOfExtensionlessFile(url); + } // Else defaultType === 'module' + if (underNodeModules(url)) { // Exception for package scopes under `node_modules` + return packageType === 'module' ? getFormatOfExtensionlessFile(url) : 'commonjs'; } + if (packageType === 'none' || packageType === 'module') { + return getFormatOfExtensionlessFile(url); + } // Else packageType === 'commonjs' + return 'commonjs'; } const format = extensionFormatMap[ext]; @@ -131,17 +129,7 @@ function getFileProtocolModuleFormat(url, context, ignoreErrors) { // Explicit undefined return indicates load hook should rerun format check if (ignoreErrors) { return undefined; } const filepath = fileURLToPath(url); - let suggestion = ''; - if (getPackageType(url) === 'module' && ext === '') { - const config = getPackageScopeConfig(url); - const fileBasename = basename(filepath); - const relativePath = StringPrototypeSlice(relative(config.pjsonPath, filepath), 1); - suggestion = 'Loading extensionless files is not supported inside of "type":"module" package.json contexts ' + - `without --experimental-default-type=module. The package.json file ${config.pjsonPath} caused this "type":"module" ` + - `context. Try changing ${filepath} to have a file extension. Note the "bin" field of package.json can point ` + - `to a file with an extension, for example {"type":"module","bin":{"${fileBasename}":"${relativePath}.js"}}`; - } - throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath, suggestion); + throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath); } /** diff --git a/test/es-module/test-esm-extensionless-esm-and-wasm.mjs b/test/es-module/test-esm-extensionless-esm-and-wasm.mjs new file mode 100644 index 00000000000000..db20bc047feec1 --- /dev/null +++ b/test/es-module/test-esm-extensionless-esm-and-wasm.mjs @@ -0,0 +1,106 @@ +// Flags: --experimental-wasm-modules +import { mustNotCall, spawnPromisified } from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { describe, it } from 'node:test'; +import { match, ok, strictEqual } from 'node:assert'; + +describe('extensionless ES modules within a "type": "module" package scope', { concurrency: true }, () => { + it('should run as the entry point', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + fixtures.path('es-modules/package-type-module/noext-esm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should be importable', async () => { + const { default: defaultExport } = + await import(fixtures.fileURL('es-modules/package-type-module/noext-esm')); + strictEqual(defaultExport, 'module'); + }); + + it('should be importable from a module scope under node_modules', async () => { + const { default: defaultExport } = + await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm')); + strictEqual(defaultExport, 'module'); + }); +}); +describe('extensionless Wasm modules within a "type": "module" package scope', { concurrency: true }, () => { + it('should run as the entry point', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-wasm-modules', + '--no-warnings', + fixtures.path('es-modules/package-type-module/noext-wasm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + it('should be importable', async () => { + const { add } = await import(fixtures.fileURL('es-modules/package-type-module/noext-wasm')); + strictEqual(add(1, 2), 3); + }); + + it('should be importable from a module scope under node_modules', async () => { + const { add } = await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-wasm')); + strictEqual(add(1, 2), 3); + }); +}); + +describe('extensionless ES modules within no package scope', { concurrency: true }, () => { + // This succeeds with `--experimental-default-type=module` + it('should error as the entry point', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + fixtures.path('es-modules/noext-esm'), + ]); + + match(stderr, /SyntaxError/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + + // This succeeds with `--experimental-default-type=module` + it('should error on import', async () => { + try { + await import(fixtures.fileURL('es-modules/noext-esm')); + mustNotCall(); + } catch (err) { + ok(err instanceof SyntaxError); + } + }); +}); + +describe('extensionless Wasm within no package scope', { concurrency: true }, () => { + // This succeeds with `--experimental-default-type=module` + it('should error as the entry point', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-wasm-modules', + '--no-warnings', + fixtures.path('es-modules/noext-wasm'), + ]); + + match(stderr, /SyntaxError/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + + // This succeeds with `--experimental-default-type=module` + it('should error on import', async () => { + try { + await import(fixtures.fileURL('es-modules/noext-wasm')); + mustNotCall(); + } catch (err) { + ok(err instanceof SyntaxError); + } + }); +}); diff --git a/test/es-module/test-esm-type-flag-package-scopes.mjs b/test/es-module/test-esm-type-flag-package-scopes.mjs index 6b16e8a3ae223b..bf9d7d7ca4944c 100644 --- a/test/es-module/test-esm-type-flag-package-scopes.mjs +++ b/test/es-module/test-esm-type-flag-package-scopes.mjs @@ -24,6 +24,14 @@ describe('the type flag should change the interpretation of certain files within strictEqual(defaultExport, 'module'); }); + it('should import an extensionless JavaScript file within a "type": "module" scope under node_modules', + async () => { + const { default: defaultExport } = + await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm')); + strictEqual(defaultExport, 'module'); + }); + it('should run as Wasm an extensionless Wasm file within a "type": "module" scope', async () => { const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ '--experimental-default-type=module', @@ -42,6 +50,13 @@ describe('the type flag should change the interpretation of certain files within const { add } = await import(fixtures.fileURL('es-modules/package-type-module/noext-wasm')); strictEqual(add(1, 2), 3); }); + + it('should import an extensionless Wasm file within a "type": "module" scope under node_modules', + async () => { + const { add } = await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-wasm')); + strictEqual(add(1, 2), 3); + }); }); describe(`the type flag should change the interpretation of certain files within a package scope that lacks a @@ -112,7 +127,7 @@ describe(`the type flag should NOT change the interpretation of certain files wi async () => { const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ '--experimental-default-type=module', - fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json/run.js'), + fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json-without-type/run.js'), ]); strictEqual(stderr, ''); @@ -124,7 +139,8 @@ describe(`the type flag should NOT change the interpretation of certain files wi it(`should import as CommonJS a .js file within a package scope that has no defined "type" and is under node_modules`, async () => { const { default: defaultExport } = - await import(fixtures.fileURL('es-modules/package-type-module/node_modules/dep-with-package-json/run.js')); + await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-without-type/run.js')); strictEqual(defaultExport, 42); }); @@ -132,7 +148,7 @@ describe(`the type flag should NOT change the interpretation of certain files wi under node_modules`, async () => { const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ '--experimental-default-type=module', - fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs'), + fixtures.path('es-modules/package-type-module/node_modules/dep-with-package-json-without-type/noext-cjs'), ]); strictEqual(stderr, ''); @@ -144,7 +160,8 @@ describe(`the type flag should NOT change the interpretation of certain files wi it(`should import as CommonJS an extensionless JavaScript file within a package scope that has no defined "type" and is under node_modules`, async () => { const { default: defaultExport } = - await import(fixtures.fileURL('es-modules/package-type-module/node_modules/dep-with-package-json/noext-cjs')); + await import(fixtures.fileURL( + 'es-modules/package-type-module/node_modules/dep-with-package-json-without-type/noext-cjs')); strictEqual(defaultExport, 42); }); }); diff --git a/test/es-module/test-esm-unknown-or-no-extension.js b/test/es-module/test-esm-unknown-extension.js similarity index 65% rename from test/es-module/test-esm-unknown-or-no-extension.js rename to test/es-module/test-esm-unknown-extension.js index 83ebcc6267bfc3..dae9568c523fe5 100644 --- a/test/es-module/test-esm-unknown-or-no-extension.js +++ b/test/es-module/test-esm-unknown-extension.js @@ -7,14 +7,11 @@ const { execPath } = require('node:process'); const { describe, it } = require('node:test'); -// In a "type": "module" package scope, files with unknown extensions or no -// extensions should throw; both when used as a main entry point and also when -// referenced via `import`. -describe('ESM: extensionless and unknown specifiers', { concurrency: true }, () => { +// In a "type": "module" package scope, files with unknown extensions should throw; +// both when used as a main entry point and also when referenced via `import`. +describe('ESM: unknown specifiers', { concurrency: true }, () => { for ( const fixturePath of [ - '/es-modules/package-type-module/noext-esm', - '/es-modules/package-type-module/imports-noext.mjs', '/es-modules/package-type-module/extension.unknown', '/es-modules/package-type-module/imports-unknownext.mjs', ] @@ -27,10 +24,6 @@ describe('ESM: extensionless and unknown specifiers', { concurrency: true }, () assert.strictEqual(signal, null); assert.strictEqual(stdout, ''); assert.match(stderr, /ERR_UNKNOWN_FILE_EXTENSION/); - if (fixturePath.includes('noext')) { - // Check for explanation to users - assert.match(stderr, /extensionless/); - } }); } }); diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm new file mode 100644 index 00000000000000..251d6e538a1fcf --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-esm @@ -0,0 +1,2 @@ +export default 'module'; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-wasm b/test/fixtures/es-modules/package-type-module/node_modules/dep-with-package-json-type-module/noext-wasm new file mode 100644 index 0000000000000000000000000000000000000000..9e035904b2e4d0a30ce5a63bcf05cc3a2c8449db GIT binary patch literal 136 zcmZ9COA5k35Jam#kl=s>MAx~130^|TEhaEo*f23T0he=in=IYDDqa=lk_iA^G=gdb zBG>AL9Q@$(Fn;}VPs=uBD{AGr0)Mu(GOe%O7ZMd>X|61DN|4~3^7j7hOM Date: Tue, 3 Oct 2023 05:12:59 -0700 Subject: [PATCH 064/232] doc: reserve 119 for Electron 28 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: David Sanders PR-URL: https://github.com/nodejs/node/pull/50020 Reviewed-By: Michaël Zasso Reviewed-By: Moshe Atlow Reviewed-By: Yagiz Nizipli Reviewed-By: Richard Lau --- doc/abi_version_registry.json | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/abi_version_registry.json b/doc/abi_version_registry.json index 2208ef07d148a2..3c2bbfc0f0adaa 100644 --- a/doc/abi_version_registry.json +++ b/doc/abi_version_registry.json @@ -1,5 +1,6 @@ { "NODE_MODULE_VERSION": [ + { "modules": 119,"runtime": "electron", "variant": "electron", "versions": "28" }, { "modules": 118,"runtime": "electron", "variant": "electron", "versions": "27" }, { "modules": 117,"runtime": "electron", "variant": "electron", "versions": "26" }, { "modules": 116,"runtime": "electron", "variant": "electron", "versions": "25" }, From cd8e90690be0bd5634780f3e4cf1ac609f4e7be5 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 3 Oct 2023 14:08:19 +0100 Subject: [PATCH 065/232] deps: update googletest to e47544a MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49982 Reviewed-By: Luigi Pinca Reviewed-By: Moshe Atlow Reviewed-By: Tobias Nießen --- deps/googletest/include/gtest/gtest-message.h | 19 +++--- .../googletest/include/gtest/gtest-printers.h | 9 ++- .../include/gtest/internal/gtest-port.h | 64 +++++++++++-------- deps/googletest/src/gtest-filepath.cc | 2 +- deps/googletest/src/gtest.cc | 2 +- .../maintaining/maintaining-dependencies.md | 6 +- 6 files changed, 56 insertions(+), 46 deletions(-) diff --git a/deps/googletest/include/gtest/gtest-message.h b/deps/googletest/include/gtest/gtest-message.h index 59b805e4e4622c..448ac6b7ee2e09 100644 --- a/deps/googletest/include/gtest/gtest-message.h +++ b/deps/googletest/include/gtest/gtest-message.h @@ -59,7 +59,7 @@ #ifdef GTEST_HAS_ABSL #include -#include "absl/strings/internal/has_absl_stringify.h" +#include "absl/strings/has_absl_stringify.h" #include "absl/strings/str_cat.h" #endif // GTEST_HAS_ABSL @@ -121,14 +121,14 @@ class GTEST_API_ Message { // Streams a non-pointer value to this object. If building a version of // GoogleTest with ABSL, this overload is only enabled if the value does not // have an AbslStringify definition. - template ::value, // NOLINT - int>::type = 0 + , + typename std::enable_if::value, // NOLINT + int>::type = 0 #endif // GTEST_HAS_ABSL - > + > inline Message& operator<<(const T& val) { // Some libraries overload << for STL containers. These // overloads are defined in the global namespace instead of ::std. @@ -153,9 +153,8 @@ class GTEST_API_ Message { // Streams a non-pointer value with an AbslStringify definition to this // object. template ::value, // NOLINT - int>::type = 0> + typename std::enable_if::value, // NOLINT + int>::type = 0> inline Message& operator<<(const T& val) { // ::operator<< is needed here for a similar reason as with the non-Abseil // version above diff --git a/deps/googletest/include/gtest/gtest-printers.h b/deps/googletest/include/gtest/gtest-printers.h index 9ccbff7da454b5..1b12ef683c13bd 100644 --- a/deps/googletest/include/gtest/gtest-printers.h +++ b/deps/googletest/include/gtest/gtest-printers.h @@ -116,7 +116,7 @@ #include #ifdef GTEST_HAS_ABSL -#include "absl/strings/internal/has_absl_stringify.h" +#include "absl/strings/has_absl_stringify.h" #include "absl/strings/str_cat.h" #endif // GTEST_HAS_ABSL #include "gtest/internal/gtest-internal.h" @@ -292,10 +292,9 @@ struct ConvertibleToStringViewPrinter { #ifdef GTEST_HAS_ABSL struct ConvertibleToAbslStringifyPrinter { - template < - typename T, - typename = typename std::enable_if< - absl::strings_internal::HasAbslStringify::value>::type> // NOLINT + template ::value>::type> // NOLINT static void PrintValue(const T& value, ::std::ostream* os) { *os << absl::StrCat(value); } diff --git a/deps/googletest/include/gtest/internal/gtest-port.h b/deps/googletest/include/gtest/internal/gtest-port.h index 35544a08a65aae..d061a49b9f411b 100644 --- a/deps/googletest/include/gtest/internal/gtest-port.h +++ b/deps/googletest/include/gtest/internal/gtest-port.h @@ -281,6 +281,22 @@ #error C++ versions less than C++14 are not supported. #endif +// MSVC >= 19.11 (VS 2017 Update 3) supports __has_include. +#ifdef __has_include +#define GTEST_INTERNAL_HAS_INCLUDE __has_include +#else +#define GTEST_INTERNAL_HAS_INCLUDE(...) 0 +#endif + +// Detect C++ feature test macros as gracefully as possible. +// MSVC >= 19.15, Clang >= 3.4.1, and GCC >= 4.1.2 support feature test macros. +#if GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L && \ + (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE()) +#include // C++20 and later +#elif (!defined(__has_include) || GTEST_INTERNAL_HAS_INCLUDE()) +#include // Pre-C++20 +#endif + #include // for isspace, etc #include // for ptrdiff_t #include @@ -829,9 +845,9 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; #ifndef GTEST_API_ #ifdef _MSC_VER -#if GTEST_LINKED_AS_SHARED_LIBRARY +#if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY #define GTEST_API_ __declspec(dllimport) -#elif GTEST_CREATE_SHARED_LIBRARY +#elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY #define GTEST_API_ __declspec(dllexport) #endif #elif GTEST_HAVE_ATTRIBUTE_(visibility) @@ -2351,9 +2367,9 @@ using Any = ::absl::any; } // namespace internal } // namespace testing #else -#ifdef __has_include -#if __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L && \ - (!defined(_MSC_VER) || GTEST_HAS_RTTI) +#if defined(__cpp_lib_any) || (GTEST_INTERNAL_HAS_INCLUDE() && \ + GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L && \ + (!defined(_MSC_VER) || GTEST_HAS_RTTI)) // Otherwise for C++17 and higher use std::any for UniversalPrinter<> // specializations. #define GTEST_INTERNAL_HAS_ANY 1 @@ -2365,8 +2381,7 @@ using Any = ::std::any; } // namespace testing // The case where absl is configured NOT to alias std::any is not // supported. -#endif // __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L -#endif // __has_include +#endif // __cpp_lib_any #endif // GTEST_HAS_ABSL #ifndef GTEST_INTERNAL_HAS_ANY @@ -2386,8 +2401,8 @@ inline ::absl::nullopt_t Nullopt() { return ::absl::nullopt; } } // namespace internal } // namespace testing #else -#ifdef __has_include -#if __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L +#if defined(__cpp_lib_optional) || (GTEST_INTERNAL_HAS_INCLUDE() && \ + GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L) // Otherwise for C++17 and higher use std::optional for UniversalPrinter<> // specializations. #define GTEST_INTERNAL_HAS_OPTIONAL 1 @@ -2401,19 +2416,17 @@ inline ::std::nullopt_t Nullopt() { return ::std::nullopt; } } // namespace testing // The case where absl is configured NOT to alias std::optional is not // supported. -#endif // __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L -#endif // __has_include +#endif // __cpp_lib_optional #endif // GTEST_HAS_ABSL #ifndef GTEST_INTERNAL_HAS_OPTIONAL #define GTEST_INTERNAL_HAS_OPTIONAL 0 #endif -#ifdef __has_include -#if __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L +#if defined(__cpp_lib_span) || (GTEST_INTERNAL_HAS_INCLUDE() && \ + GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L) #define GTEST_INTERNAL_HAS_STD_SPAN 1 -#endif // __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L -#endif // __has_include +#endif // __cpp_lib_span #ifndef GTEST_INTERNAL_HAS_STD_SPAN #define GTEST_INTERNAL_HAS_STD_SPAN 0 @@ -2430,8 +2443,9 @@ using StringView = ::absl::string_view; } // namespace internal } // namespace testing #else -#ifdef __has_include -#if __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L +#if defined(__cpp_lib_string_view) || \ + (GTEST_INTERNAL_HAS_INCLUDE() && \ + GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L) // Otherwise for C++17 and higher use std::string_view for Matcher<> // specializations. #define GTEST_INTERNAL_HAS_STRING_VIEW 1 @@ -2443,9 +2457,7 @@ using StringView = ::std::string_view; } // namespace testing // The case where absl is configured NOT to alias std::string_view is not // supported. -#endif // __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= - // 201703L -#endif // __has_include +#endif // __cpp_lib_string_view #endif // GTEST_HAS_ABSL #ifndef GTEST_INTERNAL_HAS_STRING_VIEW @@ -2464,8 +2476,8 @@ using Variant = ::absl::variant; } // namespace internal } // namespace testing #else -#ifdef __has_include -#if __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L +#if defined(__cpp_lib_variant) || (GTEST_INTERNAL_HAS_INCLUDE() && \ + GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L) // Otherwise for C++17 and higher use std::variant for UniversalPrinter<> // specializations. #define GTEST_INTERNAL_HAS_VARIANT 1 @@ -2477,16 +2489,16 @@ using Variant = ::std::variant; } // namespace internal } // namespace testing // The case where absl is configured NOT to alias std::variant is not supported. -#endif // __has_include() && GTEST_INTERNAL_CPLUSPLUS_LANG >= 201703L -#endif // __has_include +#endif // __cpp_lib_variant #endif // GTEST_HAS_ABSL #ifndef GTEST_INTERNAL_HAS_VARIANT #define GTEST_INTERNAL_HAS_VARIANT 0 #endif -#if defined(GTEST_INTERNAL_CPLUSPLUS_LANG) && \ - GTEST_INTERNAL_CPLUSPLUS_LANG < 201703L +#if (defined(__cpp_constexpr) && !defined(__cpp_inline_variables)) || \ + (defined(GTEST_INTERNAL_CPLUSPLUS_LANG) && \ + GTEST_INTERNAL_CPLUSPLUS_LANG < 201703L) #define GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL 1 #endif diff --git a/deps/googletest/src/gtest-filepath.cc b/deps/googletest/src/gtest-filepath.cc index 513e947f5703ea..902d8c7f64b7c4 100644 --- a/deps/googletest/src/gtest-filepath.cc +++ b/deps/googletest/src/gtest-filepath.cc @@ -336,7 +336,7 @@ bool FilePath::CreateDirectoriesRecursively() const { return false; } - if (pathname_.length() == 0 || this->DirectoryExists()) { + if (pathname_.empty() || this->DirectoryExists()) { return true; } diff --git a/deps/googletest/src/gtest.cc b/deps/googletest/src/gtest.cc index 62dfef664e6836..99b22ed327fd91 100644 --- a/deps/googletest/src/gtest.cc +++ b/deps/googletest/src/gtest.cc @@ -5400,7 +5400,7 @@ void UnitTest::RecordProperty(const std::string& key, int UnitTest::Run() { #ifdef GTEST_HAS_DEATH_TEST const bool in_death_test_child_process = - GTEST_FLAG_GET(internal_run_death_test).length() > 0; + !GTEST_FLAG_GET(internal_run_death_test).empty(); // Google Test implements this protocol for catching that a test // program exits before returning control to Google Test: diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 11fe32de7f0dfc..62a5f524251791 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -15,7 +15,7 @@ This a list of all the dependencies: * [c-ares 1.19.0][] * [cjs-module-lexer 1.2.2][] * [corepack][] -* [googletest d1467f5][] +* [googletest e47544a][] * [histogram 0.11.8][] * [icu-small 73.2][] * [libuv 1.46.0][] @@ -189,7 +189,7 @@ In practical terms, Corepack will let you use Yarn and pnpm without having to install them - just like what currently happens with npm, which is shipped by Node.js by default. -### googletest d1467f5 +### googletest e47544a The [googletest](https://github.com/google/googletest) dependency is Google’s C++ testing and mocking framework. @@ -326,7 +326,7 @@ performance improvements not currently available in standard zlib. [cjs-module-lexer 1.2.2]: #cjs-module-lexer-122 [corepack]: #corepack [dependency-update-action]: ../../../.github/workflows/tools.yml -[googletest d1467f5]: #googletest-d1467f5 +[googletest e47544a]: #googletest-e47544a [histogram 0.11.8]: #histogram-0118 [icu-small 73.2]: #icu-small-732 [libuv 1.46.0]: #libuv-1460 From 924231be2a72db0513dbbb2d8e697e0fad210f1c Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 3 Oct 2023 14:08:30 +0100 Subject: [PATCH 066/232] tools: update lint-md-dependencies - remark-parse@11.0.0 - remark-preset-lint-node@5.0.0 - remark-stringify@11.0.0 - rollup@3.29.4 PR-URL: https://github.com/nodejs/node/pull/49983 Reviewed-By: Luigi Pinca Reviewed-By: Moshe Atlow --- tools/lint-md/lint-md.mjs | 15074 ++++++++++++++++++++---------- tools/lint-md/package-lock.json | 4586 +++++++-- tools/lint-md/package.json | 8 +- 3 files changed, 13905 insertions(+), 5763 deletions(-) diff --git a/tools/lint-md/lint-md.mjs b/tools/lint-md/lint-md.mjs index 102a661a693f87..bdea9c710cfea5 100644 --- a/tools/lint-md/lint-md.mjs +++ b/tools/lint-md/lint-md.mjs @@ -105,6 +105,8 @@ var extend$1 = function extend() { }; var extend$2 = getDefaultExportFromCjs(extend$1); +function ok$B() {} + function isPlainObject(value) { if (typeof value !== 'object' || value === null) { return false; @@ -193,28 +195,28 @@ function wrap(middleware, callback) { } } -function stringifyPosition$3(value) { +function stringifyPosition$2(value) { if (!value || typeof value !== 'object') { return '' } if ('position' in value || 'type' in value) { - return position$3(value.position) + return position$2(value.position) } if ('start' in value || 'end' in value) { - return position$3(value) + return position$2(value) } if ('line' in value || 'column' in value) { - return point$5(value) + return point$4(value) } return '' } -function point$5(point) { - return index$3(point && point.line) + ':' + index$3(point && point.column) +function point$4(point) { + return index$2(point && point.line) + ':' + index$2(point && point.column) } -function position$3(pos) { - return point$5(pos && pos.start) + '-' + point$5(pos && pos.end) +function position$2(pos) { + return point$4(pos && pos.start) + '-' + point$4(pos && pos.end) } -function index$3(value) { +function index$2(value) { return value && typeof value === 'number' ? value : 1 } @@ -285,7 +287,7 @@ let VFileMessage$1 = class VFileMessage extends Error { this.file; this.message = reason; this.line = start ? start.line : undefined; - this.name = stringifyPosition$3(options.place) || '1:1'; + this.name = stringifyPosition$2(options.place) || '1:1'; this.place = options.place || undefined; this.reason = this.message; this.ruleId = options.ruleId || undefined; @@ -814,19 +816,19 @@ function isUint8Array$2(value) { ) } -const emptyOptions = {}; -function toString(value, options) { - const settings = options || emptyOptions; +const emptyOptions$3 = {}; +function toString$2(value, options) { + const settings = options || emptyOptions$3; const includeImageAlt = typeof settings.includeImageAlt === 'boolean' ? settings.includeImageAlt : true; const includeHtml = typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true; - return one(value, includeImageAlt, includeHtml) + return one$2(value, includeImageAlt, includeHtml) } -function one(value, includeImageAlt, includeHtml) { - if (node(value)) { +function one$2(value, includeImageAlt, includeHtml) { + if (node$2(value)) { if ('value' in value) { return value.type === 'html' && !includeHtml ? '' : value.value } @@ -834,802 +836,26 @@ function one(value, includeImageAlt, includeHtml) { return value.alt } if ('children' in value) { - return all(value.children, includeImageAlt, includeHtml) + return all$2(value.children, includeImageAlt, includeHtml) } } if (Array.isArray(value)) { - return all(value, includeImageAlt, includeHtml) + return all$2(value, includeImageAlt, includeHtml) } return '' } -function all(values, includeImageAlt, includeHtml) { +function all$2(values, includeImageAlt, includeHtml) { const result = []; let index = -1; while (++index < values.length) { - result[index] = one(values[index], includeImageAlt, includeHtml); + result[index] = one$2(values[index], includeImageAlt, includeHtml); } return result.join('') } -function node(value) { +function node$2(value) { return Boolean(value && typeof value === 'object') } -function splice(list, start, remove, items) { - const end = list.length; - let chunkStart = 0; - let parameters; - if (start < 0) { - start = -start > end ? 0 : end + start; - } else { - start = start > end ? end : start; - } - remove = remove > 0 ? remove : 0; - if (items.length < 10000) { - parameters = Array.from(items); - parameters.unshift(start, remove); - list.splice(...parameters); - } else { - if (remove) list.splice(start, remove); - while (chunkStart < items.length) { - parameters = items.slice(chunkStart, chunkStart + 10000); - parameters.unshift(start, 0); - list.splice(...parameters); - chunkStart += 10000; - start += 10000; - } - } -} -function push(list, items) { - if (list.length > 0) { - splice(list, list.length, 0, items); - return list - } - return items -} - -const hasOwnProperty = {}.hasOwnProperty; -function combineExtensions(extensions) { - const all = {}; - let index = -1; - while (++index < extensions.length) { - syntaxExtension(all, extensions[index]); - } - return all -} -function syntaxExtension(all, extension) { - let hook; - for (hook in extension) { - const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; - const left = maybe || (all[hook] = {}); - const right = extension[hook]; - let code; - if (right) { - for (code in right) { - if (!hasOwnProperty.call(left, code)) left[code] = []; - const value = right[code]; - constructs( - left[code], - Array.isArray(value) ? value : value ? [value] : [] - ); - } - } - } -} -function constructs(existing, list) { - let index = -1; - const before = []; - while (++index < list.length) { -(list[index].add === 'after' ? existing : before).push(list[index]); - } - splice(existing, 0, 0, before); -} - -const unicodePunctuationRegex = - /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; - -const asciiAlpha = regexCheck(/[A-Za-z]/); -const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); -const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); -function asciiControl(code) { - return ( - code !== null && (code < 32 || code === 127) - ) -} -const asciiDigit = regexCheck(/\d/); -const asciiHexDigit = regexCheck(/[\dA-Fa-f]/); -const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); -function markdownLineEnding(code) { - return code !== null && code < -2 -} -function markdownLineEndingOrSpace(code) { - return code !== null && (code < 0 || code === 32) -} -function markdownSpace(code) { - return code === -2 || code === -1 || code === 32 -} -const unicodePunctuation = regexCheck(unicodePunctuationRegex); -const unicodeWhitespace = regexCheck(/\s/); -function regexCheck(regex) { - return check - function check(code) { - return code !== null && regex.test(String.fromCharCode(code)) - } -} - -function factorySpace(effects, ok, type, max) { - const limit = max ? max - 1 : Number.POSITIVE_INFINITY; - let size = 0; - return start - function start(code) { - if (markdownSpace(code)) { - effects.enter(type); - return prefix(code) - } - return ok(code) - } - function prefix(code) { - if (markdownSpace(code) && size++ < limit) { - effects.consume(code); - return prefix - } - effects.exit(type); - return ok(code) - } -} - -const content$1 = { - tokenize: initializeContent -}; -function initializeContent(effects) { - const contentStart = effects.attempt( - this.parser.constructs.contentInitial, - afterContentStartConstruct, - paragraphInitial - ); - let previous; - return contentStart - function afterContentStartConstruct(code) { - if (code === null) { - effects.consume(code); - return - } - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return factorySpace(effects, contentStart, 'linePrefix') - } - function paragraphInitial(code) { - effects.enter('paragraph'); - return lineStart(code) - } - function lineStart(code) { - const token = effects.enter('chunkText', { - contentType: 'text', - previous - }); - if (previous) { - previous.next = token; - } - previous = token; - return data(code) - } - function data(code) { - if (code === null) { - effects.exit('chunkText'); - effects.exit('paragraph'); - effects.consume(code); - return - } - if (markdownLineEnding(code)) { - effects.consume(code); - effects.exit('chunkText'); - return lineStart - } - effects.consume(code); - return data - } -} - -const document$1 = { - tokenize: initializeDocument -}; -const containerConstruct = { - tokenize: tokenizeContainer -}; -function initializeDocument(effects) { - const self = this; - const stack = []; - let continued = 0; - let childFlow; - let childToken; - let lineStartOffset; - return start - function start(code) { - if (continued < stack.length) { - const item = stack[continued]; - self.containerState = item[1]; - return effects.attempt( - item[0].continuation, - documentContinue, - checkNewContainers - )(code) - } - return checkNewContainers(code) - } - function documentContinue(code) { - continued++; - if (self.containerState._closeFlow) { - self.containerState._closeFlow = undefined; - if (childFlow) { - closeFlow(); - } - const indexBeforeExits = self.events.length; - let indexBeforeFlow = indexBeforeExits; - let point; - while (indexBeforeFlow--) { - if ( - self.events[indexBeforeFlow][0] === 'exit' && - self.events[indexBeforeFlow][1].type === 'chunkFlow' - ) { - point = self.events[indexBeforeFlow][1].end; - break - } - } - exitContainers(continued); - let index = indexBeforeExits; - while (index < self.events.length) { - self.events[index][1].end = Object.assign({}, point); - index++; - } - splice( - self.events, - indexBeforeFlow + 1, - 0, - self.events.slice(indexBeforeExits) - ); - self.events.length = index; - return checkNewContainers(code) - } - return start(code) - } - function checkNewContainers(code) { - if (continued === stack.length) { - if (!childFlow) { - return documentContinued(code) - } - if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { - return flowStart(code) - } - self.interrupt = Boolean( - childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack - ); - } - self.containerState = {}; - return effects.check( - containerConstruct, - thereIsANewContainer, - thereIsNoNewContainer - )(code) - } - function thereIsANewContainer(code) { - if (childFlow) closeFlow(); - exitContainers(continued); - return documentContinued(code) - } - function thereIsNoNewContainer(code) { - self.parser.lazy[self.now().line] = continued !== stack.length; - lineStartOffset = self.now().offset; - return flowStart(code) - } - function documentContinued(code) { - self.containerState = {}; - return effects.attempt( - containerConstruct, - containerContinue, - flowStart - )(code) - } - function containerContinue(code) { - continued++; - stack.push([self.currentConstruct, self.containerState]); - return documentContinued(code) - } - function flowStart(code) { - if (code === null) { - if (childFlow) closeFlow(); - exitContainers(0); - effects.consume(code); - return - } - childFlow = childFlow || self.parser.flow(self.now()); - effects.enter('chunkFlow', { - contentType: 'flow', - previous: childToken, - _tokenizer: childFlow - }); - return flowContinue(code) - } - function flowContinue(code) { - if (code === null) { - writeToChild(effects.exit('chunkFlow'), true); - exitContainers(0); - effects.consume(code); - return - } - if (markdownLineEnding(code)) { - effects.consume(code); - writeToChild(effects.exit('chunkFlow')); - continued = 0; - self.interrupt = undefined; - return start - } - effects.consume(code); - return flowContinue - } - function writeToChild(token, eof) { - const stream = self.sliceStream(token); - if (eof) stream.push(null); - token.previous = childToken; - if (childToken) childToken.next = token; - childToken = token; - childFlow.defineSkip(token.start); - childFlow.write(stream); - if (self.parser.lazy[token.start.line]) { - let index = childFlow.events.length; - while (index--) { - if ( - childFlow.events[index][1].start.offset < lineStartOffset && - (!childFlow.events[index][1].end || - childFlow.events[index][1].end.offset > lineStartOffset) - ) { - return - } - } - const indexBeforeExits = self.events.length; - let indexBeforeFlow = indexBeforeExits; - let seen; - let point; - while (indexBeforeFlow--) { - if ( - self.events[indexBeforeFlow][0] === 'exit' && - self.events[indexBeforeFlow][1].type === 'chunkFlow' - ) { - if (seen) { - point = self.events[indexBeforeFlow][1].end; - break - } - seen = true; - } - } - exitContainers(continued); - index = indexBeforeExits; - while (index < self.events.length) { - self.events[index][1].end = Object.assign({}, point); - index++; - } - splice( - self.events, - indexBeforeFlow + 1, - 0, - self.events.slice(indexBeforeExits) - ); - self.events.length = index; - } - } - function exitContainers(size) { - let index = stack.length; - while (index-- > size) { - const entry = stack[index]; - self.containerState = entry[1]; - entry[0].exit.call(self, effects); - } - stack.length = size; - } - function closeFlow() { - childFlow.write([null]); - childToken = undefined; - childFlow = undefined; - self.containerState._closeFlow = undefined; - } -} -function tokenizeContainer(effects, ok, nok) { - return factorySpace( - effects, - effects.attempt(this.parser.constructs.document, ok, nok), - 'linePrefix', - this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 - ) -} - -function classifyCharacter(code) { - if ( - code === null || - markdownLineEndingOrSpace(code) || - unicodeWhitespace(code) - ) { - return 1 - } - if (unicodePunctuation(code)) { - return 2 - } -} - -function resolveAll(constructs, events, context) { - const called = []; - let index = -1; - while (++index < constructs.length) { - const resolve = constructs[index].resolveAll; - if (resolve && !called.includes(resolve)) { - events = resolve(events, context); - called.push(resolve); - } - } - return events -} - -const attention = { - name: 'attention', - tokenize: tokenizeAttention, - resolveAll: resolveAllAttention -}; -function resolveAllAttention(events, context) { - let index = -1; - let open; - let group; - let text; - let openingSequence; - let closingSequence; - let use; - let nextEvents; - let offset; - while (++index < events.length) { - if ( - events[index][0] === 'enter' && - events[index][1].type === 'attentionSequence' && - events[index][1]._close - ) { - open = index; - while (open--) { - if ( - events[open][0] === 'exit' && - events[open][1].type === 'attentionSequence' && - events[open][1]._open && - context.sliceSerialize(events[open][1]).charCodeAt(0) === - context.sliceSerialize(events[index][1]).charCodeAt(0) - ) { - if ( - (events[open][1]._close || events[index][1]._open) && - (events[index][1].end.offset - events[index][1].start.offset) % 3 && - !( - (events[open][1].end.offset - - events[open][1].start.offset + - events[index][1].end.offset - - events[index][1].start.offset) % - 3 - ) - ) { - continue - } - use = - events[open][1].end.offset - events[open][1].start.offset > 1 && - events[index][1].end.offset - events[index][1].start.offset > 1 - ? 2 - : 1; - const start = Object.assign({}, events[open][1].end); - const end = Object.assign({}, events[index][1].start); - movePoint(start, -use); - movePoint(end, use); - openingSequence = { - type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start, - end: Object.assign({}, events[open][1].end) - }; - closingSequence = { - type: use > 1 ? 'strongSequence' : 'emphasisSequence', - start: Object.assign({}, events[index][1].start), - end - }; - text = { - type: use > 1 ? 'strongText' : 'emphasisText', - start: Object.assign({}, events[open][1].end), - end: Object.assign({}, events[index][1].start) - }; - group = { - type: use > 1 ? 'strong' : 'emphasis', - start: Object.assign({}, openingSequence.start), - end: Object.assign({}, closingSequence.end) - }; - events[open][1].end = Object.assign({}, openingSequence.start); - events[index][1].start = Object.assign({}, closingSequence.end); - nextEvents = []; - if (events[open][1].end.offset - events[open][1].start.offset) { - nextEvents = push(nextEvents, [ - ['enter', events[open][1], context], - ['exit', events[open][1], context] - ]); - } - nextEvents = push(nextEvents, [ - ['enter', group, context], - ['enter', openingSequence, context], - ['exit', openingSequence, context], - ['enter', text, context] - ]); - nextEvents = push( - nextEvents, - resolveAll( - context.parser.constructs.insideSpan.null, - events.slice(open + 1, index), - context - ) - ); - nextEvents = push(nextEvents, [ - ['exit', text, context], - ['enter', closingSequence, context], - ['exit', closingSequence, context], - ['exit', group, context] - ]); - if (events[index][1].end.offset - events[index][1].start.offset) { - offset = 2; - nextEvents = push(nextEvents, [ - ['enter', events[index][1], context], - ['exit', events[index][1], context] - ]); - } else { - offset = 0; - } - splice(events, open - 1, index - open + 3, nextEvents); - index = open + nextEvents.length - offset - 2; - break - } - } - } - } - index = -1; - while (++index < events.length) { - if (events[index][1].type === 'attentionSequence') { - events[index][1].type = 'data'; - } - } - return events -} -function tokenizeAttention(effects, ok) { - const attentionMarkers = this.parser.constructs.attentionMarkers.null; - const previous = this.previous; - const before = classifyCharacter(previous); - let marker; - return start - function start(code) { - marker = code; - effects.enter('attentionSequence'); - return inside(code) - } - function inside(code) { - if (code === marker) { - effects.consume(code); - return inside - } - const token = effects.exit('attentionSequence'); - const after = classifyCharacter(code); - const open = - !after || (after === 2 && before) || attentionMarkers.includes(code); - const close = - !before || (before === 2 && after) || attentionMarkers.includes(previous); - token._open = Boolean(marker === 42 ? open : open && (before || !close)); - token._close = Boolean(marker === 42 ? close : close && (after || !open)); - return ok(code) - } -} -function movePoint(point, offset) { - point.column += offset; - point.offset += offset; - point._bufferIndex += offset; -} - -const autolink = { - name: 'autolink', - tokenize: tokenizeAutolink -}; -function tokenizeAutolink(effects, ok, nok) { - let size = 0; - return start - function start(code) { - effects.enter('autolink'); - effects.enter('autolinkMarker'); - effects.consume(code); - effects.exit('autolinkMarker'); - effects.enter('autolinkProtocol'); - return open - } - function open(code) { - if (asciiAlpha(code)) { - effects.consume(code); - return schemeOrEmailAtext - } - return emailAtext(code) - } - function schemeOrEmailAtext(code) { - if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) { - size = 1; - return schemeInsideOrEmailAtext(code) - } - return emailAtext(code) - } - function schemeInsideOrEmailAtext(code) { - if (code === 58) { - effects.consume(code); - size = 0; - return urlInside - } - if ( - (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && - size++ < 32 - ) { - effects.consume(code); - return schemeInsideOrEmailAtext - } - size = 0; - return emailAtext(code) - } - function urlInside(code) { - if (code === 62) { - effects.exit('autolinkProtocol'); - effects.enter('autolinkMarker'); - effects.consume(code); - effects.exit('autolinkMarker'); - effects.exit('autolink'); - return ok - } - if (code === null || code === 32 || code === 60 || asciiControl(code)) { - return nok(code) - } - effects.consume(code); - return urlInside - } - function emailAtext(code) { - if (code === 64) { - effects.consume(code); - return emailAtSignOrDot - } - if (asciiAtext(code)) { - effects.consume(code); - return emailAtext - } - return nok(code) - } - function emailAtSignOrDot(code) { - return asciiAlphanumeric(code) ? emailLabel(code) : nok(code) - } - function emailLabel(code) { - if (code === 46) { - effects.consume(code); - size = 0; - return emailAtSignOrDot - } - if (code === 62) { - effects.exit('autolinkProtocol').type = 'autolinkEmail'; - effects.enter('autolinkMarker'); - effects.consume(code); - effects.exit('autolinkMarker'); - effects.exit('autolink'); - return ok - } - return emailValue(code) - } - function emailValue(code) { - if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) { - const next = code === 45 ? emailValue : emailLabel; - effects.consume(code); - return next - } - return nok(code) - } -} - -const blankLine = { - tokenize: tokenizeBlankLine, - partial: true -}; -function tokenizeBlankLine(effects, ok, nok) { - return start - function start(code) { - return markdownSpace(code) - ? factorySpace(effects, after, 'linePrefix')(code) - : after(code) - } - function after(code) { - return code === null || markdownLineEnding(code) ? ok(code) : nok(code) - } -} - -const blockQuote = { - name: 'blockQuote', - tokenize: tokenizeBlockQuoteStart, - continuation: { - tokenize: tokenizeBlockQuoteContinuation - }, - exit: exit$1 -}; -function tokenizeBlockQuoteStart(effects, ok, nok) { - const self = this; - return start - function start(code) { - if (code === 62) { - const state = self.containerState; - if (!state.open) { - effects.enter('blockQuote', { - _container: true - }); - state.open = true; - } - effects.enter('blockQuotePrefix'); - effects.enter('blockQuoteMarker'); - effects.consume(code); - effects.exit('blockQuoteMarker'); - return after - } - return nok(code) - } - function after(code) { - if (markdownSpace(code)) { - effects.enter('blockQuotePrefixWhitespace'); - effects.consume(code); - effects.exit('blockQuotePrefixWhitespace'); - effects.exit('blockQuotePrefix'); - return ok - } - effects.exit('blockQuotePrefix'); - return ok(code) - } -} -function tokenizeBlockQuoteContinuation(effects, ok, nok) { - const self = this; - return contStart - function contStart(code) { - if (markdownSpace(code)) { - return factorySpace( - effects, - contBefore, - 'linePrefix', - self.parser.constructs.disable.null.includes('codeIndented') - ? undefined - : 4 - )(code) - } - return contBefore(code) - } - function contBefore(code) { - return effects.attempt(blockQuote, ok, nok)(code) - } -} -function exit$1(effects) { - effects.exit('blockQuote'); -} - -const characterEscape = { - name: 'characterEscape', - tokenize: tokenizeCharacterEscape -}; -function tokenizeCharacterEscape(effects, ok, nok) { - return start - function start(code) { - effects.enter('characterEscape'); - effects.enter('escapeMarker'); - effects.consume(code); - effects.exit('escapeMarker'); - return inside - } - function inside(code) { - if (asciiPunctuation(code)) { - effects.enter('characterEscapeValue'); - effects.consume(code); - effects.exit('characterEscapeValue'); - effects.exit('characterEscape'); - return ok - } - return nok(code) - } -} - const characterEntities = { AElig: 'Æ', AMP: '&', @@ -3758,9 +2984,813 @@ const characterEntities = { zwnj: '‌' }; -const own$5 = {}.hasOwnProperty; -function decodeNamedCharacterReference(value) { - return own$5.call(characterEntities, value) ? characterEntities[value] : false +const own$5 = {}.hasOwnProperty; +function decodeNamedCharacterReference(value) { + return own$5.call(characterEntities, value) ? characterEntities[value] : false +} + +function splice(list, start, remove, items) { + const end = list.length; + let chunkStart = 0; + let parameters; + if (start < 0) { + start = -start > end ? 0 : end + start; + } else { + start = start > end ? end : start; + } + remove = remove > 0 ? remove : 0; + if (items.length < 10000) { + parameters = Array.from(items); + parameters.unshift(start, remove); + list.splice(...parameters); + } else { + if (remove) list.splice(start, remove); + while (chunkStart < items.length) { + parameters = items.slice(chunkStart, chunkStart + 10000); + parameters.unshift(start, 0); + list.splice(...parameters); + chunkStart += 10000; + start += 10000; + } + } +} +function push(list, items) { + if (list.length > 0) { + splice(list, list.length, 0, items); + return list + } + return items +} + +const hasOwnProperty = {}.hasOwnProperty; +function combineExtensions(extensions) { + const all = {}; + let index = -1; + while (++index < extensions.length) { + syntaxExtension(all, extensions[index]); + } + return all +} +function syntaxExtension(all, extension) { + let hook; + for (hook in extension) { + const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; + const left = maybe || (all[hook] = {}); + const right = extension[hook]; + let code; + if (right) { + for (code in right) { + if (!hasOwnProperty.call(left, code)) left[code] = []; + const value = right[code]; + constructs( + left[code], + Array.isArray(value) ? value : value ? [value] : [] + ); + } + } + } +} +function constructs(existing, list) { + let index = -1; + const before = []; + while (++index < list.length) { +(list[index].add === 'after' ? existing : before).push(list[index]); + } + splice(existing, 0, 0, before); +} + +function decodeNumericCharacterReference(value, base) { + const code = Number.parseInt(value, base); + if ( + code < 9 || + code === 11 || + (code > 13 && code < 32) || + (code > 126 && code < 160) || + (code > 55_295 && code < 57_344) || + (code > 64_975 && code < 65_008) || + (code & 65_535) === 65_535 || + (code & 65_535) === 65_534 || + code > 1_114_111 + ) { + return '\uFFFD' + } + return String.fromCharCode(code) +} + +function normalizeIdentifier$1(value) { + return ( + value + .replace(/[\t\n\r ]+/g, ' ') + .replace(/^ | $/g, '') + .toLowerCase() + .toUpperCase() + ) +} + +const unicodePunctuationInternal = regexCheck(/\p{P}/u); +const asciiAlpha = regexCheck(/[A-Za-z]/); +const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); +const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); +function asciiControl(code) { + return ( + code !== null && (code < 32 || code === 127) + ) +} +const asciiDigit = regexCheck(/\d/); +const asciiHexDigit = regexCheck(/[\dA-Fa-f]/); +const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); +function markdownLineEnding(code) { + return code !== null && code < -2 +} +function markdownLineEndingOrSpace(code) { + return code !== null && (code < 0 || code === 32) +} +function markdownSpace(code) { + return code === -2 || code === -1 || code === 32 +} +function unicodePunctuation(code) { + return asciiPunctuation(code) || unicodePunctuationInternal(code) +} +const unicodeWhitespace = regexCheck(/\s/); +function regexCheck(regex) { + return check + function check(code) { + return code !== null && code > -1 && regex.test(String.fromCharCode(code)) + } +} + +function factorySpace(effects, ok, type, max) { + const limit = max ? max - 1 : Number.POSITIVE_INFINITY; + let size = 0; + return start + function start(code) { + if (markdownSpace(code)) { + effects.enter(type); + return prefix(code) + } + return ok(code) + } + function prefix(code) { + if (markdownSpace(code) && size++ < limit) { + effects.consume(code); + return prefix + } + effects.exit(type); + return ok(code) + } +} + +const content$1 = { + tokenize: initializeContent +}; +function initializeContent(effects) { + const contentStart = effects.attempt( + this.parser.constructs.contentInitial, + afterContentStartConstruct, + paragraphInitial + ); + let previous; + return contentStart + function afterContentStartConstruct(code) { + if (code === null) { + effects.consume(code); + return + } + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return factorySpace(effects, contentStart, 'linePrefix') + } + function paragraphInitial(code) { + effects.enter('paragraph'); + return lineStart(code) + } + function lineStart(code) { + const token = effects.enter('chunkText', { + contentType: 'text', + previous + }); + if (previous) { + previous.next = token; + } + previous = token; + return data(code) + } + function data(code) { + if (code === null) { + effects.exit('chunkText'); + effects.exit('paragraph'); + effects.consume(code); + return + } + if (markdownLineEnding(code)) { + effects.consume(code); + effects.exit('chunkText'); + return lineStart + } + effects.consume(code); + return data + } +} + +const document$1 = { + tokenize: initializeDocument +}; +const containerConstruct = { + tokenize: tokenizeContainer +}; +function initializeDocument(effects) { + const self = this; + const stack = []; + let continued = 0; + let childFlow; + let childToken; + let lineStartOffset; + return start + function start(code) { + if (continued < stack.length) { + const item = stack[continued]; + self.containerState = item[1]; + return effects.attempt( + item[0].continuation, + documentContinue, + checkNewContainers + )(code) + } + return checkNewContainers(code) + } + function documentContinue(code) { + continued++; + if (self.containerState._closeFlow) { + self.containerState._closeFlow = undefined; + if (childFlow) { + closeFlow(); + } + const indexBeforeExits = self.events.length; + let indexBeforeFlow = indexBeforeExits; + let point; + while (indexBeforeFlow--) { + if ( + self.events[indexBeforeFlow][0] === 'exit' && + self.events[indexBeforeFlow][1].type === 'chunkFlow' + ) { + point = self.events[indexBeforeFlow][1].end; + break + } + } + exitContainers(continued); + let index = indexBeforeExits; + while (index < self.events.length) { + self.events[index][1].end = Object.assign({}, point); + index++; + } + splice( + self.events, + indexBeforeFlow + 1, + 0, + self.events.slice(indexBeforeExits) + ); + self.events.length = index; + return checkNewContainers(code) + } + return start(code) + } + function checkNewContainers(code) { + if (continued === stack.length) { + if (!childFlow) { + return documentContinued(code) + } + if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { + return flowStart(code) + } + self.interrupt = Boolean( + childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack + ); + } + self.containerState = {}; + return effects.check( + containerConstruct, + thereIsANewContainer, + thereIsNoNewContainer + )(code) + } + function thereIsANewContainer(code) { + if (childFlow) closeFlow(); + exitContainers(continued); + return documentContinued(code) + } + function thereIsNoNewContainer(code) { + self.parser.lazy[self.now().line] = continued !== stack.length; + lineStartOffset = self.now().offset; + return flowStart(code) + } + function documentContinued(code) { + self.containerState = {}; + return effects.attempt( + containerConstruct, + containerContinue, + flowStart + )(code) + } + function containerContinue(code) { + continued++; + stack.push([self.currentConstruct, self.containerState]); + return documentContinued(code) + } + function flowStart(code) { + if (code === null) { + if (childFlow) closeFlow(); + exitContainers(0); + effects.consume(code); + return + } + childFlow = childFlow || self.parser.flow(self.now()); + effects.enter('chunkFlow', { + contentType: 'flow', + previous: childToken, + _tokenizer: childFlow + }); + return flowContinue(code) + } + function flowContinue(code) { + if (code === null) { + writeToChild(effects.exit('chunkFlow'), true); + exitContainers(0); + effects.consume(code); + return + } + if (markdownLineEnding(code)) { + effects.consume(code); + writeToChild(effects.exit('chunkFlow')); + continued = 0; + self.interrupt = undefined; + return start + } + effects.consume(code); + return flowContinue + } + function writeToChild(token, eof) { + const stream = self.sliceStream(token); + if (eof) stream.push(null); + token.previous = childToken; + if (childToken) childToken.next = token; + childToken = token; + childFlow.defineSkip(token.start); + childFlow.write(stream); + if (self.parser.lazy[token.start.line]) { + let index = childFlow.events.length; + while (index--) { + if ( + childFlow.events[index][1].start.offset < lineStartOffset && + (!childFlow.events[index][1].end || + childFlow.events[index][1].end.offset > lineStartOffset) + ) { + return + } + } + const indexBeforeExits = self.events.length; + let indexBeforeFlow = indexBeforeExits; + let seen; + let point; + while (indexBeforeFlow--) { + if ( + self.events[indexBeforeFlow][0] === 'exit' && + self.events[indexBeforeFlow][1].type === 'chunkFlow' + ) { + if (seen) { + point = self.events[indexBeforeFlow][1].end; + break + } + seen = true; + } + } + exitContainers(continued); + index = indexBeforeExits; + while (index < self.events.length) { + self.events[index][1].end = Object.assign({}, point); + index++; + } + splice( + self.events, + indexBeforeFlow + 1, + 0, + self.events.slice(indexBeforeExits) + ); + self.events.length = index; + } + } + function exitContainers(size) { + let index = stack.length; + while (index-- > size) { + const entry = stack[index]; + self.containerState = entry[1]; + entry[0].exit.call(self, effects); + } + stack.length = size; + } + function closeFlow() { + childFlow.write([null]); + childToken = undefined; + childFlow = undefined; + self.containerState._closeFlow = undefined; + } +} +function tokenizeContainer(effects, ok, nok) { + return factorySpace( + effects, + effects.attempt(this.parser.constructs.document, ok, nok), + 'linePrefix', + this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + ) +} + +function classifyCharacter(code) { + if ( + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) + ) { + return 1 + } + if (unicodePunctuation(code)) { + return 2 + } +} + +function resolveAll(constructs, events, context) { + const called = []; + let index = -1; + while (++index < constructs.length) { + const resolve = constructs[index].resolveAll; + if (resolve && !called.includes(resolve)) { + events = resolve(events, context); + called.push(resolve); + } + } + return events +} + +const attention = { + name: 'attention', + tokenize: tokenizeAttention, + resolveAll: resolveAllAttention +}; +function resolveAllAttention(events, context) { + let index = -1; + let open; + let group; + let text; + let openingSequence; + let closingSequence; + let use; + let nextEvents; + let offset; + while (++index < events.length) { + if ( + events[index][0] === 'enter' && + events[index][1].type === 'attentionSequence' && + events[index][1]._close + ) { + open = index; + while (open--) { + if ( + events[open][0] === 'exit' && + events[open][1].type === 'attentionSequence' && + events[open][1]._open && + context.sliceSerialize(events[open][1]).charCodeAt(0) === + context.sliceSerialize(events[index][1]).charCodeAt(0) + ) { + if ( + (events[open][1]._close || events[index][1]._open) && + (events[index][1].end.offset - events[index][1].start.offset) % 3 && + !( + (events[open][1].end.offset - + events[open][1].start.offset + + events[index][1].end.offset - + events[index][1].start.offset) % + 3 + ) + ) { + continue + } + use = + events[open][1].end.offset - events[open][1].start.offset > 1 && + events[index][1].end.offset - events[index][1].start.offset > 1 + ? 2 + : 1; + const start = Object.assign({}, events[open][1].end); + const end = Object.assign({}, events[index][1].start); + movePoint(start, -use); + movePoint(end, use); + openingSequence = { + type: use > 1 ? 'strongSequence' : 'emphasisSequence', + start, + end: Object.assign({}, events[open][1].end) + }; + closingSequence = { + type: use > 1 ? 'strongSequence' : 'emphasisSequence', + start: Object.assign({}, events[index][1].start), + end + }; + text = { + type: use > 1 ? 'strongText' : 'emphasisText', + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index][1].start) + }; + group = { + type: use > 1 ? 'strong' : 'emphasis', + start: Object.assign({}, openingSequence.start), + end: Object.assign({}, closingSequence.end) + }; + events[open][1].end = Object.assign({}, openingSequence.start); + events[index][1].start = Object.assign({}, closingSequence.end); + nextEvents = []; + if (events[open][1].end.offset - events[open][1].start.offset) { + nextEvents = push(nextEvents, [ + ['enter', events[open][1], context], + ['exit', events[open][1], context] + ]); + } + nextEvents = push(nextEvents, [ + ['enter', group, context], + ['enter', openingSequence, context], + ['exit', openingSequence, context], + ['enter', text, context] + ]); + nextEvents = push( + nextEvents, + resolveAll( + context.parser.constructs.insideSpan.null, + events.slice(open + 1, index), + context + ) + ); + nextEvents = push(nextEvents, [ + ['exit', text, context], + ['enter', closingSequence, context], + ['exit', closingSequence, context], + ['exit', group, context] + ]); + if (events[index][1].end.offset - events[index][1].start.offset) { + offset = 2; + nextEvents = push(nextEvents, [ + ['enter', events[index][1], context], + ['exit', events[index][1], context] + ]); + } else { + offset = 0; + } + splice(events, open - 1, index - open + 3, nextEvents); + index = open + nextEvents.length - offset - 2; + break + } + } + } + } + index = -1; + while (++index < events.length) { + if (events[index][1].type === 'attentionSequence') { + events[index][1].type = 'data'; + } + } + return events +} +function tokenizeAttention(effects, ok) { + const attentionMarkers = this.parser.constructs.attentionMarkers.null; + const previous = this.previous; + const before = classifyCharacter(previous); + let marker; + return start + function start(code) { + marker = code; + effects.enter('attentionSequence'); + return inside(code) + } + function inside(code) { + if (code === marker) { + effects.consume(code); + return inside + } + const token = effects.exit('attentionSequence'); + const after = classifyCharacter(code); + const open = + !after || (after === 2 && before) || attentionMarkers.includes(code); + const close = + !before || (before === 2 && after) || attentionMarkers.includes(previous); + token._open = Boolean(marker === 42 ? open : open && (before || !close)); + token._close = Boolean(marker === 42 ? close : close && (after || !open)); + return ok(code) + } +} +function movePoint(point, offset) { + point.column += offset; + point.offset += offset; + point._bufferIndex += offset; +} + +const autolink = { + name: 'autolink', + tokenize: tokenizeAutolink +}; +function tokenizeAutolink(effects, ok, nok) { + let size = 0; + return start + function start(code) { + effects.enter('autolink'); + effects.enter('autolinkMarker'); + effects.consume(code); + effects.exit('autolinkMarker'); + effects.enter('autolinkProtocol'); + return open + } + function open(code) { + if (asciiAlpha(code)) { + effects.consume(code); + return schemeOrEmailAtext + } + return emailAtext(code) + } + function schemeOrEmailAtext(code) { + if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) { + size = 1; + return schemeInsideOrEmailAtext(code) + } + return emailAtext(code) + } + function schemeInsideOrEmailAtext(code) { + if (code === 58) { + effects.consume(code); + size = 0; + return urlInside + } + if ( + (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && + size++ < 32 + ) { + effects.consume(code); + return schemeInsideOrEmailAtext + } + size = 0; + return emailAtext(code) + } + function urlInside(code) { + if (code === 62) { + effects.exit('autolinkProtocol'); + effects.enter('autolinkMarker'); + effects.consume(code); + effects.exit('autolinkMarker'); + effects.exit('autolink'); + return ok + } + if (code === null || code === 32 || code === 60 || asciiControl(code)) { + return nok(code) + } + effects.consume(code); + return urlInside + } + function emailAtext(code) { + if (code === 64) { + effects.consume(code); + return emailAtSignOrDot + } + if (asciiAtext(code)) { + effects.consume(code); + return emailAtext + } + return nok(code) + } + function emailAtSignOrDot(code) { + return asciiAlphanumeric(code) ? emailLabel(code) : nok(code) + } + function emailLabel(code) { + if (code === 46) { + effects.consume(code); + size = 0; + return emailAtSignOrDot + } + if (code === 62) { + effects.exit('autolinkProtocol').type = 'autolinkEmail'; + effects.enter('autolinkMarker'); + effects.consume(code); + effects.exit('autolinkMarker'); + effects.exit('autolink'); + return ok + } + return emailValue(code) + } + function emailValue(code) { + if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) { + const next = code === 45 ? emailValue : emailLabel; + effects.consume(code); + return next + } + return nok(code) + } +} + +const blankLine = { + tokenize: tokenizeBlankLine, + partial: true +}; +function tokenizeBlankLine(effects, ok, nok) { + return start + function start(code) { + return markdownSpace(code) + ? factorySpace(effects, after, 'linePrefix')(code) + : after(code) + } + function after(code) { + return code === null || markdownLineEnding(code) ? ok(code) : nok(code) + } +} + +const blockQuote = { + name: 'blockQuote', + tokenize: tokenizeBlockQuoteStart, + continuation: { + tokenize: tokenizeBlockQuoteContinuation + }, + exit: exit$1 +}; +function tokenizeBlockQuoteStart(effects, ok, nok) { + const self = this; + return start + function start(code) { + if (code === 62) { + const state = self.containerState; + if (!state.open) { + effects.enter('blockQuote', { + _container: true + }); + state.open = true; + } + effects.enter('blockQuotePrefix'); + effects.enter('blockQuoteMarker'); + effects.consume(code); + effects.exit('blockQuoteMarker'); + return after + } + return nok(code) + } + function after(code) { + if (markdownSpace(code)) { + effects.enter('blockQuotePrefixWhitespace'); + effects.consume(code); + effects.exit('blockQuotePrefixWhitespace'); + effects.exit('blockQuotePrefix'); + return ok + } + effects.exit('blockQuotePrefix'); + return ok(code) + } +} +function tokenizeBlockQuoteContinuation(effects, ok, nok) { + const self = this; + return contStart + function contStart(code) { + if (markdownSpace(code)) { + return factorySpace( + effects, + contBefore, + 'linePrefix', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + )(code) + } + return contBefore(code) + } + function contBefore(code) { + return effects.attempt(blockQuote, ok, nok)(code) + } +} +function exit$1(effects) { + effects.exit('blockQuote'); +} + +const characterEscape = { + name: 'characterEscape', + tokenize: tokenizeCharacterEscape +}; +function tokenizeCharacterEscape(effects, ok, nok) { + return start + function start(code) { + effects.enter('characterEscape'); + effects.enter('escapeMarker'); + effects.consume(code); + effects.exit('escapeMarker'); + return inside + } + function inside(code) { + if (asciiPunctuation(code)) { + effects.enter('characterEscapeValue'); + effects.consume(code); + effects.exit('characterEscapeValue'); + effects.exit('characterEscape'); + return ok + } + return nok(code) + } } const characterReference = { @@ -4731,16 +4761,6 @@ function factoryWhitespace(effects, ok) { } } -function normalizeIdentifier(value) { - return ( - value - .replace(/[\t\n\r ]+/g, ' ') - .replace(/^ | $/g, '') - .toLowerCase() - .toUpperCase() - ) -} - const definition$1 = { name: 'definition', tokenize: tokenizeDefinition @@ -4769,7 +4789,7 @@ function tokenizeDefinition(effects, ok, nok) { )(code) } function labelAfter(code) { - identifier = normalizeIdentifier( + identifier = normalizeIdentifier$1( self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) ); if (code === 58) { @@ -5914,7 +5934,7 @@ function tokenizeLabelEnd(effects, ok, nok) { return labelEndNok(code) } defined = self.parser.defined.includes( - normalizeIdentifier( + normalizeIdentifier$1( self.sliceSerialize({ start: labelStart.end, end: self.now() @@ -6043,7 +6063,7 @@ function tokenizeReferenceFull(effects, ok, nok) { } function referenceFullAfter(code) { return self.parser.defined.includes( - normalizeIdentifier( + normalizeIdentifier$1( self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) ) ) @@ -6184,7 +6204,7 @@ function tokenizeThematicBreak(effects, ok, nok) { } } -const list$1 = { +const list$2 = { name: 'list', tokenize: tokenizeListStart, continuation: { @@ -6322,7 +6342,7 @@ function tokenizeListContinuation(effects, ok, nok) { self.interrupt = undefined; return factorySpace( effects, - effects.attempt(list$1, ok, nok), + effects.attempt(list$2, ok, nok), 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined @@ -6972,19 +6992,19 @@ function serializeChunks(chunks, expandTabs) { } const document = { - [42]: list$1, - [43]: list$1, - [45]: list$1, - [48]: list$1, - [49]: list$1, - [50]: list$1, - [51]: list$1, - [52]: list$1, - [53]: list$1, - [54]: list$1, - [55]: list$1, - [56]: list$1, - [57]: list$1, + [42]: list$2, + [43]: list$2, + [45]: list$2, + [48]: list$2, + [49]: list$2, + [50]: list$2, + [51]: list$2, + [52]: list$2, + [53]: list$2, + [54]: list$2, + [55]: list$2, + [56]: list$2, + [57]: list$2, [62]: blockQuote }; const contentInitial = { @@ -7069,6 +7089,12 @@ function parse$1(options) { } } +function postprocess(events) { + while (!subtokenize(events)) { + } + return events +} + const search = /[\0\t\n\r]/g; function preprocess() { let column = 1; @@ -7083,7 +7109,11 @@ function preprocess() { let startPosition; let endPosition; let code; - value = buffer + value.toString(encoding); + value = + buffer + + (typeof value === 'string' + ? value.toString() + : new TextDecoder(encoding || undefined).decode(value)); startPosition = 0; buffer = ''; if (start) { @@ -7148,30 +7178,6 @@ function preprocess() { } } -function postprocess(events) { - while (!subtokenize(events)) { - } - return events -} - -function decodeNumericCharacterReference(value, base) { - const code = Number.parseInt(value, base); - if ( - code < 9 || - code === 11 || - (code > 13 && code < 32) || - (code > 126 && code < 160) || - (code > 55295 && code < 57344) || - (code > 64975 && code < 65008) || - (code & 65535) === 65535 || - (code & 65535) === 65534 || - code > 1114111 - ) { - return '\uFFFD' - } - return String.fromCharCode(code) -} - const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; function decodeString(value) { @@ -7190,44 +7196,18 @@ function decode($0, $1, $2) { return decodeNamedCharacterReference($2) || $0 } -function stringifyPosition$2(value) { - if (!value || typeof value !== 'object') { - return '' - } - if ('position' in value || 'type' in value) { - return position$2(value.position) - } - if ('start' in value || 'end' in value) { - return position$2(value) - } - if ('line' in value || 'column' in value) { - return point$4(value) - } - return '' -} -function point$4(point) { - return index$2(point && point.line) + ':' + index$2(point && point.column) -} -function position$2(pos) { - return point$4(pos && pos.start) + '-' + point$4(pos && pos.end) -} -function index$2(value) { - return value && typeof value === 'number' ? value : 1 -} - const own$4 = {}.hasOwnProperty; -const fromMarkdown = - function (value, encoding, options) { - if (typeof encoding !== 'string') { - options = encoding; - encoding = undefined; - } - return compiler(options)( - postprocess( - parse$1(options).document().write(preprocess()(value, encoding, true)) - ) +function fromMarkdown(value, encoding, options) { + if (typeof encoding !== 'string') { + options = encoding; + encoding = undefined; + } + return compiler(options)( + postprocess( + parse$1(options).document().write(preprocess()(value, encoding, true)) ) - }; + ) +} function compiler(options) { const config = { transforms: [], @@ -7342,8 +7322,7 @@ function compiler(options) { exit, buffer, resume, - setData, - getData + data }; const listStack = []; let index = -1; @@ -7416,37 +7395,42 @@ function compiler(options) { let atMarker; while (++index <= length) { const event = events[index]; - if ( - event[1].type === 'listUnordered' || - event[1].type === 'listOrdered' || - event[1].type === 'blockQuote' - ) { - if (event[0] === 'enter') { - containerBalance++; - } else { - containerBalance--; + switch (event[1].type) { + case 'listUnordered': + case 'listOrdered': + case 'blockQuote': { + if (event[0] === 'enter') { + containerBalance++; + } else { + containerBalance--; + } + atMarker = undefined; + break } - atMarker = undefined; - } else if (event[1].type === 'lineEndingBlank') { - if (event[0] === 'enter') { - if ( - listItem && - !atMarker && - !containerBalance && - !firstBlankLineIndex - ) { - firstBlankLineIndex = index; + case 'lineEndingBlank': { + if (event[0] === 'enter') { + if ( + listItem && + !atMarker && + !containerBalance && + !firstBlankLineIndex + ) { + firstBlankLineIndex = index; + } + atMarker = undefined; } + break + } + case 'linePrefix': + case 'listItemValue': + case 'listItemMarker': + case 'listItemPrefix': + case 'listItemPrefixWhitespace': { + break + } + default: { atMarker = undefined; } - } else if ( - event[1].type === 'linePrefix' || - event[1].type === 'listItemValue' || - event[1].type === 'listItemMarker' || - event[1].type === 'listItemPrefix' || - event[1].type === 'listItemPrefixWhitespace' - ) ; else { - atMarker = undefined; } if ( (!containerBalance && @@ -7498,13 +7482,14 @@ function compiler(options) { length++; } if (event[1].type === 'listItemPrefix') { - listItem = { + const item = { type: 'listItem', _spread: false, start: Object.assign({}, event[1].start), end: undefined }; - events.splice(index, 0, ['enter', listItem, event[2]]); + listItem = item; + events.splice(index, 0, ['enter', item, event[2]]); index++; length++; firstBlankLineIndex = undefined; @@ -7515,12 +7500,6 @@ function compiler(options) { events[start][1]._spread = listSpread; return length } - function setData(key, value) { - data[key] = value; - } - function getData(key) { - return data[key] - } function opener(create, and) { return open function open(token) { @@ -7536,13 +7515,14 @@ function compiler(options) { } function enter(node, token, errorHandler) { const parent = this.stack[this.stack.length - 1]; - parent.children.push(node); + const siblings = parent.children; + siblings.push(node); this.stack.push(node); this.tokenStack.push([token, errorHandler]); node.position = { - start: point$3(token.start) + start: point$3(token.start), + end: undefined }; - return node } function closer(and) { return close @@ -7574,19 +7554,18 @@ function compiler(options) { } } node.position.end = point$3(token.end); - return node } function resume() { - return toString(this.stack.pop()) + return toString$2(this.stack.pop()) } function onenterlistordered() { - setData('expectingFirstListItemValue', true); + this.data.expectingFirstListItemValue = true; } function onenterlistitemvalue(token) { - if (getData('expectingFirstListItemValue')) { + if (this.data.expectingFirstListItemValue) { const ancestor = this.stack[this.stack.length - 2]; ancestor.start = Number.parseInt(this.sliceSerialize(token), 10); - setData('expectingFirstListItemValue'); + this.data.expectingFirstListItemValue = undefined; } } function onexitcodefencedfenceinfo() { @@ -7600,15 +7579,15 @@ function compiler(options) { node.meta = data; } function onexitcodefencedfence() { - if (getData('flowCodeInside')) return + if (this.data.flowCodeInside) return this.buffer(); - setData('flowCodeInside', true); + this.data.flowCodeInside = true; } function onexitcodefenced() { const data = this.resume(); const node = this.stack[this.stack.length - 1]; node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ''); - setData('flowCodeInside'); + this.data.flowCodeInside = undefined; } function onexitcodeindented() { const data = this.resume(); @@ -7619,7 +7598,7 @@ function compiler(options) { const label = this.resume(); const node = this.stack[this.stack.length - 1]; node.label = label; - node.identifier = normalizeIdentifier( + node.identifier = normalizeIdentifier$1( this.sliceSerialize(token) ).toLowerCase(); } @@ -7641,24 +7620,26 @@ function compiler(options) { } } function onexitsetextheadingtext() { - setData('setextHeadingSlurpLineEnding', true); + this.data.setextHeadingSlurpLineEnding = true; } function onexitsetextheadinglinesequence(token) { const node = this.stack[this.stack.length - 1]; - node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2; + node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2; } function onexitsetextheading() { - setData('setextHeadingSlurpLineEnding'); + this.data.setextHeadingSlurpLineEnding = undefined; } function onenterdata(token) { const node = this.stack[this.stack.length - 1]; - let tail = node.children[node.children.length - 1]; + const siblings = node.children; + let tail = siblings[siblings.length - 1]; if (!tail || tail.type !== 'text') { tail = text(); tail.position = { - start: point$3(token.start) + start: point$3(token.start), + end: undefined }; - node.children.push(tail); + siblings.push(tail); } this.stack.push(tail); } @@ -7669,14 +7650,14 @@ function compiler(options) { } function onexitlineending(token) { const context = this.stack[this.stack.length - 1]; - if (getData('atHardBreak')) { + if (this.data.atHardBreak) { const tail = context.children[context.children.length - 1]; tail.position.end = point$3(token.end); - setData('atHardBreak'); + this.data.atHardBreak = undefined; return } if ( - !getData('setextHeadingSlurpLineEnding') && + !this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type) ) { onenterdata.call(this, token); @@ -7684,7 +7665,7 @@ function compiler(options) { } } function onexithardbreak() { - setData('atHardBreak', true); + this.data.atHardBreak = true; } function onexithtmlflow() { const data = this.resume(); @@ -7703,8 +7684,8 @@ function compiler(options) { } function onexitlink() { const node = this.stack[this.stack.length - 1]; - if (getData('inReference')) { - const referenceType = getData('referenceType') || 'shortcut'; + if (this.data.inReference) { + const referenceType = this.data.referenceType || 'shortcut'; node.type += 'Reference'; node.referenceType = referenceType; delete node.url; @@ -7713,12 +7694,12 @@ function compiler(options) { delete node.identifier; delete node.label; } - setData('referenceType'); + this.data.referenceType = undefined; } function onexitimage() { const node = this.stack[this.stack.length - 1]; - if (getData('inReference')) { - const referenceType = getData('referenceType') || 'shortcut'; + if (this.data.inReference) { + const referenceType = this.data.referenceType || 'shortcut'; node.type += 'Reference'; node.referenceType = referenceType; delete node.url; @@ -7727,19 +7708,19 @@ function compiler(options) { delete node.identifier; delete node.label; } - setData('referenceType'); + this.data.referenceType = undefined; } function onexitlabeltext(token) { const string = this.sliceSerialize(token); const ancestor = this.stack[this.stack.length - 2]; ancestor.label = decodeString(string); - ancestor.identifier = normalizeIdentifier(string).toLowerCase(); + ancestor.identifier = normalizeIdentifier$1(string).toLowerCase(); } function onexitlabel() { const fragment = this.stack[this.stack.length - 1]; const value = this.resume(); const node = this.stack[this.stack.length - 1]; - setData('inReference', true); + this.data.inReference = true; if (node.type === 'link') { const children = fragment.children; node.children = children; @@ -7758,33 +7739,33 @@ function compiler(options) { node.title = data; } function onexitresource() { - setData('inReference'); + this.data.inReference = undefined; } function onenterreference() { - setData('referenceType', 'collapsed'); + this.data.referenceType = 'collapsed'; } function onexitreferencestring(token) { const label = this.resume(); const node = this.stack[this.stack.length - 1]; node.label = label; - node.identifier = normalizeIdentifier( + node.identifier = normalizeIdentifier$1( this.sliceSerialize(token) ).toLowerCase(); - setData('referenceType', 'full'); + this.data.referenceType = 'full'; } function onexitcharacterreferencemarker(token) { - setData('characterReferenceType', token.type); + this.data.characterReferenceType = token.type; } function onexitcharacterreferencevalue(token) { const data = this.sliceSerialize(token); - const type = getData('characterReferenceType'); + const type = this.data.characterReferenceType; let value; if (type) { value = decodeNumericCharacterReference( data, type === 'characterReferenceMarkerNumeric' ? 10 : 16 ); - setData('characterReferenceType'); + this.data.characterReferenceType = undefined; } else { const result = decodeNamedCharacterReference(data); value = result; @@ -7841,7 +7822,7 @@ function compiler(options) { function heading() { return { type: 'heading', - depth: undefined, + depth: 0, children: [] } } @@ -7935,20 +7916,28 @@ function extension(combined, extension) { let key; for (key in extension) { if (own$4.call(extension, key)) { - if (key === 'canContainEols') { - const right = extension[key]; - if (right) { - combined[key].push(...right); + switch (key) { + case 'canContainEols': { + const right = extension[key]; + if (right) { + combined[key].push(...right); + } + break } - } else if (key === 'transforms') { - const right = extension[key]; - if (right) { - combined[key].push(...right); + case 'transforms': { + const right = extension[key]; + if (right) { + combined[key].push(...right); + } + break } - } else if (key === 'enter' || key === 'exit') { - const right = extension[key]; - if (right) { - Object.assign(combined[key], right); + case 'enter': + case 'exit': { + const right = extension[key]; + if (right) { + Object.assign(combined[key], right); + } + break } } } @@ -7988,17 +7977,16 @@ function defaultOnError(left, right) { } function remarkParse(options) { - const parser = (doc) => { - const settings = (this.data('settings')); - return fromMarkdown( - doc, - Object.assign({}, settings, options, { - extensions: this.data('micromarkExtensions') || [], - mdastExtensions: this.data('fromMarkdownExtensions') || [] - }) - ) - }; - Object.assign(this, {Parser: parser}); + const self = this; + self.parser = parser; + function parser(doc) { + return fromMarkdown(doc, { + ...self.data('settings'), + ...options, + extensions: self.data('micromarkExtensions') || [], + mdastExtensions: self.data('fromMarkdownExtensions') || [] + }) + } } const own$3 = {}.hasOwnProperty; @@ -8021,6 +8009,7 @@ function zwitch(key, options) { return one } +const own$2 = {}.hasOwnProperty; function configure(base, extension) { let index = -1; let key; @@ -8030,16 +8019,41 @@ function configure(base, extension) { } } for (key in extension) { - if (key === 'extensions') ; else if (key === 'unsafe' || key === 'join') { - base[key] = [...(base[key] || []), ...(extension[key] || [])]; - } else if (key === 'handlers') { - base[key] = Object.assign(base[key], extension[key] || {}); - } else { - base.options[key] = extension[key]; + if (own$2.call(extension, key)) { + switch (key) { + case 'extensions': { + break + } + case 'unsafe': { + list$1(base[key], extension[key]); + break + } + case 'join': { + list$1(base[key], extension[key]); + break + } + case 'handlers': { + map$4(base[key], extension[key]); + break + } + default: { + base.options[key] = extension[key]; + } + } } } return base } +function list$1(left, right) { + if (right) { + left.push(...right); + } +} +function map$4(left, right) { + if (right) { + Object.assign(left, right); + } +} function blockquote(node, _, state, info) { const exit = state.enter('blockquote'); @@ -8117,7 +8131,7 @@ function longestStreak(value, substring) { function formatCodeAsIndented(node, state) { return Boolean( - !state.options.fences && + state.options.fences === false && node.value && !node.lang && /[^ \r\n]/.test(node.value) && @@ -8287,176 +8301,196 @@ function emphasisPeek(_, _1, state) { return state.options.emphasis || '*' } -const convert = +const convert$A = ( function (test) { - if (test === undefined || test === null) { - return ok + if (test === null || test === undefined) { + return ok$A } - if (typeof test === 'string') { - return typeFactory(test) + if (typeof test === 'function') { + return castFactory$A(test) } if (typeof test === 'object') { - return Array.isArray(test) ? anyFactory(test) : propsFactory(test) + return Array.isArray(test) ? anyFactory$A(test) : propsFactory$A(test) } - if (typeof test === 'function') { - return castFactory(test) + if (typeof test === 'string') { + return typeFactory$A(test) } throw new Error('Expected function, string, or object as test') } ); -function anyFactory(tests) { +function anyFactory$A(tests) { const checks = []; let index = -1; while (++index < tests.length) { - checks[index] = convert(tests[index]); + checks[index] = convert$A(tests[index]); } - return castFactory(any) + return castFactory$A(any) function any(...parameters) { let index = -1; while (++index < checks.length) { - if (checks[index].call(this, ...parameters)) return true + if (checks[index].apply(this, parameters)) return true } return false } } -function propsFactory(check) { - return castFactory(all) +function propsFactory$A(check) { + const checkAsRecord = (check); + return castFactory$A(all) function all(node) { + const nodeAsRecord = ( + (node) + ); let key; for (key in check) { - if (node[key] !== check[key]) return false + if (nodeAsRecord[key] !== checkAsRecord[key]) return false } return true } } -function typeFactory(check) { - return castFactory(type) +function typeFactory$A(check) { + return castFactory$A(type) function type(node) { return node && node.type === check } } -function castFactory(check) { - return assertion - function assertion(node, ...parameters) { +function castFactory$A(testFunction) { + return check + function check(value, index, parent) { return Boolean( - node && - typeof node === 'object' && - 'type' in node && - Boolean(check.call(this, node, ...parameters)) + looksLikeANode(value) && + testFunction.call( + this, + value, + typeof index === 'number' ? index : undefined, + parent || undefined + ) ) } } -function ok() { +function ok$A() { return true } +function looksLikeANode(value) { + return value !== null && typeof value === 'object' && 'type' in value +} -function color$2(d) { +function color$B(d) { return '\u001B[33m' + d + '\u001B[39m' } -const CONTINUE$1 = true; -const EXIT$1 = false; -const SKIP$1 = 'skip'; -const visitParents$1 = - ( - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } - const is = convert(test); - const step = reverse ? -1 : 1; - factory(tree, undefined, [])(); - function factory(node, index, parents) { - const value = node && typeof node === 'object' ? node : {}; - if (typeof value.type === 'string') { - const name = - typeof value.tagName === 'string' - ? value.tagName - : - typeof value.name === 'string' - ? value.name - : undefined; - Object.defineProperty(visit, 'name', { - value: - 'node (' + color$2(node.type + (name ? '<' + name + '>' : '')) + ')' - }); +const empty = []; +const CONTINUE$A = true; +const EXIT$A = false; +const SKIP$A = 'skip'; +function visitParents$A(tree, test, visitor, reverse) { + let check; + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + } else { + check = test; + } + const is = convert$A(check); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = ( + node && typeof node === 'object' ? node : {} + ); + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$B(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = empty; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || undefined)) { + result = toResult$A(visitor(node, parents)); + if (result[0] === EXIT$A) { + return result } - return visit - function visit() { - let result = []; - let subresult; - let offset; - let grandparents; - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult$1(visitor(node, parents)); - if (result[0] === EXIT$1) { - return result - } - } - if (node.children && result[0] !== SKIP$1) { - offset = (reverse ? node.children.length : -1) + step; - grandparents = parents.concat(node); - while (offset > -1 && offset < node.children.length) { - subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$1) { - return subresult - } - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + if ('children' in node && node.children) { + const nodeAsParent = (node); + if (nodeAsParent.children && result[0] !== SKIP$A) { + offset = (reverse ? nodeAsParent.children.length : -1) + step; + grandparents = parents.concat(nodeAsParent); + while (offset > -1 && offset < nodeAsParent.children.length) { + const child = nodeAsParent.children[offset]; + subresult = factory(child, offset, grandparents)(); + if (subresult[0] === EXIT$A) { + return subresult } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; } - return result } } + return result } - ); -function toResult$1(value) { + } +} +function toResult$A(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE$1, value] + return [CONTINUE$A, value] } - return [value] + return value === null || value === undefined ? empty : [value] } -const visit$1 = - ( - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } - visitParents$1(tree, test, overload, reverse); - function overload(node, parents) { - const parent = parents[parents.length - 1]; - return visitor( - node, - parent ? parent.children.indexOf(node) : null, - parent - ) - } - } - ); +function visit$A(tree, testOrVisitor, visitorOrReverse, maybeReverse) { + let reverse; + let test; + let visitor; + if ( + typeof testOrVisitor === 'function' && + typeof visitorOrReverse !== 'function' + ) { + test = undefined; + visitor = testOrVisitor; + reverse = visitorOrReverse; + } else { + test = testOrVisitor; + visitor = visitorOrReverse; + reverse = maybeReverse; + } + visitParents$A(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + const index = parent ? parent.children.indexOf(node) : undefined; + return visitor(node, index, parent) + } +} function formatHeadingAsSetext(node, state) { let literalWithBreak = false; - visit$1(node, (node) => { + visit$A(node, function (node) { if ( ('value' in node && /\r?\n|\r/.test(node.value)) || node.type === 'break' ) { literalWithBreak = true; - return EXIT$1 + return EXIT$A } }); return Boolean( (!node.depth || node.depth < 3) && - toString(node) && + toString$2(node) && (state.options.setext || literalWithBreak) ) } @@ -8516,16 +8550,183 @@ function htmlPeek() { return '<' } -image.peek = imagePeek; -function image(node, _, state, info) { +image.peek = imagePeek; +function image(node, _, state, info) { + const quote = checkQuote(state); + const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; + const exit = state.enter('image'); + let subexit = state.enter('label'); + const tracker = state.createTracker(info); + let value = tracker.move('!['); + value += tracker.move( + state.safe(node.alt, {before: value, after: ']', ...tracker.current()}) + ); + value += tracker.move(']('); + subexit(); + if ( + (!node.url && node.title) || + /[\0- \u007F]/.test(node.url) + ) { + subexit = state.enter('destinationLiteral'); + value += tracker.move('<'); + value += tracker.move( + state.safe(node.url, {before: value, after: '>', ...tracker.current()}) + ); + value += tracker.move('>'); + } else { + subexit = state.enter('destinationRaw'); + value += tracker.move( + state.safe(node.url, { + before: value, + after: node.title ? ' ' : ')', + ...tracker.current() + }) + ); + } + subexit(); + if (node.title) { + subexit = state.enter(`title${suffix}`); + value += tracker.move(' ' + quote); + value += tracker.move( + state.safe(node.title, { + before: value, + after: quote, + ...tracker.current() + }) + ); + value += tracker.move(quote); + subexit(); + } + value += tracker.move(')'); + exit(); + return value +} +function imagePeek() { + return '!' +} + +imageReference.peek = imageReferencePeek; +function imageReference(node, _, state, info) { + const type = node.referenceType; + const exit = state.enter('imageReference'); + let subexit = state.enter('label'); + const tracker = state.createTracker(info); + let value = tracker.move('!['); + const alt = state.safe(node.alt, { + before: value, + after: ']', + ...tracker.current() + }); + value += tracker.move(alt + ']['); + subexit(); + const stack = state.stack; + state.stack = []; + subexit = state.enter('reference'); + const reference = state.safe(state.associationId(node), { + before: value, + after: ']', + ...tracker.current() + }); + subexit(); + state.stack = stack; + exit(); + if (type === 'full' || !alt || alt !== reference) { + value += tracker.move(reference + ']'); + } else if (type === 'shortcut') { + value = value.slice(0, -1); + } else { + value += tracker.move(']'); + } + return value +} +function imageReferencePeek() { + return '!' +} + +inlineCode.peek = inlineCodePeek; +function inlineCode(node, _, state) { + let value = node.value || ''; + let sequence = '`'; + let index = -1; + while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { + sequence += '`'; + } + if ( + /[^ \r\n]/.test(value) && + ((/^[ \r\n]/.test(value) && /[ \r\n]$/.test(value)) || /^`|`$/.test(value)) + ) { + value = ' ' + value + ' '; + } + while (++index < state.unsafe.length) { + const pattern = state.unsafe[index]; + const expression = state.compilePattern(pattern); + let match; + if (!pattern.atBreak) continue + while ((match = expression.exec(value))) { + let position = match.index; + if ( + value.charCodeAt(position) === 10 && + value.charCodeAt(position - 1) === 13 + ) { + position--; + } + value = value.slice(0, position) + ' ' + value.slice(match.index + 1); + } + } + return sequence + value + sequence +} +function inlineCodePeek() { + return '`' +} + +function formatLinkAsAutolink(node, state) { + const raw = toString$2(node); + return Boolean( + !state.options.resourceLink && + node.url && + !node.title && + node.children && + node.children.length === 1 && + node.children[0].type === 'text' && + (raw === node.url || 'mailto:' + raw === node.url) && + /^[a-z][a-z+.-]+:/i.test(node.url) && + !/[\0- <>\u007F]/.test(node.url) + ) +} + +link.peek = linkPeek; +function link(node, _, state, info) { const quote = checkQuote(state); const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; - const exit = state.enter('image'); - let subexit = state.enter('label'); const tracker = state.createTracker(info); - let value = tracker.move('!['); + let exit; + let subexit; + if (formatLinkAsAutolink(node, state)) { + const stack = state.stack; + state.stack = []; + exit = state.enter('autolink'); + let value = tracker.move('<'); + value += tracker.move( + state.containerPhrasing(node, { + before: value, + after: '>', + ...tracker.current() + }) + ); + value += tracker.move('>'); + exit(); + state.stack = stack; + return value + } + exit = state.enter('link'); + subexit = state.enter('label'); + let value = tracker.move('['); value += tracker.move( - state.safe(node.alt, {before: value, after: ']', ...tracker.current()}) + state.containerPhrasing(node, { + before: value, + after: '](', + ...tracker.current() + }) ); value += tracker.move(']('); subexit(); @@ -8567,23 +8768,23 @@ function image(node, _, state, info) { exit(); return value } -function imagePeek() { - return '!' +function linkPeek(node, _, state) { + return formatLinkAsAutolink(node, state) ? '<' : '[' } -imageReference.peek = imageReferencePeek; -function imageReference(node, _, state, info) { +linkReference.peek = linkReferencePeek; +function linkReference(node, _, state, info) { const type = node.referenceType; - const exit = state.enter('imageReference'); + const exit = state.enter('linkReference'); let subexit = state.enter('label'); const tracker = state.createTracker(info); - let value = tracker.move('!['); - const alt = state.safe(node.alt, { + let value = tracker.move('['); + const text = state.containerPhrasing(node, { before: value, after: ']', ...tracker.current() }); - value += tracker.move(alt + ']['); + value += tracker.move(text + ']['); subexit(); const stack = state.stack; state.stack = []; @@ -8596,7 +8797,7 @@ function imageReference(node, _, state, info) { subexit(); state.stack = stack; exit(); - if (type === 'full' || !alt || alt !== reference) { + if (type === 'full' || !text || text !== reference) { value += tracker.move(reference + ']'); } else if (type === 'shortcut') { value = value.slice(0, -1); @@ -8605,966 +8806,1609 @@ function imageReference(node, _, state, info) { } return value } -function imageReferencePeek() { - return '!' +function linkReferencePeek() { + return '[' } -function patternCompile(pattern) { - if (!pattern._compiled) { - const before = - (pattern.atBreak ? '[\\r\\n][\\t ]*' : '') + - (pattern.before ? '(?:' + pattern.before + ')' : ''); - pattern._compiled = new RegExp( - (before ? '(' + before + ')' : '') + - (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + - pattern.character + - (pattern.after ? '(?:' + pattern.after + ')' : ''), - 'g' - ); +function checkBullet(state) { + const marker = state.options.bullet || '*'; + if (marker !== '*' && marker !== '+' && marker !== '-') { + throw new Error( + 'Cannot serialize items with `' + + marker + + '` for `options.bullet`, expected `*`, `+`, or `-`' + ) } - return pattern._compiled + return marker } -inlineCode.peek = inlineCodePeek; -function inlineCode(node, _, state) { - let value = node.value || ''; - let sequence = '`'; - let index = -1; - while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { - sequence += '`'; +function checkBulletOther(state) { + const bullet = checkBullet(state); + const bulletOther = state.options.bulletOther; + if (!bulletOther) { + return bullet === '*' ? '-' : '*' + } + if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') { + throw new Error( + 'Cannot serialize items with `' + + bulletOther + + '` for `options.bulletOther`, expected `*`, `+`, or `-`' + ) + } + if (bulletOther === bullet) { + throw new Error( + 'Expected `bullet` (`' + + bullet + + '`) and `bulletOther` (`' + + bulletOther + + '`) to be different' + ) + } + return bulletOther +} + +function checkBulletOrdered(state) { + const marker = state.options.bulletOrdered || '.'; + if (marker !== '.' && marker !== ')') { + throw new Error( + 'Cannot serialize items with `' + + marker + + '` for `options.bulletOrdered`, expected `.` or `)`' + ) + } + return marker +} + +function checkRule(state) { + const marker = state.options.rule || '*'; + if (marker !== '*' && marker !== '-' && marker !== '_') { + throw new Error( + 'Cannot serialize rules with `' + + marker + + '` for `options.rule`, expected `*`, `-`, or `_`' + ) + } + return marker +} + +function list(node, parent, state, info) { + const exit = state.enter('list'); + const bulletCurrent = state.bulletCurrent; + let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state); + const bulletOther = node.ordered + ? bullet === '.' + ? ')' + : '.' + : checkBulletOther(state); + let useDifferentMarker = + parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false; + if (!node.ordered) { + const firstListItem = node.children ? node.children[0] : undefined; + if ( + (bullet === '*' || bullet === '-') && + firstListItem && + (!firstListItem.children || !firstListItem.children[0]) && + state.stack[state.stack.length - 1] === 'list' && + state.stack[state.stack.length - 2] === 'listItem' && + state.stack[state.stack.length - 3] === 'list' && + state.stack[state.stack.length - 4] === 'listItem' && + state.indexStack[state.indexStack.length - 1] === 0 && + state.indexStack[state.indexStack.length - 2] === 0 && + state.indexStack[state.indexStack.length - 3] === 0 + ) { + useDifferentMarker = true; + } + if (checkRule(state) === bullet && firstListItem) { + let index = -1; + while (++index < node.children.length) { + const item = node.children[index]; + if ( + item && + item.type === 'listItem' && + item.children && + item.children[0] && + item.children[0].type === 'thematicBreak' + ) { + useDifferentMarker = true; + break + } + } + } + } + if (useDifferentMarker) { + bullet = bulletOther; + } + state.bulletCurrent = bullet; + const value = state.containerFlow(node, info); + state.bulletLastUsed = bullet; + state.bulletCurrent = bulletCurrent; + exit(); + return value +} + +function checkListItemIndent(state) { + const style = state.options.listItemIndent || 'one'; + if (style !== 'tab' && style !== 'one' && style !== 'mixed') { + throw new Error( + 'Cannot serialize items with `' + + style + + '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' + ) } + return style +} + +function listItem(node, parent, state, info) { + const listItemIndent = checkListItemIndent(state); + let bullet = state.bulletCurrent || checkBullet(state); + if (parent && parent.type === 'list' && parent.ordered) { + bullet = + (typeof parent.start === 'number' && parent.start > -1 + ? parent.start + : 1) + + (state.options.incrementListMarker === false + ? 0 + : parent.children.indexOf(node)) + + bullet; + } + let size = bullet.length + 1; if ( - /[^ \r\n]/.test(value) && - ((/^[ \r\n]/.test(value) && /[ \r\n]$/.test(value)) || /^`|`$/.test(value)) + listItemIndent === 'tab' || + (listItemIndent === 'mixed' && + ((parent && parent.type === 'list' && parent.spread) || node.spread)) ) { - value = ' ' + value + ' '; + size = Math.ceil(size / 4) * 4; } - while (++index < state.unsafe.length) { - const pattern = state.unsafe[index]; - const expression = patternCompile(pattern); - let match; - if (!pattern.atBreak) continue - while ((match = expression.exec(value))) { - let position = match.index; - if ( - value.charCodeAt(position) === 10 && - value.charCodeAt(position - 1) === 13 - ) { - position--; - } - value = value.slice(0, position) + ' ' + value.slice(match.index + 1); + const tracker = state.createTracker(info); + tracker.move(bullet + ' '.repeat(size - bullet.length)); + tracker.shift(size); + const exit = state.enter('listItem'); + const value = state.indentLines( + state.containerFlow(node, tracker.current()), + map + ); + exit(); + return value + function map(line, index, blank) { + if (index) { + return (blank ? '' : ' '.repeat(size)) + line } + return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line } - return sequence + value + sequence } -function inlineCodePeek() { - return '`' + +function paragraph(node, _, state, info) { + const exit = state.enter('paragraph'); + const subexit = state.enter('phrasing'); + const value = state.containerPhrasing(node, info); + subexit(); + exit(); + return value +} + +const phrasing = + ( + convert$A([ + 'break', + 'delete', + 'emphasis', + 'footnote', + 'footnoteReference', + 'image', + 'imageReference', + 'inlineCode', + 'link', + 'linkReference', + 'strong', + 'text' + ]) + ); + +function root(node, _, state, info) { + const hasPhrasing = node.children.some(function (d) { + return phrasing(d) + }); + const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow; + return fn.call(state, node, info) } -function formatLinkAsAutolink(node, state) { - const raw = toString(node); - return Boolean( - !state.options.resourceLink && - node.url && - !node.title && - node.children && - node.children.length === 1 && - node.children[0].type === 'text' && - (raw === node.url || 'mailto:' + raw === node.url) && - /^[a-z][a-z+.-]+:/i.test(node.url) && - !/[\0- <>\u007F]/.test(node.url) - ) +function checkStrong(state) { + const marker = state.options.strong || '*'; + if (marker !== '*' && marker !== '_') { + throw new Error( + 'Cannot serialize strong with `' + + marker + + '` for `options.strong`, expected `*`, or `_`' + ) + } + return marker } -link.peek = linkPeek; -function link(node, _, state, info) { - const quote = checkQuote(state); - const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; +strong.peek = strongPeek; +function strong(node, _, state, info) { + const marker = checkStrong(state); + const exit = state.enter('strong'); const tracker = state.createTracker(info); - let exit; - let subexit; - if (formatLinkAsAutolink(node, state)) { - const stack = state.stack; - state.stack = []; - exit = state.enter('autolink'); - let value = tracker.move('<'); - value += tracker.move( - state.containerPhrasing(node, { - before: value, - after: '>', - ...tracker.current() - }) - ); - value += tracker.move('>'); - exit(); - state.stack = stack; - return value - } - exit = state.enter('link'); - subexit = state.enter('label'); - let value = tracker.move('['); + let value = tracker.move(marker + marker); value += tracker.move( state.containerPhrasing(node, { before: value, - after: '](', + after: marker, ...tracker.current() }) ); - value += tracker.move(']('); - subexit(); + value += tracker.move(marker + marker); + exit(); + return value +} +function strongPeek(_, _1, state) { + return state.options.strong || '*' +} + +function text$1(node, _, state, info) { + return state.safe(node.value, info) +} + +function checkRuleRepetition(state) { + const repetition = state.options.ruleRepetition || 3; + if (repetition < 3) { + throw new Error( + 'Cannot serialize rules with repetition `' + + repetition + + '` for `options.ruleRepetition`, expected `3` or more' + ) + } + return repetition +} + +function thematicBreak(_, _1, state) { + const value = ( + checkRule(state) + (state.options.ruleSpaces ? ' ' : '') + ).repeat(checkRuleRepetition(state)); + return state.options.ruleSpaces ? value.slice(0, -1) : value +} + +const handle = { + blockquote, + break: hardBreak, + code: code$1, + definition, + emphasis, + hardBreak, + heading, + html, + image, + imageReference, + inlineCode, + link, + linkReference, + list, + listItem, + paragraph, + root, + strong, + text: text$1, + thematicBreak +}; + +const join = [joinDefaults]; +function joinDefaults(left, right, parent, state) { if ( - (!node.url && node.title) || - /[\0- \u007F]/.test(node.url) + right.type === 'code' && + formatCodeAsIndented(right, state) && + (left.type === 'list' || + (left.type === right.type && formatCodeAsIndented(left, state))) ) { - subexit = state.enter('destinationLiteral'); - value += tracker.move('<'); - value += tracker.move( - state.safe(node.url, {before: value, after: '>', ...tracker.current()}) - ); - value += tracker.move('>'); - } else { - subexit = state.enter('destinationRaw'); - value += tracker.move( - state.safe(node.url, { - before: value, - after: node.title ? ' ' : ')', - ...tracker.current() - }) - ); + return false } - subexit(); - if (node.title) { - subexit = state.enter(`title${suffix}`); - value += tracker.move(' ' + quote); - value += tracker.move( - state.safe(node.title, { - before: value, - after: quote, - ...tracker.current() - }) - ); - value += tracker.move(quote); - subexit(); + if ('spread' in parent && typeof parent.spread === 'boolean') { + if ( + left.type === 'paragraph' && + (left.type === right.type || + right.type === 'definition' || + (right.type === 'heading' && formatHeadingAsSetext(right, state))) + ) { + return + } + return parent.spread ? 1 : 0 } - value += tracker.move(')'); - exit(); - return value -} -function linkPeek(node, _, state) { - return formatLinkAsAutolink(node, state) ? '<' : '[' } -linkReference.peek = linkReferencePeek; -function linkReference(node, _, state, info) { - const type = node.referenceType; - const exit = state.enter('linkReference'); - let subexit = state.enter('label'); - const tracker = state.createTracker(info); - let value = tracker.move('['); - const text = state.containerPhrasing(node, { - before: value, - after: ']', - ...tracker.current() - }); - value += tracker.move(text + ']['); - subexit(); - const stack = state.stack; - state.stack = []; - subexit = state.enter('reference'); - const reference = state.safe(state.associationId(node), { - before: value, - after: ']', - ...tracker.current() - }); - subexit(); - state.stack = stack; - exit(); - if (type === 'full' || !text || text !== reference) { - value += tracker.move(reference + ']'); - } else if (type === 'shortcut') { - value = value.slice(0, -1); - } else { - value += tracker.move(']'); +const fullPhrasingSpans = [ + 'autolink', + 'destinationLiteral', + 'destinationRaw', + 'reference', + 'titleQuote', + 'titleApostrophe' +]; +const unsafe = [ + {character: '\t', after: '[\\r\\n]', inConstruct: 'phrasing'}, + {character: '\t', before: '[\\r\\n]', inConstruct: 'phrasing'}, + { + character: '\t', + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] + }, + { + character: '\r', + inConstruct: [ + 'codeFencedLangGraveAccent', + 'codeFencedLangTilde', + 'codeFencedMetaGraveAccent', + 'codeFencedMetaTilde', + 'destinationLiteral', + 'headingAtx' + ] + }, + { + character: '\n', + inConstruct: [ + 'codeFencedLangGraveAccent', + 'codeFencedLangTilde', + 'codeFencedMetaGraveAccent', + 'codeFencedMetaTilde', + 'destinationLiteral', + 'headingAtx' + ] + }, + {character: ' ', after: '[\\r\\n]', inConstruct: 'phrasing'}, + {character: ' ', before: '[\\r\\n]', inConstruct: 'phrasing'}, + { + character: ' ', + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] + }, + { + character: '!', + after: '\\[', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, + {character: '"', inConstruct: 'titleQuote'}, + {atBreak: true, character: '#'}, + {character: '#', inConstruct: 'headingAtx', after: '(?:[\r\n]|$)'}, + {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, + {character: "'", inConstruct: 'titleApostrophe'}, + {character: '(', inConstruct: 'destinationRaw'}, + { + before: '\\]', + character: '(', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, + {atBreak: true, before: '\\d+', character: ')'}, + {character: ')', inConstruct: 'destinationRaw'}, + {atBreak: true, character: '*', after: '(?:[ \t\r\n*])'}, + {character: '*', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, + {atBreak: true, character: '+', after: '(?:[ \t\r\n])'}, + {atBreak: true, character: '-', after: '(?:[ \t\r\n-])'}, + {atBreak: true, before: '\\d+', character: '.', after: '(?:[ \t\r\n]|$)'}, + {atBreak: true, character: '<', after: '[!/?A-Za-z]'}, + { + character: '<', + after: '[!/?A-Za-z]', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, + {character: '<', inConstruct: 'destinationLiteral'}, + {atBreak: true, character: '='}, + {atBreak: true, character: '>'}, + {character: '>', inConstruct: 'destinationLiteral'}, + {atBreak: true, character: '['}, + {character: '[', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, + {character: '[', inConstruct: ['label', 'reference']}, + {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, + {character: ']', inConstruct: ['label', 'reference']}, + {atBreak: true, character: '_'}, + {character: '_', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, + {atBreak: true, character: '`'}, + { + character: '`', + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedMetaGraveAccent'] + }, + {character: '`', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, + {atBreak: true, character: '~'} +]; + +function association(node) { + if (node.label || !node.identifier) { + return node.label || '' } - return value -} -function linkReferencePeek() { - return '[' + return decodeString(node.identifier) } -function checkBullet(state) { - const marker = state.options.bullet || '*'; - if (marker !== '*' && marker !== '+' && marker !== '-') { - throw new Error( - 'Cannot serialize items with `' + - marker + - '` for `options.bullet`, expected `*`, `+`, or `-`' - ) +function compilePattern(pattern) { + if (!pattern._compiled) { + const before = + (pattern.atBreak ? '[\\r\\n][\\t ]*' : '') + + (pattern.before ? '(?:' + pattern.before + ')' : ''); + pattern._compiled = new RegExp( + (before ? '(' + before + ')' : '') + + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + + pattern.character + + (pattern.after ? '(?:' + pattern.after + ')' : ''), + 'g' + ); } - return marker + return pattern._compiled } -function checkBulletOther(state) { - const bullet = checkBullet(state); - const bulletOther = state.options.bulletOther; - if (!bulletOther) { - return bullet === '*' ? '-' : '*' - } - if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') { - throw new Error( - 'Cannot serialize items with `' + - bulletOther + - '` for `options.bulletOther`, expected `*`, `+`, or `-`' - ) - } - if (bulletOther === bullet) { - throw new Error( - 'Expected `bullet` (`' + - bullet + - '`) and `bulletOther` (`' + - bulletOther + - '`) to be different' - ) +function containerPhrasing(parent, state, info) { + const indexStack = state.indexStack; + const children = parent.children || []; + const results = []; + let index = -1; + let before = info.before; + indexStack.push(-1); + let tracker = state.createTracker(info); + while (++index < children.length) { + const child = children[index]; + let after; + indexStack[indexStack.length - 1] = index; + if (index + 1 < children.length) { + let handle = state.handle.handlers[children[index + 1].type]; + if (handle && handle.peek) handle = handle.peek; + after = handle + ? handle(children[index + 1], parent, state, { + before: '', + after: '', + ...tracker.current() + }).charAt(0) + : ''; + } else { + after = info.after; + } + if ( + results.length > 0 && + (before === '\r' || before === '\n') && + child.type === 'html' + ) { + results[results.length - 1] = results[results.length - 1].replace( + /(\r?\n|\r)$/, + ' ' + ); + before = ' '; + tracker = state.createTracker(info); + tracker.move(results.join('')); + } + results.push( + tracker.move( + state.handle(child, parent, state, { + ...tracker.current(), + before, + after + }) + ) + ); + before = results[results.length - 1].slice(-1); } - return bulletOther + indexStack.pop(); + return results.join('') } -function checkBulletOrdered(state) { - const marker = state.options.bulletOrdered || '.'; - if (marker !== '.' && marker !== ')') { - throw new Error( - 'Cannot serialize items with `' + - marker + - '` for `options.bulletOrdered`, expected `.` or `)`' - ) +function containerFlow(parent, state, info) { + const indexStack = state.indexStack; + const children = parent.children || []; + const tracker = state.createTracker(info); + const results = []; + let index = -1; + indexStack.push(-1); + while (++index < children.length) { + const child = children[index]; + indexStack[indexStack.length - 1] = index; + results.push( + tracker.move( + state.handle(child, parent, state, { + before: '\n', + after: '\n', + ...tracker.current() + }) + ) + ); + if (child.type !== 'list') { + state.bulletLastUsed = undefined; + } + if (index < children.length - 1) { + results.push( + tracker.move(between(child, children[index + 1], parent, state)) + ); + } } - return marker + indexStack.pop(); + return results.join('') } - -function checkBulletOrderedOther(state) { - const bulletOrdered = checkBulletOrdered(state); - const bulletOrderedOther = state.options.bulletOrderedOther; - if (!bulletOrderedOther) { - return bulletOrdered === '.' ? ')' : '.' - } - if (bulletOrderedOther !== '.' && bulletOrderedOther !== ')') { - throw new Error( - 'Cannot serialize items with `' + - bulletOrderedOther + - '` for `options.bulletOrderedOther`, expected `*`, `+`, or `-`' - ) - } - if (bulletOrderedOther === bulletOrdered) { - throw new Error( - 'Expected `bulletOrdered` (`' + - bulletOrdered + - '`) and `bulletOrderedOther` (`' + - bulletOrderedOther + - '`) to be different' - ) +function between(left, right, parent, state) { + let index = state.join.length; + while (index--) { + const result = state.join[index](left, right, parent, state); + if (result === true || result === 1) { + break + } + if (typeof result === 'number') { + return '\n'.repeat(1 + result) + } + if (result === false) { + return '\n\n\n\n' + } } - return bulletOrderedOther + return '\n\n' } -function checkRule(state) { - const marker = state.options.rule || '*'; - if (marker !== '*' && marker !== '-' && marker !== '_') { - throw new Error( - 'Cannot serialize rules with `' + - marker + - '` for `options.rule`, expected `*`, `-`, or `_`' - ) +const eol$1 = /\r?\n|\r/g; +function indentLines(value, map) { + const result = []; + let start = 0; + let line = 0; + let match; + while ((match = eol$1.exec(value))) { + one(value.slice(start, match.index)); + result.push(match[0]); + start = match.index + match[0].length; + line++; + } + one(value.slice(start)); + return result.join('') + function one(value) { + result.push(map(value, line, !value)); } - return marker } -function list(node, parent, state, info) { - const exit = state.enter('list'); - const bulletCurrent = state.bulletCurrent; - let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state); - const bulletOther = node.ordered - ? checkBulletOrderedOther(state) - : checkBulletOther(state); - const bulletLastUsed = state.bulletLastUsed; - let useDifferentMarker = false; - if ( - parent && - (node.ordered - ? state.options.bulletOrderedOther - : state.options.bulletOther) && - bulletLastUsed && - bullet === bulletLastUsed - ) { - useDifferentMarker = true; +function safe(state, input, config) { + const value = (config.before || '') + (input || '') + (config.after || ''); + const positions = []; + const result = []; + const infos = {}; + let index = -1; + while (++index < state.unsafe.length) { + const pattern = state.unsafe[index]; + if (!patternInScope(state.stack, pattern)) { + continue + } + const expression = state.compilePattern(pattern); + let match; + while ((match = expression.exec(value))) { + const before = 'before' in pattern || Boolean(pattern.atBreak); + const after = 'after' in pattern; + const position = match.index + (before ? match[1].length : 0); + if (positions.includes(position)) { + if (infos[position].before && !before) { + infos[position].before = false; + } + if (infos[position].after && !after) { + infos[position].after = false; + } + } else { + positions.push(position); + infos[position] = {before, after}; + } + } } - if (!node.ordered) { - const firstListItem = node.children ? node.children[0] : undefined; + positions.sort(numerical); + let start = config.before ? config.before.length : 0; + const end = value.length - (config.after ? config.after.length : 0); + index = -1; + while (++index < positions.length) { + const position = positions[index]; + if (position < start || position >= end) { + continue + } if ( - (bullet === '*' || bullet === '-') && - firstListItem && - (!firstListItem.children || !firstListItem.children[0]) && - state.stack[state.stack.length - 1] === 'list' && - state.stack[state.stack.length - 2] === 'listItem' && - state.stack[state.stack.length - 3] === 'list' && - state.stack[state.stack.length - 4] === 'listItem' && - state.indexStack[state.indexStack.length - 1] === 0 && - state.indexStack[state.indexStack.length - 2] === 0 && - state.indexStack[state.indexStack.length - 3] === 0 + (position + 1 < end && + positions[index + 1] === position + 1 && + infos[position].after && + !infos[position + 1].before && + !infos[position + 1].after) || + (positions[index - 1] === position - 1 && + infos[position].before && + !infos[position - 1].before && + !infos[position - 1].after) ) { - useDifferentMarker = true; + continue } - if (checkRule(state) === bullet && firstListItem) { - let index = -1; - while (++index < node.children.length) { - const item = node.children[index]; - if ( - item && - item.type === 'listItem' && - item.children && - item.children[0] && - item.children[0].type === 'thematicBreak' - ) { - useDifferentMarker = true; - break - } - } + if (start !== position) { + result.push(escapeBackslashes(value.slice(start, position), '\\')); + } + start = position; + if ( + /[!-/:-@[-`{-~]/.test(value.charAt(position)) && + (!config.encode || !config.encode.includes(value.charAt(position))) + ) { + result.push('\\'); + } else { + result.push( + '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';' + ); + start++; } } - if (useDifferentMarker) { - bullet = bulletOther; + result.push(escapeBackslashes(value.slice(start, end), config.after)); + return result.join('') +} +function numerical(a, b) { + return a - b +} +function escapeBackslashes(value, after) { + const expression = /\\(?=[!-/:-@[-`{-~])/g; + const positions = []; + const results = []; + const whole = value + after; + let index = -1; + let start = 0; + let match; + while ((match = expression.exec(whole))) { + positions.push(match.index); } - state.bulletCurrent = bullet; - const value = state.containerFlow(node, info); - state.bulletLastUsed = bullet; - state.bulletCurrent = bulletCurrent; - exit(); - return value + while (++index < positions.length) { + if (start !== positions[index]) { + results.push(value.slice(start, positions[index])); + } + results.push('\\'); + start = positions[index]; + } + results.push(value.slice(start)); + return results.join('') } -function checkListItemIndent(state) { - const style = state.options.listItemIndent || 'tab'; - if (style === 1 || style === '1') { - return 'one' +function track(config) { + const options = config || {}; + const now = options.now || {}; + let lineShift = options.lineShift || 0; + let line = now.line || 1; + let column = now.column || 1; + return {move, current, shift} + function current() { + return {now: {line, column}, lineShift} } - if (style !== 'tab' && style !== 'one' && style !== 'mixed') { - throw new Error( - 'Cannot serialize items with `' + - style + - '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' - ) + function shift(value) { + lineShift += value; + } + function move(input) { + const value = input || ''; + const chunks = value.split(/\r?\n|\r/g); + const tail = chunks[chunks.length - 1]; + line += chunks.length - 1; + column = + chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift; + return value } - return style } -function listItem(node, parent, state, info) { - const listItemIndent = checkListItemIndent(state); - let bullet = state.bulletCurrent || checkBullet(state); - if (parent && parent.type === 'list' && parent.ordered) { - bullet = - (typeof parent.start === 'number' && parent.start > -1 - ? parent.start - : 1) + - (state.options.incrementListMarker === false - ? 0 - : parent.children.indexOf(node)) + - bullet; +function toMarkdown(tree, options = {}) { + const state = { + enter, + indentLines, + associationId: association, + containerPhrasing: containerPhrasingBound, + containerFlow: containerFlowBound, + createTracker: track, + compilePattern, + safe: safeBound, + stack: [], + unsafe: [...unsafe], + join: [...join], + handlers: {...handle}, + options: {}, + indexStack: [], + handle: undefined + }; + configure(state, options); + if (state.options.tightDefinitions) { + state.join.push(joinDefinition); } - let size = bullet.length + 1; + state.handle = zwitch('type', { + invalid, + unknown, + handlers: state.handlers + }); + let result = state.handle(tree, undefined, state, { + before: '\n', + after: '\n', + now: {line: 1, column: 1}, + lineShift: 0 + }); if ( - listItemIndent === 'tab' || - (listItemIndent === 'mixed' && - ((parent && parent.type === 'list' && parent.spread) || node.spread)) + result && + result.charCodeAt(result.length - 1) !== 10 && + result.charCodeAt(result.length - 1) !== 13 ) { - size = Math.ceil(size / 4) * 4; + result += '\n'; } - const tracker = state.createTracker(info); - tracker.move(bullet + ' '.repeat(size - bullet.length)); - tracker.shift(size); - const exit = state.enter('listItem'); - const value = state.indentLines( - state.containerFlow(node, tracker.current()), - map - ); - exit(); - return value - function map(line, index, blank) { - if (index) { - return (blank ? '' : ' '.repeat(size)) + line + return result + function enter(name) { + state.stack.push(name); + return exit + function exit() { + state.stack.pop(); } - return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line } } - -function paragraph(node, _, state, info) { - const exit = state.enter('paragraph'); - const subexit = state.enter('phrasing'); - const value = state.containerPhrasing(node, info); - subexit(); - exit(); - return value +function invalid(value) { + throw new Error('Cannot handle value `' + value + '`, expected node') } - -const phrasing = ( - convert([ - 'break', - 'delete', - 'emphasis', - 'footnote', - 'footnoteReference', - 'image', - 'imageReference', - 'inlineCode', - 'link', - 'linkReference', - 'strong', - 'text' - ]) -); - -function root(node, _, state, info) { - const hasPhrasing = node.children.some((d) => phrasing(d)); - const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow; - return fn.call(state, node, info) +function unknown(value) { + const node = (value); + throw new Error('Cannot handle unknown node `' + node.type + '`') } - -function checkStrong(state) { - const marker = state.options.strong || '*'; - if (marker !== '*' && marker !== '_') { - throw new Error( - 'Cannot serialize strong with `' + - marker + - '` for `options.strong`, expected `*`, or `_`' - ) +function joinDefinition(left, right) { + if (left.type === 'definition' && left.type === right.type) { + return 0 } - return marker } - -strong.peek = strongPeek; -function strong(node, _, state, info) { - const marker = checkStrong(state); - const exit = state.enter('strong'); - const tracker = state.createTracker(info); - let value = tracker.move(marker + marker); - value += tracker.move( - state.containerPhrasing(node, { - before: value, - after: marker, - ...tracker.current() - }) - ); - value += tracker.move(marker + marker); - exit(); - return value +function containerPhrasingBound(parent, info) { + return containerPhrasing(parent, this, info) } -function strongPeek(_, _1, state) { - return state.options.strong || '*' +function containerFlowBound(parent, info) { + return containerFlow(parent, this, info) +} +function safeBound(value, config) { + return safe(this, value, config) } -function text$1(node, _, state, info) { - return state.safe(node.value, info) +function remarkStringify(options) { + const self = this; + self.compiler = compiler; + function compiler(tree) { + return toMarkdown(tree, { + ...self.data('settings'), + ...options, + extensions: self.data('toMarkdownExtensions') || [] + }) + } } -function checkRuleRepetition(state) { - const repetition = state.options.ruleRepetition || 3; - if (repetition < 3) { - throw new Error( - 'Cannot serialize rules with repetition `' + - repetition + - '` for `options.ruleRepetition`, expected `3` or more' - ) +function ccount(value, character) { + const source = String(value); + if (typeof character !== 'string') { + throw new TypeError('Expected character') } - return repetition + let count = 0; + let index = source.indexOf(character); + while (index !== -1) { + count++; + index = source.indexOf(character, index + character.length); + } + return count } -function thematicBreak(_, _1, state) { - const value = ( - checkRule(state) + (state.options.ruleSpaces ? ' ' : '') - ).repeat(checkRuleRepetition(state)); - return state.options.ruleSpaces ? value.slice(0, -1) : value +function escapeStringRegexp(string) { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + return string + .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') + .replace(/-/g, '\\x2d'); } -const handle = { - blockquote, - break: hardBreak, - code: code$1, - definition, - emphasis, - hardBreak, - heading, - html, - image, - imageReference, - inlineCode, - link, - linkReference, - list, - listItem, - paragraph, - root, - strong, - text: text$1, - thematicBreak -}; - -const join = [joinDefaults]; -function joinDefaults(left, right, parent, state) { - if ( - right.type === 'code' && - formatCodeAsIndented(right, state) && - (left.type === 'list' || - (left.type === right.type && formatCodeAsIndented(left, state))) - ) { - return false - } - if ( - left.type === 'list' && - left.type === right.type && - Boolean(left.ordered) === Boolean(right.ordered) && - !(left.ordered - ? state.options.bulletOrderedOther - : state.options.bulletOther) - ) { - return false +function findAndReplace(tree, list, options) { + const settings = options || {}; + const ignored = convert$A(settings.ignore || []); + const pairs = toPairs(list); + let pairIndex = -1; + while (++pairIndex < pairs.length) { + visitParents$A(tree, 'text', visitor); } - if ('spread' in parent && typeof parent.spread === 'boolean') { - if ( - left.type === 'paragraph' && - (left.type === right.type || - right.type === 'definition' || - (right.type === 'heading' && formatHeadingAsSetext(right, state))) - ) { - return + function visitor(node, parents) { + let index = -1; + let grandparent; + while (++index < parents.length) { + const parent = parents[index]; + const siblings = grandparent ? grandparent.children : undefined; + if ( + ignored( + parent, + siblings ? siblings.indexOf(parent) : undefined, + grandparent + ) + ) { + return + } + grandparent = parent; + } + if (grandparent) { + return handler(node, parents) + } + } + function handler(node, parents) { + const parent = parents[parents.length - 1]; + const find = pairs[pairIndex][0]; + const replace = pairs[pairIndex][1]; + let start = 0; + const siblings = parent.children; + const index = siblings.indexOf(node); + let change = false; + let nodes = []; + find.lastIndex = 0; + let match = find.exec(node.value); + while (match) { + const position = match.index; + const matchObject = { + index: match.index, + input: match.input, + stack: [...parents, node] + }; + let value = replace(...match, matchObject); + if (typeof value === 'string') { + value = value.length > 0 ? {type: 'text', value} : undefined; + } + if (value === false) { + find.lastIndex = position + 1; + } else { + if (start !== position) { + nodes.push({ + type: 'text', + value: node.value.slice(start, position) + }); + } + if (Array.isArray(value)) { + nodes.push(...value); + } else if (value) { + nodes.push(value); + } + start = position + match[0].length; + change = true; + } + if (!find.global) { + break + } + match = find.exec(node.value); } - return parent.spread ? 1 : 0 + if (change) { + if (start < node.value.length) { + nodes.push({type: 'text', value: node.value.slice(start)}); + } + parent.children.splice(index, 1, ...nodes); + } else { + nodes = [node]; + } + return index + nodes.length } } +function toPairs(tupleOrList) { + const result = []; + if (!Array.isArray(tupleOrList)) { + throw new TypeError('Expected find and replace tuple or list of tuples') + } + const list = + !tupleOrList[0] || Array.isArray(tupleOrList[0]) + ? tupleOrList + : [tupleOrList]; + let index = -1; + while (++index < list.length) { + const tuple = list[index]; + result.push([toExpression(tuple[0]), toFunction(tuple[1])]); + } + return result +} +function toExpression(find) { + return typeof find === 'string' ? new RegExp(escapeStringRegexp(find), 'g') : find +} +function toFunction(replace) { + return typeof replace === 'function' + ? replace + : function () { + return replace + } +} -const fullPhrasingSpans = [ - 'autolink', - 'destinationLiteral', - 'destinationRaw', - 'reference', - 'titleQuote', - 'titleApostrophe' -]; -const unsafe = [ - {character: '\t', after: '[\\r\\n]', inConstruct: 'phrasing'}, - {character: '\t', before: '[\\r\\n]', inConstruct: 'phrasing'}, - { - character: '\t', - inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] - }, - { - character: '\r', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedLangTilde', - 'codeFencedMetaGraveAccent', - 'codeFencedMetaTilde', - 'destinationLiteral', - 'headingAtx' - ] - }, - { - character: '\n', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedLangTilde', - 'codeFencedMetaGraveAccent', - 'codeFencedMetaTilde', - 'destinationLiteral', - 'headingAtx' +const inConstruct = 'phrasing'; +const notInConstruct = ['autolink', 'link', 'image', 'label']; +function gfmAutolinkLiteralFromMarkdown() { + return { + transforms: [transformGfmAutolinkLiterals], + enter: { + literalAutolink: enterLiteralAutolink, + literalAutolinkEmail: enterLiteralAutolinkValue, + literalAutolinkHttp: enterLiteralAutolinkValue, + literalAutolinkWww: enterLiteralAutolinkValue + }, + exit: { + literalAutolink: exitLiteralAutolink, + literalAutolinkEmail: exitLiteralAutolinkEmail, + literalAutolinkHttp: exitLiteralAutolinkHttp, + literalAutolinkWww: exitLiteralAutolinkWww + } + } +} +function gfmAutolinkLiteralToMarkdown() { + return { + unsafe: [ + { + character: '@', + before: '[+\\-.\\w]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + { + character: '.', + before: '[Ww]', + after: '[\\-.\\w]', + inConstruct, + notInConstruct + }, + { + character: ':', + before: '[ps]', + after: '\\/', + inConstruct, + notInConstruct + } ] - }, - {character: ' ', after: '[\\r\\n]', inConstruct: 'phrasing'}, - {character: ' ', before: '[\\r\\n]', inConstruct: 'phrasing'}, - { - character: ' ', - inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] - }, - { - character: '!', - after: '\\[', - inConstruct: 'phrasing', - notInConstruct: fullPhrasingSpans - }, - {character: '"', inConstruct: 'titleQuote'}, - {atBreak: true, character: '#'}, - {character: '#', inConstruct: 'headingAtx', after: '(?:[\r\n]|$)'}, - {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, - {character: "'", inConstruct: 'titleApostrophe'}, - {character: '(', inConstruct: 'destinationRaw'}, - { - before: '\\]', - character: '(', - inConstruct: 'phrasing', - notInConstruct: fullPhrasingSpans - }, - {atBreak: true, before: '\\d+', character: ')'}, - {character: ')', inConstruct: 'destinationRaw'}, - {atBreak: true, character: '*', after: '(?:[ \t\r\n*])'}, - {character: '*', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, - {atBreak: true, character: '+', after: '(?:[ \t\r\n])'}, - {atBreak: true, character: '-', after: '(?:[ \t\r\n-])'}, - {atBreak: true, before: '\\d+', character: '.', after: '(?:[ \t\r\n]|$)'}, - {atBreak: true, character: '<', after: '[!/?A-Za-z]'}, - { - character: '<', - after: '[!/?A-Za-z]', - inConstruct: 'phrasing', - notInConstruct: fullPhrasingSpans - }, - {character: '<', inConstruct: 'destinationLiteral'}, - {atBreak: true, character: '='}, - {atBreak: true, character: '>'}, - {character: '>', inConstruct: 'destinationLiteral'}, - {atBreak: true, character: '['}, - {character: '[', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, - {character: '[', inConstruct: ['label', 'reference']}, - {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, - {character: ']', inConstruct: ['label', 'reference']}, - {atBreak: true, character: '_'}, - {character: '_', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, - {atBreak: true, character: '`'}, - { - character: '`', - inConstruct: ['codeFencedLangGraveAccent', 'codeFencedMetaGraveAccent'] - }, - {character: '`', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, - {atBreak: true, character: '~'} -]; - -function association(node) { - if (node.label || !node.identifier) { - return node.label || '' } - return decodeString(node.identifier) } - -function containerPhrasing(parent, state, info) { - const indexStack = state.indexStack; - const children = parent.children || []; - const results = []; - let index = -1; - let before = info.before; - indexStack.push(-1); - let tracker = state.createTracker(info); - while (++index < children.length) { - const child = children[index]; - let after; - indexStack[indexStack.length - 1] = index; - if (index + 1 < children.length) { - let handle = state.handle.handlers[children[index + 1].type]; - if (handle && handle.peek) handle = handle.peek; - after = handle - ? handle(children[index + 1], parent, state, { - before: '', - after: '', - ...tracker.current() - }).charAt(0) - : ''; - } else { - after = info.after; - } - if ( - results.length > 0 && - (before === '\r' || before === '\n') && - child.type === 'html' - ) { - results[results.length - 1] = results[results.length - 1].replace( - /(\r?\n|\r)$/, - ' ' - ); - before = ' '; - tracker = state.createTracker(info); - tracker.move(results.join('')); - } - results.push( - tracker.move( - state.handle(child, parent, state, { - ...tracker.current(), - before, - after - }) - ) - ); - before = results[results.length - 1].slice(-1); +function enterLiteralAutolink(token) { + this.enter({type: 'link', title: null, url: '', children: []}, token); +} +function enterLiteralAutolinkValue(token) { + this.config.enter.autolinkProtocol.call(this, token); +} +function exitLiteralAutolinkHttp(token) { + this.config.exit.autolinkProtocol.call(this, token); +} +function exitLiteralAutolinkWww(token) { + this.config.exit.data.call(this, token); + const node = this.stack[this.stack.length - 1]; + ok$B(node.type === 'link'); + node.url = 'http://' + this.sliceSerialize(token); +} +function exitLiteralAutolinkEmail(token) { + this.config.exit.autolinkEmail.call(this, token); +} +function exitLiteralAutolink(token) { + this.exit(token); +} +function transformGfmAutolinkLiterals(tree) { + findAndReplace( + tree, + [ + [/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi, findUrl], + [/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g, findEmail] + ], + {ignore: ['link', 'linkReference']} + ); +} +function findUrl(_, protocol, domain, path, match) { + let prefix = ''; + if (!previous(match)) { + return false + } + if (/^w/i.test(protocol)) { + domain = protocol + domain; + protocol = ''; + prefix = 'http://'; + } + if (!isCorrectDomain(domain)) { + return false + } + const parts = splitUrl(domain + path); + if (!parts[0]) return false + const result = { + type: 'link', + title: null, + url: prefix + protocol + parts[0], + children: [{type: 'text', value: protocol + parts[0]}] + }; + if (parts[1]) { + return [result, {type: 'text', value: parts[1]}] + } + return result +} +function findEmail(_, atext, label, match) { + if ( + !previous(match, true) || + /[-\d_]$/.test(label) + ) { + return false } - indexStack.pop(); - return results.join('') + return { + type: 'link', + title: null, + url: 'mailto:' + atext + '@' + label, + children: [{type: 'text', value: atext + '@' + label}] + } +} +function isCorrectDomain(domain) { + const parts = domain.split('.'); + if ( + parts.length < 2 || + (parts[parts.length - 1] && + (/_/.test(parts[parts.length - 1]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 1]))) || + (parts[parts.length - 2] && + (/_/.test(parts[parts.length - 2]) || + !/[a-zA-Z\d]/.test(parts[parts.length - 2]))) + ) { + return false + } + return true +} +function splitUrl(url) { + const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); + if (!trailExec) { + return [url, undefined] + } + url = url.slice(0, trailExec.index); + let trail = trailExec[0]; + let closingParenIndex = trail.indexOf(')'); + const openingParens = ccount(url, '('); + let closingParens = ccount(url, ')'); + while (closingParenIndex !== -1 && openingParens > closingParens) { + url += trail.slice(0, closingParenIndex + 1); + trail = trail.slice(closingParenIndex + 1); + closingParenIndex = trail.indexOf(')'); + closingParens++; + } + return [url, trail] +} +function previous(match, email) { + const code = match.input.charCodeAt(match.index - 1); + return ( + (match.index === 0 || + unicodeWhitespace(code) || + unicodePunctuation(code)) && + (!email || code !== 47) + ) } -function containerFlow(parent, state, info) { - const indexStack = state.indexStack; - const children = parent.children || []; - const tracker = state.createTracker(info); - const results = []; - let index = -1; - indexStack.push(-1); - while (++index < children.length) { - const child = children[index]; - indexStack[indexStack.length - 1] = index; - results.push( - tracker.move( - state.handle(child, parent, state, { - before: '\n', - after: '\n', - ...tracker.current() - }) - ) - ); - if (child.type !== 'list') { - state.bulletLastUsed = undefined; - } - if (index < children.length - 1) { - results.push( - tracker.move(between(child, children[index + 1], parent, state)) - ); +footnoteReference.peek = footnoteReferencePeek; +function gfmFootnoteFromMarkdown() { + return { + enter: { + gfmFootnoteDefinition: enterFootnoteDefinition, + gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString, + gfmFootnoteCall: enterFootnoteCall, + gfmFootnoteCallString: enterFootnoteCallString + }, + exit: { + gfmFootnoteDefinition: exitFootnoteDefinition, + gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString, + gfmFootnoteCall: exitFootnoteCall, + gfmFootnoteCallString: exitFootnoteCallString } } - indexStack.pop(); - return results.join('') } -function between(left, right, parent, state) { - let index = state.join.length; - while (index--) { - const result = state.join[index](left, right, parent, state); - if (result === true || result === 1) { - break - } - if (typeof result === 'number') { - return '\n'.repeat(1 + result) - } - if (result === false) { - return '\n\n\n\n' - } +function gfmFootnoteToMarkdown() { + return { + unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}], + handlers: {footnoteDefinition, footnoteReference} + } +} +function enterFootnoteDefinition(token) { + this.enter( + {type: 'footnoteDefinition', identifier: '', label: '', children: []}, + token + ); +} +function enterFootnoteDefinitionLabelString() { + this.buffer(); +} +function exitFootnoteDefinitionLabelString(token) { + const label = this.resume(); + const node = this.stack[this.stack.length - 1]; + ok$B(node.type === 'footnoteDefinition'); + node.label = label; + node.identifier = normalizeIdentifier$1( + this.sliceSerialize(token) + ).toLowerCase(); +} +function exitFootnoteDefinition(token) { + this.exit(token); +} +function enterFootnoteCall(token) { + this.enter({type: 'footnoteReference', identifier: '', label: ''}, token); +} +function enterFootnoteCallString() { + this.buffer(); +} +function exitFootnoteCallString(token) { + const label = this.resume(); + const node = this.stack[this.stack.length - 1]; + ok$B(node.type === 'footnoteReference'); + node.label = label; + node.identifier = normalizeIdentifier$1( + this.sliceSerialize(token) + ).toLowerCase(); +} +function exitFootnoteCall(token) { + this.exit(token); +} +function footnoteReference(node, _, state, info) { + const tracker = state.createTracker(info); + let value = tracker.move('[^'); + const exit = state.enter('footnoteReference'); + const subexit = state.enter('reference'); + value += tracker.move( + state.safe(state.associationId(node), { + ...tracker.current(), + before: value, + after: ']' + }) + ); + subexit(); + exit(); + value += tracker.move(']'); + return value +} +function footnoteReferencePeek() { + return '[' +} +function footnoteDefinition(node, _, state, info) { + const tracker = state.createTracker(info); + let value = tracker.move('[^'); + const exit = state.enter('footnoteDefinition'); + const subexit = state.enter('label'); + value += tracker.move( + state.safe(state.associationId(node), { + ...tracker.current(), + before: value, + after: ']' + }) + ); + subexit(); + value += tracker.move( + ']:' + (node.children && node.children.length > 0 ? ' ' : '') + ); + tracker.shift(4); + value += tracker.move( + state.indentLines(state.containerFlow(node, tracker.current()), map$1) + ); + exit(); + return value +} +function map$1(line, index, blank) { + if (index === 0) { + return line } - return '\n\n' + return (blank ? '' : ' ') + line } -const eol$1 = /\r?\n|\r/g; -function indentLines(value, map) { - const result = []; - let start = 0; - let line = 0; - let match; - while ((match = eol$1.exec(value))) { - one(value.slice(start, match.index)); - result.push(match[0]); - start = match.index + match[0].length; - line++; +const constructsWithoutStrikethrough = [ + 'autolink', + 'destinationLiteral', + 'destinationRaw', + 'reference', + 'titleQuote', + 'titleApostrophe' +]; +handleDelete.peek = peekDelete; +function gfmStrikethroughFromMarkdown() { + return { + canContainEols: ['delete'], + enter: {strikethrough: enterStrikethrough}, + exit: {strikethrough: exitStrikethrough} } - one(value.slice(start)); - return result.join('') - function one(value) { - result.push(map(value, line, !value)); +} +function gfmStrikethroughToMarkdown() { + return { + unsafe: [ + { + character: '~', + inConstruct: 'phrasing', + notInConstruct: constructsWithoutStrikethrough + } + ], + handlers: {delete: handleDelete} } } +function enterStrikethrough(token) { + this.enter({type: 'delete', children: []}, token); +} +function exitStrikethrough(token) { + this.exit(token); +} +function handleDelete(node, _, state, info) { + const tracker = state.createTracker(info); + const exit = state.enter('strikethrough'); + let value = tracker.move('~~'); + value += state.containerPhrasing(node, { + ...tracker.current(), + before: value, + after: '~' + }); + value += tracker.move('~~'); + exit(); + return value +} +function peekDelete() { + return '~' +} -function safe(state, input, config) { - const value = (config.before || '') + (input || '') + (config.after || ''); - const positions = []; - const result = []; - const infos = {}; - let index = -1; - while (++index < state.unsafe.length) { - const pattern = state.unsafe[index]; - if (!patternInScope(state.stack, pattern)) { - continue +function markdownTable(table, options = {}) { + const align = (options.align || []).concat(); + const stringLength = options.stringLength || defaultStringLength; + const alignments = []; + const cellMatrix = []; + const sizeMatrix = []; + const longestCellByColumn = []; + let mostCellsPerRow = 0; + let rowIndex = -1; + while (++rowIndex < table.length) { + const row = []; + const sizes = []; + let columnIndex = -1; + if (table[rowIndex].length > mostCellsPerRow) { + mostCellsPerRow = table[rowIndex].length; } - const expression = patternCompile(pattern); - let match; - while ((match = expression.exec(value))) { - const before = 'before' in pattern || Boolean(pattern.atBreak); - const after = 'after' in pattern; - const position = match.index + (before ? match[1].length : 0); - if (positions.includes(position)) { - if (infos[position].before && !before) { - infos[position].before = false; - } - if (infos[position].after && !after) { - infos[position].after = false; + while (++columnIndex < table[rowIndex].length) { + const cell = serialize(table[rowIndex][columnIndex]); + if (options.alignDelimiters !== false) { + const size = stringLength(cell); + sizes[columnIndex] = size; + if ( + longestCellByColumn[columnIndex] === undefined || + size > longestCellByColumn[columnIndex] + ) { + longestCellByColumn[columnIndex] = size; } - } else { - positions.push(position); - infos[position] = {before, after}; } + row.push(cell); } + cellMatrix[rowIndex] = row; + sizeMatrix[rowIndex] = sizes; } - positions.sort(numerical); - let start = config.before ? config.before.length : 0; - const end = value.length - (config.after ? config.after.length : 0); - index = -1; - while (++index < positions.length) { - const position = positions[index]; - if (position < start || position >= end) { - continue + let columnIndex = -1; + if (typeof align === 'object' && 'length' in align) { + while (++columnIndex < mostCellsPerRow) { + alignments[columnIndex] = toAlignment(align[columnIndex]); } - if ( - (position + 1 < end && - positions[index + 1] === position + 1 && - infos[position].after && - !infos[position + 1].before && - !infos[position + 1].after) || - (positions[index - 1] === position - 1 && - infos[position].before && - !infos[position - 1].before && - !infos[position - 1].after) - ) { - continue + } else { + const code = toAlignment(align); + while (++columnIndex < mostCellsPerRow) { + alignments[columnIndex] = code; } - if (start !== position) { - result.push(escapeBackslashes(value.slice(start, position), '\\')); + } + columnIndex = -1; + const row = []; + const sizes = []; + while (++columnIndex < mostCellsPerRow) { + const code = alignments[columnIndex]; + let before = ''; + let after = ''; + if (code === 99 ) { + before = ':'; + after = ':'; + } else if (code === 108 ) { + before = ':'; + } else if (code === 114 ) { + after = ':'; } - start = position; - if ( - /[!-/:-@[-`{-~]/.test(value.charAt(position)) && - (!config.encode || !config.encode.includes(value.charAt(position))) - ) { - result.push('\\'); - } else { - result.push( - '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';' - ); - start++; + let size = + options.alignDelimiters === false + ? 1 + : Math.max( + 1, + longestCellByColumn[columnIndex] - before.length - after.length + ); + const cell = before + '-'.repeat(size) + after; + if (options.alignDelimiters !== false) { + size = before.length + size + after.length; + if (size > longestCellByColumn[columnIndex]) { + longestCellByColumn[columnIndex] = size; + } + sizes[columnIndex] = size; + } + row[columnIndex] = cell; + } + cellMatrix.splice(1, 0, row); + sizeMatrix.splice(1, 0, sizes); + rowIndex = -1; + const lines = []; + while (++rowIndex < cellMatrix.length) { + const row = cellMatrix[rowIndex]; + const sizes = sizeMatrix[rowIndex]; + columnIndex = -1; + const line = []; + while (++columnIndex < mostCellsPerRow) { + const cell = row[columnIndex] || ''; + let before = ''; + let after = ''; + if (options.alignDelimiters !== false) { + const size = + longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); + const code = alignments[columnIndex]; + if (code === 114 ) { + before = ' '.repeat(size); + } else if (code === 99 ) { + if (size % 2) { + before = ' '.repeat(size / 2 + 0.5); + after = ' '.repeat(size / 2 - 0.5); + } else { + before = ' '.repeat(size / 2); + after = before; + } + } else { + after = ' '.repeat(size); + } + } + if (options.delimiterStart !== false && !columnIndex) { + line.push('|'); + } + if ( + options.padding !== false && + !(options.alignDelimiters === false && cell === '') && + (options.delimiterStart !== false || columnIndex) + ) { + line.push(' '); + } + if (options.alignDelimiters !== false) { + line.push(before); + } + line.push(cell); + if (options.alignDelimiters !== false) { + line.push(after); + } + if (options.padding !== false) { + line.push(' '); + } + if ( + options.delimiterEnd !== false || + columnIndex !== mostCellsPerRow - 1 + ) { + line.push('|'); + } + } + lines.push( + options.delimiterEnd === false + ? line.join('').replace(/ +$/, '') + : line.join('') + ); + } + return lines.join('\n') +} +function serialize(value) { + return value === null || value === undefined ? '' : String(value) +} +function defaultStringLength(value) { + return value.length +} +function toAlignment(value) { + const code = typeof value === 'string' ? value.codePointAt(0) : 0; + return code === 67 || code === 99 + ? 99 + : code === 76 || code === 108 + ? 108 + : code === 82 || code === 114 + ? 114 + : 0 +} + +function gfmTableFromMarkdown() { + return { + enter: { + table: enterTable, + tableData: enterCell, + tableHeader: enterCell, + tableRow: enterRow + }, + exit: { + codeText: exitCodeText, + table: exitTable, + tableData: exit, + tableHeader: exit, + tableRow: exit } } - result.push(escapeBackslashes(value.slice(start, end), config.after)); - return result.join('') } -function numerical(a, b) { - return a - b +function enterTable(token) { + const align = token._align; + this.enter( + { + type: 'table', + align: align.map(function (d) { + return d === 'none' ? null : d + }), + children: [] + }, + token + ); + this.data.inTable = true; } -function escapeBackslashes(value, after) { - const expression = /\\(?=[!-/:-@[-`{-~])/g; - const positions = []; - const results = []; - const whole = value + after; - let index = -1; - let start = 0; - let match; - while ((match = expression.exec(whole))) { - positions.push(match.index); +function exitTable(token) { + this.exit(token); + this.data.inTable = undefined; +} +function enterRow(token) { + this.enter({type: 'tableRow', children: []}, token); +} +function exit(token) { + this.exit(token); +} +function enterCell(token) { + this.enter({type: 'tableCell', children: []}, token); +} +function exitCodeText(token) { + let value = this.resume(); + if (this.data.inTable) { + value = value.replace(/\\([\\|])/g, replace); } - while (++index < positions.length) { - if (start !== positions[index]) { - results.push(value.slice(start, positions[index])); + const node = this.stack[this.stack.length - 1]; + ok$B(node.type === 'inlineCode'); + node.value = value; + this.exit(token); +} +function replace($0, $1) { + return $1 === '|' ? $1 : $0 +} +function gfmTableToMarkdown(options) { + const settings = options || {}; + const padding = settings.tableCellPadding; + const alignDelimiters = settings.tablePipeAlign; + const stringLength = settings.stringLength; + const around = padding ? ' ' : '|'; + return { + unsafe: [ + {character: '\r', inConstruct: 'tableCell'}, + {character: '\n', inConstruct: 'tableCell'}, + {atBreak: true, character: '|', after: '[\t :-]'}, + {character: '|', inConstruct: 'tableCell'}, + {atBreak: true, character: ':', after: '-'}, + {atBreak: true, character: '-', after: '[:|-]'} + ], + handlers: { + inlineCode: inlineCodeWithTable, + table: handleTable, + tableCell: handleTableCell, + tableRow: handleTableRow } - results.push('\\'); - start = positions[index]; } - results.push(value.slice(start)); - return results.join('') -} - -function track(config) { - const options = config || {}; - const now = options.now || {}; - let lineShift = options.lineShift || 0; - let line = now.line || 1; - let column = now.column || 1; - return {move, current, shift} - function current() { - return {now: {line, column}, lineShift} + function handleTable(node, _, state, info) { + return serializeData(handleTableAsData(node, state, info), node.align) } - function shift(value) { - lineShift += value; + function handleTableRow(node, _, state, info) { + const row = handleTableRowAsData(node, state, info); + const value = serializeData([row]); + return value.slice(0, value.indexOf('\n')) } - function move(input) { - const value = input || ''; - const chunks = value.split(/\r?\n|\r/g); - const tail = chunks[chunks.length - 1]; - line += chunks.length - 1; - column = - chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift; + function handleTableCell(node, _, state, info) { + const exit = state.enter('tableCell'); + const subexit = state.enter('phrasing'); + const value = state.containerPhrasing(node, { + ...info, + before: around, + after: around + }); + subexit(); + exit(); return value } -} - -function toMarkdown(tree, options = {}) { - const state = { - enter, - indentLines, - associationId: association, - containerPhrasing: containerPhrasingBound, - containerFlow: containerFlowBound, - createTracker: track, - safe: safeBound, - stack: [], - unsafe: [], - join: [], - handlers: {}, - options: {}, - indexStack: [], - handle: undefined - }; - configure(state, {unsafe, join, handlers: handle}); - configure(state, options); - if (state.options.tightDefinitions) { - configure(state, {join: [joinDefinition]}); + function serializeData(matrix, align) { + return markdownTable(matrix, { + align, + alignDelimiters, + padding, + stringLength + }) } - state.handle = zwitch('type', { - invalid, - unknown, - handlers: state.handlers - }); - let result = state.handle(tree, undefined, state, { - before: '\n', - after: '\n', - now: {line: 1, column: 1}, - lineShift: 0 - }); - if ( - result && - result.charCodeAt(result.length - 1) !== 10 && - result.charCodeAt(result.length - 1) !== 13 - ) { - result += '\n'; + function handleTableAsData(node, state, info) { + const children = node.children; + let index = -1; + const result = []; + const subexit = state.enter('table'); + while (++index < children.length) { + result[index] = handleTableRowAsData(children[index], state, info); + } + subexit(); + return result } - return result - function enter(name) { - state.stack.push(name); - return exit - function exit() { - state.stack.pop(); + function handleTableRowAsData(node, state, info) { + const children = node.children; + let index = -1; + const result = []; + const subexit = state.enter('tableRow'); + while (++index < children.length) { + result[index] = handleTableCell(children[index], node, state, info); } + subexit(); + return result + } + function inlineCodeWithTable(node, parent, state) { + let value = handle.inlineCode(node, parent, state); + if (state.stack.includes('tableCell')) { + value = value.replace(/\|/g, '\\$&'); + } + return value } } -function invalid(value) { - throw new Error('Cannot handle value `' + value + '`, expected node') -} -function unknown(node) { - throw new Error('Cannot handle unknown node `' + node.type + '`') + +function gfmTaskListItemFromMarkdown() { + return { + exit: { + taskListCheckValueChecked: exitCheck, + taskListCheckValueUnchecked: exitCheck, + paragraph: exitParagraphWithTaskListItem + } + } } -function joinDefinition(left, right) { - if (left.type === 'definition' && left.type === right.type) { - return 0 +function gfmTaskListItemToMarkdown() { + return { + unsafe: [{atBreak: true, character: '-', after: '[:|-]'}], + handlers: {listItem: listItemWithTaskListItem} } } -function containerPhrasingBound(parent, info) { - return containerPhrasing(parent, this, info) +function exitCheck(token) { + const node = this.stack[this.stack.length - 2]; + ok$B(node.type === 'listItem'); + node.checked = token.type === 'taskListCheckValueChecked'; } -function containerFlowBound(parent, info) { - return containerFlow(parent, this, info) +function exitParagraphWithTaskListItem(token) { + const parent = this.stack[this.stack.length - 2]; + if ( + parent && + parent.type === 'listItem' && + typeof parent.checked === 'boolean' + ) { + const node = this.stack[this.stack.length - 1]; + ok$B(node.type === 'paragraph'); + const head = node.children[0]; + if (head && head.type === 'text') { + const siblings = parent.children; + let index = -1; + let firstParaghraph; + while (++index < siblings.length) { + const sibling = siblings[index]; + if (sibling.type === 'paragraph') { + firstParaghraph = sibling; + break + } + } + if (firstParaghraph === node) { + head.value = head.value.slice(1); + if (head.value.length === 0) { + node.children.shift(); + } else if ( + node.position && + head.position && + typeof head.position.start.offset === 'number' + ) { + head.position.start.column++; + head.position.start.offset++; + node.position.start = Object.assign({}, head.position.start); + } + } + } + } + this.exit(token); } -function safeBound(value, config) { - return safe(this, value, config) +function listItemWithTaskListItem(node, parent, state, info) { + const head = node.children[0]; + const checkable = + typeof node.checked === 'boolean' && head && head.type === 'paragraph'; + const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '; + const tracker = state.createTracker(info); + if (checkable) { + tracker.move(checkbox); + } + let value = handle.listItem(node, parent, state, { + ...info, + ...tracker.current() + }); + if (checkable) { + value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); + } + return value + function check($0) { + return $0 + checkbox + } } -function remarkStringify(options) { - const compiler = (tree) => { - const settings = (this.data('settings')); - return toMarkdown( - tree, - Object.assign({}, settings, options, { - extensions: - ( - this.data('toMarkdownExtensions') - ) || [] - }) - ) - }; - Object.assign(this, {Compiler: compiler}); +function gfmFromMarkdown() { + return [ + gfmAutolinkLiteralFromMarkdown(), + gfmFootnoteFromMarkdown(), + gfmStrikethroughFromMarkdown(), + gfmTableFromMarkdown(), + gfmTaskListItemFromMarkdown() + ] +} +function gfmToMarkdown(options) { + return { + extensions: [ + gfmAutolinkLiteralToMarkdown(), + gfmFootnoteToMarkdown(), + gfmStrikethroughToMarkdown(), + gfmTableToMarkdown(options), + gfmTaskListItemToMarkdown() + ] + } } const wwwPrefix = { @@ -9600,9 +10444,11 @@ const emailAutolink = { previous: previousEmail }; const text = {}; -const gfmAutolinkLiteral = { - text -}; +function gfmAutolinkLiteral() { + return { + text + } +} let code = 48; while (code < 123) { text[code] = emailAutolink; @@ -9757,2114 +10603,1266 @@ function tokenizeProtocolAutolink(effects, ok, nok) { function protocolAfter(code) { effects.exit('literalAutolinkHttp'); effects.exit('literalAutolink'); - return ok(code) - } -} -function tokenizeWwwPrefix(effects, ok, nok) { - let size = 0; - return wwwPrefixInside - function wwwPrefixInside(code) { - if ((code === 87 || code === 119) && size < 3) { - size++; - effects.consume(code); - return wwwPrefixInside - } - if (code === 46 && size === 3) { - effects.consume(code); - return wwwPrefixAfter - } - return nok(code) - } - function wwwPrefixAfter(code) { - return code === null ? nok(code) : ok(code) - } -} -function tokenizeDomain(effects, ok, nok) { - let underscoreInLastSegment; - let underscoreInLastLastSegment; - let seen; - return domainInside - function domainInside(code) { - if (code === 46 || code === 95) { - return effects.check(trail, domainAfter, domainAtPunctuation)(code) - } - if ( - code === null || - markdownLineEndingOrSpace(code) || - unicodeWhitespace(code) || - (code !== 45 && unicodePunctuation(code)) - ) { - return domainAfter(code) - } - seen = true; - effects.consume(code); - return domainInside - } - function domainAtPunctuation(code) { - if (code === 95) { - underscoreInLastSegment = true; - } - else { - underscoreInLastLastSegment = underscoreInLastSegment; - underscoreInLastSegment = undefined; - } - effects.consume(code); - return domainInside - } - function domainAfter(code) { - if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) { - return nok(code) - } - return ok(code) - } -} -function tokenizePath(effects, ok) { - let sizeOpen = 0; - let sizeClose = 0; - return pathInside - function pathInside(code) { - if (code === 40) { - sizeOpen++; - effects.consume(code); - return pathInside - } - if (code === 41 && sizeClose < sizeOpen) { - return pathAtPunctuation(code) - } - if ( - code === 33 || - code === 34 || - code === 38 || - code === 39 || - code === 41 || - code === 42 || - code === 44 || - code === 46 || - code === 58 || - code === 59 || - code === 60 || - code === 63 || - code === 93 || - code === 95 || - code === 126 - ) { - return effects.check(trail, ok, pathAtPunctuation)(code) - } - if ( - code === null || - markdownLineEndingOrSpace(code) || - unicodeWhitespace(code) - ) { - return ok(code) - } - effects.consume(code); - return pathInside - } - function pathAtPunctuation(code) { - if (code === 41) { - sizeClose++; - } - effects.consume(code); - return pathInside - } -} -function tokenizeTrail(effects, ok, nok) { - return trail - function trail(code) { - if ( - code === 33 || - code === 34 || - code === 39 || - code === 41 || - code === 42 || - code === 44 || - code === 46 || - code === 58 || - code === 59 || - code === 63 || - code === 95 || - code === 126 - ) { - effects.consume(code); - return trail - } - if (code === 38) { - effects.consume(code); - return trailCharRefStart - } - if (code === 93) { - effects.consume(code); - return trailBracketAfter - } - if ( - code === 60 || - code === null || - markdownLineEndingOrSpace(code) || - unicodeWhitespace(code) - ) { - return ok(code) - } - return nok(code) - } - function trailBracketAfter(code) { - if ( - code === null || - code === 40 || - code === 91 || - markdownLineEndingOrSpace(code) || - unicodeWhitespace(code) - ) { - return ok(code) - } - return trail(code) - } - function trailCharRefStart(code) { - return asciiAlpha(code) ? trailCharRefInside(code) : nok(code) - } - function trailCharRefInside(code) { - if (code === 59) { - effects.consume(code); - return trail - } - if (asciiAlpha(code)) { - effects.consume(code); - return trailCharRefInside - } - return nok(code) - } -} -function tokenizeEmailDomainDotTrail(effects, ok, nok) { - return start - function start(code) { - effects.consume(code); - return after - } - function after(code) { - return asciiAlphanumeric(code) ? nok(code) : ok(code) - } -} -function previousWww(code) { - return ( - code === null || - code === 40 || - code === 42 || - code === 95 || - code === 91 || - code === 93 || - code === 126 || - markdownLineEndingOrSpace(code) - ) -} -function previousProtocol(code) { - return !asciiAlpha(code) -} -function previousEmail(code) { - return !(code === 47 || gfmAtext(code)) -} -function gfmAtext(code) { - return ( - code === 43 || - code === 45 || - code === 46 || - code === 95 || - asciiAlphanumeric(code) - ) -} -function previousUnbalanced(events) { - let index = events.length; - let result = false; - while (index--) { - const token = events[index][1]; - if ( - (token.type === 'labelLink' || token.type === 'labelImage') && - !token._balanced - ) { - result = true; - break - } - if (token._gfmAutolinkLiteralWalkedInto) { - result = false; - break - } - } - if (events.length > 0 && !result) { - events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; + return ok(code) } - return result } - -const indent = { - tokenize: tokenizeIndent, - partial: true -}; -function gfmFootnote() { - return { - document: { - [91]: { - tokenize: tokenizeDefinitionStart, - continuation: { - tokenize: tokenizeDefinitionContinuation - }, - exit: gfmFootnoteDefinitionEnd - } - }, - text: { - [91]: { - tokenize: tokenizeGfmFootnoteCall - }, - [93]: { - add: 'after', - tokenize: tokenizePotentialGfmFootnoteCall, - resolveTo: resolveToPotentialGfmFootnoteCall - } +function tokenizeWwwPrefix(effects, ok, nok) { + let size = 0; + return wwwPrefixInside + function wwwPrefixInside(code) { + if ((code === 87 || code === 119) && size < 3) { + size++; + effects.consume(code); + return wwwPrefixInside + } + if (code === 46 && size === 3) { + effects.consume(code); + return wwwPrefixAfter } + return nok(code) + } + function wwwPrefixAfter(code) { + return code === null ? nok(code) : ok(code) } } -function tokenizePotentialGfmFootnoteCall(effects, ok, nok) { - const self = this; - let index = self.events.length; - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); - let labelStart; - while (index--) { - const token = self.events[index][1]; - if (token.type === 'labelImage') { - labelStart = token; - break +function tokenizeDomain(effects, ok, nok) { + let underscoreInLastSegment; + let underscoreInLastLastSegment; + let seen; + return domainInside + function domainInside(code) { + if (code === 46 || code === 95) { + return effects.check(trail, domainAfter, domainAtPunctuation)(code) } if ( - token.type === 'gfmFootnoteCall' || - token.type === 'labelLink' || - token.type === 'label' || - token.type === 'image' || - token.type === 'link' + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) || + (code !== 45 && unicodePunctuation(code)) ) { - break + return domainAfter(code) } + seen = true; + effects.consume(code); + return domainInside } - return start - function start(code) { - if (!labelStart || !labelStart._balanced) { - return nok(code) + function domainAtPunctuation(code) { + if (code === 95) { + underscoreInLastSegment = true; } - const id = normalizeIdentifier( - self.sliceSerialize({ - start: labelStart.end, - end: self.now() - }) - ); - if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) { - return nok(code) + else { + underscoreInLastLastSegment = underscoreInLastSegment; + underscoreInLastSegment = undefined; } - effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); - effects.exit('gfmFootnoteCallLabelMarker'); + return domainInside + } + function domainAfter(code) { + if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) { + return nok(code) + } return ok(code) } } -function resolveToPotentialGfmFootnoteCall(events, context) { - let index = events.length; - while (index--) { +function tokenizePath(effects, ok) { + let sizeOpen = 0; + let sizeClose = 0; + return pathInside + function pathInside(code) { + if (code === 40) { + sizeOpen++; + effects.consume(code); + return pathInside + } + if (code === 41 && sizeClose < sizeOpen) { + return pathAtPunctuation(code) + } if ( - events[index][1].type === 'labelImage' && - events[index][0] === 'enter' + code === 33 || + code === 34 || + code === 38 || + code === 39 || + code === 41 || + code === 42 || + code === 44 || + code === 46 || + code === 58 || + code === 59 || + code === 60 || + code === 63 || + code === 93 || + code === 95 || + code === 126 ) { - events[index][1]; - break + return effects.check(trail, ok, pathAtPunctuation)(code) + } + if ( + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) + ) { + return ok(code) } - } - events[index + 1][1].type = 'data'; - events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'; - const call = { - type: 'gfmFootnoteCall', - start: Object.assign({}, events[index + 3][1].start), - end: Object.assign({}, events[events.length - 1][1].end) - }; - const marker = { - type: 'gfmFootnoteCallMarker', - start: Object.assign({}, events[index + 3][1].end), - end: Object.assign({}, events[index + 3][1].end) - }; - marker.end.column++; - marker.end.offset++; - marker.end._bufferIndex++; - const string = { - type: 'gfmFootnoteCallString', - start: Object.assign({}, marker.end), - end: Object.assign({}, events[events.length - 1][1].start) - }; - const chunk = { - type: 'chunkString', - contentType: 'string', - start: Object.assign({}, string.start), - end: Object.assign({}, string.end) - }; - const replacement = [ - events[index + 1], - events[index + 2], - ['enter', call, context], - events[index + 3], - events[index + 4], - ['enter', marker, context], - ['exit', marker, context], - ['enter', string, context], - ['enter', chunk, context], - ['exit', chunk, context], - ['exit', string, context], - events[events.length - 2], - events[events.length - 1], - ['exit', call, context] - ]; - events.splice(index, events.length - index + 1, ...replacement); - return events -} -function tokenizeGfmFootnoteCall(effects, ok, nok) { - const self = this; - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); - let size = 0; - let data; - return start - function start(code) { - effects.enter('gfmFootnoteCall'); - effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); - effects.exit('gfmFootnoteCallLabelMarker'); - return callStart + return pathInside } - function callStart(code) { - if (code !== 94) return nok(code) - effects.enter('gfmFootnoteCallMarker'); + function pathAtPunctuation(code) { + if (code === 41) { + sizeClose++; + } effects.consume(code); - effects.exit('gfmFootnoteCallMarker'); - effects.enter('gfmFootnoteCallString'); - effects.enter('chunkString').contentType = 'string'; - return callData + return pathInside } - function callData(code) { +} +function tokenizeTrail(effects, ok, nok) { + return trail + function trail(code) { if ( - size > 999 || - (code === 93 && !data) || - code === null || - code === 91 || - markdownLineEndingOrSpace(code) + code === 33 || + code === 34 || + code === 39 || + code === 41 || + code === 42 || + code === 44 || + code === 46 || + code === 58 || + code === 59 || + code === 63 || + code === 95 || + code === 126 ) { - return nok(code) - } - if (code === 93) { - effects.exit('chunkString'); - const token = effects.exit('gfmFootnoteCallString'); - if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) { - return nok(code) - } - effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); - effects.exit('gfmFootnoteCallLabelMarker'); - effects.exit('gfmFootnoteCall'); - return ok - } - if (!markdownLineEndingOrSpace(code)) { - data = true; + return trail } - size++; - effects.consume(code); - return code === 92 ? callEscape : callData - } - function callEscape(code) { - if (code === 91 || code === 92 || code === 93) { + if (code === 38) { effects.consume(code); - size++; - return callData + return trailCharRefStart } - return callData(code) - } -} -function tokenizeDefinitionStart(effects, ok, nok) { - const self = this; - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); - let identifier; - let size = 0; - let data; - return start - function start(code) { - effects.enter('gfmFootnoteDefinition')._container = true; - effects.enter('gfmFootnoteDefinitionLabel'); - effects.enter('gfmFootnoteDefinitionLabelMarker'); - effects.consume(code); - effects.exit('gfmFootnoteDefinitionLabelMarker'); - return labelAtMarker - } - function labelAtMarker(code) { - if (code === 94) { - effects.enter('gfmFootnoteDefinitionMarker'); + if (code === 93) { effects.consume(code); - effects.exit('gfmFootnoteDefinitionMarker'); - effects.enter('gfmFootnoteDefinitionLabelString'); - effects.enter('chunkString').contentType = 'string'; - return labelInside + return trailBracketAfter + } + if ( + code === 60 || + code === null || + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) + ) { + return ok(code) } return nok(code) } - function labelInside(code) { + function trailBracketAfter(code) { if ( - size > 999 || - (code === 93 && !data) || code === null || + code === 40 || code === 91 || - markdownLineEndingOrSpace(code) + markdownLineEndingOrSpace(code) || + unicodeWhitespace(code) ) { - return nok(code) - } - if (code === 93) { - effects.exit('chunkString'); - const token = effects.exit('gfmFootnoteDefinitionLabelString'); - identifier = normalizeIdentifier(self.sliceSerialize(token)); - effects.enter('gfmFootnoteDefinitionLabelMarker'); - effects.consume(code); - effects.exit('gfmFootnoteDefinitionLabelMarker'); - effects.exit('gfmFootnoteDefinitionLabel'); - return labelAfter - } - if (!markdownLineEndingOrSpace(code)) { - data = true; + return ok(code) } - size++; - effects.consume(code); - return code === 92 ? labelEscape : labelInside + return trail(code) } - function labelEscape(code) { - if (code === 91 || code === 92 || code === 93) { + function trailCharRefStart(code) { + return asciiAlpha(code) ? trailCharRefInside(code) : nok(code) + } + function trailCharRefInside(code) { + if (code === 59) { effects.consume(code); - size++; - return labelInside + return trail } - return labelInside(code) - } - function labelAfter(code) { - if (code === 58) { - effects.enter('definitionMarker'); + if (asciiAlpha(code)) { effects.consume(code); - effects.exit('definitionMarker'); - if (!defined.includes(identifier)) { - defined.push(identifier); - } - return factorySpace( - effects, - whitespaceAfter, - 'gfmFootnoteDefinitionWhitespace' - ) + return trailCharRefInside } return nok(code) } - function whitespaceAfter(code) { - return ok(code) +} +function tokenizeEmailDomainDotTrail(effects, ok, nok) { + return start + function start(code) { + effects.consume(code); + return after + } + function after(code) { + return asciiAlphanumeric(code) ? nok(code) : ok(code) } } -function tokenizeDefinitionContinuation(effects, ok, nok) { - return effects.check(blankLine, ok, effects.attempt(indent, ok, nok)) +function previousWww(code) { + return ( + code === null || + code === 40 || + code === 42 || + code === 95 || + code === 91 || + code === 93 || + code === 126 || + markdownLineEndingOrSpace(code) + ) } -function gfmFootnoteDefinitionEnd(effects) { - effects.exit('gfmFootnoteDefinition'); +function previousProtocol(code) { + return !asciiAlpha(code) } -function tokenizeIndent(effects, ok, nok) { - const self = this; - return factorySpace( - effects, - afterPrefix, - 'gfmFootnoteDefinitionIndent', - 4 + 1 - ) - function afterPrefix(code) { - const tail = self.events[self.events.length - 1]; - return tail && - tail[1].type === 'gfmFootnoteDefinitionIndent' && - tail[2].sliceSerialize(tail[1], true).length === 4 - ? ok(code) - : nok(code) - } +function previousEmail(code) { + return !(code === 47 || gfmAtext(code)) } - -function gfmStrikethrough(options) { - const options_ = options || {}; - let single = options_.singleTilde; - const tokenizer = { - tokenize: tokenizeStrikethrough, - resolveAll: resolveAllStrikethrough - }; - if (single === null || single === undefined) { - single = true; - } - return { - text: { - [126]: tokenizer - }, - insideSpan: { - null: [tokenizer] - }, - attentionMarkers: { - null: [126] - } - } - function resolveAllStrikethrough(events, context) { - let index = -1; - while (++index < events.length) { - if ( - events[index][0] === 'enter' && - events[index][1].type === 'strikethroughSequenceTemporary' && - events[index][1]._close - ) { - let open = index; - while (open--) { - if ( - events[open][0] === 'exit' && - events[open][1].type === 'strikethroughSequenceTemporary' && - events[open][1]._open && - events[index][1].end.offset - events[index][1].start.offset === - events[open][1].end.offset - events[open][1].start.offset - ) { - events[index][1].type = 'strikethroughSequence'; - events[open][1].type = 'strikethroughSequence'; - const strikethrough = { - type: 'strikethrough', - start: Object.assign({}, events[open][1].start), - end: Object.assign({}, events[index][1].end) - }; - const text = { - type: 'strikethroughText', - start: Object.assign({}, events[open][1].end), - end: Object.assign({}, events[index][1].start) - }; - const nextEvents = [ - ['enter', strikethrough, context], - ['enter', events[open][1], context], - ['exit', events[open][1], context], - ['enter', text, context] - ]; - const insideSpan = context.parser.constructs.insideSpan.null; - if (insideSpan) { - splice( - nextEvents, - nextEvents.length, - 0, - resolveAll(insideSpan, events.slice(open + 1, index), context) - ); - } - splice(nextEvents, nextEvents.length, 0, [ - ['exit', text, context], - ['enter', events[index][1], context], - ['exit', events[index][1], context], - ['exit', strikethrough, context] - ]); - splice(events, open - 1, index - open + 3, nextEvents); - index = open + nextEvents.length - 2; - break - } - } - } - } - index = -1; - while (++index < events.length) { - if (events[index][1].type === 'strikethroughSequenceTemporary') { - events[index][1].type = 'data'; - } - } - return events - } - function tokenizeStrikethrough(effects, ok, nok) { - const previous = this.previous; - const events = this.events; - let size = 0; - return start - function start(code) { - if ( - previous === 126 && - events[events.length - 1][1].type !== 'characterEscape' - ) { - return nok(code) - } - effects.enter('strikethroughSequenceTemporary'); - return more(code) - } - function more(code) { - const before = classifyCharacter(previous); - if (code === 126) { - if (size > 1) return nok(code) - effects.consume(code); - size++; - return more - } - if (size < 2 && !single) return nok(code) - const token = effects.exit('strikethroughSequenceTemporary'); - const after = classifyCharacter(code); - token._open = !after || (after === 2 && Boolean(before)); - token._close = !before || (before === 2 && Boolean(after)); - return ok(code) - } - } +function gfmAtext(code) { + return ( + code === 43 || + code === 45 || + code === 46 || + code === 95 || + asciiAlphanumeric(code) + ) } - -class EditMap { - constructor() { - this.map = []; - } - add(index, remove, add) { - addImpl(this, index, remove, add); - } - consume(events) { - this.map.sort((a, b) => a[0] - b[0]); - if (this.map.length === 0) { - return - } - let index = this.map.length; - const vecs = []; - while (index > 0) { - index -= 1; - vecs.push(events.slice(this.map[index][0] + this.map[index][1])); - vecs.push(this.map[index][2]); - events.length = this.map[index][0]; +function previousUnbalanced(events) { + let index = events.length; + let result = false; + while (index--) { + const token = events[index][1]; + if ( + (token.type === 'labelLink' || token.type === 'labelImage') && + !token._balanced + ) { + result = true; + break } - vecs.push([...events]); - events.length = 0; - let slice = vecs.pop(); - while (slice) { - events.push(...slice); - slice = vecs.pop(); + if (token._gfmAutolinkLiteralWalkedInto) { + result = false; + break } - this.map.length = 0; - } -} -function addImpl(editMap, at, remove, add) { - let index = 0; - if (remove === 0 && add.length === 0) { - return } - while (index < editMap.map.length) { - if (editMap.map[index][0] === at) { - editMap.map[index][1] += remove; - editMap.map[index][2].push(...add); - return - } - index += 1; + if (events.length > 0 && !result) { + events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; } - editMap.map.push([at, remove, add]); + return result } -function gfmTableAlign(events, index) { - let inDelimiterRow = false; - const align = []; - while (index < events.length) { - const event = events[index]; - if (inDelimiterRow) { - if (event[0] === 'enter') { - if (event[1].type === 'tableContent') { - align.push( - events[index + 1][1].type === 'tableDelimiterMarker' - ? 'left' - : 'none' - ); - } - } - else if (event[1].type === 'tableContent') { - if (events[index - 1][1].type === 'tableDelimiterMarker') { - const alignIndex = align.length - 1; - align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'; - } +const indent = { + tokenize: tokenizeIndent, + partial: true +}; +function gfmFootnote() { + return { + document: { + [91]: { + tokenize: tokenizeDefinitionStart, + continuation: { + tokenize: tokenizeDefinitionContinuation + }, + exit: gfmFootnoteDefinitionEnd } - else if (event[1].type === 'tableDelimiterRow') { - break + }, + text: { + [91]: { + tokenize: tokenizeGfmFootnoteCall + }, + [93]: { + add: 'after', + tokenize: tokenizePotentialGfmFootnoteCall, + resolveTo: resolveToPotentialGfmFootnoteCall } - } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') { - inDelimiterRow = true; } - index += 1; } - return align } - -const gfmTable = { - flow: { - null: { - tokenize: tokenizeTable, - resolveAll: resolveTable +function tokenizePotentialGfmFootnoteCall(effects, ok, nok) { + const self = this; + let index = self.events.length; + const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); + let labelStart; + while (index--) { + const token = self.events[index][1]; + if (token.type === 'labelImage') { + labelStart = token; + break + } + if ( + token.type === 'gfmFootnoteCall' || + token.type === 'labelLink' || + token.type === 'label' || + token.type === 'image' || + token.type === 'link' + ) { + break } } -}; -function tokenizeTable(effects, ok, nok) { - const self = this; - let size = 0; - let sizeB = 0; - let seen; return start function start(code) { - let index = self.events.length - 1; - while (index > -1) { - const type = self.events[index][1].type; - if ( - type === 'lineEnding' || - type === 'linePrefix' - ) - index--; - else break + if (!labelStart || !labelStart._balanced) { + return nok(code) } - const tail = index > -1 ? self.events[index][1].type : null; - const next = - tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore; - if (next === bodyRowStart && self.parser.lazy[self.now().line]) { + const id = normalizeIdentifier$1( + self.sliceSerialize({ + start: labelStart.end, + end: self.now() + }) + ); + if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) { return nok(code) } - return next(code) - } - function headRowBefore(code) { - effects.enter('tableHead'); - effects.enter('tableRow'); - return headRowStart(code) + effects.enter('gfmFootnoteCallLabelMarker'); + effects.consume(code); + effects.exit('gfmFootnoteCallLabelMarker'); + return ok(code) } - function headRowStart(code) { - if (code === 124) { - return headRowBreak(code) +} +function resolveToPotentialGfmFootnoteCall(events, context) { + let index = events.length; + while (index--) { + if ( + events[index][1].type === 'labelImage' && + events[index][0] === 'enter' + ) { + events[index][1]; + break } - seen = true; - sizeB += 1; - return headRowBreak(code) } - function headRowBreak(code) { - if (code === null) { + events[index + 1][1].type = 'data'; + events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'; + const call = { + type: 'gfmFootnoteCall', + start: Object.assign({}, events[index + 3][1].start), + end: Object.assign({}, events[events.length - 1][1].end) + }; + const marker = { + type: 'gfmFootnoteCallMarker', + start: Object.assign({}, events[index + 3][1].end), + end: Object.assign({}, events[index + 3][1].end) + }; + marker.end.column++; + marker.end.offset++; + marker.end._bufferIndex++; + const string = { + type: 'gfmFootnoteCallString', + start: Object.assign({}, marker.end), + end: Object.assign({}, events[events.length - 1][1].start) + }; + const chunk = { + type: 'chunkString', + contentType: 'string', + start: Object.assign({}, string.start), + end: Object.assign({}, string.end) + }; + const replacement = [ + events[index + 1], + events[index + 2], + ['enter', call, context], + events[index + 3], + events[index + 4], + ['enter', marker, context], + ['exit', marker, context], + ['enter', string, context], + ['enter', chunk, context], + ['exit', chunk, context], + ['exit', string, context], + events[events.length - 2], + events[events.length - 1], + ['exit', call, context] + ]; + events.splice(index, events.length - index + 1, ...replacement); + return events +} +function tokenizeGfmFootnoteCall(effects, ok, nok) { + const self = this; + const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); + let size = 0; + let data; + return start + function start(code) { + effects.enter('gfmFootnoteCall'); + effects.enter('gfmFootnoteCallLabelMarker'); + effects.consume(code); + effects.exit('gfmFootnoteCallLabelMarker'); + return callStart + } + function callStart(code) { + if (code !== 94) return nok(code) + effects.enter('gfmFootnoteCallMarker'); + effects.consume(code); + effects.exit('gfmFootnoteCallMarker'); + effects.enter('gfmFootnoteCallString'); + effects.enter('chunkString').contentType = 'string'; + return callData + } + function callData(code) { + if ( + size > 999 || + (code === 93 && !data) || + code === null || + code === 91 || + markdownLineEndingOrSpace(code) + ) { return nok(code) } - if (markdownLineEnding(code)) { - if (sizeB > 1) { - sizeB = 0; - self.interrupt = true; - effects.exit('tableRow'); - effects.enter('lineEnding'); - effects.consume(code); - effects.exit('lineEnding'); - return headDelimiterStart + if (code === 93) { + effects.exit('chunkString'); + const token = effects.exit('gfmFootnoteCallString'); + if (!defined.includes(normalizeIdentifier$1(self.sliceSerialize(token)))) { + return nok(code) } - return nok(code) - } - if (markdownSpace(code)) { - return factorySpace(effects, headRowBreak, 'whitespace')(code) - } - sizeB += 1; - if (seen) { - seen = false; - size += 1; - } - if (code === 124) { - effects.enter('tableCellDivider'); + effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); - effects.exit('tableCellDivider'); - seen = true; - return headRowBreak + effects.exit('gfmFootnoteCallLabelMarker'); + effects.exit('gfmFootnoteCall'); + return ok } - effects.enter('data'); - return headRowData(code) - } - function headRowData(code) { - if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { - effects.exit('data'); - return headRowBreak(code) + if (!markdownLineEndingOrSpace(code)) { + data = true; } + size++; effects.consume(code); - return code === 92 ? headRowEscape : headRowData + return code === 92 ? callEscape : callData } - function headRowEscape(code) { - if (code === 92 || code === 124) { + function callEscape(code) { + if (code === 91 || code === 92 || code === 93) { effects.consume(code); - return headRowData + size++; + return callData } - return headRowData(code) + return callData(code) } - function headDelimiterStart(code) { - self.interrupt = false; - if (self.parser.lazy[self.now().line]) { - return nok(code) - } - effects.enter('tableDelimiterRow'); - seen = false; - if (markdownSpace(code)) { - return factorySpace( - effects, - headDelimiterBefore, - 'linePrefix', - self.parser.constructs.disable.null.includes('codeIndented') - ? undefined - : 4 - )(code) - } - return headDelimiterBefore(code) +} +function tokenizeDefinitionStart(effects, ok, nok) { + const self = this; + const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); + let identifier; + let size = 0; + let data; + return start + function start(code) { + effects.enter('gfmFootnoteDefinition')._container = true; + effects.enter('gfmFootnoteDefinitionLabel'); + effects.enter('gfmFootnoteDefinitionLabelMarker'); + effects.consume(code); + effects.exit('gfmFootnoteDefinitionLabelMarker'); + return labelAtMarker } - function headDelimiterBefore(code) { - if (code === 45 || code === 58) { - return headDelimiterValueBefore(code) - } - if (code === 124) { - seen = true; - effects.enter('tableCellDivider'); + function labelAtMarker(code) { + if (code === 94) { + effects.enter('gfmFootnoteDefinitionMarker'); effects.consume(code); - effects.exit('tableCellDivider'); - return headDelimiterCellBefore + effects.exit('gfmFootnoteDefinitionMarker'); + effects.enter('gfmFootnoteDefinitionLabelString'); + effects.enter('chunkString').contentType = 'string'; + return labelInside } - return headDelimiterNok(code) + return nok(code) } - function headDelimiterCellBefore(code) { - if (markdownSpace(code)) { - return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code) + function labelInside(code) { + if ( + size > 999 || + (code === 93 && !data) || + code === null || + code === 91 || + markdownLineEndingOrSpace(code) + ) { + return nok(code) } - return headDelimiterValueBefore(code) - } - function headDelimiterValueBefore(code) { - if (code === 58) { - sizeB += 1; - seen = true; - effects.enter('tableDelimiterMarker'); + if (code === 93) { + effects.exit('chunkString'); + const token = effects.exit('gfmFootnoteDefinitionLabelString'); + identifier = normalizeIdentifier$1(self.sliceSerialize(token)); + effects.enter('gfmFootnoteDefinitionLabelMarker'); effects.consume(code); - effects.exit('tableDelimiterMarker'); - return headDelimiterLeftAlignmentAfter - } - if (code === 45) { - sizeB += 1; - return headDelimiterLeftAlignmentAfter(code) - } - if (code === null || markdownLineEnding(code)) { - return headDelimiterCellAfter(code) + effects.exit('gfmFootnoteDefinitionLabelMarker'); + effects.exit('gfmFootnoteDefinitionLabel'); + return labelAfter } - return headDelimiterNok(code) - } - function headDelimiterLeftAlignmentAfter(code) { - if (code === 45) { - effects.enter('tableDelimiterFiller'); - return headDelimiterFiller(code) + if (!markdownLineEndingOrSpace(code)) { + data = true; } - return headDelimiterNok(code) + size++; + effects.consume(code); + return code === 92 ? labelEscape : labelInside } - function headDelimiterFiller(code) { - if (code === 45) { + function labelEscape(code) { + if (code === 91 || code === 92 || code === 93) { effects.consume(code); - return headDelimiterFiller + size++; + return labelInside } + return labelInside(code) + } + function labelAfter(code) { if (code === 58) { - seen = true; - effects.exit('tableDelimiterFiller'); - effects.enter('tableDelimiterMarker'); + effects.enter('definitionMarker'); effects.consume(code); - effects.exit('tableDelimiterMarker'); - return headDelimiterRightAlignmentAfter - } - effects.exit('tableDelimiterFiller'); - return headDelimiterRightAlignmentAfter(code) - } - function headDelimiterRightAlignmentAfter(code) { - if (markdownSpace(code)) { - return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code) - } - return headDelimiterCellAfter(code) - } - function headDelimiterCellAfter(code) { - if (code === 124) { - return headDelimiterBefore(code) - } - if (code === null || markdownLineEnding(code)) { - if (!seen || size !== sizeB) { - return headDelimiterNok(code) + effects.exit('definitionMarker'); + if (!defined.includes(identifier)) { + defined.push(identifier); } - effects.exit('tableDelimiterRow'); - effects.exit('tableHead'); - return ok(code) + return factorySpace( + effects, + whitespaceAfter, + 'gfmFootnoteDefinitionWhitespace' + ) } - return headDelimiterNok(code) - } - function headDelimiterNok(code) { return nok(code) } - function bodyRowStart(code) { - effects.enter('tableRow'); - return bodyRowBreak(code) + function whitespaceAfter(code) { + return ok(code) } - function bodyRowBreak(code) { - if (code === 124) { - effects.enter('tableCellDivider'); - effects.consume(code); - effects.exit('tableCellDivider'); - return bodyRowBreak - } - if (code === null || markdownLineEnding(code)) { - effects.exit('tableRow'); - return ok(code) - } - if (markdownSpace(code)) { - return factorySpace(effects, bodyRowBreak, 'whitespace')(code) - } - effects.enter('data'); - return bodyRowData(code) +} +function tokenizeDefinitionContinuation(effects, ok, nok) { + return effects.check(blankLine, ok, effects.attempt(indent, ok, nok)) +} +function gfmFootnoteDefinitionEnd(effects) { + effects.exit('gfmFootnoteDefinition'); +} +function tokenizeIndent(effects, ok, nok) { + const self = this; + return factorySpace( + effects, + afterPrefix, + 'gfmFootnoteDefinitionIndent', + 4 + 1 + ) + function afterPrefix(code) { + const tail = self.events[self.events.length - 1]; + return tail && + tail[1].type === 'gfmFootnoteDefinitionIndent' && + tail[2].sliceSerialize(tail[1], true).length === 4 + ? ok(code) + : nok(code) } - function bodyRowData(code) { - if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { - effects.exit('data'); - return bodyRowBreak(code) - } - effects.consume(code); - return code === 92 ? bodyRowEscape : bodyRowData +} + +function gfmStrikethrough(options) { + const options_ = options || {}; + let single = options_.singleTilde; + const tokenizer = { + tokenize: tokenizeStrikethrough, + resolveAll: resolveAllStrikethrough + }; + if (single === null || single === undefined) { + single = true; } - function bodyRowEscape(code) { - if (code === 92 || code === 124) { - effects.consume(code); - return bodyRowData + return { + text: { + [126]: tokenizer + }, + insideSpan: { + null: [tokenizer] + }, + attentionMarkers: { + null: [126] } - return bodyRowData(code) } -} -function resolveTable(events, context) { - let index = -1; - let inFirstCellAwaitingPipe = true; - let rowKind = 0; - let lastCell = [0, 0, 0, 0]; - let cell = [0, 0, 0, 0]; - let afterHeadAwaitingFirstBodyRow = false; - let lastTableEnd = 0; - let currentTable; - let currentBody; - let currentCell; - const map = new EditMap(); - while (++index < events.length) { - const event = events[index]; - const token = event[1]; - if (event[0] === 'enter') { - if (token.type === 'tableHead') { - afterHeadAwaitingFirstBodyRow = false; - if (lastTableEnd !== 0) { - flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); - currentBody = undefined; - lastTableEnd = 0; - } - currentTable = { - type: 'table', - start: Object.assign({}, token.start), - end: Object.assign({}, token.end) - }; - map.add(index, 0, [['enter', currentTable, context]]); - } else if ( - token.type === 'tableRow' || - token.type === 'tableDelimiterRow' - ) { - inFirstCellAwaitingPipe = true; - currentCell = undefined; - lastCell = [0, 0, 0, 0]; - cell = [0, index + 1, 0, 0]; - if (afterHeadAwaitingFirstBodyRow) { - afterHeadAwaitingFirstBodyRow = false; - currentBody = { - type: 'tableBody', - start: Object.assign({}, token.start), - end: Object.assign({}, token.end) - }; - map.add(index, 0, [['enter', currentBody, context]]); - } - rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1; - } - else if ( - rowKind && - (token.type === 'data' || - token.type === 'tableDelimiterMarker' || - token.type === 'tableDelimiterFiller') + function resolveAllStrikethrough(events, context) { + let index = -1; + while (++index < events.length) { + if ( + events[index][0] === 'enter' && + events[index][1].type === 'strikethroughSequenceTemporary' && + events[index][1]._close ) { - inFirstCellAwaitingPipe = false; - if (cell[2] === 0) { - if (lastCell[1] !== 0) { - cell[0] = cell[1]; - currentCell = flushCell( - map, - context, - lastCell, - rowKind, - undefined, - currentCell - ); - lastCell = [0, 0, 0, 0]; - } - cell[2] = index; - } - } else if (token.type === 'tableCellDivider') { - if (inFirstCellAwaitingPipe) { - inFirstCellAwaitingPipe = false; - } else { - if (lastCell[1] !== 0) { - cell[0] = cell[1]; - currentCell = flushCell( - map, - context, - lastCell, - rowKind, - undefined, - currentCell - ); + let open = index; + while (open--) { + if ( + events[open][0] === 'exit' && + events[open][1].type === 'strikethroughSequenceTemporary' && + events[open][1]._open && + events[index][1].end.offset - events[index][1].start.offset === + events[open][1].end.offset - events[open][1].start.offset + ) { + events[index][1].type = 'strikethroughSequence'; + events[open][1].type = 'strikethroughSequence'; + const strikethrough = { + type: 'strikethrough', + start: Object.assign({}, events[open][1].start), + end: Object.assign({}, events[index][1].end) + }; + const text = { + type: 'strikethroughText', + start: Object.assign({}, events[open][1].end), + end: Object.assign({}, events[index][1].start) + }; + const nextEvents = [ + ['enter', strikethrough, context], + ['enter', events[open][1], context], + ['exit', events[open][1], context], + ['enter', text, context] + ]; + const insideSpan = context.parser.constructs.insideSpan.null; + if (insideSpan) { + splice( + nextEvents, + nextEvents.length, + 0, + resolveAll(insideSpan, events.slice(open + 1, index), context) + ); + } + splice(nextEvents, nextEvents.length, 0, [ + ['exit', text, context], + ['enter', events[index][1], context], + ['exit', events[index][1], context], + ['exit', strikethrough, context] + ]); + splice(events, open - 1, index - open + 3, nextEvents); + index = open + nextEvents.length - 2; + break } - lastCell = cell; - cell = [lastCell[1], index, 0, 0]; } } } - else if (token.type === 'tableHead') { - afterHeadAwaitingFirstBodyRow = true; - lastTableEnd = index; - } else if ( - token.type === 'tableRow' || - token.type === 'tableDelimiterRow' - ) { - lastTableEnd = index; - if (lastCell[1] !== 0) { - cell[0] = cell[1]; - currentCell = flushCell( - map, - context, - lastCell, - rowKind, - index, - currentCell - ); - } else if (cell[1] !== 0) { - currentCell = flushCell(map, context, cell, rowKind, index, currentCell); + index = -1; + while (++index < events.length) { + if (events[index][1].type === 'strikethroughSequenceTemporary') { + events[index][1].type = 'data'; } - rowKind = 0; - } else if ( - rowKind && - (token.type === 'data' || - token.type === 'tableDelimiterMarker' || - token.type === 'tableDelimiterFiller') - ) { - cell[3] = index; - } - } - if (lastTableEnd !== 0) { - flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); - } - map.consume(context.events); - index = -1; - while (++index < context.events.length) { - const event = context.events[index]; - if (event[0] === 'enter' && event[1].type === 'table') { - event[1]._align = gfmTableAlign(context.events, index); } + return events } - return events -} -function flushCell(map, context, range, rowKind, rowEnd, previousCell) { - const groupName = - rowKind === 1 - ? 'tableHeader' - : rowKind === 2 - ? 'tableDelimiter' - : 'tableData'; - const valueName = 'tableContent'; - if (range[0] !== 0) { - previousCell.end = Object.assign({}, getPoint(context.events, range[0])); - map.add(range[0], 0, [['exit', previousCell, context]]); - } - const now = getPoint(context.events, range[1]); - previousCell = { - type: groupName, - start: Object.assign({}, now), - end: Object.assign({}, now) - }; - map.add(range[1], 0, [['enter', previousCell, context]]); - if (range[2] !== 0) { - const relatedStart = getPoint(context.events, range[2]); - const relatedEnd = getPoint(context.events, range[3]); - const valueToken = { - type: valueName, - start: Object.assign({}, relatedStart), - end: Object.assign({}, relatedEnd) - }; - map.add(range[2], 0, [['enter', valueToken, context]]); - if (rowKind !== 2) { - const start = context.events[range[2]]; - const end = context.events[range[3]]; - start[1].end = Object.assign({}, end[1].end); - start[1].type = 'chunkText'; - start[1].contentType = 'text'; - if (range[3] > range[2] + 1) { - const a = range[2] + 1; - const b = range[3] - range[2] - 1; - map.add(a, b, []); + function tokenizeStrikethrough(effects, ok, nok) { + const previous = this.previous; + const events = this.events; + let size = 0; + return start + function start(code) { + if ( + previous === 126 && + events[events.length - 1][1].type !== 'characterEscape' + ) { + return nok(code) + } + effects.enter('strikethroughSequenceTemporary'); + return more(code) + } + function more(code) { + const before = classifyCharacter(previous); + if (code === 126) { + if (size > 1) return nok(code) + effects.consume(code); + size++; + return more } + if (size < 2 && !single) return nok(code) + const token = effects.exit('strikethroughSequenceTemporary'); + const after = classifyCharacter(code); + token._open = !after || (after === 2 && Boolean(before)); + token._close = !before || (before === 2 && Boolean(after)); + return ok(code) } - map.add(range[3] + 1, 0, [['exit', valueToken, context]]); } - if (rowEnd !== undefined) { - previousCell.end = Object.assign({}, getPoint(context.events, rowEnd)); - map.add(rowEnd, 0, [['exit', previousCell, context]]); - previousCell = undefined; - } - return previousCell -} -function flushTableEnd(map, context, index, table, tableBody) { - const exits = []; - const related = getPoint(context.events, index); - if (tableBody) { - tableBody.end = Object.assign({}, related); - exits.push(['exit', tableBody, context]); - } - table.end = Object.assign({}, related); - exits.push(['exit', table, context]); - map.add(index + 1, 0, exits); -} -function getPoint(events, index) { - const event = events[index]; - const side = event[0] === 'enter' ? 'start' : 'end'; - return event[1][side] } -const tasklistCheck = { - tokenize: tokenizeTasklistCheck -}; -const gfmTaskListItem = { - text: { - [91]: tasklistCheck - } -}; -function tokenizeTasklistCheck(effects, ok, nok) { - const self = this; - return open - function open(code) { - if ( - self.previous !== null || - !self._gfmTasklistFirstContentOfListItem - ) { - return nok(code) - } - effects.enter('taskListCheck'); - effects.enter('taskListCheckMarker'); - effects.consume(code); - effects.exit('taskListCheckMarker'); - return inside +class EditMap { + constructor() { + this.map = []; } - function inside(code) { - if (markdownLineEndingOrSpace(code)) { - effects.enter('taskListCheckValueUnchecked'); - effects.consume(code); - effects.exit('taskListCheckValueUnchecked'); - return close - } - if (code === 88 || code === 120) { - effects.enter('taskListCheckValueChecked'); - effects.consume(code); - effects.exit('taskListCheckValueChecked'); - return close - } - return nok(code) + add(index, remove, add) { + addImpl(this, index, remove, add); } - function close(code) { - if (code === 93) { - effects.enter('taskListCheckMarker'); - effects.consume(code); - effects.exit('taskListCheckMarker'); - effects.exit('taskListCheck'); - return after + consume(events) { + this.map.sort(function (a, b) { + return a[0] - b[0] + }); + if (this.map.length === 0) { + return } - return nok(code) - } - function after(code) { - if (markdownLineEnding(code)) { - return ok(code) + let index = this.map.length; + const vecs = []; + while (index > 0) { + index -= 1; + vecs.push( + events.slice(this.map[index][0] + this.map[index][1]), + this.map[index][2] + ); + events.length = this.map[index][0]; } - if (markdownSpace(code)) { - return effects.check( - { - tokenize: spaceThenNonSpace - }, - ok, - nok - )(code) + vecs.push([...events]); + events.length = 0; + let slice = vecs.pop(); + while (slice) { + events.push(...slice); + slice = vecs.pop(); } - return nok(code) - } -} -function spaceThenNonSpace(effects, ok, nok) { - return factorySpace(effects, after, 'whitespace') - function after(code) { - return code === null ? nok(code) : ok(code) + this.map.length = 0; } } - -function gfm(options) { - return combineExtensions([ - gfmAutolinkLiteral, - gfmFootnote(), - gfmStrikethrough(options), - gfmTable, - gfmTaskListItem - ]) -} - -function ccount(value, character) { - const source = String(value); - if (typeof character !== 'string') { - throw new TypeError('Expected character') +function addImpl(editMap, at, remove, add) { + let index = 0; + if (remove === 0 && add.length === 0) { + return } - let count = 0; - let index = source.indexOf(character); - while (index !== -1) { - count++; - index = source.indexOf(character, index + character.length); + while (index < editMap.map.length) { + if (editMap.map[index][0] === at) { + editMap.map[index][1] += remove; + editMap.map[index][2].push(...add); + return + } + index += 1; } - return count -} - -function escapeStringRegexp(string) { - if (typeof string !== 'string') { - throw new TypeError('Expected a string'); - } - return string - .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') - .replace(/-/g, '\\x2d'); + editMap.map.push([at, remove, add]); } -const own$2 = {}.hasOwnProperty; -const findAndReplace = - ( - function (tree, find, replace, options) { - let settings; - let schema; - if (typeof find === 'string' || find instanceof RegExp) { - schema = [[find, replace]]; - settings = options; - } else { - schema = find; - settings = replace; - } - if (!settings) { - settings = {}; - } - const ignored = convert(settings.ignore || []); - const pairs = toPairs(schema); - let pairIndex = -1; - while (++pairIndex < pairs.length) { - visitParents$1(tree, 'text', visitor); - } - return tree - function visitor(node, parents) { - let index = -1; - let grandparent; - while (++index < parents.length) { - const parent = parents[index]; - if ( - ignored( - parent, - grandparent ? grandparent.children.indexOf(parent) : undefined, - grandparent - ) - ) { - return - } - grandparent = parent; - } - if (grandparent) { - return handler(node, parents) +function gfmTableAlign(events, index) { + let inDelimiterRow = false; + const align = []; + while (index < events.length) { + const event = events[index]; + if (inDelimiterRow) { + if (event[0] === 'enter') { + if (event[1].type === 'tableContent') { + align.push( + events[index + 1][1].type === 'tableDelimiterMarker' + ? 'left' + : 'none' + ); } } - function handler(node, parents) { - const parent = parents[parents.length - 1]; - const find = pairs[pairIndex][0]; - const replace = pairs[pairIndex][1]; - let start = 0; - const index = parent.children.indexOf(node); - let change = false; - let nodes = []; - find.lastIndex = 0; - let match = find.exec(node.value); - while (match) { - const position = match.index; - const matchObject = { - index: match.index, - input: match.input, - stack: [...parents, node] - }; - let value = replace(...match, matchObject); - if (typeof value === 'string') { - value = value.length > 0 ? {type: 'text', value} : undefined; - } - if (value !== false) { - if (start !== position) { - nodes.push({ - type: 'text', - value: node.value.slice(start, position) - }); - } - if (Array.isArray(value)) { - nodes.push(...value); - } else if (value) { - nodes.push(value); - } - start = position + match[0].length; - change = true; - } - if (!find.global) { - break - } - match = find.exec(node.value); - } - if (change) { - if (start < node.value.length) { - nodes.push({type: 'text', value: node.value.slice(start)}); - } - parent.children.splice(index, 1, ...nodes); - } else { - nodes = [node]; + else if (event[1].type === 'tableContent') { + if (events[index - 1][1].type === 'tableDelimiterMarker') { + const alignIndex = align.length - 1; + align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'; } - return index + nodes.length } + else if (event[1].type === 'tableDelimiterRow') { + break + } + } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') { + inDelimiterRow = true; } - ); -function toPairs(schema) { - const result = []; - if (typeof schema !== 'object') { - throw new TypeError('Expected array or object as schema') + index += 1; + } + return align +} + +function gfmTable() { + return { + flow: { + null: { + tokenize: tokenizeTable, + resolveAll: resolveTable + } + } + } +} +function tokenizeTable(effects, ok, nok) { + const self = this; + let size = 0; + let sizeB = 0; + let seen; + return start + function start(code) { + let index = self.events.length - 1; + while (index > -1) { + const type = self.events[index][1].type; + if ( + type === 'lineEnding' || + type === 'linePrefix' + ) + index--; + else break + } + const tail = index > -1 ? self.events[index][1].type : null; + const next = + tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore; + if (next === bodyRowStart && self.parser.lazy[self.now().line]) { + return nok(code) + } + return next(code) + } + function headRowBefore(code) { + effects.enter('tableHead'); + effects.enter('tableRow'); + return headRowStart(code) + } + function headRowStart(code) { + if (code === 124) { + return headRowBreak(code) + } + seen = true; + sizeB += 1; + return headRowBreak(code) } - if (Array.isArray(schema)) { - let index = -1; - while (++index < schema.length) { - result.push([ - toExpression(schema[index][0]), - toFunction(schema[index][1]) - ]); + function headRowBreak(code) { + if (code === null) { + return nok(code) } - } else { - let key; - for (key in schema) { - if (own$2.call(schema, key)) { - result.push([toExpression(key), toFunction(schema[key])]); + if (markdownLineEnding(code)) { + if (sizeB > 1) { + sizeB = 0; + self.interrupt = true; + effects.exit('tableRow'); + effects.enter('lineEnding'); + effects.consume(code); + effects.exit('lineEnding'); + return headDelimiterStart } + return nok(code) } + if (markdownSpace(code)) { + return factorySpace(effects, headRowBreak, 'whitespace')(code) + } + sizeB += 1; + if (seen) { + seen = false; + size += 1; + } + if (code === 124) { + effects.enter('tableCellDivider'); + effects.consume(code); + effects.exit('tableCellDivider'); + seen = true; + return headRowBreak + } + effects.enter('data'); + return headRowData(code) } - return result -} -function toExpression(find) { - return typeof find === 'string' ? new RegExp(escapeStringRegexp(find), 'g') : find -} -function toFunction(replace) { - return typeof replace === 'function' ? replace : () => replace -} - -const inConstruct = 'phrasing'; -const notInConstruct = ['autolink', 'link', 'image', 'label']; -const gfmAutolinkLiteralFromMarkdown = { - transforms: [transformGfmAutolinkLiterals], - enter: { - literalAutolink: enterLiteralAutolink, - literalAutolinkEmail: enterLiteralAutolinkValue, - literalAutolinkHttp: enterLiteralAutolinkValue, - literalAutolinkWww: enterLiteralAutolinkValue - }, - exit: { - literalAutolink: exitLiteralAutolink, - literalAutolinkEmail: exitLiteralAutolinkEmail, - literalAutolinkHttp: exitLiteralAutolinkHttp, - literalAutolinkWww: exitLiteralAutolinkWww - } -}; -const gfmAutolinkLiteralToMarkdown = { - unsafe: [ - { - character: '@', - before: '[+\\-.\\w]', - after: '[\\-.\\w]', - inConstruct, - notInConstruct - }, - { - character: '.', - before: '[Ww]', - after: '[\\-.\\w]', - inConstruct, - notInConstruct - }, - {character: ':', before: '[ps]', after: '\\/', inConstruct, notInConstruct} - ] -}; -function enterLiteralAutolink(token) { - this.enter({type: 'link', title: null, url: '', children: []}, token); -} -function enterLiteralAutolinkValue(token) { - this.config.enter.autolinkProtocol.call(this, token); -} -function exitLiteralAutolinkHttp(token) { - this.config.exit.autolinkProtocol.call(this, token); -} -function exitLiteralAutolinkWww(token) { - this.config.exit.data.call(this, token); - const node = (this.stack[this.stack.length - 1]); - node.url = 'http://' + this.sliceSerialize(token); -} -function exitLiteralAutolinkEmail(token) { - this.config.exit.autolinkEmail.call(this, token); -} -function exitLiteralAutolink(token) { - this.exit(token); -} -function transformGfmAutolinkLiterals(tree) { - findAndReplace( - tree, - [ - [/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi, findUrl], - [/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g, findEmail] - ], - {ignore: ['link', 'linkReference']} - ); -} -function findUrl(_, protocol, domain, path, match) { - let prefix = ''; - if (!previous(match)) { - return false - } - if (/^w/i.test(protocol)) { - domain = protocol + domain; - protocol = ''; - prefix = 'http://'; - } - if (!isCorrectDomain(domain)) { - return false + function headRowData(code) { + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { + effects.exit('data'); + return headRowBreak(code) + } + effects.consume(code); + return code === 92 ? headRowEscape : headRowData } - const parts = splitUrl(domain + path); - if (!parts[0]) return false - const result = { - type: 'link', - title: null, - url: prefix + protocol + parts[0], - children: [{type: 'text', value: protocol + parts[0]}] - }; - if (parts[1]) { - return [result, {type: 'text', value: parts[1]}] + function headRowEscape(code) { + if (code === 92 || code === 124) { + effects.consume(code); + return headRowData + } + return headRowData(code) } - return result -} -function findEmail(_, atext, label, match) { - if ( - !previous(match, true) || - /[-\d_]$/.test(label) - ) { - return false + function headDelimiterStart(code) { + self.interrupt = false; + if (self.parser.lazy[self.now().line]) { + return nok(code) + } + effects.enter('tableDelimiterRow'); + seen = false; + if (markdownSpace(code)) { + return factorySpace( + effects, + headDelimiterBefore, + 'linePrefix', + self.parser.constructs.disable.null.includes('codeIndented') + ? undefined + : 4 + )(code) + } + return headDelimiterBefore(code) } - return { - type: 'link', - title: null, - url: 'mailto:' + atext + '@' + label, - children: [{type: 'text', value: atext + '@' + label}] + function headDelimiterBefore(code) { + if (code === 45 || code === 58) { + return headDelimiterValueBefore(code) + } + if (code === 124) { + seen = true; + effects.enter('tableCellDivider'); + effects.consume(code); + effects.exit('tableCellDivider'); + return headDelimiterCellBefore + } + return headDelimiterNok(code) } -} -function isCorrectDomain(domain) { - const parts = domain.split('.'); - if ( - parts.length < 2 || - (parts[parts.length - 1] && - (/_/.test(parts[parts.length - 1]) || - !/[a-zA-Z\d]/.test(parts[parts.length - 1]))) || - (parts[parts.length - 2] && - (/_/.test(parts[parts.length - 2]) || - !/[a-zA-Z\d]/.test(parts[parts.length - 2]))) - ) { - return false + function headDelimiterCellBefore(code) { + if (markdownSpace(code)) { + return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code) + } + return headDelimiterValueBefore(code) } - return true -} -function splitUrl(url) { - const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); - if (!trailExec) { - return [url, undefined] + function headDelimiterValueBefore(code) { + if (code === 58) { + sizeB += 1; + seen = true; + effects.enter('tableDelimiterMarker'); + effects.consume(code); + effects.exit('tableDelimiterMarker'); + return headDelimiterLeftAlignmentAfter + } + if (code === 45) { + sizeB += 1; + return headDelimiterLeftAlignmentAfter(code) + } + if (code === null || markdownLineEnding(code)) { + return headDelimiterCellAfter(code) + } + return headDelimiterNok(code) } - url = url.slice(0, trailExec.index); - let trail = trailExec[0]; - let closingParenIndex = trail.indexOf(')'); - const openingParens = ccount(url, '('); - let closingParens = ccount(url, ')'); - while (closingParenIndex !== -1 && openingParens > closingParens) { - url += trail.slice(0, closingParenIndex + 1); - trail = trail.slice(closingParenIndex + 1); - closingParenIndex = trail.indexOf(')'); - closingParens++; + function headDelimiterLeftAlignmentAfter(code) { + if (code === 45) { + effects.enter('tableDelimiterFiller'); + return headDelimiterFiller(code) + } + return headDelimiterNok(code) } - return [url, trail] -} -function previous(match, email) { - const code = match.input.charCodeAt(match.index - 1); - return ( - (match.index === 0 || - unicodeWhitespace(code) || - unicodePunctuation(code)) && - (!email || code !== 47) - ) -} - -footnoteReference.peek = footnoteReferencePeek; -function gfmFootnoteFromMarkdown() { - return { - enter: { - gfmFootnoteDefinition: enterFootnoteDefinition, - gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString, - gfmFootnoteCall: enterFootnoteCall, - gfmFootnoteCallString: enterFootnoteCallString - }, - exit: { - gfmFootnoteDefinition: exitFootnoteDefinition, - gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString, - gfmFootnoteCall: exitFootnoteCall, - gfmFootnoteCallString: exitFootnoteCallString + function headDelimiterFiller(code) { + if (code === 45) { + effects.consume(code); + return headDelimiterFiller + } + if (code === 58) { + seen = true; + effects.exit('tableDelimiterFiller'); + effects.enter('tableDelimiterMarker'); + effects.consume(code); + effects.exit('tableDelimiterMarker'); + return headDelimiterRightAlignmentAfter + } + effects.exit('tableDelimiterFiller'); + return headDelimiterRightAlignmentAfter(code) + } + function headDelimiterRightAlignmentAfter(code) { + if (markdownSpace(code)) { + return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code) } + return headDelimiterCellAfter(code) } -} -function gfmFootnoteToMarkdown() { - return { - unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}], - handlers: {footnoteDefinition, footnoteReference} + function headDelimiterCellAfter(code) { + if (code === 124) { + return headDelimiterBefore(code) + } + if (code === null || markdownLineEnding(code)) { + if (!seen || size !== sizeB) { + return headDelimiterNok(code) + } + effects.exit('tableDelimiterRow'); + effects.exit('tableHead'); + return ok(code) + } + return headDelimiterNok(code) } -} -function enterFootnoteDefinition(token) { - this.enter( - {type: 'footnoteDefinition', identifier: '', label: '', children: []}, - token - ); -} -function enterFootnoteDefinitionLabelString() { - this.buffer(); -} -function exitFootnoteDefinitionLabelString(token) { - const label = this.resume(); - const node = ( - this.stack[this.stack.length - 1] - ); - node.label = label; - node.identifier = normalizeIdentifier( - this.sliceSerialize(token) - ).toLowerCase(); -} -function exitFootnoteDefinition(token) { - this.exit(token); -} -function enterFootnoteCall(token) { - this.enter({type: 'footnoteReference', identifier: '', label: ''}, token); -} -function enterFootnoteCallString() { - this.buffer(); -} -function exitFootnoteCallString(token) { - const label = this.resume(); - const node = ( - this.stack[this.stack.length - 1] - ); - node.label = label; - node.identifier = normalizeIdentifier( - this.sliceSerialize(token) - ).toLowerCase(); -} -function exitFootnoteCall(token) { - this.exit(token); -} -function footnoteReference(node, _, context, safeOptions) { - const tracker = track(safeOptions); - let value = tracker.move('[^'); - const exit = context.enter('footnoteReference'); - const subexit = context.enter('reference'); - value += tracker.move( - safe(context, association(node), { - ...tracker.current(), - before: value, - after: ']' - }) - ); - subexit(); - exit(); - value += tracker.move(']'); - return value -} -function footnoteReferencePeek() { - return '[' -} -function footnoteDefinition(node, _, context, safeOptions) { - const tracker = track(safeOptions); - let value = tracker.move('[^'); - const exit = context.enter('footnoteDefinition'); - const subexit = context.enter('label'); - value += tracker.move( - safe(context, association(node), { - ...tracker.current(), - before: value, - after: ']' - }) - ); - subexit(); - value += tracker.move( - ']:' + (node.children && node.children.length > 0 ? ' ' : '') - ); - tracker.shift(4); - value += tracker.move( - indentLines(containerFlow(node, context, tracker.current()), map$1) - ); - exit(); - return value -} -function map$1(line, index, blank) { - if (index === 0) { - return line + function headDelimiterNok(code) { + return nok(code) } - return (blank ? '' : ' ') + line -} - -const constructsWithoutStrikethrough = [ - 'autolink', - 'destinationLiteral', - 'destinationRaw', - 'reference', - 'titleQuote', - 'titleApostrophe' -]; -handleDelete.peek = peekDelete; -const gfmStrikethroughFromMarkdown = { - canContainEols: ['delete'], - enter: {strikethrough: enterStrikethrough}, - exit: {strikethrough: exitStrikethrough} -}; -const gfmStrikethroughToMarkdown = { - unsafe: [ - { - character: '~', - inConstruct: 'phrasing', - notInConstruct: constructsWithoutStrikethrough + function bodyRowStart(code) { + effects.enter('tableRow'); + return bodyRowBreak(code) + } + function bodyRowBreak(code) { + if (code === 124) { + effects.enter('tableCellDivider'); + effects.consume(code); + effects.exit('tableCellDivider'); + return bodyRowBreak } - ], - handlers: {delete: handleDelete} -}; -function enterStrikethrough(token) { - this.enter({type: 'delete', children: []}, token); -} -function exitStrikethrough(token) { - this.exit(token); -} -function handleDelete(node, _, context, safeOptions) { - const tracker = track(safeOptions); - const exit = context.enter('strikethrough'); - let value = tracker.move('~~'); - value += containerPhrasing(node, context, { - ...tracker.current(), - before: value, - after: '~' - }); - value += tracker.move('~~'); - exit(); - return value -} -function peekDelete() { - return '~' -} - -function markdownTable(table, options = {}) { - const align = (options.align || []).concat(); - const stringLength = options.stringLength || defaultStringLength; - const alignments = []; - const cellMatrix = []; - const sizeMatrix = []; - const longestCellByColumn = []; - let mostCellsPerRow = 0; - let rowIndex = -1; - while (++rowIndex < table.length) { - const row = []; - const sizes = []; - let columnIndex = -1; - if (table[rowIndex].length > mostCellsPerRow) { - mostCellsPerRow = table[rowIndex].length; + if (code === null || markdownLineEnding(code)) { + effects.exit('tableRow'); + return ok(code) } - while (++columnIndex < table[rowIndex].length) { - const cell = serialize(table[rowIndex][columnIndex]); - if (options.alignDelimiters !== false) { - const size = stringLength(cell); - sizes[columnIndex] = size; - if ( - longestCellByColumn[columnIndex] === undefined || - size > longestCellByColumn[columnIndex] - ) { - longestCellByColumn[columnIndex] = size; + if (markdownSpace(code)) { + return factorySpace(effects, bodyRowBreak, 'whitespace')(code) + } + effects.enter('data'); + return bodyRowData(code) + } + function bodyRowData(code) { + if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { + effects.exit('data'); + return bodyRowBreak(code) + } + effects.consume(code); + return code === 92 ? bodyRowEscape : bodyRowData + } + function bodyRowEscape(code) { + if (code === 92 || code === 124) { + effects.consume(code); + return bodyRowData + } + return bodyRowData(code) + } +} +function resolveTable(events, context) { + let index = -1; + let inFirstCellAwaitingPipe = true; + let rowKind = 0; + let lastCell = [0, 0, 0, 0]; + let cell = [0, 0, 0, 0]; + let afterHeadAwaitingFirstBodyRow = false; + let lastTableEnd = 0; + let currentTable; + let currentBody; + let currentCell; + const map = new EditMap(); + while (++index < events.length) { + const event = events[index]; + const token = event[1]; + if (event[0] === 'enter') { + if (token.type === 'tableHead') { + afterHeadAwaitingFirstBodyRow = false; + if (lastTableEnd !== 0) { + flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); + currentBody = undefined; + lastTableEnd = 0; + } + currentTable = { + type: 'table', + start: Object.assign({}, token.start), + end: Object.assign({}, token.end) + }; + map.add(index, 0, [['enter', currentTable, context]]); + } else if ( + token.type === 'tableRow' || + token.type === 'tableDelimiterRow' + ) { + inFirstCellAwaitingPipe = true; + currentCell = undefined; + lastCell = [0, 0, 0, 0]; + cell = [0, index + 1, 0, 0]; + if (afterHeadAwaitingFirstBodyRow) { + afterHeadAwaitingFirstBodyRow = false; + currentBody = { + type: 'tableBody', + start: Object.assign({}, token.start), + end: Object.assign({}, token.end) + }; + map.add(index, 0, [['enter', currentBody, context]]); + } + rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1; + } + else if ( + rowKind && + (token.type === 'data' || + token.type === 'tableDelimiterMarker' || + token.type === 'tableDelimiterFiller') + ) { + inFirstCellAwaitingPipe = false; + if (cell[2] === 0) { + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + undefined, + currentCell + ); + lastCell = [0, 0, 0, 0]; + } + cell[2] = index; + } + } else if (token.type === 'tableCellDivider') { + if (inFirstCellAwaitingPipe) { + inFirstCellAwaitingPipe = false; + } else { + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + undefined, + currentCell + ); + } + lastCell = cell; + cell = [lastCell[1], index, 0, 0]; } } - row.push(cell); - } - cellMatrix[rowIndex] = row; - sizeMatrix[rowIndex] = sizes; - } - let columnIndex = -1; - if (typeof align === 'object' && 'length' in align) { - while (++columnIndex < mostCellsPerRow) { - alignments[columnIndex] = toAlignment(align[columnIndex]); } - } else { - const code = toAlignment(align); - while (++columnIndex < mostCellsPerRow) { - alignments[columnIndex] = code; + else if (token.type === 'tableHead') { + afterHeadAwaitingFirstBodyRow = true; + lastTableEnd = index; + } else if ( + token.type === 'tableRow' || + token.type === 'tableDelimiterRow' + ) { + lastTableEnd = index; + if (lastCell[1] !== 0) { + cell[0] = cell[1]; + currentCell = flushCell( + map, + context, + lastCell, + rowKind, + index, + currentCell + ); + } else if (cell[1] !== 0) { + currentCell = flushCell(map, context, cell, rowKind, index, currentCell); + } + rowKind = 0; + } else if ( + rowKind && + (token.type === 'data' || + token.type === 'tableDelimiterMarker' || + token.type === 'tableDelimiterFiller') + ) { + cell[3] = index; } } - columnIndex = -1; - const row = []; - const sizes = []; - while (++columnIndex < mostCellsPerRow) { - const code = alignments[columnIndex]; - let before = ''; - let after = ''; - if (code === 99 ) { - before = ':'; - after = ':'; - } else if (code === 108 ) { - before = ':'; - } else if (code === 114 ) { - after = ':'; - } - let size = - options.alignDelimiters === false - ? 1 - : Math.max( - 1, - longestCellByColumn[columnIndex] - before.length - after.length - ); - const cell = before + '-'.repeat(size) + after; - if (options.alignDelimiters !== false) { - size = before.length + size + after.length; - if (size > longestCellByColumn[columnIndex]) { - longestCellByColumn[columnIndex] = size; - } - sizes[columnIndex] = size; + if (lastTableEnd !== 0) { + flushTableEnd(map, context, lastTableEnd, currentTable, currentBody); + } + map.consume(context.events); + index = -1; + while (++index < context.events.length) { + const event = context.events[index]; + if (event[0] === 'enter' && event[1].type === 'table') { + event[1]._align = gfmTableAlign(context.events, index); } - row[columnIndex] = cell; } - cellMatrix.splice(1, 0, row); - sizeMatrix.splice(1, 0, sizes); - rowIndex = -1; - const lines = []; - while (++rowIndex < cellMatrix.length) { - const row = cellMatrix[rowIndex]; - const sizes = sizeMatrix[rowIndex]; - columnIndex = -1; - const line = []; - while (++columnIndex < mostCellsPerRow) { - const cell = row[columnIndex] || ''; - let before = ''; - let after = ''; - if (options.alignDelimiters !== false) { - const size = - longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); - const code = alignments[columnIndex]; - if (code === 114 ) { - before = ' '.repeat(size); - } else if (code === 99 ) { - if (size % 2) { - before = ' '.repeat(size / 2 + 0.5); - after = ' '.repeat(size / 2 - 0.5); - } else { - before = ' '.repeat(size / 2); - after = before; - } - } else { - after = ' '.repeat(size); - } - } - if (options.delimiterStart !== false && !columnIndex) { - line.push('|'); - } - if ( - options.padding !== false && - !(options.alignDelimiters === false && cell === '') && - (options.delimiterStart !== false || columnIndex) - ) { - line.push(' '); - } - if (options.alignDelimiters !== false) { - line.push(before); - } - line.push(cell); - if (options.alignDelimiters !== false) { - line.push(after); - } - if (options.padding !== false) { - line.push(' '); - } - if ( - options.delimiterEnd !== false || - columnIndex !== mostCellsPerRow - 1 - ) { - line.push('|'); + return events +} +function flushCell(map, context, range, rowKind, rowEnd, previousCell) { + const groupName = + rowKind === 1 + ? 'tableHeader' + : rowKind === 2 + ? 'tableDelimiter' + : 'tableData'; + const valueName = 'tableContent'; + if (range[0] !== 0) { + previousCell.end = Object.assign({}, getPoint(context.events, range[0])); + map.add(range[0], 0, [['exit', previousCell, context]]); + } + const now = getPoint(context.events, range[1]); + previousCell = { + type: groupName, + start: Object.assign({}, now), + end: Object.assign({}, now) + }; + map.add(range[1], 0, [['enter', previousCell, context]]); + if (range[2] !== 0) { + const relatedStart = getPoint(context.events, range[2]); + const relatedEnd = getPoint(context.events, range[3]); + const valueToken = { + type: valueName, + start: Object.assign({}, relatedStart), + end: Object.assign({}, relatedEnd) + }; + map.add(range[2], 0, [['enter', valueToken, context]]); + if (rowKind !== 2) { + const start = context.events[range[2]]; + const end = context.events[range[3]]; + start[1].end = Object.assign({}, end[1].end); + start[1].type = 'chunkText'; + start[1].contentType = 'text'; + if (range[3] > range[2] + 1) { + const a = range[2] + 1; + const b = range[3] - range[2] - 1; + map.add(a, b, []); } } - lines.push( - options.delimiterEnd === false - ? line.join('').replace(/ +$/, '') - : line.join('') - ); + map.add(range[3] + 1, 0, [['exit', valueToken, context]]); } - return lines.join('\n') -} -function serialize(value) { - return value === null || value === undefined ? '' : String(value) -} -function defaultStringLength(value) { - return value.length -} -function toAlignment(value) { - const code = typeof value === 'string' ? value.codePointAt(0) : 0; - return code === 67 || code === 99 - ? 99 - : code === 76 || code === 108 - ? 108 - : code === 82 || code === 114 - ? 114 - : 0 -} - -const gfmTableFromMarkdown = { - enter: { - table: enterTable, - tableData: enterCell, - tableHeader: enterCell, - tableRow: enterRow - }, - exit: { - codeText: exitCodeText, - table: exitTable, - tableData: exit, - tableHeader: exit, - tableRow: exit + if (rowEnd !== undefined) { + previousCell.end = Object.assign({}, getPoint(context.events, rowEnd)); + map.add(rowEnd, 0, [['exit', previousCell, context]]); + previousCell = undefined; } -}; -function enterTable(token) { - const align = token._align; - this.enter( - { - type: 'table', - align: align.map((d) => (d === 'none' ? null : d)), - children: [] - }, - token - ); - this.setData('inTable', true); -} -function exitTable(token) { - this.exit(token); - this.setData('inTable'); -} -function enterRow(token) { - this.enter({type: 'tableRow', children: []}, token); -} -function exit(token) { - this.exit(token); -} -function enterCell(token) { - this.enter({type: 'tableCell', children: []}, token); -} -function exitCodeText(token) { - let value = this.resume(); - if (this.getData('inTable')) { - value = value.replace(/\\([\\|])/g, replace); + return previousCell +} +function flushTableEnd(map, context, index, table, tableBody) { + const exits = []; + const related = getPoint(context.events, index); + if (tableBody) { + tableBody.end = Object.assign({}, related); + exits.push(['exit', tableBody, context]); } - const node = (this.stack[this.stack.length - 1]); - node.value = value; - this.exit(token); + table.end = Object.assign({}, related); + exits.push(['exit', table, context]); + map.add(index + 1, 0, exits); } -function replace($0, $1) { - return $1 === '|' ? $1 : $0 +function getPoint(events, index) { + const event = events[index]; + const side = event[0] === 'enter' ? 'start' : 'end'; + return event[1][side] } -function gfmTableToMarkdown(options) { - const settings = options || {}; - const padding = settings.tableCellPadding; - const alignDelimiters = settings.tablePipeAlign; - const stringLength = settings.stringLength; - const around = padding ? ' ' : '|'; + +const tasklistCheck = { + tokenize: tokenizeTasklistCheck +}; +function gfmTaskListItem() { return { - unsafe: [ - {character: '\r', inConstruct: 'tableCell'}, - {character: '\n', inConstruct: 'tableCell'}, - {atBreak: true, character: '|', after: '[\t :-]'}, - {character: '|', inConstruct: 'tableCell'}, - {atBreak: true, character: ':', after: '-'}, - {atBreak: true, character: '-', after: '[:|-]'} - ], - handlers: { - table: handleTable, - tableRow: handleTableRow, - tableCell: handleTableCell, - inlineCode: inlineCodeWithTable + text: { + [91]: tasklistCheck } } - function handleTable(node, _, context, safeOptions) { - return serializeData( - handleTableAsData(node, context, safeOptions), - node.align - ) - } - function handleTableRow(node, _, context, safeOptions) { - const row = handleTableRowAsData(node, context, safeOptions); - const value = serializeData([row]); - return value.slice(0, value.indexOf('\n')) - } - function handleTableCell(node, _, context, safeOptions) { - const exit = context.enter('tableCell'); - const subexit = context.enter('phrasing'); - const value = containerPhrasing(node, context, { - ...safeOptions, - before: around, - after: around - }); - subexit(); - exit(); - return value - } - function serializeData(matrix, align) { - return markdownTable(matrix, { - align, - alignDelimiters, - padding, - stringLength - }) - } - function handleTableAsData(node, context, safeOptions) { - const children = node.children; - let index = -1; - const result = []; - const subexit = context.enter('table'); - while (++index < children.length) { - result[index] = handleTableRowAsData( - children[index], - context, - safeOptions - ); +} +function tokenizeTasklistCheck(effects, ok, nok) { + const self = this; + return open + function open(code) { + if ( + self.previous !== null || + !self._gfmTasklistFirstContentOfListItem + ) { + return nok(code) } - subexit(); - return result + effects.enter('taskListCheck'); + effects.enter('taskListCheckMarker'); + effects.consume(code); + effects.exit('taskListCheckMarker'); + return inside } - function handleTableRowAsData(node, context, safeOptions) { - const children = node.children; - let index = -1; - const result = []; - const subexit = context.enter('tableRow'); - while (++index < children.length) { - result[index] = handleTableCell( - children[index], - node, - context, - safeOptions - ); + function inside(code) { + if (markdownLineEndingOrSpace(code)) { + effects.enter('taskListCheckValueUnchecked'); + effects.consume(code); + effects.exit('taskListCheckValueUnchecked'); + return close } - subexit(); - return result - } - function inlineCodeWithTable(node, parent, context) { - let value = inlineCode(node, parent, context); - if (context.stack.includes('tableCell')) { - value = value.replace(/\|/g, '\\$&'); + if (code === 88 || code === 120) { + effects.enter('taskListCheckValueChecked'); + effects.consume(code); + effects.exit('taskListCheckValueChecked'); + return close } - return value + return nok(code) } -} - -const gfmTaskListItemFromMarkdown = { - exit: { - taskListCheckValueChecked: exitCheck, - taskListCheckValueUnchecked: exitCheck, - paragraph: exitParagraphWithTaskListItem + function close(code) { + if (code === 93) { + effects.enter('taskListCheckMarker'); + effects.consume(code); + effects.exit('taskListCheckMarker'); + effects.exit('taskListCheck'); + return after + } + return nok(code) } -}; -const gfmTaskListItemToMarkdown = { - unsafe: [{atBreak: true, character: '-', after: '[:|-]'}], - handlers: {listItem: listItemWithTaskListItem} -}; -function exitCheck(token) { - const node = (this.stack[this.stack.length - 2]); - node.checked = token.type === 'taskListCheckValueChecked'; -} -function exitParagraphWithTaskListItem(token) { - const parent = (this.stack[this.stack.length - 2]); - if ( - parent && - parent.type === 'listItem' && - typeof parent.checked === 'boolean' - ) { - const node = (this.stack[this.stack.length - 1]); - const head = node.children[0]; - if (head && head.type === 'text') { - const siblings = parent.children; - let index = -1; - let firstParaghraph; - while (++index < siblings.length) { - const sibling = siblings[index]; - if (sibling.type === 'paragraph') { - firstParaghraph = sibling; - break - } - } - if (firstParaghraph === node) { - head.value = head.value.slice(1); - if (head.value.length === 0) { - node.children.shift(); - } else if ( - node.position && - head.position && - typeof head.position.start.offset === 'number' - ) { - head.position.start.column++; - head.position.start.offset++; - node.position.start = Object.assign({}, head.position.start); - } - } + function after(code) { + if (markdownLineEnding(code)) { + return ok(code) + } + if (markdownSpace(code)) { + return effects.check( + { + tokenize: spaceThenNonSpace + }, + ok, + nok + )(code) } + return nok(code) } - this.exit(token); } -function listItemWithTaskListItem(node, parent, context, safeOptions) { - const head = node.children[0]; - const checkable = - typeof node.checked === 'boolean' && head && head.type === 'paragraph'; - const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '; - const tracker = track(safeOptions); - if (checkable) { - tracker.move(checkbox); - } - let value = listItem(node, parent, context, { - ...safeOptions, - ...tracker.current() - }); - if (checkable) { - value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); - } - return value - function check($0) { - return $0 + checkbox +function spaceThenNonSpace(effects, ok, nok) { + return factorySpace(effects, after, 'whitespace') + function after(code) { + return code === null ? nok(code) : ok(code) } } -function gfmFromMarkdown() { - return [ - gfmAutolinkLiteralFromMarkdown, - gfmFootnoteFromMarkdown(), - gfmStrikethroughFromMarkdown, - gfmTableFromMarkdown, - gfmTaskListItemFromMarkdown - ] -} -function gfmToMarkdown(options) { - return { - extensions: [ - gfmAutolinkLiteralToMarkdown, - gfmFootnoteToMarkdown(), - gfmStrikethroughToMarkdown, - gfmTableToMarkdown(options), - gfmTaskListItemToMarkdown - ] - } +function gfm(options) { + return combineExtensions([ + gfmAutolinkLiteral(), + gfmFootnote(), + gfmStrikethrough(options), + gfmTable(), + gfmTaskListItem() + ]) } -function remarkGfm(options = {}) { - const data = this.data(); - add('micromarkExtensions', gfm(options)); - add('fromMarkdownExtensions', gfmFromMarkdown()); - add('toMarkdownExtensions', gfmToMarkdown(options)); - function add(field, value) { - const list = ( - data[field] ? data[field] : (data[field] = []) - ); - list.push(value); - } +const emptyOptions$2 = {}; +function remarkGfm(options) { + const self = (this); + const settings = options || emptyOptions$2; + const data = self.data(); + const micromarkExtensions = + data.micromarkExtensions || (data.micromarkExtensions = []); + const fromMarkdownExtensions = + data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []); + const toMarkdownExtensions = + data.toMarkdownExtensions || (data.toMarkdownExtensions = []); + micromarkExtensions.push(gfm(settings)); + fromMarkdownExtensions.push(gfmFromMarkdown()); + toMarkdownExtensions.push(gfmToMarkdown(settings)); } function location(file) { @@ -11914,14 +11912,78 @@ function location(file) { } } -function color$1(d) { +const convert$z = + ( + function (test) { + if (test === undefined || test === null) { + return ok$z + } + if (typeof test === 'string') { + return typeFactory$z(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$z(test) : propsFactory$z(test) + } + if (typeof test === 'function') { + return castFactory$z(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$z(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$z(tests[index]); + } + return castFactory$z(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$z(check) { + return castFactory$z(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$z(check) { + return castFactory$z(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$z(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$z() { + return true +} + +function color$A(d) { return '\u001B[33m' + d + '\u001B[39m' } -const CONTINUE = true; -const SKIP = 'skip'; -const EXIT = false; -const visitParents = +const CONTINUE$z = true; +const SKIP$z = 'skip'; +const EXIT$z = false; +const visitParents$z = ( function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { @@ -11929,7 +11991,7 @@ const visitParents = visitor = test; test = null; } - var is = convert(test); + var is = convert$z(test); var step = reverse ? -1 : 1; factory(tree, null, [])(); function factory(node, index, parents) { @@ -11945,7 +12007,7 @@ const visitParents = Object.defineProperty(visit, 'name', { value: 'node (' + - color$1(value.type + (name ? '<' + name + '>' : '')) + + color$A(value.type + (name ? '<' + name + '>' : '')) + ')' }); } @@ -11956,17 +12018,17 @@ const visitParents = var offset; var grandparents; if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult(visitor(node, parents)); - if (result[0] === EXIT) { + result = toResult$z(visitor(node, parents)); + if (result[0] === EXIT$z) { return result } } - if (node.children && result[0] !== SKIP) { + if (node.children && result[0] !== SKIP$z) { offset = (reverse ? node.children.length : -1) + step; grandparents = parents.concat(node); while (offset > -1 && offset < node.children.length) { subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT) { + if (subresult[0] === EXIT$z) { return subresult } offset = @@ -11978,17 +12040,17 @@ const visitParents = } } ); -function toResult(value) { +function toResult$z(value) { if (Array.isArray(value)) { return value } if (typeof value === 'number') { - return [CONTINUE, value] + return [CONTINUE$z, value] } return [value] } -const visit = +const visit$z = ( function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { @@ -11996,7 +12058,7 @@ const visit = visitor = test; test = null; } - visitParents(tree, test, overload, reverse); + visitParents$z(tree, test, overload, reverse); function overload(node, parents) { var parent = parents[parents.length - 1]; return visitor( @@ -12034,7 +12096,7 @@ function messageControl(options) { const gaps = detectGaps(tree, file); const scope = {}; const globals = []; - visit(tree, options.test, visitor); + visit$z(tree, options.test, visitor); file.messages = file.messages.filter((m) => filter(m)); function visitor(node, position, parent) { const mark = options.marker(node); @@ -12169,7 +12231,7 @@ function detectGaps(tree, file) { const gaps = []; let offset = 0; let gap; - visit(tree, one); + visit$z(tree, one); if ( lastNode && lastNode.position && @@ -12764,615 +12826,1833 @@ var pluralize = {exports: {}}; var pluralizeExports = pluralize.exports; var plural = getDefaultExportFromCjs(pluralizeExports); +const convert$y = + ( + function (test) { + if (test === undefined || test === null) { + return ok$y + } + if (typeof test === 'string') { + return typeFactory$y(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$y(test) : propsFactory$y(test) + } + if (typeof test === 'function') { + return castFactory$y(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$y(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$y(tests[index]); + } + return castFactory$y(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$y(check) { + return castFactory$y(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$y(check) { + return castFactory$y(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$y(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$y() { + return true +} + +function color$z(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$y = true; +const EXIT$y = false; +const SKIP$y = 'skip'; +const visitParents$y = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$y(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$z(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$y(visitor(node, parents)); + if (result[0] === EXIT$y) { + return result + } + } + if (node.children && result[0] !== SKIP$y) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$y) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$y(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$y, value] + } + return [value] +} + +const visit$y = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$y(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +/** + * ## When should I use this? + * + * You can use this package to check that list items are not indented. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * There is no specific handling of indented list items (or anything else) in + * markdown. + * While it is possible to use an indent to align ordered lists on their marker: + * + * ```markdown + * 1. One + * 10. Ten + * 100. Hundred + * ``` + * + * …such a style is uncommon and a bit hard to maintain: adding a 10th item + * means 9 other items have to change (more arduous, while unlikely, would be + * the 100th item). + * Hence, it’s recommended to not indent items and to turn this rule on. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats all items without indent. + * + * @module list-item-bullet-indent + * @summary + * remark-lint rule to warn when list items are indented. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT + * @example + * {"name": "ok.md"} + * + * Paragraph. + * + * * List item + * * List item + * + * @example + * {"name": "not-ok.md", "label": "input"} + * + * Paragraph. + * + * ·* List item + * ·* List item + * + * @example + * {"name": "not-ok.md", "label": "output"} + * + * 3:2: Incorrect indentation before bullet: remove 1 space + * 4:2: Incorrect indentation before bullet: remove 1 space + */ +const remarkLintListItemBulletIndent = lintRule( + { + origin: 'remark-lint:list-item-bullet-indent', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-bullet-indent#readme' + }, + (tree, file) => { + visit$y(tree, 'list', (list, _, grandparent) => { + let index = -1; + while (++index < list.children.length) { + const item = list.children[index]; + if ( + grandparent && + grandparent.type === 'root' && + grandparent.position && + typeof grandparent.position.start.column === 'number' && + item.position && + typeof item.position.start.column === 'number' + ) { + const indent = + item.position.start.column - grandparent.position.start.column; + if (indent) { + file.message( + 'Incorrect indentation before bullet: remove ' + + indent + + ' ' + + plural('space', indent), + item.position.start + ); + } + } + } + }); + } +); +var remarkLintListItemBulletIndent$1 = remarkLintListItemBulletIndent; + +const convert$x = + ( + function (test) { + if (test === undefined || test === null) { + return ok$x + } + if (typeof test === 'string') { + return typeFactory$x(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$x(test) : propsFactory$x(test) + } + if (typeof test === 'function') { + return castFactory$x(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$x(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$x(tests[index]); + } + return castFactory$x(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$x(check) { + return castFactory$x(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$x(check) { + return castFactory$x(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$x(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$x() { + return true +} + +function color$y(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$x = true; +const EXIT$x = false; +const SKIP$x = 'skip'; +const visitParents$x = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$x(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$y(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$x(visitor(node, parents)); + if (result[0] === EXIT$x) { + return result + } + } + if (node.children && result[0] !== SKIP$x) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$x) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$x(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$x, value] + } + return [value] +} + +const visit$x = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$x(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +const pointStart = point$2('start'); +const pointEnd = point$2('end'); +function point$2(type) { + return point + function point(node) { + const point = (node && node.position && node.position[type]) || {}; + return { + line: point.line || null, + column: point.column || null, + offset: point.offset > -1 ? point.offset : null + } + } +} + +function generated(node) { + return ( + !node || + !node.position || + !node.position.start || + !node.position.start.line || + !node.position.start.column || + !node.position.end || + !node.position.end.line || + !node.position.end.column + ) +} + /** * ## When should I use this? * - * You can use this package to check that list items are not indented. + * You can use this package to check that the spacing between list item markers + * and content is inconsistent. * * ## API * - * There are no options. + * The following options (default: `'tab-size'`) are accepted: + * + * * `'space'` + * — prefer a single space + * * `'tab-size'` + * — prefer spaces the size of the next tab stop + * * `'mixed'` + * — prefer `'space'` for tight lists and `'tab-size'` for loose lists * * ## Recommendation * - * There is no specific handling of indented list items (or anything else) in - * markdown. - * While it is possible to use an indent to align ordered lists on their marker: + * First, some background. + * The number of spaces that occur after list markers (`*`, `-`, and `+` for + * unordered lists, or `.` and `)` for unordered lists) and before the content + * on the first line, defines how much indentation can be used for further + * lines. + * At least one space is required and up to 4 spaces are allowed (if there is no + * further content after the marker then it’s a blank line which is handled as + * if there was one space; if there are 5 or more spaces and then content, it’s + * also seen as one space and the rest is seen as indented code). * - * ```markdown - * 1. One - * 10. Ten - * 100. Hundred - * ``` + * There are two types of lists in markdown (other than ordered and unordered): + * tight and loose lists. + * Lists are tight by default but if there is a blank line between two list + * items or between two blocks inside an item, that turns the whole list into a + * loose list. + * When turning markdown into HTML, paragraphs in tight lists are not wrapped + * in `

                            ` tags. * - * …such a style is uncommon and a bit hard to maintain: adding a 10th item - * means 9 other items have to change (more arduous, while unlikely, would be - * the 100th item). - * Hence, it’s recommended to not indent items and to turn this rule on. + * Historically, how indentation of lists works in markdown has been a mess, + * especially with how they interact with indented code. + * CommonMark made that a *lot* better, but there remain (documented but + * complex) edge cases and some behavior intuitive. + * Due to this, the default of this list is `'tab-size'`, which worked the best + * in most markdown parsers. + * Currently, the situation between markdown parsers is better, so choosing + * `'space'` (which seems to be the most common style used by authors) should + * be okay. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * formats all items without indent. + * uses `'tab-size'` (named `'tab'` there) by default. + * [`listItemIndent: '1'` (for `'space'`) or `listItemIndent: 'mixed'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionslistitemindent) + * is supported. * - * @module list-item-bullet-indent + * @module list-item-indent * @summary - * remark-lint rule to warn when list items are indented. + * remark-lint rule to warn when spacing between list item markers and + * content is inconsistent. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * Paragraph. + * *···List + * ····item. + * + * Paragraph. + * + * 11.·List + * ····item. + * + * Paragraph. + * + * *···List + * ····item. + * + * *···List + * ····item. + * + * @example + * {"name": "ok.md", "config": "mixed"} + * + * *·List item. + * + * Paragraph. + * + * 11.·List item + * + * Paragraph. + * + * *···List + * ····item. + * + * *···List + * ····item. + * + * @example + * {"name": "ok.md", "config": "space"} + * + * *·List item. + * + * Paragraph. + * + * 11.·List item + * + * Paragraph. + * + * *·List + * ··item. + * + * *·List + * ··item. + * + * @example + * {"name": "not-ok.md", "config": "space", "label": "input"} + * + * *···List + * ····item. + * + * @example + * {"name": "not-ok.md", "config": "space", "label": "output"} + * + * 1:5: Incorrect list-item indent: remove 2 spaces + * + * @example + * {"name": "not-ok.md", "config": "tab-size", "label": "input"} + * + * *·List + * ··item. + * + * @example + * {"name": "not-ok.md", "config": "tab-size", "label": "output"} * - * * List item - * * List item + * 1:3: Incorrect list-item indent: add 2 spaces * * @example - * {"name": "not-ok.md", "label": "input"} + * {"name": "not-ok.md", "config": "mixed", "label": "input"} * - * Paragraph. + * *···List item. * - * ·* List item - * ·* List item + * @example + * {"name": "not-ok.md", "config": "mixed", "label": "output"} + * + * 1:5: Incorrect list-item indent: remove 2 spaces * * @example - * {"name": "not-ok.md", "label": "output"} + * {"name": "not-ok.md", "config": "💩", "label": "output", "positionless": true} * - * 3:2: Incorrect indentation before bullet: remove 1 space - * 4:2: Incorrect indentation before bullet: remove 1 space + * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` */ -const remarkLintListItemBulletIndent = lintRule( +const remarkLintListItemIndent = lintRule( { - origin: 'remark-lint:list-item-bullet-indent', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-bullet-indent#readme' + origin: 'remark-lint:list-item-indent', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent#readme' }, - (tree, file) => { - visit$1(tree, 'list', (list, _, grandparent) => { + (tree, file, option = 'tab-size') => { + const value = String(file); + if (option !== 'tab-size' && option !== 'space' && option !== 'mixed') { + file.fail( + 'Incorrect list-item indent style `' + + option + + "`: use either `'tab-size'`, `'space'`, or `'mixed'`" + ); + } + visit$x(tree, 'list', (node) => { + if (generated(node)) return + const spread = node.spread; let index = -1; - while (++index < list.children.length) { - const item = list.children[index]; - if ( - grandparent && - grandparent.type === 'root' && - grandparent.position && - typeof grandparent.position.start.column === 'number' && - item.position && - typeof item.position.start.column === 'number' - ) { - const indent = - item.position.start.column - grandparent.position.start.column; - if (indent) { - file.message( - 'Incorrect indentation before bullet: remove ' + - indent + - ' ' + - plural('space', indent), - item.position.start - ); - } + while (++index < node.children.length) { + const item = node.children[index]; + const head = item.children[0]; + const final = pointStart(head); + const marker = value + .slice(pointStart(item).offset, final.offset) + .replace(/\[[x ]?]\s*$/i, ''); + const bulletSize = marker.replace(/\s+$/, '').length; + const style = + option === 'tab-size' || (option === 'mixed' && spread) + ? Math.ceil(bulletSize / 4) * 4 + : bulletSize + 1; + if (marker.length !== style) { + const diff = style - marker.length; + const abs = Math.abs(diff); + file.message( + 'Incorrect list-item indent: ' + + (diff > 0 ? 'add' : 'remove') + + ' ' + + abs + + ' ' + + plural('space', abs), + final + ); } } }); } ); -var remarkLintListItemBulletIndent$1 = remarkLintListItemBulletIndent; +var remarkLintListItemIndent$1 = remarkLintListItemIndent; -const pointStart = point$2('start'); -const pointEnd = point$2('end'); -function point$2(type) { - return point - function point(node) { - const point = (node && node.position && node.position[type]) || {}; - return { - line: point.line || null, - column: point.column || null, - offset: point.offset > -1 ? point.offset : null +const convert$w = + ( + function (test) { + if (test === undefined || test === null) { + return ok$w + } + if (typeof test === 'string') { + return typeFactory$w(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$w(test) : propsFactory$w(test) + } + if (typeof test === 'function') { + return castFactory$w(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$w(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$w(tests[index]); + } + return castFactory$w(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$w(check) { + return castFactory$w(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false } + return true + } +} +function typeFactory$w(check) { + return castFactory$w(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$w(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) } } +function ok$w() { + return true +} -function generated(node) { - return ( - !node || - !node.position || - !node.position.start || - !node.position.start.line || - !node.position.start.column || - !node.position.end || - !node.position.end.line || - !node.position.end.column - ) +function color$x(d) { + return '\u001B[33m' + d + '\u001B[39m' } -/** - * ## When should I use this? - * - * You can use this package to check that the spacing between list item markers - * and content is inconsistent. - * - * ## API - * - * The following options (default: `'tab-size'`) are accepted: - * - * * `'space'` - * — prefer a single space - * * `'tab-size'` - * — prefer spaces the size of the next tab stop - * * `'mixed'` - * — prefer `'space'` for tight lists and `'tab-size'` for loose lists - * - * ## Recommendation - * - * First, some background. - * The number of spaces that occur after list markers (`*`, `-`, and `+` for - * unordered lists, or `.` and `)` for unordered lists) and before the content - * on the first line, defines how much indentation can be used for further - * lines. - * At least one space is required and up to 4 spaces are allowed (if there is no - * further content after the marker then it’s a blank line which is handled as - * if there was one space; if there are 5 or more spaces and then content, it’s - * also seen as one space and the rest is seen as indented code). +const CONTINUE$w = true; +const EXIT$w = false; +const SKIP$w = 'skip'; +const visitParents$w = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$w(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$x(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$w(visitor(node, parents)); + if (result[0] === EXIT$w) { + return result + } + } + if (node.children && result[0] !== SKIP$w) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$w) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$w(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$w, value] + } + return [value] +} + +const visit$w = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$w(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +/** + * ## When should I use this? * - * There are two types of lists in markdown (other than ordered and unordered): - * tight and loose lists. - * Lists are tight by default but if there is a blank line between two list - * items or between two blocks inside an item, that turns the whole list into a - * loose list. - * When turning markdown into HTML, paragraphs in tight lists are not wrapped - * in `

                            ` tags. + * You can use this package to check that lines in block quotes start with `>`. * - * Historically, how indentation of lists works in markdown has been a mess, - * especially with how they interact with indented code. - * CommonMark made that a *lot* better, but there remain (documented but - * complex) edge cases and some behavior intuitive. - * Due to this, the default of this list is `'tab-size'`, which worked the best - * in most markdown parsers. - * Currently, the situation between markdown parsers is better, so choosing - * `'space'` (which seems to be the most common style used by authors) should - * be okay. + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Rules around “lazy” lines are not straightforward and visually confusing, + * so it’s recommended to start each line with a `>`. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * uses `'tab-size'` (named `'tab'` there) by default. - * [`listItemIndent: '1'` (for `'space'`) or `listItemIndent: 'mixed'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionslistitemindent) - * is supported. + * adds `>` markers to every line in a block quote. * - * @module list-item-indent + * @module no-blockquote-without-marker * @summary - * remark-lint rule to warn when spacing between list item markers and - * content is inconsistent. + * remark-lint rule to warn when lines in block quotes start without `>`. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * *···List - * ····item. - * - * Paragraph. - * - * 11.·List - * ····item. - * - * Paragraph. - * - * *···List - * ····item. - * - * *···List - * ····item. + * > Foo… + * > …bar… + * > …baz. * * @example - * {"name": "ok.md", "config": "mixed"} - * - * *·List item. - * - * Paragraph. - * - * 11.·List item - * - * Paragraph. - * - * *···List - * ····item. + * {"name": "ok-tabs.md"} * - * *···List - * ····item. + * >»Foo… + * >»…bar… + * >»…baz. * * @example - * {"name": "ok.md", "config": "space"} - * - * *·List item. + * {"name": "not-ok.md", "label": "input"} * - * Paragraph. + * > Foo… + * …bar… + * > …baz. * - * 11.·List item + * @example + * {"name": "not-ok.md", "label": "output"} * - * Paragraph. + * 2:1: Missing marker in block quote * - * *·List - * ··item. + * @example + * {"name": "not-ok-tabs.md", "label": "input"} * - * *·List - * ··item. + * >»Foo… + * »…bar… + * …baz. * * @example - * {"name": "not-ok.md", "config": "space", "label": "input"} + * {"name": "not-ok-tabs.md", "label": "output"} + * + * 2:1: Missing marker in block quote + * 3:1: Missing marker in block quote + */ +const remarkLintNoBlockquoteWithoutMarker = lintRule( + { + origin: 'remark-lint:no-blockquote-without-marker', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker#readme' + }, + (tree, file) => { + const value = String(file); + const loc = location(file); + visit$w(tree, 'blockquote', (node) => { + let index = -1; + while (++index < node.children.length) { + const child = node.children[index]; + if (child.type === 'paragraph' && !generated(child)) { + const end = pointEnd(child).line; + const column = pointStart(child).column; + let line = pointStart(child).line; + while (++line <= end) { + const offset = loc.toOffset({line, column}); + if (/>[\t ]+$/.test(value.slice(offset - 5, offset))) { + continue + } + file.message('Missing marker in block quote', { + line, + column: column - 2 + }); + } + } + } + }); + } +); +var remarkLintNoBlockquoteWithoutMarker$1 = remarkLintNoBlockquoteWithoutMarker; + +const convert$v = + ( + function (test) { + if (test === undefined || test === null) { + return ok$v + } + if (typeof test === 'string') { + return typeFactory$v(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$v(test) : propsFactory$v(test) + } + if (typeof test === 'function') { + return castFactory$v(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$v(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$v(tests[index]); + } + return castFactory$v(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$v(check) { + return castFactory$v(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$v(check) { + return castFactory$v(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$v(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$v() { + return true +} + +function color$w(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$v = true; +const EXIT$v = false; +const SKIP$v = 'skip'; +const visitParents$v = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$v(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$w(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$v(visitor(node, parents)); + if (result[0] === EXIT$v) { + return result + } + } + if (node.children && result[0] !== SKIP$v) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$v) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$v(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$v, value] + } + return [value] +} + +const visit$v = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$v(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +const emptyOptions$1 = {}; +function toString$1(value, options) { + const settings = options || emptyOptions$1; + const includeImageAlt = + typeof settings.includeImageAlt === 'boolean' + ? settings.includeImageAlt + : true; + const includeHtml = + typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true; + return one$1(value, includeImageAlt, includeHtml) +} +function one$1(value, includeImageAlt, includeHtml) { + if (node$1(value)) { + if ('value' in value) { + return value.type === 'html' && !includeHtml ? '' : value.value + } + if (includeImageAlt && 'alt' in value && value.alt) { + return value.alt + } + if ('children' in value) { + return all$1(value.children, includeImageAlt, includeHtml) + } + } + if (Array.isArray(value)) { + return all$1(value, includeImageAlt, includeHtml) + } + return '' +} +function all$1(values, includeImageAlt, includeHtml) { + const result = []; + let index = -1; + while (++index < values.length) { + result[index] = one$1(values[index], includeImageAlt, includeHtml); + } + return result.join('') +} +function node$1(value) { + return Boolean(value && typeof value === 'object') +} + +/** + * ## When should I use this? * - * *···List - * ····item. + * You can use this package to check that autolink literal URLs are not used. * - * @example - * {"name": "not-ok.md", "config": "space", "label": "output"} + * ## API * - * 1:5: Incorrect list-item indent: remove 2 spaces + * There are no options. * - * @example - * {"name": "not-ok.md", "config": "tab-size", "label": "input"} + * ## Recommendation * - * *·List - * ··item. + * Autolink literal URLs (just a URL) are a feature enabled by GFM. + * They don’t work everywhere. + * Due to this, it’s recommended to instead use normal autolinks + * (``) or links (`[text](url)`). * - * @example - * {"name": "not-ok.md", "config": "tab-size", "label": "output"} + * ## Fix * - * 1:3: Incorrect list-item indent: add 2 spaces + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * never creates autolink literals and always uses normal autolinks (``). * + * @module no-literal-urls + * @summary + * remark-lint rule to warn for autolink literals. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example - * {"name": "not-ok.md", "config": "mixed", "label": "input"} + * {"name": "ok.md"} * - * *···List item. + * * * @example - * {"name": "not-ok.md", "config": "mixed", "label": "output"} + * {"name": "not-ok.md", "label": "input", "gfm": true} * - * 1:5: Incorrect list-item indent: remove 2 spaces + * http://foo.bar/baz * * @example - * {"name": "not-ok.md", "config": "💩", "label": "output", "positionless": true} + * {"name": "not-ok.md", "label": "output", "gfm": true} * - * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` + * 1:1-1:19: Don’t use literal URLs without angle brackets */ -const remarkLintListItemIndent = lintRule( +const remarkLintNoLiteralUrls = lintRule( { - origin: 'remark-lint:list-item-indent', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent#readme' + origin: 'remark-lint:no-literal-urls', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls#readme' }, - (tree, file, option = 'tab-size') => { - const value = String(file); - if (option !== 'tab-size' && option !== 'space' && option !== 'mixed') { - file.fail( - 'Incorrect list-item indent style `' + - option + - "`: use either `'tab-size'`, `'space'`, or `'mixed'`" - ); - } - visit$1(tree, 'list', (node) => { - if (generated(node)) return - const spread = node.spread; - let index = -1; - while (++index < node.children.length) { - const item = node.children[index]; - const head = item.children[0]; - const final = pointStart(head); - const marker = value - .slice(pointStart(item).offset, final.offset) - .replace(/\[[x ]?]\s*$/i, ''); - const bulletSize = marker.replace(/\s+$/, '').length; - const style = - option === 'tab-size' || (option === 'mixed' && spread) - ? Math.ceil(bulletSize / 4) * 4 - : bulletSize + 1; - if (marker.length !== style) { - const diff = style - marker.length; - const abs = Math.abs(diff); - file.message( - 'Incorrect list-item indent: ' + - (diff > 0 ? 'add' : 'remove') + - ' ' + - abs + - ' ' + - plural('space', abs), - final - ); - } + (tree, file) => { + visit$v(tree, 'link', (node) => { + const value = toString$1(node); + if ( + !generated(node) && + pointStart(node).column === pointStart(node.children[0]).column && + pointEnd(node).column === + pointEnd(node.children[node.children.length - 1]).column && + (node.url === 'mailto:' + value || node.url === value) + ) { + file.message('Don’t use literal URLs without angle brackets', node); } }); } ); -var remarkLintListItemIndent$1 = remarkLintListItemIndent; +var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; + +const convert$u = + ( + function (test) { + if (test === undefined || test === null) { + return ok$u + } + if (typeof test === 'string') { + return typeFactory$u(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$u(test) : propsFactory$u(test) + } + if (typeof test === 'function') { + return castFactory$u(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$u(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$u(tests[index]); + } + return castFactory$u(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$u(check) { + return castFactory$u(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$u(check) { + return castFactory$u(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$u(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$u() { + return true +} + +function color$v(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$u = true; +const EXIT$u = false; +const SKIP$u = 'skip'; +const visitParents$u = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$u(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$v(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$u(visitor(node, parents)); + if (result[0] === EXIT$u) { + return result + } + } + if (node.children && result[0] !== SKIP$u) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$u) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$u(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$u, value] + } + return [value] +} + +const visit$u = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$u(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? * - * You can use this package to check that lines in block quotes start with `>`. + * You can use this package to check that ordered list markers are consistent. * * ## API * - * There are no options. + * The following options (default: `'consistent'`) are accepted: + * + * * `'.'` + * — prefer dots + * * `')'` + * — prefer parens + * * `'consistent'` + * — detect the first used style and warn when further markers differ * * ## Recommendation * - * Rules around “lazy” lines are not straightforward and visually confusing, - * so it’s recommended to start each line with a `>`. + * Parens for list markers were not supported in markdown before CommonMark. + * While they should work in most places now, not all markdown parsers follow + * CommonMark. + * Due to this, it’s recommended to prefer dots. * * ## Fix * * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * adds `>` markers to every line in a block quote. + * formats ordered lists with dots by default. + * Pass + * [`bulletOrdered: ')'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsbulletordered) + * to always use parens. * - * @module no-blockquote-without-marker + * @module ordered-list-marker-style * @summary - * remark-lint rule to warn when lines in block quotes start without `>`. + * remark-lint rule to warn when ordered list markers are inconsistent. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * > Foo… - * > …bar… - * > …baz. + * 1. Foo + * + * + * 1. Bar + * + * Unordered lists are not affected by this rule. + * + * * Foo * * @example - * {"name": "ok-tabs.md"} + * {"name": "ok.md", "config": "."} * - * >»Foo… - * >»…bar… - * >»…baz. + * 1. Foo + * + * 2. Bar * * @example - * {"name": "not-ok.md", "label": "input"} + * {"name": "ok.md", "config": ")"} * - * > Foo… - * …bar… - * > …baz. + * 1) Foo + * + * 2) Bar * * @example - * {"name": "not-ok.md", "label": "output"} + * {"name": "not-ok.md", "label": "input"} * - * 2:1: Missing marker in block quote + * 1. Foo + * + * 2) Bar * * @example - * {"name": "not-ok-tabs.md", "label": "input"} + * {"name": "not-ok.md", "label": "output"} * - * >»Foo… - * »…bar… - * …baz. + * 3:1-3:8: Marker style should be `.` * * @example - * {"name": "not-ok-tabs.md", "label": "output"} + * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} * - * 2:1: Missing marker in block quote - * 3:1: Missing marker in block quote + * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` */ -const remarkLintNoBlockquoteWithoutMarker = lintRule( +const remarkLintOrderedListMarkerStyle = lintRule( { - origin: 'remark-lint:no-blockquote-without-marker', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker#readme' + origin: 'remark-lint:ordered-list-marker-style', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style#readme' }, - (tree, file) => { + (tree, file, option = 'consistent') => { const value = String(file); - const loc = location(file); - visit$1(tree, 'blockquote', (node) => { + if (option !== 'consistent' && option !== '.' && option !== ')') { + file.fail( + 'Incorrect ordered list item marker style `' + + option + + "`: use either `'.'` or `')'`" + ); + } + visit$u(tree, 'list', (node) => { let index = -1; + if (!node.ordered) return while (++index < node.children.length) { const child = node.children[index]; - if (child.type === 'paragraph' && !generated(child)) { - const end = pointEnd(child).line; - const column = pointStart(child).column; - let line = pointStart(child).line; - while (++line <= end) { - const offset = loc.toOffset({line, column}); - if (/>[\t ]+$/.test(value.slice(offset - 5, offset))) { - continue - } - file.message('Missing marker in block quote', { - line, - column: column - 2 - }); + if (!generated(child)) { + const marker = ( + value + .slice( + pointStart(child).offset, + pointStart(child.children[0]).offset + ) + .replace(/\s|\d/g, '') + .replace(/\[[x ]?]\s*$/i, '') + ); + if (option === 'consistent') { + option = marker; + } else if (marker !== option) { + file.message('Marker style should be `' + option + '`', child); } } } }); } ); -var remarkLintNoBlockquoteWithoutMarker$1 = remarkLintNoBlockquoteWithoutMarker; +var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; -/** - * ## When should I use this? - * - * You can use this package to check that autolink literal URLs are not used. - * - * ## API - * - * There are no options. - * - * ## Recommendation - * - * Autolink literal URLs (just a URL) are a feature enabled by GFM. - * They don’t work everywhere. - * Due to this, it’s recommended to instead use normal autolinks - * (``) or links (`[text](url)`). - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * never creates autolink literals and always uses normal autolinks (``). - * - * @module no-literal-urls - * @summary - * remark-lint rule to warn for autolink literals. - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @example - * {"name": "ok.md"} - * - * - * - * @example - * {"name": "not-ok.md", "label": "input", "gfm": true} - * - * http://foo.bar/baz - * - * @example - * {"name": "not-ok.md", "label": "output", "gfm": true} - * - * 1:1-1:19: Don’t use literal URLs without angle brackets - */ -const remarkLintNoLiteralUrls = lintRule( - { - origin: 'remark-lint:no-literal-urls', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls#readme' - }, - (tree, file) => { - visit$1(tree, 'link', (node) => { - const value = toString(node); - if ( - !generated(node) && - pointStart(node).column === pointStart(node.children[0]).column && - pointEnd(node).column === - pointEnd(node.children[node.children.length - 1]).column && - (node.url === 'mailto:' + value || node.url === value) - ) { - file.message('Don’t use literal URLs without angle brackets', node); +const convert$t = + ( + function (test) { + if (test === undefined || test === null) { + return ok$t + } + if (typeof test === 'string') { + return typeFactory$t(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$t(test) : propsFactory$t(test) + } + if (typeof test === 'function') { + return castFactory$t(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$t(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$t(tests[index]); + } + return castFactory$t(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$t(check) { + return castFactory$t(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$t(check) { + return castFactory$t(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$t(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$t() { + return true +} + +function color$u(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$t = true; +const EXIT$t = false; +const SKIP$t = 'skip'; +const visitParents$t = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$t(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$u(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$t(visitor(node, parents)); + if (result[0] === EXIT$t) { + return result + } + } + if (node.children && result[0] !== SKIP$t) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$t) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } } - }); + } + ); +function toResult$t(value) { + if (Array.isArray(value)) { + return value } -); -var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; + if (typeof value === 'number') { + return [CONTINUE$t, value] + } + return [value] +} + +const visit$t = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$t(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? * - * You can use this package to check that ordered list markers are consistent. + * You can use this package to check that hard breaks use two spaces and + * not more. * * ## API * - * The following options (default: `'consistent'`) are accepted: - * - * * `'.'` - * — prefer dots - * * `')'` - * — prefer parens - * * `'consistent'` - * — detect the first used style and warn when further markers differ + * There are no options. * * ## Recommendation * - * Parens for list markers were not supported in markdown before CommonMark. - * While they should work in most places now, not all markdown parsers follow - * CommonMark. - * Due to this, it’s recommended to prefer dots. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * formats ordered lists with dots by default. - * Pass - * [`bulletOrdered: ')'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsbulletordered) - * to always use parens. + * Less than two spaces do not create a hard breaks and more than two spaces + * have no effect. + * Due to this, it’s recommended to turn this rule on. * - * @module ordered-list-marker-style + * @module hard-break-spaces * @summary - * remark-lint rule to warn when ordered list markers are inconsistent. + * remark-lint rule to warn when more spaces are used than needed + * for hard breaks. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * 1. Foo - * - * - * 1. Bar - * - * Unordered lists are not affected by this rule. - * - * * Foo - * - * @example - * {"name": "ok.md", "config": "."} - * - * 1. Foo - * - * 2. Bar - * - * @example - * {"name": "ok.md", "config": ")"} - * - * 1) Foo - * - * 2) Bar + * Lorem ipsum·· + * dolor sit amet * * @example * {"name": "not-ok.md", "label": "input"} * - * 1. Foo - * - * 2) Bar + * Lorem ipsum··· + * dolor sit amet. * * @example * {"name": "not-ok.md", "label": "output"} * - * 3:1-3:8: Marker style should be `.` - * - * @example - * {"name": "not-ok.md", "label": "output", "config": "💩", "positionless": true} - * - * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` + * 1:12-2:1: Use two spaces for hard line breaks */ -const remarkLintOrderedListMarkerStyle = lintRule( +const remarkLintHardBreakSpaces = lintRule( { - origin: 'remark-lint:ordered-list-marker-style', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style#readme' + origin: 'remark-lint:hard-break-spaces', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces#readme' }, - (tree, file, option = 'consistent') => { + (tree, file) => { const value = String(file); - if (option !== 'consistent' && option !== '.' && option !== ')') { - file.fail( - 'Incorrect ordered list item marker style `' + - option + - "`: use either `'.'` or `')'`" - ); + visit$t(tree, 'break', (node) => { + if (!generated(node)) { + const slice = value + .slice(pointStart(node).offset, pointEnd(node).offset) + .split('\n', 1)[0] + .replace(/\r$/, ''); + if (slice.length > 2) { + file.message('Use two spaces for hard line breaks', node); + } + } + }); + } +); +var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; + +function stringifyPosition$1(value) { + if (!value || typeof value !== 'object') { + return '' + } + if ('position' in value || 'type' in value) { + return position$1(value.position) + } + if ('start' in value || 'end' in value) { + return position$1(value) + } + if ('line' in value || 'column' in value) { + return point$1(value) + } + return '' +} +function point$1(point) { + return index$1(point && point.line) + ':' + index$1(point && point.column) +} +function position$1(pos) { + return point$1(pos && pos.start) + '-' + point$1(pos && pos.end) +} +function index$1(value) { + return value && typeof value === 'number' ? value : 1 +} + +const convert$s = + ( + function (test) { + if (test === undefined || test === null) { + return ok$s + } + if (typeof test === 'string') { + return typeFactory$s(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$s(test) : propsFactory$s(test) + } + if (typeof test === 'function') { + return castFactory$s(test) + } + throw new Error('Expected function, string, or object as test') } - visit$1(tree, 'list', (node) => { - let index = -1; - if (!node.ordered) return - while (++index < node.children.length) { - const child = node.children[index]; - if (!generated(child)) { - const marker = ( - value - .slice( - pointStart(child).offset, - pointStart(child.children[0]).offset - ) - .replace(/\s|\d/g, '') - .replace(/\[[x ]?]\s*$/i, '') - ); - if (option === 'consistent') { - option = marker; - } else if (marker !== option) { - file.message('Marker style should be `' + option + '`', child); + ); +function anyFactory$s(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$s(tests[index]); + } + return castFactory$s(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$s(check) { + return castFactory$s(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$s(check) { + return castFactory$s(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$s(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$s() { + return true +} + +function color$t(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$s = true; +const EXIT$s = false; +const SKIP$s = 'skip'; +const visitParents$s = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$s(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$t(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$s(visitor(node, parents)); + if (result[0] === EXIT$s) { + return result + } + } + if (node.children && result[0] !== SKIP$s) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$s) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } } + return result } } - }); + } + ); +function toResult$s(value) { + if (Array.isArray(value)) { + return value } -); -var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; + if (typeof value === 'number') { + return [CONTINUE$s, value] + } + return [value] +} + +const visit$s = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$s(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? * - * You can use this package to check that hard breaks use two spaces and - * not more. + * You can use this package to check that identifiers are defined once. * * ## API * @@ -13380,60 +14660,251 @@ var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; * * ## Recommendation * - * Less than two spaces do not create a hard breaks and more than two spaces - * have no effect. - * Due to this, it’s recommended to turn this rule on. + * It’s a mistake when the same identifier is defined multiple times. * - * @module hard-break-spaces + * @module no-duplicate-definitions * @summary - * remark-lint rule to warn when more spaces are used than needed - * for hard breaks. + * remark-lint rule to warn when identifiers are defined multiple times. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * Lorem ipsum·· - * dolor sit amet + * [foo]: bar + * [baz]: qux * * @example * {"name": "not-ok.md", "label": "input"} * - * Lorem ipsum··· - * dolor sit amet. + * [foo]: bar + * [foo]: qux * * @example * {"name": "not-ok.md", "label": "output"} * - * 1:12-2:1: Use two spaces for hard line breaks + * 2:1-2:11: Do not use definitions with the same identifier (1:1) */ -const remarkLintHardBreakSpaces = lintRule( +const remarkLintNoDuplicateDefinitions = lintRule( { - origin: 'remark-lint:hard-break-spaces', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces#readme' + origin: 'remark-lint:no-duplicate-definitions', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-definitions#readme' }, (tree, file) => { - const value = String(file); - visit$1(tree, 'break', (node) => { - if (!generated(node)) { - const slice = value - .slice(pointStart(node).offset, pointEnd(node).offset) - .split('\n', 1)[0] - .replace(/\r$/, ''); - if (slice.length > 2) { - file.message('Use two spaces for hard line breaks', node); + const map = Object.create(null); + visit$s(tree, (node) => { + if ( + (node.type === 'definition' || node.type === 'footnoteDefinition') && + !generated(node) + ) { + const identifier = node.identifier; + const duplicate = map[identifier]; + if (duplicate) { + file.message( + 'Do not use definitions with the same identifier (' + + duplicate + + ')', + node + ); } + map[identifier] = stringifyPosition$1(pointStart(node)); } }); } ); -var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; +var remarkLintNoDuplicateDefinitions$1 = remarkLintNoDuplicateDefinitions; + +const convert$r = + ( + function (test) { + if (test === undefined || test === null) { + return ok$r + } + if (typeof test === 'string') { + return typeFactory$r(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$r(test) : propsFactory$r(test) + } + if (typeof test === 'function') { + return castFactory$r(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$r(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$r(tests[index]); + } + return castFactory$r(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$r(check) { + return castFactory$r(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$r(check) { + return castFactory$r(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$r(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$r() { + return true +} + +function color$s(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$r = true; +const EXIT$r = false; +const SKIP$r = 'skip'; +const visitParents$r = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$r(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$s(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$r(visitor(node, parents)); + if (result[0] === EXIT$r) { + return result + } + } + if (node.children && result[0] !== SKIP$r) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$r) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$r(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$r, value] + } + return [value] +} + +const visit$r = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$r(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +function headingStyle(node, relative) { + const last = node.children[node.children.length - 1]; + const depth = node.depth; + const pos = node.position && node.position.end; + const final = last && last.position && last.position.end; + if (!pos) { + return null + } + if (!last) { + if (pos.column - 1 <= depth * 2) { + return consolidate(depth, relative) + } + return 'atx-closed' + } + if (final && final.line + 1 === pos.line) { + return 'setext' + } + if (final && final.column + depth < pos.column) { + return 'atx-closed' + } + return consolidate(depth, relative) +} +function consolidate(depth, relative) { + return depth < 3 + ? 'atx' + : relative === 'atx' || relative === 'setext' + ? relative + : null +} /** * ## When should I use this? * - * You can use this package to check that identifiers are defined once. + * You can use this package to check that there is on space between `#` + * characters and the content in headings. * * ## API * @@ -13441,257 +14912,727 @@ var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; * * ## Recommendation * - * It’s a mistake when the same identifier is defined multiple times. + * One space is required and more than one space has no effect. + * Due to this, it’s recommended to turn this rule on. * - * @module no-duplicate-definitions + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats headings with exactly one space. + * + * @module no-heading-content-indent * @summary - * remark-lint rule to warn when identifiers are defined multiple times. + * remark-lint rule to warn when there are too many spaces between + * hashes and content in headings. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * [foo]: bar - * [baz]: qux + * #·Foo + * + * ## Bar·## + * + * ##·Baz + * + * Setext headings are not affected. + * + * Baz + * === * * @example * {"name": "not-ok.md", "label": "input"} * - * [foo]: bar - * [foo]: qux + * #··Foo + * + * ## Bar··## + * + * ##··Baz * * @example * {"name": "not-ok.md", "label": "output"} * - * 2:1-2:11: Do not use definitions with the same identifier (1:1) + * 1:4: Remove 1 space before this heading’s content + * 3:7: Remove 1 space after this heading’s content + * 5:7: Remove 1 space before this heading’s content + * + * @example + * {"name": "empty-heading.md"} + * + * #·· */ -const remarkLintNoDuplicateDefinitions = lintRule( +const remarkLintNoHeadingContentIndent = lintRule( { - origin: 'remark-lint:no-duplicate-definitions', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-definitions#readme' + origin: 'remark-lint:no-heading-content-indent', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-content-indent#readme' }, (tree, file) => { - const map = Object.create(null); - visit$1(tree, (node) => { - if ( - (node.type === 'definition' || node.type === 'footnoteDefinition') && - !generated(node) - ) { - const identifier = node.identifier; - const duplicate = map[identifier]; - if (duplicate) { + visit$r(tree, 'heading', (node) => { + if (generated(node)) { + return + } + const type = headingStyle(node, 'atx'); + if (type === 'atx' || type === 'atx-closed') { + const head = pointStart(node.children[0]).column; + if (!head) { + return + } + const diff = head - pointStart(node).column - 1 - node.depth; + if (diff) { file.message( - 'Do not use definitions with the same identifier (' + - duplicate + - ')', - node + 'Remove ' + + Math.abs(diff) + + ' ' + + plural('space', Math.abs(diff)) + + ' before this heading’s content', + pointStart(node.children[0]) + ); + } + } + if (type === 'atx-closed') { + const final = pointEnd(node.children[node.children.length - 1]); + const diff = pointEnd(node).column - final.column - 1 - node.depth; + if (diff) { + file.message( + 'Remove ' + + diff + + ' ' + + plural('space', diff) + + ' after this heading’s content', + final ); } - map[identifier] = stringifyPosition$2(pointStart(node)); } }); } ); -var remarkLintNoDuplicateDefinitions$1 = remarkLintNoDuplicateDefinitions; +var remarkLintNoHeadingContentIndent$1 = remarkLintNoHeadingContentIndent; -function headingStyle(node, relative) { - const last = node.children[node.children.length - 1]; - const depth = node.depth; - const pos = node.position && node.position.end; - const final = last && last.position && last.position.end; - if (!pos) { - return null +const convert$q = + ( + function (test) { + if (test === undefined || test === null) { + return ok$q + } + if (typeof test === 'string') { + return typeFactory$q(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$q(test) : propsFactory$q(test) + } + if (typeof test === 'function') { + return castFactory$q(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$q(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$q(tests[index]); } - if (!last) { - if (pos.column - 1 <= depth * 2) { - return consolidate(depth, relative) + return castFactory$q(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$q(check) { + return castFactory$q(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$q(check) { + return castFactory$q(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$q(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$q() { + return true +} + +function color$r(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$q = true; +const EXIT$q = false; +const SKIP$q = 'skip'; +const visitParents$q = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$q(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$r(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$q(visitor(node, parents)); + if (result[0] === EXIT$q) { + return result + } + } + if (node.children && result[0] !== SKIP$q) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$q) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$q(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$q, value] + } + return [value] +} + +const visit$q = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$q(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +const emptyOptions = {}; +function toString(value, options) { + const settings = options || emptyOptions; + const includeImageAlt = + typeof settings.includeImageAlt === 'boolean' + ? settings.includeImageAlt + : true; + const includeHtml = + typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true; + return one(value, includeImageAlt, includeHtml) +} +function one(value, includeImageAlt, includeHtml) { + if (node(value)) { + if ('value' in value) { + return value.type === 'html' && !includeHtml ? '' : value.value + } + if (includeImageAlt && 'alt' in value && value.alt) { + return value.alt + } + if ('children' in value) { + return all(value.children, includeImageAlt, includeHtml) } - return 'atx-closed' } - if (final && final.line + 1 === pos.line) { - return 'setext' + if (Array.isArray(value)) { + return all(value, includeImageAlt, includeHtml) } - if (final && final.column + depth < pos.column) { - return 'atx-closed' + return '' +} +function all(values, includeImageAlt, includeHtml) { + const result = []; + let index = -1; + while (++index < values.length) { + result[index] = one(values[index], includeImageAlt, includeHtml); } - return consolidate(depth, relative) + return result.join('') } -function consolidate(depth, relative) { - return depth < 3 - ? 'atx' - : relative === 'atx' || relative === 'setext' - ? relative - : null +function node(value) { + return Boolean(value && typeof value === 'object') } /** * ## When should I use this? * - * You can use this package to check that there is on space between `#` - * characters and the content in headings. + * You can use this package to check that inline constructs (links) are + * not padded. + * Historically, it was possible to pad emphasis, strong, and strikethrough + * too, but this was removed in CommonMark, making this rule much less useful. * * ## API * * There are no options. * - * ## Recommendation - * - * One space is required and more than one space has no effect. - * Due to this, it’s recommended to turn this rule on. - * - * ## Fix - * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) - * formats headings with exactly one space. - * - * @module no-heading-content-indent + * @module no-inline-padding * @summary - * remark-lint rule to warn when there are too many spaces between - * hashes and content in headings. + * remark-lint rule to warn when inline constructs are padded. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * #·Foo - * - * ## Bar·## - * - * ##·Baz - * - * Setext headings are not affected. - * - * Baz - * === + * Alpha [bravo](http://echo.fox/trot) * * @example * {"name": "not-ok.md", "label": "input"} * - * #··Foo - * - * ## Bar··## - * - * ##··Baz + * Alpha [ bravo ](http://echo.fox/trot) * * @example * {"name": "not-ok.md", "label": "output"} * - * 1:4: Remove 1 space before this heading’s content - * 3:7: Remove 1 space after this heading’s content - * 5:7: Remove 1 space before this heading’s content - * - * @example - * {"name": "empty-heading.md"} - * - * #·· + * 1:7-1:38: Don’t pad `link` with inner spaces */ -const remarkLintNoHeadingContentIndent = lintRule( +const remarkLintNoInlinePadding = lintRule( { - origin: 'remark-lint:no-heading-content-indent', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-content-indent#readme' + origin: 'remark-lint:no-inline-padding', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding#readme' }, (tree, file) => { - visit$1(tree, 'heading', (node) => { - if (generated(node)) { - return - } - const type = headingStyle(node, 'atx'); - if (type === 'atx' || type === 'atx-closed') { - const head = pointStart(node.children[0]).column; - if (!head) { - return - } - const diff = head - pointStart(node).column - 1 - node.depth; - if (diff) { - file.message( - 'Remove ' + - Math.abs(diff) + - ' ' + - plural('space', Math.abs(diff)) + - ' before this heading’s content', - pointStart(node.children[0]) - ); - } - } - if (type === 'atx-closed') { - const final = pointEnd(node.children[node.children.length - 1]); - const diff = pointEnd(node).column - final.column - 1 - node.depth; - if (diff) { - file.message( - 'Remove ' + - diff + - ' ' + - plural('space', diff) + - ' after this heading’s content', - final - ); + visit$q(tree, (node) => { + if ( + (node.type === 'link' || node.type === 'linkReference') && + !generated(node) + ) { + const value = toString(node); + if (value.charAt(0) === ' ' || value.charAt(value.length - 1) === ' ') { + file.message('Don’t pad `' + node.type + '` with inner spaces', node); } } }); } ); -var remarkLintNoHeadingContentIndent$1 = remarkLintNoHeadingContentIndent; +var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; + +const convert$p = + ( + function (test) { + if (test === undefined || test === null) { + return ok$p + } + if (typeof test === 'string') { + return typeFactory$p(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$p(test) : propsFactory$p(test) + } + if (typeof test === 'function') { + return castFactory$p(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$p(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$p(tests[index]); + } + return castFactory$p(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$p(check) { + return castFactory$p(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$p(check) { + return castFactory$p(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$p(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$p() { + return true +} + +function color$q(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$p = true; +const EXIT$p = false; +const SKIP$p = 'skip'; +const visitParents$p = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$p(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$q(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$p(visitor(node, parents)); + if (result[0] === EXIT$p) { + return result + } + } + if (node.children && result[0] !== SKIP$p) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$p) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$p(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$p, value] + } + return [value] +} + +const visit$p = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$p(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? * - * You can use this package to check that inline constructs (links) are - * not padded. - * Historically, it was possible to pad emphasis, strong, and strikethrough - * too, but this was removed in CommonMark, making this rule much less useful. + * You can use this package to check that collapsed or full reference images + * are used. * * ## API * * There are no options. * - * @module no-inline-padding + * ## Recommendation + * + * Shortcut references use an implicit style that looks a lot like something + * that could occur as plain text instead of syntax. + * In some cases, plain text is intended instead of an image. + * Due to this, it’s recommended to use collapsed (or full) references + * instead. + * + * @module no-shortcut-reference-image * @summary - * remark-lint rule to warn when inline constructs are padded. + * remark-lint rule to warn when shortcut reference images are used. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * Alpha [bravo](http://echo.fox/trot) + * ![foo][] + * + * [foo]: http://foo.bar/baz.png * * @example * {"name": "not-ok.md", "label": "input"} * - * Alpha [ bravo ](http://echo.fox/trot) + * ![foo] + * + * [foo]: http://foo.bar/baz.png * * @example * {"name": "not-ok.md", "label": "output"} * - * 1:7-1:38: Don’t pad `link` with inner spaces + * 1:1-1:7: Use the trailing [] on reference images */ -const remarkLintNoInlinePadding = lintRule( +const remarkLintNoShortcutReferenceImage = lintRule( { - origin: 'remark-lint:no-inline-padding', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding#readme' + origin: 'remark-lint:no-shortcut-reference-image', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image#readme' }, (tree, file) => { - visit$1(tree, (node) => { - if ( - (node.type === 'link' || node.type === 'linkReference') && - !generated(node) - ) { - const value = toString(node); - if (value.charAt(0) === ' ' || value.charAt(value.length - 1) === ' ') { - file.message('Don’t pad `' + node.type + '` with inner spaces', node); - } + visit$p(tree, 'imageReference', (node) => { + if (!generated(node) && node.referenceType === 'shortcut') { + file.message('Use the trailing [] on reference images', node); } }); } ); -var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; +var remarkLintNoShortcutReferenceImage$1 = remarkLintNoShortcutReferenceImage; + +const convert$o = + ( + function (test) { + if (test === undefined || test === null) { + return ok$o + } + if (typeof test === 'string') { + return typeFactory$o(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$o(test) : propsFactory$o(test) + } + if (typeof test === 'function') { + return castFactory$o(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$o(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$o(tests[index]); + } + return castFactory$o(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$o(check) { + return castFactory$o(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$o(check) { + return castFactory$o(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$o(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$o() { + return true +} + +function color$p(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$o = true; +const EXIT$o = false; +const SKIP$o = 'skip'; +const visitParents$o = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$o(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$p(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$o(visitor(node, parents)); + if (result[0] === EXIT$o) { + return result + } + } + if (node.children && result[0] !== SKIP$o) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$o) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$o(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$o, value] + } + return [value] +} + +const visit$o = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$o(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? * - * You can use this package to check that collapsed or full reference images + * You can use this package to check that collapsed or full reference links * are used. * * ## API @@ -13702,107 +15643,215 @@ var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; * * Shortcut references use an implicit style that looks a lot like something * that could occur as plain text instead of syntax. - * In some cases, plain text is intended instead of an image. + * In some cases, plain text is intended instead of a link. * Due to this, it’s recommended to use collapsed (or full) references * instead. * - * @module no-shortcut-reference-image + * @module no-shortcut-reference-link * @summary - * remark-lint rule to warn when shortcut reference images are used. + * remark-lint rule to warn when shortcut reference links are used. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT * @example * {"name": "ok.md"} * - * ![foo][] + * [foo][] * - * [foo]: http://foo.bar/baz.png + * [foo]: http://foo.bar/baz * * @example * {"name": "not-ok.md", "label": "input"} * - * ![foo] + * [foo] * - * [foo]: http://foo.bar/baz.png + * [foo]: http://foo.bar/baz * * @example * {"name": "not-ok.md", "label": "output"} * - * 1:1-1:7: Use the trailing [] on reference images + * 1:1-1:6: Use the trailing `[]` on reference links */ -const remarkLintNoShortcutReferenceImage = lintRule( +const remarkLintNoShortcutReferenceLink = lintRule( { - origin: 'remark-lint:no-shortcut-reference-image', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image#readme' + origin: 'remark-lint:no-shortcut-reference-link', + url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link#readme' }, (tree, file) => { - visit$1(tree, 'imageReference', (node) => { + visit$o(tree, 'linkReference', (node) => { if (!generated(node) && node.referenceType === 'shortcut') { - file.message('Use the trailing [] on reference images', node); + file.message('Use the trailing `[]` on reference links', node); + } + }); + } +); +var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; + +function normalizeIdentifier(value) { + return ( + value + .replace(/[\t\n\r ]+/g, ' ') + .replace(/^ | $/g, '') + .toLowerCase() + .toUpperCase() + ) +} + +const convert$n = + ( + function (test) { + if (test === undefined || test === null) { + return ok$n + } + if (typeof test === 'string') { + return typeFactory$n(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$n(test) : propsFactory$n(test) + } + if (typeof test === 'function') { + return castFactory$n(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$n(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$n(tests[index]); + } + return castFactory$n(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$n(check) { + return castFactory$n(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$n(check) { + return castFactory$n(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$n(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$n() { + return true +} + +function color$o(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$n = true; +const EXIT$n = false; +const SKIP$n = 'skip'; +const visitParents$n = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; } - }); + const is = convert$n(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$o(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$n(visitor(node, parents)); + if (result[0] === EXIT$n) { + return result + } + } + if (node.children && result[0] !== SKIP$n) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$n) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$n(value) { + if (Array.isArray(value)) { + return value } -); -var remarkLintNoShortcutReferenceImage$1 = remarkLintNoShortcutReferenceImage; + if (typeof value === 'number') { + return [CONTINUE$n, value] + } + return [value] +} -/** - * ## When should I use this? - * - * You can use this package to check that collapsed or full reference links - * are used. - * - * ## API - * - * There are no options. - * - * ## Recommendation - * - * Shortcut references use an implicit style that looks a lot like something - * that could occur as plain text instead of syntax. - * In some cases, plain text is intended instead of a link. - * Due to this, it’s recommended to use collapsed (or full) references - * instead. - * - * @module no-shortcut-reference-link - * @summary - * remark-lint rule to warn when shortcut reference links are used. - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @example - * {"name": "ok.md"} - * - * [foo][] - * - * [foo]: http://foo.bar/baz - * - * @example - * {"name": "not-ok.md", "label": "input"} - * - * [foo] - * - * [foo]: http://foo.bar/baz - * - * @example - * {"name": "not-ok.md", "label": "output"} - * - * 1:1-1:6: Use the trailing `[]` on reference links - */ -const remarkLintNoShortcutReferenceLink = lintRule( - { - origin: 'remark-lint:no-shortcut-reference-link', - url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link#readme' - }, - (tree, file) => { - visit$1(tree, 'linkReference', (node) => { - if (!generated(node) && node.referenceType === 'shortcut') { - file.message('Use the trailing `[]` on reference links', node); +const visit$n = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; } - }); - } -); -var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; + visitParents$n(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -13949,7 +15998,7 @@ const remarkLintNoUndefinedReferences = lintRule( regexes.push(new RegExp(value.source, 'i')); } } - visit$1(tree, (node) => { + visit$n(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && !generated(node) @@ -13957,7 +16006,7 @@ const remarkLintNoUndefinedReferences = lintRule( map[normalizeIdentifier(node.identifier)] = true; } }); - visit$1(tree, (node) => { + visit$n(tree, (node) => { if ( (node.type === 'imageReference' || node.type === 'linkReference' || @@ -13974,17 +16023,17 @@ const remarkLintNoUndefinedReferences = lintRule( }); function findInPhrasing(node) { let ranges = []; - visit$1(node, (child) => { + visit$n(node, (child) => { if (child === node) return if (child.type === 'link' || child.type === 'linkReference') { ranges = []; - return SKIP$1 + return SKIP$n } if (child.type !== 'text') return const start = pointStart(child).offset; const end = pointEnd(child).offset; if (typeof start !== 'number' || typeof end !== 'number') { - return EXIT$1 + return EXIT$n } const source = contents.slice(start, end); const lines = [[start, '']]; @@ -14051,7 +16100,7 @@ const remarkLintNoUndefinedReferences = lintRule( while (++index < ranges.length) { handleRange(ranges[index]); } - return SKIP$1 + return SKIP$n function handleRange(range) { if (range.length === 1) return if (range.length === 3) range.length = 2; @@ -14080,9 +16129,165 @@ const remarkLintNoUndefinedReferences = lintRule( regexes.some((regex) => regex.test(normalized)) ) } - } -); -var remarkLintNoUndefinedReferences$1 = remarkLintNoUndefinedReferences; + } +); +var remarkLintNoUndefinedReferences$1 = remarkLintNoUndefinedReferences; + +const convert$m = + ( + function (test) { + if (test === undefined || test === null) { + return ok$m + } + if (typeof test === 'string') { + return typeFactory$m(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$m(test) : propsFactory$m(test) + } + if (typeof test === 'function') { + return castFactory$m(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$m(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$m(tests[index]); + } + return castFactory$m(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$m(check) { + return castFactory$m(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$m(check) { + return castFactory$m(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$m(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$m() { + return true +} + +function color$n(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$m = true; +const EXIT$m = false; +const SKIP$m = 'skip'; +const visitParents$m = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$m(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$n(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$m(visitor(node, parents)); + if (result[0] === EXIT$m) { + return result + } + } + if (node.children && result[0] !== SKIP$m) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$m) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$m(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$m, value] + } + return [value] +} + +const visit$m = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$m(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -14128,7 +16333,7 @@ const remarkLintNoUnusedDefinitions = lintRule( }, (tree, file) => { const map = Object.create(null); - visit$1(tree, (node) => { + visit$m(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && !generated(node) @@ -14136,7 +16341,7 @@ const remarkLintNoUnusedDefinitions = lintRule( map[node.identifier.toUpperCase()] = {node, used: false}; } }); - visit$1(tree, (node) => { + visit$m(tree, (node) => { if ( node.type === 'imageReference' || node.type === 'linkReference' || @@ -14182,6 +16387,162 @@ const remarkPresetLintRecommended = { }; var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; +const convert$l = + ( + function (test) { + if (test === undefined || test === null) { + return ok$l + } + if (typeof test === 'string') { + return typeFactory$l(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$l(test) : propsFactory$l(test) + } + if (typeof test === 'function') { + return castFactory$l(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$l(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$l(tests[index]); + } + return castFactory$l(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$l(check) { + return castFactory$l(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$l(check) { + return castFactory$l(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$l(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$l() { + return true +} + +function color$m(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$l = true; +const EXIT$l = false; +const SKIP$l = 'skip'; +const visitParents$l = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$l(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$m(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$l(visitor(node, parents)); + if (result[0] === EXIT$l) { + return result + } + } + if (node.children && result[0] !== SKIP$l) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$l) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$l(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$l, value] + } + return [value] +} + +const visit$l = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$l(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -14267,7 +16628,7 @@ const remarkLintBlockquoteIndentation = lintRule( url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation#readme' }, (tree, file, option = 'consistent') => { - visit$1(tree, 'blockquote', (node) => { + visit$l(tree, 'blockquote', (node) => { if (generated(node) || node.children.length === 0) { return } @@ -14296,6 +16657,162 @@ function check(node) { return pointStart(node.children[0]).column - pointStart(node).column } +const convert$k = + ( + function (test) { + if (test === undefined || test === null) { + return ok$k + } + if (typeof test === 'string') { + return typeFactory$k(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$k(test) : propsFactory$k(test) + } + if (typeof test === 'function') { + return castFactory$k(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$k(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$k(tests[index]); + } + return castFactory$k(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$k(check) { + return castFactory$k(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$k(check) { + return castFactory$k(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$k(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$k() { + return true +} + +function color$l(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$k = true; +const EXIT$k = false; +const SKIP$k = 'skip'; +const visitParents$k = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$k(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$l(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$k(visitor(node, parents)); + if (result[0] === EXIT$k) { + return result + } + } + if (node.children && result[0] !== SKIP$k) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$k) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$k(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$k, value] + } + return [value] +} + +const visit$k = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$k(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -14411,7 +16928,7 @@ const remarkLintCheckboxCharacterStyle = lintRule( "`: use either `'x'`, or `'X'`" ); } - visit$1(tree, 'listItem', (node) => { + visit$k(tree, 'listItem', (node) => { const head = node.children[0]; const point = pointStart(head); if ( @@ -14448,6 +16965,162 @@ const remarkLintCheckboxCharacterStyle = lintRule( ); var remarkLintCheckboxCharacterStyle$1 = remarkLintCheckboxCharacterStyle; +const convert$j = + ( + function (test) { + if (test === undefined || test === null) { + return ok$j + } + if (typeof test === 'string') { + return typeFactory$j(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$j(test) : propsFactory$j(test) + } + if (typeof test === 'function') { + return castFactory$j(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$j(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$j(tests[index]); + } + return castFactory$j(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$j(check) { + return castFactory$j(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$j(check) { + return castFactory$j(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$j(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$j() { + return true +} + +function color$k(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$j = true; +const EXIT$j = false; +const SKIP$j = 'skip'; +const visitParents$j = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$j(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$k(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$j(visitor(node, parents)); + if (result[0] === EXIT$j) { + return result + } + } + if (node.children && result[0] !== SKIP$j) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$j) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$j(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$j, value] + } + return [value] +} + +const visit$j = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$j(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -14518,7 +17191,7 @@ const remarkLintCheckboxContentIndent = lintRule( (tree, file) => { const value = String(file); const loc = location(file); - visit$1(tree, 'listItem', (node) => { + visit$j(tree, 'listItem', (node) => { const head = node.children[0]; const point = pointStart(head); if ( @@ -14541,10 +17214,166 @@ const remarkLintCheckboxContentIndent = lintRule( end: loc.toPoint(final) }); } - }); - } -); -var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; + }); + } +); +var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; + +const convert$i = + ( + function (test) { + if (test === undefined || test === null) { + return ok$i + } + if (typeof test === 'string') { + return typeFactory$i(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$i(test) : propsFactory$i(test) + } + if (typeof test === 'function') { + return castFactory$i(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$i(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$i(tests[index]); + } + return castFactory$i(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$i(check) { + return castFactory$i(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$i(check) { + return castFactory$i(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$i(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$i() { + return true +} + +function color$j(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$i = true; +const EXIT$i = false; +const SKIP$i = 'skip'; +const visitParents$i = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$i(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$j(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$i(visitor(node, parents)); + if (result[0] === EXIT$i) { + return result + } + } + if (node.children && result[0] !== SKIP$i) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$i) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$i(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$i, value] + } + return [value] +} + +const visit$i = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$i(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -14691,7 +17520,7 @@ const remarkLintCodeBlockStyle = lintRule( "`: use either `'consistent'`, `'fenced'`, or `'indented'`" ); } - visit$1(tree, 'code', (node) => { + visit$i(tree, 'code', (node) => { if (generated(node)) { return } @@ -14711,6 +17540,162 @@ const remarkLintCodeBlockStyle = lintRule( ); var remarkLintCodeBlockStyle$1 = remarkLintCodeBlockStyle; +const convert$h = + ( + function (test) { + if (test === undefined || test === null) { + return ok$h + } + if (typeof test === 'string') { + return typeFactory$h(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$h(test) : propsFactory$h(test) + } + if (typeof test === 'function') { + return castFactory$h(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$h(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$h(tests[index]); + } + return castFactory$h(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$h(check) { + return castFactory$h(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$h(check) { + return castFactory$h(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$h(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$h() { + return true +} + +function color$i(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$h = true; +const EXIT$h = false; +const SKIP$h = 'skip'; +const visitParents$h = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$h(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$i(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$h(visitor(node, parents)); + if (result[0] === EXIT$h) { + return result + } + } + if (node.children && result[0] !== SKIP$h) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$h) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$h(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$h, value] + } + return [value] +} + +const visit$h = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$h(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -14759,7 +17744,7 @@ const remarkLintDefinitionSpacing = lintRule( }, (tree, file) => { const value = String(file); - visit$1(tree, (node) => { + visit$h(tree, (node) => { if (node.type === 'definition' || node.type === 'footnoteDefinition') { const start = pointStart(node).offset; const end = pointEnd(node).offset; @@ -14773,10 +17758,166 @@ const remarkLintDefinitionSpacing = lintRule( } } } - }); - } -); -var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; + }); + } +); +var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; + +const convert$g = + ( + function (test) { + if (test === undefined || test === null) { + return ok$g + } + if (typeof test === 'string') { + return typeFactory$g(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$g(test) : propsFactory$g(test) + } + if (typeof test === 'function') { + return castFactory$g(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$g(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$g(tests[index]); + } + return castFactory$g(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$g(check) { + return castFactory$g(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$g(check) { + return castFactory$g(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$g(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$g() { + return true +} + +function color$h(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$g = true; +const EXIT$g = false; +const SKIP$g = 'skip'; +const visitParents$g = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$g(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$h(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$g(visitor(node, parents)); + if (result[0] === EXIT$g) { + return result + } + } + if (node.children && result[0] !== SKIP$g) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$g) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$g(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$g, value] + } + return [value] +} + +const visit$g = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$g(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -14894,7 +18035,7 @@ const remarkLintFencedCodeFlag = lintRule( } } } - visit$1(tree, 'code', (node) => { + visit$g(tree, 'code', (node) => { if (!generated(node)) { if (node.lang) { if (allowed.length > 0 && !allowed.includes(node.lang)) { @@ -14915,6 +18056,162 @@ const remarkLintFencedCodeFlag = lintRule( ); var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; +const convert$f = + ( + function (test) { + if (test === undefined || test === null) { + return ok$f + } + if (typeof test === 'string') { + return typeFactory$f(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$f(test) : propsFactory$f(test) + } + if (typeof test === 'function') { + return castFactory$f(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$f(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$f(tests[index]); + } + return castFactory$f(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$f(check) { + return castFactory$f(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$f(check) { + return castFactory$f(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$f(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$f() { + return true +} + +function color$g(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$f = true; +const EXIT$f = false; +const SKIP$f = 'skip'; +const visitParents$f = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$f(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$g(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$f(visitor(node, parents)); + if (result[0] === EXIT$f) { + return result + } + } + if (node.children && result[0] !== SKIP$f) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$f) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$f(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$f, value] + } + return [value] +} + +const visit$f = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$f(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -15030,7 +18327,7 @@ const remarkLintFencedCodeMarker = lintRule( "`: use either `'consistent'`, `` '`' ``, or `'~'`" ); } - visit$1(tree, 'code', (node) => { + visit$f(tree, 'code', (node) => { const start = pointStart(node).offset; if (typeof start === 'number') { const marker = contents @@ -15107,9 +18404,165 @@ const remarkLintFileExtension = lintRule( if (ext && ext.slice(1) !== option) { file.message('Incorrect extension: use `' + option + '`'); } - } -); -var remarkLintFileExtension$1 = remarkLintFileExtension; + } +); +var remarkLintFileExtension$1 = remarkLintFileExtension; + +const convert$e = + ( + function (test) { + if (test === undefined || test === null) { + return ok$e + } + if (typeof test === 'string') { + return typeFactory$e(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$e(test) : propsFactory$e(test) + } + if (typeof test === 'function') { + return castFactory$e(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$e(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$e(tests[index]); + } + return castFactory$e(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$e(check) { + return castFactory$e(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$e(check) { + return castFactory$e(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$e(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$e() { + return true +} + +function color$f(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$e = true; +const EXIT$e = false; +const SKIP$e = 'skip'; +const visitParents$e = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$e(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$f(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$e(visitor(node, parents)); + if (result[0] === EXIT$e) { + return result + } + } + if (node.children && result[0] !== SKIP$e) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$e) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$e(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$e, value] + } + return [value] +} + +const visit$e = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$e(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -15173,7 +18626,7 @@ const remarkLintFinalDefinition = lintRule( }, (tree, file) => { let last = 0; - visit$1( + visit$e( tree, (node) => { if ( @@ -15203,6 +18656,162 @@ const remarkLintFinalDefinition = lintRule( ); var remarkLintFinalDefinition$1 = remarkLintFinalDefinition; +const convert$d = + ( + function (test) { + if (test === undefined || test === null) { + return ok$d + } + if (typeof test === 'string') { + return typeFactory$d(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$d(test) : propsFactory$d(test) + } + if (typeof test === 'function') { + return castFactory$d(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$d(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$d(tests[index]); + } + return castFactory$d(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$d(check) { + return castFactory$d(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$d(check) { + return castFactory$d(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$d(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$d() { + return true +} + +function color$e(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$d = true; +const EXIT$d = false; +const SKIP$d = 'skip'; +const visitParents$d = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$d(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$e(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$d(visitor(node, parents)); + if (result[0] === EXIT$d) { + return result + } + } + if (node.children && result[0] !== SKIP$d) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$d) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$d(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$d, value] + } + return [value] +} + +const visit$d = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$d(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -15317,7 +18926,7 @@ const remarkLintFirstHeadingLevel = lintRule( url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-first-heading-level#readme' }, (tree, file, option = 1) => { - visit$1(tree, (node) => { + visit$d(tree, (node) => { if (!generated(node)) { let rank; if (node.type === 'heading') { @@ -15329,7 +18938,7 @@ const remarkLintFirstHeadingLevel = lintRule( if (rank !== option) { file.message('First heading level should be `' + option + '`', node); } - return EXIT$1 + return EXIT$d } } }); @@ -15341,6 +18950,162 @@ function infer(node) { return results ? Number(results[1]) : undefined } +const convert$c = + ( + function (test) { + if (test === undefined || test === null) { + return ok$c + } + if (typeof test === 'string') { + return typeFactory$c(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$c(test) : propsFactory$c(test) + } + if (typeof test === 'function') { + return castFactory$c(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$c(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$c(tests[index]); + } + return castFactory$c(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$c(check) { + return castFactory$c(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$c(check) { + return castFactory$c(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$c(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$c() { + return true +} + +function color$d(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$c = true; +const EXIT$c = false; +const SKIP$c = 'skip'; +const visitParents$c = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$c(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$d(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$c(visitor(node, parents)); + if (result[0] === EXIT$c) { + return result + } + } + if (node.children && result[0] !== SKIP$c) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$c) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$c(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$c, value] + } + return [value] +} + +const visit$c = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$c(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -15472,7 +19237,7 @@ const remarkLintHeadingStyle = lintRule( "`: use either `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'`" ); } - visit$1(tree, 'heading', (node) => { + visit$c(tree, 'heading', (node) => { if (!generated(node)) { if (option === 'consistent') { option = headingStyle(node) || 'consistent'; @@ -15485,6 +19250,162 @@ const remarkLintHeadingStyle = lintRule( ); var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; +const convert$b = + ( + function (test) { + if (test === undefined || test === null) { + return ok$b + } + if (typeof test === 'string') { + return typeFactory$b(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$b(test) : propsFactory$b(test) + } + if (typeof test === 'function') { + return castFactory$b(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$b(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$b(tests[index]); + } + return castFactory$b(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$b(check) { + return castFactory$b(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$b(check) { + return castFactory$b(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$b(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$b() { + return true +} + +function color$c(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$b = true; +const EXIT$b = false; +const SKIP$b = 'skip'; +const visitParents$b = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$b(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$c(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$b(visitor(node, parents)); + if (result[0] === EXIT$b) { + return result + } + } + if (node.children && result[0] !== SKIP$b) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$b) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$b(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$b, value] + } + return [value] +} + +const visit$b = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$b(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -15601,7 +19522,7 @@ const remarkLintMaximumLineLength = lintRule( (tree, file, option = 80) => { const value = String(file); const lines = value.split(/\r?\n/); - visit$1(tree, (node) => { + visit$b(tree, (node) => { if ( (node.type === 'heading' || node.type === 'table' || @@ -15621,7 +19542,7 @@ const remarkLintMaximumLineLength = lintRule( allowList(pointStart(node).line - 1, pointEnd(node).line); } }); - visit$1(tree, (node, pos, parent) => { + visit$b(tree, (node, pos, parent) => { if ( (node.type === 'link' || node.type === 'image' || @@ -15643,27 +19564,183 @@ const remarkLintMaximumLineLength = lintRule( ) { return } - allowList(initial.line - 1, final.line); - } - }); - let index = -1; - while (++index < lines.length) { - const lineLength = lines[index].length; - if (lineLength > option) { - file.message('Line must be at most ' + option + ' characters', { - line: index + 1, - column: lineLength + 1 - }); + allowList(initial.line - 1, final.line); + } + }); + let index = -1; + while (++index < lines.length) { + const lineLength = lines[index].length; + if (lineLength > option) { + file.message('Line must be at most ' + option + ' characters', { + line: index + 1, + column: lineLength + 1 + }); + } + } + function allowList(initial, final) { + while (initial < final) { + lines[initial++] = ''; + } + } + } +); +var remarkLintMaximumLineLength$1 = remarkLintMaximumLineLength; + +const convert$a = + ( + function (test) { + if (test === undefined || test === null) { + return ok$a + } + if (typeof test === 'string') { + return typeFactory$a(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$a(test) : propsFactory$a(test) + } + if (typeof test === 'function') { + return castFactory$a(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$a(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$a(tests[index]); + } + return castFactory$a(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$a(check) { + return castFactory$a(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$a(check) { + return castFactory$a(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$a(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$a() { + return true +} + +function color$b(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$a = true; +const EXIT$a = false; +const SKIP$a = 'skip'; +const visitParents$a = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$a(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$b(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$a(visitor(node, parents)); + if (result[0] === EXIT$a) { + return result + } + } + if (node.children && result[0] !== SKIP$a) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$a) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } } } - function allowList(initial, final) { - while (initial < final) { - lines[initial++] = ''; + ); +function toResult$a(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$a, value] + } + return [value] +} + +const visit$a = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$a(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) } } - } -); -var remarkLintMaximumLineLength$1 = remarkLintMaximumLineLength; + ); /** * ## When should I use this? @@ -15724,7 +19801,7 @@ const remarkLintNoConsecutiveBlankLines = lintRule( url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-consecutive-blank-lines#readme' }, (tree, file) => { - visit$1(tree, (node) => { + visit$a(tree, (node) => { if (!generated(node) && 'children' in node) { const head = node.children[0]; if (head && !generated(head)) { @@ -15902,6 +19979,162 @@ const remarkLintNofileNameOuterDashes = lintRule( ); var remarkLintNofileNameOuterDashes$1 = remarkLintNofileNameOuterDashes; +const convert$9 = + ( + function (test) { + if (test === undefined || test === null) { + return ok$9 + } + if (typeof test === 'string') { + return typeFactory$9(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$9(test) : propsFactory$9(test) + } + if (typeof test === 'function') { + return castFactory$9(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$9(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$9(tests[index]); + } + return castFactory$9(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$9(check) { + return castFactory$9(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$9(check) { + return castFactory$9(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$9(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$9() { + return true +} + +function color$a(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$9 = true; +const EXIT$9 = false; +const SKIP$9 = 'skip'; +const visitParents$9 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$9(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$a(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$9(visitor(node, parents)); + if (result[0] === EXIT$9) { + return result + } + } + if (node.children && result[0] !== SKIP$9) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$9) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$9(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$9, value] + } + return [value] +} + +const visit$9 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$9(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -15979,25 +20212,206 @@ const remarkLintNoHeadingIndent = lintRule( url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-indent#readme' }, (tree, file) => { - visit$1(tree, 'heading', (node, _, parent) => { + visit$9(tree, 'heading', (node, _, parent) => { if (generated(node) || (parent && parent.type !== 'root')) { return } - const diff = pointStart(node).column - 1; - if (diff) { - file.message( - 'Remove ' + - diff + - ' ' + - plural('space', diff) + - ' before this heading', - pointStart(node) - ); + const diff = pointStart(node).column - 1; + if (diff) { + file.message( + 'Remove ' + + diff + + ' ' + + plural('space', diff) + + ' before this heading', + pointStart(node) + ); + } + }); + } +); +var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; + +const convert$8 = + ( + function (test) { + if (test === undefined || test === null) { + return ok$8 + } + if (typeof test === 'string') { + return typeFactory$8(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$8(test) : propsFactory$8(test) + } + if (typeof test === 'function') { + return castFactory$8(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$8(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$8(tests[index]); + } + return castFactory$8(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$8(check) { + return castFactory$8(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$8(check) { + return castFactory$8(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$8(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$8() { + return true +} + +function color$9(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$8 = true; +const EXIT$8 = false; +const SKIP$8 = 'skip'; +const visitParents$8 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$8(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$9(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$8(visitor(node, parents)); + if (result[0] === EXIT$8) { + return result + } + } + if (node.children && result[0] !== SKIP$8) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$8) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$8(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$8, value] + } + return [value] +} + +const visit$8 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; } - }); + visitParents$8(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + +function stringifyPosition(value) { + if (!value || typeof value !== 'object') { + return '' } -); -var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; + if ('position' in value || 'type' in value) { + return position(value.position) + } + if ('start' in value || 'end' in value) { + return position(value) + } + if ('line' in value || 'column' in value) { + return point(value) + } + return '' +} +function point(point) { + return index(point && point.line) + ':' + index(point && point.column) +} +function position(pos) { + return point(pos && pos.start) + '-' + point(pos && pos.end) +} +function index(value) { + return value && typeof value === 'number' ? value : 1 +} /** * ## When should I use this? @@ -16049,7 +20463,7 @@ const remarkLintNoMultipleToplevelHeadings = lintRule( }, (tree, file, option = 1) => { let duplicate; - visit$1(tree, 'heading', (node) => { + visit$8(tree, 'heading', (node) => { if (!generated(node) && node.depth === option) { if (duplicate) { file.message( @@ -16057,7 +20471,7 @@ const remarkLintNoMultipleToplevelHeadings = lintRule( node ); } else { - duplicate = stringifyPosition$2(pointStart(node)); + duplicate = stringifyPosition(pointStart(node)); } } }); @@ -16065,6 +20479,162 @@ const remarkLintNoMultipleToplevelHeadings = lintRule( ); var remarkLintNoMultipleToplevelHeadings$1 = remarkLintNoMultipleToplevelHeadings; +const convert$7 = + ( + function (test) { + if (test === undefined || test === null) { + return ok$7 + } + if (typeof test === 'string') { + return typeFactory$7(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$7(test) : propsFactory$7(test) + } + if (typeof test === 'function') { + return castFactory$7(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$7(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$7(tests[index]); + } + return castFactory$7(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$7(check) { + return castFactory$7(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$7(check) { + return castFactory$7(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$7(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$7() { + return true +} + +function color$8(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$7 = true; +const EXIT$7 = false; +const SKIP$7 = 'skip'; +const visitParents$7 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$7(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$8(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$7(visitor(node, parents)); + if (result[0] === EXIT$7) { + return result + } + } + if (node.children && result[0] !== SKIP$7) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$7) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult$7(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE$7, value] + } + return [value] +} + +const visit$7 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$7(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); + /** * ## When should I use this? * @@ -16154,7 +20724,7 @@ const remarkLintNoShellDollars = lintRule( url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shell-dollars#readme' }, (tree, file) => { - visit$1(tree, 'code', (node) => { + visit$7(tree, 'code', (node) => { if (!generated(node) && node.lang && flags.has(node.lang)) { const lines = node.value .split('\n') @@ -16163,18 +20733,174 @@ const remarkLintNoShellDollars = lintRule( if (lines.length === 0) { return } - while (++index < lines.length) { - const line = lines[index]; - if (line.trim() && !/^\s*\$\s*/.test(line)) { - return + while (++index < lines.length) { + const line = lines[index]; + if (line.trim() && !/^\s*\$\s*/.test(line)) { + return + } + } + file.message('Do not use dollar signs before shell commands', node); + } + }); + } +); +var remarkLintNoShellDollars$1 = remarkLintNoShellDollars; + +const convert$6 = + ( + function (test) { + if (test === undefined || test === null) { + return ok$6 + } + if (typeof test === 'string') { + return typeFactory$6(test) + } + if (typeof test === 'object') { + return Array.isArray(test) ? anyFactory$6(test) : propsFactory$6(test) + } + if (typeof test === 'function') { + return castFactory$6(test) + } + throw new Error('Expected function, string, or object as test') + } + ); +function anyFactory$6(tests) { + const checks = []; + let index = -1; + while (++index < tests.length) { + checks[index] = convert$6(tests[index]); + } + return castFactory$6(any) + function any(...parameters) { + let index = -1; + while (++index < checks.length) { + if (checks[index].call(this, ...parameters)) return true + } + return false + } +} +function propsFactory$6(check) { + return castFactory$6(all) + function all(node) { + let key; + for (key in check) { + if (node[key] !== check[key]) return false + } + return true + } +} +function typeFactory$6(check) { + return castFactory$6(type) + function type(node) { + return node && node.type === check + } +} +function castFactory$6(check) { + return assertion + function assertion(node, ...parameters) { + return Boolean( + node && + typeof node === 'object' && + 'type' in node && + Boolean(check.call(this, node, ...parameters)) + ) + } +} +function ok$6() { + return true +} + +function color$7(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE$6 = true; +const EXIT$6 = false; +const SKIP$6 = 'skip'; +const visitParents$6 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + const is = convert$6(test); + const step = reverse ? -1 : 1; + factory(tree, undefined, [])(); + function factory(node, index, parents) { + const value = node && typeof node === 'object' ? node : {}; + if (typeof value.type === 'string') { + const name = + typeof value.tagName === 'string' + ? value.tagName + : + typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + color$7(node.type + (name ? '<' + name + '>' : '')) + ')' + }); + } + return visit + function visit() { + let result = []; + let subresult; + let offset; + let grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult$6(visitor(node, parents)); + if (result[0] === EXIT$6) { + return result + } + } + if (node.children && result[0] !== SKIP$6) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT$6) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } } + return result } - file.message('Do not use dollar signs before shell commands', node); } - }); + } + ); +function toResult$6(value) { + if (Array.isArray(value)) { + return value } -); -var remarkLintNoShellDollars$1 = remarkLintNoShellDollars; + if (typeof value === 'number') { + return [CONTINUE$6, value] + } + return [value] +} + +const visit$6 = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + visitParents$6(tree, test, overload, reverse); + function overload(node, parents) { + const parent = parents[parents.length - 1]; + return visitor( + node, + parent ? parent.children.indexOf(node) : null, + parent + ) + } + } + ); /** * ## When should I use this? @@ -16261,7 +20987,7 @@ const remarkLintNoTableIndentation = lintRule( (tree, file) => { const value = String(file); const loc = location(value); - visit$1(tree, 'table', (node, _, parent) => { + visit$6(tree, 'table', (node, _, parent) => { const end = pointEnd(node).line; let line = pointStart(node).line; let column = 0; @@ -16295,7 +21021,7 @@ const remarkLintNoTableIndentation = lintRule( } line++; } - return SKIP$1 + return SKIP$6 }); } ); @@ -16767,7 +21493,7 @@ function validateLinks(tree, vfile) { : "#"; vfile.message( `Self-reference must start with hash (expected "${expected}", got "${node.url}")`, - node + node, ); } } @@ -16775,7 +21501,7 @@ function validateLinks(tree, vfile) { if (previousDefinitionLabel && previousDefinitionLabel > node.label) { vfile.message( `Unordered reference ("${node.label}" should be before "${previousDefinitionLabel}")`, - node + node, ); } previousDefinitionLabel = node.label; @@ -16784,7 +21510,7 @@ function validateLinks(tree, vfile) { } const remarkLintNodejsLinks = lintRule( "remark-lint:nodejs-links", - validateLinks + validateLinks, ); /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ @@ -20072,7 +24798,7 @@ const allowedKeys = [ const changesExpectedKeys = ["version", "pr-url", "description"]; const VERSION_PLACEHOLDER = "REPLACEME"; const MAX_SAFE_SEMVER_VERSION = semverParse( - Array.from({ length: 3 }, () => Number.MAX_SAFE_INTEGER).join(".") + Array.from({ length: 3 }, () => Number.MAX_SAFE_INTEGER).join("."), ); const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/; const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$"); @@ -20082,7 +24808,7 @@ let invalidVersionMessage = "version(s) must respect the pattern `vx.x.x` or"; if (process.env.NODE_RELEASED_VERSIONS) { console.log("Using release list from env..."); releasedVersions = process.env.NODE_RELEASED_VERSIONS.split(",").map( - (v) => `v${v}` + (v) => `v${v}`, ); invalidVersionMessage = `version not listed in the changelogs, `; } @@ -20120,7 +24846,7 @@ function areVersionsUnordered(versions) { if ( semverLt( getValidSemver(versions[index - 1]), - getValidSemver(versions[index]) + getValidSemver(versions[index]), ) ) { return true; @@ -20140,7 +24866,7 @@ function validateSecurityChange(file, node, change, index) { if (typeof change.commit !== "string" || isNaN(`0x${change.commit}`)) { file.message( `changes[${index}]: Ill-formed security change commit ID`, - node + node, ); } if (Object.keys(change)[1] === "commit") { @@ -20154,7 +24880,7 @@ function validateSecurityChange(file, node, change, index) { file.message( `changes[${index}]: Invalid keys. Expected keys are: ` + securityChangeExpectedKeys.join(", "), - node + node, ); } } @@ -20176,7 +24902,7 @@ function validateChanges(file, node, changes) { file.message( `changes[${index}]: Invalid keys. Expected keys are: ` + changesExpectedKeys.join(", "), - node + node, ); } if (containsInvalidVersionNumber(change.version)) { @@ -20187,22 +24913,22 @@ function validateChanges(file, node, changes) { if (!isAncient && !isSecurityChange && !prUrlRegex.test(change["pr-url"])) { file.message( `changes[${index}]: PR-URL does not match the expected pattern`, - node + node, ); } if (typeof change.description !== "string" || !change.description.length) { file.message( `changes[${index}]: must contain a non-empty description`, - node + node, ); } else if (!change.description.endsWith(".")) { file.message( `changes[${index}]: description must end with a period`, - node + node, ); } changesVersions.push( - Array.isArray(change.version) ? change.version[0] : change.version + Array.isArray(change.version) ? change.version[0] : change.version, ); } if (areVersionsUnordered(changesVersions)) { @@ -20215,14 +24941,14 @@ function validateMeta(node, file, meta) { file.message( "YAML dictionary contains illegal keys. Accepted values are: " + allowedKeys.join(", "), - node + node, ); break; case kWrongKeyOrder: file.message( "YAML dictionary keys should be in this order: " + allowedKeys.join(", "), - node + node, ); break; } @@ -20234,7 +24960,7 @@ function validateMeta(node, file, meta) { if (containsInvalidVersionNumber(meta.deprecated)) { file.message( `Invalid \`deprecated\` value: ${invalidVersionMessage}`, - node + node, ); } else if (areVersionsUnordered(meta.deprecated)) { file.message("Versions in `deprecated` list are not in order", node); @@ -20249,11 +24975,11 @@ function validateMeta(node, file, meta) { } } function validateYAMLComments(tree, file) { - visit$1(tree, "html", function visitor(node) { + visit$A(tree, "html", function visitor(node) { if (node.value.startsWith(" + +> Stability: 1 - Experimental + +```c +napi_status node_api_post_finalizer(napi_env env, + napi_finalize finalize_cb, + void* finalize_data, + void* finalize_hint); +``` + +* `[in] env`: The environment that the API is invoked under. +* `[in] finalize_cb`: Native callback that will be used to free the + native data when the JavaScript object has been garbage-collected. + [`napi_finalize`][] provides more details. +* `[in] finalize_data`: Optional data to be passed to `finalize_cb`. +* `[in] finalize_hint`: Optional contextual hint that is passed to the + finalize callback. + +Returns `napi_ok` if the API succeeded. + +Schedules a `napi_finalize` callback to be called asynchronously in the +event loop. + +Normally, finalizers are called while the GC (garbage collector) collects +objects. At that point calling any Node-API that may cause changes in the GC +state will be disabled and will crash Node.js. + +`node_api_post_finalizer` helps to work around this limitation by allowing the +add-on to defer calls to such Node-APIs to a point in time outside of the GC +finalization. + ## Simple asynchronous operations Addon modules often need to leverage async helpers from libuv as part of their diff --git a/src/js_native_api.h b/src/js_native_api.h index 3aa0ee5c1c5c5c..eb3c139a9deb41 100644 --- a/src/js_native_api.h +++ b/src/js_native_api.h @@ -517,6 +517,16 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_add_finalizer(napi_env env, #endif // NAPI_VERSION >= 5 +#ifdef NAPI_EXPERIMENTAL + +NAPI_EXTERN napi_status NAPI_CDECL +node_api_post_finalizer(napi_env env, + napi_finalize finalize_cb, + void* finalize_data, + void* finalize_hint); + +#endif // NAPI_EXPERIMENTAL + #if NAPI_VERSION >= 6 // BigInt diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 92f765eb0a99f9..f08294a26a4392 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -57,8 +57,22 @@ (out) = v8::type::New((buffer), (byte_offset), (length)); \ } while (0) -namespace v8impl { +void napi_env__::InvokeFinalizerFromGC(v8impl::RefTracker* finalizer) { + if (module_api_version != NAPI_VERSION_EXPERIMENTAL) { + EnqueueFinalizer(finalizer); + } else { + // The experimental code calls finalizers immediately to release native + // objects as soon as possible. In that state any code that may affect GC + // state causes a fatal error. To work around this issue the finalizer code + // can call node_api_post_finalizer. + auto restore_state = node::OnScopeLeave( + [this, saved = in_gc_finalizer] { in_gc_finalizer = saved; }); + in_gc_finalizer = true; + finalizer->Finalize(); + } +} +namespace v8impl { namespace { template @@ -68,6 +82,7 @@ napi_status NewString(napi_env env, napi_value* result, StringMaker string_maker) { CHECK_ENV(env); + env->CheckGCAccess(); if (length > 0) CHECK_ARG(env, str); CHECK_ARG(env, result); RETURN_STATUS_IF_FALSE( @@ -92,6 +107,7 @@ napi_status NewExternalString(napi_env env, StringMaker string_maker) { napi_status status; #if defined(V8_ENABLE_SANDBOX) + env->CheckGCAccess(); status = create_api(env, str, length, result); if (status == napi_ok) { if (copied != nullptr) { @@ -604,28 +620,70 @@ void Finalizer::ResetFinalizer() { finalize_hint_ = nullptr; } -// Wrapper around v8impl::Persistent that implements reference counting. -RefBase::RefBase(napi_env env, - uint32_t initial_refcount, - Ownership ownership, - napi_finalize finalize_callback, - void* finalize_data, - void* finalize_hint) +TrackedFinalizer::TrackedFinalizer(napi_env env, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) : Finalizer(env, finalize_callback, finalize_data, finalize_hint), - refcount_(initial_refcount), - ownership_(ownership) { + RefTracker() { Link(finalize_callback == nullptr ? &env->reflist : &env->finalizing_reflist); } -// When a RefBase is being deleted, it may have been queued to call its +TrackedFinalizer* TrackedFinalizer::New(napi_env env, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) { + return new TrackedFinalizer( + env, finalize_callback, finalize_data, finalize_hint); +} + +// When a TrackedFinalizer is being deleted, it may have been queued to call its // finalizer. -RefBase::~RefBase() { +TrackedFinalizer::~TrackedFinalizer() { // Remove from the env's tracked list. Unlink(); // Try to remove the finalizer from the scheduled second pass callback. env_->DequeueFinalizer(this); } +void TrackedFinalizer::Finalize() { + FinalizeCore(/*deleteMe:*/ true); +} + +void TrackedFinalizer::FinalizeCore(bool deleteMe) { + // Swap out the field finalize_callback so that it can not be accidentally + // called more than once. + napi_finalize finalize_callback = finalize_callback_; + void* finalize_data = finalize_data_; + void* finalize_hint = finalize_hint_; + ResetFinalizer(); + + // Either the RefBase is going to be deleted in the finalize_callback or not, + // it should be removed from the tracked list. + Unlink(); + // If the finalize_callback is present, it should either delete the + // derived RefBase, or the RefBase ownership was set to Ownership::kRuntime + // and the deleteMe parameter is true. + if (finalize_callback != nullptr) { + env_->CallFinalizer(finalize_callback, finalize_data, finalize_hint); + } + + if (deleteMe) { + delete this; + } +} + +// Wrapper around v8impl::Persistent that implements reference counting. +RefBase::RefBase(napi_env env, + uint32_t initial_refcount, + Ownership ownership, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint) + : TrackedFinalizer(env, finalize_callback, finalize_data, finalize_hint), + refcount_(initial_refcount), + ownership_(ownership) {} + RefBase* RefBase::New(napi_env env, uint32_t initial_refcount, Ownership ownership, @@ -660,31 +718,9 @@ uint32_t RefBase::RefCount() { } void RefBase::Finalize() { - Ownership ownership = ownership_; - // Swap out the field finalize_callback so that it can not be accidentally - // called more than once. - napi_finalize finalize_callback = finalize_callback_; - void* finalize_data = finalize_data_; - void* finalize_hint = finalize_hint_; - ResetFinalizer(); - - // Either the RefBase is going to be deleted in the finalize_callback or not, - // it should be removed from the tracked list. - Unlink(); - // 1. If the finalize_callback is present, it should either delete the - // RefBase, or set ownership with Ownership::kRuntime. - // 2. If the finalizer is not present, the RefBase can be deleted after the - // call. - if (finalize_callback != nullptr) { - env_->CallFinalizer(finalize_callback, finalize_data, finalize_hint); - // No access to `this` after finalize_callback is called. - } - // If the RefBase is not Ownership::kRuntime, userland code should delete it. - // Now delete it if it is Ownership::kRuntime. - if (ownership == Ownership::kRuntime) { - delete this; - } + // Delete it if it is Ownership::kRuntime. + FinalizeCore(/*deleteMe:*/ ownership_ == Ownership::kRuntime); } template @@ -779,7 +815,7 @@ void Reference::WeakCallback(const v8::WeakCallbackInfo& data) { Reference* reference = data.GetParameter(); // The reference must be reset during the weak callback as the API protocol. reference->persistent_.Reset(); - reference->env_->EnqueueFinalizer(reference); + reference->env_->InvokeFinalizerFromGC(reference); } } // end of namespace v8impl @@ -1436,6 +1472,7 @@ napi_status NAPI_CDECL napi_is_array(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -1495,6 +1532,7 @@ napi_status NAPI_CDECL napi_get_prototype(napi_env env, napi_status NAPI_CDECL napi_create_object(napi_env env, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue(v8::Object::New(env->isolate)); @@ -1504,6 +1542,7 @@ napi_status NAPI_CDECL napi_create_object(napi_env env, napi_value* result) { napi_status NAPI_CDECL napi_create_array(napi_env env, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue(v8::Array::New(env->isolate)); @@ -1515,6 +1554,7 @@ napi_status NAPI_CDECL napi_create_array_with_length(napi_env env, size_t length, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = @@ -1615,6 +1655,7 @@ napi_status NAPI_CDECL napi_create_double(napi_env env, double value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = @@ -1627,6 +1668,7 @@ napi_status NAPI_CDECL napi_create_int32(napi_env env, int32_t value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = @@ -1639,6 +1681,7 @@ napi_status NAPI_CDECL napi_create_uint32(napi_env env, uint32_t value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue( @@ -1651,6 +1694,7 @@ napi_status NAPI_CDECL napi_create_int64(napi_env env, int64_t value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue( @@ -1663,6 +1707,7 @@ napi_status NAPI_CDECL napi_create_bigint_int64(napi_env env, int64_t value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = @@ -1675,6 +1720,7 @@ napi_status NAPI_CDECL napi_create_bigint_uint64(napi_env env, uint64_t value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue( @@ -1689,6 +1735,7 @@ napi_status NAPI_CDECL napi_create_bigint_words(napi_env env, const uint64_t* words, napi_value* result) { NAPI_PREAMBLE(env); + env->CheckGCAccess(); CHECK_ARG(env, words); CHECK_ARG(env, result); @@ -1709,6 +1756,7 @@ napi_status NAPI_CDECL napi_get_boolean(napi_env env, bool value, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); v8::Isolate* isolate = env->isolate; @@ -1726,6 +1774,7 @@ napi_status NAPI_CDECL napi_create_symbol(napi_env env, napi_value description, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); v8::Isolate* isolate = env->isolate; @@ -1748,6 +1797,7 @@ napi_status NAPI_CDECL node_api_symbol_for(napi_env env, size_t length, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); napi_value js_description_string; @@ -1793,6 +1843,7 @@ napi_status NAPI_CDECL napi_create_error(napi_env env, napi_value msg, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1813,6 +1864,7 @@ napi_status NAPI_CDECL napi_create_type_error(napi_env env, napi_value msg, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1833,6 +1885,7 @@ napi_status NAPI_CDECL napi_create_range_error(napi_env env, napi_value msg, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1853,6 +1906,7 @@ napi_status NAPI_CDECL node_api_create_syntax_error(napi_env env, napi_value msg, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1874,6 +1928,7 @@ napi_status NAPI_CDECL napi_typeof(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -1913,6 +1968,7 @@ napi_status NAPI_CDECL napi_typeof(napi_env env, napi_status NAPI_CDECL napi_get_undefined(napi_env env, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue(v8::Undefined(env->isolate)); @@ -1922,6 +1978,7 @@ napi_status NAPI_CDECL napi_get_undefined(napi_env env, napi_value* result) { napi_status NAPI_CDECL napi_get_null(napi_env env, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue(v8::Null(env->isolate)); @@ -1967,6 +2024,7 @@ napi_status NAPI_CDECL napi_get_new_target(napi_env env, CHECK_ENV(env); CHECK_ARG(env, cbinfo); CHECK_ARG(env, result); + env->CheckGCAccess(); v8impl::CallbackWrapper* info = reinterpret_cast(cbinfo); @@ -2013,6 +2071,7 @@ napi_status NAPI_CDECL napi_call_function(napi_env env, napi_status NAPI_CDECL napi_get_global(napi_env env, napi_value* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsValueFromV8LocalValue(env->context()->Global()); @@ -2110,6 +2169,7 @@ napi_status NAPI_CDECL napi_is_error(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot // throw JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2125,6 +2185,7 @@ napi_status NAPI_CDECL napi_get_value_double(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2142,6 +2203,7 @@ napi_status NAPI_CDECL napi_get_value_int32(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2166,6 +2228,7 @@ napi_status NAPI_CDECL napi_get_value_uint32(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2190,6 +2253,7 @@ napi_status NAPI_CDECL napi_get_value_int64(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2223,6 +2287,7 @@ napi_status NAPI_CDECL napi_get_value_bigint_int64(napi_env env, int64_t* result, bool* lossless) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); CHECK_ARG(env, lossless); @@ -2241,6 +2306,7 @@ napi_status NAPI_CDECL napi_get_value_bigint_uint64(napi_env env, uint64_t* result, bool* lossless) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); CHECK_ARG(env, lossless); @@ -2260,6 +2326,7 @@ napi_status NAPI_CDECL napi_get_value_bigint_words(napi_env env, size_t* word_count, uint64_t* words) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, word_count); @@ -2290,6 +2357,7 @@ napi_status NAPI_CDECL napi_get_value_bool(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2312,6 +2380,7 @@ napi_status NAPI_CDECL napi_get_value_bool(napi_env env, napi_status NAPI_CDECL napi_get_value_string_latin1( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); v8::Local val = v8impl::V8LocalValueFromJsValue(value); @@ -2350,6 +2419,7 @@ napi_status NAPI_CDECL napi_get_value_string_latin1( napi_status NAPI_CDECL napi_get_value_string_utf8( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); v8::Local val = v8impl::V8LocalValueFromJsValue(value); @@ -2391,6 +2461,7 @@ napi_status NAPI_CDECL napi_get_value_string_utf16(napi_env env, size_t bufsize, size_t* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); v8::Local val = v8impl::V8LocalValueFromJsValue(value); @@ -2577,6 +2648,7 @@ napi_status NAPI_CDECL napi_get_value_external(napi_env env, napi_value value, void** result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2597,6 +2669,7 @@ napi_status NAPI_CDECL napi_create_reference(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2621,6 +2694,7 @@ napi_status NAPI_CDECL napi_delete_reference(napi_env env, napi_ref ref) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, ref); delete reinterpret_cast(ref); @@ -2639,6 +2713,7 @@ napi_status NAPI_CDECL napi_reference_ref(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, ref); v8impl::Reference* reference = reinterpret_cast(ref); @@ -2661,6 +2736,7 @@ napi_status NAPI_CDECL napi_reference_unref(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, ref); v8impl::Reference* reference = reinterpret_cast(ref); @@ -2687,6 +2763,7 @@ napi_status NAPI_CDECL napi_get_reference_value(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, ref); CHECK_ARG(env, result); @@ -2701,6 +2778,7 @@ napi_status NAPI_CDECL napi_open_handle_scope(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsHandleScopeFromV8HandleScope( @@ -2714,6 +2792,7 @@ napi_status NAPI_CDECL napi_close_handle_scope(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, scope); if (env->open_handle_scopes == 0) { return napi_handle_scope_mismatch; @@ -2729,6 +2808,7 @@ napi_status NAPI_CDECL napi_open_escapable_handle_scope( // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = v8impl::JsEscapableHandleScopeFromV8EscapableHandleScope( @@ -2742,6 +2822,7 @@ napi_status NAPI_CDECL napi_close_escapable_handle_scope( // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, scope); if (env->open_handle_scopes == 0) { return napi_handle_scope_mismatch; @@ -2759,6 +2840,7 @@ napi_status NAPI_CDECL napi_escape_handle(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, scope); CHECK_ARG(env, escapee); CHECK_ARG(env, result); @@ -2837,6 +2919,7 @@ napi_status NAPI_CDECL napi_is_exception_pending(napi_env env, bool* result) { // NAPI_PREAMBLE is not used here: this function must execute when there is a // pending exception. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); *result = !env->last_exception.IsEmpty(); @@ -2848,6 +2931,7 @@ napi_status NAPI_CDECL napi_get_and_clear_last_exception(napi_env env, // NAPI_PREAMBLE is not used here: this function must execute when there is a // pending exception. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, result); if (env->last_exception.IsEmpty()) { @@ -2865,6 +2949,7 @@ napi_status NAPI_CDECL napi_is_arraybuffer(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2917,6 +3002,7 @@ napi_status NAPI_CDECL napi_get_arraybuffer_info(napi_env env, void** data, size_t* byte_length) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, arraybuffer); v8::Local value = v8impl::V8LocalValueFromJsValue(arraybuffer); @@ -2939,6 +3025,7 @@ napi_status NAPI_CDECL napi_is_typedarray(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -3025,6 +3112,7 @@ napi_status NAPI_CDECL napi_get_typedarray_info(napi_env env, napi_value* arraybuffer, size_t* byte_offset) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, typedarray); v8::Local value = v8impl::V8LocalValueFromJsValue(typedarray); @@ -3115,6 +3203,7 @@ napi_status NAPI_CDECL napi_is_dataview(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -3131,6 +3220,7 @@ napi_status NAPI_CDECL napi_get_dataview_info(napi_env env, napi_value* arraybuffer, size_t* byte_offset) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, dataview); v8::Local value = v8impl::V8LocalValueFromJsValue(dataview); @@ -3206,6 +3296,7 @@ napi_status NAPI_CDECL napi_is_promise(napi_env env, napi_value value, bool* is_promise) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, is_promise); @@ -3232,6 +3323,7 @@ napi_status NAPI_CDECL napi_is_date(napi_env env, napi_value value, bool* is_date) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, is_date); @@ -3244,6 +3336,7 @@ napi_status NAPI_CDECL napi_get_date_value(napi_env env, napi_value value, double* result) { NAPI_PREAMBLE(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -3290,6 +3383,7 @@ napi_status NAPI_CDECL napi_add_finalizer(napi_env env, // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, js_object); CHECK_ARG(env, finalize_cb); @@ -3310,6 +3404,20 @@ napi_status NAPI_CDECL napi_add_finalizer(napi_env env, return napi_clear_last_error(env); } +#ifdef NAPI_EXPERIMENTAL + +napi_status NAPI_CDECL node_api_post_finalizer(napi_env env, + napi_finalize finalize_cb, + void* finalize_data, + void* finalize_hint) { + CHECK_ENV(env); + env->EnqueueFinalizer(v8impl::TrackedFinalizer::New( + env, finalize_cb, finalize_data, finalize_hint)); + return napi_clear_last_error(env); +} + +#endif + napi_status NAPI_CDECL napi_adjust_external_memory(napi_env env, int64_t change_in_bytes, int64_t* adjusted_value) { @@ -3355,6 +3463,7 @@ napi_status NAPI_CDECL napi_get_instance_data(napi_env env, void** data) { napi_status NAPI_CDECL napi_detach_arraybuffer(napi_env env, napi_value arraybuffer) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, arraybuffer); v8::Local value = v8impl::V8LocalValueFromJsValue(arraybuffer); @@ -3374,6 +3483,7 @@ napi_status NAPI_CDECL napi_is_detached_arraybuffer(napi_env env, napi_value arraybuffer, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, arraybuffer); CHECK_ARG(env, result); diff --git a/src/js_native_api_v8.h b/src/js_native_api_v8.h index 1ac738af2adb88..db39686c91127e 100644 --- a/src/js_native_api_v8.h +++ b/src/js_native_api_v8.h @@ -105,6 +105,9 @@ struct napi_env__ { CallIntoModule([&](napi_env env) { cb(env, data, hint); }); } + // Invoke finalizer from V8 garbage collector. + void InvokeFinalizerFromGC(v8impl::RefTracker* finalizer); + // Enqueue the finalizer to the napi_env's own queue of the second pass // weak callback. // Implementation should drain the queue at the time it is safe to call @@ -130,6 +133,19 @@ struct napi_env__ { delete this; } + void CheckGCAccess() { + if (module_api_version == NAPI_VERSION_EXPERIMENTAL && in_gc_finalizer) { + v8impl::OnFatalError( + nullptr, + "Finalizer is calling a function that may affect GC state.\n" + "The finalizers are run directly from GC and must not affect GC " + "state.\n" + "Use `node_api_post_finalizer` from inside of the finalizer to work " + "around this issue.\n" + "It schedules the call as a new task in the event loop."); + } + } + v8::Isolate* const isolate; // Shortcut for context()->GetIsolate() v8impl::Persistent context_persistent; @@ -148,6 +164,7 @@ struct napi_env__ { int refs = 1; void* instance_data = nullptr; int32_t module_api_version = NODE_API_DEFAULT_MODULE_API_VERSION; + bool in_gc_finalizer = false; protected: // Should not be deleted directly. Delete with `napi_env__::DeleteMe()` @@ -211,6 +228,7 @@ inline napi_status napi_set_last_error(napi_env env, // NAPI_PREAMBLE is not wrapped in do..while: try_catch must have function scope #define NAPI_PREAMBLE(env) \ CHECK_ENV((env)); \ + (env)->CheckGCAccess(); \ RETURN_STATUS_IF_FALSE( \ (env), (env)->last_exception.IsEmpty(), napi_pending_exception); \ RETURN_STATUS_IF_FALSE((env), \ @@ -355,8 +373,28 @@ enum class Ownership { kUserland, }; -// Wrapper around Finalizer that implements reference counting. -class RefBase : public Finalizer, public RefTracker { +// Wrapper around Finalizer that can be tracked. +class TrackedFinalizer : public Finalizer, public RefTracker { + protected: + TrackedFinalizer(napi_env env, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint); + + public: + static TrackedFinalizer* New(napi_env env, + napi_finalize finalize_callback, + void* finalize_data, + void* finalize_hint); + ~TrackedFinalizer() override; + + protected: + void Finalize() override; + void FinalizeCore(bool deleteMe); +}; + +// Wrapper around TrackedFinalizer that implements reference counting. +class RefBase : public TrackedFinalizer { protected: RefBase(napi_env env, uint32_t initial_refcount, @@ -372,7 +410,6 @@ class RefBase : public Finalizer, public RefTracker { napi_finalize finalize_callback, void* finalize_data, void* finalize_hint); - virtual ~RefBase(); void* Data(); uint32_t Ref(); diff --git a/src/js_native_api_v8_internals.h b/src/js_native_api_v8_internals.h index 4f1b94d3d0c9d7..7bf3bf0fa7e1a2 100644 --- a/src/js_native_api_v8_internals.h +++ b/src/js_native_api_v8_internals.h @@ -17,6 +17,7 @@ #include "env.h" #include "gtest/gtest_prod.h" +#include "node_errors.h" #include "node_internals.h" #define NAPI_ARRAYSIZE(array) node::arraysize((array)) @@ -34,6 +35,11 @@ using Persistent = v8::Global; using PersistentToLocal = node::PersistentToLocal; +[[noreturn]] inline void OnFatalError(const char* location, + const char* message) { + node::OnFatalError(location, message); +} + } // end of namespace v8impl #endif // SRC_JS_NATIVE_API_V8_INTERNALS_H_ diff --git a/src/node_api.cc b/src/node_api.cc index 368f05f3f4a261..7285b71f54231f 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -917,6 +917,7 @@ napi_status NAPI_CDECL napi_async_init(napi_env env, napi_value async_resource_name, napi_async_context* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, async_resource_name); CHECK_ARG(env, result); @@ -950,6 +951,7 @@ napi_status NAPI_CDECL napi_async_init(napi_env env, napi_status NAPI_CDECL napi_async_destroy(napi_env env, napi_async_context async_context) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, async_context); v8impl::AsyncContext* node_async_context = @@ -1099,6 +1101,7 @@ napi_status NAPI_CDECL napi_is_buffer(napi_env env, napi_value value, bool* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -1111,6 +1114,7 @@ napi_status NAPI_CDECL napi_get_buffer_info(napi_env env, void** data, size_t* length) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, value); v8::Local buffer = v8impl::V8LocalValueFromJsValue(value); @@ -1232,6 +1236,7 @@ napi_create_async_work(napi_env env, void* data, napi_async_work* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, execute); CHECK_ARG(env, result); @@ -1262,6 +1267,7 @@ napi_create_async_work(napi_env env, napi_status NAPI_CDECL napi_delete_async_work(napi_env env, napi_async_work work) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, work); uvimpl::Work::Delete(reinterpret_cast(work)); @@ -1316,6 +1322,7 @@ napi_create_threadsafe_function(napi_env env, napi_threadsafe_function_call_js call_js_cb, napi_threadsafe_function* result) { CHECK_ENV(env); + env->CheckGCAccess(); CHECK_ARG(env, async_resource_name); RETURN_STATUS_IF_FALSE(env, initial_thread_count > 0, napi_invalid_arg); CHECK_ARG(env, result); diff --git a/test/js-native-api/test_finalizer/binding.gyp b/test/js-native-api/test_finalizer/binding.gyp new file mode 100644 index 00000000000000..4c63346f30ce74 --- /dev/null +++ b/test/js-native-api/test_finalizer/binding.gyp @@ -0,0 +1,11 @@ +{ + "targets": [ + { + "target_name": "test_finalizer", + "defines": [ "NAPI_EXPERIMENTAL" ], + "sources": [ + "test_finalizer.c" + ] + } + ] +} diff --git a/test/js-native-api/test_finalizer/test.js b/test/js-native-api/test_finalizer/test.js new file mode 100644 index 00000000000000..cfbf57239c3a6d --- /dev/null +++ b/test/js-native-api/test_finalizer/test.js @@ -0,0 +1,43 @@ +'use strict'; +// Flags: --expose-gc + +const common = require('../../common'); +const test_finalizer = require(`./build/${common.buildType}/test_finalizer`); +const assert = require('assert'); + +// The goal of this test is to show that we can run "pure" finalizers in the +// current JS loop tick. Thus, we do not use common.gcUntil function works +// asynchronously using micro tasks. +// We use IIFE for the obj scope instead of {} to be compatible with +// non-V8 JS engines that do not support scoped variables. +(() => { + const obj = {}; + test_finalizer.addFinalizer(obj); +})(); + +for (let i = 0; i < 10; ++i) { + global.gc(); + if (test_finalizer.getFinalizerCallCount() === 1) { + break; + } +} + +assert.strictEqual(test_finalizer.getFinalizerCallCount(), 1); + +// The finalizer that access JS cannot run synchronously. They are run in the +// next JS loop tick. Thus, we must use common.gcUntil. +async function runAsyncTests() { + // We do not use common.mustCall() because we want to see the finalizer + // called in response to GC and not as a part of env destruction. + let js_is_called = false; + // We use IIFE for the obj scope instead of {} to be compatible with + // non-V8 JS engines that do not support scoped variables. + (() => { + const obj = {}; + test_finalizer.addFinalizerWithJS(obj, () => { js_is_called = true; }); + })(); + await common.gcUntil('ensure JS finalizer called', + () => (test_finalizer.getFinalizerCallCount() === 2)); + assert(js_is_called); +} +runAsyncTests(); diff --git a/test/js-native-api/test_finalizer/test_fatal_finalize.js b/test/js-native-api/test_finalizer/test_fatal_finalize.js new file mode 100644 index 00000000000000..352310128a97f6 --- /dev/null +++ b/test/js-native-api/test_finalizer/test_fatal_finalize.js @@ -0,0 +1,31 @@ +'use strict'; +const common = require('../../common'); + +if (process.argv[2] === 'child') { + const test_finalizer = require(`./build/${common.buildType}/test_finalizer`); + + (() => { + const obj = {}; + test_finalizer.addFinalizerFailOnJS(obj); + })(); + + // Collect garbage 10 times. At least one of those should throw the exception + // and cause the whole process to bail with it, its text printed to stderr and + // asserted by the parent process to match expectations. + let gcCount = 10; + (function gcLoop() { + global.gc(); + if (--gcCount > 0) { + setImmediate(() => gcLoop()); + } + })(); + return; +} + +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const child = spawnSync(process.execPath, [ + '--expose-gc', __filename, 'child', +]); +assert.strictEqual(child.signal, common.isWindows ? null : 'SIGABRT'); +assert.match(child.stderr.toString(), /Finalizer is calling a function that may affect GC state/); diff --git a/test/js-native-api/test_finalizer/test_finalizer.c b/test/js-native-api/test_finalizer/test_finalizer.c new file mode 100644 index 00000000000000..378781b7042f96 --- /dev/null +++ b/test/js-native-api/test_finalizer/test_finalizer.c @@ -0,0 +1,146 @@ +#include +#include +#include +#include +#include +#include "../common.h" +#include "../entry_point.h" + +typedef struct { + int32_t finalize_count; + napi_ref js_func; +} FinalizerData; + +static void finalizerOnlyCallback(napi_env env, + void* finalize_data, + void* finalize_hint) { + FinalizerData* data = (FinalizerData*)finalize_data; + int32_t count = ++data->finalize_count; + + // It is safe to access instance data + NODE_API_CALL_RETURN_VOID(env, napi_get_instance_data(env, (void**)&data)); + NODE_API_ASSERT_RETURN_VOID(env, + count = data->finalize_count, + "Expected to be the same FinalizerData"); +} + +static void finalizerCallingJSCallback(napi_env env, + void* finalize_data, + void* finalize_hint) { + napi_value js_func, undefined; + FinalizerData* data = (FinalizerData*)finalize_data; + NODE_API_CALL_RETURN_VOID( + env, napi_get_reference_value(env, data->js_func, &js_func)); + NODE_API_CALL_RETURN_VOID(env, napi_get_undefined(env, &undefined)); + NODE_API_CALL_RETURN_VOID( + env, napi_call_function(env, undefined, js_func, 0, NULL, NULL)); + NODE_API_CALL_RETURN_VOID(env, napi_delete_reference(env, data->js_func)); + data->js_func = NULL; + ++data->finalize_count; +} + +// Schedule async finalizer to run JavaScript-touching code. +static void finalizerWithJSCallback(napi_env env, + void* finalize_data, + void* finalize_hint) { + NODE_API_CALL_RETURN_VOID( + env, + node_api_post_finalizer( + env, finalizerCallingJSCallback, finalize_data, finalize_hint)); +} + +static void finalizerWithFailedJSCallback(napi_env env, + void* finalize_data, + void* finalize_hint) { + napi_value obj; + FinalizerData* data = (FinalizerData*)finalize_data; + ++data->finalize_count; + NODE_API_CALL_RETURN_VOID(env, napi_create_object(env, &obj)); +} + +static napi_value addFinalizer(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value argv[1] = {0}; + FinalizerData* data; + + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + NODE_API_CALL(env, napi_get_instance_data(env, (void**)&data)); + NODE_API_CALL(env, + napi_add_finalizer( + env, argv[0], data, finalizerOnlyCallback, NULL, NULL)); + return NULL; +} + +// This finalizer is going to call JavaScript from finalizer and succeed. +static napi_value addFinalizerWithJS(napi_env env, napi_callback_info info) { + size_t argc = 2; + napi_value argv[2] = {0}; + napi_valuetype arg_type; + FinalizerData* data; + + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + NODE_API_CALL(env, napi_get_instance_data(env, (void**)&data)); + NODE_API_CALL(env, napi_typeof(env, argv[1], &arg_type)); + NODE_API_ASSERT( + env, arg_type == napi_function, "Expected function as the second arg"); + NODE_API_CALL(env, napi_create_reference(env, argv[1], 1, &data->js_func)); + NODE_API_CALL(env, + napi_add_finalizer( + env, argv[0], data, finalizerWithJSCallback, NULL, NULL)); + return NULL; +} + +// This finalizer is going to call JavaScript from finalizer and fail. +static napi_value addFinalizerFailOnJS(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value argv[1] = {0}; + FinalizerData* data; + + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + NODE_API_CALL(env, napi_get_instance_data(env, (void**)&data)); + NODE_API_CALL( + env, + napi_add_finalizer( + env, argv[0], data, finalizerWithFailedJSCallback, NULL, NULL)); + return NULL; +} + +static napi_value getFinalizerCallCount(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value argv[1]; + FinalizerData* data; + napi_value result; + + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + NODE_API_CALL(env, napi_get_instance_data(env, (void**)&data)); + NODE_API_CALL(env, napi_create_int32(env, data->finalize_count, &result)); + return result; +} + +static void finalizeData(napi_env env, void* data, void* hint) { + free(data); +} + +EXTERN_C_START +napi_value Init(napi_env env, napi_value exports) { + FinalizerData* data = (FinalizerData*)malloc(sizeof(FinalizerData)); + NODE_API_ASSERT(env, data != NULL, "Failed to allocate memory"); + memset(data, 0, sizeof(FinalizerData)); + NODE_API_CALL(env, napi_set_instance_data(env, data, finalizeData, NULL)); + napi_property_descriptor descriptors[] = { + DECLARE_NODE_API_PROPERTY("addFinalizer", addFinalizer), + DECLARE_NODE_API_PROPERTY("addFinalizerWithJS", addFinalizerWithJS), + DECLARE_NODE_API_PROPERTY("addFinalizerFailOnJS", addFinalizerFailOnJS), + DECLARE_NODE_API_PROPERTY("getFinalizerCallCount", + getFinalizerCallCount)}; + + NODE_API_CALL( + env, + napi_define_properties(env, + exports, + sizeof(descriptors) / sizeof(*descriptors), + descriptors)); + + return exports; +} +EXTERN_C_END From 1cc6cbff269a2971172ed307930c484eb0de1601 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 3 Oct 2023 16:32:41 +0100 Subject: [PATCH 068/232] tools: update eslint to 8.50.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49989 Reviewed-By: Luigi Pinca Reviewed-By: Moshe Atlow Reviewed-By: Tobias Nießen --- .../es-module/test-esm-import-assertion-4.mjs | 2 +- .../test-esm-import-assertion-errors.js | 2 +- .../test-esm-import-assertion-errors.mjs | 2 +- test/es-module/test-esm-json.mjs | 8 +- .../eslint/lib/config/flat-config-schema.js | 12 +- .../node_modules/eslint/lib/linter/linter.js | 229 +++++-- .../lib/rule-tester/flat-rule-tester.js | 55 +- .../eslint/lib/rule-tester/rule-tester.js | 98 ++- .../eslint/lib/rules/array-callback-return.js | 153 ++++- tools/node_modules/eslint/lib/rules/index.js | 1 + .../rules/no-misleading-character-class.js | 80 ++- .../eslint/lib/rules/no-new-object.js | 7 + .../eslint/lib/rules/no-object-constructor.js | 118 ++++ .../eslint/lib/source-code/source-code.js | 353 ++++++++++- .../@babel/compat-data/data/plugins.json | 1 + .../@babel/compat-data/package.json | 2 +- .../node_modules/@babel/core/lib/index.js | 29 +- .../core/lib/transformation/normalize-file.js | 6 +- .../node_modules/@babel/core/package.json | 26 +- .../generator/lib/generators/modules.js | 20 + .../@babel/generator/package.json | 8 +- .../helper-environment-visitor/lib/index.js | 14 +- .../helper-environment-visitor/package.json | 6 +- .../@babel/helper-function-name/package.json | 6 +- .../lib/dynamic-import.js | 14 +- .../helper-module-transforms/lib/index.js | 34 +- .../lib/lazy-modules.js | 31 + .../lib/normalize-and-load-metadata.js | 46 +- .../lib/rewrite-live-references.js | 53 +- .../helper-module-transforms/package.json | 10 +- .../lib/identifier.js | 4 +- .../helper-validator-identifier/package.json | 4 +- .../scripts/generate-identifier-regex.js | 16 +- .../@babel/helpers/lib/helpers-generated.js | 3 +- .../@babel/helpers/lib/helpers.js | 5 + .../helpers/lib/helpers/applyDecs2305.js | 39 +- .../helpers/lib/helpers/importDeferProxy.js | 35 ++ .../node_modules/@babel/helpers/package.json | 10 +- .../@babel/highlight/lib/index.js | 4 +- .../@babel/highlight/package.json | 4 +- .../node_modules/@babel/parser/lib/index.js | 572 ++++++++++-------- .../node_modules/@babel/parser/package.json | 6 +- .../node_modules/@babel/traverse/lib/index.js | 9 - .../@babel/traverse/lib/path/conversion.js | 10 +- .../@babel/traverse/lib/path/evaluation.js | 14 +- .../lib/path/lib/virtual-types-validator.js | 14 +- .../@babel/traverse/lib/scope/index.js | 6 +- .../node_modules/@babel/traverse/package.json | 14 +- .../types/lib/asserts/generated/index.js | 4 + .../types/lib/builders/generated/index.js | 8 + .../types/lib/builders/generated/uppercase.js | 6 + .../@babel/types/lib/builders/productions.js | 12 + .../@babel/types/lib/definitions/core.js | 23 +- .../node_modules/@babel/types/lib/index.js | 21 +- .../@babel/types/lib/index.js.flow | 19 +- .../types/lib/validators/generated/index.js | 8 + .../node_modules/@babel/types/package.json | 8 +- .../@eslint-community/regexpp/index.js | 24 +- .../@eslint-community/regexpp/index.mjs | 24 +- .../@eslint-community/regexpp/package.json | 2 +- .../node_modules/@eslint/js/package.json | 2 +- .../@eslint/js/src/configs/eslint-all.js | 2 +- .../eslint/node_modules/@types/mdast/LICENSE | 0 .../node_modules/@types/mdast/package.json | 6 +- .../eslint/node_modules/browserslist/cli.js | 7 +- .../eslint/node_modules/browserslist/index.js | 15 +- .../node_modules/browserslist/package.json | 8 +- .../node_modules/caniuse-lite/data/agents.js | 2 +- .../caniuse-lite/data/browserVersions.js | 2 +- .../caniuse-lite/data/features/aac.js | 2 +- .../data/features/abortcontroller.js | 2 +- .../caniuse-lite/data/features/ac3-ec3.js | 2 +- .../data/features/accelerometer.js | 2 +- .../data/features/addeventlistener.js | 2 +- .../data/features/alternate-stylesheet.js | 2 +- .../data/features/ambient-light.js | 2 +- .../caniuse-lite/data/features/apng.js | 2 +- .../data/features/array-find-index.js | 2 +- .../caniuse-lite/data/features/array-find.js | 2 +- .../caniuse-lite/data/features/array-flat.js | 2 +- .../data/features/array-includes.js | 2 +- .../data/features/arrow-functions.js | 2 +- .../caniuse-lite/data/features/asmjs.js | 2 +- .../data/features/async-clipboard.js | 2 +- .../data/features/async-functions.js | 2 +- .../caniuse-lite/data/features/atob-btoa.js | 2 +- .../caniuse-lite/data/features/audio-api.js | 2 +- .../caniuse-lite/data/features/audio.js | 2 +- .../caniuse-lite/data/features/audiotracks.js | 2 +- .../caniuse-lite/data/features/autofocus.js | 2 +- .../caniuse-lite/data/features/auxclick.js | 2 +- .../caniuse-lite/data/features/av1.js | 2 +- .../caniuse-lite/data/features/avif.js | 2 +- .../data/features/background-attachment.js | 2 +- .../data/features/background-clip-text.js | 2 +- .../data/features/background-img-opts.js | 2 +- .../data/features/background-position-x-y.js | 2 +- .../features/background-repeat-round-space.js | 2 +- .../data/features/background-sync.js | 2 +- .../data/features/battery-status.js | 2 +- .../caniuse-lite/data/features/beacon.js | 2 +- .../data/features/beforeafterprint.js | 2 +- .../caniuse-lite/data/features/bigint.js | 2 +- .../caniuse-lite/data/features/blobbuilder.js | 2 +- .../caniuse-lite/data/features/bloburls.js | 2 +- .../data/features/border-image.js | 2 +- .../data/features/border-radius.js | 2 +- .../data/features/broadcastchannel.js | 2 +- .../caniuse-lite/data/features/brotli.js | 2 +- .../caniuse-lite/data/features/calc.js | 2 +- .../data/features/canvas-blending.js | 2 +- .../caniuse-lite/data/features/canvas-text.js | 2 +- .../caniuse-lite/data/features/canvas.js | 2 +- .../caniuse-lite/data/features/ch-unit.js | 2 +- .../data/features/chacha20-poly1305.js | 2 +- .../data/features/channel-messaging.js | 2 +- .../data/features/childnode-remove.js | 2 +- .../caniuse-lite/data/features/classlist.js | 2 +- .../client-hints-dpr-width-viewport.js | 2 +- .../caniuse-lite/data/features/clipboard.js | 2 +- .../caniuse-lite/data/features/colr-v1.js | 2 +- .../caniuse-lite/data/features/colr.js | 2 +- .../data/features/comparedocumentposition.js | 2 +- .../data/features/console-basic.js | 2 +- .../data/features/console-time.js | 2 +- .../caniuse-lite/data/features/const.js | 2 +- .../data/features/constraint-validation.js | 2 +- .../data/features/contenteditable.js | 2 +- .../data/features/contentsecuritypolicy.js | 2 +- .../data/features/contentsecuritypolicy2.js | 2 +- .../data/features/cookie-store-api.js | 2 +- .../caniuse-lite/data/features/cors.js | 2 +- .../data/features/createimagebitmap.js | 2 +- .../data/features/credential-management.js | 2 +- .../data/features/cryptography.js | 2 +- .../caniuse-lite/data/features/css-all.js | 2 +- .../data/features/css-anchor-positioning.js | 2 +- .../data/features/css-animation.js | 2 +- .../data/features/css-any-link.js | 2 +- .../data/features/css-appearance.js | 2 +- .../data/features/css-at-counter-style.js | 2 +- .../data/features/css-autofill.js | 2 +- .../data/features/css-backdrop-filter.js | 2 +- .../data/features/css-background-offsets.js | 2 +- .../data/features/css-backgroundblendmode.js | 2 +- .../data/features/css-boxdecorationbreak.js | 2 +- .../data/features/css-boxshadow.js | 2 +- .../caniuse-lite/data/features/css-canvas.js | 2 +- .../data/features/css-caret-color.js | 2 +- .../data/features/css-cascade-layers.js | 2 +- .../data/features/css-cascade-scope.js | 2 +- .../data/features/css-case-insensitive.js | 2 +- .../data/features/css-clip-path.js | 2 +- .../data/features/css-color-adjust.js | 2 +- .../data/features/css-color-function.js | 2 +- .../data/features/css-conic-gradients.js | 2 +- .../features/css-container-queries-style.js | 2 +- .../data/features/css-container-queries.js | 2 +- .../features/css-container-query-units.js | 2 +- .../data/features/css-containment.js | 2 +- .../data/features/css-content-visibility.js | 2 +- .../data/features/css-counters.js | 2 +- .../data/features/css-crisp-edges.js | 2 +- .../data/features/css-cross-fade.js | 2 +- .../data/features/css-default-pseudo.js | 2 +- .../data/features/css-descendant-gtgt.js | 2 +- .../data/features/css-deviceadaptation.js | 2 +- .../data/features/css-dir-pseudo.js | 2 +- .../data/features/css-display-contents.js | 2 +- .../data/features/css-element-function.js | 2 +- .../data/features/css-env-function.js | 2 +- .../data/features/css-exclusions.js | 2 +- .../data/features/css-featurequeries.js | 2 +- .../data/features/css-file-selector-button.js | 2 +- .../data/features/css-filter-function.js | 2 +- .../caniuse-lite/data/features/css-filters.js | 2 +- .../data/features/css-first-letter.js | 2 +- .../data/features/css-first-line.js | 2 +- .../caniuse-lite/data/features/css-fixed.js | 2 +- .../data/features/css-focus-visible.js | 2 +- .../data/features/css-focus-within.js | 2 +- .../data/features/css-font-palette.js | 2 +- .../features/css-font-rendering-controls.js | 2 +- .../data/features/css-font-stretch.js | 2 +- .../data/features/css-gencontent.js | 2 +- .../data/features/css-gradients.js | 2 +- .../data/features/css-grid-animation.js | 2 +- .../caniuse-lite/data/features/css-grid.js | 2 +- .../data/features/css-hanging-punctuation.js | 2 +- .../caniuse-lite/data/features/css-has.js | 2 +- .../caniuse-lite/data/features/css-hyphens.js | 2 +- .../data/features/css-image-orientation.js | 2 +- .../data/features/css-image-set.js | 2 +- .../data/features/css-in-out-of-range.js | 2 +- .../data/features/css-indeterminate-pseudo.js | 2 +- .../data/features/css-initial-letter.js | 2 +- .../data/features/css-initial-value.js | 2 +- .../caniuse-lite/data/features/css-lch-lab.js | 2 +- .../data/features/css-letter-spacing.js | 2 +- .../data/features/css-line-clamp.js | 2 +- .../data/features/css-logical-props.js | 2 +- .../data/features/css-marker-pseudo.js | 2 +- .../caniuse-lite/data/features/css-masks.js | 2 +- .../data/features/css-matches-pseudo.js | 2 +- .../data/features/css-math-functions.js | 2 +- .../data/features/css-media-interaction.js | 2 +- .../data/features/css-media-range-syntax.js | 2 +- .../data/features/css-media-resolution.js | 2 +- .../data/features/css-media-scripting.js | 2 +- .../data/features/css-mediaqueries.js | 2 +- .../data/features/css-mixblendmode.js | 2 +- .../data/features/css-motion-paths.js | 2 +- .../data/features/css-namespaces.js | 2 +- .../caniuse-lite/data/features/css-nesting.js | 2 +- .../data/features/css-not-sel-list.js | 2 +- .../data/features/css-nth-child-of.js | 2 +- .../caniuse-lite/data/features/css-opacity.js | 2 +- .../data/features/css-optional-pseudo.js | 2 +- .../data/features/css-overflow-anchor.js | 2 +- .../data/features/css-overflow-overlay.js | 2 +- .../data/features/css-overflow.js | 2 +- .../data/features/css-overscroll-behavior.js | 2 +- .../data/features/css-page-break.js | 2 +- .../data/features/css-paged-media.js | 2 +- .../data/features/css-paint-api.js | 2 +- .../data/features/css-placeholder-shown.js | 2 +- .../data/features/css-placeholder.js | 2 +- .../data/features/css-print-color-adjust.js | 2 +- .../data/features/css-read-only-write.js | 2 +- .../data/features/css-rebeccapurple.js | 2 +- .../data/features/css-reflections.js | 2 +- .../caniuse-lite/data/features/css-regions.js | 2 +- .../data/features/css-relative-colors.js | 2 +- .../data/features/css-repeating-gradients.js | 2 +- .../caniuse-lite/data/features/css-resize.js | 2 +- .../data/features/css-revert-value.js | 2 +- .../data/features/css-rrggbbaa.js | 2 +- .../data/features/css-scroll-behavior.js | 2 +- .../data/features/css-scroll-timeline.js | 2 +- .../data/features/css-scrollbar.js | 2 +- .../caniuse-lite/data/features/css-sel2.js | 2 +- .../caniuse-lite/data/features/css-sel3.js | 2 +- .../data/features/css-selection.js | 2 +- .../caniuse-lite/data/features/css-shapes.js | 2 +- .../data/features/css-snappoints.js | 2 +- .../caniuse-lite/data/features/css-sticky.js | 2 +- .../caniuse-lite/data/features/css-subgrid.js | 2 +- .../data/features/css-supports-api.js | 2 +- .../caniuse-lite/data/features/css-table.js | 2 +- .../data/features/css-text-align-last.js | 2 +- .../data/features/css-text-box-trim.js | 2 +- .../data/features/css-text-indent.js | 2 +- .../data/features/css-text-justify.js | 2 +- .../data/features/css-text-orientation.js | 2 +- .../data/features/css-text-spacing.js | 2 +- .../data/features/css-text-wrap-balance.js | 2 +- .../data/features/css-textshadow.js | 2 +- .../data/features/css-touch-action.js | 2 +- .../data/features/css-transitions.js | 2 +- .../data/features/css-unicode-bidi.js | 2 +- .../data/features/css-unset-value.js | 2 +- .../data/features/css-variables.js | 2 +- .../data/features/css-when-else.js | 2 +- .../data/features/css-widows-orphans.js | 2 +- .../data/features/css-width-stretch.js | 2 +- .../data/features/css-writing-mode.js | 2 +- .../caniuse-lite/data/features/css-zoom.js | 2 +- .../caniuse-lite/data/features/css3-attr.js | 2 +- .../data/features/css3-boxsizing.js | 2 +- .../caniuse-lite/data/features/css3-colors.js | 2 +- .../data/features/css3-cursors-grab.js | 2 +- .../data/features/css3-cursors-newer.js | 2 +- .../data/features/css3-cursors.js | 2 +- .../data/features/css3-tabsize.js | 2 +- .../data/features/currentcolor.js | 2 +- .../data/features/custom-elements.js | 2 +- .../data/features/custom-elementsv1.js | 2 +- .../caniuse-lite/data/features/customevent.js | 2 +- .../caniuse-lite/data/features/datalist.js | 2 +- .../caniuse-lite/data/features/dataset.js | 2 +- .../caniuse-lite/data/features/datauri.js | 2 +- .../data/features/date-tolocaledatestring.js | 2 +- .../data/features/declarative-shadow-dom.js | 2 +- .../caniuse-lite/data/features/decorators.js | 2 +- .../caniuse-lite/data/features/details.js | 2 +- .../data/features/deviceorientation.js | 2 +- .../data/features/devicepixelratio.js | 2 +- .../caniuse-lite/data/features/dialog.js | 2 +- .../data/features/dispatchevent.js | 2 +- .../caniuse-lite/data/features/dnssec.js | 2 +- .../data/features/do-not-track.js | 2 +- .../data/features/document-currentscript.js | 2 +- .../data/features/document-evaluate-xpath.js | 2 +- .../data/features/document-execcommand.js | 2 +- .../data/features/document-policy.js | 2 +- .../features/document-scrollingelement.js | 2 +- .../data/features/documenthead.js | 2 +- .../data/features/dom-manip-convenience.js | 2 +- .../caniuse-lite/data/features/dom-range.js | 2 +- .../data/features/domcontentloaded.js | 2 +- .../caniuse-lite/data/features/dommatrix.js | 2 +- .../caniuse-lite/data/features/download.js | 2 +- .../caniuse-lite/data/features/dragndrop.js | 2 +- .../data/features/element-closest.js | 2 +- .../data/features/element-from-point.js | 2 +- .../data/features/element-scroll-methods.js | 2 +- .../caniuse-lite/data/features/eme.js | 2 +- .../caniuse-lite/data/features/eot.js | 2 +- .../caniuse-lite/data/features/es5.js | 2 +- .../caniuse-lite/data/features/es6-class.js | 2 +- .../data/features/es6-generators.js | 2 +- .../features/es6-module-dynamic-import.js | 2 +- .../caniuse-lite/data/features/es6-module.js | 2 +- .../caniuse-lite/data/features/es6-number.js | 2 +- .../data/features/es6-string-includes.js | 2 +- .../caniuse-lite/data/features/es6.js | 2 +- .../caniuse-lite/data/features/eventsource.js | 2 +- .../data/features/extended-system-fonts.js | 2 +- .../data/features/feature-policy.js | 2 +- .../caniuse-lite/data/features/fetch.js | 2 +- .../data/features/fieldset-disabled.js | 2 +- .../caniuse-lite/data/features/fileapi.js | 2 +- .../caniuse-lite/data/features/filereader.js | 2 +- .../data/features/filereadersync.js | 2 +- .../caniuse-lite/data/features/filesystem.js | 2 +- .../caniuse-lite/data/features/flac.js | 2 +- .../caniuse-lite/data/features/flexbox-gap.js | 2 +- .../caniuse-lite/data/features/flexbox.js | 2 +- .../caniuse-lite/data/features/flow-root.js | 2 +- .../data/features/focusin-focusout-events.js | 2 +- .../data/features/font-family-system-ui.js | 2 +- .../data/features/font-feature.js | 2 +- .../data/features/font-kerning.js | 2 +- .../data/features/font-loading.js | 2 +- .../data/features/font-size-adjust.js | 2 +- .../caniuse-lite/data/features/font-smooth.js | 2 +- .../data/features/font-unicode-range.js | 2 +- .../data/features/font-variant-alternates.js | 2 +- .../data/features/font-variant-numeric.js | 2 +- .../caniuse-lite/data/features/fontface.js | 2 +- .../data/features/form-attribute.js | 2 +- .../data/features/form-submit-attributes.js | 2 +- .../data/features/form-validation.js | 2 +- .../caniuse-lite/data/features/forms.js | 2 +- .../caniuse-lite/data/features/fullscreen.js | 2 +- .../caniuse-lite/data/features/gamepad.js | 2 +- .../caniuse-lite/data/features/geolocation.js | 2 +- .../data/features/getboundingclientrect.js | 2 +- .../data/features/getcomputedstyle.js | 2 +- .../data/features/getelementsbyclassname.js | 2 +- .../data/features/getrandomvalues.js | 2 +- .../caniuse-lite/data/features/gyroscope.js | 2 +- .../data/features/hardwareconcurrency.js | 2 +- .../caniuse-lite/data/features/hashchange.js | 2 +- .../caniuse-lite/data/features/heif.js | 2 +- .../caniuse-lite/data/features/hevc.js | 2 +- .../caniuse-lite/data/features/hidden.js | 2 +- .../data/features/high-resolution-time.js | 2 +- .../caniuse-lite/data/features/history.js | 2 +- .../data/features/html-media-capture.js | 2 +- .../data/features/html5semantic.js | 2 +- .../data/features/http-live-streaming.js | 2 +- .../caniuse-lite/data/features/http2.js | 2 +- .../caniuse-lite/data/features/http3.js | 2 +- .../data/features/iframe-sandbox.js | 2 +- .../data/features/iframe-seamless.js | 2 +- .../data/features/iframe-srcdoc.js | 2 +- .../data/features/imagecapture.js | 2 +- .../caniuse-lite/data/features/ime.js | 2 +- .../img-naturalwidth-naturalheight.js | 2 +- .../caniuse-lite/data/features/import-maps.js | 2 +- .../caniuse-lite/data/features/imports.js | 2 +- .../data/features/indeterminate-checkbox.js | 2 +- .../caniuse-lite/data/features/indexeddb.js | 2 +- .../caniuse-lite/data/features/indexeddb2.js | 2 +- .../data/features/inline-block.js | 2 +- .../caniuse-lite/data/features/innertext.js | 2 +- .../data/features/input-autocomplete-onoff.js | 2 +- .../caniuse-lite/data/features/input-color.js | 2 +- .../data/features/input-datetime.js | 2 +- .../data/features/input-email-tel-url.js | 2 +- .../caniuse-lite/data/features/input-event.js | 2 +- .../data/features/input-file-accept.js | 2 +- .../data/features/input-file-directory.js | 2 +- .../data/features/input-file-multiple.js | 2 +- .../data/features/input-inputmode.js | 2 +- .../data/features/input-minlength.js | 2 +- .../data/features/input-number.js | 2 +- .../data/features/input-pattern.js | 2 +- .../data/features/input-placeholder.js | 2 +- .../caniuse-lite/data/features/input-range.js | 2 +- .../data/features/input-search.js | 2 +- .../data/features/input-selection.js | 2 +- .../data/features/insert-adjacent.js | 2 +- .../data/features/insertadjacenthtml.js | 2 +- .../data/features/internationalization.js | 2 +- .../data/features/intersectionobserver-v2.js | 2 +- .../data/features/intersectionobserver.js | 2 +- .../data/features/intl-pluralrules.js | 2 +- .../data/features/intrinsic-width.js | 2 +- .../caniuse-lite/data/features/jpeg2000.js | 2 +- .../caniuse-lite/data/features/jpegxl.js | 2 +- .../caniuse-lite/data/features/jpegxr.js | 2 +- .../data/features/js-regexp-lookbehind.js | 2 +- .../caniuse-lite/data/features/json.js | 2 +- .../features/justify-content-space-evenly.js | 2 +- .../data/features/kerning-pairs-ligatures.js | 2 +- .../data/features/keyboardevent-charcode.js | 2 +- .../data/features/keyboardevent-code.js | 2 +- .../keyboardevent-getmodifierstate.js | 2 +- .../data/features/keyboardevent-key.js | 2 +- .../data/features/keyboardevent-location.js | 2 +- .../data/features/keyboardevent-which.js | 2 +- .../caniuse-lite/data/features/lazyload.js | 2 +- .../caniuse-lite/data/features/let.js | 2 +- .../data/features/link-icon-png.js | 2 +- .../data/features/link-icon-svg.js | 2 +- .../data/features/link-rel-dns-prefetch.js | 2 +- .../data/features/link-rel-modulepreload.js | 2 +- .../data/features/link-rel-preconnect.js | 2 +- .../data/features/link-rel-prefetch.js | 2 +- .../data/features/link-rel-preload.js | 2 +- .../data/features/link-rel-prerender.js | 2 +- .../data/features/loading-lazy-attr.js | 2 +- .../data/features/localecompare.js | 2 +- .../data/features/magnetometer.js | 2 +- .../data/features/matchesselector.js | 2 +- .../caniuse-lite/data/features/matchmedia.js | 2 +- .../caniuse-lite/data/features/mathml.js | 2 +- .../caniuse-lite/data/features/maxlength.js | 2 +- .../mdn-css-backdrop-pseudo-element.js | 2 +- .../mdn-css-unicode-bidi-isolate-override.js | 2 +- .../features/mdn-css-unicode-bidi-isolate.js | 2 +- .../mdn-css-unicode-bidi-plaintext.js | 2 +- .../features/mdn-text-decoration-color.js | 2 +- .../data/features/mdn-text-decoration-line.js | 2 +- .../features/mdn-text-decoration-shorthand.js | 2 +- .../features/mdn-text-decoration-style.js | 2 +- .../data/features/media-fragments.js | 2 +- .../data/features/mediacapture-fromelement.js | 2 +- .../data/features/mediarecorder.js | 2 +- .../caniuse-lite/data/features/mediasource.js | 2 +- .../caniuse-lite/data/features/menu.js | 2 +- .../data/features/meta-theme-color.js | 2 +- .../caniuse-lite/data/features/meter.js | 2 +- .../caniuse-lite/data/features/midi.js | 2 +- .../caniuse-lite/data/features/minmaxwh.js | 2 +- .../caniuse-lite/data/features/mp3.js | 2 +- .../caniuse-lite/data/features/mpeg-dash.js | 2 +- .../caniuse-lite/data/features/mpeg4.js | 2 +- .../data/features/multibackgrounds.js | 2 +- .../caniuse-lite/data/features/multicolumn.js | 2 +- .../data/features/mutation-events.js | 2 +- .../data/features/mutationobserver.js | 2 +- .../data/features/namevalue-storage.js | 2 +- .../data/features/native-filesystem-api.js | 2 +- .../caniuse-lite/data/features/nav-timing.js | 2 +- .../caniuse-lite/data/features/netinfo.js | 2 +- .../data/features/notifications.js | 2 +- .../data/features/object-entries.js | 2 +- .../caniuse-lite/data/features/object-fit.js | 2 +- .../data/features/object-observe.js | 2 +- .../data/features/object-values.js | 2 +- .../caniuse-lite/data/features/objectrtc.js | 2 +- .../data/features/offline-apps.js | 2 +- .../data/features/offscreencanvas.js | 2 +- .../caniuse-lite/data/features/ogg-vorbis.js | 2 +- .../caniuse-lite/data/features/ogv.js | 2 +- .../caniuse-lite/data/features/ol-reversed.js | 2 +- .../data/features/once-event-listener.js | 2 +- .../data/features/online-status.js | 2 +- .../caniuse-lite/data/features/opus.js | 2 +- .../data/features/orientation-sensor.js | 2 +- .../caniuse-lite/data/features/outline.js | 2 +- .../data/features/pad-start-end.js | 2 +- .../data/features/page-transition-events.js | 2 +- .../data/features/pagevisibility.js | 2 +- .../data/features/passive-event-listener.js | 2 +- .../caniuse-lite/data/features/passkeys.js | 2 +- .../data/features/passwordrules.js | 2 +- .../caniuse-lite/data/features/path2d.js | 2 +- .../data/features/payment-request.js | 2 +- .../caniuse-lite/data/features/pdf-viewer.js | 2 +- .../data/features/permissions-api.js | 2 +- .../data/features/permissions-policy.js | 2 +- .../data/features/picture-in-picture.js | 2 +- .../caniuse-lite/data/features/picture.js | 2 +- .../caniuse-lite/data/features/ping.js | 2 +- .../caniuse-lite/data/features/png-alpha.js | 2 +- .../data/features/pointer-events.js | 2 +- .../caniuse-lite/data/features/pointer.js | 2 +- .../caniuse-lite/data/features/pointerlock.js | 2 +- .../caniuse-lite/data/features/portals.js | 2 +- .../data/features/prefers-color-scheme.js | 2 +- .../data/features/prefers-reduced-motion.js | 2 +- .../caniuse-lite/data/features/progress.js | 2 +- .../data/features/promise-finally.js | 2 +- .../caniuse-lite/data/features/promises.js | 2 +- .../caniuse-lite/data/features/proximity.js | 2 +- .../caniuse-lite/data/features/proxy.js | 2 +- .../data/features/publickeypinning.js | 2 +- .../caniuse-lite/data/features/push-api.js | 2 +- .../data/features/queryselector.js | 2 +- .../data/features/readonly-attr.js | 2 +- .../data/features/referrer-policy.js | 2 +- .../data/features/registerprotocolhandler.js | 2 +- .../data/features/rel-noopener.js | 2 +- .../data/features/rel-noreferrer.js | 2 +- .../caniuse-lite/data/features/rellist.js | 2 +- .../caniuse-lite/data/features/rem.js | 2 +- .../data/features/requestanimationframe.js | 2 +- .../data/features/requestidlecallback.js | 2 +- .../data/features/resizeobserver.js | 2 +- .../data/features/resource-timing.js | 2 +- .../data/features/rest-parameters.js | 2 +- .../data/features/rtcpeerconnection.js | 2 +- .../caniuse-lite/data/features/ruby.js | 2 +- .../caniuse-lite/data/features/run-in.js | 2 +- .../features/same-site-cookie-attribute.js | 2 +- .../data/features/screen-orientation.js | 2 +- .../data/features/script-async.js | 2 +- .../data/features/script-defer.js | 2 +- .../data/features/scrollintoview.js | 2 +- .../data/features/scrollintoviewifneeded.js | 2 +- .../caniuse-lite/data/features/sdch.js | 2 +- .../data/features/selection-api.js | 2 +- .../data/features/server-timing.js | 2 +- .../data/features/serviceworkers.js | 2 +- .../data/features/setimmediate.js | 2 +- .../caniuse-lite/data/features/shadowdom.js | 2 +- .../caniuse-lite/data/features/shadowdomv1.js | 2 +- .../data/features/sharedarraybuffer.js | 2 +- .../data/features/sharedworkers.js | 2 +- .../caniuse-lite/data/features/sni.js | 2 +- .../caniuse-lite/data/features/spdy.js | 2 +- .../data/features/speech-recognition.js | 2 +- .../data/features/speech-synthesis.js | 2 +- .../data/features/spellcheck-attribute.js | 2 +- .../caniuse-lite/data/features/sql-storage.js | 2 +- .../caniuse-lite/data/features/srcset.js | 2 +- .../caniuse-lite/data/features/stream.js | 2 +- .../caniuse-lite/data/features/streams.js | 2 +- .../data/features/stricttransportsecurity.js | 2 +- .../data/features/style-scoped.js | 2 +- .../data/features/subresource-bundling.js | 2 +- .../data/features/subresource-integrity.js | 2 +- .../caniuse-lite/data/features/svg-css.js | 2 +- .../caniuse-lite/data/features/svg-filters.js | 2 +- .../caniuse-lite/data/features/svg-fonts.js | 2 +- .../data/features/svg-fragment.js | 2 +- .../caniuse-lite/data/features/svg-html.js | 2 +- .../caniuse-lite/data/features/svg-html5.js | 2 +- .../caniuse-lite/data/features/svg-img.js | 2 +- .../caniuse-lite/data/features/svg-smil.js | 2 +- .../caniuse-lite/data/features/svg.js | 2 +- .../caniuse-lite/data/features/sxg.js | 2 +- .../data/features/tabindex-attr.js | 2 +- .../data/features/template-literals.js | 2 +- .../caniuse-lite/data/features/template.js | 2 +- .../caniuse-lite/data/features/temporal.js | 2 +- .../caniuse-lite/data/features/testfeat.js | 2 +- .../data/features/text-decoration.js | 2 +- .../data/features/text-emphasis.js | 2 +- .../data/features/text-overflow.js | 2 +- .../data/features/text-size-adjust.js | 2 +- .../caniuse-lite/data/features/text-stroke.js | 2 +- .../caniuse-lite/data/features/textcontent.js | 2 +- .../caniuse-lite/data/features/textencoder.js | 2 +- .../caniuse-lite/data/features/tls1-1.js | 2 +- .../caniuse-lite/data/features/tls1-2.js | 2 +- .../caniuse-lite/data/features/tls1-3.js | 2 +- .../caniuse-lite/data/features/touch.js | 2 +- .../data/features/transforms2d.js | 2 +- .../data/features/transforms3d.js | 2 +- .../data/features/trusted-types.js | 2 +- .../caniuse-lite/data/features/ttf.js | 2 +- .../caniuse-lite/data/features/typedarrays.js | 2 +- .../caniuse-lite/data/features/u2f.js | 2 +- .../data/features/unhandledrejection.js | 2 +- .../data/features/upgradeinsecurerequests.js | 2 +- .../features/url-scroll-to-text-fragment.js | 2 +- .../caniuse-lite/data/features/url.js | 2 +- .../data/features/urlsearchparams.js | 2 +- .../caniuse-lite/data/features/use-strict.js | 2 +- .../data/features/user-select-none.js | 2 +- .../caniuse-lite/data/features/user-timing.js | 2 +- .../data/features/variable-fonts.js | 2 +- .../data/features/vector-effect.js | 2 +- .../caniuse-lite/data/features/vibration.js | 2 +- .../caniuse-lite/data/features/video.js | 2 +- .../caniuse-lite/data/features/videotracks.js | 2 +- .../data/features/view-transitions.js | 2 +- .../data/features/viewport-unit-variants.js | 2 +- .../data/features/viewport-units.js | 2 +- .../caniuse-lite/data/features/wai-aria.js | 2 +- .../caniuse-lite/data/features/wake-lock.js | 2 +- .../caniuse-lite/data/features/wasm.js | 2 +- .../caniuse-lite/data/features/wav.js | 2 +- .../caniuse-lite/data/features/wbr-element.js | 2 +- .../data/features/web-animation.js | 2 +- .../data/features/web-app-manifest.js | 2 +- .../data/features/web-bluetooth.js | 2 +- .../caniuse-lite/data/features/web-serial.js | 2 +- .../caniuse-lite/data/features/web-share.js | 2 +- .../caniuse-lite/data/features/webauthn.js | 2 +- .../caniuse-lite/data/features/webcodecs.js | 2 +- .../caniuse-lite/data/features/webgl.js | 2 +- .../caniuse-lite/data/features/webgl2.js | 2 +- .../caniuse-lite/data/features/webgpu.js | 2 +- .../caniuse-lite/data/features/webhid.js | 2 +- .../data/features/webkit-user-drag.js | 2 +- .../caniuse-lite/data/features/webm.js | 2 +- .../caniuse-lite/data/features/webnfc.js | 2 +- .../caniuse-lite/data/features/webp.js | 2 +- .../caniuse-lite/data/features/websockets.js | 2 +- .../data/features/webtransport.js | 2 +- .../caniuse-lite/data/features/webusb.js | 2 +- .../caniuse-lite/data/features/webvr.js | 2 +- .../caniuse-lite/data/features/webvtt.js | 2 +- .../caniuse-lite/data/features/webworkers.js | 2 +- .../caniuse-lite/data/features/webxr.js | 2 +- .../caniuse-lite/data/features/will-change.js | 2 +- .../caniuse-lite/data/features/woff.js | 2 +- .../caniuse-lite/data/features/woff2.js | 2 +- .../caniuse-lite/data/features/word-break.js | 2 +- .../caniuse-lite/data/features/wordwrap.js | 2 +- .../data/features/x-doc-messaging.js | 2 +- .../data/features/x-frame-options.js | 2 +- .../caniuse-lite/data/features/xhr2.js | 2 +- .../caniuse-lite/data/features/xhtml.js | 2 +- .../caniuse-lite/data/features/xhtmlsmil.js | 2 +- .../data/features/xml-serializer.js | 2 +- .../caniuse-lite/data/features/zstd.js | 2 +- .../node_modules/caniuse-lite/package.json | 2 +- .../node_modules/convert-source-map/index.js | 104 +++- .../convert-source-map/package.json | 9 +- .../full-chromium-versions.js | 60 +- .../full-chromium-versions.json | 2 +- .../electron-to-chromium/full-versions.js | 36 +- .../electron-to-chromium/full-versions.json | 2 +- .../electron-to-chromium/package.json | 2 +- .../eslint-plugin-jsdoc/dist/iterateJsdoc.js | 27 +- .../dist/rules/informativeDocs.js | 16 +- .../requireDescriptionCompleteSentence.js | 2 +- .../dist/rules/requireJsdoc.js | 5 +- .../dist/rules/requireReturns.js | 56 +- .../eslint-plugin-jsdoc/package.json | 2 +- .../eslint/node_modules/flatted/package.json | 3 +- .../node_modules/flatted/php/flatted.php | 2 +- .../node_modules/flatted/python/flatted.py | 149 +++++ .../node_modules/flatted/python/test.py | 63 ++ .../eslint/node_modules/globals/globals.json | 1 + .../eslint/node_modules/globals/package.json | 2 +- .../node_modules/spdx-license-ids/index.json | 21 + .../spdx-license-ids/package.json | 6 +- .../check-npm-version.js | 2 +- .../update-browserslist-db/index.js | 33 +- .../update-browserslist-db/package.json | 2 +- tools/node_modules/eslint/package.json | 4 +- 659 files changed, 2878 insertions(+), 1261 deletions(-) create mode 100644 tools/node_modules/eslint/lib/rules/no-object-constructor.js create mode 100644 tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js create mode 100644 tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js create mode 100644 tools/node_modules/eslint/node_modules/@babel/types/lib/builders/productions.js mode change 100755 => 100644 tools/node_modules/eslint/node_modules/@types/mdast/LICENSE mode change 100755 => 100644 tools/node_modules/eslint/node_modules/@types/mdast/package.json create mode 100644 tools/node_modules/eslint/node_modules/flatted/python/flatted.py create mode 100644 tools/node_modules/eslint/node_modules/flatted/python/test.py diff --git a/test/es-module/test-esm-import-assertion-4.mjs b/test/es-module/test-esm-import-assertion-4.mjs index 547983e51f449a..1b4669ac276474 100644 --- a/test/es-module/test-esm-import-assertion-4.mjs +++ b/test/es-module/test-esm-import-assertion-4.mjs @@ -4,7 +4,7 @@ import { strictEqual } from 'assert'; import secret0 from '../fixtures/experimental.json' assert { type: 'json' }; const secret1 = await import('../fixtures/experimental.json', { assert: { type: 'json' }, - }); +}); strictEqual(secret0.ofLife, 42); strictEqual(secret1.default.ofLife, 42); diff --git a/test/es-module/test-esm-import-assertion-errors.js b/test/es-module/test-esm-import-assertion-errors.js index e2abd3fb43976d..7ed16bf24540de 100644 --- a/test/es-module/test-esm-import-assertion-errors.js +++ b/test/es-module/test-esm-import-assertion-errors.js @@ -49,7 +49,7 @@ async function test() { ); await rejects( - import(jsonModuleDataUrl, { assert: { type: 'unsupported' }}), + import(jsonModuleDataUrl, { assert: { type: 'unsupported' } }), { code: 'ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED' } ); } diff --git a/test/es-module/test-esm-import-assertion-errors.mjs b/test/es-module/test-esm-import-assertion-errors.mjs index 9cc08c06528fc6..89cf01458c0199 100644 --- a/test/es-module/test-esm-import-assertion-errors.mjs +++ b/test/es-module/test-esm-import-assertion-errors.mjs @@ -50,6 +50,6 @@ await rejects( ); await rejects( - import(jsonModuleDataUrl, { assert: { type: 'unsupported' }}), + import(jsonModuleDataUrl, { assert: { type: 'unsupported' } }), { code: 'ERR_IMPORT_ASSERTION_TYPE_UNSUPPORTED' } ); diff --git a/test/es-module/test-esm-json.mjs b/test/es-module/test-esm-json.mjs index 82232838b79150..a4c2c0c121487c 100644 --- a/test/es-module/test-esm-json.mjs +++ b/test/es-module/test-esm-json.mjs @@ -36,19 +36,19 @@ describe('ESM: importing JSON', () => { await writeFile(url, JSON.stringify({ id: i++ })); const absoluteURL = await import(`${url}`, { assert: { type: 'json' }, - }); + }); await writeFile(url, JSON.stringify({ id: i++ })); const queryString = await import(`${url}?a=2`, { assert: { type: 'json' }, - }); + }); await writeFile(url, JSON.stringify({ id: i++ })); const hash = await import(`${url}#a=2`, { assert: { type: 'json' }, - }); + }); await writeFile(url, JSON.stringify({ id: i++ })); const queryStringAndHash = await import(`${url}?a=2#a=2`, { assert: { type: 'json' }, - }); + }); assert.notDeepStrictEqual(absoluteURL, queryString); assert.notDeepStrictEqual(absoluteURL, hash); diff --git a/tools/node_modules/eslint/lib/config/flat-config-schema.js b/tools/node_modules/eslint/lib/config/flat-config-schema.js index 3922e8a94fe7bd..a79c02d663b5a4 100644 --- a/tools/node_modules/eslint/lib/config/flat-config-schema.js +++ b/tools/node_modules/eslint/lib/config/flat-config-schema.js @@ -507,7 +507,7 @@ const eslintrcKeys = [ // Full schema //----------------------------------------------------------------------------- -exports.flatConfigSchema = { +const flatConfigSchema = { // eslintrc-style keys that should always error ...Object.fromEntries(eslintrcKeys.map(key => [key, createEslintrcErrorSchema(key)])), @@ -533,3 +533,13 @@ exports.flatConfigSchema = { plugins: pluginsSchema, rules: rulesSchema }; + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +module.exports = { + flatConfigSchema, + assertIsRuleSeverity, + assertIsRuleOptions +}; diff --git a/tools/node_modules/eslint/lib/linter/linter.js b/tools/node_modules/eslint/lib/linter/linter.js index 48b2bdbe5c3919..e195812e513a21 100644 --- a/tools/node_modules/eslint/lib/linter/linter.js +++ b/tools/node_modules/eslint/lib/linter/linter.js @@ -42,7 +42,8 @@ const ruleReplacements = require("../../conf/replacements.json"); const { getRuleFromConfig } = require("../config/flat-config-helpers"); const { FlatConfigArray } = require("../config/flat-config-array"); - +const { RuleValidator } = require("../config/rule-validator"); +const { assertIsRuleOptions, assertIsRuleSeverity } = require("../config/flat-config-schema"); const debug = require("debug")("eslint:linter"); const MAX_AUTOFIX_PASSES = 10; const DEFAULT_PARSER_NAME = "espree"; @@ -50,7 +51,6 @@ const DEFAULT_ECMA_VERSION = 5; const commentParser = new ConfigCommentParser(); const DEFAULT_ERROR_LOC = { start: { line: 1, column: 0 }, end: { line: 1, column: 1 } }; const parserSymbol = Symbol.for("eslint.RuleTester.parser"); -const globals = require("../../conf/globals"); //------------------------------------------------------------------------------ // Typedefs @@ -145,29 +145,6 @@ function isEspree(parser) { return !!(parser === espree || parser[parserSymbol] === espree); } -/** - * Retrieves globals for the given ecmaVersion. - * @param {number} ecmaVersion The version to retrieve globals for. - * @returns {Object} The globals for the given ecmaVersion. - */ -function getGlobalsForEcmaVersion(ecmaVersion) { - - switch (ecmaVersion) { - case 3: - return globals.es3; - - case 5: - return globals.es5; - - default: - if (ecmaVersion < 2015) { - return globals[`es${ecmaVersion + 2009}`]; - } - - return globals[`es${ecmaVersion}`]; - } -} - /** * Ensures that variables representing built-in properties of the Global Object, * and any globals declared by special block comments, are present in the global @@ -361,13 +338,13 @@ function extractDirectiveComment(value) { * Parses comments in file to extract file-specific config of rules, globals * and environments and merges them with global config; also code blocks * where reporting is disabled or enabled and merges them with reporting config. - * @param {ASTNode} ast The top node of the AST. + * @param {SourceCode} sourceCode The SourceCode object to get comments from. * @param {function(string): {create: Function}} ruleMapper A map from rule IDs to defined rules * @param {string|null} warnInlineConfig If a string then it should warn directive comments as disabled. The string value is the config name what the setting came from. * @returns {{configuredRules: Object, enabledGlobals: {value:string,comment:Token}[], exportedVariables: Object, problems: LintMessage[], disableDirectives: DisableDirective[]}} * A collection of the directive comments that were found, along with any problems that occurred when parsing */ -function getDirectiveComments(ast, ruleMapper, warnInlineConfig) { +function getDirectiveComments(sourceCode, ruleMapper, warnInlineConfig) { const configuredRules = {}; const enabledGlobals = Object.create(null); const exportedVariables = {}; @@ -377,7 +354,7 @@ function getDirectiveComments(ast, ruleMapper, warnInlineConfig) { builtInRules: Rules }); - ast.comments.filter(token => token.type !== "Shebang").forEach(comment => { + sourceCode.getInlineConfigNodes().filter(token => token.type !== "Shebang").forEach(comment => { const { directivePart, justificationPart } = extractDirectiveComment(comment.value); const match = directivesPattern.exec(directivePart); @@ -511,6 +488,69 @@ function getDirectiveComments(ast, ruleMapper, warnInlineConfig) { }; } +/** + * Parses comments in file to extract disable directives. + * @param {SourceCode} sourceCode The SourceCode object to get comments from. + * @param {function(string): {create: Function}} ruleMapper A map from rule IDs to defined rules + * @returns {{problems: LintMessage[], disableDirectives: DisableDirective[]}} + * A collection of the directive comments that were found, along with any problems that occurred when parsing + */ +function getDirectiveCommentsForFlatConfig(sourceCode, ruleMapper) { + const problems = []; + const disableDirectives = []; + + sourceCode.getInlineConfigNodes().filter(token => token.type !== "Shebang").forEach(comment => { + const { directivePart, justificationPart } = extractDirectiveComment(comment.value); + + const match = directivesPattern.exec(directivePart); + + if (!match) { + return; + } + const directiveText = match[1]; + const lineCommentSupported = /^eslint-disable-(next-)?line$/u.test(directiveText); + + if (comment.type === "Line" && !lineCommentSupported) { + return; + } + + if (directiveText === "eslint-disable-line" && comment.loc.start.line !== comment.loc.end.line) { + const message = `${directiveText} comment should not span multiple lines.`; + + problems.push(createLintingProblem({ + ruleId: null, + message, + loc: comment.loc + })); + return; + } + + const directiveValue = directivePart.slice(match.index + directiveText.length); + + switch (directiveText) { + case "eslint-disable": + case "eslint-enable": + case "eslint-disable-next-line": + case "eslint-disable-line": { + const directiveType = directiveText.slice("eslint-".length); + const options = { commentToken: comment, type: directiveType, value: directiveValue, justification: justificationPart, ruleMapper }; + const { directives, directiveProblems } = createDisableDirectives(options); + + disableDirectives.push(...directives); + problems.push(...directiveProblems); + break; + } + + // no default + } + }); + + return { + problems, + disableDirectives + }; +} + /** * Normalize ECMAScript version from the initial config * @param {Parser} parser The parser which uses this options. @@ -1313,7 +1353,7 @@ class Linter { const sourceCode = slots.lastSourceCode; const commentDirectives = options.allowInlineConfig - ? getDirectiveComments(sourceCode.ast, ruleId => getRule(slots, ruleId), options.warnInlineConfig) + ? getDirectiveComments(sourceCode, ruleId => getRule(slots, ruleId), options.warnInlineConfig) : { configuredRules: {}, enabledGlobals: {}, exportedVariables: {}, problems: [], disableDirectives: [] }; // augment global scope with declared global variables @@ -1324,7 +1364,6 @@ class Linter { ); const configuredRules = Object.assign({}, config.rules, commentDirectives.configuredRules); - let lintingProblems; try { @@ -1540,19 +1579,6 @@ class Linter { languageOptions.ecmaVersion ); - /* - * add configured globals and language globals - * - * using Object.assign instead of object spread for performance reasons - * https://github.com/eslint/eslint/issues/16302 - */ - const configuredGlobals = Object.assign( - {}, - getGlobalsForEcmaVersion(languageOptions.ecmaVersion), - languageOptions.sourceType === "commonjs" ? globals.commonjs : void 0, - languageOptions.globals - ); - // double check that there is a parser to avoid mysterious error messages if (!languageOptions.parser) { throw new TypeError(`No parser specified for ${options.filename}`); @@ -1608,25 +1634,113 @@ class Linter { } const sourceCode = slots.lastSourceCode; - const commentDirectives = options.allowInlineConfig - ? getDirectiveComments( - sourceCode.ast, - ruleId => getRuleFromConfig(ruleId, config), - options.warnInlineConfig - ) - : { configuredRules: {}, enabledGlobals: {}, exportedVariables: {}, problems: [], disableDirectives: [] }; - // augment global scope with declared global variables - addDeclaredGlobals( - sourceCode.scopeManager.scopes[0], - configuredGlobals, - { exportedVariables: commentDirectives.exportedVariables, enabledGlobals: commentDirectives.enabledGlobals } - ); + /* + * Make adjustments based on the language options. For JavaScript, + * this is primarily about adding variables into the global scope + * to account for ecmaVersion and configured globals. + */ + sourceCode.applyLanguageOptions(languageOptions); - const configuredRules = Object.assign({}, config.rules, commentDirectives.configuredRules); + const mergedInlineConfig = { + rules: {} + }; + const inlineConfigProblems = []; + + /* + * Inline config can be either enabled or disabled. If disabled, it's possible + * to detect the inline config and emit a warning (though this is not required). + * So we first check to see if inline config is allowed at all, and if so, we + * need to check if it's a warning or not. + */ + if (options.allowInlineConfig) { + + // if inline config should warn then add the warnings + if (options.warnInlineConfig) { + sourceCode.getInlineConfigNodes().forEach(node => { + inlineConfigProblems.push(createLintingProblem({ + ruleId: null, + message: `'${sourceCode.text.slice(node.range[0], node.range[1])}' has no effect because you have 'noInlineConfig' setting in ${options.warnInlineConfig}.`, + loc: node.loc, + severity: 1 + })); + + }); + } else { + const inlineConfigResult = sourceCode.applyInlineConfig(); + + inlineConfigProblems.push( + ...inlineConfigResult.problems + .map(createLintingProblem) + .map(problem => { + problem.fatal = true; + return problem; + }) + ); + + // next we need to verify information about the specified rules + const ruleValidator = new RuleValidator(); + + for (const { config: inlineConfig, node } of inlineConfigResult.configs) { + + Object.keys(inlineConfig.rules).forEach(ruleId => { + const rule = getRuleFromConfig(ruleId, config); + const ruleValue = inlineConfig.rules[ruleId]; + + if (!rule) { + inlineConfigProblems.push(createLintingProblem({ ruleId, loc: node.loc })); + return; + } + + try { + + const ruleOptions = Array.isArray(ruleValue) ? ruleValue : [ruleValue]; + + assertIsRuleOptions(ruleId, ruleValue); + assertIsRuleSeverity(ruleId, ruleOptions[0]); + + ruleValidator.validate({ + plugins: config.plugins, + rules: { + [ruleId]: ruleOptions + } + }); + mergedInlineConfig.rules[ruleId] = ruleValue; + } catch (err) { + + let baseMessage = err.message.slice( + err.message.startsWith("Key \"rules\":") + ? err.message.indexOf(":", 12) + 1 + : err.message.indexOf(":") + 1 + ).trim(); + + if (err.messageTemplate) { + baseMessage += ` You passed "${ruleValue}".`; + } + + inlineConfigProblems.push(createLintingProblem({ + ruleId, + message: `Inline configuration for rule "${ruleId}" is invalid:\n\t${baseMessage}\n`, + loc: node.loc + })); + } + }); + } + } + } + const commentDirectives = options.allowInlineConfig && !options.warnInlineConfig + ? getDirectiveCommentsForFlatConfig( + sourceCode, + ruleId => getRuleFromConfig(ruleId, config) + ) + : { problems: [], disableDirectives: [] }; + + const configuredRules = Object.assign({}, config.rules, mergedInlineConfig.rules); let lintingProblems; + sourceCode.finalize(); + try { lintingProblems = runRules( sourceCode, @@ -1667,6 +1781,7 @@ class Linter { disableFixes: options.disableFixes, problems: lintingProblems .concat(commentDirectives.problems) + .concat(inlineConfigProblems) .sort((problemA, problemB) => problemA.line - problemB.line || problemA.column - problemB.column), reportUnusedDisableDirectives: options.reportUnusedDisableDirectives }); diff --git a/tools/node_modules/eslint/lib/rule-tester/flat-rule-tester.js b/tools/node_modules/eslint/lib/rule-tester/flat-rule-tester.js index d5f5981e67ee08..51cb73b5f8023d 100644 --- a/tools/node_modules/eslint/lib/rule-tester/flat-rule-tester.js +++ b/tools/node_modules/eslint/lib/rule-tester/flat-rule-tester.js @@ -133,6 +133,15 @@ const suggestionObjectParameters = new Set([ ]); const friendlySuggestionObjectParameterList = `[${[...suggestionObjectParameters].map(key => `'${key}'`).join(", ")}]`; +const forbiddenMethods = [ + "applyInlineConfig", + "applyLanguageOptions", + "finalize" +]; + +/** @type {Map} */ +const forbiddenMethodCalls = new Map(forbiddenMethods.map(methodName => ([methodName, new WeakSet()]))); + const hasOwnProperty = Function.call.bind(Object.hasOwnProperty); /** @@ -291,6 +300,34 @@ function emitCodePathCurrentSegmentsWarning(ruleName) { } } +/** + * Function to replace forbidden `SourceCode` methods. Allows just one call per method. + * @param {string} methodName The name of the method to forbid. + * @param {Function} prototype The prototype with the original method to call. + * @returns {Function} The function that throws the error. + */ +function throwForbiddenMethodError(methodName, prototype) { + + const original = prototype[methodName]; + + return function(...args) { + + const called = forbiddenMethodCalls.get(methodName); + + /* eslint-disable no-invalid-this -- needed to operate as a method. */ + if (!called.has(this)) { + called.add(this); + + return original.apply(this, args); + } + /* eslint-enable no-invalid-this -- not needed past this point */ + + throw new Error( + `\`SourceCode#${methodName}()\` cannot be called inside a rule.` + ); + }; +} + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ @@ -498,6 +535,7 @@ class FlatRuleTester { } const baseConfig = [ + { files: ["**"] }, // Make sure the default config matches for all files { plugins: { @@ -679,11 +717,6 @@ class FlatRuleTester { } } - // Verify the code. - const { getComments } = SourceCode.prototype; - const originalCurrentSegments = Object.getOwnPropertyDescriptor(CodePath.prototype, "currentSegments"); - let messages; - // check for validation errors try { configs.normalizeSync(); @@ -693,6 +726,11 @@ class FlatRuleTester { throw error; } + // Verify the code. + const { getComments, applyLanguageOptions, applyInlineConfig, finalize } = SourceCode.prototype; + const originalCurrentSegments = Object.getOwnPropertyDescriptor(CodePath.prototype, "currentSegments"); + let messages; + try { SourceCode.prototype.getComments = getCommentsDeprecation; Object.defineProperty(CodePath.prototype, "currentSegments", { @@ -702,10 +740,17 @@ class FlatRuleTester { } }); + forbiddenMethods.forEach(methodName => { + SourceCode.prototype[methodName] = throwForbiddenMethodError(methodName, SourceCode.prototype); + }); + messages = linter.verify(code, configs, filename); } finally { SourceCode.prototype.getComments = getComments; Object.defineProperty(CodePath.prototype, "currentSegments", originalCurrentSegments); + SourceCode.prototype.applyInlineConfig = applyInlineConfig; + SourceCode.prototype.applyLanguageOptions = applyLanguageOptions; + SourceCode.prototype.finalize = finalize; } diff --git a/tools/node_modules/eslint/lib/rule-tester/rule-tester.js b/tools/node_modules/eslint/lib/rule-tester/rule-tester.js index 82d79790a31640..3bc80ab1837a6f 100644 --- a/tools/node_modules/eslint/lib/rule-tester/rule-tester.js +++ b/tools/node_modules/eslint/lib/rule-tester/rule-tester.js @@ -163,6 +163,12 @@ const suggestionObjectParameters = new Set([ ]); const friendlySuggestionObjectParameterList = `[${[...suggestionObjectParameters].map(key => `'${key}'`).join(", ")}]`; +const forbiddenMethods = [ + "applyInlineConfig", + "applyLanguageOptions", + "finalize" +]; + const hasOwnProperty = Function.call.bind(Object.hasOwnProperty); const DEPRECATED_SOURCECODE_PASSTHROUGHS = { @@ -186,7 +192,12 @@ const DEPRECATED_SOURCECODE_PASSTHROUGHS = { getTokens: "getTokens", getTokensAfter: "getTokensAfter", getTokensBefore: "getTokensBefore", - getTokensBetween: "getTokensBetween" + getTokensBetween: "getTokensBetween", + + getScope: "getScope", + getAncestors: "getAncestors", + getDeclaredVariables: "getDeclaredVariables", + markVariableAsUsed: "markVariableAsUsed" }; /** @@ -330,6 +341,19 @@ function getCommentsDeprecation() { ); } +/** + * Function to replace forbidden `SourceCode` methods. + * @param {string} methodName The name of the method to forbid. + * @returns {Function} The function that throws the error. + */ +function throwForbiddenMethodError(methodName) { + return () => { + throw new Error( + `\`SourceCode#${methodName}()\` cannot be called inside a rule.` + ); + }; +} + /** * Emit a deprecation warning if function-style format is being used. * @param {string} ruleName Name of the rule. @@ -391,6 +415,22 @@ function emitCodePathCurrentSegmentsWarning(ruleName) { } } +/** + * Emit a deprecation warning if `context.parserServices` is used. + * @param {string} ruleName Name of the rule. + * @returns {void} + */ +function emitParserServicesWarning(ruleName) { + if (!emitParserServicesWarning[`warned-${ruleName}`]) { + emitParserServicesWarning[`warned-${ruleName}`] = true; + process.emitWarning( + `"${ruleName}" rule is using \`context.parserServices\`, which is deprecated and will be removed in ESLint v9. Please use \`sourceCode.parserServices\` instead.`, + "DeprecationWarning" + ); + } +} + + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ @@ -622,26 +662,37 @@ class RuleTester { freezeDeeply(context.settings); freezeDeeply(context.parserOptions); - const newContext = Object.freeze( - Object.create( - context, - Object.fromEntries(Object.keys(DEPRECATED_SOURCECODE_PASSTHROUGHS).map(methodName => [ - methodName, - { - value(...args) { - - // emit deprecation warning - emitDeprecatedContextMethodWarning(ruleName, methodName); - - // call the original method - return context[methodName].call(this, ...args); - }, - enumerable: true - } - ])) - ) + // wrap all deprecated methods + const newContext = Object.create( + context, + Object.fromEntries(Object.keys(DEPRECATED_SOURCECODE_PASSTHROUGHS).map(methodName => [ + methodName, + { + value(...args) { + + // emit deprecation warning + emitDeprecatedContextMethodWarning(ruleName, methodName); + + // call the original method + return context[methodName].call(this, ...args); + }, + enumerable: true + } + ])) ); + // emit warning about context.parserServices + const parserServices = context.parserServices; + + Object.defineProperty(newContext, "parserServices", { + get() { + emitParserServicesWarning(ruleName); + return parserServices; + } + }); + + Object.freeze(newContext); + return (typeof rule === "function" ? rule : rule.create)(newContext); } })); @@ -761,7 +812,7 @@ class RuleTester { validate(config, "rule-tester", id => (id === ruleName ? rule : null)); // Verify the code. - const { getComments } = SourceCode.prototype; + const { getComments, applyLanguageOptions, applyInlineConfig, finalize } = SourceCode.prototype; const originalCurrentSegments = Object.getOwnPropertyDescriptor(CodePath.prototype, "currentSegments"); let messages; @@ -774,10 +825,17 @@ class RuleTester { } }); + forbiddenMethods.forEach(methodName => { + SourceCode.prototype[methodName] = throwForbiddenMethodError(methodName); + }); + messages = linter.verify(code, config, filename); } finally { SourceCode.prototype.getComments = getComments; Object.defineProperty(CodePath.prototype, "currentSegments", originalCurrentSegments); + SourceCode.prototype.applyInlineConfig = applyInlineConfig; + SourceCode.prototype.applyLanguageOptions = applyLanguageOptions; + SourceCode.prototype.finalize = finalize; } const fatalErrorMessage = messages.find(m => m.fatal); diff --git a/tools/node_modules/eslint/lib/rules/array-callback-return.js b/tools/node_modules/eslint/lib/rules/array-callback-return.js index 24a33d16c997df..6d8f258fa140f2 100644 --- a/tools/node_modules/eslint/lib/rules/array-callback-return.js +++ b/tools/node_modules/eslint/lib/rules/array-callback-return.js @@ -136,6 +136,76 @@ function getArrayMethodName(node) { return null; } +/** + * Checks if the given node is a void expression. + * @param {ASTNode} node The node to check. + * @returns {boolean} - `true` if the node is a void expression + */ +function isExpressionVoid(node) { + return node.type === "UnaryExpression" && node.operator === "void"; +} + +/** + * Fixes the linting error by prepending "void " to the given node + * @param {Object} sourceCode context given by context.sourceCode + * @param {ASTNode} node The node to fix. + * @param {Object} fixer The fixer object provided by ESLint. + * @returns {Array} - An array of fix objects to apply to the node. + */ +function voidPrependFixer(sourceCode, node, fixer) { + + const requiresParens = + + // prepending `void ` will fail if the node has a lower precedence than void + astUtils.getPrecedence(node) < astUtils.getPrecedence({ type: "UnaryExpression", operator: "void" }) && + + // check if there are parentheses around the node to avoid redundant parentheses + !astUtils.isParenthesised(sourceCode, node); + + // avoid parentheses issues + const returnOrArrowToken = sourceCode.getTokenBefore( + node, + node.parent.type === "ArrowFunctionExpression" + ? astUtils.isArrowToken + + // isReturnToken + : token => token.type === "Keyword" && token.value === "return" + ); + + const firstToken = sourceCode.getTokenAfter(returnOrArrowToken); + + const prependSpace = + + // is return token, as => allows void to be adjacent + returnOrArrowToken.value === "return" && + + // If two tokens (return and "(") are adjacent + returnOrArrowToken.range[1] === firstToken.range[0]; + + return [ + fixer.insertTextBefore(firstToken, `${prependSpace ? " " : ""}void ${requiresParens ? "(" : ""}`), + fixer.insertTextAfter(node, requiresParens ? ")" : "") + ]; +} + +/** + * Fixes the linting error by `wrapping {}` around the given node's body. + * @param {Object} sourceCode context given by context.sourceCode + * @param {ASTNode} node The node to fix. + * @param {Object} fixer The fixer object provided by ESLint. + * @returns {Array} - An array of fix objects to apply to the node. + */ +function curlyWrapFixer(sourceCode, node, fixer) { + const arrowToken = sourceCode.getTokenBefore(node.body, astUtils.isArrowToken); + const firstToken = sourceCode.getTokenAfter(arrowToken); + const lastToken = sourceCode.getLastToken(node); + + return [ + fixer.insertTextBefore(firstToken, "{"), + fixer.insertTextAfter(lastToken, "}") + ]; +} + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -151,6 +221,9 @@ module.exports = { url: "https://eslint.org/docs/latest/rules/array-callback-return" }, + // eslint-disable-next-line eslint-plugin/require-meta-has-suggestions -- false positive + hasSuggestions: true, + schema: [ { type: "object", @@ -162,6 +235,10 @@ module.exports = { checkForEach: { type: "boolean", default: false + }, + allowVoid: { + type: "boolean", + default: false } }, additionalProperties: false @@ -172,13 +249,15 @@ module.exports = { expectedAtEnd: "{{arrayMethodName}}() expects a value to be returned at the end of {{name}}.", expectedInside: "{{arrayMethodName}}() expects a return value from {{name}}.", expectedReturnValue: "{{arrayMethodName}}() expects a return value from {{name}}.", - expectedNoReturnValue: "{{arrayMethodName}}() expects no useless return value from {{name}}." + expectedNoReturnValue: "{{arrayMethodName}}() expects no useless return value from {{name}}.", + wrapBraces: "Wrap the expression in `{}`.", + prependVoid: "Prepend `void` to the expression." } }, create(context) { - const options = context.options[0] || { allowImplicit: false, checkForEach: false }; + const options = context.options[0] || { allowImplicit: false, checkForEach: false, allowVoid: false }; const sourceCode = context.sourceCode; let funcInfo = { @@ -205,26 +284,56 @@ module.exports = { return; } - let messageId = null; + const messageAndSuggestions = { messageId: "", suggest: [] }; if (funcInfo.arrayMethodName === "forEach") { if (options.checkForEach && node.type === "ArrowFunctionExpression" && node.expression) { - messageId = "expectedNoReturnValue"; + + if (options.allowVoid) { + if (isExpressionVoid(node.body)) { + return; + } + + messageAndSuggestions.messageId = "expectedNoReturnValue"; + messageAndSuggestions.suggest = [ + { + messageId: "wrapBraces", + fix(fixer) { + return curlyWrapFixer(sourceCode, node, fixer); + } + }, + { + messageId: "prependVoid", + fix(fixer) { + return voidPrependFixer(sourceCode, node.body, fixer); + } + } + ]; + } else { + messageAndSuggestions.messageId = "expectedNoReturnValue"; + messageAndSuggestions.suggest = [{ + messageId: "wrapBraces", + fix(fixer) { + return curlyWrapFixer(sourceCode, node, fixer); + } + }]; + } } } else { if (node.body.type === "BlockStatement" && isAnySegmentReachable(funcInfo.currentSegments)) { - messageId = funcInfo.hasReturn ? "expectedAtEnd" : "expectedInside"; + messageAndSuggestions.messageId = funcInfo.hasReturn ? "expectedAtEnd" : "expectedInside"; } } - if (messageId) { + if (messageAndSuggestions.messageId) { const name = astUtils.getFunctionNameWithKind(node); context.report({ node, loc: astUtils.getFunctionHeadLoc(node, sourceCode), - messageId, - data: { name, arrayMethodName: fullMethodName(funcInfo.arrayMethodName) } + messageId: messageAndSuggestions.messageId, + data: { name, arrayMethodName: fullMethodName(funcInfo.arrayMethodName) }, + suggest: messageAndSuggestions.suggest.length !== 0 ? messageAndSuggestions.suggest : null }); } } @@ -285,30 +394,46 @@ module.exports = { funcInfo.hasReturn = true; - let messageId = null; + const messageAndSuggestions = { messageId: "", suggest: [] }; if (funcInfo.arrayMethodName === "forEach") { // if checkForEach: true, returning a value at any path inside a forEach is not allowed if (options.checkForEach && node.argument) { - messageId = "expectedNoReturnValue"; + + if (options.allowVoid) { + if (isExpressionVoid(node.argument)) { + return; + } + + messageAndSuggestions.messageId = "expectedNoReturnValue"; + messageAndSuggestions.suggest = [{ + messageId: "prependVoid", + fix(fixer) { + return voidPrependFixer(sourceCode, node.argument, fixer); + } + }]; + } else { + messageAndSuggestions.messageId = "expectedNoReturnValue"; + } } } else { // if allowImplicit: false, should also check node.argument if (!options.allowImplicit && !node.argument) { - messageId = "expectedReturnValue"; + messageAndSuggestions.messageId = "expectedReturnValue"; } } - if (messageId) { + if (messageAndSuggestions.messageId) { context.report({ node, - messageId, + messageId: messageAndSuggestions.messageId, data: { name: astUtils.getFunctionNameWithKind(funcInfo.node), arrayMethodName: fullMethodName(funcInfo.arrayMethodName) - } + }, + suggest: messageAndSuggestions.suggest.length !== 0 ? messageAndSuggestions.suggest : null }); } }, diff --git a/tools/node_modules/eslint/lib/rules/index.js b/tools/node_modules/eslint/lib/rules/index.js index e42639656f7320..840abe73b0fbfe 100644 --- a/tools/node_modules/eslint/lib/rules/index.js +++ b/tools/node_modules/eslint/lib/rules/index.js @@ -175,6 +175,7 @@ module.exports = new LazyLoadingRuleMap(Object.entries({ "no-new-wrappers": () => require("./no-new-wrappers"), "no-nonoctal-decimal-escape": () => require("./no-nonoctal-decimal-escape"), "no-obj-calls": () => require("./no-obj-calls"), + "no-object-constructor": () => require("./no-object-constructor"), "no-octal": () => require("./no-octal"), "no-octal-escape": () => require("./no-octal-escape"), "no-param-reassign": () => require("./no-param-reassign"), diff --git a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js index 99aa9404868f6c..20591df2cc9952 100644 --- a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js +++ b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js @@ -13,27 +13,34 @@ const { isValidWithUnicodeFlag } = require("./utils/regular-expressions"); // Helpers //------------------------------------------------------------------------------ +/** + * @typedef {import('@eslint-community/regexpp').AST.Character} Character + * @typedef {import('@eslint-community/regexpp').AST.CharacterClassElement} CharacterClassElement + */ + /** * Iterate character sequences of a given nodes. * * CharacterClassRange syntax can steal a part of character sequence, * so this function reverts CharacterClassRange syntax and restore the sequence. - * @param {import('@eslint-community/regexpp').AST.CharacterClassElement[]} nodes The node list to iterate character sequences. - * @returns {IterableIterator} The list of character sequences. + * @param {CharacterClassElement[]} nodes The node list to iterate character sequences. + * @returns {IterableIterator} The list of character sequences. */ function *iterateCharacterSequence(nodes) { + + /** @type {Character[]} */ let seq = []; for (const node of nodes) { switch (node.type) { case "Character": - seq.push(node.value); + seq.push(node); break; case "CharacterClassRange": - seq.push(node.min.value); + seq.push(node.min); yield seq; - seq = [node.max.value]; + seq = [node.max]; break; case "CharacterSet": @@ -55,32 +62,74 @@ function *iterateCharacterSequence(nodes) { } } + +/** + * Checks whether the given character node is a Unicode code point escape or not. + * @param {Character} char the character node to check. + * @returns {boolean} `true` if the character node is a Unicode code point escape. + */ +function isUnicodeCodePointEscape(char) { + return /^\\u\{[\da-f]+\}$/iu.test(char.raw); +} + +/** + * Each function returns `true` if it detects that kind of problem. + * @type {Record boolean>} + */ const hasCharacterSequence = { surrogatePairWithoutUFlag(chars) { - return chars.some((c, i) => i !== 0 && isSurrogatePair(chars[i - 1], c)); + return chars.some((c, i) => { + if (i === 0) { + return false; + } + const c1 = chars[i - 1]; + + return ( + isSurrogatePair(c1.value, c.value) && + !isUnicodeCodePointEscape(c1) && + !isUnicodeCodePointEscape(c) + ); + }); + }, + + surrogatePair(chars) { + return chars.some((c, i) => { + if (i === 0) { + return false; + } + const c1 = chars[i - 1]; + + return ( + isSurrogatePair(c1.value, c.value) && + ( + isUnicodeCodePointEscape(c1) || + isUnicodeCodePointEscape(c) + ) + ); + }); }, combiningClass(chars) { return chars.some((c, i) => ( i !== 0 && - isCombiningCharacter(c) && - !isCombiningCharacter(chars[i - 1]) + isCombiningCharacter(c.value) && + !isCombiningCharacter(chars[i - 1].value) )); }, emojiModifier(chars) { return chars.some((c, i) => ( i !== 0 && - isEmojiModifier(c) && - !isEmojiModifier(chars[i - 1]) + isEmojiModifier(c.value) && + !isEmojiModifier(chars[i - 1].value) )); }, regionalIndicatorSymbol(chars) { return chars.some((c, i) => ( i !== 0 && - isRegionalIndicatorSymbol(c) && - isRegionalIndicatorSymbol(chars[i - 1]) + isRegionalIndicatorSymbol(c.value) && + isRegionalIndicatorSymbol(chars[i - 1].value) )); }, @@ -90,9 +139,9 @@ const hasCharacterSequence = { return chars.some((c, i) => ( i !== 0 && i !== lastIndex && - c === 0x200d && - chars[i - 1] !== 0x200d && - chars[i + 1] !== 0x200d + c.value === 0x200d && + chars[i - 1].value !== 0x200d && + chars[i + 1].value !== 0x200d )); } }; @@ -120,6 +169,7 @@ module.exports = { messages: { surrogatePairWithoutUFlag: "Unexpected surrogate pair in character class. Use 'u' flag.", + surrogatePair: "Unexpected surrogate pair in character class.", combiningClass: "Unexpected combined character in character class.", emojiModifier: "Unexpected modified Emoji in character class.", regionalIndicatorSymbol: "Unexpected national flag in character class.", diff --git a/tools/node_modules/eslint/lib/rules/no-new-object.js b/tools/node_modules/eslint/lib/rules/no-new-object.js index 08a482be715034..06275f47125134 100644 --- a/tools/node_modules/eslint/lib/rules/no-new-object.js +++ b/tools/node_modules/eslint/lib/rules/no-new-object.js @@ -1,6 +1,7 @@ /** * @fileoverview A rule to disallow calls to the Object constructor * @author Matt DuVall + * @deprecated in ESLint v8.50.0 */ "use strict"; @@ -26,6 +27,12 @@ module.exports = { url: "https://eslint.org/docs/latest/rules/no-new-object" }, + deprecated: true, + + replacedBy: [ + "no-object-constructor" + ], + schema: [], messages: { diff --git a/tools/node_modules/eslint/lib/rules/no-object-constructor.js b/tools/node_modules/eslint/lib/rules/no-object-constructor.js new file mode 100644 index 00000000000000..1299779f7ec843 --- /dev/null +++ b/tools/node_modules/eslint/lib/rules/no-object-constructor.js @@ -0,0 +1,118 @@ +/** + * @fileoverview Rule to disallow calls to the `Object` constructor without an argument + * @author Francesco Trotta + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const { getVariableByName, isArrowToken } = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Tests if a node appears at the beginning of an ancestor ExpressionStatement node. + * @param {ASTNode} node The node to check. + * @returns {boolean} Whether the node appears at the beginning of an ancestor ExpressionStatement node. + */ +function isStartOfExpressionStatement(node) { + const start = node.range[0]; + let ancestor = node; + + while ((ancestor = ancestor.parent) && ancestor.range[0] === start) { + if (ancestor.type === "ExpressionStatement") { + return true; + } + } + return false; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "Disallow calls to the `Object` constructor without an argument", + recommended: false, + url: "https://eslint.org/docs/latest/rules/no-object-constructor" + }, + + hasSuggestions: true, + + schema: [], + + messages: { + preferLiteral: "The object literal notation {} is preferable.", + useLiteral: "Replace with '{{replacement}}'." + } + }, + + create(context) { + + const sourceCode = context.sourceCode; + + /** + * Determines whether or not an object literal that replaces a specified node needs to be enclosed in parentheses. + * @param {ASTNode} node The node to be replaced. + * @returns {boolean} Whether or not parentheses around the object literal are required. + */ + function needsParentheses(node) { + if (isStartOfExpressionStatement(node)) { + return true; + } + + const prevToken = sourceCode.getTokenBefore(node); + + if (prevToken && isArrowToken(prevToken)) { + return true; + } + + return false; + } + + /** + * Reports on nodes where the `Object` constructor is called without arguments. + * @param {ASTNode} node The node to evaluate. + * @returns {void} + */ + function check(node) { + if (node.callee.type !== "Identifier" || node.callee.name !== "Object" || node.arguments.length) { + return; + } + + const variable = getVariableByName(sourceCode.getScope(node), "Object"); + + if (variable && variable.identifiers.length === 0) { + const replacement = needsParentheses(node) ? "({})" : "{}"; + + context.report({ + node, + messageId: "preferLiteral", + suggest: [ + { + messageId: "useLiteral", + data: { replacement }, + fix: fixer => fixer.replaceText(node, replacement) + } + ] + }); + } + } + + return { + CallExpression: check, + NewExpression: check + }; + + } +}; diff --git a/tools/node_modules/eslint/lib/source-code/source-code.js b/tools/node_modules/eslint/lib/source-code/source-code.js index 07c0d294829989..4bbd5ae3a5cb69 100644 --- a/tools/node_modules/eslint/lib/source-code/source-code.js +++ b/tools/node_modules/eslint/lib/source-code/source-code.js @@ -12,7 +12,15 @@ const { isCommentToken } = require("@eslint-community/eslint-utils"), TokenStore = require("./token-store"), astUtils = require("../shared/ast-utils"), - Traverser = require("../shared/traverser"); + Traverser = require("../shared/traverser"), + globals = require("../../conf/globals"), + { + directivesPattern + } = require("../shared/directives"), + + /* eslint-disable-next-line n/no-restricted-require -- Too messy to figure out right now. */ + ConfigCommentParser = require("../linter/config-comment-parser"), + eslintScope = require("eslint-scope"); //------------------------------------------------------------------------------ // Type Definitions @@ -24,6 +32,8 @@ const // Private //------------------------------------------------------------------------------ +const commentParser = new ConfigCommentParser(); + /** * Validates that the given AST has the required information. * @param {ASTNode} ast The Program node of the AST to check. @@ -49,6 +59,29 @@ function validate(ast) { } } +/** + * Retrieves globals for the given ecmaVersion. + * @param {number} ecmaVersion The version to retrieve globals for. + * @returns {Object} The globals for the given ecmaVersion. + */ +function getGlobalsForEcmaVersion(ecmaVersion) { + + switch (ecmaVersion) { + case 3: + return globals.es3; + + case 5: + return globals.es5; + + default: + if (ecmaVersion < 2015) { + return globals[`es${ecmaVersion + 2009}`]; + } + + return globals[`es${ecmaVersion}`]; + } +} + /** * Check to see if its a ES6 export declaration. * @param {ASTNode} astNode An AST node. @@ -83,6 +116,36 @@ function sortedMerge(tokens, comments) { return result; } +/** + * Normalizes a value for a global in a config + * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in + * a global directive comment + * @returns {("readable"|"writeable"|"off")} The value normalized as a string + * @throws Error if global value is invalid + */ +function normalizeConfigGlobal(configuredValue) { + switch (configuredValue) { + case "off": + return "off"; + + case true: + case "true": + case "writeable": + case "writable": + return "writable"; + + case null: + case false: + case "false": + case "readable": + case "readonly": + return "readonly"; + + default: + throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`); + } +} + /** * Determines if two nodes or tokens overlap. * @param {ASTNode|Token} first The first node or token to check. @@ -145,6 +208,116 @@ function isSpaceBetween(sourceCode, first, second, checkInsideOfJSXText) { return false; } +//----------------------------------------------------------------------------- +// Directive Comments +//----------------------------------------------------------------------------- + +/** + * Extract the directive and the justification from a given directive comment and trim them. + * @param {string} value The comment text to extract. + * @returns {{directivePart: string, justificationPart: string}} The extracted directive and justification. + */ +function extractDirectiveComment(value) { + const match = /\s-{2,}\s/u.exec(value); + + if (!match) { + return { directivePart: value.trim(), justificationPart: "" }; + } + + const directive = value.slice(0, match.index).trim(); + const justification = value.slice(match.index + match[0].length).trim(); + + return { directivePart: directive, justificationPart: justification }; +} + +/** + * Ensures that variables representing built-in properties of the Global Object, + * and any globals declared by special block comments, are present in the global + * scope. + * @param {Scope} globalScope The global scope. + * @param {Object|undefined} configGlobals The globals declared in configuration + * @param {Object|undefined} inlineGlobals The globals declared in the source code + * @returns {void} + */ +function addDeclaredGlobals(globalScope, configGlobals = {}, inlineGlobals = {}) { + + // Define configured global variables. + for (const id of new Set([...Object.keys(configGlobals), ...Object.keys(inlineGlobals)])) { + + /* + * `normalizeConfigGlobal` will throw an error if a configured global value is invalid. However, these errors would + * typically be caught when validating a config anyway (validity for inline global comments is checked separately). + */ + const configValue = configGlobals[id] === void 0 ? void 0 : normalizeConfigGlobal(configGlobals[id]); + const commentValue = inlineGlobals[id] && inlineGlobals[id].value; + const value = commentValue || configValue; + const sourceComments = inlineGlobals[id] && inlineGlobals[id].comments; + + if (value === "off") { + continue; + } + + let variable = globalScope.set.get(id); + + if (!variable) { + variable = new eslintScope.Variable(id, globalScope); + + globalScope.variables.push(variable); + globalScope.set.set(id, variable); + } + + variable.eslintImplicitGlobalSetting = configValue; + variable.eslintExplicitGlobal = sourceComments !== void 0; + variable.eslintExplicitGlobalComments = sourceComments; + variable.writeable = (value === "writable"); + } + + /* + * "through" contains all references which definitions cannot be found. + * Since we augment the global scope using configuration, we need to update + * references and remove the ones that were added by configuration. + */ + globalScope.through = globalScope.through.filter(reference => { + const name = reference.identifier.name; + const variable = globalScope.set.get(name); + + if (variable) { + + /* + * Links the variable and the reference. + * And this reference is removed from `Scope#through`. + */ + reference.resolved = variable; + variable.references.push(reference); + + return false; + } + + return true; + }); +} + +/** + * Sets the given variable names as exported so they won't be triggered by + * the `no-unused-vars` rule. + * @param {eslint.Scope} globalScope The global scope to define exports in. + * @param {Record} variables An object whose keys are the variable + * names to export. + * @returns {void} + */ +function markExportedVariables(globalScope, variables) { + + Object.keys(variables).forEach(name => { + const variable = globalScope.set.get(name); + + if (variable) { + variable.eslintUsed = true; + variable.eslintExported = true; + } + }); + +} + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ @@ -187,7 +360,9 @@ class SourceCode extends TokenStore { * General purpose caching for the class. */ this[caches] = new Map([ - ["scopes", new WeakMap()] + ["scopes", new WeakMap()], + ["vars", new Map()], + ["configNodes", void 0] ]); /** @@ -266,7 +441,7 @@ class SourceCode extends TokenStore { // Cache for comments found using getComments(). this._commentCache = new WeakMap(); - // don't allow modification of this object + // don't allow further modification of this object Object.freeze(this); Object.freeze(this.lines); } @@ -724,6 +899,178 @@ class SourceCode extends TokenStore { } + /** + * Returns an array of all inline configuration nodes found in the + * source code. + * @returns {Array} An array of all inline configuration nodes. + */ + getInlineConfigNodes() { + + // check the cache first + let configNodes = this[caches].get("configNodes"); + + if (configNodes) { + return configNodes; + } + + // calculate fresh config nodes + configNodes = this.ast.comments.filter(comment => { + + // shebang comments are never directives + if (comment.type === "Shebang") { + return false; + } + + const { directivePart } = extractDirectiveComment(comment.value); + + const directiveMatch = directivesPattern.exec(directivePart); + + if (!directiveMatch) { + return false; + } + + // only certain comment types are supported as line comments + return comment.type !== "Line" || !!/^eslint-disable-(next-)?line$/u.test(directiveMatch[1]); + }); + + this[caches].set("configNodes", configNodes); + + return configNodes; + } + + /** + * Applies language options sent in from the core. + * @param {Object} languageOptions The language options for this run. + * @returns {void} + */ + applyLanguageOptions(languageOptions) { + + /* + * Add configured globals and language globals + * + * Using Object.assign instead of object spread for performance reasons + * https://github.com/eslint/eslint/issues/16302 + */ + const configGlobals = Object.assign( + {}, + getGlobalsForEcmaVersion(languageOptions.ecmaVersion), + languageOptions.sourceType === "commonjs" ? globals.commonjs : void 0, + languageOptions.globals + ); + const varsCache = this[caches].get("vars"); + + varsCache.set("configGlobals", configGlobals); + } + + /** + * Applies configuration found inside of the source code. This method is only + * called when ESLint is running with inline configuration allowed. + * @returns {{problems:Array,configs:{config:FlatConfigArray,node:ASTNode}}} Information + * that ESLint needs to further process the inline configuration. + */ + applyInlineConfig() { + + const problems = []; + const configs = []; + const exportedVariables = {}; + const inlineGlobals = Object.create(null); + + this.getInlineConfigNodes().forEach(comment => { + + const { directivePart } = extractDirectiveComment(comment.value); + const match = directivesPattern.exec(directivePart); + const directiveText = match[1]; + const directiveValue = directivePart.slice(match.index + directiveText.length); + + switch (directiveText) { + case "exported": + Object.assign(exportedVariables, commentParser.parseStringConfig(directiveValue, comment)); + break; + + case "globals": + case "global": + for (const [id, { value }] of Object.entries(commentParser.parseStringConfig(directiveValue, comment))) { + let normalizedValue; + + try { + normalizedValue = normalizeConfigGlobal(value); + } catch (err) { + problems.push({ + ruleId: null, + loc: comment.loc, + message: err.message + }); + continue; + } + + if (inlineGlobals[id]) { + inlineGlobals[id].comments.push(comment); + inlineGlobals[id].value = normalizedValue; + } else { + inlineGlobals[id] = { + comments: [comment], + value: normalizedValue + }; + } + } + break; + + case "eslint": { + const parseResult = commentParser.parseJsonConfig(directiveValue, comment.loc); + + if (parseResult.success) { + configs.push({ + config: { + rules: parseResult.config + }, + node: comment + }); + } else { + problems.push(parseResult.error); + } + + break; + } + + // no default + } + }); + + // save all the new variables for later + const varsCache = this[caches].get("vars"); + + varsCache.set("inlineGlobals", inlineGlobals); + varsCache.set("exportedVariables", exportedVariables); + + return { + configs, + problems + }; + } + + /** + * Called by ESLint core to indicate that it has finished providing + * information. We now add in all the missing variables and ensure that + * state-changing methods cannot be called by rules. + * @returns {void} + */ + finalize() { + + // Step 1: ensure that all of the necessary variables are up to date + const varsCache = this[caches].get("vars"); + const globalScope = this.scopeManager.scopes[0]; + const configGlobals = varsCache.get("configGlobals"); + const inlineGlobals = varsCache.get("inlineGlobals"); + const exportedVariables = varsCache.get("exportedVariables"); + + addDeclaredGlobals(globalScope, configGlobals, inlineGlobals); + + if (exportedVariables) { + markExportedVariables(globalScope, exportedVariables); + } + + } + } module.exports = SourceCode; diff --git a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json index 499ba7635a557d..266426827131f0 100644 --- a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json +++ b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json @@ -4,6 +4,7 @@ "opera": "98", "edge": "112", "firefox": "116", + "safari": "tp", "node": "20", "deno": "1.32", "opera_mobile": "75", diff --git a/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json b/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json index b89baca359dc68..191a1440fd7b86 100644 --- a/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.22.9", + "version": "7.22.20", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "", diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js index 32c15a6f14b810..76f15cfb6c403f 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js @@ -1,13 +1,5 @@ "use strict"; -if (typeof process === "object" && process.version === "v20.6.0") { - if (exports["___internal__alreadyRunning" + ""]) return; - Object.defineProperty(exports, "___internal__alreadyRunning", { - value: true, - enumerable: false, - configurable: true - }); -} Object.defineProperty(exports, "__esModule", { value: true }); @@ -232,24 +224,21 @@ var _transformAst = require("./transform-ast.js"); var _parse = require("./parse.js"); var thisFile = require("./index.js"); ; -const version = "7.22.17"; +const version = "7.23.0"; exports.version = version; const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; ; { - { - exports.OptionManager = class OptionManager { - init(opts) { - return (0, _index2.loadOptionsSync)(opts); - } - }; - exports.Plugin = function Plugin(alias) { - throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); - }; - } + exports.OptionManager = class OptionManager { + init(opts) { + return (0, _index2.loadOptionsSync)(opts); + } + }; + exports.Plugin = function Plugin(alias) { + throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); + }; } 0 && (exports.types = exports.traverse = exports.tokTypes = exports.template = 0); -if (typeof process === "object" && process.version === "v20.6.0") delete exports["___internal__alreadyRunning" + ""]; //# sourceMappingURL=index.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js index 450f4021b07ab9..74986d9b64999e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -72,9 +72,11 @@ function* normalizeFile(pluginPasses, options, code, ast) { const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); if (lastComment) { try { - inputMap = _convertSourceMap().fromComment(lastComment); + inputMap = _convertSourceMap().fromComment("//" + lastComment); } catch (err) { - debug("discarding unknown inline input sourcemap", err); + { + debug("discarding unknown inline input sourcemap"); + } } } } diff --git a/tools/node_modules/eslint/node_modules/@babel/core/package.json b/tools/node_modules/eslint/node_modules/@babel/core/package.json index 1f951f25710912..6d61fbeec23ea9 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/core/package.json @@ -1,6 +1,6 @@ { "name": "@babel/core", - "version": "7.22.17", + "version": "7.23.0", "description": "Babel compiler core.", "main": "./lib/index.js", "author": "The Babel Team (https://babel.dev/team)", @@ -48,29 +48,29 @@ "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.17", - "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.16", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.17", - "@babel/types": "^7.22.17", - "convert-source-map": "^1.7.0", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" }, "devDependencies": { - "@babel/helper-transform-fixture-test-runner": "^7.22.15", + "@babel/helper-transform-fixture-test-runner": "^7.22.19", "@babel/plugin-syntax-flow": "^7.22.5", "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/preset-env": "^7.22.15", - "@babel/preset-typescript": "^7.22.15", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/preset-env": "^7.22.20", + "@babel/preset-typescript": "^7.23.0", "@jridgewell/trace-mapping": "^0.3.17", - "@types/convert-source-map": "^1.5.1", + "@types/convert-source-map": "^2.0.0", "@types/debug": "^4.1.0", "@types/gensync": "^1.0.0", "@types/resolve": "^1.3.2", diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/modules.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/modules.js index b5691d5ec288fc..8e77f32a3b0804 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/modules.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/modules.js @@ -12,6 +12,7 @@ exports.ExportSpecifier = ExportSpecifier; exports.ImportAttribute = ImportAttribute; exports.ImportDeclaration = ImportDeclaration; exports.ImportDefaultSpecifier = ImportDefaultSpecifier; +exports.ImportExpression = ImportExpression; exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; exports.ImportSpecifier = ImportSpecifier; exports._printAttributes = _printAttributes; @@ -198,6 +199,10 @@ function ImportDeclaration(node) { this.noIndentInnerCommentsHere(); this.word("module"); this.space(); + } else if (node.phase) { + this.noIndentInnerCommentsHere(); + this.word(node.phase); + this.space(); } const specifiers = node.specifiers.slice(0); const hasSpecifiers = !!specifiers.length; @@ -250,5 +255,20 @@ function ImportNamespaceSpecifier(node) { this.space(); this.print(node.local, node); } +function ImportExpression(node) { + this.word("import"); + if (node.phase) { + this.tokenChar(46); + this.word(node.phase); + } + this.tokenChar(40); + this.print(node.source, node); + if (node.options != null) { + this.tokenChar(44); + this.space(); + this.print(node.options, node); + } + this.tokenChar(41); +} //# sourceMappingURL=modules.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/package.json b/tools/node_modules/eslint/node_modules/@babel/generator/package.json index 6b2661d8993ea9..b4c036e9e5dd36 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/generator", - "version": "7.22.15", + "version": "7.23.0", "description": "Turns an AST into code.", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", @@ -19,14 +19,14 @@ "lib" ], "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "devDependencies": { - "@babel/helper-fixtures": "^7.22.13", - "@babel/parser": "^7.22.15", + "@babel/helper-fixtures": "^7.22.19", + "@babel/parser": "^7.23.0", "@jridgewell/sourcemap-codec": "^1.4.15", "@types/jsesc": "^2.5.0", "charcodes": "^0.2.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js index 6bc279a316cd38..e5ffd6e5f626a6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js @@ -6,16 +6,12 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; { - { - { - exports.skipAllButComputedKey = function skipAllButComputedKey(path) { - path.skip(); - if (path.node.computed) { - path.context.maybeQueue(path.get("key")); - } - }; + exports.skipAllButComputedKey = function skipAllButComputedKey(path) { + path.skip(); + if (path.node.computed) { + path.context.maybeQueue(path.get("key")); } - } + }; } function requeueComputedKeyAndDecorators(path) { const { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json index 6827809e6123e2..5316931bb0f3a6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-environment-visitor", - "version": "7.22.5", + "version": "7.22.20", "description": "Helper visitor to only visit nodes in the current 'this' context", "repository": { "type": "git", @@ -18,8 +18,8 @@ "./package.json": "./package.json" }, "devDependencies": { - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-function-name/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-function-name/package.json index 1b26608d8019bf..0f1e3d4feafcf2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-function-name/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-function-name/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-function-name", - "version": "7.22.5", + "version": "7.23.0", "description": "Helper function to change the property 'name' of every function", "repository": { "type": "git", @@ -14,8 +14,8 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js index 5a27b74fe76469..90fcea61419276 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/dynamic-import.js @@ -6,17 +6,13 @@ Object.defineProperty(exports, "__esModule", { exports.buildDynamicImport = buildDynamicImport; var _core = require("@babel/core"); { - { - { - exports.getDynamicImportSource = function getDynamicImportSource(node) { - const [source] = node.arguments; - return _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) ? source : _core.template.expression.ast`\`\${${source}}\``; - }; - } - } + exports.getDynamicImportSource = function getDynamicImportSource(node) { + const [source] = node.arguments; + return _core.types.isStringLiteral(source) || _core.types.isTemplateLiteral(source) ? source : _core.template.expression.ast`\`\${${source}}\``; + }; } function buildDynamicImport(node, deferToThen, wrapWithPromise, builder) { - const [specifier] = node.arguments; + const specifier = _core.types.isCallExpression(node) ? node.arguments[0] : node.source; if (_core.types.isStringLiteral(specifier) || _core.types.isTemplateLiteral(specifier) && specifier.quasis.length === 0) { if (deferToThen) { return _core.template.expression.ast` diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js index 9f44b1cd25795e..e002e265d1c2cd 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js @@ -49,6 +49,7 @@ var _helperModuleImports = require("@babel/helper-module-imports"); var _rewriteThis = require("./rewrite-this.js"); var _rewriteLiveReferences = require("./rewrite-live-references.js"); var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +var Lazy = require("./lazy-modules.js"); var _dynamicImport = require("./dynamic-import.js"); var _getModuleName = require("./get-module-name.js"); const { @@ -67,11 +68,7 @@ const { variableDeclarator } = _core.types; { - { - { - exports.getDynamicImportSource = require("./dynamic-import").getDynamicImportSource; - } - } + exports.getDynamicImportSource = require("./dynamic-import").getDynamicImportSource; } function rewriteModuleStatementsAndPrepareHeader(path, { exportName, @@ -81,6 +78,8 @@ function rewriteModuleStatementsAndPrepareHeader(path, { noInterop, importInterop = noInterop ? "none" : "babel", lazy, + getWrapperPayload = Lazy.toGetWrapperPayload(lazy != null ? lazy : false), + wrapReference = Lazy.wrapReference, esNamespaceOnly, filename, constantReexports = arguments[1].loose, @@ -93,14 +92,14 @@ function rewriteModuleStatementsAndPrepareHeader(path, { const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, { importInterop, initializeReexports: constantReexports, - lazy, + getWrapperPayload, esNamespaceOnly, filename }); if (!allowTopLevelThis) { (0, _rewriteThis.default)(path); } - (0, _rewriteLiveReferences.default)(path, meta); + (0, _rewriteLiveReferences.default)(path, meta, wrapReference); if (strictMode !== false) { const hasStrict = path.node.directives.some(directive => { return directive.value.value === "use strict"; @@ -118,7 +117,7 @@ function rewriteModuleStatementsAndPrepareHeader(path, { meta.exportNameListName = nameList.name; headers.push(nameList.statement); } - headers.push(...buildExportInitializationStatements(path, meta, constantReexports, noIncompleteNsImportDetection)); + headers.push(...buildExportInitializationStatements(path, meta, wrapReference, constantReexports, noIncompleteNsImportDetection)); return { meta, headers @@ -148,7 +147,8 @@ function wrapInterop(programPath, expr, type) { } return callExpression(programPath.hub.addHelper(helper), [expr]); } -function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false) { +function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false, wrapReference = Lazy.wrapReference) { + var _wrapReference; const statements = []; const srcNamespaceId = identifier(sourceMetadata.name); for (const localName of sourceMetadata.importsNamespace) { @@ -158,12 +158,12 @@ function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexport SOURCE: cloneNode(srcNamespaceId) })); } - const srcNamespace = sourceMetadata.lazy ? callExpression(srcNamespaceId, []) : srcNamespaceId; + const srcNamespace = (_wrapReference = wrapReference(srcNamespaceId, sourceMetadata.wrap)) != null ? _wrapReference : srcNamespaceId; if (constantReexports) { - statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true)); + statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference)); } for (const exportName of sourceMetadata.reexportNamespace) { - statements.push((sourceMetadata.lazy ? _core.template.statement` + statements.push((!_core.types.isIdentifier(srcNamespace) ? _core.template.statement` Object.defineProperty(EXPORTS, "NAME", { enumerable: true, get: function() { @@ -195,8 +195,10 @@ const ReexportTemplate = { }); ` }; -function buildReexportsFromMeta(meta, metadata, constantReexports) { - const namespace = metadata.lazy ? callExpression(identifier(metadata.name), []) : identifier(metadata.name); +function buildReexportsFromMeta(meta, metadata, constantReexports, wrapReference) { + var _wrapReference2; + let namespace = identifier(metadata.name); + namespace = (_wrapReference2 = wrapReference(namespace, metadata.wrap)) != null ? _wrapReference2 : namespace; const { stringSpecifiers } = meta; @@ -291,7 +293,7 @@ function buildExportNameListDeclaration(programPath, metadata) { statement: variableDeclaration("var", [variableDeclarator(name, valueToNode(exportedVars))]) }; } -function buildExportInitializationStatements(programPath, metadata, constantReexports = false, noIncompleteNsImportDetection = false) { +function buildExportInitializationStatements(programPath, metadata, wrapReference, constantReexports = false, noIncompleteNsImportDetection = false) { const initStatements = []; for (const [localName, data] of metadata.local) { if (data.kind === "import") {} else if (data.kind === "hoisted") { @@ -304,7 +306,7 @@ function buildExportInitializationStatements(programPath, metadata, constantReex } for (const data of metadata.source.values()) { if (!constantReexports) { - const reexportsStatements = buildReexportsFromMeta(metadata, data, false); + const reexportsStatements = buildReexportsFromMeta(metadata, data, false, wrapReference); const reexports = [...data.reexports.keys()]; for (let i = 0; i < reexportsStatements.length; i++) { initStatements.push([reexports[i], reexportsStatements[i]]); diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js new file mode 100644 index 00000000000000..e54ad95b39eecb --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/lazy-modules.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.toGetWrapperPayload = toGetWrapperPayload; +exports.wrapReference = wrapReference; +var _core = require("@babel/core"); +var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata.js"); +function toGetWrapperPayload(lazy) { + return (source, metadata) => { + if (lazy === false) return null; + if ((0, _normalizeAndLoadMetadata.isSideEffectImport)(metadata) || metadata.reexportAll) return null; + if (lazy === true) { + return /\./.test(source) ? null : "lazy"; + } + if (Array.isArray(lazy)) { + return lazy.indexOf(source) === -1 ? null : "lazy"; + } + if (typeof lazy === "function") { + return lazy(source) ? "lazy" : null; + } + throw new Error(`.lazy must be a boolean, string array, or function`); + }; +} +function wrapReference(ref, payload) { + if (payload === "lazy") return _core.types.callExpression(ref, []); + return null; +} + +//# sourceMappingURL=lazy-modules.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js index edcac69a06496a..35d6757d24a69c 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js @@ -31,7 +31,7 @@ function resolveImportInterop(importInterop, source, filename) { function normalizeModuleAndLoadMetadata(programPath, exportName, { importInterop, initializeReexports = false, - lazy = false, + getWrapperPayload, esNamespaceOnly = false, filename }) { @@ -46,12 +46,17 @@ function normalizeModuleAndLoadMetadata(programPath, exportName, { hasExports } = getModuleMetadata(programPath, { initializeReexports, - lazy + getWrapperPayload }, stringSpecifiers); removeImportExportDeclarations(programPath); for (const [source, metadata] of sources) { - if (metadata.importsNamespace.size > 0) { - metadata.name = metadata.importsNamespace.values().next().value; + const { + importsNamespace, + imports + } = metadata; + if (importsNamespace.size > 0 && imports.size === 0) { + const [nameOfnamespace] = importsNamespace; + metadata.name = nameOfnamespace; } const resolvedInterop = resolveImportInterop(importInterop, source, filename); if (resolvedInterop === "none") { @@ -96,12 +101,13 @@ function assertExportSpecifier(path) { } } function getModuleMetadata(programPath, { - lazy, + getWrapperPayload, initializeReexports }, stringSpecifiers) { const localData = getLocalExportMetadata(programPath, initializeReexports, stringSpecifiers); + const importNodes = new Map(); const sourceData = new Map(); - const getData = sourceNode => { + const getData = (sourceNode, node) => { const source = sourceNode.value; let data = sourceData.get(source); if (!data) { @@ -114,17 +120,23 @@ function getModuleMetadata(programPath, { reexports: new Map(), reexportNamespace: new Set(), reexportAll: null, - lazy: false, + wrap: null, + get lazy() { + return this.wrap === "lazy"; + }, referenced: false }; sourceData.set(source, data); + importNodes.set(source, [node]); + } else { + importNodes.get(source).push(node); } return data; }; let hasExports = false; programPath.get("body").forEach(child => { if (child.isImportDeclaration()) { - const data = getData(child.node.source); + const data = getData(child.node.source, child.node); if (!data.loc) data.loc = child.node.loc; child.get("specifiers").forEach(spec => { if (spec.isImportDefaultSpecifier()) { @@ -165,7 +177,7 @@ function getModuleMetadata(programPath, { }); } else if (child.isExportAllDeclaration()) { hasExports = true; - const data = getData(child.node.source); + const data = getData(child.node.source, child.node); if (!data.loc) data.loc = child.node.loc; data.reexportAll = { loc: child.node.loc @@ -173,7 +185,7 @@ function getModuleMetadata(programPath, { data.referenced = true; } else if (child.isExportNamedDeclaration() && child.node.source) { hasExports = true; - const data = getData(child.node.source); + const data = getData(child.node.source, child.node); if (!data.loc) data.loc = child.node.loc; child.get("specifiers").forEach(spec => { assertExportSpecifier(spec); @@ -211,17 +223,9 @@ function getModuleMetadata(programPath, { metadata.interop = "default"; } } - for (const [source, metadata] of sourceData) { - if (lazy !== false && !(isSideEffectImport(metadata) || metadata.reexportAll)) { - if (lazy === true) { - metadata.lazy = !/\./.test(source); - } else if (Array.isArray(lazy)) { - metadata.lazy = lazy.indexOf(source) !== -1; - } else if (typeof lazy === "function") { - metadata.lazy = lazy(source); - } else { - throw new Error(`.lazy must be a boolean, string array, or function`); - } + if (getWrapperPayload) { + for (const [source, metadata] of sourceData) { + metadata.wrap = getWrapperPayload(source, metadata, importNodes.get(source)); } } return { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js index 86427d4715789f..6ada457a4db5c5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/rewrite-live-references.js @@ -9,11 +9,14 @@ var _core = require("@babel/core"); var _helperSimpleAccess = require("@babel/helper-simple-access"); const { assignmentExpression, - callExpression, cloneNode, expressionStatement, getOuterBindingIdentifiers, identifier, + isArrowFunctionExpression, + isClassExpression, + isFunctionExpression, + isIdentifier, isMemberExpression, isVariableDeclaration, jsxIdentifier, @@ -43,7 +46,7 @@ function isInType(path) { } } while (path = path.parentPath); } -function rewriteLiveReferences(programPath, metadata) { +function rewriteLiveReferences(programPath, metadata, wrapReference) { const imported = new Map(); const exported = new Map(); const requeueInParent = path => { @@ -83,17 +86,21 @@ function rewriteLiveReferences(programPath, metadata) { scope: programPath.scope, imported, exported, - buildImportReference: ([source, importName, localName], identNode) => { + buildImportReference([source, importName, localName], identNode) { const meta = metadata.source.get(source); meta.referenced = true; if (localName) { - if (meta.lazy) { - identNode = callExpression(identNode, []); + if (meta.wrap) { + var _wrapReference; + identNode = (_wrapReference = wrapReference(identNode, meta.wrap)) != null ? _wrapReference : identNode; } return identNode; } let namespace = identifier(meta.name); - if (meta.lazy) namespace = callExpression(namespace, []); + if (meta.wrap) { + var _wrapReference2; + namespace = (_wrapReference2 = wrapReference(namespace, meta.wrap)) != null ? _wrapReference2 : namespace; + } if (importName === "default" && meta.interop === "node-default") { return namespace; } @@ -131,14 +138,34 @@ const rewriteBindingInitVisitor = { exported, metadata } = this; - Object.keys(path.getOuterBindingIdentifiers()).forEach(localName => { - const exportNames = exported.get(localName) || []; - if (exportNames.length > 0) { - const statement = expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, identifier(localName), path.scope)); - statement._blockHoist = path.node._blockHoist; - requeueInParent(path.insertAfter(statement)[0]); + const isVar = path.node.kind === "var"; + for (const decl of path.get("declarations")) { + const { + id + } = decl.node; + let { + init + } = decl.node; + if (isIdentifier(id) && exported.has(id.name) && !isArrowFunctionExpression(init) && (!isFunctionExpression(init) || init.id) && (!isClassExpression(init) || init.id)) { + if (!init) { + if (isVar) { + continue; + } else { + init = path.scope.buildUndefinedNode(); + } + } + decl.node.init = buildBindingExportAssignmentExpression(metadata, exported.get(id.name), init, path.scope); + requeueInParent(decl.get("init")); + } else { + for (const localName of Object.keys(decl.getOuterBindingIdentifiers())) { + if (exported.has(localName)) { + const statement = expressionStatement(buildBindingExportAssignmentExpression(metadata, exported.get(localName), identifier(localName), path.scope)); + statement._blockHoist = path.node._blockHoist; + requeueInParent(path.insertAfter(statement)[0]); + } + } } - }); + } } }; const buildBindingExportAssignmentExpression = (metadata, exportNames, localExpr, scope) => { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json index 5bb205ab8ad490..63f51e03bc25d5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-module-transforms", - "version": "7.22.17", + "version": "7.23.0", "description": "Babel helper functions for implementing ES6 module transformations", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", @@ -15,15 +15,15 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.15" + "@babel/helper-validator-identifier": "^7.22.20" }, "devDependencies": { - "@babel/core": "^7.22.17", - "@babel/traverse": "^7.22.17" + "@babel/core": "^7.23.0", + "@babel/traverse": "^7.23.0" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/lib/identifier.js index cd1f4500a4cf48..8ef8303613598e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/lib/identifier.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/lib/identifier.js @@ -7,11 +7,11 @@ exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierName = isIdentifierName; exports.isIdentifierStart = isIdentifierStart; let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; function isInAstralSet(code, set) { let pos = 0x10000; diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/package.json index cd582967dd548c..67bddb4bf985a2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-validator-identifier", - "version": "7.22.15", + "version": "7.22.20", "description": "Validate identifier/keywords name", "repository": { "type": "git", @@ -17,7 +17,7 @@ "./package.json": "./package.json" }, "devDependencies": { - "@unicode/unicode-15.0.0": "^1.3.1", + "@unicode/unicode-15.1.0": "^1.5.2", "charcodes": "^0.2.0" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js index 7d795d246a99b5..7f753a95843031 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js @@ -2,7 +2,7 @@ // Always use the latest available version of Unicode! // https://tc39.github.io/ecma262/#sec-conformance -const version = "15.0.0"; +const version = "15.1.0"; const start = require( "@unicode/unicode-" + version + "/Binary_Property/ID_Start/code-points.js" @@ -10,15 +10,11 @@ const start = require( return ch > 0x7f; }); let last = -1; -const cont = [0x200c, 0x200d].concat( - require( - "@unicode/unicode-" + - version + - "/Binary_Property/ID_Continue/code-points.js" - ).filter(function (ch) { - return ch > 0x7f && search(start, ch, last + 1) == -1; - }) -); +const cont = require( + "@unicode/unicode-" + version + "/Binary_Property/ID_Continue/code-points.js" +).filter(function (ch) { + return ch > 0x7f && search(start, ch, last + 1) == -1; +}); function search(arr, ch, starting) { for (let i = starting; arr[i] <= ch && i < arr.length; last = i++) { diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js index 2176556b8f5692..aff47496d37b4f 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js @@ -20,13 +20,14 @@ var _default = Object.freeze({ applyDecs2203: helper("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}(t,"addInitializer"),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r){var a;throw a=0===e?"field":10===e?"class":"method",new TypeError(a+" decorators must return a function or void 0")}}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;if(void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u)))assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e=0;v--){var g;if(void 0!==(f=memberDec(h[v],n,c,o,a,i,s,u)))assertValidReturnValue(a,f),0===a?g=f:1===a?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,n=0;n3,h=f>=5;if(h?(l=e,0!==(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e=0;y--){var m;if(void 0!==(d=memberDec(g[y],n,u,o,a,i,s,f,c)))assertValidReturnValue(a,d),0===a?m=d:1===a?(m=d.init,h=d.get||f.get,v=d.set||f.set,f={get:h,set:v}):f=d,void 0!==m&&(void 0===l?l=m:"function"==typeof l?l=[l,m]:l.push(m))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var b=l;l=function(e,t){for(var r=t,n=0;n3,g=d>=5,y=r;if(g?(f=e,0!==(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),y=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=g?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,g,v,p,y)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e=0;m-=g){var b;if(void 0!==(p=memberDec(y[m],n?y[m-1]:void 0,a,u,c,i,s,o,d,l)))assertValidReturnValue(i,p),0===i?b=p:1===i?(b=p.init,h=p.get||d.get,v=p.set||d.set,d={get:h,set:v}):d=p,void 0!==b&&(void 0===f?f=b:"function"==typeof f?f=[f,b]:f.push(b))}if(0===i||1===i){if(void 0===f)f=function(e,t){return t};else if("function"!=typeof f){var I=f;f=function(e,t){for(var r=t,n=I.length-1;n>=0;n--)r=I[n].call(e,r);return r}}else{var w=f;f=function(e,t){return w.call(e,t)}}e.push(f)}0!==i&&(1===i?(u.get=d.get,u.set=d.set):2===i?u.value=d:3===i?u.get=d:4===i&&(u.set=d),o?1===i?(e.push((function(e,t){return d.get.call(e,t)})),e.push((function(e,t){return d.set.call(e,t)}))):2===i?e.push(d):e.push((function(e,t){return d.call(e,t)})):Object.defineProperty(t,a,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,l=0;l3,y=16&p,g=!!(8&p),m=r;if(p&=7,g?(f=e,0!==p&&(d=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),m=i):(f=e.prototype,0!==p&&(d=n=n||[])),0!==p&&!v){var b=g?c:o,I=b.get(h)||0;if(!0===I||3===I&&4!==p||4===I&&3!==p)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);b.set(h,!(!I&&p>2)||p)}applyMemberDec(s,f,u,y,h,p,g,v,d,m)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r=0;o-=s){var c={v:!1};try{var l=t[o].call(r?t[o-1]:void 0,a,{kind:"class",name:i,addInitializer:createAddInitializerMethod(n,c)})}finally{c.v=!0}void 0!==l&&(assertValidReturnValue(5,l),a=l)}return[a,function(){for(var e=0;e=0;b-=g){var I;if(void 0!==(h=memberDec(m[b],a?m[b-1]:void 0,n,f,c,i,s,o,p,l,u)))assertValidReturnValue(i,h),0===i?I=h:1===i?(I=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==I&&(void 0===d?d=I:"function"==typeof d?d=[d,I]:d.push(I))}if(0===i||1===i){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var w=d;d=function(e,t){for(var r=t,a=w.length-1;a>=0;a--)r=w[a].call(e,r);return r}}else{var M=d;d=function(e,t){return M.call(e,t)}}e.push(d)}0!==i&&(1===i?(f.get=p.get,f.set=p.set):2===i?f.value=p:3===i?f.get=p:4===i&&(f.set=p),o?1===i?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===i?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,f))}function applyMemberDecs(e,t,r,a){for(var n,i,s,o=[],c=new Map,l=new Map,u=0;u3,m=16&h,g=!!(8&h),b=r;if(h&=7,g?(d=e,0!==h&&(p=i=i||[]),y&&!s&&(s=function(t){return checkInRHS(t)===e}),b=s):(d=e.prototype,0!==h&&(p=n=n||[])),0!==h&&!y){var I=g?l:c,w=I.get(v)||0;if(!0===w||3===w&&4!==h||4===w&&3!==h)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+v);I.set(v,!(!w&&h>2)||h)}applyMemberDec(o,d,f,m,v,h,g,y,p,b,a)}}return pushInitializers(o,n),pushInitializers(o,i),o}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r=0;c-=o){var l={v:!1};try{var u=t[c].call(r?t[c-1]:void 0,i,{kind:"class",name:s,addInitializer:createAddInitializerMethod(n,l),metadata:a})}finally{l.v=!0}void 0!==u&&(assertValidReturnValue(5,u),i=u)}return[defineMetadata(i,a),function(){for(var e=0;e=6)var s=i[Symbol.metadata||Symbol.for("Symbol.metadata")];var o=Object.create(void 0===s?null:s),c=applyMemberDecs(e,t,n,o);return r.length||defineMetadata(e,o),{e:c,get c(){return applyClassDecs(e,r,a,o)}}}'), asyncGeneratorDelegate: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}'), asyncIterator: helper("7.15.9", 'export default function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}'), awaitAsyncGenerator: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}'), checkInRHS: helper("7.20.5", 'export default function _checkInRHS(e){if(Object(e)!==e)throw TypeError("right-hand side of \'in\' should be an object, got "+(null!==e?typeof e:"null"));return e}'), defineAccessor: helper("7.20.7", "export default function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}"), dispose: helper("7.22.0", 'function dispose_SuppressedError(r,e){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=r,this.error=e,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}export default function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(r,e):r,s=!0,next()}return next()}'), + importDeferProxy: helper("7.23.0", "export default function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}"), iterableToArrayLimit: helper("7.0.0-beta.0", 'export default function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}'), iterableToArrayLimitLoose: helper("7.0.0-beta.0", 'export default function _iterableToArrayLimitLoose(e,r){var t=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=t){var o,l=[];for(t=t.call(e);e.length1){for(var t=new Array(n),f=0;f= 0; i -= inc) { var dec = decs[i]; - newValue = memberDec(dec, decoratorsHaveThis ? decs[i - 1] : undefined, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand); + newValue = memberDec(dec, decoratorsHaveThis ? decs[i - 1] : undefined, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand, metadata); if (newValue !== void 0) { assertValidReturnValue(kind, newValue); var newInit; @@ -283,7 +284,7 @@ function applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isSt } } } -function applyMemberDecs(Class, decInfos, instanceBrand) { +function applyMemberDecs(Class, decInfos, instanceBrand, metadata) { var ret = []; var protoInitializers; var staticInitializers; @@ -329,7 +330,7 @@ function applyMemberDecs(Class, decInfos, instanceBrand) { } existingNonFields.set(name, !existingKind && kind > 2 ? kind : true); } - applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand); + applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand, metadata); } pushInitializers(ret, protoInitializers); pushInitializers(ret, staticInitializers); @@ -345,7 +346,7 @@ function pushInitializers(ret, initializers) { }); } } -function applyClassDecs(targetClass, classDecs, decoratorsHaveThis) { +function applyClassDecs(targetClass, classDecs, decoratorsHaveThis, metadata) { if (classDecs.length) { var initializers = []; var newClass = targetClass; @@ -359,7 +360,8 @@ function applyClassDecs(targetClass, classDecs, decoratorsHaveThis) { var nextNewClass = classDecs[i].call(decoratorsHaveThis ? classDecs[i - 1] : undefined, newClass, { kind: "class", name: name, - addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef) + addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef), + metadata }); } finally { decoratorFinishedRef.v = true; @@ -369,18 +371,31 @@ function applyClassDecs(targetClass, classDecs, decoratorsHaveThis) { newClass = nextNewClass; } } - return [newClass, function () { + return [defineMetadata(newClass, metadata), function () { for (var i = 0; i < initializers.length; i++) { initializers[i].call(newClass); } }]; } } -function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand) { +function defineMetadata(Class, metadata) { + return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), { + configurable: true, + enumerable: true, + value: metadata + }); +} +function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand, parentClass) { + if (arguments.length >= 6) { + var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")]; + } + var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata); + var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata); + if (!classDecs.length) defineMetadata(targetClass, metadata); return { - e: applyMemberDecs(targetClass, memberDecs, instanceBrand), + e: e, get c() { - return applyClassDecs(targetClass, classDecs, classDecsHaveThis); + return applyClassDecs(targetClass, classDecs, classDecsHaveThis, metadata); } }; } diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js new file mode 100644 index 00000000000000..a9cd56391ff04f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/importDeferProxy.js @@ -0,0 +1,35 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _importDeferProxy; +function _importDeferProxy(init) { + var ns = null; + var constValue = function (v) { + return function () { + return v; + }; + }; + var proxy = function (run) { + return function (arg1, arg2, arg3) { + if (ns === null) ns = init(); + return run(ns, arg2, arg3); + }; + }; + return new Proxy({}, { + defineProperty: constValue(false), + deleteProperty: constValue(false), + get: proxy(Reflect.get), + getOwnPropertyDescriptor: proxy(Reflect.getOwnPropertyDescriptor), + getPrototypeOf: constValue(null), + isExtensible: constValue(false), + has: proxy(Reflect.has), + ownKeys: proxy(Reflect.ownKeys), + preventExtensions: constValue(true), + set: constValue(false), + setPrototypeOf: constValue(false) + }); +} + +//# sourceMappingURL=importDeferProxy.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/package.json b/tools/node_modules/eslint/node_modules/@babel/helpers/package.json index 605c9e4c3f7c2a..289c86f9c3531b 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helpers", - "version": "7.22.15", + "version": "7.23.1", "description": "Collection of helper functions used by Babel transforms.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helpers", @@ -16,13 +16,13 @@ "main": "./lib/index.js", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" }, "devDependencies": { - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/parser": "^7.22.15", + "@babel/parser": "^7.23.0", "regenerator-runtime": "^0.14.0", "terser": "^5.19.2" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/highlight/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/highlight/lib/index.js index eca79d65df92ec..cb718afd154ce0 100644 --- a/tools/node_modules/eslint/node_modules/@babel/highlight/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/highlight/lib/index.js @@ -91,9 +91,7 @@ function getChalk(forceColor) { return _chalk.default; } { - { - exports.getChalk = options => getChalk(options.forceColor); - } + exports.getChalk = options => getChalk(options.forceColor); } function highlight(code, options = {}) { if (code !== "" && shouldHighlight(options)) { diff --git a/tools/node_modules/eslint/node_modules/@babel/highlight/package.json b/tools/node_modules/eslint/node_modules/@babel/highlight/package.json index b8c3df7e254b0f..d88c972268588e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/highlight/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@babel/highlight", - "version": "7.22.13", + "version": "7.22.20", "description": "Syntax highlight JavaScript strings for output in terminals.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-highlight", @@ -15,7 +15,7 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js index 2e32aee09b1bc3..bcf69004cd8aa6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js @@ -113,6 +113,7 @@ var StandardErrors = { DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", DecoratorSemicolon: "Decorators must not be followed by a semicolon.", DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', DeletePrivateField: "Deleting a private field is not allowed.", DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", DuplicateConstructor: "Duplicate constructor in the same class.", @@ -122,6 +123,9 @@ var StandardErrors = { }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, DuplicateProto: "Redefinition of __proto__ property.", DuplicateRegExpFlags: "Duplicate regular expression flag.", + DynamicImportPhaseRequiresImportExpressions: ({ + phase + }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`, ElementAfterRest: "Rest element must be last element.", EscapedCharNotAnIdentifier: "Invalid Unicode escape.", ExportBindingIsString: ({ @@ -176,6 +180,9 @@ var StandardErrors = { InvalidLhsBinding: ({ ancestor }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, InvalidNumber: "Invalid number.", InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", InvalidOrUnexpectedToken: ({ @@ -241,6 +248,7 @@ var StandardErrors = { RestTrailingComma: "Unexpected trailing comma after rest element.", SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', StaticPrototype: "Classes may not have static property named prototype.", SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", SuperPrivateField: "Private fields can't be accessed on super.", @@ -662,8 +670,9 @@ var estree = superClass => class ESTreeParserMixin extends superClass { node.type = "ImportExpression"; node.source = node.arguments[0]; if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { - var _node$arguments$; - node.attributes = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null; + var _node$arguments$, _node$arguments$2; + node.options = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null; + node.attributes = (_node$arguments$2 = node.arguments[1]) != null ? _node$arguments$2 : null; } delete node.arguments; delete node.callee; @@ -719,6 +728,12 @@ var estree = superClass => class ESTreeParserMixin extends superClass { } return node; } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } hasPropertyAsPrivateName(node) { if (node.type === "ChainExpression") { node = node.expression; @@ -1092,6 +1107,9 @@ const tt = { _await: createKeywordLike("await", { startsExpr }), + _defer: createKeywordLike("defer", { + startsExpr + }), _from: createKeywordLike("from", { startsExpr }), @@ -1113,6 +1131,9 @@ const tt = { _set: createKeywordLike("set", { startsExpr }), + _source: createKeywordLike("source", { + startsExpr + }), _static: createKeywordLike("static", { startsExpr }), @@ -1226,16 +1247,16 @@ const tt = { }) }; function tokenIsIdentifier(token) { - return token >= 93 && token <= 130; + return token >= 93 && token <= 132; } function tokenKeywordOrIdentifierIsKeyword(token) { return token <= 92; } function tokenIsKeywordOrIdentifier(token) { - return token >= 58 && token <= 130; + return token >= 58 && token <= 132; } function tokenIsLiteralPropertyName(token) { - return token >= 58 && token <= 134; + return token >= 58 && token <= 136; } function tokenComesBeforeExpression(token) { return tokenBeforeExprs[token]; @@ -1247,7 +1268,7 @@ function tokenIsAssignment(token) { return token >= 29 && token <= 33; } function tokenIsFlowInterfaceOrTypeOrOpaque(token) { - return token >= 127 && token <= 129; + return token >= 129 && token <= 131; } function tokenIsLoop(token) { return token >= 90 && token <= 92; @@ -1265,10 +1286,10 @@ function tokenIsPrefix(token) { return tokenPrefixes[token]; } function tokenIsTSTypeOperator(token) { - return token >= 119 && token <= 121; + return token >= 121 && token <= 123; } function tokenIsTSDeclarationStart(token) { - return token >= 122 && token <= 128; + return token >= 124 && token <= 130; } function tokenLabelName(token) { return tokenLabels[token]; @@ -1299,16 +1320,16 @@ function getExportedToken(token) { context.push(types.template); } }; - tokenTypes[140].updateContext = context => { + tokenTypes[142].updateContext = context => { context.push(types.j_expr, types.j_oTag); }; } let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191]; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; function isInAstralSet(code, set) { let pos = 0x10000; @@ -1832,7 +1853,7 @@ class State { this.comments = []; this.commentStack = []; this.pos = 0; - this.type = 137; + this.type = 139; this.value = null; this.start = 0; this.end = 0; @@ -2320,7 +2341,7 @@ class Tokenizer extends CommentsParser { this.state.start = this.state.pos; if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); if (this.state.pos >= this.length) { - this.finishToken(137); + this.finishToken(139); return; } this.getTokenFromCode(this.codePointAtPos(this.state.pos)); @@ -2504,10 +2525,10 @@ class Tokenizer extends CommentsParser { } } else if (isIdentifierStart(next)) { ++this.state.pos; - this.finishToken(136, this.readWord1(next)); + this.finishToken(138, this.readWord1(next)); } else if (next === 92) { ++this.state.pos; - this.finishToken(136, this.readWord1()); + this.finishToken(138, this.readWord1()); } else { this.finishOp(27, 1); } @@ -2940,7 +2961,7 @@ class Tokenizer extends CommentsParser { mods += char; } this.state.pos = pos; - this.finishToken(135, { + this.finishToken(137, { pattern: content, flags: mods }); @@ -2980,10 +3001,10 @@ class Tokenizer extends CommentsParser { } if (isBigInt) { const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, ""); - this.finishToken(133, str); + this.finishToken(135, str); return; } - this.finishToken(132, val); + this.finishToken(134, val); } readNumber(startsWithDot) { const start = this.state.pos; @@ -3061,15 +3082,15 @@ class Tokenizer extends CommentsParser { } const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); if (isBigInt) { - this.finishToken(133, str); + this.finishToken(135, str); return; } if (isDecimal) { - this.finishToken(134, str); + this.finishToken(136, str); return; } const val = isOctal ? parseInt(str, 8) : parseFloat(str); - this.finishToken(132, val); + this.finishToken(134, val); } readCodePoint(throwOnInvalid) { const { @@ -3089,7 +3110,7 @@ class Tokenizer extends CommentsParser { this.state.pos = pos + 1; this.state.lineStart = lineStart; this.state.curLine = curLine; - this.finishToken(131, str); + this.finishToken(133, str); } readTemplateContinuation() { if (!this.match(8)) { @@ -3179,7 +3200,7 @@ class Tokenizer extends CommentsParser { if (type !== undefined) { this.finishToken(type, tokenLabelName(type)); } else { - this.finishToken(130, word); + this.finishToken(132, word); } } checkKeywordEscapes() { @@ -3547,7 +3568,7 @@ class UtilParser extends Tokenizer { } } canInsertSemicolon() { - return this.match(137) || this.match(8) || this.hasPrecedingLineBreak(); + return this.match(139) || this.match(8) || this.hasPrecedingLineBreak(); } hasPrecedingLineBreak() { return lineBreak.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start)); @@ -3961,7 +3982,7 @@ var flow = superClass => class FlowParserMixin extends superClass { return !!this.getPluginOption("flow", "enums"); } finishToken(type, val) { - if (type !== 131 && type !== 13 && type !== 28) { + if (type !== 133 && type !== 13 && type !== 28) { if (this.flowPragma === undefined) { this.flowPragma = null; } @@ -3993,7 +4014,7 @@ var flow = superClass => class FlowParserMixin extends superClass { const node = this.startNode(); const moduloLoc = this.state.startLoc; this.next(); - this.expectContextual(108); + this.expectContextual(110); if (this.state.lastTokStart > moduloLoc.index + 1) { this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, { at: moduloLoc @@ -4061,7 +4082,7 @@ var flow = superClass => class FlowParserMixin extends superClass { return this.flowParseDeclareFunction(node); } else if (this.match(74)) { return this.flowParseDeclareVariable(node); - } else if (this.eatContextual(125)) { + } else if (this.eatContextual(127)) { if (this.match(16)) { return this.flowParseDeclareModuleExports(node); } else { @@ -4072,11 +4093,11 @@ var flow = superClass => class FlowParserMixin extends superClass { } return this.flowParseDeclareModule(node); } - } else if (this.isContextual(128)) { + } else if (this.isContextual(130)) { return this.flowParseDeclareTypeAlias(node); - } else if (this.isContextual(129)) { + } else if (this.isContextual(131)) { return this.flowParseDeclareOpaqueType(node); - } else if (this.isContextual(127)) { + } else if (this.isContextual(129)) { return this.flowParseDeclareInterface(node); } else if (this.match(82)) { return this.flowParseDeclareExportDeclaration(node, insideModule); @@ -4093,7 +4114,7 @@ var flow = superClass => class FlowParserMixin extends superClass { } flowParseDeclareModule(node) { this.scope.enter(0); - if (this.match(131)) { + if (this.match(133)) { node.id = super.parseExprAtom(); } else { node.id = this.parseIdentifier(); @@ -4105,14 +4126,14 @@ var flow = superClass => class FlowParserMixin extends superClass { let bodyNode = this.startNode(); if (this.match(83)) { this.next(); - if (!this.isContextual(128) && !this.match(87)) { + if (!this.isContextual(130) && !this.match(87)) { this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, { at: this.state.lastTokStartLoc }); } super.parseImport(bodyNode); } else { - this.expectContextual(123, FlowErrors.UnsupportedStatementInDeclareModule); + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); bodyNode = this.flowParseDeclare(bodyNode, true); } body.push(bodyNode); @@ -4160,7 +4181,7 @@ var flow = superClass => class FlowParserMixin extends superClass { node.default = true; return this.finishNode(node, "DeclareExportDeclaration"); } else { - if (this.match(75) || this.isLet() || (this.isContextual(128) || this.isContextual(127)) && !insideModule) { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { const label = this.state.value; throw this.raise(FlowErrors.UnsupportedDeclareExportKind, { at: this.state.startLoc, @@ -4168,11 +4189,11 @@ var flow = superClass => class FlowParserMixin extends superClass { suggestion: exportSuggestions[label] }); } - if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(129)) { + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { node.declaration = this.flowParseDeclare(this.startNode()); node.default = false; return this.finishNode(node, "DeclareExportDeclaration"); - } else if (this.match(55) || this.match(5) || this.isContextual(127) || this.isContextual(128) || this.isContextual(129)) { + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { node = this.parseExport(node, null); if (node.type === "ExportNamedDeclaration") { node.type = "ExportDeclaration"; @@ -4187,7 +4208,7 @@ var flow = superClass => class FlowParserMixin extends superClass { } flowParseDeclareModuleExports(node) { this.next(); - this.expectContextual(109); + this.expectContextual(111); node.typeAnnotation = this.flowParseTypeAnnotation(); this.semicolon(); return this.finishNode(node, "DeclareModuleExports"); @@ -4226,12 +4247,12 @@ var flow = superClass => class FlowParserMixin extends superClass { if (isClass) { node.implements = []; node.mixins = []; - if (this.eatContextual(115)) { + if (this.eatContextual(117)) { do { node.mixins.push(this.flowParseInterfaceExtends()); } while (this.eat(12)); } - if (this.eatContextual(111)) { + if (this.eatContextual(113)) { do { node.implements.push(this.flowParseInterfaceExtends()); } while (this.eat(12)); @@ -4290,7 +4311,7 @@ var flow = superClass => class FlowParserMixin extends superClass { return this.finishNode(node, "TypeAlias"); } flowParseOpaqueType(node, declare) { - this.expectContextual(128); + this.expectContextual(130); node.id = this.flowParseRestrictedIdentifier(true, true); this.scope.declareName(node.id.name, 8201, node.id.loc.start); if (this.match(47)) { @@ -4334,7 +4355,7 @@ var flow = superClass => class FlowParserMixin extends superClass { const node = this.startNode(); node.params = []; this.state.inType = true; - if (this.match(47) || this.match(140)) { + if (this.match(47) || this.match(142)) { this.next(); } else { this.unexpected(); @@ -4391,7 +4412,7 @@ var flow = superClass => class FlowParserMixin extends superClass { } flowParseInterfaceType() { const node = this.startNode(); - this.expectContextual(127); + this.expectContextual(129); node.extends = []; if (this.eat(81)) { do { @@ -4408,7 +4429,7 @@ var flow = superClass => class FlowParserMixin extends superClass { return this.finishNode(node, "InterfaceTypeAnnotation"); } flowParseObjectPropertyKey() { - return this.match(132) || this.match(131) ? super.parseExprAtom() : this.parseIdentifier(true); + return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(true); } flowParseObjectTypeIndexer(node, isStatic, variance) { node.static = isStatic; @@ -4509,7 +4530,7 @@ var flow = superClass => class FlowParserMixin extends superClass { let protoStartLoc = null; let inexactStartLoc = null; const node = this.startNode(); - if (allowProto && this.isContextual(116)) { + if (allowProto && this.isContextual(118)) { const lookahead = this.lookahead(); if (lookahead.type !== 14 && lookahead.type !== 17) { this.next(); @@ -4517,7 +4538,7 @@ var flow = superClass => class FlowParserMixin extends superClass { allowStatic = false; } } - if (allowStatic && this.isContextual(104)) { + if (allowStatic && this.isContextual(106)) { const lookahead = this.lookahead(); if (lookahead.type !== 14 && lookahead.type !== 17) { this.next(); @@ -4547,7 +4568,7 @@ var flow = superClass => class FlowParserMixin extends superClass { nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); } else { let kind = "init"; - if (this.isContextual(98) || this.isContextual(103)) { + if (this.isContextual(99) || this.isContextual(104)) { const lookahead = this.lookahead(); if (tokenIsLiteralPropertyName(lookahead.type)) { kind = this.state.value; @@ -4870,7 +4891,7 @@ var flow = superClass => class FlowParserMixin extends superClass { node.returnType = this.flowParseType(); node.typeParameters = null; return this.finishNode(node, "FunctionTypeAnnotation"); - case 131: + case 133: return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); case 85: case 86: @@ -4880,10 +4901,10 @@ var flow = superClass => class FlowParserMixin extends superClass { case 53: if (this.state.value === "-") { this.next(); - if (this.match(132)) { + if (this.match(134)) { return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); } - if (this.match(133)) { + if (this.match(135)) { return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); } throw this.raise(FlowErrors.UnexpectedSubtractionOperand, { @@ -4892,9 +4913,9 @@ var flow = superClass => class FlowParserMixin extends superClass { } this.unexpected(); return; - case 132: + case 134: return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - case 133: + case 135: return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); case 88: this.next(); @@ -4916,7 +4937,7 @@ var flow = superClass => class FlowParserMixin extends superClass { this.next(); return super.createIdentifier(node, label); } else if (tokenIsIdentifier(this.state.type)) { - if (this.isContextual(127)) { + if (this.isContextual(129)) { return this.flowParseInterfaceType(); } return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); @@ -5001,7 +5022,7 @@ var flow = superClass => class FlowParserMixin extends superClass { return type; } flowParseTypeOrImplicitInstantiation() { - if (this.state.type === 130 && this.state.value === "_") { + if (this.state.type === 132 && this.state.value === "_") { const startLoc = this.state.startLoc; const node = this.parseIdentifier(); return this.flowParseGenericType(startLoc, node); @@ -5057,14 +5078,14 @@ var flow = superClass => class FlowParserMixin extends superClass { return super.parseFunctionBodyAndFinish(node, type, isMethod); } parseStatementLike(flags) { - if (this.state.strict && this.isContextual(127)) { + if (this.state.strict && this.isContextual(129)) { const lookahead = this.lookahead(); if (tokenIsKeywordOrIdentifier(lookahead.type)) { const node = this.startNode(); this.next(); return this.flowParseInterface(node); } - } else if (this.shouldParseEnums() && this.isContextual(124)) { + } else if (this.shouldParseEnums() && this.isContextual(126)) { const node = this.startNode(); this.next(); return this.flowParseEnumDeclaration(node); @@ -5097,7 +5118,7 @@ var flow = superClass => class FlowParserMixin extends superClass { const { type } = this.state; - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 124) { + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { return !this.state.containsEsc; } return super.shouldParseExportDeclaration(); @@ -5106,13 +5127,13 @@ var flow = superClass => class FlowParserMixin extends superClass { const { type } = this.state; - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 124) { + if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { return this.state.containsEsc; } return super.isExportDefaultSpecifier(); } parseExportDefaultExpression() { - if (this.shouldParseEnums() && this.isContextual(124)) { + if (this.shouldParseEnums() && this.isContextual(126)) { const node = this.startNode(); this.next(); return this.flowParseEnumDeclaration(node); @@ -5246,7 +5267,7 @@ var flow = superClass => class FlowParserMixin extends superClass { super.assertModuleNodeAllowed(node); } parseExportDeclaration(node) { - if (this.isContextual(128)) { + if (this.isContextual(130)) { node.exportKind = "type"; const declarationNode = this.startNode(); this.next(); @@ -5257,17 +5278,17 @@ var flow = superClass => class FlowParserMixin extends superClass { } else { return this.flowParseTypeAlias(declarationNode); } - } else if (this.isContextual(129)) { + } else if (this.isContextual(131)) { node.exportKind = "type"; const declarationNode = this.startNode(); this.next(); return this.flowParseOpaqueType(declarationNode, false); - } else if (this.isContextual(127)) { + } else if (this.isContextual(129)) { node.exportKind = "type"; const declarationNode = this.startNode(); this.next(); return this.flowParseInterface(declarationNode); - } else if (this.shouldParseEnums() && this.isContextual(124)) { + } else if (this.shouldParseEnums() && this.isContextual(126)) { node.exportKind = "value"; const declarationNode = this.startNode(); this.next(); @@ -5278,7 +5299,7 @@ var flow = superClass => class FlowParserMixin extends superClass { } eatExportStar(node) { if (super.eatExportStar(node)) return true; - if (this.isContextual(128) && this.lookahead().type === 55) { + if (this.isContextual(130) && this.lookahead().type === 55) { node.exportKind = "type"; this.next(); this.next(); @@ -5306,7 +5327,7 @@ var flow = superClass => class FlowParserMixin extends superClass { const { startLoc } = this.state; - if (this.isContextual(123)) { + if (this.isContextual(125)) { if (super.parseClassMemberFromModifier(classBody, member)) { return; } @@ -5337,7 +5358,7 @@ var flow = superClass => class FlowParserMixin extends superClass { identifierName: fullWord }); } - this.finishToken(130, fullWord); + this.finishToken(132, fullWord); } getTokenFromCode(code) { const next = this.input.charCodeAt(this.state.pos + 1); @@ -5463,7 +5484,7 @@ var flow = superClass => class FlowParserMixin extends superClass { if (node.superClass && this.match(47)) { node.superTypeParameters = this.flowParseTypeParameterInstantiation(); } - if (this.isContextual(111)) { + if (this.isContextual(113)) { this.next(); const implemented = node.implements = []; do { @@ -5565,7 +5586,7 @@ var flow = superClass => class FlowParserMixin extends superClass { } isPotentialImportPhase(isExport) { if (super.isPotentialImportPhase(isExport)) return true; - if (this.isContextual(128)) { + if (this.isContextual(130)) { if (!isExport) return true; const ch = this.lookaheadCharCode(); return ch === 123 || ch === 42; @@ -5679,7 +5700,7 @@ var flow = superClass => class FlowParserMixin extends superClass { var _jsx; let state = null; let jsx; - if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) { + if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { state = this.state.clone(); jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); if (!jsx.error) return jsx.node; @@ -5965,7 +5986,7 @@ var flow = superClass => class FlowParserMixin extends superClass { const startLoc = this.state.startLoc; const endOfInit = () => this.match(12) || this.match(8); switch (this.state.type) { - case 132: + case 134: { const literal = this.parseNumericLiteral(this.state.value); if (endOfInit()) { @@ -5980,7 +6001,7 @@ var flow = superClass => class FlowParserMixin extends superClass { loc: startLoc }; } - case 131: + case 133: { const literal = this.parseStringLiteral(this.state.value); if (endOfInit()) { @@ -6164,7 +6185,7 @@ var flow = superClass => class FlowParserMixin extends superClass { flowEnumParseExplicitType({ enumName }) { - if (!this.eatContextual(101)) return null; + if (!this.eatContextual(102)) return null; if (!tokenIsIdentifier(this.state.type)) { throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, { at: this.state.startLoc, @@ -6592,14 +6613,14 @@ var jsx = superClass => class JSXParserMixin extends superClass { if (this.state.pos === this.state.start) { if (ch === 60 && this.state.canStartJSXElement) { ++this.state.pos; - this.finishToken(140); + this.finishToken(142); } else { super.getTokenFromCode(ch); } return; } out += this.input.slice(chunkStart, this.state.pos); - this.finishToken(139, out); + this.finishToken(141, out); return; case 38: out += this.input.slice(chunkStart, this.state.pos); @@ -6657,7 +6678,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { } } out += this.input.slice(chunkStart, this.state.pos++); - this.finishToken(131, out); + this.finishToken(133, out); } jsxReadEntity() { const startPos = ++this.state.pos; @@ -6697,11 +6718,11 @@ var jsx = superClass => class JSXParserMixin extends superClass { do { ch = this.input.charCodeAt(++this.state.pos); } while (isIdentifierChar(ch) || ch === 45); - this.finishToken(138, this.input.slice(start, this.state.pos)); + this.finishToken(140, this.input.slice(start, this.state.pos)); } jsxParseIdentifier() { const node = this.startNode(); - if (this.match(138)) { + if (this.match(140)) { node.name = this.state.value; } else if (tokenIsKeyword(this.state.type)) { node.name = tokenLabelName(this.state.type); @@ -6748,8 +6769,8 @@ var jsx = superClass => class JSXParserMixin extends superClass { }); } return node; - case 140: - case 131: + case 142: + case 133: return this.parseExprAtom(); default: throw this.raise(JsxErrors.UnsupportedJsxValue, { @@ -6799,7 +6820,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { } jsxParseOpeningElementAt(startLoc) { const node = this.startNodeAt(startLoc); - if (this.eat(141)) { + if (this.eat(143)) { return this.finishNode(node, "JSXOpeningFragment"); } node.name = this.jsxParseElementName(); @@ -6807,21 +6828,21 @@ var jsx = superClass => class JSXParserMixin extends superClass { } jsxParseOpeningElementAfterName(node) { const attributes = []; - while (!this.match(56) && !this.match(141)) { + while (!this.match(56) && !this.match(143)) { attributes.push(this.jsxParseAttribute()); } node.attributes = attributes; node.selfClosing = this.eat(56); - this.expect(141); + this.expect(143); return this.finishNode(node, "JSXOpeningElement"); } jsxParseClosingElementAt(startLoc) { const node = this.startNodeAt(startLoc); - if (this.eat(141)) { + if (this.eat(143)) { return this.finishNode(node, "JSXClosingFragment"); } node.name = this.jsxParseElementName(); - this.expect(141); + this.expect(143); return this.finishNode(node, "JSXClosingElement"); } jsxParseElementAt(startLoc) { @@ -6832,7 +6853,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { if (!openingElement.selfClosing) { contents: for (;;) { switch (this.state.type) { - case 140: + case 142: startLoc = this.state.startLoc; this.next(); if (this.eat(56)) { @@ -6841,7 +6862,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { } children.push(this.jsxParseElementAt(startLoc)); break; - case 139: + case 141: children.push(this.parseExprAtom()); break; case 5: @@ -6905,12 +6926,12 @@ var jsx = superClass => class JSXParserMixin extends superClass { context[context.length - 1] = newContext; } parseExprAtom(refExpressionErrors) { - if (this.match(139)) { + if (this.match(141)) { return this.parseLiteral(this.state.value, "JSXText"); - } else if (this.match(140)) { + } else if (this.match(142)) { return this.jsxParseElement(); } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { - this.replaceToken(140); + this.replaceToken(142); return this.jsxParseElement(); } else { return super.parseExprAtom(refExpressionErrors); @@ -6933,7 +6954,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { } if (code === 62) { ++this.state.pos; - this.finishToken(141); + this.finishToken(143); return; } if ((code === 34 || code === 39) && context === types.j_oTag) { @@ -6943,7 +6964,7 @@ var jsx = superClass => class JSXParserMixin extends superClass { } if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { ++this.state.pos; - this.finishToken(140); + this.finishToken(142); return; } super.getTokenFromCode(code); @@ -6953,12 +6974,12 @@ var jsx = superClass => class JSXParserMixin extends superClass { context, type } = this.state; - if (type === 56 && prevType === 140) { + if (type === 56 && prevType === 142) { context.splice(-2, 2, types.j_cTag); this.state.canStartJSXElement = false; - } else if (type === 140) { + } else if (type === 142) { context.push(types.j_oTag); - } else if (type === 141) { + } else if (type === 143) { const out = context[context.length - 1]; if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { context.pop(); @@ -7096,7 +7117,7 @@ class LValParser extends NodeUtils { this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, { at: node }); - } else if (parenthesized.type !== "MemberExpression") { + } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { this.raise(Errors.InvalidParenthesizedAssignment, { at: node }); @@ -7326,7 +7347,7 @@ class LValParser extends NodeUtils { } = this.state; if (type === 21) { return this.parseBindingRestProperty(prop); - } else if (type === 136) { + } else if (type === 138) { this.expectPlugin("destructuringPrivate", startLoc); this.classScope.usePrivateName(this.state.value, startLoc); prop.key = this.parsePrivateName(); @@ -7368,6 +7389,9 @@ class LValParser extends NodeUtils { ObjectPattern: "properties" }, type); } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } checkLVal(expression, { in: ancestor, binding = 64, @@ -7378,7 +7402,17 @@ class LValParser extends NodeUtils { var _expression$extra; const type = expression.type; if (this.isObjectMethod(expression)) return; - if (type === "MemberExpression") { + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, { + at: expression, + ancestor + }); + } + } if (binding !== 64) { this.raise(Errors.InvalidPropertyBindingPattern, { at: expression @@ -7413,7 +7447,7 @@ class LValParser extends NodeUtils { return; } const [key, isParenthesizedExpression] = Array.isArray(validity) ? validity : [validity, type === "ParenthesizedExpression"]; - const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" || type === "ParenthesizedExpression" ? { + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { type } : ancestor; for (const child of [].concat(expression[key])) { @@ -7552,7 +7586,6 @@ const TSErrors = ParseErrorEnum`typescript`({ InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", MissingInterfaceName: "'interface' declarations must be followed by an identifier.", - MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", @@ -7645,7 +7678,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return tokenIsIdentifier(this.state.type); } tsTokenCanFollowModifier() { - return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(136) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); + return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); } tsNextTokenCanFollowModifier() { this.next(); @@ -7812,7 +7845,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const node = this.startNode(); this.expect(83); this.expect(10); - if (!this.match(131)) { + if (!this.match(133)) { this.raise(TSErrors.UnsupportedImportTypeArgument, { at: this.state.startLoc }); @@ -7886,7 +7919,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseTypeParameters(parseModifiers) { const node = this.startNode(); - if (this.match(47) || this.match(140)) { + if (this.match(47) || this.match(142)) { this.next(); } else { this.unexpected(); @@ -8081,9 +8114,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { tsIsStartOfMappedType() { this.next(); if (this.eat(53)) { - return this.isContextual(120); + return this.isContextual(122); } - if (this.isContextual(120)) { + if (this.isContextual(122)) { this.next(); } if (!this.match(0)) { @@ -8108,8 +8141,8 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.match(53)) { node.readonly = this.state.value; this.next(); - this.expectContextual(120); - } else if (this.eatContextual(120)) { + this.expectContextual(122); + } else if (this.eatContextual(122)) { node.readonly = true; } this.expect(0); @@ -8132,9 +8165,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const node = this.startNode(); node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); let seenOptionalElement = false; - let labeledElements = null; node.elementTypes.forEach(elementNode => { - var _labeledElements; const { type } = elementNode; @@ -8144,18 +8175,6 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { }); } seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); - let checkType = type; - if (type === "TSRestType") { - elementNode = elementNode.typeAnnotation; - checkType = elementNode.type; - } - const isLabeled = checkType === "TSNamedTupleMember"; - (_labeledElements = labeledElements) != null ? _labeledElements : labeledElements = isLabeled; - if (labeledElements !== isLabeled) { - this.raise(TSErrors.MixedLabeledAndUnlabeledElements, { - at: elementNode - }); - } }); return this.finishNode(node, "TSTupleType"); } @@ -8252,9 +8271,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { tsParseLiteralTypeNode() { const node = this.startNode(); switch (this.state.type) { - case 132: + case 134: + case 135: case 133: - case 131: case 85: case 86: node.literal = super.parseExprAtom(); @@ -8275,7 +8294,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseThisTypeOrThisTypePredicate() { const thisKeyword = this.tsParseThisTypeNode(); - if (this.isContextual(114) && !this.hasPrecedingLineBreak()) { + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { return this.tsParseThisTypePredicate(thisKeyword); } else { return thisKeyword; @@ -8283,9 +8302,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseNonArrayType() { switch (this.state.type) { - case 131: - case 132: case 133: + case 134: + case 135: case 85: case 86: return this.tsParseLiteralTypeNode(); @@ -8293,7 +8312,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.state.value === "-") { const node = this.startNode(); const nextToken = this.lookahead(); - if (nextToken.type !== 132 && nextToken.type !== 133) { + if (nextToken.type !== 134 && nextToken.type !== 135) { this.unexpected(); } node.literal = this.parseMaybeUnary(); @@ -8375,7 +8394,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseInferType() { const node = this.startNode(); - this.expectContextual(113); + this.expectContextual(115); const typeParameter = this.startNode(); typeParameter.name = this.tsParseTypeParameterName(); typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); @@ -8392,7 +8411,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseTypeOperatorOrHigher() { const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; - return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(113) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); } tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { const node = this.startNode(); @@ -8523,13 +8542,13 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseTypePredicatePrefix() { const id = this.parseIdentifier(); - if (this.isContextual(114) && !this.hasPrecedingLineBreak()) { + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { this.next(); return id; } } tsParseTypePredicateAsserts() { - if (this.state.type !== 107) { + if (this.state.type !== 109) { return false; } const containsEsc = this.state.containsEsc; @@ -8568,7 +8587,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(node, "TSConditionalType"); } isAbstractConstructorSignature() { - return this.isContextual(122) && this.lookahead().type === 77; + return this.isContextual(124) && this.lookahead().type === 77; } tsParseNonConditionalType() { if (this.tsIsStartOfFunctionType()) { @@ -8616,7 +8635,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseInterfaceDeclaration(node, properties = {}) { if (this.hasFollowingLineBreak()) return null; - this.expectContextual(127); + this.expectContextual(129); if (properties.declare) node.declare = true; if (tokenIsIdentifier(this.state.type)) { node.id = this.parseIdentifier(); @@ -8642,7 +8661,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { node.typeAnnotation = this.tsInType(() => { node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); this.expect(29); - if (this.isContextual(112) && this.lookahead().type !== 16) { + if (this.isContextual(114) && this.lookahead().type !== 16) { const node = this.startNode(); this.next(); return this.finishNode(node, "TSIntrinsicKeyword"); @@ -8707,7 +8726,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseEnumMember() { const node = this.startNode(); - node.id = this.match(131) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + node.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); if (this.eat(29)) { node.initializer = super.parseMaybeAssignAllowIn(); } @@ -8716,7 +8735,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { tsParseEnumDeclaration(node, properties = {}) { if (properties.const) node.const = true; if (properties.declare) node.declare = true; - this.expectContextual(124); + this.expectContextual(126); node.id = this.parseIdentifier(); this.checkIdentifier(node.id, node.const ? 8971 : 8459); this.expect(5); @@ -8751,10 +8770,10 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(node, "TSModuleDeclaration"); } tsParseAmbientExternalModuleDeclaration(node) { - if (this.isContextual(110)) { + if (this.isContextual(112)) { node.global = true; node.id = this.parseIdentifier(); - } else if (this.match(131)) { + } else if (this.match(133)) { node.id = super.parseStringLiteral(this.state.value); } else { this.unexpected(); @@ -8786,16 +8805,16 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(node, "TSImportEqualsDeclaration"); } tsIsExternalModuleReference() { - return this.isContextual(117) && this.lookaheadCharCode() === 40; + return this.isContextual(119) && this.lookaheadCharCode() === 40; } tsParseModuleReference() { return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); } tsParseExternalModuleReference() { const node = this.startNode(); - this.expectContextual(117); + this.expectContextual(119); this.expect(10); - if (!this.match(131)) { + if (!this.match(133)) { this.unexpected(); } node.expression = super.parseExprAtom(); @@ -8829,7 +8848,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } let startType = this.state.type; let kind; - if (this.isContextual(99)) { + if (this.isContextual(100)) { startType = 74; kind = "let"; } @@ -8841,11 +8860,11 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { case 80: nany.declare = true; return this.parseClass(nany, true, false); - case 124: + case 126: return this.tsParseEnumDeclaration(nany, { declare: true }); - case 110: + case 112: return this.tsParseAmbientExternalModuleDeclaration(nany); case 75: case 74: @@ -8858,7 +8877,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const: true, declare: true }); - case 127: + case 129: { const result = this.tsParseInterfaceDeclaration(nany, { declare: true @@ -8911,7 +8930,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { break; case "module": if (this.tsCheckLineTerminator(next)) { - if (this.match(131)) { + if (this.match(133)) { return this.tsParseAmbientExternalModuleDeclaration(node); } else if (tokenIsIdentifier(this.state.type)) { return this.tsParseModuleOrNamespaceDeclaration(node); @@ -9165,7 +9184,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } parseExprOp(left, leftStartLoc, minPrec) { let isSatisfies; - if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(118)))) { + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { const node = this.startNodeAt(leftStartLoc); node.expression = left; node.typeAnnotation = this.tsInType(() => { @@ -9203,7 +9222,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { checkDuplicateExports() {} isPotentialImportPhase(isExport) { if (super.isPotentialImportPhase(isExport)) return true; - if (this.isContextual(128)) { + if (this.isContextual(130)) { const ch = this.lookaheadCharCode(); return isExport ? ch === 123 || ch === 42 : ch !== 61; } @@ -9218,7 +9237,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } } parseImport(node) { - if (this.match(131)) { + if (this.match(133)) { node.importKind = "value"; return super.parseImport(node); } @@ -9226,7 +9245,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { node.importKind = "value"; return this.tsParseImportEqualsDeclaration(node); - } else if (this.isContextual(128)) { + } else if (this.isContextual(130)) { const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); if (this.lookaheadCharCode() === 61) { return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); @@ -9247,7 +9266,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.match(83)) { this.next(); let maybeDefaultIdentifier = null; - if (this.isContextual(128) && this.isPotentialImportPhase(false)) { + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); } else { node.importKind = "value"; @@ -9261,7 +9280,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(assign, "TSExportAssignment"); } else if (this.eatContextual(93)) { const decl = node; - this.expectContextual(126); + this.expectContextual(128); decl.id = this.parseIdentifier(); this.semicolon(); return this.finishNode(decl, "TSNamespaceExportDeclaration"); @@ -9270,7 +9289,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } } isAbstractClass() { - return this.isContextual(122) && this.lookahead().type === 80; + return this.isContextual(124) && this.lookahead().type === 80; } parseExportDefaultExpression() { if (this.isAbstractClass()) { @@ -9279,7 +9298,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { cls.abstract = true; return this.parseClass(cls, true, true); } - if (this.match(127)) { + if (this.match(129)) { const result = this.tsParseInterfaceDeclaration(this.startNode()); if (result) return result; } @@ -9316,10 +9335,10 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const: true }); } - if (this.isContextual(124)) { + if (this.isContextual(126)) { return this.tsParseEnumDeclaration(this.startNode()); } - if (this.isContextual(127)) { + if (this.isContextual(129)) { const result = this.tsParseInterfaceDeclaration(this.startNode()); if (result) return result; } @@ -9337,7 +9356,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { }); } tsIsStartOfStaticBlocks() { - return this.isContextual(104) && this.lookaheadCharCode() === 123; + return this.isContextual(106) && this.lookaheadCharCode() === 123; } parseClassMember(classBody, member, state) { const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; @@ -9459,12 +9478,12 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return node; } parseExportDeclaration(node) { - if (!this.state.isAmbientContext && this.isContextual(123)) { + if (!this.state.isAmbientContext && this.isContextual(125)) { return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); } const startLoc = this.state.startLoc; - const isDeclare = this.eatContextual(123); - if (isDeclare && (this.isContextual(123) || !this.shouldParseExportDeclaration())) { + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, { at: this.state.startLoc }); @@ -9482,7 +9501,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return declaration; } parseClassId(node, isStatement, optionalId, bindingType) { - if ((!isStatement || optionalId) && this.isContextual(111)) { + if ((!isStatement || optionalId) && this.isContextual(113)) { return; } super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); @@ -9577,7 +9596,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (node.superClass && (this.match(47) || this.match(51))) { node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); } - if (this.eatContextual(111)) { + if (this.eatContextual(113)) { node.implements = this.tsParseHeritageClause("implements"); } } @@ -9613,7 +9632,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { let state; let jsx; let typeCast; - if (this.hasPlugin("jsx") && (this.match(140) || this.match(47))) { + if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { state = this.state.clone(); jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); if (!jsx.error) return jsx.node; @@ -9926,7 +9945,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.match(80)) { node.abstract = true; return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); - } else if (this.isContextual(127)) { + } else if (this.isContextual(129)) { if (!this.hasFollowingLineBreak()) { node.abstract = true; this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, { @@ -10123,13 +10142,13 @@ const PlaceholderErrors = ParseErrorEnum`placeholders`({ }); var placeholders = superClass => class PlaceholdersParserMixin extends superClass { parsePlaceholder(expectedNode) { - if (this.match(142)) { + if (this.match(144)) { const node = this.startNode(); this.next(); this.assertNoSpace(); node.name = super.parseIdentifier(true); this.assertNoSpace(); - this.expect(142); + this.expect(144); return this.finishPlaceholder(node, expectedNode); } } @@ -10140,7 +10159,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas } getTokenFromCode(code) { if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { - this.finishOp(142, 2); + this.finishOp(144, 2); } else { super.getTokenFromCode(code); } @@ -10174,7 +10193,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas return true; } const nextToken = this.lookahead(); - if (nextToken.type === 142) { + if (nextToken.type === 144) { return true; } return false; @@ -10211,7 +10230,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas const oldStrict = this.state.strict; const placeholder = this.parsePlaceholder("Identifier"); if (placeholder) { - if (this.match(81) || this.match(142) || this.match(5)) { + if (this.match(81) || this.match(144) || this.match(5)) { node.id = placeholder; } else if (optionalId || !isStatement) { node.id = null; @@ -10232,7 +10251,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas parseExport(node, decorators) { const placeholder = this.parsePlaceholder("Identifier"); if (!placeholder) return super.parseExport(node, decorators); - if (!this.isContextual(97) && !this.match(12)) { + if (!this.isContextual(98) && !this.match(12)) { node.specifiers = []; node.source = null; node.declaration = this.finishPlaceholder(placeholder, "Declaration"); @@ -10248,7 +10267,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas if (this.match(65)) { const next = this.nextTokenStart(); if (this.isUnparsedContextual(next, "from")) { - if (this.input.startsWith(tokenLabelName(142), this.nextTokenStartSince(next + 4))) { + if (this.input.startsWith(tokenLabelName(144), this.nextTokenStartSince(next + 4))) { return true; } } @@ -10276,7 +10295,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas const placeholder = this.parsePlaceholder("Identifier"); if (!placeholder) return super.parseImport(node); node.specifiers = []; - if (!this.isContextual(97) && !this.match(12)) { + if (!this.isContextual(98) && !this.match(12)) { node.source = this.finishPlaceholder(placeholder, "StringLiteral"); this.semicolon(); return this.finishNode(node, "ImportDeclaration"); @@ -10288,7 +10307,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas const hasStarImport = this.maybeParseStarImportSpecifier(node); if (!hasStarImport) this.parseNamedImportSpecifiers(node); } - this.expectContextual(97); + this.expectContextual(98); node.source = this.parseImportSource(); this.semicolon(); return this.finishNode(node, "ImportDeclaration"); @@ -10432,6 +10451,9 @@ function validatePlugins(plugins) { error.missingPlugins = "doExpressions"; throw error; } + if (hasPlugin(plugins, "optionalChainingAssign") && getPluginOption(plugins, "optionalChainingAssign", "version") !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } } const mixinPlugins = { estree, @@ -10457,6 +10479,7 @@ const defaultOptions = { strictMode: null, ranges: false, tokens: false, + createImportExpressions: false, createParenthesizedExpressions: false, errorRecovery: false, attachComment: true, @@ -10511,7 +10534,7 @@ class ExpressionParser extends LValParser { this.enterInitialScopes(); this.nextToken(); const expr = this.parseExpression(); - if (!this.match(137)) { + if (!this.match(139)) { this.unexpected(); } this.finalizeRemainingComments(); @@ -10554,7 +10577,7 @@ class ExpressionParser extends LValParser { } parseMaybeAssign(refExpressionErrors, afterLeftParse) { const startLoc = this.state.startLoc; - if (this.isContextual(106)) { + if (this.isContextual(108)) { if (this.prodParam.hasYield) { let left = this.parseYield(); if (afterLeftParse) { @@ -10633,7 +10656,7 @@ class ExpressionParser extends LValParser { return expr; } parseMaybeUnaryOrPrivate(refExpressionErrors) { - return this.match(136) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); } parseExprOps(refExpressionErrors) { const startLoc = this.state.startLoc; @@ -10708,7 +10731,7 @@ class ExpressionParser extends LValParser { }); case "smart": return this.withTopicBindingContext(() => { - if (this.prodParam.hasYield && this.isContextual(106)) { + if (this.prodParam.hasYield && this.isContextual(108)) { throw this.raise(Errors.PipeBodyIsTighter, { at: this.state.startLoc }); @@ -10896,7 +10919,7 @@ class ExpressionParser extends LValParser { if (computed) { node.property = this.parseExpression(); this.expect(3); - } else if (this.match(136)) { + } else if (this.match(138)) { if (base.type === "Super") { this.raise(Errors.SuperPrivateField, { at: startLoc @@ -11073,12 +11096,18 @@ class ExpressionParser extends LValParser { if (this.match(16)) { return this.parseImportMetaProperty(node); } - if (!this.match(10)) { + if (this.match(10)) { + if (this.options.createImportExpressions) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { this.raise(Errors.UnsupportedImport, { at: this.state.lastTokStartLoc }); + return this.finishNode(node, "Import"); } - return this.finishNode(node, "Import"); case 78: node = this.startNode(); this.next(); @@ -11093,13 +11122,13 @@ class ExpressionParser extends LValParser { this.readRegexp(); return this.parseRegExpLiteral(this.state.value); } - case 132: + case 134: return this.parseNumericLiteral(this.state.value); - case 133: + case 135: return this.parseBigIntLiteral(this.state.value); - case 134: + case 136: return this.parseDecimalLiteral(this.state.value); - case 131: + case 133: return this.parseStringLiteral(this.state.value); case 84: return this.parseNullLiteral(); @@ -11155,7 +11184,7 @@ class ExpressionParser extends LValParser { }); } } - case 136: + case 138: { this.raise(Errors.PrivateInExpectedIn, { at: this.state.startLoc, @@ -11199,7 +11228,7 @@ class ExpressionParser extends LValParser { } default: if (tokenIsIdentifier(type)) { - if (this.isContextual(125) && this.lookaheadInLineCharCode() === 123) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { return this.parseModuleExpression(); } const canBeArrow = this.state.potentialArrowAt === this.state.start; @@ -11351,7 +11380,7 @@ class ExpressionParser extends LValParser { if (this.prodParam.hasYield && this.match(16)) { const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); this.next(); - if (this.match(102)) { + if (this.match(103)) { this.expectPlugin("functionSent"); } else if (!this.hasPlugin("functionSent")) { this.unexpected(); @@ -11376,13 +11405,26 @@ class ExpressionParser extends LValParser { parseImportMetaProperty(node) { const id = this.createIdentifier(this.startNodeAtNode(node), "import"); this.next(); - if (this.isContextual(100)) { + if (this.isContextual(101)) { if (!this.inModule) { this.raise(Errors.ImportMetaOutsideModule, { at: id }); } this.sawUnambiguousESM = true; + } else if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + if (!isSource) this.unexpected(); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + if (!this.options.createImportExpressions) { + throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, { + at: this.state.startLoc, + phase: this.state.value + }); + } + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); } return this.parseMetaProperty(node, id, "meta"); } @@ -11542,10 +11584,12 @@ class ExpressionParser extends LValParser { return this.finishNode(node, "NewExpression"); } parseNewCallee(node) { - node.callee = this.parseNoCallExpr(); - if (node.callee.type === "Import") { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { this.raise(Errors.ImportCallNotNewExpression, { - at: node.callee + at: callee }); } } @@ -11788,19 +11832,19 @@ class ExpressionParser extends LValParser { key = this.parseIdentifier(true); } else { switch (type) { - case 132: + case 134: key = this.parseNumericLiteral(value); break; - case 131: + case 133: key = this.parseStringLiteral(value); break; - case 133: + case 135: key = this.parseBigIntLiteral(value); break; - case 134: + case 136: key = this.parseDecimalLiteral(value); break; - case 136: + case 138: { const privateKeyLoc = this.state.startLoc; if (refExpressionErrors != null) { @@ -11820,7 +11864,7 @@ class ExpressionParser extends LValParser { } } prop.key = key; - if (type !== 136) { + if (type !== 138) { prop.computed = false; } } @@ -12006,7 +12050,7 @@ class ExpressionParser extends LValParser { const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); if (liberal) { if (tokenIsKeyword) { - this.replaceToken(130); + this.replaceToken(132); } } else { this.checkReservedWord(name, startLoc, tokenIsKeyword, false); @@ -12101,7 +12145,7 @@ class ExpressionParser extends LValParser { const { type } = this.state; - return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 101 && !this.state.containsEsc || type === 135 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 137 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; } parseYield() { const node = this.startNode(); @@ -12115,7 +12159,7 @@ class ExpressionParser extends LValParser { delegating = this.eat(55); switch (this.state.type) { case 13: - case 137: + case 139: case 8: case 11: case 3: @@ -12131,6 +12175,22 @@ class ExpressionParser extends LValParser { node.argument = argument; return this.finishNode(node, "YieldExpression"); } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { + node.options = null; + } + if (this.eat(12)) { + this.expectImportAttributesPlugin(); + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + this.eat(12); + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } checkPipelineAtInfixOperator(left, leftStartLoc) { if (this.hasPlugin(["pipelineOperator", { proposal: "smart" @@ -12295,7 +12355,7 @@ function babel7CompatTokens(tokens, input) { } = token; if (typeof type === "number") { { - if (type === 136) { + if (type === 138) { const { loc, start, @@ -12312,7 +12372,7 @@ function babel7CompatTokens(tokens, input) { startLoc: loc.start, endLoc: hashEndLoc }), new Token({ - type: getExportedToken(130), + type: getExportedToken(132), value: value, start: hashEndPos, end: end, @@ -12403,7 +12463,7 @@ class StatementParser extends ExpressionParser { } return this.finishNode(file, "File"); } - parseProgram(program, end = 137, sourceType = this.options.sourceType) { + parseProgram(program, end = 139, sourceType = this.options.sourceType) { program.sourceType = sourceType; program.interpreter = this.parseInterpreterDirective(); this.parseBlockBody(program, true, true, end); @@ -12416,7 +12476,7 @@ class StatementParser extends ExpressionParser { } } let finishedProgram; - if (end === 137) { + if (end === 139) { finishedProgram = this.finishNode(program, "Program"); } else { finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); @@ -12448,7 +12508,7 @@ class StatementParser extends ExpressionParser { return this.finishNode(node, "InterpreterDirective"); } isLet() { - if (!this.isContextual(99)) { + if (!this.isContextual(100)) { return false; } return this.hasFollowingBindingAtom(); @@ -12487,7 +12547,7 @@ class StatementParser extends ExpressionParser { type, containsEsc } = this.lookahead(); - if (type === 101 && !containsEsc) { + if (type === 102 && !containsEsc) { return false; } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) { this.expectPlugin("explicitResourceManagement"); @@ -12585,7 +12645,7 @@ class StatementParser extends ExpressionParser { return this.parseVarStatement(node, "await using"); } break; - case 105: + case 107: if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier()) { break; } @@ -12600,7 +12660,7 @@ class StatementParser extends ExpressionParser { }); } return this.parseVarStatement(node, "using"); - case 99: + case 100: { if (this.state.containsEsc) { break; @@ -12763,7 +12823,7 @@ class StatementParser extends ExpressionParser { while (this.eat(16)) { const node = this.startNodeAt(startLoc); node.object = expr; - if (this.match(136)) { + if (this.match(138)) { this.classScope.usePrivateName(this.state.value, this.state.startLoc); node.property = this.parsePrivateName(); } else { @@ -12853,10 +12913,10 @@ class StatementParser extends ExpressionParser { } return this.parseFor(node, null); } - const startsWithLet = this.isContextual(99); + const startsWithLet = this.isContextual(100); { const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing(); - const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(105) && this.startsUsingForOf(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf(); const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; if (this.match(74) || this.match(75) || isLetOrUsing) { const initNode = this.startNode(); @@ -12881,7 +12941,7 @@ class StatementParser extends ExpressionParser { at: init }); } - if ((isForIn || this.isContextual(101)) && init.declarations.length === 1) { + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { return this.parseForIn(node, init, awaitAt); } if (awaitAt !== null) { @@ -12893,7 +12953,7 @@ class StatementParser extends ExpressionParser { const startsWithAsync = this.isContextual(95); const refExpressionErrors = new ExpressionErrors(); const init = this.parseExpression(true, refExpressionErrors); - const isForOf = this.isContextual(101); + const isForOf = this.isContextual(102); if (isForOf) { if (startsWithLet) { this.raise(Errors.ForOfLet, { @@ -13203,12 +13263,12 @@ class StatementParser extends ExpressionParser { this.parseVarId(decl, kind); decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); if (decl.init === null && !allowMissingInitializer) { - if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(101)))) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { this.raise(Errors.DeclarationMissingInitializer, { at: this.state.lastTokEndLoc, kind: "destructuring" }); - } else if (kind === "const" && !(this.match(58) || this.isContextual(101))) { + } else if (kind === "const" && !(this.match(58) || this.isContextual(102))) { this.raise(Errors.DeclarationMissingInitializer, { at: this.state.lastTokEndLoc, kind: "const" @@ -13371,7 +13431,7 @@ class StatementParser extends ExpressionParser { return false; } parseClassMember(classBody, member, state) { - const isStatic = this.isContextual(104); + const isStatic = this.isContextual(106); if (isStatic) { if (this.parseClassMemberFromModifier(classBody, member)) { return; @@ -13395,7 +13455,7 @@ class StatementParser extends ExpressionParser { this.parsePropertyNamePrefixOperator(member); if (this.eat(55)) { method.kind = "method"; - const isPrivateName = this.match(136); + const isPrivateName = this.match(138); this.parseClassElementName(method); if (isPrivateName) { this.pushClassPrivateMethod(classBody, privateMethod, true, false); @@ -13410,7 +13470,7 @@ class StatementParser extends ExpressionParser { return; } const isContextual = tokenIsIdentifier(this.state.type) && !this.state.containsEsc; - const isPrivate = this.match(136); + const isPrivate = this.match(138); const key = this.parseClassElementName(member); const maybeQuestionTokenStartLoc = this.state.startLoc; this.parsePostMemberNameModifiers(publicMember); @@ -13451,7 +13511,7 @@ class StatementParser extends ExpressionParser { this.unexpected(maybeQuestionTokenStartLoc); } method.kind = "method"; - const isPrivate = this.match(136); + const isPrivate = this.match(138); this.parseClassElementName(method); this.parsePostMemberNameModifiers(publicMember); if (isPrivate) { @@ -13467,7 +13527,7 @@ class StatementParser extends ExpressionParser { } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(55) && this.isLineTerminator())) { this.resetPreviousNodeTrailingComments(key); method.kind = key.name; - const isPrivate = this.match(136); + const isPrivate = this.match(138); this.parseClassElementName(publicMethod); if (isPrivate) { this.pushClassPrivateMethod(classBody, privateMethod, false, false); @@ -13483,7 +13543,7 @@ class StatementParser extends ExpressionParser { } else if (isContextual && key.name === "accessor" && !this.isLineTerminator()) { this.expectPlugin("decoratorAutoAccessors"); this.resetPreviousNodeTrailingComments(key); - const isPrivate = this.match(136); + const isPrivate = this.match(138); this.parseClassElementName(publicProp); this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); } else if (this.isLineTerminator()) { @@ -13501,12 +13561,12 @@ class StatementParser extends ExpressionParser { type, value } = this.state; - if ((type === 130 || type === 131) && member.static && value === "prototype") { + if ((type === 132 || type === 133) && member.static && value === "prototype") { this.raise(Errors.StaticPrototype, { at: this.state.startLoc }); } - if (type === 136) { + if (type === 138) { if (value === "constructor") { this.raise(Errors.ConstructorClassPrivateField, { at: this.state.startLoc @@ -13643,7 +13703,7 @@ class StatementParser extends ExpressionParser { this.unexpected(null, 5); } if (hasNamespace && parseAfterNamespace) { - this.unexpected(null, 97); + this.unexpected(null, 98); } let hasDeclaration; if (isFromRequired || hasSpecifiers) { @@ -13784,14 +13844,14 @@ class StatementParser extends ExpressionParser { type } = this.state; if (tokenIsIdentifier(type)) { - if (type === 95 && !this.state.containsEsc || type === 99) { + if (type === 95 && !this.state.containsEsc || type === 100) { return false; } - if ((type === 128 || type === 127) && !this.state.containsEsc) { + if ((type === 130 || type === 129) && !this.state.containsEsc) { const { type: nextType } = this.lookahead(); - if (tokenIsIdentifier(nextType) && nextType !== 97 || nextType === 5) { + if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) { this.expectOnePlugin(["flow", "typescript"]); return false; } @@ -13811,7 +13871,7 @@ class StatementParser extends ExpressionParser { return false; } parseExportFrom(node, expect) { - if (this.eatContextual(97)) { + if (this.eatContextual(98)) { node.source = this.parseImportSource(); this.checkExport(node); this.maybeParseImportAttributes(node); @@ -13935,8 +13995,8 @@ class StatementParser extends ExpressionParser { this.expect(12); if (this.eat(8)) break; } - const isMaybeTypeOnly = this.isContextual(128); - const isString = this.match(131); + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(133); const node = this.startNode(); node.local = this.parseModuleExportName(); nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); @@ -13954,7 +14014,7 @@ class StatementParser extends ExpressionParser { return this.finishNode(node, "ExportSpecifier"); } parseModuleExportName() { - if (this.match(131)) { + if (this.match(133)) { const result = this.parseStringLiteral(this.state.value); const surrogate = result.value.match(loneSurrogate); if (surrogate) { @@ -13979,11 +14039,27 @@ class StatementParser extends ExpressionParser { return false; } checkImportReflection(node) { - if (node.module) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, { + at: specifiers[0].loc.start + }); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, { + at: specifiers[0].loc.start + }); + } + } else if (node.module) { var _node$assertions; - if (node.specifiers.length !== 1 || node.specifiers[0].type !== "ImportDefaultSpecifier") { + if (singleBindingType !== "ImportDefaultSpecifier") { this.raise(Errors.ImportReflectionNotBinding, { - at: node.specifiers[0].loc.start + at: specifiers[0].loc.start }); } if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { @@ -14019,7 +14095,8 @@ class StatementParser extends ExpressionParser { } } isPotentialImportPhase(isExport) { - return !isExport && this.isContextual(125); + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); } applyImportPhase(node, isExport, phase, loc) { if (isExport) { @@ -14031,6 +14108,15 @@ class StatementParser extends ExpressionParser { } else if (this.hasPlugin("importReflection")) { node.module = false; } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } } parseMaybeImportPhase(node, isExport) { if (!this.isPotentialImportPhase(isExport)) { @@ -14041,7 +14127,7 @@ class StatementParser extends ExpressionParser { const { type } = this.state; - const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 97 || this.lookaheadCharCode() === 102 : type !== 12; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; if (isImportPhase) { this.resetPreviousIdentifierLeadingComments(phaseIdentifier); this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start); @@ -14055,10 +14141,10 @@ class StatementParser extends ExpressionParser { const { type } = this.state; - return tokenIsIdentifier(type) ? type !== 97 || this.lookaheadCharCode() === 102 : type !== 12; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; } parseImport(node) { - if (this.match(131)) { + if (this.match(133)) { return this.parseImportSourceAndAttributes(node); } return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); @@ -14069,7 +14155,7 @@ class StatementParser extends ExpressionParser { const parseNext = !hasDefault || this.eat(12); const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); - this.expectContextual(97); + this.expectContextual(98); return this.parseImportSourceAndAttributes(node); } parseImportSourceAndAttributes(node) { @@ -14083,7 +14169,7 @@ class StatementParser extends ExpressionParser { return this.finishNode(node, "ImportDeclaration"); } parseImportSource() { - if (!this.match(131)) this.unexpected(); + if (!this.match(133)) this.unexpected(); return this.parseExprAtom(); } parseImportSpecifierLocal(node, specifier, type) { @@ -14116,13 +14202,13 @@ class StatementParser extends ExpressionParser { }); } attrNames.add(keyName); - if (this.match(131)) { + if (this.match(133)) { node.key = this.parseStringLiteral(keyName); } else { node.key = this.parseIdentifier(true); } this.expect(14); - if (!this.match(131)) { + if (!this.match(133)) { throw this.raise(Errors.ModuleAttributeInvalidValue, { at: this.state.startLoc }); @@ -14152,7 +14238,7 @@ class StatementParser extends ExpressionParser { } attributes.add(node.key.name); this.expect(14); - if (!this.match(131)) { + if (!this.match(133)) { throw this.raise(Errors.ModuleAttributeInvalidValue, { at: this.state.startLoc }); @@ -14243,8 +14329,8 @@ class StatementParser extends ExpressionParser { if (this.eat(8)) break; } const specifier = this.startNode(); - const importedIsString = this.match(131); - const isMaybeTypeOnly = this.isContextual(128); + const importedIsString = this.match(133); + const isMaybeTypeOnly = this.isContextual(130); specifier.imported = this.parseModuleExportName(); const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); node.specifiers.push(importSpecifier); diff --git a/tools/node_modules/eslint/node_modules/@babel/parser/package.json b/tools/node_modules/eslint/node_modules/@babel/parser/package.json index 1d8dd2bb3dd4b0..768f887baf9b6f 100644 --- a/tools/node_modules/eslint/node_modules/@babel/parser/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/parser", - "version": "7.22.16", + "version": "7.23.0", "description": "A JavaScript parser", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-parser", @@ -36,9 +36,9 @@ "devDependencies": { "@babel/code-frame": "^7.22.13", "@babel/helper-check-duplicate-nodes": "^7.22.5", - "@babel/helper-fixtures": "^7.22.13", + "@babel/helper-fixtures": "^7.22.19", "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.20", "charcodes": "^0.2.0" }, "bin": "./bin/babel-parser.js", diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/index.js index ef4fbabc184448..38255007ece047 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/index.js @@ -1,13 +1,5 @@ "use strict"; -if (typeof process === "object" && process.version === "v20.6.0") { - if (exports["___internal__alreadyRunning" + ""]) return; - Object.defineProperty(exports, "___internal__alreadyRunning", { - value: true, - enumerable: false, - configurable: true - }); -} Object.defineProperty(exports, "__esModule", { value: true }); @@ -99,6 +91,5 @@ traverse.hasType = function (tree, type, denylistTypes) { return state.has; }; traverse.cache = cache; -if (typeof process === "object" && process.version === "v20.6.0") delete exports["___internal__alreadyRunning" + ""]; //# sourceMappingURL=index.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/conversion.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/conversion.js index d582891838a016..a7884c7ce0a3e3 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/conversion.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/conversion.js @@ -88,12 +88,10 @@ function ensureBlock() { return this.node; } { - { - exports.arrowFunctionToShadowed = function () { - if (!this.isArrowFunctionExpression()) return; - this.arrowFunctionToExpression(); - }; - } + exports.arrowFunctionToShadowed = function () { + if (!this.isArrowFunctionExpression()) return; + this.arrowFunctionToExpression(); + }; } function unwrapFunctionEnvironment() { if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration()) { diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/evaluation.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/evaluation.js index 2f96dc12ecf67b..6ddf14d999c994 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/evaluation.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/evaluation.js @@ -5,10 +5,14 @@ Object.defineProperty(exports, "__esModule", { }); exports.evaluate = evaluate; exports.evaluateTruthy = evaluateTruthy; -const VALID_CALLEES = ["String", "Number", "Math"]; +const VALID_OBJECT_CALLEES = ["Number", "String", "Math"]; +const VALID_IDENTIFIER_CALLEES = ["isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", null, null]; const INVALID_METHODS = ["random"]; -function isValidCallee(val) { - return VALID_CALLEES.includes(val); +function isValidObjectCallee(val) { + return VALID_OBJECT_CALLEES.includes(val); +} +function isValidIdentifierCallee(val) { + return VALID_IDENTIFIER_CALLEES.includes(val); } function isInvalidMethod(val) { return INVALID_METHODS.includes(val); @@ -283,13 +287,13 @@ function _evaluate(path, state) { const callee = path.get("callee"); let context; let func; - if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name) && isValidCallee(callee.node.name)) { + if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name) && (isValidObjectCallee(callee.node.name) || isValidIdentifierCallee(callee.node.name))) { func = global[callee.node.name]; } if (callee.isMemberExpression()) { const object = callee.get("object"); const property = callee.get("property"); - if (object.isIdentifier() && property.isIdentifier() && isValidCallee(object.node.name) && !isInvalidMethod(property.node.name)) { + if (object.isIdentifier() && property.isIdentifier() && isValidObjectCallee(object.node.name) && !isInvalidMethod(property.node.name)) { context = global[object.node.name]; func = context[property.node.name]; } diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js index c005263bc7df23..619ebee89e6479 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js @@ -150,14 +150,12 @@ function isForAwaitStatement() { }); } { - { - exports.isExistentialTypeParam = function isExistentialTypeParam() { - throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7."); - }; - exports.isNumericLiteralTypeAnnotation = function isNumericLiteralTypeAnnotation() { - throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7."); - }; - } + exports.isExistentialTypeParam = function isExistentialTypeParam() { + throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7."); + }; + exports.isNumericLiteralTypeAnnotation = function isNumericLiteralTypeAnnotation() { + throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7."); + }; } //# sourceMappingURL=virtual-types-validator.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js index 6e52b86950ccf7..0f087c6aa76fb4 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js @@ -47,7 +47,6 @@ const { memberExpression, numericLiteral, toIdentifier, - unaryExpression, variableDeclaration, variableDeclarator, isRecordExpression, @@ -56,7 +55,8 @@ const { isTopicReference, isMetaProperty, isPrivateName, - isExportDeclaration + isExportDeclaration, + buildUndefinedNode } = _t; function gatherNodeParts(node, parts) { switch (node == null ? void 0 : node.type) { @@ -506,7 +506,7 @@ class Scope { } } buildUndefinedNode() { - return unaryExpression("void", numericLiteral(0), true); + return buildUndefinedNode(); } registerConstantViolation(path) { const ids = path.getBindingIdentifiers(); diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/package.json b/tools/node_modules/eslint/node_modules/@babel/traverse/package.json index c802d4626bfb5a..debdbf795a74e7 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/package.json @@ -1,6 +1,6 @@ { "name": "@babel/traverse", - "version": "7.22.17", + "version": "7.23.0", "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-traverse", @@ -17,18 +17,18 @@ "main": "./lib/index.js", "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "devDependencies": { - "@babel/core": "^7.22.17", + "@babel/core": "^7.23.0", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js index a63dab34753c43..b2d40fa7cbb606 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js @@ -108,6 +108,7 @@ exports.assertImport = assertImport; exports.assertImportAttribute = assertImportAttribute; exports.assertImportDeclaration = assertImportDeclaration; exports.assertImportDefaultSpecifier = assertImportDefaultSpecifier; +exports.assertImportExpression = assertImportExpression; exports.assertImportNamespaceSpecifier = assertImportNamespaceSpecifier; exports.assertImportOrExportDeclaration = assertImportOrExportDeclaration; exports.assertImportSpecifier = assertImportSpecifier; @@ -511,6 +512,9 @@ function assertImportNamespaceSpecifier(node, opts) { function assertImportSpecifier(node, opts) { assert("ImportSpecifier", node, opts); } +function assertImportExpression(node, opts) { + assert("ImportExpression", node, opts); +} function assertMetaProperty(node, opts) { assert("MetaProperty", node, opts); } diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js index 5b61c3e1714c14..df8586d74d6121 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js @@ -85,6 +85,7 @@ exports.import = _import; exports.importAttribute = importAttribute; exports.importDeclaration = importDeclaration; exports.importDefaultSpecifier = importDefaultSpecifier; +exports.importExpression = importExpression; exports.importNamespaceSpecifier = importNamespaceSpecifier; exports.importSpecifier = importSpecifier; exports.indexedAccessType = indexedAccessType; @@ -729,6 +730,13 @@ function importSpecifier(local, imported) { imported }); } +function importExpression(source, options = null) { + return (0, _validateNode.default)({ + type: "ImportExpression", + source, + options + }); +} function metaProperty(meta, property) { return (0, _validateNode.default)({ type: "MetaProperty", diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js index 25a83cbd1b31b7..1d02118882bec0 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js @@ -495,6 +495,12 @@ Object.defineProperty(exports, "ImportDefaultSpecifier", { return _index.importDefaultSpecifier; } }); +Object.defineProperty(exports, "ImportExpression", { + enumerable: true, + get: function () { + return _index.importExpression; + } +}); Object.defineProperty(exports, "ImportNamespaceSpecifier", { enumerable: true, get: function () { diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/productions.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/productions.js new file mode 100644 index 00000000000000..6e64717f09c3c0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/productions.js @@ -0,0 +1,12 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.buildUndefinedNode = buildUndefinedNode; +var _index = require("./generated/index.js"); +function buildUndefinedNode() { + return (0, _index.unaryExpression)("void", (0, _index.numericLiteral)(0), true); +} + +//# sourceMappingURL=productions.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js index 64d6c09e6a361a..a5277b1372c130 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js @@ -37,7 +37,7 @@ defineType("AssignmentExpression", { }() }, left: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal", "OptionalMemberExpression") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "OptionalMemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSSatisfiesExpression", "TSTypeAssertion", "TSNonNullExpression") }, right: { validate: (0, _utils.assertNodeType)("Expression") @@ -1170,6 +1170,10 @@ defineType("ImportDeclaration", { optional: true, validate: (0, _utils.assertValueType)("boolean") }, + phase: { + default: null, + validate: (0, _utils.assertOneOf)("source", "defer") + }, specifiers: { validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) }, @@ -1216,6 +1220,23 @@ defineType("ImportSpecifier", { } } }); +defineType("ImportExpression", { + visitor: ["source", "options"], + aliases: ["Expression"], + fields: { + phase: { + default: null, + validate: (0, _utils.assertOneOf)("source", "defer") + }, + source: { + validate: (0, _utils.assertNodeType)("Expression") + }, + options: { + validate: (0, _utils.assertNodeType)("Expression"), + optional: true + } + } +}); defineType("MetaProperty", { visitor: ["meta", "property"], aliases: ["Expression"], diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js index e5de3d4880b8df..33df87ac129be6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js @@ -1,13 +1,5 @@ "use strict"; -if (typeof process === "object" && process.version === "v20.6.0") { - if (exports["___internal__alreadyRunning" + ""]) return; - Object.defineProperty(exports, "___internal__alreadyRunning", { - value: true, - enumerable: false, - configurable: true - }); -} Object.defineProperty(exports, "__esModule", { value: true }); @@ -457,6 +449,18 @@ Object.keys(_uppercase).forEach(function (key) { } }); }); +var _productions = require("./builders/productions.js"); +Object.keys(_productions).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _productions[key]) return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _productions[key]; + } + }); +}); var _cloneNode = require("./clone/cloneNode.js"); var _clone = require("./clone/clone.js"); var _cloneDeep = require("./clone/cloneDeep.js"); @@ -574,6 +578,5 @@ const react = { buildChildren: _buildChildren.default }; exports.react = react; -if (typeof process === "object" && process.version === "v20.6.0") delete exports["___internal__alreadyRunning" + ""]; //# sourceMappingURL=index.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow index 4810ff88754dc8..a1203c1a883867 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow @@ -46,7 +46,7 @@ declare class BabelNodeArrayExpression extends BabelNode { declare class BabelNodeAssignmentExpression extends BabelNode { type: "AssignmentExpression"; operator: string; - left: BabelNodeLVal; + left: BabelNodeLVal | BabelNodeOptionalMemberExpression; right: BabelNodeExpression; } @@ -478,6 +478,7 @@ declare class BabelNodeImportDeclaration extends BabelNode { attributes?: Array; importKind?: "type" | "typeof" | "value"; module?: boolean; + phase?: "source" | "defer"; } declare class BabelNodeImportDefaultSpecifier extends BabelNode { @@ -497,6 +498,13 @@ declare class BabelNodeImportSpecifier extends BabelNode { importKind?: "type" | "typeof" | "value"; } +declare class BabelNodeImportExpression extends BabelNode { + type: "ImportExpression"; + source: BabelNodeExpression; + options?: BabelNodeExpression; + phase?: "source" | "defer"; +} + declare class BabelNodeMetaProperty extends BabelNode { type: "MetaProperty"; meta: BabelNodeIdentifier; @@ -1619,8 +1627,8 @@ declare class BabelNodeTSTypeParameter extends BabelNode { out?: boolean; } -type BabelNodeStandardized = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName | BabelNodeStaticBlock; -type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; +type BabelNodeStandardized = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeImportExpression | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName | BabelNodeStaticBlock; +type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeImportExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSSatisfiesExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression; type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; @@ -1672,7 +1680,7 @@ type BabelNodeModuleDeclaration = BabelNodeExportAllDeclaration | BabelNodeExpor declare module "@babel/types" { declare export function arrayExpression(elements?: Array): BabelNodeArrayExpression; - declare export function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; + declare export function assignmentExpression(operator: string, left: BabelNodeLVal | BabelNodeOptionalMemberExpression, right: BabelNodeExpression): BabelNodeAssignmentExpression; declare export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>", left: BabelNodeExpression | BabelNodePrivateName, right: BabelNodeExpression): BabelNodeBinaryExpression; declare export function interpreterDirective(value: string): BabelNodeInterpreterDirective; declare export function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; @@ -1737,6 +1745,7 @@ declare module "@babel/types" { declare export function importDefaultSpecifier(local: BabelNodeIdentifier): BabelNodeImportDefaultSpecifier; declare export function importNamespaceSpecifier(local: BabelNodeIdentifier): BabelNodeImportNamespaceSpecifier; declare export function importSpecifier(local: BabelNodeIdentifier, imported: BabelNodeIdentifier | BabelNodeStringLiteral): BabelNodeImportSpecifier; + declare export function importExpression(source: BabelNodeExpression, options?: BabelNodeExpression): BabelNodeImportExpression; declare export function metaProperty(meta: BabelNodeIdentifier, property: BabelNodeIdentifier): BabelNodeMetaProperty; declare export function classMethod(kind?: "get" | "set" | "method" | "constructor", key: BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeExpression, params: Array, body: BabelNodeBlockStatement, computed?: boolean, _static?: boolean, generator?: boolean, async?: boolean): BabelNodeClassMethod; declare export function objectPattern(properties: Array): BabelNodeObjectPattern; @@ -2054,6 +2063,8 @@ declare module "@babel/types" { declare export function assertImportNamespaceSpecifier(node: ?Object, opts?: ?Object): void declare export function isImportSpecifier(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportSpecifier) declare export function assertImportSpecifier(node: ?Object, opts?: ?Object): void + declare export function isImportExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeImportExpression) + declare export function assertImportExpression(node: ?Object, opts?: ?Object): void declare export function isMetaProperty(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeMetaProperty) declare export function assertMetaProperty(node: ?Object, opts?: ?Object): void declare export function isClassMethod(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeClassMethod) diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js index d346ee694cc184..6f8ae4c8d128c9 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js @@ -108,6 +108,7 @@ exports.isImport = isImport; exports.isImportAttribute = isImportAttribute; exports.isImportDeclaration = isImportDeclaration; exports.isImportDefaultSpecifier = isImportDefaultSpecifier; +exports.isImportExpression = isImportExpression; exports.isImportNamespaceSpecifier = isImportNamespaceSpecifier; exports.isImportOrExportDeclaration = isImportOrExportDeclaration; exports.isImportSpecifier = isImportSpecifier; @@ -638,6 +639,11 @@ function isImportSpecifier(node, opts) { if (node.type !== "ImportSpecifier") return false; return opts == null || (0, _shallowEqual.default)(node, opts); } +function isImportExpression(node, opts) { + if (!node) return false; + if (node.type !== "ImportExpression") return false; + return opts == null || (0, _shallowEqual.default)(node, opts); +} function isMetaProperty(node, opts) { if (!node) return false; if (node.type !== "MetaProperty") return false; @@ -1622,6 +1628,7 @@ function isStandardized(node, opts) { case "ImportDefaultSpecifier": case "ImportNamespaceSpecifier": case "ImportSpecifier": + case "ImportExpression": case "MetaProperty": case "ClassMethod": case "ObjectPattern": @@ -1686,6 +1693,7 @@ function isExpression(node, opts) { case "UpdateExpression": case "ArrowFunctionExpression": case "ClassExpression": + case "ImportExpression": case "MetaProperty": case "Super": case "TaggedTemplateExpression": diff --git a/tools/node_modules/eslint/node_modules/@babel/types/package.json b/tools/node_modules/eslint/node_modules/@babel/types/package.json index 5bd9c9ba3466bf..4acb0bf1799da6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.22.17", + "version": "7.23.0", "description": "Babel Types is a Lodash-esque utility library for AST nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-types", @@ -25,12 +25,12 @@ }, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "^7.22.15", - "@babel/parser": "^7.22.16", + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", "glob": "^7.2.0" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.js b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.js index 9f6d71e90102f8..c775bad833ae84 100644 --- a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.js +++ b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.js @@ -45,10 +45,10 @@ function isLargeIdContinue(cp) { return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); } function initLargeIdStartRanges() { - return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk 2e8 f1 15v 3t6 6 38f"); + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk g h9 1wj f1 15v 3t6 6 38f"); } function initLargeIdContinueRanges() { - return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r el 1 1e 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 2p 0 n51 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 12 0 ig 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); } function isInRange(cp, ranges) { let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; @@ -1957,7 +1957,7 @@ class RegExpParserState { constructor(options) { var _a; this._node = DUMMY_PATTERN; - this._expressionBuffer = null; + this._expressionBufferMap = new Map(); this._flags = DUMMY_FLAGS; this._backreferences = []; this._capturingGroups = []; @@ -2297,19 +2297,21 @@ class RegExpParserState { const node = this._node; if (node.type !== "CharacterClass" || (node.parent.type !== "Alternative" && - node.parent.type !== "CharacterClass") || - (this._expressionBuffer && node.elements.length > 0)) { + node.parent.type !== "CharacterClass")) { throw new Error("UnknownError"); } const parent = node.parent; node.end = end; node.raw = this.source.slice(start, end); this._node = parent; - const expression = this._expressionBuffer; - this._expressionBuffer = null; + const expression = this._expressionBufferMap.get(node); if (!expression) { return; } + if (node.elements.length > 0) { + throw new Error("UnknownError"); + } + this._expressionBufferMap.delete(node); const newNode = { type: "ExpressionCharacterClass", parent, @@ -2367,7 +2369,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassSubtraction" || @@ -2386,7 +2388,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassSubtraction(start, end) { var _a; @@ -2395,7 +2397,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassIntersection" || @@ -2414,7 +2416,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassStringDisjunctionEnter(start) { const parent = this._node; diff --git a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.mjs b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.mjs index a47266313ae095..3b8664071cd146 100644 --- a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.mjs +++ b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/index.mjs @@ -41,10 +41,10 @@ function isLargeIdContinue(cp) { return isInRange(cp, largeIdContinueRanges !== null && largeIdContinueRanges !== void 0 ? largeIdContinueRanges : (largeIdContinueRanges = initLargeIdContinueRanges())); } function initLargeIdStartRanges() { - return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk 2e8 f1 15v 3t6 6 38f"); + return restoreRanges("4q 0 b 0 5 0 6 m 2 u 2 cp 5 b f 4 8 0 2 0 3m 4 2 1 3 3 2 0 7 0 2 2 2 0 2 j 2 2a 2 3u 9 4l 2 11 3 0 7 14 20 q 5 3 1a 16 10 1 2 2q 2 0 g 1 8 1 b 2 3 0 h 0 2 t u 2g c 0 p w a 1 5 0 6 l 5 0 a 0 4 0 o o 8 a 6 n 2 5 i 15 1n 1h 4 0 j 0 8 9 g f 5 7 3 1 3 l 2 6 2 0 4 3 4 0 h 0 e 1 2 2 f 1 b 0 9 5 5 1 3 l 2 6 2 1 2 1 2 1 w 3 2 0 k 2 h 8 2 2 2 l 2 6 2 1 2 4 4 0 j 0 g 1 o 0 c 7 3 1 3 l 2 6 2 1 2 4 4 0 v 1 2 2 g 0 i 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 b n 0 1h 7 2 2 2 m 2 f 4 0 r 2 3 0 3 1 v 0 5 7 2 2 2 m 2 9 2 4 4 0 w 1 2 1 g 1 i 8 2 2 2 14 3 0 h 0 6 2 9 2 p 5 6 h 4 n 2 8 2 0 3 6 1n 1b 2 1 d 6 1n 1 2 0 2 4 2 n 2 0 2 9 2 1 a 0 3 4 2 0 m 3 x 0 1s 7 2 z s 4 38 16 l 0 h 5 5 3 4 0 4 1 8 2 5 c d 0 i 11 2 0 6 0 3 16 2 98 2 3 3 6 2 0 2 3 3 14 2 3 3 w 2 3 3 6 2 0 2 3 3 e 2 1k 2 3 3 1u 12 f h 2d 3 5 4 h7 3 g 2 p 6 22 4 a 8 h e i f h f c 2 2 g 1f 10 0 5 0 1w 2g 8 14 2 0 6 1x b u 1e t 3 4 c 17 5 p 1j m a 1g 2b 0 2m 1a i 7 1j t e 1 b 17 r z 16 2 b z 3 8 8 16 3 2 16 3 2 5 2 1 4 0 6 5b 1t 7p 3 5 3 11 3 5 3 7 2 0 2 0 2 0 2 u 3 1g 2 6 2 0 4 2 2 6 4 3 3 5 5 c 6 2 2 6 39 0 e 0 h c 2u 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 f 3 3 6 4 5 0 i 14 22g 6c 7 3 4 1 d 11 2 0 6 0 3 1j 8 0 h m a 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 fb 2 q 8 8 4 3 4 5 2d 5 4 2 2h 2 3 6 16 2 2l i v 1d f e9 533 1t h3g 1w 19 3 7g 4 f b 1 l 1a h u 3 27 14 8 3 2u 3 1r 6 1 2 0 2 4 p f 2 2 2 3 2 m u 1f f 1d 1r 5 4 0 2 1 c r b m q s 8 1a t 0 h 4 2 9 b 4 2 14 o 2 2 7 l m 4 0 4 1d 2 0 4 1 3 4 3 0 2 0 p 2 3 a 8 2 d 5 3 5 3 5 a 6 2 6 2 16 2 d 7 36 u 8mb d m 5 1c 6it a5 3 2x 13 6 d 4 6 0 2 9 2 c 2 4 2 0 2 1 2 1 2 2z y a2 j 1r 3 1h 15 b 39 4 2 3q 11 p 7 p c 2g 4 5 3 5 3 5 3 2 10 b 2 p 2 i 2 1 2 e 3 d z 3e 1y 1g 7g s 4 1c 1c v e t 6 11 b t 3 z 5 7 2 4 17 4d j z 5 z 5 13 9 1f d a 2 e 2 6 2 1 2 a 2 e 2 6 2 1 1w 8m a l b 7 p 5 2 15 2 8 1y 5 3 0 2 17 2 1 4 0 3 m b m a u 1u i 2 1 b l b p 1z 1j 7 1 1t 0 g 3 2 2 2 s 17 s 4 s 10 7 2 r s 1h b l b i e h 33 20 1k 1e e 1e e z 9p 15 7 1 27 s b 0 9 l 17 h 1b k s m d 1g 1m 1 3 0 e 18 x o r z u 0 3 0 9 y 4 0 d 1b f 3 m 0 2 0 10 h 2 o k 1 1s 6 2 0 2 3 2 e 2 9 8 1a 13 7 3 1 3 l 2 6 2 1 2 4 4 0 j 0 d 4 4f 1g j 3 l 2 v 1b l 1 2 0 55 1a 16 3 11 1b l 0 1o 16 e 0 20 q 12 6 56 17 39 1r w 7 3 0 3 7 2 1 2 n g 0 2 0 2n 7 3 12 h 0 2 0 t 0 b 13 8 0 m 0 c 19 k 0 j 20 7c 8 2 10 i 0 1e t 35 6 2 1 2 11 m 0 q 5 2 1 2 v f 0 94 i g 0 2 c 2 x 3h 0 28 pl 2v 32 i 5f 219 2o g tr i 5 33u g6 6nu fs 8 u i 26 i t j 1b h 3 w k 6 i j5 1r 3l 22 6 0 1v c 1t 1 2 0 t 4qf 9 yd 17 8 6w8 3 2 6 2 1 2 82 g 0 u 2 3 0 f 3 9 az 1s5 2y 6 c 4 8 8 9 4mf 2c 2 1y 2 1 3 0 3 1 3 3 2 b 2 0 2 6 2 1s 2 3 3 7 2 6 2 r 2 3 2 4 2 0 4 6 2 9f 3 o 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 u 2 o 2 7 1f9 u 7 5 7a 1p 43 18 b 6 h 0 8y t j 17 dh r l1 6 2 3 2 1 2 e 2 5g 1o 1v 8 0 xh 3 2 q 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 g 6 2 2 4 2 g 3et wyn x 37d 7 65 3 4g1 f 5rk g h9 1wj f1 15v 3t6 6 38f"); } function initLargeIdContinueRanges() { - return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r g0 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 n7q 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 ji 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); + return restoreRanges("53 0 g9 33 o 0 70 4 7e 18 2 0 2 1 2 1 2 0 21 a 1d u 7 0 2u 6 3 5 3 1 2 3 3 9 o 0 v q 2k a g 9 y 8 a 0 p 3 2 8 2 2 2 4 18 2 1p 7 17 n 2 w 1j 2 2 h 2 6 b 1 3 9 i 2 1l 0 2 6 3 1 3 2 a 0 b 1 3 9 f 0 3 2 1l 0 2 4 5 1 3 2 4 0 l b 4 0 c 2 1l 0 2 7 2 2 2 2 l 1 3 9 b 5 2 2 1l 0 2 6 3 1 3 2 8 2 b 1 3 9 j 0 1o 4 4 2 2 3 a 0 f 9 h 4 1k 0 2 6 2 2 2 3 8 1 c 1 3 9 i 2 1l 0 2 6 2 2 2 3 8 1 c 1 3 9 4 0 d 3 1k 1 2 6 2 2 2 3 a 0 b 1 3 9 i 2 1z 0 5 5 2 0 2 7 7 9 3 1 1q 0 3 6 d 7 2 9 2g 0 3 8 c 6 2 9 1r 1 7 9 c 0 2 0 2 0 5 1 1e j 2 1 6 a 2 z a 0 2t j 2 9 d 3 5 2 2 2 3 6 4 3 e b 2 e jk 2 a 8 pt 3 t 2 u 1 v 1 1t v a 0 3 9 y 2 2 a 40 0 3b b 5 b b 9 3l a 1p 4 1m 9 2 s 3 a 7 9 n d 2 f 1e 4 1c g c 9 i 8 d 2 v c 3 9 19 d 1d j 9 9 7 9 3b 2 2 k 5 0 7 0 3 2 5j 1r el 1 1e 1 k 0 3g c 5 0 4 b 2db 2 3y 0 2p v ff 5 2y 1 2p 0 n51 9 1y 0 5 9 x 1 29 1 7l 0 4 0 5 0 o 4 5 0 2c 1 1f h b 9 7 h e a t 7 q c 19 3 1c d g 9 c 0 b 9 1c d d 0 9 1 3 9 y 2 1f 0 2 2 3 1 6 1 2 0 16 4 6 1 6l 7 2 1 3 9 fmt 0 ki f h f 4 1 p 2 5d 9 12 0 12 0 ig 0 6b 0 46 4 86 9 120 2 2 1 6 3 15 2 5 0 4m 1 fy 3 9 9 aa 1 29 2 1z a 1e 3 3f 2 1i e w a 3 1 b 3 1a a 8 0 1a 9 7 2 11 d 2 9 6 1 19 0 d 2 1d d 9 3 2 b 2b b 7 0 3 0 4e b 6 9 7 3 1k 1 2 6 3 1 3 2 a 0 b 1 3 6 4 4 5d h a 9 5 0 2a j d 9 5y 6 3 8 s 1 2b g g 9 2a c 9 9 2c e 5 9 6r e 4m 9 1z 5 2 1 3 3 2 0 2 1 d 9 3c 6 3 6 4 0 t 9 15 6 2 3 9 0 a a 1b f ba 7 2 7 h 9 1l l 2 d 3f 5 4 0 2 1 2 6 2 0 9 9 1d 4 2 1 2 4 9 9 96 3 a 1 2 0 1d 6 4 4 e 9 44n 0 7 e aob 9 2f 9 13 4 1o 6 q 9 s6 0 2 1i 8 3 2a 0 c 1 f58 1 3mq 19 3 m f3 4 4 5 9 7 3 6 v 3 45 2 13e 1d e9 1i 5 1d 9 0 f 0 n 4 2 e 11t 6 2 g 3 6 2 1 2 4 2t 0 4h 6 a 9 9x 0 1q d dv d rb 6 32 6 6 9 3o7 9 gvt3 6n"); } function isInRange(cp, ranges) { let l = 0, r = (ranges.length / 2) | 0, i = 0, min = 0, max = 0; @@ -1953,7 +1953,7 @@ class RegExpParserState { constructor(options) { var _a; this._node = DUMMY_PATTERN; - this._expressionBuffer = null; + this._expressionBufferMap = new Map(); this._flags = DUMMY_FLAGS; this._backreferences = []; this._capturingGroups = []; @@ -2293,19 +2293,21 @@ class RegExpParserState { const node = this._node; if (node.type !== "CharacterClass" || (node.parent.type !== "Alternative" && - node.parent.type !== "CharacterClass") || - (this._expressionBuffer && node.elements.length > 0)) { + node.parent.type !== "CharacterClass")) { throw new Error("UnknownError"); } const parent = node.parent; node.end = end; node.raw = this.source.slice(start, end); this._node = parent; - const expression = this._expressionBuffer; - this._expressionBuffer = null; + const expression = this._expressionBufferMap.get(node); if (!expression) { return; } + if (node.elements.length > 0) { + throw new Error("UnknownError"); + } + this._expressionBufferMap.delete(node); const newNode = { type: "ExpressionCharacterClass", parent, @@ -2363,7 +2365,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassSubtraction" || @@ -2382,7 +2384,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassSubtraction(start, end) { var _a; @@ -2391,7 +2393,7 @@ class RegExpParserState { throw new Error("UnknownError"); } const right = parent.elements.pop(); - const left = (_a = this._expressionBuffer) !== null && _a !== void 0 ? _a : parent.elements.pop(); + const left = (_a = this._expressionBufferMap.get(parent)) !== null && _a !== void 0 ? _a : parent.elements.pop(); if (!left || !right || left.type === "ClassIntersection" || @@ -2410,7 +2412,7 @@ class RegExpParserState { }; left.parent = node; right.parent = node; - this._expressionBuffer = node; + this._expressionBufferMap.set(parent, node); } onClassStringDisjunctionEnter(start) { const parent = this._node; diff --git a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/package.json b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/package.json index b41687324daf0a..f43d1de78c7e2e 100644 --- a/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/package.json +++ b/tools/node_modules/eslint/node_modules/@eslint-community/regexpp/package.json @@ -1,6 +1,6 @@ { "name": "@eslint-community/regexpp", - "version": "4.8.0", + "version": "4.9.0", "description": "Regular expression parser for ECMAScript.", "keywords": [ "regexp", diff --git a/tools/node_modules/eslint/node_modules/@eslint/js/package.json b/tools/node_modules/eslint/node_modules/@eslint/js/package.json index 7bfcf6e6b60d51..fc5fb50fcb9ac3 100644 --- a/tools/node_modules/eslint/node_modules/@eslint/js/package.json +++ b/tools/node_modules/eslint/node_modules/@eslint/js/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/js", - "version": "8.49.0", + "version": "8.50.0", "description": "ESLint JavaScript language implementation", "main": "./src/index.js", "scripts": {}, diff --git a/tools/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js b/tools/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js index 177ff92f3164e7..52f580035a8598 100644 --- a/tools/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js +++ b/tools/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js @@ -152,11 +152,11 @@ module.exports = Object.freeze({ "no-new": "error", "no-new-func": "error", "no-new-native-nonconstructor": "error", - "no-new-object": "error", "no-new-symbol": "error", "no-new-wrappers": "error", "no-nonoctal-decimal-escape": "error", "no-obj-calls": "error", + "no-object-constructor": "error", "no-octal": "error", "no-octal-escape": "error", "no-param-reassign": "error", diff --git a/tools/node_modules/eslint/node_modules/@types/mdast/LICENSE b/tools/node_modules/eslint/node_modules/@types/mdast/LICENSE old mode 100755 new mode 100644 diff --git a/tools/node_modules/eslint/node_modules/@types/mdast/package.json b/tools/node_modules/eslint/node_modules/@types/mdast/package.json old mode 100755 new mode 100644 index af4f0bff32f31d..81452e9484730e --- a/tools/node_modules/eslint/node_modules/@types/mdast/package.json +++ b/tools/node_modules/eslint/node_modules/@types/mdast/package.json @@ -1,6 +1,6 @@ { "name": "@types/mdast", - "version": "3.0.12", + "version": "3.0.13", "description": "TypeScript definitions for Mdast", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mdast", "license": "MIT", @@ -37,6 +37,6 @@ "dependencies": { "@types/unist": "^2" }, - "typesPublisherContentHash": "46b61589850b899948f440f265e9953256f1c124c52474829c42c8d5ae6d2325", - "typeScriptVersion": "4.3" + "typesPublisherContentHash": "4f7e7836da8059c1699be808ec47184aefe23f7e21adb87b32171a0cd60e111c", + "typeScriptVersion": "4.5" } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/browserslist/cli.js b/tools/node_modules/eslint/node_modules/browserslist/cli.js index c54aa9879288e9..7b5236da3ee53d 100755 --- a/tools/node_modules/eslint/node_modules/browserslist/cli.js +++ b/tools/node_modules/eslint/node_modules/browserslist/cli.js @@ -38,7 +38,12 @@ if (isArg('--help') || isArg('-h')) { } else if (isArg('--version') || isArg('-v')) { process.stdout.write('browserslist ' + pkg.version + '\n') } else if (isArg('--update-db')) { - /* c8 ignore next 3 */ + /* c8 ignore next 8 */ + process.stdout.write( + 'The --update-db command is deprecated.\n' + + 'Please use npx update-browserslist-db@latest instead.\n' + ) + process.stdout.write('Browserslist DB update will still be made.\n') updateDb(function (str) { process.stdout.write(str) }) diff --git a/tools/node_modules/eslint/node_modules/browserslist/index.js b/tools/node_modules/eslint/node_modules/browserslist/index.js index 60544cb82027a7..18021be30db387 100644 --- a/tools/node_modules/eslint/node_modules/browserslist/index.js +++ b/tools/node_modules/eslint/node_modules/browserslist/index.js @@ -298,10 +298,10 @@ function filterJumps(list, name, nVersions, context) { return list.slice(jump - 1 - nVersions) } -function isSupported(flags) { +function isSupported(flags, withPartial) { return ( typeof flags === 'string' && - (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0) + (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) ) } @@ -883,10 +883,11 @@ var QUERIES = { select: coverQuery }, supports: { - matches: ['feature'], - regexp: /^supports\s+([\w-]+)$/, + matches: ['supportType', 'feature'], + regexp: /^(?:(fully|partially) )?supports\s+([\w-]+)$/, select: function (context, node) { env.loadFeature(browserslist.cache, node.feature) + var withPartial = node.supportType !== 'fully' var features = browserslist.cache[node.feature] var result = [] for (var name in features) { @@ -895,13 +896,13 @@ var QUERIES = { var checkDesktop = context.mobileToDesktop && name in browserslist.desktopNames && - isSupported(features[name][data.released.slice(-1)[0]]) + isSupported(features[name][data.released.slice(-1)[0]], withPartial) data.versions.forEach(function (version) { var flags = features[name][version] if (flags === undefined && checkDesktop) { flags = features[browserslist.desktopNames[name]][version] } - if (isSupported(flags)) { + if (isSupported(flags, withPartial)) { result.push(name + ' ' + version) } }) @@ -1001,7 +1002,7 @@ var QUERIES = { matches: [], regexp: /^(firefox|ff|fx)\s+esr$/i, select: function () { - return ['firefox 102', 'firefox 115'] + return ['firefox 115'] } }, opera_mini_all: { diff --git a/tools/node_modules/eslint/node_modules/browserslist/package.json b/tools/node_modules/eslint/node_modules/browserslist/package.json index ceb63ad6ece3d8..13bd3cd132ba29 100644 --- a/tools/node_modules/eslint/node_modules/browserslist/package.json +++ b/tools/node_modules/eslint/node_modules/browserslist/package.json @@ -1,6 +1,6 @@ { "name": "browserslist", - "version": "4.21.10", + "version": "4.22.1", "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "keywords": [ "caniuse", @@ -25,10 +25,10 @@ "license": "MIT", "repository": "browserslist/browserslist", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js index c128fe716456a0..3446579abb9e9f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js @@ -1 +1 @@ -module.exports={A:{A:{K:0,F:0,G:0.0268696,H:0.0537391,A:0,B:0.416478,KC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KC","K","F","G","H","A","B","","",""],E:"IE",F:{KC:962323200,K:998870400,F:1161129600,G:1237420800,H:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0.035192,"1":0.607062,"2":3.20687,C:0.004399,L:0.004399,M:0.004399,I:0.004399,N:0,D:0.004399,O:0.008798,P:0,Q:0.004399,R:0.004399,S:0.004399,T:0.008798,U:0.004399,V:0.008798,W:0.004399,X:0.004399,Y:0.004399,Z:0.008798,a:0,b:0.013197,c:0,d:0,e:0,f:0,g:0,h:0,i:0.017596,j:0,k:0,l:0,q:0,r:0,s:0,t:0,u:0.008798,v:0.013197,w:0.083581,x:0.013197,y:0.092379,z:0.096778,E:1.03376},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","I","N","D","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","E","","",""],E:"Edge",F:{"0":1683158400,"1":1685664000,"2":1689897600,C:1438128000,L:1447286400,M:1470096000,I:1491868800,N:1508198400,D:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,q:1655942400,r:1659657600,s:1661990400,t:1664755200,u:1666915200,v:1670198400,w:1673481600,x:1675900800,y:1678665600,z:1680825600,E:1692576000},D:{C:"ms",L:"ms",M:"ms",I:"ms",N:"ms",D:"ms",O:"ms"}},C:{A:{"0":0.026394,"1":0.030793,"2":0.580668,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,LC:0,"0B":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0.008798,C:0,L:0,M:0,I:0,N:0,D:0,O:0,m:0,n:0,o:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0.008798,QB:0.004399,RB:0,SB:0,TB:0,UB:0.004399,VB:0,WB:0.008798,XB:0,YB:0.052788,ZB:0.004399,aB:0.004399,bB:0,cB:0.008798,dB:0,eB:0,"1B":0.004399,fB:0,"2B":0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0.030793,p:0,rB:0,sB:0,tB:0,uB:0,vB:0.039591,P:0,Q:0,R:0,"3B":0,S:0.008798,T:0,U:0,V:0,W:0,X:0.004399,Y:0,Z:0.004399,a:0.008798,b:0,c:0,d:0.013197,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.118773,q:0.017596,r:0,s:0.004399,t:0.004399,u:0.004399,v:0.008798,w:0.008798,x:0.008798,y:0.013197,z:0.065985,E:1.39008,"4B":0.052788,"5B":0,"6B":0,MC:0,NC:0,OC:0},B:"moz",C:["LC","0B","NC","OC","J","3","K","F","G","H","A","B","C","L","M","I","N","D","O","4","m","n","o","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","1B","fB","2B","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","p","rB","sB","tB","uB","vB","P","Q","R","3B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","E","4B","5B","6B","MC"],E:"Firefox",F:{"0":1683590400,"1":1686009600,"2":1688428800,"3":1308614400,"4":1357603200,"5":1372118400,"6":1375747200,"7":1379376000,"8":1386633600,"9":1391472000,LC:1161648000,"0B":1213660800,NC:1246320000,OC:1264032000,J:1300752000,K:1313452800,F:1317081600,G:1317081600,H:1320710400,A:1324339200,B:1327968000,C:1331596800,L:1335225600,M:1338854400,I:1342483200,N:1346112000,D:1349740800,O:1353628800,m:1361232000,n:1364860800,o:1368489600,AB:1395100800,BB:1398729600,CB:1402358400,DB:1405987200,EB:1409616000,FB:1413244800,GB:1417392000,HB:1421107200,IB:1424736000,JB:1428278400,KB:1431475200,LB:1435881600,MB:1439251200,NB:1442880000,OB:1446508800,PB:1450137600,QB:1453852800,RB:1457395200,SB:1461628800,TB:1465257600,UB:1470096000,VB:1474329600,WB:1479168000,XB:1485216000,YB:1488844800,ZB:1492560000,aB:1497312000,bB:1502150400,cB:1506556800,dB:1510617600,eB:1516665600,"1B":1520985600,fB:1525824000,"2B":1529971200,gB:1536105600,hB:1540252800,iB:1544486400,jB:1548720000,kB:1552953600,lB:1558396800,mB:1562630400,nB:1567468800,oB:1571788800,pB:1575331200,qB:1578355200,p:1581379200,rB:1583798400,sB:1586304000,tB:1588636800,uB:1591056000,vB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"3B":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,q:1658793600,r:1661212800,s:1663632000,t:1666051200,u:1668470400,v:1670889600,w:1673913600,x:1676332800,y:1678752000,z:1681171200,E:1690848000,"4B":1693267200,"5B":null,"6B":null,MC:null}},D:{A:{"0":0.255142,"1":2.10712,"2":12.8099,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0,M:0,I:0,N:0,D:0,O:0,m:0,n:0,o:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0.004399,HB:0,IB:0,JB:0,KB:0.013197,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0.004399,UB:0.017596,VB:0.030793,WB:0.013197,XB:0,YB:0,ZB:0.008798,aB:0,bB:0.004399,cB:0.048389,dB:0.004399,eB:0,"1B":0,fB:0.021995,"2B":0.004399,gB:0.004399,hB:0.008798,iB:0,jB:0.008798,kB:0.026394,lB:0.004399,mB:0.039591,nB:0.065985,oB:0.039591,pB:0.021995,qB:0.026394,p:0.030793,rB:0.048389,sB:0.048389,tB:0.096778,uB:0.026394,vB:0.039591,P:0.202354,Q:0.079182,R:0.057187,S:0.114374,T:0.030793,U:0.083581,V:0.092379,W:0.08798,X:0.048389,Y:0.039591,Z:0.048389,a:0.061586,b:0.035192,c:0.127571,d:0.030793,e:0.017596,f:0.026394,g:0.026394,h:0.061586,i:0.04399,j:0.035192,k:0.035192,l:0.039591,q:0.211152,r:0.052788,s:0.048389,t:0.052788,u:0.123172,v:0.180359,w:1.83878,x:0.149566,y:0.285935,z:0.228748,E:5.7231,"4B":0.017596,"5B":0.004399,"6B":0},B:"webkit",C:["","","","","","","J","3","K","F","G","H","A","B","C","L","M","I","N","D","O","4","m","n","o","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","1B","fB","2B","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","p","rB","sB","tB","uB","vB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","E","4B","5B","6B"],E:"Chrome",F:{"0":1682985600,"1":1685404800,"2":1689724800,"3":1274745600,"4":1332892800,"5":1348531200,"6":1352246400,"7":1357862400,"8":1361404800,"9":1364428800,J:1264377600,K:1283385600,F:1287619200,G:1291248000,H:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,I:1316131200,N:1319500800,D:1323734400,O:1328659200,m:1337040000,n:1340668800,o:1343692800,AB:1369094400,BB:1374105600,CB:1376956800,DB:1384214400,EB:1389657600,FB:1392940800,GB:1397001600,HB:1400544000,IB:1405468800,JB:1409011200,KB:1412640000,LB:1416268800,MB:1421798400,NB:1425513600,OB:1429401600,PB:1432080000,QB:1437523200,RB:1441152000,SB:1444780800,TB:1449014400,UB:1453248000,VB:1456963200,WB:1460592000,XB:1464134400,YB:1469059200,ZB:1472601600,aB:1476230400,bB:1480550400,cB:1485302400,dB:1489017600,eB:1492560000,"1B":1496707200,fB:1500940800,"2B":1504569600,gB:1508198400,hB:1512518400,iB:1516752000,jB:1520294400,kB:1523923200,lB:1527552000,mB:1532390400,nB:1536019200,oB:1539648000,pB:1543968000,qB:1548720000,p:1552348800,rB:1555977600,sB:1559606400,tB:1564444800,uB:1568073600,vB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,q:1655769600,r:1659398400,s:1661817600,t:1664236800,u:1666656000,v:1669680000,w:1673308800,x:1675728000,y:1678147200,z:1680566400,E:1692057600,"4B":null,"5B":null,"6B":null}},E:{A:{"3":0,J:0,K:0,F:0,G:0,H:0,A:0,B:0,C:0,L:0.017596,M:0.105576,I:0.017596,D:0.026394,PC:0,"7B":0,QC:0.008798,RC:0,SC:0,TC:0.140768,"8B":0,wB:0.004399,xB:0.030793,"9B":0.136369,UC:0.255142,VC:0.039591,AC:0.035192,BC:0.070384,yB:0.123172,WC:0.576269,zB:0.171561,CC:0.180359,DC:0.184758,EC:0.422304,FC:0.189157,GC:1.15254,HC:1.65402,XC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","PC","7B","J","3","QC","K","RC","F","SC","G","H","TC","A","8B","B","wB","C","xB","L","9B","M","UC","I","VC","AC","BC","yB","WC","zB","CC","DC","EC","FC","GC","HC","D","XC",""],E:"Safari",F:{"3":1275868800,PC:1205798400,"7B":1226534400,J:1244419200,QC:1311120000,K:1343174400,RC:1382400000,F:1382400000,SC:1410998400,G:1413417600,H:1443657600,TC:1458518400,A:1474329600,"8B":1490572800,B:1505779200,wB:1522281600,C:1537142400,xB:1553472000,L:1568851200,"9B":1585008000,M:1600214400,UC:1619395200,I:1632096000,VC:1635292800,AC:1639353600,BC:1647216000,yB:1652745600,WC:1658275200,zB:1662940800,CC:1666569600,DC:1670889600,EC:1674432000,FC:1679875200,GC:1684368000,HC:1690156800,D:null,XC:null}},F:{A:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,H:0,B:0,C:0,I:0,N:0,D:0,O:0,m:0,n:0,o:0,AB:0.004399,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.013197,TB:0,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,p:0,rB:0,sB:0,tB:0,uB:0,vB:0,P:0,Q:0,R:0,"3B":0,S:0,T:0,U:0.004399,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.057187,f:0,g:0.079182,h:0,i:0.030793,j:0.83581,k:0.466294,l:0.008798,YC:0,ZC:0,aC:0,bC:0,wB:0,IC:0,cC:0,xB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","H","YC","ZC","aC","bC","B","wB","IC","cC","C","xB","I","N","D","O","4","m","n","o","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","p","rB","sB","tB","uB","vB","P","Q","R","3B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","","",""],E:"Opera",F:{"4":1390867200,"5":1405987200,"6":1409616000,"7":1413331200,"8":1417132800,"9":1422316800,H:1150761600,YC:1223424000,ZC:1251763200,aC:1267488000,bC:1277942400,B:1292457600,wB:1302566400,IC:1309219200,cC:1323129600,C:1323129600,xB:1352073600,I:1372723200,N:1377561600,D:1381104000,O:1386288000,m:1393891200,n:1399334400,o:1401753600,AB:1425945600,BB:1430179200,CB:1433808000,DB:1438646400,EB:1442448000,FB:1445904000,GB:1449100800,HB:1454371200,IB:1457308800,JB:1462320000,KB:1465344000,LB:1470096000,MB:1474329600,NB:1477267200,OB:1481587200,PB:1486425600,QB:1490054400,RB:1494374400,SB:1498003200,TB:1502236800,UB:1506470400,VB:1510099200,WB:1515024000,XB:1517961600,YB:1521676800,ZB:1525910400,aB:1530144000,bB:1534982400,cB:1537833600,dB:1543363200,eB:1548201600,fB:1554768000,gB:1561593600,hB:1566259200,iB:1570406400,jB:1573689600,kB:1578441600,lB:1583971200,mB:1587513600,nB:1592956800,oB:1595894400,pB:1600128000,qB:1603238400,p:1613520000,rB:1612224000,sB:1616544000,tB:1619568000,uB:1623715200,vB:1627948800,P:1631577600,Q:1633392000,R:1635984000,"3B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800},D:{H:"o",B:"o",C:"o",YC:"o",ZC:"o",aC:"o",bC:"o",wB:"o",IC:"o",cC:"o",xB:"o"}},G:{A:{G:0,D:0.0965185,"7B":0,dC:0,JC:0.00279764,eC:0.00419646,fC:0.00279764,gC:0.0125894,hC:0.00419646,iC:0.00839291,jC:0.0391669,kC:0.00279764,lC:0.0545539,mC:0.0223811,nC:0.0195835,oC:0.015387,pC:0.257383,qC:0.00699409,rC:0.0111905,sC:0.0181846,tC:0.0573516,uC:0.149674,vC:0.257383,wC:0.0965185,AC:0.10631,BC:0.120298,yB:0.170656,xC:1.13864,zB:0.43783,CC:0.863071,DC:0.440628,EC:0.879857,FC:0.211222,GC:2.6032,HC:5.87084},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7B","dC","JC","eC","fC","gC","G","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","AC","BC","yB","xC","zB","CC","DC","EC","FC","GC","HC","D",""],E:"Safari on iOS",F:{"7B":1270252800,dC:1283904000,JC:1299628800,eC:1331078400,fC:1359331200,gC:1394409600,G:1410912000,hC:1413763200,iC:1442361600,jC:1458518400,kC:1473724800,lC:1490572800,mC:1505779200,nC:1522281600,oC:1537142400,pC:1553472000,qC:1568851200,rC:1572220800,sC:1580169600,tC:1585008000,uC:1600214400,vC:1619395200,wC:1632096000,AC:1639353600,BC:1647216000,yB:1652659200,xC:1658275200,zB:1662940800,CC:1666569600,DC:1670889600,EC:1674432000,FC:1679875200,GC:1684368000,HC:null,D:null}},H:{A:{yC:1.08194},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","yC","","",""],E:"Opera Mini",F:{yC:1426464000}},I:{A:{"0B":0,J:0.0136938,E:0,zC:0,"0C":0.00684689,"1C":0,"2C":0.0273876,JC:0.0479282,"3C":0,"4C":0.212254},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","zC","0C","1C","0B","J","2C","JC","3C","4C","E","","",""],E:"Android Browser",F:{zC:1256515200,"0C":1274313600,"1C":1291593600,"0B":1298332800,J:1318896000,"2C":1341792000,JC:1374624000,"3C":1386547200,"4C":1401667200,E:1692057600}},J:{A:{F:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","A","","",""],E:"Blackberry Browser",F:{F:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,p:0,wB:0,IC:0,xB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","wB","IC","C","xB","p","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,wB:1314835200,IC:1318291200,C:1330300800,xB:1349740800,p:1673827200},D:{p:"webkit"}},L:{A:{E:37.5486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Chrome for Android",F:{E:1692057600}},M:{A:{E:0.263294},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","","",""],E:"Firefox for Android",F:{E:1690848000}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{yB:1.00276},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","yB","","",""],E:"UC Browser for Android",F:{yB:1687132800},D:{yB:"webkit"}},P:{A:{J:0.115947,m:0.0843248,n:0.210812,o:0,"5C":0,"6C":0,"7C":0.0421624,"8C":0,"9C":0,"8B":0,AD:0.0105406,BD:0,CD:0.0210812,DD:0.0210812,ED:0,zB:0.0316218,FD:0.0316218,GD:0.0316218,HD:0.052703},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","5C","6C","7C","8C","9C","8B","AD","BD","CD","DD","ED","zB","FD","GD","HD","m","n","o","","",""],E:"Samsung Internet",F:{J:1461024000,"5C":1481846400,"6C":1509408000,"7C":1528329600,"8C":1546128000,"9C":1554163200,"8B":1567900800,AD:1582588800,BD:1593475200,CD:1605657600,DD:1618531200,ED:1629072000,zB:1640736000,FD:1651708800,GD:1659657600,HD:1667260800,m:1677369600,n:1684454400,o:1689292800}},Q:{A:{"9B":0.173662},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","","",""],E:"QQ Browser",F:{"9B":1663718400}},R:{A:{ID:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ID","","",""],E:"Baidu Browser",F:{ID:1663027200}},S:{A:{JD:0.05602,KD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JD","KD","","",""],E:"KaiOS Browser",F:{JD:1527811200,KD:1631664000}}}; +module.exports={A:{A:{J:0,E:0,F:0.0268696,G:0.0537391,A:0,B:0.416478,NC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NC","J","E","F","G","A","B","","",""],E:"IE",F:{NC:962323200,J:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0.035192,"1":0.607062,"2":3.20687,"3":1.03376,C:0.004399,K:0.004399,L:0.004399,H:0.004399,M:0,N:0.004399,O:0.008798,P:0,Q:0.004399,R:0.004399,S:0.004399,T:0.008798,U:0.004399,V:0.008798,W:0.004399,X:0.004399,Y:0.004399,Z:0.008798,a:0,b:0.013197,c:0,d:0,e:0,f:0,g:0,h:0,i:0.017596,j:0,k:0,l:0,q:0,r:0,s:0,t:0,u:0.008798,v:0.013197,w:0.083581,x:0.013197,y:0.092379,z:0.096778,D:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","H","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","3","D","","",""],E:"Edge",F:{"0":1683158400,"1":1685664000,"2":1689897600,"3":1692576000,C:1438128000,K:1447286400,L:1470096000,H:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,q:1655942400,r:1659657600,s:1661990400,t:1664755200,u:1666915200,v:1670198400,w:1673481600,x:1675900800,y:1678665600,z:1680825600,D:1694649600},D:{C:"ms",K:"ms",L:"ms",H:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.026394,"1":0.030793,"2":0.580668,"3":1.39008,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,OC:0,"2B":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0.008798,C:0,K:0,L:0,H:0,M:0,N:0,O:0,m:0,n:0,o:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0.008798,RB:0.004399,SB:0,TB:0,UB:0,VB:0.004399,WB:0,XB:0.008798,YB:0,ZB:0.052788,aB:0.004399,bB:0.004399,cB:0,dB:0.008798,eB:0,fB:0,"3B":0.004399,gB:0,"4B":0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0.030793,p:0,sB:0,tB:0,uB:0,vB:0,wB:0.039591,P:0,Q:0,R:0,"5B":0,S:0.008798,T:0,U:0,V:0,W:0,X:0.004399,Y:0,Z:0.004399,a:0.008798,b:0,c:0,d:0.013197,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0.118773,q:0.017596,r:0,s:0.004399,t:0.004399,u:0.004399,v:0.008798,w:0.008798,x:0.008798,y:0.013197,z:0.065985,D:0.052788,"6B":0,"7B":0,"8B":0,PC:0,QC:0},B:"moz",C:["OC","2B","PC","QC","I","4","J","E","F","G","A","B","C","K","L","H","M","N","O","5","m","n","o","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","3B","gB","4B","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","p","sB","tB","uB","vB","wB","P","Q","R","5B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","3","D","6B","7B","8B"],E:"Firefox",F:{"0":1683590400,"1":1686009600,"2":1688428800,"3":1690848000,"4":1308614400,"5":1357603200,"6":1372118400,"7":1375747200,"8":1379376000,"9":1386633600,OC:1161648000,"2B":1213660800,PC:1246320000,QC:1264032000,I:1300752000,J:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,H:1342483200,M:1346112000,N:1349740800,O:1353628800,m:1361232000,n:1364860800,o:1368489600,AB:1391472000,BB:1395100800,CB:1398729600,DB:1402358400,EB:1405987200,FB:1409616000,GB:1413244800,HB:1417392000,IB:1421107200,JB:1424736000,KB:1428278400,LB:1431475200,MB:1435881600,NB:1439251200,OB:1442880000,PB:1446508800,QB:1450137600,RB:1453852800,SB:1457395200,TB:1461628800,UB:1465257600,VB:1470096000,WB:1474329600,XB:1479168000,YB:1485216000,ZB:1488844800,aB:1492560000,bB:1497312000,cB:1502150400,dB:1506556800,eB:1510617600,fB:1516665600,"3B":1520985600,gB:1525824000,"4B":1529971200,hB:1536105600,iB:1540252800,jB:1544486400,kB:1548720000,lB:1552953600,mB:1558396800,nB:1562630400,oB:1567468800,pB:1571788800,qB:1575331200,rB:1578355200,p:1581379200,sB:1583798400,tB:1586304000,uB:1588636800,vB:1591056000,wB:1593475200,P:1595894400,Q:1598313600,R:1600732800,"5B":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,q:1658793600,r:1661212800,s:1663632000,t:1666051200,u:1668470400,v:1670889600,w:1673913600,x:1676332800,y:1678752000,z:1681171200,D:1693267200,"6B":null,"7B":null,"8B":null}},D:{A:{"0":0.255142,"1":2.10712,"2":12.8099,"3":5.7231,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0,K:0,L:0,H:0,M:0,N:0,O:0,m:0,n:0,o:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0.004399,IB:0,JB:0,KB:0,LB:0.013197,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.004399,VB:0.017596,WB:0.030793,XB:0.013197,YB:0,ZB:0,aB:0.008798,bB:0,cB:0.004399,dB:0.048389,eB:0.004399,fB:0,"3B":0,gB:0.021995,"4B":0.004399,hB:0.004399,iB:0.008798,jB:0,kB:0.008798,lB:0.026394,mB:0.004399,nB:0.039591,oB:0.065985,pB:0.039591,qB:0.021995,rB:0.026394,p:0.030793,sB:0.048389,tB:0.048389,uB:0.096778,vB:0.026394,wB:0.039591,P:0.202354,Q:0.079182,R:0.057187,S:0.114374,T:0.030793,U:0.083581,V:0.092379,W:0.08798,X:0.048389,Y:0.039591,Z:0.048389,a:0.061586,b:0.035192,c:0.127571,d:0.030793,e:0.017596,f:0.026394,g:0.026394,h:0.061586,i:0.04399,j:0.035192,k:0.035192,l:0.039591,q:0.211152,r:0.052788,s:0.048389,t:0.052788,u:0.123172,v:0.180359,w:1.83878,x:0.149566,y:0.285935,z:0.228748,D:0.017596,"6B":0.004399,"7B":0,"8B":0},B:"webkit",C:["","","","","","I","4","J","E","F","G","A","B","C","K","L","H","M","N","O","5","m","n","o","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","3B","gB","4B","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","p","sB","tB","uB","vB","wB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","q","r","s","t","u","v","w","x","y","z","0","1","2","3","D","6B","7B","8B"],E:"Chrome",F:{"0":1682985600,"1":1685404800,"2":1689724800,"3":1692057600,"4":1274745600,"5":1332892800,"6":1348531200,"7":1352246400,"8":1357862400,"9":1361404800,I:1264377600,J:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,H:1316131200,M:1319500800,N:1323734400,O:1328659200,m:1337040000,n:1340668800,o:1343692800,AB:1364428800,BB:1369094400,CB:1374105600,DB:1376956800,EB:1384214400,FB:1389657600,GB:1392940800,HB:1397001600,IB:1400544000,JB:1405468800,KB:1409011200,LB:1412640000,MB:1416268800,NB:1421798400,OB:1425513600,PB:1429401600,QB:1432080000,RB:1437523200,SB:1441152000,TB:1444780800,UB:1449014400,VB:1453248000,WB:1456963200,XB:1460592000,YB:1464134400,ZB:1469059200,aB:1472601600,bB:1476230400,cB:1480550400,dB:1485302400,eB:1489017600,fB:1492560000,"3B":1496707200,gB:1500940800,"4B":1504569600,hB:1508198400,iB:1512518400,jB:1516752000,kB:1520294400,lB:1523923200,mB:1527552000,nB:1532390400,oB:1536019200,pB:1539648000,qB:1543968000,rB:1548720000,p:1552348800,sB:1555977600,tB:1559606400,uB:1564444800,vB:1568073600,wB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,q:1655769600,r:1659398400,s:1661817600,t:1664236800,u:1666656000,v:1669680000,w:1673308800,x:1675728000,y:1678147200,z:1680566400,D:1694476800,"6B":null,"7B":null,"8B":null}},E:{A:{"4":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0,K:0.017596,L:0.105576,H:0.017596,RC:0,"9B":0,SC:0.008798,TC:0,UC:0,VC:0.140768,AC:0,xB:0.004399,yB:0.030793,BC:0.136369,WC:0.255142,XC:0.039591,CC:0.035192,DC:0.070384,zB:0.123172,YC:0.576269,"0B":0.171561,EC:0.180359,FC:0.184758,GC:0.422304,HC:0.189157,IC:1.15254,JC:1.65402,"1B":0.026394,KC:0,ZC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RC","9B","I","4","SC","J","TC","E","UC","F","G","VC","A","AC","B","xB","C","yB","K","BC","L","WC","H","XC","CC","DC","zB","YC","0B","EC","FC","GC","HC","IC","JC","1B","KC","ZC",""],E:"Safari",F:{"4":1275868800,RC:1205798400,"9B":1226534400,I:1244419200,SC:1311120000,J:1343174400,TC:1382400000,E:1382400000,UC:1410998400,F:1413417600,G:1443657600,VC:1458518400,A:1474329600,AC:1490572800,B:1505779200,xB:1522281600,C:1537142400,yB:1553472000,K:1568851200,BC:1585008000,L:1600214400,WC:1619395200,H:1632096000,XC:1635292800,CC:1639353600,DC:1647216000,zB:1652745600,YC:1658275200,"0B":1662940800,EC:1666569600,FC:1670889600,GC:1674432000,HC:1679875200,IC:1684368000,JC:1690156800,"1B":1695686400,KC:null,ZC:null}},F:{A:{"5":0,"6":0,"7":0,"8":0,"9":0,G:0,B:0,C:0,H:0,M:0,N:0,O:0,m:0,n:0,o:0,AB:0,BB:0.004399,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0.013197,UB:0,VB:0,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,p:0,sB:0,tB:0,uB:0,vB:0,wB:0,P:0,Q:0,R:0,"5B":0,S:0,T:0,U:0.004399,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.057187,f:0,g:0.079182,h:0,i:0.030793,j:0.83581,k:0.466294,l:0.008798,aC:0,bC:0,cC:0,dC:0,xB:0,LC:0,eC:0,yB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","G","aC","bC","cC","dC","B","xB","LC","eC","C","yB","H","M","N","O","5","m","n","o","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","p","sB","tB","uB","vB","wB","P","Q","R","5B","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","","",""],E:"Opera",F:{"5":1390867200,"6":1405987200,"7":1409616000,"8":1413331200,"9":1417132800,G:1150761600,aC:1223424000,bC:1251763200,cC:1267488000,dC:1277942400,B:1292457600,xB:1302566400,LC:1309219200,eC:1323129600,C:1323129600,yB:1352073600,H:1372723200,M:1377561600,N:1381104000,O:1386288000,m:1393891200,n:1399334400,o:1401753600,AB:1422316800,BB:1425945600,CB:1430179200,DB:1433808000,EB:1438646400,FB:1442448000,GB:1445904000,HB:1449100800,IB:1454371200,JB:1457308800,KB:1462320000,LB:1465344000,MB:1470096000,NB:1474329600,OB:1477267200,PB:1481587200,QB:1486425600,RB:1490054400,SB:1494374400,TB:1498003200,UB:1502236800,VB:1506470400,WB:1510099200,XB:1515024000,YB:1517961600,ZB:1521676800,aB:1525910400,bB:1530144000,cB:1534982400,dB:1537833600,eB:1543363200,fB:1548201600,gB:1554768000,hB:1561593600,iB:1566259200,jB:1570406400,kB:1573689600,lB:1578441600,mB:1583971200,nB:1587513600,oB:1592956800,pB:1595894400,qB:1600128000,rB:1603238400,p:1613520000,sB:1612224000,tB:1616544000,uB:1619568000,vB:1623715200,wB:1627948800,P:1631577600,Q:1633392000,R:1635984000,"5B":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800},D:{G:"o",B:"o",C:"o",aC:"o",bC:"o",cC:"o",dC:"o",xB:"o",LC:"o",eC:"o",yB:"o"}},G:{A:{F:0,"9B":0,fC:0,MC:0.00279764,gC:0.00419646,hC:0.00279764,iC:0.0125894,jC:0.00419646,kC:0.00839291,lC:0.0391669,mC:0.00279764,nC:0.0545539,oC:0.0223811,pC:0.0195835,qC:0.015387,rC:0.257383,sC:0.00699409,tC:0.0111905,uC:0.0181846,vC:0.0573516,wC:0.149674,xC:0.257383,yC:0.0965185,CC:0.10631,DC:0.120298,zB:0.170656,zC:1.13864,"0B":0.43783,EC:0.863071,FC:0.440628,GC:0.879857,HC:0.211222,IC:2.6032,JC:5.87084,"1B":0.0965185,KC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","9B","fC","MC","gC","hC","iC","F","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","CC","DC","zB","zC","0B","EC","FC","GC","HC","IC","JC","1B","KC","",""],E:"Safari on iOS",F:{"9B":1270252800,fC:1283904000,MC:1299628800,gC:1331078400,hC:1359331200,iC:1394409600,F:1410912000,jC:1413763200,kC:1442361600,lC:1458518400,mC:1473724800,nC:1490572800,oC:1505779200,pC:1522281600,qC:1537142400,rC:1553472000,sC:1568851200,tC:1572220800,uC:1580169600,vC:1585008000,wC:1600214400,xC:1619395200,yC:1632096000,CC:1639353600,DC:1647216000,zB:1652659200,zC:1658275200,"0B":1662940800,EC:1666569600,FC:1670889600,GC:1674432000,HC:1679875200,IC:1684368000,JC:1690156800,"1B":1694995200,KC:null}},H:{A:{"0C":1.08194},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","0C","","",""],E:"Opera Mini",F:{"0C":1426464000}},I:{A:{"2B":0,I:0.0136938,D:0,"1C":0,"2C":0.00684689,"3C":0,"4C":0.0273876,MC:0.0479282,"5C":0,"6C":0.212254},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1C","2C","3C","2B","I","4C","MC","5C","6C","D","","",""],E:"Android Browser",F:{"1C":1256515200,"2C":1274313600,"3C":1291593600,"2B":1298332800,I:1318896000,"4C":1341792000,MC:1374624000,"5C":1386547200,"6C":1401667200,D:1694476800}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,p:0,xB:0,LC:0,yB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","xB","LC","C","yB","p","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,xB:1314835200,LC:1318291200,C:1330300800,yB:1349740800,p:1673827200},D:{p:"webkit"}},L:{A:{D:37.5486},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1694476800}},M:{A:{D:0.263294},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:1693267200}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{zB:1.00276},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","zB","","",""],E:"UC Browser for Android",F:{zB:1687132800},D:{zB:"webkit"}},P:{A:{I:0.115947,m:0.0843248,n:0.210812,o:0,"7C":0,"8C":0,"9C":0.0421624,AD:0,BD:0,AC:0,CD:0.0105406,DD:0,ED:0.0210812,FD:0.0210812,GD:0,"0B":0.0316218,"1B":0.0316218,HD:0.0316218,ID:0.052703},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","7C","8C","9C","AD","BD","AC","CD","DD","ED","FD","GD","0B","1B","HD","ID","m","n","o","","",""],E:"Samsung Internet",F:{I:1461024000,"7C":1481846400,"8C":1509408000,"9C":1528329600,AD:1546128000,BD:1554163200,AC:1567900800,CD:1582588800,DD:1593475200,ED:1605657600,FD:1618531200,GD:1629072000,"0B":1640736000,"1B":1651708800,HD:1659657600,ID:1667260800,m:1677369600,n:1684454400,o:1689292800}},Q:{A:{BC:0.173662},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BC","","",""],E:"QQ Browser",F:{BC:1663718400}},R:{A:{JD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","JD","","",""],E:"Baidu Browser",F:{JD:1663027200}},S:{A:{KD:0.05602,LD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","KD","LD","","",""],E:"KaiOS Browser",F:{KD:1527811200,LD:1631664000}}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js index 443b01de780546..b61bc33636e182 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js @@ -1 +1 @@ -module.exports={"0":"113","1":"114","2":"115","3":"5","4":"19","5":"23","6":"24","7":"25","8":"26","9":"27",A:"10",B:"11",C:"12",D:"17",E:"116",F:"7",G:"8",H:"9",I:"15",J:"4",K:"6",L:"13",M:"14",N:"16",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"20",n:"21",o:"22",p:"73",q:"103",r:"104",s:"105",t:"106",u:"107",v:"108",w:"109",x:"110",y:"111",z:"112",AB:"28",BB:"29",CB:"30",DB:"31",EB:"32",FB:"33",GB:"34",HB:"35",IB:"36",JB:"37",KB:"38",LB:"39",MB:"40",NB:"41",OB:"42",PB:"43",QB:"44",RB:"45",SB:"46",TB:"47",UB:"48",VB:"49",WB:"50",XB:"51",YB:"52",ZB:"53",aB:"54",bB:"55",cB:"56",dB:"57",eB:"58",fB:"60",gB:"62",hB:"63",iB:"64",jB:"65",kB:"66",lB:"67",mB:"68",nB:"69",oB:"70",pB:"71",qB:"72",rB:"74",sB:"75",tB:"76",uB:"77",vB:"78",wB:"11.1",xB:"12.1",yB:"15.5",zB:"16.0","0B":"3","1B":"59","2B":"61","3B":"82","4B":"117","5B":"118","6B":"119","7B":"3.2","8B":"10.1","9B":"13.1",AC:"15.2-15.3",BC:"15.4",CC:"16.1",DC:"16.2",EC:"16.3",FC:"16.4",GC:"16.5",HC:"16.6",IC:"11.5",JC:"4.2-4.3",KC:"5.5",LC:"2",MC:"120",NC:"3.5",OC:"3.6",PC:"3.1",QC:"5.1",RC:"6.1",SC:"7.1",TC:"9.1",UC:"14.1",VC:"15.1",WC:"15.6",XC:"TP",YC:"9.5-9.6",ZC:"10.0-10.1",aC:"10.5",bC:"10.6",cC:"11.6",dC:"4.0-4.1",eC:"5.0-5.1",fC:"6.0-6.1",gC:"7.0-7.1",hC:"8.1-8.4",iC:"9.0-9.2",jC:"9.3",kC:"10.0-10.2",lC:"10.3",mC:"11.0-11.2",nC:"11.3-11.4",oC:"12.0-12.1",pC:"12.2-12.5",qC:"13.0-13.1",rC:"13.2",sC:"13.3",tC:"13.4-13.7",uC:"14.0-14.4",vC:"14.5-14.8",wC:"15.0-15.1",xC:"15.6-15.7",yC:"all",zC:"2.1","0C":"2.2","1C":"2.3","2C":"4.1","3C":"4.4","4C":"4.4.3-4.4.4","5C":"5.0-5.4","6C":"6.2-6.4","7C":"7.2-7.4","8C":"8.2","9C":"9.2",AD:"11.1-11.2",BD:"12.0",CD:"13.0",DD:"14.0",ED:"15.0",FD:"17.0",GD:"18.0",HD:"19.0",ID:"13.18",JD:"2.5",KD:"3.0-3.1"}; +module.exports={"0":"113","1":"114","2":"115","3":"116","4":"5","5":"19","6":"23","7":"24","8":"25","9":"26",A:"10",B:"11",C:"12",D:"117",E:"7",F:"8",G:"9",H:"15",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"20",n:"21",o:"22",p:"73",q:"103",r:"104",s:"105",t:"106",u:"107",v:"108",w:"109",x:"110",y:"111",z:"112",AB:"27",BB:"28",CB:"29",DB:"30",EB:"31",FB:"32",GB:"33",HB:"34",IB:"35",JB:"36",KB:"37",LB:"38",MB:"39",NB:"40",OB:"41",PB:"42",QB:"43",RB:"44",SB:"45",TB:"46",UB:"47",VB:"48",WB:"49",XB:"50",YB:"51",ZB:"52",aB:"53",bB:"54",cB:"55",dB:"56",eB:"57",fB:"58",gB:"60",hB:"62",iB:"63",jB:"64",kB:"65",lB:"66",mB:"67",nB:"68",oB:"69",pB:"70",qB:"71",rB:"72",sB:"74",tB:"75",uB:"76",vB:"77",wB:"78",xB:"11.1",yB:"12.1",zB:"15.5","0B":"16.0","1B":"17.0","2B":"3","3B":"59","4B":"61","5B":"82","6B":"118","7B":"119","8B":"120","9B":"3.2",AC:"10.1",BC:"13.1",CC:"15.2-15.3",DC:"15.4",EC:"16.1",FC:"16.2",GC:"16.3",HC:"16.4",IC:"16.5",JC:"16.6",KC:"17.1",LC:"11.5",MC:"4.2-4.3",NC:"5.5",OC:"2",PC:"3.5",QC:"3.6",RC:"3.1",SC:"5.1",TC:"6.1",UC:"7.1",VC:"9.1",WC:"14.1",XC:"15.1",YC:"15.6",ZC:"TP",aC:"9.5-9.6",bC:"10.0-10.1",cC:"10.5",dC:"10.6",eC:"11.6",fC:"4.0-4.1",gC:"5.0-5.1",hC:"6.0-6.1",iC:"7.0-7.1",jC:"8.1-8.4",kC:"9.0-9.2",lC:"9.3",mC:"10.0-10.2",nC:"10.3",oC:"11.0-11.2",pC:"11.3-11.4",qC:"12.0-12.1",rC:"12.2-12.5",sC:"13.0-13.1",tC:"13.2",uC:"13.3",vC:"13.4-13.7",wC:"14.0-14.4",xC:"14.5-14.8",yC:"15.0-15.1",zC:"15.6-15.7","0C":"all","1C":"2.1","2C":"2.2","3C":"2.3","4C":"4.1","5C":"4.4","6C":"4.4.3-4.4.4","7C":"5.0-5.4","8C":"6.2-6.4","9C":"7.2-7.4",AD:"8.2",BD:"9.2",CD:"11.1-11.2",DD:"12.0",ED:"13.0",FD:"14.0",GD:"15.0",HD:"18.0",ID:"19.0",JD:"13.18",KD:"2.5",LD:"3.0-3.1"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js index 5f001c311f7e89..872a7b5e3d197e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","132":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H","16":"A B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"132":"E"},N:{"1":"A","2":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"132":"JD KD"}},B:6,C:"AAC audio file format",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","132":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G","16":"A B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"132":"D"},N:{"1":"A","2":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"132":"KD LD"}},B:6,C:"AAC audio file format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js index 19232b280d0c00..9bd3ba8ce9f8ee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I"},C:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB NC OC"},D:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B","130":"C wB"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"AbortController & AbortSignal",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H"},C:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB PC QC"},D:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC","130":"C xB"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"AbortController & AbortSignal",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js index 115d0ff3a3b627..8beb54c4b56321 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC","132":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","132":"A"},K:{"2":"A B C p wB IC","132":"xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC","132":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","132":"A"},K:{"2":"A B C p xB LC","132":"yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js index 593d82438fb432..98013f6cf8215b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"eB 1B fB 2B gB hB iB jB kB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"Accelerometer",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"fB 3B gB 4B hB iB jB kB lB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"Accelerometer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js index 2a31eddb28b4b4..71865e925b3248 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","130":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","257":"3 LC 0B J K NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"EventTarget.addEventListener()",D:true}; +module.exports={A:{A:{"1":"G A B","130":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","257":"4 OC 2B I J PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"EventTarget.addEventListener()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js index ff328c6b915f83..d17d44edb47b36 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"K F KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"H B C YC ZC aC bC wB IC cC xB","16":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"16":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"2":"p","16":"A B C wB IC xB"},L:{"16":"E"},M:{"16":"E"},N:{"16":"A B"},O:{"16":"yB"},P:{"16":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"16":"ID"},S:{"1":"JD KD"}},B:1,C:"Alternate stylesheet",D:false}; +module.exports={A:{A:{"1":"F G A B","2":"J E NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"G B C aC bC cC dC xB LC eC yB","16":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"16":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"2":"p","16":"A B C xB LC yB"},L:{"16":"D"},M:{"16":"D"},N:{"16":"A B"},O:{"16":"zB"},P:{"16":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"16":"JD"},S:{"1":"KD LD"}},B:1,C:"Alternate stylesheet",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js index 4c87da831592e6..1569da0fc3a4f6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L","132":"M I N D O","322":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","132":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","194":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","322":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB YC ZC aC bC wB IC cC xB","322":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"132":"JD KD"}},B:4,C:"Ambient Light Sensor",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K","132":"L H M N O","322":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","132":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","194":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","322":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB aC bC cC dC xB LC eC yB","322":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"132":"KD LD"}},B:4,C:"Ambient Light Sensor",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js index d02bfd24bc5a30..2d429a89e34abc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC SC"},F:{"1":"B C SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"4 5 6 7 8 9 H I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Animated PNG (APNG)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC"},D:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC UC"},F:{"1":"B C TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"5 6 7 8 9 G H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Animated PNG (APNG)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js index 64793a44e5ff3c..04e78c14a6f105 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","16":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Array.prototype.findIndex",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","16":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Array.prototype.findIndex",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js index da8cfc3b0764eb..7c9efc4aef2d4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C L M"},C:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","16":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Array.prototype.find",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C K L"},C:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","16":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Array.prototype.find",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js index a34f215e77fd84..6e7fc26c23377b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B NC OC"},D:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B wB"},F:{"1":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB YC ZC aC bC wB IC cC xB"},G:{"1":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"flat & flatMap array methods",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B PC QC"},D:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC xB"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB aC bC cC dC xB LC eC yB"},G:{"1":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"flat & flatMap array methods",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js index 20a963a61d207a..2b9db60d78f687 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB NC OC"},D:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Array.prototype.includes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB PC QC"},D:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Array.prototype.includes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js index 4d3553ba71008f..54884c74231a73 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC"},D:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Arrow functions",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC"},D:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Arrow functions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js index 588092ab976092..976b217d44cf45 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"L M I N D O","132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","322":"C"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o","132":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","132":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","132":"p"},L:{"132":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"132":"yB"},P:{"2":"J","132":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"132":"9B"},R:{"132":"ID"},S:{"1":"JD KD"}},B:6,C:"asm.js",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"K L H M N O","132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","322":"C"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB","132":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","132":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","132":"p"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"132":"zB"},P:{"2":"I","132":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"132":"JD"},S:{"1":"KD LD"}},B:6,C:"asm.js",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js index 29df0f7a91ee51..f4eeb7f1be3fc3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC","132":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","66":"eB 1B fB 2B"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC","260":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","260":"E"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"132":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J 5C 6C 7C 8C","260":"m n o 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD","132":"KD"}},B:5,C:"Asynchronous Clipboard API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC","132":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","66":"fB 3B gB 4B"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC","260":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","260":"D"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I 7C 8C 9C AD","260":"m n o BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD","132":"LD"}},B:5,C:"Asynchronous Clipboard API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js index 1dec12fb1011be..0efba35201c6fa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L","194":"M"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC"},D:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC","258":"8B"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC","258":"lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"Async functions",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K","194":"L"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC"},D:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC","258":"AC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC","258":"nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"Async functions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js index a8b2f6e140ed25..01c4af4636fc9e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC ZC","16":"aC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","16":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Base64 encoding and decoding",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC bC","16":"cC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Base64 encoding and decoding",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js index c81f42d5ef58cf..2da92ad6d307c7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L","33":"4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB"},E:{"1":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K F G H A B C L M RC SC TC 8B wB xB 9B"},F:{"1":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 I N D O m n"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Web Audio API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K","33":"5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB"},E:{"1":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J E F G A B C K L TC UC VC AC xB yB BC"},F:{"1":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 H M N O m n"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Web Audio API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js index 4143dbb240923a..6e7c903d660d11 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","132":"3 4 J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H","4":"YC ZC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","2":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Audio element",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","132":"4 5 I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G","4":"aC bC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","2":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Audio element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js index b5c3e621dcab62..68ac965563c090 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"C L M I N D O","322":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","194":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","322":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB","322":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","322":"p"},L:{"322":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"322":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"322":"9B"},R:{"322":"ID"},S:{"194":"JD KD"}},B:1,C:"Audio Tracks",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"C K L H M N O","322":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","194":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","322":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB","322":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","322":"p"},L:{"322":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"322":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"322":"BC"},R:{"322":"JD"},S:{"194":"KD LD"}},B:1,C:"Audio Tracks",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js index dd0a59a7db5ca2..c60147a95f283e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"Autofocus attribute",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"Autofocus attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js index 2e52d8d3ebd0f8..4d381c604058e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC","129":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"Auxclick",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC","129":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"Auxclick",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js index ffe4dbd66be907..3f3c5e835105fe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D","194":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB NC OC","66":"bB cB dB eB 1B fB 2B gB hB iB","260":"jB","516":"kB"},D:{"1":"0 1 2 oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB","66":"lB mB nB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"AV1 video format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N","194":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB PC QC","66":"cB dB eB fB 3B gB 4B hB iB jB","260":"kB","516":"lB"},D:{"1":"0 1 2 3 pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB","66":"mB nB oB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC","1026":"1B KC ZC"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC","1028":"1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"AV1 video format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js index 418d4ba2cc08e1..50a98be6d3daa3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","4162":"1 2 E"},C:{"1":"0 1 2 E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB NC OC","194":"uB vB P Q R 3B S T U V W X Y Z a b","257":"c d e f g h i j k l q r s t u v w x","2049":"y z"},D:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB","1796":"CC DC EC"},F:{"1":"pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC","257":"D FC GC HC","1281":"zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"AVIF image format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","4162":"1 2 3 D"},C:{"1":"0 1 2 3 D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB PC QC","194":"vB wB P Q R 5B S T U V W X Y Z a b","257":"c d e f g h i j k l q r s t u v w x","2049":"y z"},D:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B","1796":"EC FC GC"},F:{"1":"qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC","257":"HC IC JC 1B KC","1281":"0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"AVIF image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js index e6d444a089dd5c..217565dbc7acd9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","132":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C D QC RC SC TC 8B wB xB BC yB WC zB CC DC EC FC GC HC XC","132":"J L PC 7B 9B","2050":"M I UC VC AC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","132":"H YC ZC"},G:{"2":"7B dC JC","772":"G eC fC gC hC iC jC kC lC mC nC oC pC","2050":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 3C 4C","132":"2C JC"},J:{"260":"F A"},K:{"1":"B C p wB IC xB","132":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"2":"J","1028":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS background-attachment",D:true}; +module.exports={A:{A:{"1":"G A B","132":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C SC TC UC VC AC xB yB DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"I K RC 9B BC","2050":"L H WC XC CC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","132":"G aC bC"},G:{"2":"9B fC MC","772":"F gC hC iC jC kC lC mC nC oC pC qC rC","2050":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 5C 6C","132":"4C MC"},J:{"260":"E A"},K:{"1":"B C p xB LC yB","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"2":"I","1028":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS background-attachment",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js index 4ddf793bda54bb..fe51fe8f577db8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"I N D O","33":"0 1 2 C L M P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B","33":"3 J K F G H A B C L QC RC SC TC 8B wB xB 9B"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC","33":"G fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"16":"0B zC 0C 1C","33":"J E 2C JC 3C 4C"},J:{"33":"F A"},K:{"16":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"33":"ID"},S:{"1":"JD KD"}},B:7,C:"Background-clip: text",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"H M N O","33":"0 1 2 3 C K L P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B","33":"4 I J E F G A B C K SC TC UC VC AC xB yB BC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC","33":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"16":"2B 1C 2C 3C","33":"I D 4C MC 5C 6C"},J:{"33":"E A"},K:{"16":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"33":"JD"},S:{"1":"KD LD"}},B:7,C:"Background-clip: text",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js index 5e42977de1579f..969b1d9a16ebe0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","36":"OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","516":"3 J K F G H A B C L M"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","772":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC","36":"ZC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"7B dC JC fC","516":"eC"},H:{"132":"yC"},I:{"1":"E 3C 4C","36":"zC","516":"0B J 2C JC","548":"0C 1C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 Background-image options",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","36":"QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","516":"4 I J E F G A B C K L"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","772":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC","36":"bC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","4":"9B fC MC hC","516":"gC"},H:{"132":"0C"},I:{"1":"D 5C 6C","36":"1C","516":"2B I 4C MC","548":"2C 3C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 Background-image options",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js index f40daa6f8ba4c3..32f9ef71b508c3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:7,C:"background-position-x & background-position-y",D:true}; +module.exports={A:{A:{"1":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:7,C:"background-position-x & background-position-y",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js index e2e6c2bd1b6360..9720d731808e74 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G KC","132":"H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 B C m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H I N D O YC ZC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"CSS background-repeat round and space",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F NC","132":"G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 B C m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G H M N O aC bC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"CSS background-repeat round and space",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js index 203bacce3c44cd..1fbc05b6ff9c4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B NC OC","16":"5B 6B MC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Background Sync API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D PC QC","16":"6B 7B 8B"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Background Sync API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js index d46ea48fb2732a..6eec7a884fafc3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 LC 0B J K F G H YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","132":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","164":"A B C L M I"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB","66":"JB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD","2":"KD"}},B:4,C:"Battery Status API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB","2":"0 1 2 3 4 OC 2B I J E F G ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","132":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","164":"A B C K L H"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB","66":"KB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD","2":"LD"}},B:4,C:"Battery Status API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js index 6696d7dcf1f499..5788e3cb3308e2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC"},D:{"1":"0 1 2 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Beacon API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC"},D:{"1":"0 1 2 3 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Beacon API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js index 4641b1a15752f6..5702fb1f278d28 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC"},D:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"16":"A B"},O:{"1":"yB"},P:{"2":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Printing Events",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC"},D:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"zB"},P:{"2":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Printing Events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js index f33a0cb813bdd6..40542fdadee7a3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB NC OC","194":"jB kB lB"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB 9B"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"BigInt",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB PC QC","194":"kB lB mB"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB BC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"BigInt",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js index 6cb6bd5369b231..42419c6c40bbee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","36":"K F G H A B C"},D:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F","36":"4 G H A B C L M I N D O"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"E","2":"zC 0C 1C","36":"0B J 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Blob constructing",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","36":"J E F G A B C"},D:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E","36":"5 F G A B C K L H M N O"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"D","2":"1C 2C 3C","36":"2B I 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Blob constructing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js index cf7bf793f4bf9e..f0cf330d0f625d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","129":"A B"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F","33":"4 G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B zC 0C 1C","33":"J 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Blob URLs",D:true}; +module.exports={A:{A:{"2":"J E F G NC","129":"A B"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E","33":"5 F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B 1C 2C 3C","33":"I 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Blob URLs",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js index 838dc9cc52cef0..17dcfdc5461387 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","260":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","804":"3 J K F G H A B C L M NC OC"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","260":"XB YB ZB aB bB","388":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","1412":"4 5 6 7 8 9 I N D O m n o AB BB","1956":"3 J K F G H A B C L M"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","129":"A B C L M I TC 8B wB xB 9B UC VC AC","1412":"K F G H RC SC","1956":"3 J PC 7B QC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC","260":"KB LB MB NB OB","388":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB","1796":"aC bC","1828":"B C wB IC cC xB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","129":"jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC","1412":"G fC gC hC iC","1956":"7B dC JC eC"},H:{"1828":"yC"},I:{"1":"E","388":"3C 4C","1956":"0B J zC 0C 1C 2C JC"},J:{"1412":"A","1924":"F"},K:{"1":"p","2":"A","1828":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","260":"5C 6C","388":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","260":"JD"}},B:4,C:"CSS3 Border images",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","260":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","804":"4 I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","260":"YB ZB aB bB cB","388":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","1412":"5 6 7 8 9 H M N O m n o AB BB CB","1956":"4 I J E F G A B C K L"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","129":"A B C K L H VC AC xB yB BC WC XC CC","1412":"J E F G TC UC","1956":"4 I RC 9B SC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC","260":"LB MB NB OB PB","388":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","1796":"cC dC","1828":"B C xB LC eC yB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","129":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC","1412":"F hC iC jC kC","1956":"9B fC MC gC"},H:{"1828":"0C"},I:{"1":"D","388":"5C 6C","1956":"2B I 1C 2C 3C 4C MC"},J:{"1412":"A","1924":"E"},K:{"1":"p","2":"A","1828":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","260":"7C 8C","388":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","260":"KD"}},B:4,C:"CSS3 Border images",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js index eb45c923bd113f..0d80bc23f49719 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","257":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","289":"0B NC OC","292":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"J"},E:{"1":"3 F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"J PC 7B","129":"K QC RC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"7B"},H:{"2":"yC"},I:{"1":"0B J E 0C 1C 2C JC 3C 4C","33":"zC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","257":"JD"}},B:4,C:"CSS3 Border-radius (rounded corners)",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","257":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","289":"2B PC QC","292":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"I"},E:{"1":"4 E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"I RC 9B","129":"J SC TC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"9B"},H:{"2":"0C"},I:{"1":"2B I D 2C 3C 4C MC 5C 6C","33":"1C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","257":"KD"}},B:4,C:"CSS3 Border-radius (rounded corners)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js index dba0375ee44645..b49eeafe774634 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"BroadcastChannel",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"BroadcastChannel",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js index 1f35cb9badfbea..fc805cd11c56cc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB NC OC"},D:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","194":"VB","257":"WB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","513":"B C wB xB"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB","194":"IB JB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB PC QC"},D:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","194":"WB","257":"XB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","513":"B C xB yB"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB","194":"JB KB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js index 29de609ad36b10..c16044ec85063f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","260":"H","516":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"3 J K F G H A B C L M I"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D O","33":"4 5 6 7 m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"fC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","132":"3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"calc() as CSS unit value",D:true}; +module.exports={A:{A:{"2":"J E F NC","260":"G","516":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"4 I J E F G A B C K L H"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N O","33":"5 6 7 8 m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"hC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","132":"5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"calc() as CSS unit value",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js index 614ba3bb3c3a80..ebb8f95e755913 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Canvas blend modes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Canvas blend modes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js index 7de75ac81d3632..2e94d24367ccf2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","8":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","8":"H YC ZC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","8":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Text API for Canvas",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","8":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","8":"G aC bC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Text API for Canvas",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js index 5c057e43199548..758f97d4b84409 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","132":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"PC 7B"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"260":"yC"},I:{"1":"0B J E 2C JC 3C 4C","132":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Canvas (basic support)",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","132":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"RC 9B"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"260":"0C"},I:{"1":"2B I D 4C MC 5C 6C","132":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Canvas (basic support)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js index 74b0217cf4423d..c13cea732fa1dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"ch (character) unit",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"ch (character) unit",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js index c489ea1805fab2..3e733726124c60 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB","129":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C","16":"4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB","129":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C","16":"6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js index 95da513d036128..d12de1be9f8e9c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 LC 0B J K F G H A B C L M I N D O m n o NC OC","194":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC ZC","16":"aC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Channel messaging",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 OC 2B I J E F G A B C K L H M N O m n o PC QC","194":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC bC","16":"cC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Channel messaging",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js index b0df38880f11b8..b8848e923812d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C"},C:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","16":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"ChildNode.remove()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C"},C:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","16":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"ChildNode.remove()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js index 0233c6ac6fa40f..c35381b3e044b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"K F G H KC","1924":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"LC 0B NC","516":"6 7","772":"3 4 5 J K F G H A B C L M I N D O m n o OC"},D:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 J K F","516":"6 7 8 9","772":"5","900":"4 G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J PC 7B","900":"K QC RC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","8":"H B YC ZC aC bC wB","900":"C IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC","900":"eC fC"},H:{"900":"yC"},I:{"1":"E 3C 4C","8":"zC 0C 1C","900":"0B J 2C JC"},J:{"1":"A","900":"F"},K:{"1":"p","8":"A B","900":"C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"900":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"classList (DOMTokenList)",D:true}; +module.exports={A:{A:{"8":"J E F G NC","1924":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"OC 2B PC","516":"7 8","772":"4 5 6 I J E F G A B C K L H M N O m n o QC"},D:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 I J E","516":"7 8 9 AB","772":"6","900":"5 F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I RC 9B","900":"J SC TC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","8":"G B aC bC cC dC xB","900":"C LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC","900":"gC hC"},H:{"900":"0C"},I:{"1":"D 5C 6C","8":"1C 2C 3C","900":"2B I 4C MC"},J:{"1":"A","900":"E"},K:{"1":"p","8":"A B","900":"C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"classList (DOMTokenList)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js index 09a6c8f48737f5..09130f3fac3d57 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js index b4faf7ea953101..36dda738cdb98e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2436":"K F G H A B KC"},B:{"260":"D O","2436":"C L M I N","8196":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","772":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB","4100":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 J K F G H A B C","2564":"4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","8196":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","10244":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B","2308":"A B 8B wB","2820":"3 J K F G H QC RC SC TC"},F:{"2":"H B YC ZC aC bC wB IC cC","16":"C","516":"xB","2564":"4 5 6 7 8 9 I N D O m n o AB BB","8196":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","10244":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"1":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","2820":"G eC fC gC hC iC jC kC lC mC nC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","260":"E","2308":"3C 4C"},J:{"2":"F","2308":"A"},K:{"2":"A B C wB IC","16":"xB","8196":"p"},L:{"8196":"E"},M:{"1028":"E"},N:{"2":"A B"},O:{"8196":"yB"},P:{"2052":"5C 6C","2308":"J","8196":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"8196":"9B"},R:{"8196":"ID"},S:{"4100":"JD KD"}},B:5,C:"Synchronous Clipboard API",D:true}; +module.exports={A:{A:{"2436":"J E F G A B NC"},B:{"260":"N O","2436":"C K L H M","8196":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","772":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","4100":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 I J E F G A B C","2564":"5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","8196":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","10244":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B","2308":"A B AC xB","2820":"4 I J E F G SC TC UC VC"},F:{"2":"G B aC bC cC dC xB LC eC","16":"C","516":"yB","2564":"5 6 7 8 9 H M N O m n o AB BB CB","8196":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","10244":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},G:{"1":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","2820":"F gC hC iC jC kC lC mC nC oC pC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","260":"D","2308":"5C 6C"},J:{"2":"E","2308":"A"},K:{"2":"A B C xB LC","16":"yB","8196":"p"},L:{"8196":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"8196":"zB"},P:{"2052":"7C 8C","2308":"I","8196":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"8196":"BC"},R:{"8196":"JD"},S:{"4100":"KD LD"}},B:5,C:"Synchronous Clipboard API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js index 8221933f19f291..335ab5c4f22957 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"0 1 2 u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g NC OC","258":"h i j k l q r","578":"s t"},D:{"1":"0 1 2 h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y","194":"Z a b c d e f g"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"16":"A B"},O:{"1":"yB"},P:{"1":"m n o GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"COLR/CPAL(v1) Font Formats",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"0 1 2 3 u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g PC QC","258":"h i j k l q r","578":"s t"},D:{"1":"0 1 2 3 h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y","194":"Z a b c d e f g"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"zB"},P:{"1":"m n o HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"COLR/CPAL(v1) Font Formats",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js index cb789d86082a87..3f74068d7c1fa9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","257":"H A B"},B:{"1":"0 1 2 C L M I N D O x y z E","513":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w"},C:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB NC OC"},D:{"1":"0 1 2 x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB","513":"pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","129":"B C L wB xB 9B"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB YC ZC aC bC wB IC cC xB","513":"eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"16":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"COLR/CPAL(v0) Font Formats",D:true}; +module.exports={A:{A:{"2":"J E F NC","257":"G A B"},B:{"1":"0 1 2 3 C K L H M N O x y z D","513":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w"},C:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB PC QC"},D:{"1":"0 1 2 3 x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB","513":"qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","129":"B C K xB yB BC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB aC bC cC dC xB LC eC yB","513":"fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"COLR/CPAL(v0) Font Formats",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js index 2fb09b41497bf5..38ca6665f58908 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","132":"4 5 6 7 8 9 I N D O m n o AB BB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J K PC 7B","132":"F G H RC SC TC","260":"QC"},F:{"1":"4 5 6 7 8 9 C D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","16":"H B YC ZC aC bC wB IC","132":"I N"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B","132":"G dC JC eC fC gC hC iC jC"},H:{"1":"yC"},I:{"1":"E 3C 4C","16":"zC 0C","132":"0B J 1C 2C JC"},J:{"132":"F A"},K:{"1":"C p xB","16":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Node.compareDocumentPosition()",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","132":"5 6 7 8 9 H M N O m n o AB BB CB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I J RC 9B","132":"E F G TC UC VC","260":"SC"},F:{"1":"5 6 7 8 9 C N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","16":"G B aC bC cC dC xB LC","132":"H M"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B","132":"F fC MC gC hC iC jC kC lC"},H:{"1":"0C"},I:{"1":"D 5C 6C","16":"1C 2C","132":"2B I 3C 4C MC"},J:{"132":"E A"},K:{"1":"C p yB","16":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Node.compareDocumentPosition()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js index 1f4ae814aaac8b..73e1d324a26527 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F KC","132":"G H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H YC ZC aC bC"},G:{"1":"7B dC JC eC","513":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"4097":"yC"},I:{"1025":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"258":"F A"},K:{"2":"A","258":"B C wB IC xB","1025":"p"},L:{"1025":"E"},M:{"2049":"E"},N:{"258":"A B"},O:{"258":"yB"},P:{"1025":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1025":"ID"},S:{"1":"JD KD"}},B:1,C:"Basic console logging functions",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E NC","132":"F G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G aC bC cC dC"},G:{"1":"9B fC MC gC","513":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"4097":"0C"},I:{"1025":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"258":"E A"},K:{"2":"A","258":"B C xB LC yB","1025":"p"},L:{"1025":"D"},M:{"2049":"D"},N:{"258":"A B"},O:{"258":"zB"},P:{"1025":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1025":"JD"},S:{"1":"KD LD"}},B:1,C:"Basic console logging functions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js index c2cbc66b307a24..b4044bd23d141b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H YC ZC aC bC","16":"B"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"p","16":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"console.time and console.timeEnd",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G aC bC cC dC","16":"B"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"p","16":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"console.time and console.timeEnd",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js index 51f5124a4cdaf1..72c9a29fc27fee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","2052":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 LC 0B J K F G H A B C NC OC","260":"4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","260":"3 4 J K F G H A B C L M I N D O m","772":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB","1028":"NB OB PB QB RB SB TB UB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","260":"3 J A PC 7B 8B","772":"K F G H QC RC SC TC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC","132":"B ZC aC bC wB IC","644":"C cC xB","772":"4 5 6 7 8 9 I N D O m n o","1028":"AB BB CB DB EB FB GB HB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","260":"7B dC JC kC lC","772":"G eC fC gC hC iC jC"},H:{"644":"yC"},I:{"1":"E","16":"zC 0C","260":"1C","772":"0B J 2C JC 3C 4C"},J:{"772":"F A"},K:{"1":"p","132":"A B wB IC","644":"C xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","1028":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"const",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","2052":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 OC 2B I J E F G A B C PC QC","260":"5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","260":"4 5 I J E F G A B C K L H M N O m","772":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","1028":"OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","260":"4 I A RC 9B AC","772":"J E F G SC TC UC VC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC","132":"B bC cC dC xB LC","644":"C eC yB","772":"5 6 7 8 9 H M N O m n o AB","1028":"BB CB DB EB FB GB HB IB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","260":"9B fC MC mC nC","772":"F gC hC iC jC kC lC"},H:{"644":"0C"},I:{"1":"D","16":"1C 2C","260":"3C","772":"2B I 4C MC 5C 6C"},J:{"772":"E A"},K:{"1":"p","132":"A B xB LC","644":"C yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","1028":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"const",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js index df3787952143d3..eb933d52e67202 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","900":"A B"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","388":"M I N","900":"C L"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","260":"VB WB","388":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","900":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB"},D:{"1":"0 1 2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","388":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB","900":"4 5 6 I N D O m n o"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B","388":"G H SC TC","900":"K F QC RC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B YC ZC aC bC wB IC","388":"4 5 6 7 8 I N D O m n o","900":"C cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC","388":"G gC hC iC jC","900":"eC fC"},H:{"2":"yC"},I:{"1":"E","16":"0B zC 0C 1C","388":"3C 4C","900":"J 2C JC"},J:{"16":"F","388":"A"},K:{"1":"p","16":"A B wB IC","900":"C xB"},L:{"1":"E"},M:{"1":"E"},N:{"900":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","388":"JD"}},B:1,C:"Constraint Validation API",D:true}; +module.exports={A:{A:{"2":"J E F G NC","900":"A B"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","388":"L H M","900":"C K"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","260":"WB XB","388":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","900":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB"},D:{"1":"0 1 2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","388":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB","900":"5 6 7 H M N O m n o"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B","388":"F G UC VC","900":"J E SC TC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B aC bC cC dC xB LC","388":"5 6 7 8 9 H M N O m n o","900":"C eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","388":"F iC jC kC lC","900":"gC hC"},H:{"2":"0C"},I:{"1":"D","16":"2B 1C 2C 3C","388":"5C 6C","900":"I 4C MC"},J:{"16":"E","388":"A"},K:{"1":"p","16":"A B xB LC","900":"C yB"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","388":"KD"}},B:1,C:"Constraint Validation API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js index 64f9ae3ed467b0..718775118aa334 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC","4":"0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"contenteditable attribute (basic support)",D:true}; +module.exports={A:{A:{"1":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC","4":"2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"contenteditable attribute (basic support)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js index 01ae1320ea32d7..045d94677492a8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","129":"3 4 J K F G H A B C L M I N D O m n o"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L","257":"4 5 6 M I N D O m n o"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","257":"K RC","260":"QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","257":"fC","260":"eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F","257":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Content Security Policy 1.0",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","129":"4 5 I J E F G A B C K L H M N O m n o"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K","257":"5 6 7 L H M N O m n o"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","257":"J TC","260":"SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","257":"hC","260":"gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E","257":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Content Security Policy 1.0",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js index 310b574750fff2..d39325b0bf32f7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","4100":"I N D O"},C:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC","132":"DB EB FB GB","260":"HB","516":"IB JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB","1028":"IB JB KB","2052":"LB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n o YC ZC aC bC wB IC cC xB","1028":"5 6 7","2052":"8"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Content Security Policy Level 2",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","4100":"H M N O"},C:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC","132":"EB FB GB HB","260":"IB","516":"JB KB LB MB NB OB PB QB RB"},D:{"1":"0 1 2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB","1028":"JB KB LB","2052":"MB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n o aC bC cC dC xB LC eC yB","1028":"6 7 8","2052":"9"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Content Security Policy Level 2",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js index 7a41fdbda6ebae..52529f9aaa6c61 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","194":"P Q R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB","194":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB YC ZC aC bC wB IC cC xB","194":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Cookie Store API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","194":"P Q R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB","194":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB aC bC cC dC xB LC eC yB","194":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Cookie Store API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js index 8f3ba9915764ac..b060f3ebbfa466 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F KC","132":"A","260":"G H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B","1025":"2B gB hB iB jB kB lB mB nB oB"},D:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 J K F G H A B C"},E:{"2":"PC 7B","513":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","644":"3 J QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC"},G:{"513":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","644":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","132":"0B J zC 0C 1C 2C JC"},J:{"1":"A","132":"F"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","132":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Cross-Origin Resource Sharing",D:true}; +module.exports={A:{A:{"1":"B","2":"J E NC","132":"A","260":"F G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B","1025":"4B hB iB jB kB lB mB nB oB pB"},D:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 I J E F G A B C"},E:{"2":"RC 9B","513":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","644":"4 I SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC"},G:{"513":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","644":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","132":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","132":"E"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Cross-Origin Resource Sharing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js index b069fa8565bc49..f946d62412b815 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB NC OC","1028":"c d e f g","3076":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b","8196":"0 1 2 h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","132":"WB XB","260":"YB ZB","516":"aB bB cB dB eB"},E:{"2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B UC","4100":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB YC ZC aC bC wB IC cC xB","132":"JB KB","260":"LB MB","516":"NB OB PB QB RB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC","4100":"D wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"8196":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"3076":"JD KD"}},B:1,C:"createImageBitmap",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PC QC","1028":"c d e f g","3076":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b","8196":"0 1 2 3 h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","132":"XB YB","260":"ZB aB","516":"bB cB dB eB fB"},E:{"2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC WC","4100":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB aC bC cC dC xB LC eC yB","132":"KB LB","260":"MB NB","516":"OB PB QB RB SB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC","4100":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"8196":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"3076":"KD LD"}},B:1,C:"createImageBitmap",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js index df4a987ef9c5c0..abf0611a45a113 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","66":"UB VB WB","129":"XB YB ZB aB bB cB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB YC ZC aC bC wB IC cC xB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"Credential Management API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","66":"VB WB XB","129":"YB ZB aB bB cB dB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB aC bC cC dC xB LC eC yB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"Credential Management API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js index 72d146f5e4b061..fd77902aa60238 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G H A","164":"B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","513":"C L M I N D O"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB NC OC","66":"EB FB"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J K F PC 7B QC RC","289":"G H A SC TC 8B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","8":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC eC fC gC","289":"G hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","8":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"8":"F A"},K:{"1":"p","8":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A","164":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Web Cryptography",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F G A","164":"B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","513":"C K L H M N O"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB PC QC","66":"FB GB"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I J E RC 9B SC TC","289":"F G A UC VC AC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","8":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC gC hC iC","289":"F jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","8":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"8":"E A"},K:{"1":"p","8":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","164":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Web Cryptography",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js index 9325cbe1c79efa..94f798d54aec03 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC 3C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS all property",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC 5C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS all property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-anchor-positioning.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-anchor-positioning.js index a1fec42aa4d3e5..b9764c422ad5a2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-anchor-positioning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","194":"4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Anchor Positioning",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","194":"D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Anchor Positioning",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js index 43da92528e50bb..6bc4a18b83bf7f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B J NC OC","33":"3 K F G H A B C L M I"},D:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B","33":"K F G QC RC SC","292":"3 J"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC","33":"4 5 6 7 8 9 C I N D O m n o AB BB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"G fC gC hC","164":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"E","33":"J 2C JC 3C 4C","164":"0B zC 0C 1C"},J:{"33":"F A"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS Animation",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B I PC QC","33":"4 J E F G A B C K L H"},D:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","33":"J E F SC TC UC","292":"4 I"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC","33":"5 6 7 8 9 C H M N O m n o AB BB CB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F hC iC jC","164":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"D","33":"I 4C MC 5C 6C","164":"2B 1C 2C 3C"},J:{"33":"E A"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS Animation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js index d26937d6953a84..311c961c22e435 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC","33":"3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB NC OC"},D:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J K PC 7B QC","33":"F G RC SC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC","33":"G fC gC hC"},H:{"2":"yC"},I:{"1":"E","16":"0B J zC 0C 1C 2C JC","33":"3C 4C"},J:{"16":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","16":"J","33":"5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:5,C:"CSS :any-link selector",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC","33":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB PC QC"},D:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I J RC 9B SC","33":"E F TC UC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC","33":"F hC iC jC"},H:{"2":"0C"},I:{"1":"D","16":"2B I 1C 2C 3C 4C MC","33":"5C 6C"},J:{"16":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","16":"I","33":"7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:5,C:"CSS :any-link selector",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js index 4b24e2cb3c9c4e..f0ca96fbaab7d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"S","164":"P Q R","388":"C L M I N D O"},C:{"1":"0 1 2 Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","164":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","676":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB NC OC"},D:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"S","164":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","164":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"oB pB qB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","164":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","164":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"164":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A","388":"B"},O:{"1":"yB"},P:{"164":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"164":"9B"},R:{"1":"ID"},S:{"1":"KD","164":"JD"}},B:5,C:"CSS Appearance",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"S","164":"P Q R","388":"C K L H M N O"},C:{"1":"0 1 2 3 Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","164":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","676":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB PC QC"},D:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"S","164":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","164":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"pB qB rB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","164":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","164":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"164":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","388":"B"},O:{"1":"zB"},P:{"164":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"164":"BC"},R:{"1":"JD"},S:{"1":"LD","164":"KD"}},B:5,C:"CSS Appearance",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js index 6d0569290616e6..f98df645b15f97 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y Z","132":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","132":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z","132":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","4":"D XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB YC ZC aC bC wB IC cC xB","132":"uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"D"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","132":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","132":"p"},L:{"132":"E"},M:{"132":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED","132":"m n o zB FD GD HD"},Q:{"2":"9B"},R:{"132":"ID"},S:{"132":"JD KD"}},B:4,C:"CSS Counter Styles",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z","132":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","132":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z","132":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC","4":"1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB aC bC cC dC xB LC eC yB","132":"vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC","4":"1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","132":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","132":"p"},L:{"132":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I 7C 8C 9C AD BD AC CD DD ED FD GD","132":"m n o 0B 1B HD ID"},Q:{"2":"BC"},R:{"132":"JD"},S:{"132":"KD LD"}},B:4,C:"CSS Counter Styles",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js index 6730c4e7592513..68dae1f94f03d5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js @@ -1 +1 @@ -module.exports={A:{D:{"33":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},L:{"33":"E"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U NC OC"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C wB IC xB","33":"p"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC","2":"XC","33":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B UC"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","33":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},I:{"2":"0B J zC 0C 1C 2C JC","33":"E 3C 4C"}},B:6,C:":autofill CSS pseudo-class",D:undefined}; +module.exports={A:{D:{"33":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U PC QC"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C xB LC yB","33":"p"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"ZC","33":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC WC"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},I:{"2":"2B I 1C 2C 3C 4C MC","33":"D 5C 6C"}},B:6,C:":autofill CSS pseudo-class",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js index 0dbb52c8d5763a..6e2b6587bc0c85 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N","257":"D O"},C:{"1":"0 1 2 q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB NC OC","578":"oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},D:{"1":"0 1 2 tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","194":"TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB"},E:{"2":"3 J K F G PC 7B QC RC SC","33":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB YC ZC aC bC wB IC cC xB","194":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"2":"G 7B dC JC eC fC gC hC","33":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J","194":"5C 6C 7C 8C 9C 8B AD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS Backdrop Filter",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M","257":"N O"},C:{"1":"0 1 2 3 q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB PC QC","578":"pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},D:{"1":"0 1 2 3 uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","194":"UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB"},E:{"2":"4 I J E F RC 9B SC TC UC","33":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB aC bC cC dC xB LC eC yB","194":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},G:{"2":"F 9B fC MC gC hC iC jC","33":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I","194":"7C 8C 9C AD BD AC CD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS Backdrop Filter",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js index 7c945999d5fb7d..61941001b67599 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C NC OC"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS background-position edge offsets",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C PC QC"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS background-position edge offsets",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js index 803f4fd475108e..18ad89dd5eb735 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB NC OC"},D:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB","260":"SB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC","132":"G H A SC TC"},F:{"1":"5 6 7 8 9 o AB BB CB DB EB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n YC ZC aC bC wB IC cC xB","260":"FB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","132":"G hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS background-blend-mode",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB PC QC"},D:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB","260":"TB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC","132":"F G A UC VC"},F:{"1":"6 7 8 9 o AB BB CB DB EB FB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n aC bC cC dC xB LC eC yB","260":"GB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","132":"F jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS background-blend-mode",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js index 8885620bfec854..f7f25c19598b08 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","164":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB NC OC"},D:{"2":"3 4 J K F G H A B C L M I N D O m n","164":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K PC 7B QC","164":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H YC ZC aC bC","129":"B C wB IC cC xB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"7B dC JC eC fC","164":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"132":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","164":"E 3C 4C"},J:{"2":"F","164":"A"},K:{"2":"A","129":"B C wB IC xB","164":"p"},L:{"164":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"164":"yB"},P:{"164":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"164":"9B"},R:{"164":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS box-decoration-break",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","164":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB PC QC"},D:{"2":"4 5 I J E F G A B C K L H M N O m n","164":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J RC 9B SC","164":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G aC bC cC dC","129":"B C xB LC eC yB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"9B fC MC gC hC","164":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"132":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","164":"D 5C 6C"},J:{"2":"E","164":"A"},K:{"2":"A","129":"B C xB LC yB","164":"p"},L:{"164":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"zB"},P:{"164":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"164":"BC"},R:{"164":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS box-decoration-break",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js index 7a830d34b6e8ce..077798f7bb63d3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","33":"NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 J K F G H"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"3","164":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"dC JC","164":"7B"},H:{"2":"yC"},I:{"1":"J E 2C JC 3C 4C","164":"0B zC 0C 1C"},J:{"1":"A","33":"F"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 Box-shadow",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","33":"PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 I J E F G"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"4","164":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"fC MC","164":"9B"},H:{"2":"0C"},I:{"1":"I D 4C MC 5C 6C","164":"2B 1C 2C 3C"},J:{"1":"A","33":"E"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 Box-shadow",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js index ce047f37c7d947..758b9192c5003b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"2":"PC 7B","33":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB"},G:{"33":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"E","33":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS Canvas Drawings",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"2":"RC 9B","33":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB"},G:{"33":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"D","33":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS Canvas Drawings",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js index 88e1d4bfd1c517..54697ff1d58d63 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC"},D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:2,C:"CSS caret-color",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC"},D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:2,C:"CSS caret-color",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js index 11d5d334f59a26..6fef65d9598ea6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e","322":"f g h"},C:{"1":"0 1 2 g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c NC OC","194":"d e f"},D:{"1":"0 1 2 i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e","322":"f g h"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U YC ZC aC bC wB IC cC xB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"CSS Cascade Layers",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e","322":"f g h"},C:{"1":"0 1 2 3 g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c PC QC","194":"d e f"},D:{"1":"0 1 2 3 i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e","322":"f g h"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U aC bC cC dC xB LC eC yB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"CSS Cascade Layers",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-scope.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-scope.js index 59b9905d65dc05..adb0ab1a24c67b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-scope.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-scope.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q","194":"0 1 2 r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q","194":"0 1 2 r s t u v w x y z E 4B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y YC ZC aC bC wB IC cC xB","194":"Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"194":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Scoped Styles: the @scope rule",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q","194":"0 1 2 3 r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q","194":"0 1 2 3 r s t u v w x y z D"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y aC bC cC dC xB LC eC yB","194":"Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Scoped Styles: the @scope rule",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js index 41f4c007e75ddb..3d0081f403d25f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Case-insensitive CSS attribute selectors",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Case-insensitive CSS attribute selectors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js index d886762ad4e4a1..95bd17fe6d380a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D","260":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","3138":"O"},C:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC","644":"TB UB VB WB XB YB ZB"},D:{"2":"3 4 5 J K F G H A B C L M I N D O m n o","260":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","292":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"2":"3 J K PC 7B QC RC","260":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","292":"F G H A B C L SC TC 8B wB xB"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","260":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","292":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},G:{"2":"7B dC JC eC fC","260":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","292":"G gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","260":"E","292":"3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","260":"p"},L:{"260":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"260":"yB"},P:{"292":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"260":"9B"},R:{"260":"ID"},S:{"1":"KD","644":"JD"}},B:4,C:"CSS clip-path property (for HTML)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N","260":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","3138":"O"},C:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC","644":"UB VB WB XB YB ZB aB"},D:{"2":"4 5 6 I J E F G A B C K L H M N O m n o","260":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","292":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"4 I J RC 9B SC TC","260":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","292":"E F G A B C K UC VC AC xB yB"},F:{"2":"G B C aC bC cC dC xB LC eC yB","260":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","292":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},G:{"2":"9B fC MC gC hC","260":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","292":"F iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","260":"D","292":"5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","260":"p"},L:{"260":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"260":"zB"},P:{"292":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"260":"BC"},R:{"260":"JD"},S:{"1":"LD","644":"KD"}},B:4,C:"CSS clip-path property (for HTML)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js index a770ef3f32adab..d4321ee0c16f1a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC"},D:{"16":"3 J K F G H A B C L M I N D O","33":"0 1 2 4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K F G H A B C L M I RC SC TC 8B wB xB 9B UC VC AC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","16":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"16":"0B J zC 0C 1C 2C JC 3C 4C","33":"E"},J:{"16":"F A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"16":"E"},M:{"1":"E"},N:{"16":"A B"},O:{"16":"yB"},P:{"16":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"16":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS print-color-adjust",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC"},D:{"16":"4 I J E F G A B C K L H M N O","33":"0 1 2 3 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"16":"2B I 1C 2C 3C 4C MC 5C 6C","33":"D"},J:{"16":"E A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"16":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"16":"zB"},P:{"16":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"16":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS print-color-adjust",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js index 734dbb82a22195..f5721ca261e51a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u","322":"v w x"},C:{"1":"0 1 2 E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x NC OC","578":"y z"},D:{"1":"0 1 2 y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u","322":"v w x"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC","132":"B C L M 8B wB xB 9B UC"},F:{"1":"h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d YC ZC aC bC wB IC cC xB","322":"e f g"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC","132":"lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"o","2":"J m n 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"CSS color() function",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u","322":"v w x"},C:{"1":"0 1 2 3 D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x PC QC","578":"y z"},D:{"1":"0 1 2 3 y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u","322":"v w x"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC","132":"B C K L AC xB yB BC WC"},F:{"1":"h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d aC bC cC dC xB LC eC yB","322":"e f g"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC","132":"nC oC pC qC rC sC tC uC vC wC xC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"o","2":"I m n 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"CSS color() function",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js index 9dbd3480d56e7c..7a53cac7c2efb9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB NC OC","578":"sB tB uB vB P Q R 3B"},D:{"1":"0 1 2 pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","257":"nB oB","450":"1B fB 2B gB hB iB jB kB lB mB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB YC ZC aC bC wB IC cC xB","257":"cB dB","450":"SB TB UB VB WB XB YB ZB aB bB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS Conical Gradients",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB PC QC","578":"tB uB vB wB P Q R 5B"},D:{"1":"0 1 2 3 qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","257":"oB pB","450":"3B gB 4B hB iB jB kB lB mB nB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB"},F:{"1":"fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB aC bC cC dC xB LC eC yB","257":"dB eB","450":"TB UB VB WB XB YB ZB aB bB cB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS Conical Gradients",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries-style.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries-style.js index 38c4afc128f09c..08c4622f2d9f91 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries-style.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries-style.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","194":"u v w x","260":"0 1 2 y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","194":"u v w x","260":"0 1 2 y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b YC ZC aC bC wB IC cC xB","194":"c d e f g","260":"h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","260":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","194":"p"},L:{"260":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","260":"o"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Container Style Queries",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","194":"u v w x","260":"0 1 2 3 y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","194":"u v w x","260":"0 1 2 3 y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b aC bC cC dC xB LC eC yB","194":"c d e f g","260":"h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","260":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","194":"p"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","260":"o"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Container Style Queries",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js index cb3ff85124a6b7..c8385adf9c6142 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","516":"s"},C:{"1":"0 1 2 x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w NC OC"},D:{"1":"0 1 2 t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a","194":"c d e f g h i j k l q r","450":"b","516":"s"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB YC ZC aC bC wB IC cC xB","194":"P Q R 3B S T U V W X Y Z","516":"a b c"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Container Queries (Size)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","516":"s"},C:{"1":"0 1 2 3 x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w PC QC"},D:{"1":"0 1 2 3 t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a","194":"c d e f g h i j k l q r","450":"b","516":"s"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB aC bC cC dC xB LC eC yB","194":"P Q R 5B S T U V W X Y Z","516":"a b c"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Container Queries (Size)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js index a054a66e8505a2..48bc9c16120c47 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w NC OC"},D:{"1":"0 1 2 s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b","194":"k l q r","450":"c d e f g h i j"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB YC ZC aC bC wB IC cC xB","194":"P Q R 3B S T U V W X Y Z"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Container Query Units",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 3 x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w PC QC"},D:{"1":"0 1 2 3 s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b","194":"k l q r","450":"c d e f g h i j"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB aC bC cC dC xB LC eC yB","194":"P Q R 5B S T U V W X Y Z"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Container Query Units",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js index b0980f9b85f64c..3455b5688a6573 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NC OC","194":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB"},D:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","66":"XB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB YC ZC aC bC wB IC cC xB","66":"KB LB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","194":"JD"}},B:2,C:"CSS Containment",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB PC QC","194":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB"},D:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","66":"YB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB aC bC cC dC xB LC eC yB","66":"LB MB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","194":"KD"}},B:2,C:"CSS Containment",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js index ef5467d1191327..ffe73be01179a3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v NC OC","194":"0 1 2 w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS content-visibility",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v PC QC","194":"0 1 2 3 w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS content-visibility",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js index d3da63ebc4a6a5..49d124d7dd20d8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"K F KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS Counters",D:true}; +module.exports={A:{A:{"1":"F G A B","2":"J E NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS Counters",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js index ca42b5944ecc3a..219f0462607821 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K KC","2340":"F G H A B"},B:{"2":"C L M I N D O","1025":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","513":"jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b","545":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","1025":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","164":"K","4644":"F G H RC SC TC"},F:{"2":"4 5 6 7 8 9 H B I N D O m n o YC ZC aC bC wB IC","545":"C cC xB","1025":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","4260":"eC fC","4644":"G gC hC iC jC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","1025":"E"},J:{"2":"F","4260":"A"},K:{"2":"A B wB IC","545":"C xB","1025":"p"},L:{"1025":"E"},M:{"1":"E"},N:{"2340":"A B"},O:{"1025":"yB"},P:{"1025":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1025":"9B"},R:{"1025":"ID"},S:{"1":"KD","4097":"JD"}},B:4,C:"Crisp edges/pixelated images",D:true}; +module.exports={A:{A:{"2":"J NC","2340":"E F G A B"},B:{"2":"C K L H M N O","1025":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","513":"kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b","545":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","1025":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","164":"J","4644":"E F G TC UC VC"},F:{"2":"5 6 7 8 9 G B H M N O m n o AB aC bC cC dC xB LC","545":"C eC yB","1025":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","4260":"gC hC","4644":"F iC jC kC lC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","1025":"D"},J:{"2":"E","4260":"A"},K:{"2":"A B xB LC","545":"C yB","1025":"p"},L:{"1025":"D"},M:{"1":"D"},N:{"2340":"A B"},O:{"1025":"zB"},P:{"1025":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1025":"BC"},R:{"1025":"JD"},S:{"1":"LD","4097":"KD"}},B:4,C:"Crisp edges/pixelated images",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js index 5c80e4e7ffd7ca..dd9859c6ab362a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 J K F G H A B C L M I N","33":"0 1 2 4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","33":"K F G H QC RC SC TC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","33":"G eC fC gC hC iC jC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","33":"E 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"33":"ID"},S:{"2":"JD KD"}},B:4,C:"CSS Cross-Fade Function",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 I J E F G A B C K L H M","33":"0 1 2 3 5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","33":"J E F G SC TC UC VC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","33":"F gC hC iC jC kC lC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","33":"D 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"33":"JD"},S:{"2":"KD LD"}},B:4,C:"CSS Cross-Fade Function",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js index 9316f2928dc3eb..44f841b6530f96 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC"},D:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B","132":"K F G H A QC RC SC TC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B YC ZC aC bC wB IC","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB","260":"C cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC","132":"G gC hC iC jC kC"},H:{"260":"yC"},I:{"1":"E","16":"0B zC 0C 1C","132":"J 2C JC 3C 4C"},J:{"16":"F","132":"A"},K:{"1":"p","16":"A B C wB IC","260":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","132":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:":default CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC"},D:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B","132":"J E F G A SC TC UC VC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B aC bC cC dC xB LC","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","260":"C eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC","132":"F iC jC kC lC mC"},H:{"260":"0C"},I:{"1":"D","16":"2B 1C 2C 3C","132":"I 4C MC 5C 6C"},J:{"16":"E","132":"A"},K:{"1":"p","16":"A B C xB LC","260":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","132":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:":default CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js index 3c42f5464cbd42..b498109a6e6468 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"B","2":"3 J K F G H A C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Explicit descendant combinator >>",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"B","2":"4 I J E F G A C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Explicit descendant combinator >>",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js index e3f987b17d7a7a..6687ec08f871d8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","164":"A B"},B:{"66":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","164":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB","66":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB YC ZC aC bC wB IC cC xB","66":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"292":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A p","292":"B C wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"164":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"66":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Device Adaptation",D:true}; +module.exports={A:{A:{"2":"J E F G NC","164":"A B"},B:{"66":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","164":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB","66":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB aC bC cC dC xB LC eC yB","66":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"292":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A p","292":"B C xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"164":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"66":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Device Adaptation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js index a4be6af177faf5..57001447e44891 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","194":"0 1 2 s t u v w x y z E"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N NC OC","33":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z","194":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z YC ZC aC bC wB IC cC xB","194":"a b c d e f g h i j k l"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"KD","33":"JD"}},B:5,C:":dir() CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","194":"0 1 2 3 s t u v w x y z D"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M PC QC","33":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z","194":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z aC bC cC dC xB LC eC yB","194":"a b c d e f g h i j k l"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"LD","33":"KD"}},B:5,C:":dir() CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js index cf2e768dfb2964..9134ec411f6a7e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","132":"P Q R S T U V W X","260":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB NC OC","132":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B","260":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X","194":"eB 1B fB 2B gB hB iB","260":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B PC 7B QC RC SC TC 8B","132":"C L M I wB xB 9B UC VC AC BC yB WC","516":"D CC DC EC FC GC HC XC","772":"zB"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YC ZC aC bC wB IC cC xB","132":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB","260":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC","132":"nC oC pC qC rC sC","260":"tC uC vC wC AC BC yB xC","516":"D CC DC EC FC GC HC","772":"zB"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","260":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","260":"p"},L:{"260":"E"},M:{"260":"E"},N:{"2":"A B"},O:{"132":"yB"},P:{"2":"J 5C 6C 7C 8C","132":"9C 8B AD BD CD DD","260":"m n o ED zB FD GD HD"},Q:{"132":"9B"},R:{"260":"ID"},S:{"132":"JD","260":"KD"}},B:4,C:"CSS display: contents",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","132":"P Q R S T U V W X","260":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB PC QC","132":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B","260":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","132":"kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X","194":"fB 3B gB 4B hB iB jB","260":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC","132":"C K L H xB yB BC WC XC CC DC zB YC","516":"EC FC GC HC IC JC","772":"0B"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB aC bC cC dC xB LC eC yB","132":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB","260":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC","132":"pC qC rC sC tC uC","260":"vC wC xC yC CC DC zB zC","516":"EC FC GC HC IC JC","772":"0B"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","260":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","260":"p"},L:{"260":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"132":"zB"},P:{"2":"I 7C 8C 9C AD","132":"BD AC CD DD ED FD","260":"m n o GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"260":"JD"},S:{"132":"KD","260":"LD"}},B:4,C:"CSS display: contents",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js index f2c8d0c8438d83..7cd4e971ddfefb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"33":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","164":"LC 0B NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"33":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"33":"JD KD"}},B:5,C:"CSS element() function",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","164":"OC 2B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"33":"KD LD"}},B:5,C:"CSS element() function",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js index ef09bb417b11ea..cace2c8525eb9b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB NC OC"},D:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","132":"B"},F:{"1":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC","132":"mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:7,C:"CSS Environment Variables env()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB PC QC"},D:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","132":"B"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC","132":"oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:7,C:"CSS Environment Variables env()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js index f9780c7f933107..7ce4b94a17b8ca 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","33":"A B"},B:{"2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"33":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Exclusions Level 1",D:true}; +module.exports={A:{A:{"2":"J E F G NC","33":"A B"},B:{"2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"33":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Exclusions Level 1",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js index c759d2e106f73d..b641c3996d8c6b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC"},D:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Feature Queries",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC"},D:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Feature Queries",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js index 97b082442f25bf..519e968c71936e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X"},L:{"1":"E"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"C L M I N D O P Q R S T U V W X"},C:{"1":"0 1 2 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R NC OC"},M:{"1":"E"},A:{"2":"K F G H KC","33":"A B"},F:{"1":"sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"XC","33":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},P:{"1":"m n o ED zB FD GD HD","33":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","33":"3C 4C"}},B:6,C:"::file-selector-button CSS pseudo-element",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X"},L:{"1":"D"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"C K L H M N O P Q R S T U V W X"},C:{"1":"0 1 2 3 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R PC QC"},M:{"1":"D"},A:{"2":"J E F G NC","33":"A B"},F:{"1":"tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"ZC","33":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC"},P:{"1":"m n o GD 0B 1B HD ID","33":"I 7C 8C 9C AD BD AC CD DD ED FD"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","33":"5C 6C"}},B:6,C:"::file-selector-button CSS pseudo-element",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js index a2ab8e56da3d0c..358f32fc1e9b02 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC","33":"H"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC","33":"iC jC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS filter() function",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC","33":"G"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC","33":"kC lC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS filter() function",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js index d1f64ac3daebbd..7359d9f3b7a174 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","1028":"L M I N D O","1346":"C"},C:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","196":"GB","516":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB OC"},D:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D","33":"4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K F G H RC SC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","33":"3C 4C"},J:{"2":"F","33":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS Filter Effects",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","1028":"K L H M N O","1346":"C"},C:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","196":"HB","516":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB QC"},D:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N","33":"5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J E F G TC UC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","33":"5C 6C"},J:{"2":"E","33":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS Filter Effects",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js index f85d2cc0a04a74..989d7817cfcfac 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","16":"KC","516":"G","1540":"K F"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","132":"0B","260":"LC"},D:{"1":"0 1 2 4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 K F G","132":"J"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 PC","132":"J 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","16":"H YC","260":"B ZC aC bC wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"1":"yC"},I:{"1":"0B J E 2C JC 3C 4C","16":"zC 0C","132":"1C"},J:{"1":"F A"},K:{"1":"C p xB","260":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"::first-letter CSS pseudo-element selector",D:true}; +module.exports={A:{A:{"1":"G A B","16":"NC","516":"F","1540":"J E"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","132":"2B","260":"OC"},D:{"1":"0 1 2 3 5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 J E F","132":"I"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 RC","132":"I 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","16":"G aC","260":"B bC cC dC xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"1":"0C"},I:{"1":"2B I D 4C MC 5C 6C","16":"1C 2C","132":"3C"},J:{"1":"E A"},K:{"1":"C p yB","260":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"::first-letter CSS pseudo-element selector",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js index 5889baad0975f3..b8a49dfe27fc01 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","132":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS first-line pseudo-element",D:true}; +module.exports={A:{A:{"1":"G A B","132":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS first-line pseudo-element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js index bf2e3a2aa721e9..9bdd4ab51f3556 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F G H A B","2":"KC","8":"K"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","1025":"TC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","132":"eC fC gC"},H:{"2":"yC"},I:{"1":"0B E 3C 4C","260":"zC 0C 1C","513":"J 2C JC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS position:fixed",D:true}; +module.exports={A:{A:{"1":"E F G A B","2":"NC","8":"J"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","1025":"VC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","132":"gC hC iC"},H:{"2":"0C"},I:{"1":"2B D 5C 6C","260":"1C 2C 3C","513":"I 4C MC"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS position:fixed",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js index fcffa6810b89be..5f4c3f411589ea 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","328":"P Q R S T U"},C:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","161":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T"},D:{"1":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB","328":"lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B UC","578":"I VC AC"},F:{"1":"qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB YC ZC aC bC wB IC cC xB","328":"kB lB mB nB oB pB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC","578":"wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"161":"JD KD"}},B:5,C:":focus-visible CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","328":"P Q R S T U"},C:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","161":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T"},D:{"1":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB","328":"mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC WC","578":"H XC CC"},F:{"1":"rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB aC bC cC dC xB LC eC yB","328":"lB mB nB oB pB qB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC","578":"yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"161":"KD LD"}},B:5,C:":focus-visible CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js index 09bc5b6d5ed5ef..b015b7a6083b80 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC"},D:{"1":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"1B"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB YC ZC aC bC wB IC cC xB","194":"SB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:7,C:":focus-within CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC"},D:{"1":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","194":"3B"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB aC bC cC dC xB LC eC yB","194":"TB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:7,C:":focus-within CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js index 48f6229a3cd375..f38625d59ee1f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t NC OC"},D:{"1":"0 1 2 k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V YC ZC aC bC wB IC cC xB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS font-palette",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 3 u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t PC QC"},D:{"1":"0 1 2 3 k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V aC bC cC dC xB LC eC yB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS font-palette",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js index 41cd20350062d7..983c63af8915ab 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB NC OC","194":"SB TB UB VB WB XB YB ZB aB bB cB dB"},D:{"1":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","66":"VB WB XB YB ZB aB bB cB dB eB 1B"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB","66":"IB JB KB LB MB NB OB PB QB RB SB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","66":"5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","194":"JD"}},B:5,C:"CSS font-display",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB PC QC","194":"TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","66":"WB XB YB ZB aB bB cB dB eB fB 3B"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB","66":"JB KB LB MB NB OB PB QB RB SB TB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","66":"7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","194":"KD"}},B:5,C:"CSS font-display",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js index 0f78db8d16f746..6c188d5d8762cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G NC OC"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS font-stretch",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F PC QC"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS font-stretch",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js index d1203bb4a38c6c..7012310f59af99 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F KC","132":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS Generated content for pseudo-elements",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E NC","132":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS Generated content for pseudo-elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js index 56a4609dd718b7..3300a500416157 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","260":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB","292":"3 J K F G H A B C L M I OC"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"4 5 6 7 A B C L M I N D O m n o","548":"3 J K F G H"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B","260":"F G H A B C L M I RC SC TC 8B wB xB 9B UC VC AC","292":"K QC","804":"3 J"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC","33":"C cC","164":"wB IC"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","260":"G gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC","292":"eC fC","804":"7B dC JC"},H:{"2":"yC"},I:{"1":"E 3C 4C","33":"J 2C JC","548":"0B zC 0C 1C"},J:{"1":"A","548":"F"},K:{"1":"p xB","2":"A B","33":"C","164":"wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Gradients",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","260":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB","292":"4 I J E F G A B C K L H QC"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"5 6 7 8 A B C K L H M N O m n o","548":"4 I J E F G"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","260":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC","292":"J SC","804":"4 I"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC","33":"C eC","164":"xB LC"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","260":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC","292":"gC hC","804":"9B fC MC"},H:{"2":"0C"},I:{"1":"D 5C 6C","33":"I 4C MC","548":"2B 1C 2C 3C"},J:{"1":"A","548":"E"},K:{"1":"p yB","2":"A B","33":"C","164":"xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Gradients",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js index df137ef806d19a..6a446b04370d98 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"CSS Grid animation",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"CSS Grid animation",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js index 5b3ae8b02454ed..8036c8906375e2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","8":"H","292":"A B"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","292":"C L M I"},C:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D O NC OC","8":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB","584":"MB NB OB PB QB RB SB TB UB VB WB XB","1025":"YB ZB"},D:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o","8":"7 8 9 AB","200":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","1025":"dB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","8":"K F G H A RC SC TC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB","200":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","8":"G fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C","8":"JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"292":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"5C","8":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Grid Layout (level 1)",D:true}; +module.exports={A:{A:{"2":"J E F NC","8":"G","292":"A B"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","292":"C K L H"},C:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N O PC QC","8":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","584":"NB OB PB QB RB SB TB UB VB WB XB YB","1025":"ZB aB"},D:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o","8":"8 9 AB BB","200":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","1025":"eB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","8":"J E F G A TC UC VC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB","200":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","8":"F hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C","8":"MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"292":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"7C","8":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Grid Layout (level 1)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js index 35aa18e7fbad6b..649394ded4e0d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"CSS hanging-punctuation",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"CSS hanging-punctuation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js index 9e0068b55c1212..0228cb8295fd56 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l NC OC","322":"0 1 2 q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j","194":"k l q r"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z YC ZC aC bC wB IC cC xB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:":has() CSS relational pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l PC QC","322":"0 1 2 3 q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j","194":"k l q r"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z aC bC cC dC xB LC eC yB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:":has() CSS relational pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js index 3331bec309989b..0a831785c53c65 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","33":"A B"},B:{"1":"0 1 2 s t u v w x y z E","33":"C L M I N D O","132":"P Q R S T U V W","260":"X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","33":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},D:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","132":"bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W"},E:{"1":"XC","2":"3 J PC 7B","33":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"1":"a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB","132":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z"},G:{"2":"7B dC","33":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","132":"5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Hyphenation",D:true}; +module.exports={A:{A:{"2":"J E F G NC","33":"A B"},B:{"1":"0 1 2 3 s t u v w x y z D","33":"C K L H M N O","132":"P Q R S T U V W","260":"X Y Z a b c d e f g h i j k l q r"},C:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","33":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},D:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","132":"cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W"},E:{"1":"1B KC ZC","2":"4 I RC 9B","33":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC"},F:{"1":"a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB","132":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z"},G:{"1":"1B KC","2":"9B fC","33":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","132":"7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Hyphenation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js index 06c279c2667694..21707c2486efb3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q","257":"R S T U V W X"},C:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q","257":"R S T U V W X"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB"},F:{"1":"uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB YC ZC aC bC wB IC cC xB","257":"mB nB oB pB qB p rB sB tB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD","257":"CD DD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 image-orientation",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q","257":"R S T U V W X"},C:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q","257":"R S T U V W X"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB"},F:{"1":"vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB aC bC cC dC xB LC eC yB","257":"nB oB pB qB rB p sB tB uB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD","257":"ED FD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 image-orientation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js index 90caffc1442cb3..6d98dfc24c2c17 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"1 2 E","2":"C L M I N D O","164":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2049":"0"},C:{"1":"0 1 2 E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U NC OC","66":"V W","2305":"Y Z a b c d e f g h i j k l q r s t u v w x y z","2820":"X"},D:{"1":"1 2 E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m","164":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2049":"0"},E:{"1":"D XC","2":"3 J PC 7B QC","132":"A B C L 8B wB xB 9B","164":"K F G H RC SC TC","1540":"M I UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"1":"j k l","2":"H B C YC ZC aC bC wB IC cC xB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h","2049":"i"},G:{"1":"D","2":"7B dC JC eC","132":"kC lC mC nC oC pC qC rC sC tC","164":"G fC gC hC iC jC","1540":"uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","164":"3C 4C"},J:{"2":"F","164":"A"},K:{"2":"A B C wB IC xB","164":"p"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"164":"yB"},P:{"164":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"164":"9B"},R:{"164":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS image-set",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"1 2 3 D","2":"C K L H M N O","164":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2049":"0"},C:{"1":"0 1 2 3 D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U PC QC","66":"V W","2305":"Y Z a b c d e f g h i j k l q r s t u v w x y z","2820":"X"},D:{"1":"1 2 3 D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m","164":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2049":"0"},E:{"1":"1B KC ZC","2":"4 I RC 9B SC","132":"A B C K AC xB yB BC","164":"J E F G TC UC VC","1540":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC"},F:{"1":"j k l","2":"G B C aC bC cC dC xB LC eC yB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h","2049":"i"},G:{"1":"1B KC","2":"9B fC MC gC","132":"mC nC oC pC qC rC sC tC uC vC","164":"F hC iC jC kC lC","1540":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","164":"5C 6C"},J:{"2":"E","164":"A"},K:{"2":"A B C xB LC yB","164":"p"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"zB"},P:{"164":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"164":"BC"},R:{"164":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS image-set",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js index 8268313152c3c2..270f41b4004951 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C","260":"L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","516":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},D:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J","16":"3 K F G H A B C L M","260":"YB","772":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3","772":"K F G H A QC RC SC TC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H YC","260":"B C LB ZC aC bC wB IC cC xB","772":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","772":"G eC fC gC hC iC jC kC"},H:{"132":"yC"},I:{"1":"E","2":"0B zC 0C 1C","260":"J 2C JC 3C 4C"},J:{"2":"F","260":"A"},K:{"1":"p","260":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","260":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","516":"JD"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C","260":"K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","516":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I","16":"4 J E F G A B C K L","260":"ZB","772":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4","772":"J E F G A SC TC UC VC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G aC","260":"B C MB bC cC dC xB LC eC yB","772":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","772":"F gC hC iC jC kC lC mC"},H:{"132":"0C"},I:{"1":"D","2":"2B 1C 2C 3C","260":"I 4C MC 5C 6C"},J:{"2":"E","260":"A"},K:{"1":"p","260":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","260":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","516":"KD"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js index 3d134c2171d098..47963fcff80794 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"A B","388":"H"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC","132":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","388":"3 J"},D:{"1":"0 1 2 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J K PC 7B","132":"F G H A RC SC TC","388":"QC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B YC ZC aC bC wB IC","132":"4 5 6 7 I N D O m n o","516":"C cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC","132":"G gC hC iC jC kC"},H:{"516":"yC"},I:{"1":"E","16":"0B zC 0C 1C 4C","132":"3C","388":"J 2C JC"},J:{"16":"F","132":"A"},K:{"1":"p","16":"A B C wB IC","516":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","132":"JD"}},B:5,C:":indeterminate CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"A B","388":"G"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC","132":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","388":"4 I"},D:{"1":"0 1 2 3 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I J RC 9B","132":"E F G A TC UC VC","388":"SC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B aC bC cC dC xB LC","132":"5 6 7 8 H M N O m n o","516":"C eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC","132":"F iC jC kC lC mC"},H:{"516":"0C"},I:{"1":"D","16":"2B 1C 2C 3C 6C","132":"5C","388":"I 4C MC"},J:{"16":"E","132":"A"},K:{"1":"p","16":"A B C xB LC","516":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","132":"KD"}},B:5,C:":indeterminate CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js index 58e2f3c5ef2053..4f180d2ca16dc0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","260":"0 1 2 x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","260":"0 1 2 x y z E 4B 5B 6B"},E:{"2":"3 J K F G PC 7B QC RC SC","4":"H","164":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g YC ZC aC bC wB IC cC xB","260":"h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC","164":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"260":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"n o","2":"J m 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Initial Letter",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","260":"0 1 2 3 x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","260":"0 1 2 3 x y z D 6B 7B 8B"},E:{"2":"4 I J E F RC 9B SC TC UC","4":"G","164":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g aC bC cC dC xB LC eC yB","260":"h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC","164":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"n o","2":"I m 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Initial Letter",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js index f51c8322142ac7..ab21924afe2884 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 J K F G H A B C L M I N D O NC OC","164":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS initial value",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 I J E F G A B C K L H M N O PC QC","164":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS initial value",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js index 7ebb6e661279dc..ecda61e8bac039 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","322":"x"},C:{"1":"0 1 2 E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x NC OC","194":"y z"},D:{"1":"0 1 2 y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","322":"x"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B UC"},F:{"1":"h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g YC ZC aC bC wB IC cC xB"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"o","2":"J m n 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"LCH and Lab color values",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","322":"x"},C:{"1":"0 1 2 3 D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x PC QC","194":"y z"},D:{"1":"0 1 2 3 y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w","322":"x"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC WC"},F:{"1":"h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g aC bC cC dC xB LC eC yB"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"o","2":"I m n 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"LCH and Lab color values",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js index edccc92faba873..9e0a43ce5b63b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","16":"KC","132":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC","132":"3 J K 7B QC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H YC","132":"B C I N ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"2":"yC"},I:{"1":"E 3C 4C","16":"zC 0C","132":"0B J 1C 2C JC"},J:{"132":"F A"},K:{"1":"p","132":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"letter-spacing CSS property",D:true}; +module.exports={A:{A:{"1":"G A B","16":"NC","132":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC","132":"4 I J 9B SC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G aC","132":"B C H M bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"2":"0C"},I:{"1":"D 5C 6C","16":"1C 2C","132":"2B I 3C 4C MC"},J:{"132":"E A"},K:{"1":"p","132":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"letter-spacing CSS property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js index 4cec69b7baa266..41dd0a89e2390f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB NC OC","33":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"16":"3 J K F G H A B C L","33":"0 1 2 4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"J PC 7B","33":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"7B dC JC","33":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"16":"zC 0C","33":"0B J E 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"33":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"33":"ID"},S:{"2":"JD","33":"KD"}},B:5,C:"CSS line-clamp",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB PC QC","33":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"16":"4 I J E F G A B C K","33":"0 1 2 3 5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"I RC 9B","33":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"9B fC MC","33":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"16":"1C 2C","33":"2B I D 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"33":"JD"},S:{"2":"KD","33":"LD"}},B:5,C:"CSS line-clamp",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js index 9c557028a9e38f..92a48d0123f141 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","1028":"W X","1540":"P Q R S T U V"},C:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","164":"3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NC OC","1540":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","292":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB","1028":"W X","1540":"nB oB pB qB p rB sB tB uB vB P Q R S T U V"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","292":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","1540":"L M xB 9B","3076":"UC"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","292":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","1028":"rB sB","1540":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","292":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC","1540":"pC qC rC sC tC uC","3076":"vC"},H:{"2":"yC"},I:{"1":"E","292":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"292":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","292":"J 5C 6C 7C 8C 9C","1540":"8B AD BD CD DD"},Q:{"1540":"9B"},R:{"1":"ID"},S:{"1":"KD","1540":"JD"}},B:5,C:"CSS Logical Properties",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","1028":"W X","1540":"P Q R S T U V"},C:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","164":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB PC QC","1540":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","292":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB","1028":"W X","1540":"oB pB qB rB p sB tB uB vB wB P Q R S T U V"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","292":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","1540":"K L yB BC","3076":"WC"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","292":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","1028":"sB tB","1540":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","292":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC","1540":"rC sC tC uC vC wC","3076":"xC"},H:{"2":"0C"},I:{"1":"D","292":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"292":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","292":"I 7C 8C 9C AD BD","1540":"AC CD DD ED FD"},Q:{"1540":"BC"},R:{"1":"JD"},S:{"1":"LD","1540":"KD"}},B:5,C:"CSS Logical Properties",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js index ed535d87e7e761..30f9970f8c90a0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U"},C:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB NC OC"},D:{"1":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U"},E:{"1":"XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B","129":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"1":"qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS ::marker pseudo-element",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U"},C:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB PC QC"},D:{"1":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U"},E:{"1":"ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC","129":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC"},F:{"1":"rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS ::marker pseudo-element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js index 4cba45f901506e..b6d434156963d3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N","164":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","3138":"D","12292":"O"},C:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","260":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC"},D:{"164":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B","164":"3 J K F G H A B C L M I QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","164":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"164":"E 3C 4C","676":"0B J zC 0C 1C 2C JC"},J:{"164":"F A"},K:{"2":"A B C wB IC xB","164":"p"},L:{"164":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"164":"yB"},P:{"164":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"164":"9B"},R:{"164":"ID"},S:{"1":"KD","260":"JD"}},B:4,C:"CSS Masks",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M","164":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","3138":"N","12292":"O"},C:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","260":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","164":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","164":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"164":"D 5C 6C","676":"2B I 1C 2C 3C 4C MC"},J:{"164":"E A"},K:{"2":"A B C xB LC yB","164":"p"},L:{"164":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"zB"},P:{"164":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"164":"BC"},R:{"164":"JD"},S:{"1":"LD","260":"KD"}},B:4,C:"CSS Masks",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js index b3d552b3eab5e5..7f69cf1d7a777b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","1220":"P Q R S T U V W"},C:{"1":"0 1 2 vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC","548":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB"},D:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB","196":"jB kB lB","1220":"mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3","164":"K F G QC RC SC","260":"H A B C L TC 8B wB xB 9B"},F:{"1":"sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","196":"YB ZB aB","1220":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC","164":"G gC hC","260":"iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"1":"E","16":"0B zC 0C 1C","164":"J 2C JC 3C 4C"},J:{"16":"F","164":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","164":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},Q:{"1220":"9B"},R:{"1":"ID"},S:{"1":"KD","548":"JD"}},B:5,C:":is() CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","1220":"P Q R S T U V W"},C:{"1":"0 1 2 3 wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC","548":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB"},D:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB","196":"kB lB mB","1220":"nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4","164":"J E F SC TC UC","260":"G A B C K VC AC xB yB BC"},F:{"1":"tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","196":"ZB aB bB","1220":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC","164":"F iC jC","260":"kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"1":"D","16":"2B 1C 2C 3C","164":"I 4C MC 5C 6C"},J:{"16":"E","164":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","164":"I 7C 8C 9C AD BD AC CD DD ED FD"},Q:{"1220":"BC"},R:{"1":"JD"},S:{"1":"LD","548":"KD"}},B:5,C:":is() CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js index 00c55f7abb7e4c..6f6d97c9add469 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB NC OC"},D:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B","132":"C L wB xB"},F:{"1":"kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB YC ZC aC bC wB IC cC xB"},G:{"1":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC","132":"nC oC pC qC rC sC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS math functions min(), max() and clamp()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB PC QC"},D:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC","132":"C K xB yB"},F:{"1":"lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB aC bC cC dC xB LC eC yB"},G:{"1":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC","132":"pC qC rC sC tC uC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS math functions min(), max() and clamp()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js index 5f703163921ccb..b6478bf6a4be88 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"Media Queries: interaction media features",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"Media Queries: interaction media features",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-range-syntax.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-range-syntax.js index e07dc740c29525..2d25324507b40e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-range-syntax.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC"},D:{"1":"0 1 2 r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z YC ZC aC bC wB IC cC xB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"Media Queries: Range Syntax",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC"},D:{"1":"0 1 2 3 r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z aC bC cC dC xB LC eC yB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"Media Queries: Range Syntax",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js index 09abea1348927c..7f18791122d5ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","1028":"C L M I N D O"},C:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","260":"3 J K F G H A B C L M I NC OC","1028":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B"},D:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","548":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB","1028":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"PC 7B","548":"3 J K F G H A B C L M I QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H","548":"B C YC ZC aC bC wB IC cC","1028":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},G:{"1":"D zB CC DC EC FC GC HC","16":"7B","548":"G dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"132":"yC"},I:{"1":"E","16":"zC 0C","548":"0B J 1C 2C JC","1028":"3C 4C"},J:{"548":"F A"},K:{"1":"p xB","548":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","1028":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Media Queries: resolution feature",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","1028":"C K L H M N O"},C:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","260":"4 I J E F G A B C K L H PC QC","1028":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B"},D:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","548":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB","1028":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","548":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G","548":"B C aC bC cC dC xB LC eC","1028":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","16":"9B","548":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"132":"0C"},I:{"1":"D","16":"1C 2C","548":"2B I 3C 4C MC","1028":"5C 6C"},J:{"548":"E A"},K:{"1":"p yB","548":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","1028":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Media Queries: resolution feature",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js index e61276a98ebee8..ee7eebb0f0e5e2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"Media Queries: scripting media feature",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"Media Queries: scripting media feature",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js index 36a65982ad1566..f87d31a213ddd1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"K F G KC","129":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","129":"3 4 5 6 7 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","129":"3 J K QC","388":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","129":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"E 3C 4C","129":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"129":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS3 Media Queries",D:true}; +module.exports={A:{A:{"8":"J E F NC","129":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","129":"4 5 6 7 8 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","129":"4 I J SC","388":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","129":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"D 5C 6C","129":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS3 Media Queries",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js index ecac56515acd59..36f1cdda64d055 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB","194":"BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"2":"3 J K F PC 7B QC RC","260":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC eC fC gC","260":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Blending of HTML/SVG elements",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB","194":"CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"2":"4 I J E RC 9B SC TC","260":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC gC hC iC","260":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Blending of HTML/SVG elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js index 7c07a34bfe672b..584645a809e998 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB NC OC"},D:{"1":"0 1 2 SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","194":"PB QB RB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB","194":"CB DB EB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS Motion Path",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB PC QC"},D:{"1":"0 1 2 3 TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB RB SB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB","194":"DB EB FB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS Motion Path",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js index 6f7cdfa0c83bed..6df32150a69ada 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS namespaces",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS namespaces",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js index 2bdffbcdf16c7a..b70d66520653d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v","194":"w x y"},C:{"1":"4B 5B 6B MC","2":"0 1 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z NC OC","322":"2 E"},D:{"1":"0 1 2 z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v","194":"w x y"},E:{"1":"D GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC"},F:{"1":"h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d YC ZC aC bC wB IC cC xB","194":"e f g"},G:{"1":"D GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Nesting",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v","194":"w x y","513":"0 1 2 3 z D"},C:{"1":"D 6B 7B 8B","2":"0 1 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z PC QC","322":"2 3"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v","194":"w x y","513":"0 1 2 3 z D 6B 7B 8B"},E:{"1":"ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC","513":"IC JC 1B KC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d aC bC cC dC xB LC eC yB","194":"e f g","513":"h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC","513":"IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","513":"D"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"513":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Nesting",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js index 8decc8e0217fe9..6f95b6debfc256 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O Q R S T U V W","16":"P"},C:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S NC OC"},D:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"selector list argument of :not()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O Q R S T U V W","16":"P"},C:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S PC QC"},D:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"selector list argument of :not()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js index 4a79bbfa26a523..09365921c5a2b5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"1":"0 1 2 E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z NC OC"},D:{"1":"0 1 2 y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"o","2":"J m n 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"1":"0 1 2 3 D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z PC QC"},D:{"1":"0 1 2 3 y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"o","2":"I m n 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js index e6babad7bc3cfa..4cf88b637879e0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","4":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS3 Opacity",D:true}; +module.exports={A:{A:{"1":"G A B","4":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS3 Opacity",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js index 8bed11e0811f03..9ce02eb1818a17 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H YC","132":"B C ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"132":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","132":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:":optional CSS pseudo-class",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G aC","132":"B C bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"132":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","132":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:":optional CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js index 2fa0ec1f2b8fe7..e8ef9a53f4b56f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB NC OC"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB PC QC"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js index 5ec6dd31b70029..c6ebd295f103d7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2":"C L M I N D O","130":"1 2 E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","16":"3 J K F G H A B C L M","130":"1 2 E 4B 5B 6B"},E:{"1":"3 J K F G H A B QC RC SC TC 8B wB","16":"PC 7B","130":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i","2":"H B C YC ZC aC bC wB IC cC xB","130":"j k l"},G:{"1":"G dC JC eC fC gC hC iC jC kC lC mC nC","16":"7B","130":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J zC 0C 1C 2C JC 3C 4C","130":"E"},J:{"16":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"130":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS overflow: overlay",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","2":"C K L H M N O","130":"1 2 3 D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","16":"4 I J E F G A B C K L","130":"1 2 3 D 6B 7B 8B"},E:{"1":"4 I J E F G A B SC TC UC VC AC xB","16":"RC 9B","130":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i","2":"G B C aC bC cC dC xB LC eC yB","130":"j k l"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC","16":"9B","130":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I 1C 2C 3C 4C MC 5C 6C","130":"D"},J:{"16":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"130":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS overflow: overlay",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js index 47796e7a5c3301..b4a2e4c002c85b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"K F G H A B KC"},B:{"1":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E","260":"P Q R S T U V W X Y","388":"C L M I N D O"},C:{"1":"0 1 2 R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","260":"2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q","388":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB NC OC"},D:{"1":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","260":"mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y","388":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB"},E:{"1":"D zB CC DC EC FC GC HC XC","260":"M I 9B UC VC AC BC yB WC","388":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","260":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB","388":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB YC ZC aC bC wB IC cC xB"},G:{"1":"D zB CC DC EC FC GC HC","260":"tC uC vC wC AC BC yB xC","388":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC"},H:{"388":"yC"},I:{"1":"E","388":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"388":"F A"},K:{"1":"p","388":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"388":"A B"},O:{"388":"yB"},P:{"1":"m n o ED zB FD GD HD","388":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},Q:{"388":"9B"},R:{"1":"ID"},S:{"1":"KD","388":"JD"}},B:5,C:"CSS overflow property",D:true}; +module.exports={A:{A:{"388":"J E F G A B NC"},B:{"1":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D","260":"P Q R S T U V W X Y","388":"C K L H M N O"},C:{"1":"0 1 2 3 R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","260":"4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q","388":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB PC QC"},D:{"1":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","260":"nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y","388":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","260":"L H BC WC XC CC DC zB YC","388":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","260":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB","388":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB aC bC cC dC xB LC eC yB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","260":"vC wC xC yC CC DC zB zC","388":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"388":"0C"},I:{"1":"D","388":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"388":"E A"},K:{"1":"p","388":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"388":"zB"},P:{"1":"m n o GD 0B 1B HD ID","388":"I 7C 8C 9C AD BD AC CD DD ED FD"},Q:{"388":"BC"},R:{"1":"JD"},S:{"1":"LD","388":"KD"}},B:5,C:"CSS overflow property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js index 88b94efed1bebd..fccae4e14680af 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D","516":"O"},C:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB NC OC"},D:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB","260":"hB iB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B","1090":"I UC VC AC BC yB WC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB YC ZC aC bC wB IC cC xB","260":"WB XB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","1090":"vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS overscroll-behavior",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N","516":"O"},C:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB PC QC"},D:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB","260":"iB jB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC","1090":"H WC XC CC DC zB YC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB aC bC cC dC xB LC eC yB","260":"XB YB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC","1090":"xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS overscroll-behavior",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js index b60d28f8a0705f..7d4ba681b79c52 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"A B","900":"K F G H KC"},B:{"388":"C L M I N D O","900":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"772":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","900":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB NC OC"},D:{"900":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"772":"A","900":"3 J K F G H B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"16":"H YC","129":"B C ZC aC bC wB IC cC xB","900":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"900":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"129":"yC"},I:{"900":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"900":"F A"},K:{"129":"A B C wB IC xB","900":"p"},L:{"900":"E"},M:{"772":"E"},N:{"388":"A B"},O:{"900":"yB"},P:{"900":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"900":"9B"},R:{"900":"ID"},S:{"772":"KD","900":"JD"}},B:2,C:"CSS page-break properties",D:true}; +module.exports={A:{A:{"388":"A B","900":"J E F G NC"},B:{"388":"C K L H M N O","900":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"772":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","900":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB PC QC"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"772":"A","900":"4 I J E F G B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"16":"G aC","129":"B C bC cC dC xB LC eC yB","900":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"900":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"129":"0C"},I:{"900":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"900":"E A"},K:{"129":"A B C xB LC yB","900":"p"},L:{"900":"D"},M:{"772":"D"},N:{"388":"A B"},O:{"900":"zB"},P:{"900":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"900":"BC"},R:{"900":"JD"},S:{"772":"LD","900":"KD"}},B:2,C:"CSS page-break properties",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js index ae4605bff35825..61f819cb591ff8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","132":"G H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O"},C:{"2":"3 LC 0B J K F G H A B C L M I N D O NC OC","132":"0 1 2 4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","132":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"16":"yC"},I:{"16":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","16":"A B C wB IC xB"},L:{"1":"E"},M:{"132":"E"},N:{"258":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"132":"JD KD"}},B:5,C:"CSS Paged Media (@page)",D:true}; +module.exports={A:{A:{"2":"J E NC","132":"F G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O"},C:{"2":"4 OC 2B I J E F G A B C K L H M N O PC QC","132":"0 1 2 3 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","132":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"16":"0C"},I:{"16":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","16":"A B C xB LC yB"},L:{"1":"D"},M:{"132":"D"},N:{"258":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"132":"KD LD"}},B:5,C:"CSS Paged Media (@page)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js index 2586d1359b3883..33119c82012307 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB"},E:{"2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","194":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"CSS Painting API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB"},E:{"2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","194":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"CSS Painting API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js index 12d9e1e32da7e7..47965c9c7a0075 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","292":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","164":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","164":"JD"}},B:5,C:":placeholder-shown CSS pseudo-class",D:true}; +module.exports={A:{A:{"2":"J E F G NC","292":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","164":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","164":"KD"}},B:5,C:":placeholder-shown CSS pseudo-class",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js index 4db539e9f20d79..0478c5ddce263e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","36":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","130":"3 LC 0B J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","36":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","36":"3 K F G H A QC RC SC TC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","36":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC","36":"G JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","36":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"36":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"36":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","36":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:5,C:"::placeholder CSS pseudo-element",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","36":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","130":"4 OC 2B I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","36":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","36":"4 J E F G A SC TC UC VC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","36":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC","36":"F MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","36":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"36":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","36":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:5,C:"::placeholder CSS pseudo-element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js index 6f1f631538683f..82db486cb0655f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js @@ -1 +1 @@ -module.exports={A:{D:{"2":"3 J K F G H A B C L M I N","33":"0 1 2 4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},L:{"33":"E"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC","33":"UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C wB IC xB","33":"p"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC","2":"3 J PC 7B QC XC","33":"K F G H A B C L M I RC SC TC 8B wB xB 9B UC VC AC"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},I:{"2":"0B J zC 0C 1C 2C JC","33":"E 3C 4C"}},B:6,C:"print-color-adjust property",D:undefined}; +module.exports={A:{D:{"2":"4 I J E F G A B C K L H M","33":"0 1 2 3 5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC","33":"VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C xB LC yB","33":"p"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I RC 9B SC ZC","33":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},I:{"2":"2B I 1C 2C 3C 4C MC","33":"D 5C 6C"}},B:6,C:"print-color-adjust property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js index 48f62ceed6766a..e7c5b7d1a7e094 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC","33":"3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB NC OC"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B","132":"3 J K F G QC RC SC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B YC ZC aC bC wB","132":"4 C I N D O m n o IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC","132":"G JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","16":"zC 0C","132":"0B J 1C 2C JC 3C 4C"},J:{"1":"A","132":"F"},K:{"1":"p","2":"A B wB","132":"C IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:1,C:"CSS :read-only and :read-write selectors",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC","33":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB PC QC"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B","132":"4 I J E F SC TC UC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B aC bC cC dC xB","132":"5 C H M N O m n o LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC","132":"F MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","16":"1C 2C","132":"2B I 3C 4C MC 5C 6C"},J:{"1":"A","132":"E"},K:{"1":"p","2":"A B xB","132":"C LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:1,C:"CSS :read-only and :read-write selectors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js index 26599e4d295894..b5a518247d4fe7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","16":"RC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Rebeccapurple color",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","16":"TC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Rebeccapurple color",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js index ff0c3790140759..454f85be9745c8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"PC 7B","33":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"33":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"33":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"33":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS Reflections",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"RC 9B","33":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"33":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"33":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"33":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS Reflections",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js index 2c704966981669..0bf81abe322274 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","420":"A B"},B:{"2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","420":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 J K F G H A B C L M HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","36":"I N D O","66":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB"},E:{"2":"3 J K C L M I D PC 7B QC wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"F G H A B RC SC TC 8B"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"D 7B dC JC eC fC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"G gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"420":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Regions",D:true}; +module.exports={A:{A:{"2":"J E F G NC","420":"A B"},B:{"2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","420":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 I J E F G A B C K L IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","36":"H M N O","66":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB"},E:{"2":"4 I J C K L H RC 9B SC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"E F G A B TC UC VC AC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC gC hC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"420":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Regions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-relative-colors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-relative-colors.js index c89776fe7bbf18..733531fb2365f9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-relative-colors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-relative-colors.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B","194":"5B 6B"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Relative colors",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","194":"6B 7B 8B"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Relative colors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js index 5646b5e7563202..9d0c6045a9d2b1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","33":"3 J K F G H A B C L M I OC"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H","33":"4 5 6 7 A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","33":"K QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC","33":"C cC","36":"wB IC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","33":"eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B zC 0C 1C","33":"J 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B","33":"C","36":"wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Repeating Gradients",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","33":"4 I J E F G A B C K L H QC"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G","33":"5 6 7 8 A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","33":"J SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC","33":"C eC","36":"xB LC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","33":"gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B 1C 2C 3C","33":"I 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B","33":"C","36":"xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Repeating Gradients",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js index 43493f0b0e4dae..5228a3dbf7c4b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"J"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC","132":"xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:2,C:"CSS resize property",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC","132":"yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:2,C:"CSS resize property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js index c43fae9c6e24fa..fd9e9b49051451 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S"},C:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB NC OC"},D:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB YC ZC aC bC wB IC cC xB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"CSS revert value",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S"},C:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB PC QC"},D:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB aC bC cC dC xB LC eC yB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"CSS revert value",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js index b62217605488ff..add1bb61bd3e99 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","194":"YB ZB aB bB cB dB eB 1B fB 2B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB YC ZC aC bC wB IC cC xB","194":"LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","194":"5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"#rrggbbaa hex color notation",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","194":"ZB aB bB cB dB eB fB 3B gB 4B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB aC bC cC dC xB LC eC yB","194":"MB NB OB PB QB RB SB TB UB VB WB XB YB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","194":"7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"#rrggbbaa hex color notation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js index 08f43b1c919157..652050c36626ee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","129":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","129":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","450":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB 9B","578":"M I UC VC AC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB","129":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","450":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","578":"vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"129":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"129":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"CSS Scroll-behavior",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","129":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","129":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","450":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB BC","578":"L H WC XC CC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB","129":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","450":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC","578":"xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"129":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"129":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"CSS Scroll-behavior",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js index 39ffd1b0975775..378fee784d9a75 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T U V W X Y","194":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T","194":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","322":"U V W"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB YC ZC aC bC wB IC cC xB","194":"sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","322":"p rB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS @scroll-timeline",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T U V W X Y","194":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T","194":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","322":"U V W"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB aC bC cC dC xB LC eC yB","194":"tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","322":"p sB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS @scroll-timeline",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js index 0113c03adc6861..650957b4516ead 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"2":"C L M I N D O","292":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC","3138":"hB","4097":"0 1 2 iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"292":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"16":"3 J PC 7B","292":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","292":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC","292":"gC","804":"G hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"16":"zC 0C","292":"0B J E 1C 2C JC 3C 4C"},J:{"292":"F A"},K:{"2":"A B C wB IC xB","292":"p"},L:{"292":"E"},M:{"4097":"E"},N:{"2":"A B"},O:{"292":"yB"},P:{"292":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"292":"9B"},R:{"292":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS scrollbar styling",D:true}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"2":"C K L H M N O","292":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC","3138":"iB","4097":"0 1 2 3 jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"16":"4 I RC 9B","292":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","292":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC","292":"iC","804":"F jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"16":"1C 2C","292":"2B I D 3C 4C MC 5C 6C"},J:{"292":"E A"},K:{"2":"A B C xB LC yB","292":"p"},L:{"292":"D"},M:{"4097":"D"},N:{"2":"A B"},O:{"292":"zB"},P:{"292":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"292":"BC"},R:{"292":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS scrollbar styling",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js index 16ee7127b33803..1de0f923e700d5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F G H A B","2":"KC","8":"K"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS 2.1 selectors",D:true}; +module.exports={A:{A:{"1":"E F G A B","2":"NC","8":"J"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS 2.1 selectors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js index 6d074bbe196c78..ab1c268f4a48e0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K","132":"F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS3 selectors",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J","132":"E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS3 selectors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js index b440f3aa386c0e..97fa066d8d3012 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"C p IC xB","16":"A B wB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:5,C:"::selection CSS pseudo-element",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"C p LC yB","16":"A B xB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:5,C:"::selection CSS pseudo-element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js index 85c5ce1e571bb0..a7733d1d504caa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB NC OC","322":"XB YB ZB aB bB cB dB eB 1B fB 2B"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB","194":"GB HB IB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC","33":"G H A SC TC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","33":"G hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"CSS Shapes Level 1",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB PC QC","322":"YB ZB aB bB cB dB eB fB 3B gB 4B"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB","194":"HB IB JB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC","33":"F G A UC VC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","33":"F jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"CSS Shapes Level 1",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js index 2dddbe42502113..5fbc8a512cb382 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","6308":"A","6436":"B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","6436":"C L M I N D O"},C:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB NC OC","2052":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB"},D:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB","8258":"kB lB mB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC","3108":"H A TC 8B"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB","8258":"aB bB cB dB eB fB gB hB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC","3108":"iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2052":"JD"}},B:4,C:"CSS Scroll Snap",D:true}; +module.exports={A:{A:{"2":"J E F G NC","6308":"A","6436":"B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","6436":"C K L H M N O"},C:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB PC QC","2052":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB"},D:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB","8258":"lB mB nB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC","3108":"G A VC AC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB","8258":"bB cB dB eB fB gB hB iB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC","3108":"kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2052":"KD"}},B:4,C:"CSS Scroll Snap",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js index 550560c1c5b011..20d7c251e8a824 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I","1028":"P Q R S T U V W X Y Z","4100":"N D O"},C:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 LC 0B J K F G H A B C L M I N D O m n o NC OC","194":"8 9 AB BB CB DB","516":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n o JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","322":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB YB ZB aB bB","1028":"cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","33":"G H A B C SC TC 8B wB xB","2084":"F RC"},F:{"1":"vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB YC ZC aC bC wB IC cC xB","322":"LB MB NB","1028":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G hC iC jC kC lC mC nC oC pC","2084":"fC gC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1028":"9B"},R:{"1":"ID"},S:{"1":"KD","516":"JD"}},B:5,C:"CSS position:sticky",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H","1028":"P Q R S T U V W X Y Z","4100":"M N O"},C:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 OC 2B I J E F G A B C K L H M N O m n o PC QC","194":"9 AB BB CB DB EB","516":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},D:{"1":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n o KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","322":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB ZB aB bB cB","1028":"dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","33":"F G A B C UC VC AC xB yB","2084":"E TC"},F:{"1":"wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB aC bC cC dC xB LC eC yB","322":"MB NB OB","1028":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F jC kC lC mC nC oC pC qC rC","2084":"hC iC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1028":"BC"},R:{"1":"JD"},S:{"1":"LD","516":"KD"}},B:5,C:"CSS position:sticky",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js index 46bfb93f52c45e..22cb9ddde8071a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","194":"1 2 E"},C:{"1":"0 1 2 pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB NC OC"},D:{"1":"4B 5B 6B","2":"0 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","194":"1 2 E"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i YC ZC aC bC wB IC cC xB","194":"j k l"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"CSS Subgrid",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"D","2":"0 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","194":"1 2 3"},C:{"1":"0 1 2 3 qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB PC QC"},D:{"1":"D 6B 7B 8B","2":"0 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z","194":"1 2 3"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i aC bC cC dC xB LC eC yB","194":"j k l"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"CSS Subgrid",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js index 01858acafd8238..212d540bce22f0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D O"},C:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O NC OC","66":"m n","260":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o","260":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC","132":"xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"132":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC","132":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS.supports() API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N O"},C:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O PC QC","66":"m n","260":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB","260":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC","132":"yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"132":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC","132":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS.supports() API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js index 43f408b724bb26..87dc2d97007596 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"K F KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","132":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS Table display",D:true}; +module.exports={A:{A:{"1":"F G A B","2":"J E NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","132":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS Table display",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js index c58f4275d38284..8ac5d5b7ff0215 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","4":"C L M I N D O"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B NC OC","33":"4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB","322":"HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n YC ZC aC bC wB IC cC xB","578":"5 6 7 8 9 o AB BB CB DB EB FB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:4,C:"CSS3 text-align-last",D:true}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","4":"C K L H M N O"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B PC QC","33":"5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},D:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB","322":"IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n aC bC cC dC xB LC eC yB","578":"6 7 8 9 o AB BB CB DB EB FB GB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:4,C:"CSS3 text-align-last",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-box-trim.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-box-trim.js index e167b6fdba76ca..b76148026b534b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-box-trim.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-box-trim.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC","194":"D FC GC HC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC","194":"D FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS text-box-trim & text-box-edge",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC","194":"HC IC JC 1B KC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC","194":"HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS text-box-trim & text-box-edge",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js index 701c0b32232ddc..326da70b950902 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"132":"C L M I N D O","388":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"132":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB","388":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D zB CC DC EC FC GC HC XC","132":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"132":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB","388":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D zB CC DC EC FC GC HC","132":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"132":"yC"},I:{"132":"0B J zC 0C 1C 2C JC 3C 4C","388":"E"},J:{"132":"F A"},K:{"132":"A B C wB IC xB","388":"p"},L:{"388":"E"},M:{"132":"E"},N:{"132":"A B"},O:{"388":"yB"},P:{"132":"J","388":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"388":"9B"},R:{"388":"ID"},S:{"132":"JD KD"}},B:4,C:"CSS text-indent",D:true}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"132":"C K L H M N O","388":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"132":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","388":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","132":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"132":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB","388":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"0B EC FC GC HC IC JC 1B KC","132":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"132":"0C"},I:{"132":"2B I 1C 2C 3C 4C MC 5C 6C","388":"D"},J:{"132":"E A"},K:{"132":"A B C xB LC yB","388":"p"},L:{"388":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"388":"zB"},P:{"132":"I","388":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"388":"BC"},R:{"388":"JD"},S:{"132":"KD LD"}},B:4,C:"CSS text-indent",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js index a06e180993c3ed..6bae7be1ef36bd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"K F KC","132":"G H A B"},B:{"132":"C L M I N D O","322":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB NC OC","1025":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","1602":"aB"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","322":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB","322":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","322":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","322":"p"},L:{"322":"E"},M:{"1025":"E"},N:{"132":"A B"},O:{"322":"yB"},P:{"2":"J","322":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"322":"9B"},R:{"322":"ID"},S:{"2":"JD","1025":"KD"}},B:4,C:"CSS text-justify",D:true}; +module.exports={A:{A:{"16":"J E NC","132":"F G A B"},B:{"132":"C K L H M N O","322":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB PC QC","1025":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","1602":"bB"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","322":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB","322":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","322":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","322":"p"},L:{"322":"D"},M:{"1025":"D"},N:{"132":"A B"},O:{"322":"zB"},P:{"2":"I","322":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"322":"BC"},R:{"322":"JD"},S:{"2":"KD","1025":"LD"}},B:4,C:"CSS text-justify",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js index 30d2ba018800b8..0263b70c113fbf 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC","194":"KB LB MB"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","16":"A","33":"B C L 8B wB xB 9B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS text-orientation",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC","194":"LB MB NB"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","16":"A","33":"B C K AC xB yB BC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS text-orientation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js index f66a8f1e748033..a12177b141eb0e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","161":"G H A B"},B:{"2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","161":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"16":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS Text 4 text-spacing",D:false}; +module.exports={A:{A:{"2":"J E NC","161":"F G A B"},B:{"2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","161":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS Text 4 text-spacing",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js index 9f2089afc4f9f2..62b262538ec507 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"1 2 E","2":"0 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"1 2 E 4B 5B 6B","2":"0 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS text-wrap: balance",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"1 2 3 D","2":"0 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"1 2 3 D 6B 7B 8B","2":"0 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS text-wrap: balance",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js index 517f28cf50baf4..c447ec89a6dc1c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","129":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","260":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"4":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","4":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"129":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 Text-shadow",D:true}; +module.exports={A:{A:{"2":"J E F G NC","129":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","260":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"4":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","4":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 Text-shadow",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js index aab2fa448cc8bf..b8d3472ceba5c0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H KC","289":"A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","194":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","1025":"YB ZB aB bB cB"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC","516":"jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","289":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","194":"JD"}},B:2,C:"CSS touch-action property",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G NC","289":"A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","1025":"ZB aB bB cB dB"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC","516":"lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","289":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","194":"KD"}},B:2,C:"CSS touch-action property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js index 5425f5baf82222..fa9fdeeaecbaa8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"3 K F G H A B C L M I","164":"J"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"K QC","164":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H YC ZC","33":"C","164":"B aC bC wB IC cC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"fC","164":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","33":"0B J zC 0C 1C 2C JC"},J:{"1":"A","33":"F"},K:{"1":"p xB","33":"C","164":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS3 Transitions",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"4 J E F G A B C K L H","164":"I"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"J SC","164":"4 I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G aC bC","33":"C","164":"B cC dC xB LC eC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"hC","164":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","33":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","33":"E"},K:{"1":"p yB","33":"C","164":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS3 Transitions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js index 9fe58015878d8e..09df8176140bc2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","132":"3 LC 0B J K F G H NC OC","292":"A B C L M I N"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 J K F G H A B C L M I N","548":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"132":"3 J K F G PC 7B QC RC SC","548":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"132":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"132":"G 7B dC JC eC fC gC hC","548":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"16":"yC"},I:{"1":"E","16":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","16":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:4,C:"CSS unicode-bidi property",D:false}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","132":"4 OC 2B I J E F G PC QC","292":"A B C K L H M"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 I J E F G A B C K L H M","548":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"132":"4 I J E F RC 9B SC TC UC","548":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"132":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"132":"F 9B fC MC gC hC iC jC","548":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"16":"0C"},I:{"1":"D","16":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","16":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:4,C:"CSS unicode-bidi property",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js index cadb117ba8f56b..fd6a89d55c7af7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS unset value",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS unset value",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js index 23b5308f1556cb..fdd4474a2c8ead 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","260":"I"},C:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","194":"UB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC","260":"TC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB","194":"HB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC","260":"jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Variables (Custom Properties)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","260":"H"},C:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","194":"VB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC","260":"VC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB","194":"IB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC","260":"lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Variables (Custom Properties)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js index ae3d06a15cc402..a6bc2ba1f37349 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"CSS @when / @else conditional rules",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"CSS @when / @else conditional rules",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js index f9db21f310c6aa..054b29e1457d57 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F KC","129":"G H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","129":"H B YC ZC aC bC wB IC cC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:2,C:"CSS widows & orphans",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E NC","129":"F G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","129":"G B aC bC cC dC xB LC eC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:2,C:"CSS widows & orphans",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js index 11cc6e7bbe79dc..a7e6fe5c2ebbfd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js @@ -1 +1 @@ -module.exports={A:{D:{"2":"3 4 J K F G H A B C L M I N D O m n","33":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},L:{"33":"E"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"LC","33":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},M:{"33":"E"},A:{"2":"K F G H A B KC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C wB IC xB","33":"p"},E:{"2":"3 J K PC 7B QC RC XC","33":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},G:{"2":"7B dC JC eC fC","33":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},P:{"2":"J","33":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},I:{"2":"0B J zC 0C 1C 2C JC","33":"E 3C 4C"}},B:6,C:"width: stretch property",D:undefined}; +module.exports={A:{D:{"2":"4 5 I J E F G A B C K L H M N O m n","33":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"OC","33":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},M:{"33":"D"},A:{"2":"J E F G A B NC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},K:{"2":"A B C xB LC yB","33":"p"},E:{"2":"4 I J RC 9B SC TC ZC","33":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC"},G:{"2":"9B fC MC gC hC","33":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},P:{"2":"I","33":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},I:{"2":"2B I 1C 2C 3C 4C MC","33":"D 5C 6C"}},B:6,C:"width: stretch property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js index 6e0916c8017e9b..3bbc4a9d6993e4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC","322":"IB JB KB LB MB"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K","16":"F","33":"4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3","33":"K F G H A QC RC SC TC 8B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC","33":"G eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"zC 0C 1C","33":"0B J 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"36":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS writing-mode property",D:true}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC","322":"JB KB LB MB NB"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J","16":"E","33":"5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4","33":"J E F G A SC TC UC VC AC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","33":"F gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"1C 2C 3C","33":"2B I 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS writing-mode property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js index 321c1ab08fb0b4..79f9167a5d2d56 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F KC","129":"G H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"129":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS zoom",D:true}; +module.exports={A:{A:{"1":"J E NC","129":"F G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"129":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS zoom",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js index 55b8b2922ae2d5..8ffe164f5d53c7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS3 attr() function for all properties",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS3 attr() function for all properties",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js index 64744174528dfe..e43c0569e23dfc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","8":"K F KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 J K F G H"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"7B dC JC"},H:{"1":"yC"},I:{"1":"J E 2C JC 3C 4C","33":"0B zC 0C 1C"},J:{"1":"A","33":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS3 Box-sizing",D:true}; +module.exports={A:{A:{"1":"F G A B","8":"J E NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 I J E F G"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"4 I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"9B fC MC"},H:{"1":"0C"},I:{"1":"I D 4C MC 5C 6C","33":"2B 1C 2C 3C"},J:{"1":"A","33":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS3 Box-sizing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js index 7dda0bb0b6219e..127b96d563ff43 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","4":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","2":"H","4":"YC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS3 Colors",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","4":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","2":"G","4":"aC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS3 Colors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js index f7cebbb6a9d0f4..4babe6aa137f19 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M"},C:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 4 5 6 7 8 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"C bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:2,C:"CSS grab & grabbing cursors",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L"},C:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"C cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:2,C:"CSS grab & grabbing cursors",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js index 12bc42d94d6797..8b9c1ee8e59a05 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 4 5 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"3 J K F G PC 7B QC RC SC"},F:{"1":"6 7 8 9 C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC","33":"4 5 I N D O m n o"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"4 I J E F RC 9B SC TC UC"},F:{"1":"7 8 9 C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC","33":"5 6 H M N O m n o"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js index 9aa1820363cb93..fde88e113c4ef2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","132":"K F G KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","4":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","260":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","16":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:2,C:"CSS3 Cursors (original values)",D:true}; +module.exports={A:{A:{"1":"G A B","132":"J E F NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","260":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","16":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:2,C:"CSS3 Cursors (original values)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js index d8abb9115e73fc..19f89170c9d867 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z","164":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m","132":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","132":"F G H A B C L RC SC TC 8B wB xB"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC aC","132":"4 5 6 7 8 9 I N D O m n o AB","164":"B C bC wB IC cC xB"},G:{"1":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC","132":"G gC hC iC jC kC lC mC nC oC pC qC rC sC"},H:{"164":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","132":"3C 4C"},J:{"132":"F A"},K:{"1":"p","2":"A","164":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"164":"JD KD"}},B:4,C:"CSS3 tab-size",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z","164":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},D:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m","132":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","132":"E F G A B C K TC UC VC AC xB yB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC cC","132":"5 6 7 8 9 H M N O m n o AB BB","164":"B C dC xB LC eC yB"},G:{"1":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","132":"F iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"164":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","132":"5C 6C"},J:{"132":"E A"},K:{"1":"p","2":"A","164":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"164":"KD LD"}},B:4,C:"CSS3 tab-size",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js index a2a6829683692a..9f6a1a3d333541 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS currentColor value",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS currentColor value",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js index 70c57cd82cafe9..8ab3881e521553 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","8":"A B"},B:{"1":"P","2":"0 1 2 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N D O"},C:{"2":"0 1 2 3 4 LC 0B J K F G H A B C L M I N D O m n o 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","66":"5 6 7 8 9 AB BB","72":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","2":"0 1 2 3 4 5 6 7 8 J K F G H A B C L M I N D O m n o Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","66":"9 AB BB CB DB EB"},E:{"2":"3 J PC 7B QC","8":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"H B C lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","66":"4 I N D O"},G:{"2":"7B dC JC eC fC","8":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"4C","2":"0B J E zC 0C 1C 2C JC 3C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J 5C 6C 7C 8C 9C 8B AD BD","2":"m n o CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"2":"KD","72":"JD"}},B:7,C:"Custom Elements (deprecated V0 spec)",D:true}; +module.exports={A:{A:{"2":"J E F G NC","8":"A B"},B:{"1":"P","2":"0 1 2 3 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 OC 2B I J E F G A B C K L H M N O m n o 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","66":"6 7 8 9 AB BB CB","72":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","66":"AB BB CB DB EB FB"},E:{"2":"4 I RC 9B SC","8":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","2":"G B C mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","66":"5 H M N O"},G:{"2":"9B fC MC gC hC","8":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"6C","2":"2B I D 1C 2C 3C 4C MC 5C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I 7C 8C 9C AD BD AC CD DD","2":"m n o ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"2":"LD","72":"KD"}},B:7,C:"Custom Elements (deprecated V0 spec)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js index f2b6078209f4d6..b9361228394cb2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","8":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N D O"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB NC OC","8":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","456":"WB XB YB ZB aB bB cB dB eB","712":"1B fB 2B gB"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","8":"YB ZB","132":"aB bB cB dB eB 1B fB 2B gB hB iB jB kB"},E:{"2":"3 J K F PC 7B QC RC SC","8":"G H A TC","132":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB","132":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC","132":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","132":"5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","8":"JD"}},B:1,C:"Custom Elements (V1)",D:true}; +module.exports={A:{A:{"2":"J E F G NC","8":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M N O"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB PC QC","8":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","456":"XB YB ZB aB bB cB dB eB fB","712":"3B gB 4B hB"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","8":"ZB aB","132":"bB cB dB eB fB 3B gB 4B hB iB jB kB lB"},E:{"2":"4 I J E RC 9B SC TC UC","8":"F G A VC","132":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB","132":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC","132":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","132":"7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","8":"KD"}},B:1,C:"Custom Elements (V1)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js index d5345ccd3ebe22..2dc61a77a069ab 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","132":"K F G H A"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J","16":"3 K F G L M","388":"H A B C"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3 K","388":"QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H YC ZC aC bC","132":"B wB IC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"dC","16":"7B JC","388":"eC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"zC 0C 1C","388":"0B J 2C JC"},J:{"1":"A","388":"F"},K:{"1":"C p xB","2":"A","132":"B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"CustomEvent",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","132":"J E F G A"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I","16":"4 J E F K L","388":"G A B C"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4 J","388":"SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G aC bC cC dC","132":"B xB LC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"fC","16":"9B MC","388":"gC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"1C 2C 3C","388":"2B I 4C MC"},J:{"1":"A","388":"E"},K:{"1":"C p yB","2":"A","132":"B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"CustomEvent",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js index 2dd853e631122c..017495cc54a636 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G H","260":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I","1284":"N D O"},C:{"1":"0 1 2 x y z E 4B 5B 6B MC","8":"LC 0B NC OC","516":"l q r s t u v w","4612":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k"},D:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 4 J K F G H A B C L M I N D O","132":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB"},F:{"1":"H B C iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"8":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC","2049":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 4C","8":"0B J zC 0C 1C 2C JC 3C"},J:{"1":"A","8":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:1,C:"Datalist element",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F G","260":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H","1284":"M N O"},C:{"1":"0 1 2 3 x y z D 6B 7B 8B","8":"OC 2B PC QC","516":"l q r s t u v w","4612":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k"},D:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 I J E F G A B C K L H M N O","132":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I J E F G A B C RC 9B SC TC UC VC AC xB"},F:{"1":"G B C jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},G:{"8":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC","2049":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 6C","8":"2B I 1C 2C 3C 4C MC 5C"},J:{"1":"A","8":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:1,C:"Datalist element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js index 5d85467e591c2e..000c2bd230c812 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","4":"K F G H A KC"},B:{"1":"C L M I N","129":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","4":"3 LC 0B J NC OC","129":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB","4":"3 J K","129":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"4":"3 J PC 7B","129":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"C EB FB GB HB IB JB KB LB MB NB wB IC cC xB","4":"H B YC ZC aC bC","129":"4 5 6 7 8 9 I N D O m n o AB BB CB DB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"4":"7B dC JC","129":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"4":"yC"},I:{"4":"zC 0C 1C","129":"0B J E 2C JC 3C 4C"},J:{"129":"F A"},K:{"1":"C wB IC xB","4":"A B","129":"p"},L:{"129":"E"},M:{"129":"E"},N:{"1":"B","4":"A"},O:{"129":"yB"},P:{"129":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"129":"9B"},R:{"129":"ID"},S:{"1":"JD","129":"KD"}},B:1,C:"dataset & data-* attributes",D:true}; +module.exports={A:{A:{"1":"B","4":"J E F G A NC"},B:{"1":"C K L H M","129":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","4":"4 OC 2B I PC QC","129":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB","4":"4 I J","129":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"4":"4 I RC 9B","129":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"C FB GB HB IB JB KB LB MB NB OB xB LC eC yB","4":"G B aC bC cC dC","129":"5 6 7 8 9 H M N O m n o AB BB CB DB EB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"4":"9B fC MC","129":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"4":"0C"},I:{"4":"1C 2C 3C","129":"2B I D 4C MC 5C 6C"},J:{"129":"E A"},K:{"1":"C xB LC yB","4":"A B","129":"p"},L:{"129":"D"},M:{"129":"D"},N:{"1":"B","4":"A"},O:{"129":"zB"},P:{"129":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"129":"BC"},R:{"129":"JD"},S:{"1":"KD","129":"LD"}},B:1,C:"dataset & data-* attributes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js index 9821b5ab45d001..3df0ad069a9622 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","132":"G","260":"H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L I N D O","772":"M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"260":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Data URIs",D:true}; +module.exports={A:{A:{"2":"J E NC","132":"F","260":"G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K H M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Data URIs",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js index 0243e7ce7836de..b2231ed2a15888 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"KC","132":"K F G H A B"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D"},C:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","260":"YB ZB aB bB","772":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"0 1 2 oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 J K F G H A B C L M I N D O m n o","260":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB","772":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B","132":"K F G H A QC RC SC TC","260":"B 8B wB"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B C YC ZC aC bC wB IC cC","132":"xB","260":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","772":"4 5 6 I N D O m n o"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC","132":"G fC gC hC iC jC kC"},H:{"132":"yC"},I:{"1":"E","16":"0B zC 0C 1C","132":"J 2C JC","772":"3C 4C"},J:{"132":"F A"},K:{"1":"p","16":"A B C wB IC","132":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","260":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","132":"JD"}},B:6,C:"Date.prototype.toLocaleDateString",D:true}; +module.exports={A:{A:{"16":"NC","132":"J E F G A B"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N"},C:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","260":"ZB aB bB cB","772":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"0 1 2 3 pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 I J E F G A B C K L H M N O m n o","260":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB","772":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B","132":"J E F G A SC TC UC VC","260":"B AC xB"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B C aC bC cC dC xB LC eC","132":"yB","260":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","772":"5 6 7 H M N O m n o"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC","132":"F hC iC jC kC lC mC"},H:{"132":"0C"},I:{"1":"D","16":"2B 1C 2C 3C","132":"I 4C MC","772":"5C 6C"},J:{"132":"E A"},K:{"1":"p","16":"A B C xB LC","132":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","260":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","132":"KD"}},B:6,C:"Date.prototype.toLocaleDateString",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js index c02cf595275d13..7eab13cf369be6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T","66":"U V W X Y"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB YC ZC aC bC wB IC cC xB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Declarative Shadow DOM",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T","66":"U V W X Y"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB aC bC cC dC xB LC eC yB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Declarative Shadow DOM",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js index d5e11215d4b70a..0f0d37fffa4549 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Decorators",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Decorators",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js index 9df50a7bee6c03..69c84df4a40fe3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"H A B KC","8":"K F G"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","8":"3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC","194":"TB UB"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 J K F G H A B","257":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB","769":"C L M I N D O"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J PC 7B QC","257":"K F G H A RC SC TC","1025":"B 8B wB"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"C wB IC cC xB","8":"H B YC ZC aC bC"},G:{"1":"G D fC gC hC iC jC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC eC","1025":"kC lC mC"},H:{"8":"yC"},I:{"1":"J E 2C JC 3C 4C","8":"0B zC 0C 1C"},J:{"1":"A","8":"F"},K:{"1":"p","8":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Details & Summary elements",D:true}; +module.exports={A:{A:{"2":"G A B NC","8":"J E F"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","8":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC","194":"UB VB"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 I J E F G A B","257":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB","769":"C K L H M N O"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I RC 9B SC","257":"J E F G A TC UC VC","1025":"B AC xB"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"C xB LC eC yB","8":"G B aC bC cC dC"},G:{"1":"F hC iC jC kC lC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC gC","1025":"mC nC oC"},H:{"8":"0C"},I:{"1":"I D 4C MC 5C 6C","8":"2B 1C 2C 3C"},J:{"1":"A","8":"E"},K:{"1":"p","8":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Details & Summary elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js index c4f74944f46aa7..963538dc153b8b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"C L M I N D O","4":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"LC 0B NC","4":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"3 J OC"},D:{"2":"3 J K","4":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","4":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"7B dC","4":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"zC 0C 1C","4":"0B J E 2C JC 3C 4C"},J:{"2":"F","4":"A"},K:{"1":"C xB","2":"A B wB IC","4":"p"},L:{"4":"E"},M:{"4":"E"},N:{"1":"B","2":"A"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"4":"9B"},R:{"4":"ID"},S:{"4":"JD KD"}},B:4,C:"DeviceOrientation & DeviceMotion events",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"C K L H M N O","4":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"OC 2B PC","4":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 I QC"},D:{"2":"4 I J","4":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","4":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"9B fC","4":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"1C 2C 3C","4":"2B I D 4C MC 5C 6C"},J:{"2":"E","4":"A"},K:{"1":"C yB","2":"A B xB LC","4":"p"},L:{"4":"D"},M:{"4":"D"},N:{"1":"B","2":"A"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"4":"BC"},R:{"4":"JD"},S:{"4":"KD LD"}},B:4,C:"DeviceOrientation & DeviceMotion events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js index a5f7816cdddd52..a5f42bb300503b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Window.devicePixelRatio",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Window.devicePixelRatio",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js index 3e833b92bc0845..b568216b481735 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC","194":"ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","1218":"Q R 3B S T U V W X Y Z a b c d e f g"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB","322":"EB FB GB HB IB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N D O YC ZC aC bC wB IC cC xB","578":"4 5 m n o"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:1,C:"Dialog element",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC","194":"aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","1218":"Q R 5B S T U V W X Y Z a b c d e f g"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB","322":"FB GB HB IB JB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M N O aC bC cC dC xB LC eC yB","578":"5 6 m n o"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:1,C:"Dialog element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js index c406b3bd5a7733..c77f4bc484f3e8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"KC","129":"H A","130":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","129":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"EventTarget.dispatchEvent",D:true}; +module.exports={A:{A:{"1":"B","16":"NC","129":"G A","130":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","129":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"EventTarget.dispatchEvent",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js index d304ff338c9b89..b25ef90f9e9a23 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"K F G H A B KC"},B:{"132":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"132":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"132":"0 1 2 3 J DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","388":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB"},E:{"132":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"132":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"132":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"132":"yC"},I:{"132":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"132":"F A"},K:{"132":"A B C p wB IC xB"},L:{"132":"E"},M:{"132":"E"},N:{"132":"A B"},O:{"132":"yB"},P:{"132":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"132":"9B"},R:{"132":"ID"},S:{"132":"JD KD"}},B:6,C:"DNSSEC and DANE",D:true}; +module.exports={A:{A:{"132":"J E F G A B NC"},B:{"132":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"132":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"132":"0 1 2 3 4 I EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","388":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB"},E:{"132":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"132":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"132":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"132":"0C"},I:{"132":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"132":"E A"},K:{"132":"A B C p xB LC yB"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"zB"},P:{"132":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"132":"JD"},S:{"132":"KD LD"}},B:6,C:"DNSSEC and DANE",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js index 741c0bdb6f8f8d..042d98a22770ff 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","164":"H A","260":"B"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N"},C:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G NC OC","516":"4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB"},D:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n o"},E:{"1":"K A B C QC TC 8B wB","2":"3 J L M I D PC 7B xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","1028":"F G H RC SC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC"},G:{"1":"iC jC kC lC mC nC oC","2":"D 7B dC JC eC fC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","1028":"G gC hC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"16":"F","1028":"A"},K:{"1":"p xB","16":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"164":"A","260":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"Do Not Track API",D:true}; +module.exports={A:{A:{"2":"J E F NC","164":"G A","260":"B"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M"},C:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F PC QC","516":"5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB"},D:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n o"},E:{"1":"J A B C SC VC AC xB","2":"4 I K L H RC 9B yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","1028":"E F G TC UC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC"},G:{"1":"kC lC mC nC oC pC qC","2":"9B fC MC gC hC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","1028":"F iC jC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"16":"E","1028":"A"},K:{"1":"p yB","16":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"164":"A","260":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"Do Not Track API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js index c027fcff6e463a..1dff7570f7b6e9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"document.currentScript",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"document.currentScript",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js index 8507601df3e577..ef84467672f7e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","16":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"document.evaluate & XPath",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","16":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"document.evaluate & XPath",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js index 35fa1edc26f241..42e93b5bd9ea24 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","16":"H YC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC","16":"JC eC fC"},H:{"2":"yC"},I:{"1":"E 2C JC 3C 4C","2":"0B J zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"Document.execCommand()",D:true}; +module.exports={A:{A:{"1":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","16":"G aC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC","16":"MC gC hC"},H:{"2":"0C"},I:{"1":"D 4C MC 5C 6C","2":"2B I 1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"Document.execCommand()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js index 07ff6caf116e9e..cc6db4ab6f3e33 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T","132":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T","132":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB YC ZC aC bC wB IC cC xB","132":"pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","132":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","132":"p"},L:{"132":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"132":"ID"},S:{"2":"JD KD"}},B:7,C:"Document Policy",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T","132":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T","132":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB aC bC cC dC xB LC eC yB","132":"qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","132":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","132":"p"},L:{"132":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"132":"JD"},S:{"2":"KD LD"}},B:7,C:"Document Policy",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js index b4395c80c76701..1899ff142bed61 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C L"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC"},D:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"document.scrollingElement",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C K"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC"},D:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"document.scrollingElement",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js index 589c8c5e549cd1..7f1cc58eccc2a2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H YC ZC aC bC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"document.head",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G aC bC cC dC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"document.head",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js index e54b62129a30f6..36063e98f10ef5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","194":"YB ZB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB YC ZC aC bC wB IC cC xB","194":"MB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"DOM manipulation convenience methods",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","194":"ZB aB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB aC bC cC dC xB LC eC yB","194":"NB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"DOM manipulation convenience methods",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js index a1f42aa33b7732..f60b6c5d4025c4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Document Object Model Range",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Document Object Model Range",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js index 99abbb821353cc..1ec258bc986a4c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"DOMContentLoaded",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"DOMContentLoaded",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js index c10a9b04d229d1..7da019794e40db 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"132":"C L M I N D O","1028":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","1028":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2564":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","3076":"VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB"},D:{"16":"3 J K F","132":"4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB","388":"G","1028":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"16":"J PC 7B","132":"3 K F G H A QC RC SC TC 8B","1028":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","1028":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"16":"7B dC JC","132":"G eC fC gC hC iC jC kC lC","1028":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"132":"J 2C JC 3C 4C","292":"0B zC 0C 1C","1028":"E"},J:{"16":"F","132":"A"},K:{"2":"A B C wB IC xB","1028":"p"},L:{"1028":"E"},M:{"1028":"E"},N:{"132":"A B"},O:{"1028":"yB"},P:{"132":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1028":"9B"},R:{"1028":"ID"},S:{"1028":"KD","2564":"JD"}},B:4,C:"DOMMatrix",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"132":"C K L H M N O","1028":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","1028":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2564":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","3076":"WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB"},D:{"16":"4 I J E","132":"5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB","388":"F","1028":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"16":"I RC 9B","132":"4 J E F G A SC TC UC VC AC","1028":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","1028":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"16":"9B fC MC","132":"F gC hC iC jC kC lC mC nC","1028":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"132":"I 4C MC 5C 6C","292":"2B 1C 2C 3C","1028":"D"},J:{"16":"E","132":"A"},K:{"2":"A B C xB LC yB","1028":"p"},L:{"1028":"D"},M:{"1028":"D"},N:{"132":"A B"},O:{"1028":"zB"},P:{"132":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1028":"BC"},R:{"1028":"JD"},S:{"1028":"LD","2564":"KD"}},B:4,C:"DOMMatrix",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js index 1124b112f598a7..38fea12b135805 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Download attribute",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Download attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js index 70379310b49656..901fa801c73f10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"K F G H KC","772":"A B"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","8":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","8":"H B YC ZC aC bC wB IC cC"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","1025":"E"},J:{"2":"F A"},K:{"1":"xB","8":"A B C wB IC","1025":"p"},L:{"1025":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"1025":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:1,C:"Drag and Drop",D:true}; +module.exports={A:{A:{"644":"J E F G NC","772":"A B"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","8":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","8":"G B aC bC cC dC xB LC eC"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","1025":"D"},J:{"2":"E A"},K:{"1":"yB","8":"A B C xB LC","1025":"p"},L:{"1025":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1025":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:1,C:"Drag and Drop",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js index 73c1459c1fa618..904018053656d0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M"},C:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Element.closest()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L"},C:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Element.closest()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js index 00a2abb9beec17..a3057758680f2b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","16":"LC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","16":"H YC ZC aC bC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"C p xB","16":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"document.elementFromPoint()",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","16":"OC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","16":"G aC bC cC dC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"C p yB","16":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"document.elementFromPoint()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js index 36f8d6dbe2ab80..dd739e85e593e1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","132":"A B C L 8B wB xB 9B"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB YC ZC aC bC wB IC cC xB"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC","132":"kC lC mC nC oC pC qC rC sC tC uC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","132":"A B C K AC xB yB BC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB aC bC cC dC xB LC eC yB"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC","132":"mC nC oC pC qC rC sC tC uC vC wC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js index 8450cf51ea85cb..3e7796d5733746 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","164":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC"},D:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB","132":"HB IB JB KB LB MB NB"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC","164":"F G H A B SC TC 8B wB"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n YC ZC aC bC wB IC cC xB","132":"5 6 7 8 9 o AB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Encrypted Media Extensions",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","164":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC"},D:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB","132":"IB JB KB LB MB NB OB"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC","164":"E F G A B UC VC AC xB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n aC bC cC dC xB LC eC yB","132":"6 7 8 9 o AB BB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Encrypted Media Extensions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js index 442f278e4bb071..c8493df57d1494 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","2":"KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"EOT - Embedded OpenType fonts",D:true}; +module.exports={A:{A:{"1":"J E F G A B","2":"NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"EOT - Embedded OpenType fonts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js index 145675fee8ed60..cc7060951965c8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F KC","260":"H","1026":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","4":"LC 0B NC OC","132":"3 4 J K F G H A B C L M I N D O m"},D:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"3 J K F G H A B C L M I N D O","132":"4 m n o"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","4":"H B C YC ZC aC bC wB IC cC","132":"xB"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"7B dC JC eC"},H:{"132":"yC"},I:{"1":"E 3C 4C","4":"0B zC 0C 1C","132":"2C JC","900":"J"},J:{"1":"A","4":"F"},K:{"1":"p","4":"A B C wB IC","132":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ECMAScript 5",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E NC","260":"G","1026":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"OC 2B PC QC","132":"4 5 I J E F G A B C K L H M N O m"},D:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"4 I J E F G A B C K L H M N O","132":"5 m n o"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","4":"G B C aC bC cC dC xB LC eC","132":"yB"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","4":"9B fC MC gC"},H:{"132":"0C"},I:{"1":"D 5C 6C","4":"2B 1C 2C 3C","132":"4C MC","900":"I"},J:{"1":"A","4":"E"},K:{"1":"p","4":"A B C xB LC","132":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ECMAScript 5",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js index 9a7a6636366bbc..e69dce68781247 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","132":"OB PB QB RB SB TB UB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB YC ZC aC bC wB IC cC xB","132":"BB CB DB EB FB GB HB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ES6 classes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","132":"PB QB RB SB TB UB VB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB aC bC cC dC xB LC eC yB","132":"CB DB EB FB GB HB IB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ES6 classes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js index 93e4a9c6f094da..375b58b9e52b99 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ES6 Generators",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ES6 Generators",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js index 813b51c3fbcd50..67a97a5ed05594 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB NC OC","194":"kB"},D:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"JavaScript modules: dynamic import()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB PC QC","194":"lB"},D:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"JavaScript modules: dynamic import()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js index 0a5f0b21543489..a5aec57c26a669 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","2049":"N D O","2242":"I"},C:{"1":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB NC OC","322":"aB bB cB dB eB 1B"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","194":"fB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC","1540":"8B"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB YC ZC aC bC wB IC cC xB","194":"TB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC","1540":"lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"JavaScript modules via script tag",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","2049":"M N O","2242":"H"},C:{"1":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB PC QC","322":"bB cB dB eB fB 3B"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","194":"gB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC","1540":"AC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB aC bC cC dC xB LC eC yB","194":"UB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC","1540":"nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"JavaScript modules via script tag",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js index 8bb463f6eec602..440f951d1c42e7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I NC OC","132":"4 5 6 N D O m n o","260":"7 8 9 AB BB CB","516":"DB"},D:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D O","1028":"4 5 6 7 8 9 m n o AB BB CB DB EB FB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","1028":"4 I N D O m"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C","1028":"2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ES6 Number",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H PC QC","132":"5 6 7 M N O m n o","260":"8 9 AB BB CB DB","516":"EB"},D:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N O","1028":"5 6 7 8 9 m n o AB BB CB DB EB FB GB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","1028":"5 H M N O m"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C","1028":"4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ES6 Number",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js index edb30e472e9fe5..59fc93c809beb6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"String.prototype.includes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"String.prototype.includes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js index 2a2f67e2f81a78..ea5233797ebea8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","388":"B"},B:{"257":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M","769":"I N D O"},C:{"2":"3 LC 0B J NC OC","4":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","257":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 J K F G H A B C L M I N D O m","4":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","257":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC","4":"G H SC TC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","4":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB","257":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC","4":"G gC hC iC jC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","4":"3C 4C","257":"E"},J:{"2":"F","4":"A"},K:{"2":"A B C wB IC xB","257":"p"},L:{"257":"E"},M:{"257":"E"},N:{"2":"A","388":"B"},O:{"257":"yB"},P:{"4":"J","257":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"257":"9B"},R:{"257":"ID"},S:{"4":"JD","257":"KD"}},B:6,C:"ECMAScript 2015 (ES6)",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","388":"B"},B:{"257":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L","769":"H M N O"},C:{"2":"4 OC 2B I PC QC","4":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","257":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 I J E F G A B C K L H M N O m","4":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","257":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC","4":"F G UC VC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","4":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","257":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","4":"F iC jC kC lC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","4":"5C 6C","257":"D"},J:{"2":"E","4":"A"},K:{"2":"A B C xB LC yB","257":"p"},L:{"257":"D"},M:{"257":"D"},N:{"2":"A","388":"B"},O:{"257":"zB"},P:{"4":"I","257":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"257":"BC"},R:{"257":"JD"},S:{"4":"KD","257":"LD"}},B:6,C:"ECMAScript 2015 (ES6)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js index 57e94c3d431e51..b37bcd73b8eb45 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","4":"H YC ZC aC bC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"C p wB IC xB","4":"A B"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Server-sent events",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","4":"G aC bC cC dC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"C p xB LC yB","4":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Server-sent events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js index 862776d0e923b1..501b951750b40c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js index 00d6c23322e44b..0bbba71afdd0f1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"P Q R S T U V W","2":"C L M I N D O","1025":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p NC OC","260":"0 1 2 rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"rB sB tB uB vB P Q R S T U V W","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","132":"fB 2B gB hB iB jB kB lB mB nB oB pB qB p","1025":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B PC 7B QC RC SC TC 8B","772":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB p rB","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB YC ZC aC bC wB IC cC xB","132":"TB UB VB WB XB YB ZB aB bB cB dB eB fB","1025":"sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC","772":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","1025":"p"},L:{"1025":"E"},M:{"260":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C","132":"8C 9C 8B"},Q:{"132":"9B"},R:{"1025":"ID"},S:{"2":"JD","260":"KD"}},B:7,C:"Feature Policy",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"P Q R S T U V W","2":"C K L H M N O","1025":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p PC QC","260":"0 1 2 3 sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"sB tB uB vB wB P Q R S T U V W","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","132":"gB 4B hB iB jB kB lB mB nB oB pB qB rB p","1025":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B RC 9B SC TC UC VC AC","772":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"hB iB jB kB lB mB nB oB pB qB rB p sB","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB aC bC cC dC xB LC eC yB","132":"UB VB WB XB YB ZB aB bB cB dB eB fB gB","1025":"tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC","772":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","1025":"p"},L:{"1025":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C","132":"AD BD AC"},Q:{"132":"BC"},R:{"1025":"JD"},S:{"2":"KD","260":"LD"}},B:7,C:"Feature Policy",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js index b4d1dc14a18a47..f63272e0dffa89 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB NC OC","1025":"LB","1218":"GB HB IB JB KB"},D:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB","260":"MB","772":"NB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 H B C I N D O m n o YC ZC aC bC wB IC cC xB","260":"9","772":"AB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Fetch",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB PC QC","1025":"MB","1218":"HB IB JB KB LB"},D:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","260":"NB","772":"OB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o aC bC cC dC xB LC eC yB","260":"AB","772":"BB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Fetch",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js index 7829a1a58be91c..e9f69aed5fade4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"KC","132":"G H","388":"K F A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","16":"4 N D O"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","16":"H YC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"388":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A","260":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"disabled attribute of the fieldset element",D:true}; +module.exports={A:{A:{"16":"NC","132":"F G","388":"J E A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","16":"5 M N O"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","16":"G aC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"388":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A","260":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"disabled attribute of the fieldset element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js index 9c714690504cc5..72accf178a1045 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","260":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D O"},C:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","260":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o OC"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J","260":"4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB","388":"K F G H A B C"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","260":"K F G H RC SC TC","388":"QC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B YC ZC aC bC","260":"4 5 6 C I N D O m n o wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","260":"G fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E 4C","2":"zC 0C 1C","260":"3C","388":"0B J 2C JC"},J:{"260":"A","388":"F"},K:{"1":"p","2":"A B","260":"C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A","260":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"File API",D:true}; +module.exports={A:{A:{"2":"J E F G NC","260":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N O"},C:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","260":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB QC"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I","260":"5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","388":"J E F G A B C"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","260":"J E F G TC UC VC","388":"SC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B aC bC cC dC","260":"5 6 7 C H M N O m n o xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","260":"F hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D 6C","2":"1C 2C 3C","260":"5C","388":"2B I 4C MC"},J:{"260":"A","388":"E"},K:{"1":"p","2":"A B","260":"C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","260":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"File API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js index 1c33785602fd60..46a93eefab0c91 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H B YC ZC aC bC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"C p wB IC xB","2":"A B"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"FileReader API",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G B aC bC cC dC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"C p xB LC yB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"FileReader API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js index 5533d201df1718..70e887eca59c3a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H YC ZC","16":"B aC bC wB IC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"C p IC xB","2":"A","16":"B wB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"FileReaderSync",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G aC bC","16":"B cC dC xB LC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"C p LC yB","2":"A","16":"B xB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"FileReaderSync",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js index 51ada534b5352f..76c98e65ad97d7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 J K F","33":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","36":"G H A B C"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","33":"A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"2":"J","33":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"33":"ID"},S:{"2":"JD KD"}},B:7,C:"Filesystem & FileWriter API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 I J E","33":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","36":"F G A B C"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","33":"A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"2":"I","33":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"33":"JD"},S:{"2":"KD LD"}},B:7,C:"Filesystem & FileWriter API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js index a12463f46414cc..cd3bf3145eb1ae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB NC OC"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","16":"QB RB SB","388":"TB UB VB WB XB YB ZB aB bB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","516":"B C wB xB"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"zC 0C 1C","16":"0B J 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p xB","16":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","129":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"FLAC audio format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB PC QC"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","16":"RB SB TB","388":"UB VB WB XB YB ZB aB bB cB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","516":"B C xB yB"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"1C 2C 3C","16":"2B I 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p yB","16":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","129":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"FLAC audio format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js index 2f63e2349252cd..d268816f343eeb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC"},D:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S"},E:{"1":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B"},F:{"1":"oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB YC ZC aC bC wB IC cC xB"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"gap property for Flexbox",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC"},D:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S"},E:{"1":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC"},F:{"1":"pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB aC bC cC dC xB LC eC yB"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"gap property for Flexbox",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js index 9e5e5e8872be2c..0e5abfcdae2b7c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","1028":"B","1316":"A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","164":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","516":"5 6 7 8 9 o"},D:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"5 6 7 8 9 n o AB","164":"3 4 J K F G H A B C L M I N D O m"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"F G RC SC","164":"3 J K PC 7B QC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC","33":"I N"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"G gC hC","164":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"E 3C 4C","164":"0B J zC 0C 1C 2C JC"},J:{"1":"A","164":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","292":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS Flexible Box Layout Module",D:true}; +module.exports={A:{A:{"2":"J E F G NC","1028":"B","1316":"A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","164":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","516":"6 7 8 9 o AB"},D:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"6 7 8 9 n o AB BB","164":"4 5 I J E F G A B C K L H M N O m"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"E F TC UC","164":"4 I J RC 9B SC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC","33":"H M"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F iC jC","164":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"D 5C 6C","164":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","164":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","292":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS Flexible Box Layout Module",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js index 0c842a7bd16c37..56bc62f2f642b8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC"},D:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"display: flow-root",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC"},D:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"display: flow-root",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js index ac48a889a6c186..a66295a91b5f7e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","2":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H YC ZC aC bC","16":"B wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"zC 0C 1C","16":"0B"},J:{"1":"F A"},K:{"1":"C p xB","2":"A","16":"B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"focusin & focusout events",D:true}; +module.exports={A:{A:{"1":"J E F G A B","2":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G aC bC cC dC","16":"B xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"1C 2C 3C","16":"2B"},J:{"1":"E A"},K:{"1":"C p yB","2":"A","16":"B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"focusin & focusout events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js index da5d29b17e57c1..ef321b5a5b45b0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB NC OC","132":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","260":"ZB aB bB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC","16":"H","132":"A TC 8B"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC","132":"iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"132":"JD KD"}},B:5,C:"system-ui value for font-family",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB PC QC","132":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","260":"aB bB cB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC","16":"G","132":"A VC AC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC","132":"kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"132":"KD LD"}},B:5,C:"system-ui value for font-family",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js index ec2a3f254e2eeb..a0a7c49ce3b39a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB","164":"3 J K F G H A B C L M"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","33":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","292":"4 N D O m"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"F G H PC 7B RC SC","4":"3 J K QC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G gC hC iC","4":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","33":"3C 4C"},J:{"2":"F","33":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS font-feature-settings",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB","164":"4 I J E F G A B C K L"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","33":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","292":"5 M N O m"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"E F G RC 9B TC UC","4":"4 I J SC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F iC jC kC","4":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","33":"5C 6C"},J:{"2":"E","33":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS font-feature-settings",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js index 4f0d9bb036fb7d..a028a159f36d3d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 LC 0B J K F G H A B C L M I N D O m n o NC OC","194":"6 7 8 9 AB BB CB DB EB FB"},D:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB","33":"BB CB DB EB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC","33":"F G H SC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I YC ZC aC bC wB IC cC xB","33":"4 N D O"},G:{"1":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","33":"G hC iC jC kC lC mC nC"},H:{"2":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC","33":"3C"},J:{"2":"F","33":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 font-kerning",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 OC 2B I J E F G A B C K L H M N O m n o PC QC","194":"7 8 9 AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB","33":"CB DB EB FB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC","33":"E F G UC"},F:{"1":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H aC bC cC dC xB LC eC yB","33":"5 M N O"},G:{"1":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","33":"F jC kC lC mC nC oC pC"},H:{"2":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC","33":"5C"},J:{"2":"E","33":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 font-kerning",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js index 3fc1dfe081d61d..a60ba262594296 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB NC OC","194":"HB IB JB KB LB MB"},D:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS Font Loading",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB PC QC","194":"IB JB KB LB MB NB"},D:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS Font Loading",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js index f79071b43b1b70..cadd3f596883ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","194":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","194":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"194":"9B"},R:{"2":"ID"},S:{"1":"KD","2":"JD"}},B:2,C:"CSS font-size-adjust",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","194":"D","962":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},C:{"1":"6B 7B 8B","2":"OC","516":"0 1 2 3 b c d e f g h i j k l q r s t u v w x y z D","772":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"8B","962":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B"},E:{"1":"1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC","772":"HC IC JC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB","194":"l","962":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC","772":"HC IC JC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"194":"BC"},R:{"2":"JD"},S:{"2":"KD","516":"LD"}},B:2,C:"CSS font-size-adjust",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js index 92c008fa3d50b2..5fc4e703fcbb36 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","676":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC","804":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"J","676":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"PC 7B","676":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","676":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"804":"JD KD"}},B:7,C:"CSS font-smooth",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","676":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC","804":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"RC 9B","676":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","676":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"804":"KD LD"}},B:7,C:"CSS font-smooth",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js index bb2805d2fae595..221885cade9c35 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","4":"H A B"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","4":"C L M I N"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC","194":"IB JB KB LB MB NB OB PB"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","4":"4 I N D O m n o"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","4":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","4":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"4":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","4":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Font unicode-range subsetting",D:true}; +module.exports={A:{A:{"2":"J E F NC","4":"G A B"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","4":"C K L H M"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC","194":"JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","4":"5 H M N O m n o"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","4":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","4":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","4":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","4":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Font unicode-range subsetting",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js index 0f20e3565bba80..d61de408edbe69 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","130":"A B"},B:{"1":"0 1 2 y z E","130":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","130":"3 4 5 J K F G H A B C L M I N D O m n o","322":"6 7 8 9 AB BB CB DB EB FB"},D:{"1":"0 1 2 y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","130":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"F G H PC 7B RC SC","130":"3 J K QC"},F:{"1":"h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","130":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B gC hC iC","130":"dC JC eC fC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","130":"3C 4C"},J:{"2":"F","130":"A"},K:{"2":"A B C wB IC xB","130":"p"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"130":"yB"},P:{"1":"o","130":"J m n 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"130":"9B"},R:{"130":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS font-variant-alternates",D:true}; +module.exports={A:{A:{"2":"J E F G NC","130":"A B"},B:{"1":"0 1 2 3 y z D","130":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","130":"4 5 6 I J E F G A B C K L H M N O m n o","322":"7 8 9 AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","130":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"E F G RC 9B TC UC","130":"4 I J SC"},F:{"1":"h i j k l","2":"G B C aC bC cC dC xB LC eC yB","130":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B iC jC kC","130":"fC MC gC hC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","130":"5C 6C"},J:{"2":"E","130":"A"},K:{"2":"A B C xB LC yB","130":"p"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"zB"},P:{"1":"o","130":"I m n 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"130":"BC"},R:{"130":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS font-variant-alternates",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js index dbedfaa2640e4b..7c6acdbb5d0209 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB NC OC"},D:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB YC ZC aC bC wB IC cC xB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","16":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS font-variant-numeric",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB PC QC"},D:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB aC bC cC dC xB LC eC yB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","16":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS font-variant-numeric",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js index 785375b729f483..34340d253aef18 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","132":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","2":"H YC"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","260":"7B dC"},H:{"2":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"zC","4":"0B 0C 1C"},J:{"1":"A","4":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"@font-face Web fonts",D:true}; +module.exports={A:{A:{"1":"G A B","132":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","2":"G aC"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","260":"9B fC"},H:{"2":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"1C","4":"2B 2C 3C"},J:{"1":"A","4":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"@font-face Web fonts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js index 995f52bffb93fb..c495b7f7291d12 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Form attribute",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Form attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js index 49c736db53516c..3c3b94636aa4ff 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC","16":"ZC aC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"zC 0C 1C","16":"0B"},J:{"1":"A","2":"F"},K:{"1":"B C p wB IC xB","16":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Attributes for form submission",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC","16":"bC cC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"1C 2C 3C","16":"2B"},J:{"1":"A","2":"E"},K:{"1":"B C p xB LC yB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Attributes for form submission",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js index 4f150cd1991dc5..5a8c0a52726208 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","132":"3 K F G H A QC RC SC TC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","2":"H YC"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B","132":"G dC JC eC fC gC hC iC jC kC"},H:{"516":"yC"},I:{"1":"E 4C","2":"0B zC 0C 1C","132":"J 2C JC 3C"},J:{"1":"A","132":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"260":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","132":"JD"}},B:1,C:"Form validation",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","132":"4 J E F G A SC TC UC VC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","2":"G aC"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B","132":"F fC MC gC hC iC jC kC lC mC"},H:{"516":"0C"},I:{"1":"D 6C","2":"2B 1C 2C 3C","132":"I 4C MC 5C"},J:{"1":"A","132":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","132":"KD"}},B:1,C:"Form validation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js index 1b84fe028a6eed..64f5438558c064 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","4":"A B","8":"K F G H"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","4":"C L M I"},C:{"4":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"LC 0B NC OC"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"4":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"PC 7B"},F:{"1":"H B C YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","4":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"7B","4":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","4":"3C 4C"},J:{"2":"F","4":"A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"4":"E"},N:{"4":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","4":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"4":"JD KD"}},B:1,C:"HTML5 form features",D:false}; +module.exports={A:{A:{"2":"NC","4":"A B","8":"J E F G"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","4":"C K L H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"OC 2B PC QC"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"4":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"RC 9B"},F:{"1":"G B C ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","4":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},G:{"2":"9B","4":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","4":"5C 6C"},J:{"2":"E","4":"A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","4":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"4":"KD LD"}},B:1,C:"HTML5 form features",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js index 8bdeaab2514f9d..0a77d778e27419 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","548":"B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","516":"C L M I N D O"},C:{"1":"0 1 2 iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC","676":"4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","1700":"TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB"},D:{"1":"0 1 2 pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M","676":"4 I N D O","804":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB"},E:{"1":"D FC GC HC XC","2":"3 J PC 7B","548":"BC yB WC zB CC DC EC","676":"QC","804":"K F G H A B C L M I RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC","804":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC","2052":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","292":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A","548":"B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","804":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Full Screen API",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","548":"B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","516":"C K L H M N O"},C:{"1":"0 1 2 3 jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC","676":"5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","1700":"UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB"},D:{"1":"0 1 2 3 qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L","676":"5 H M N O","804":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I RC 9B","548":"DC zB YC 0B EC FC GC","676":"SC","804":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC","804":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC","2052":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","292":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","548":"B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","804":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Full Screen API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js index e9ada9ef4f518e..e20b4a302cab00 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m","33":"5 6 n o"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"Gamepad API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m","33":"6 7 n o"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"Gamepad API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js index 51a1dfac92653e..b0128901144999 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F G"},B:{"1":"C L M I N D O","129":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB NC OC","8":"LC 0B","129":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","4":"J","129":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"J PC 7B","129":"A"},F:{"1":"4 5 6 7 8 9 B C N D O m n o AB BB CB DB EB FB GB HB IB JB KB bC wB IC cC xB","2":"H I YC","8":"ZC aC","129":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"G 7B dC JC eC fC gC hC iC jC","129":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J zC 0C 1C 2C JC 3C 4C","129":"E"},J:{"1":"F A"},K:{"1":"B C wB IC xB","8":"A","129":"p"},L:{"129":"E"},M:{"129":"E"},N:{"1":"A B"},O:{"129":"yB"},P:{"1":"J","129":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"129":"9B"},R:{"129":"ID"},S:{"1":"JD","129":"KD"}},B:2,C:"Geolocation",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E F"},B:{"1":"C K L H M N O","129":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB PC QC","8":"OC 2B","129":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","4":"I","129":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"I RC 9B","129":"A"},F:{"1":"5 6 7 8 9 B C M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB dC xB LC eC yB","2":"G H aC","8":"bC cC","129":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"F 9B fC MC gC hC iC jC kC lC","129":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I 1C 2C 3C 4C MC 5C 6C","129":"D"},J:{"1":"E A"},K:{"1":"B C xB LC yB","8":"A","129":"p"},L:{"129":"D"},M:{"129":"D"},N:{"1":"A B"},O:{"129":"zB"},P:{"1":"I","129":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"129":"BC"},R:{"129":"JD"},S:{"1":"KD","129":"LD"}},B:2,C:"Geolocation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js index 2a325b88f8e253..b899c158117b36 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"K F KC","2049":"H A B","2692":"G"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2049":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","260":"3 J K F G H A B","1156":"0B","1284":"NC","1796":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","16":"H YC","132":"ZC aC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","132":"A"},L:{"1":"E"},M:{"1":"E"},N:{"2049":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Element.getBoundingClientRect()",D:true}; +module.exports={A:{A:{"644":"J E NC","2049":"G A B","2692":"F"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2049":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","260":"4 I J E F G A B","1156":"2B","1284":"PC","1796":"QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","16":"G aC","132":"bC cC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2049":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Element.getBoundingClientRect()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js index 317c276b8fa039..6371194307ca63 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","132":"0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","260":"3 J K F G H A"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","260":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","260":"H YC ZC aC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","260":"7B dC JC"},H:{"260":"yC"},I:{"1":"J E 2C JC 3C 4C","260":"0B zC 0C 1C"},J:{"1":"A","260":"F"},K:{"1":"B C p wB IC xB","260":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"getComputedStyle",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","132":"2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","260":"4 I J E F G A"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","260":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","260":"G aC bC cC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","260":"9B fC MC"},H:{"260":"0C"},I:{"1":"I D 4C MC 5C 6C","260":"2B 1C 2C 3C"},J:{"1":"A","260":"E"},K:{"1":"B C p xB LC yB","260":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"getComputedStyle",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js index a77cbb1bcf0f5b..7cb7a9046c43e8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","8":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"getElementsByClassName",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","8":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"getElementsByClassName",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js index c93042a69ed1a2..f43f0674af6e8f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","33":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A","33":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"crypto.getRandomValues()",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","33":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","33":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"crypto.getRandomValues()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js index 0f9be9455bd7ba..d5860cf79d8850 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"eB 1B fB 2B gB hB iB jB kB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"Gyroscope",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"fB 3B gB 4B hB iB jB kB lB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"Gyroscope",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js index df4f21e3945a2f..5a916c7ad6c497 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB"},E:{"2":"3 J K F PC 7B QC RC SC","129":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","194":"G H A TC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC eC fC gC","129":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","194":"G hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"navigator.hardwareConcurrency",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"2":"4 I J E RC 9B SC TC UC","129":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","194":"F G A VC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC gC hC iC","129":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","194":"F jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"navigator.hardwareConcurrency",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js index e762bde3965108..16947d4e256916 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","8":"K F KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","8":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","8":"H YC ZC aC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"0B J E 0C 1C 2C JC 3C 4C","2":"zC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","8":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Hashchange event",D:true}; +module.exports={A:{A:{"1":"F G A B","8":"J E NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","8":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","8":"G aC bC cC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"2B I D 2C 3C 4C MC 5C 6C","2":"1C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Hashchange event",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js index 853eb7d3c91a88..a4f338bdc67f39 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"D XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","130":"B C L M I wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D","2":"G 7B dC JC eC fC gC hC iC jC kC lC HC","130":"mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"HEIF/HEIC image format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","130":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC JC","130":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"HEIF/HEIC image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js index 4da89c410842bc..171afe8d460761 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"132":"C L M I N D O","1028":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","2052":"0 1 2 u v w x y z E 4B 5B 6B"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","516":"B C wB xB"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c YC ZC aC bC wB IC cC xB","2052":"d e f g h i j k l"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","2052":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","258":"p"},L:{"2052":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"n o","2":"J","258":"m 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"HEVC/H.265 video format",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"132":"C K L H M N O","1028":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t","2052":"0 1 2 3 u v w x y z D 6B 7B 8B"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","516":"B C xB yB"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c aC bC cC dC xB LC eC yB","2052":"d e f g h i j k l"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","2052":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","258":"p"},L:{"2052":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"n o","2":"I","258":"m 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"HEVC/H.265 video format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js index aeb80024a2a158..22e428768248f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H B YC ZC aC bC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"0B zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"C p wB IC xB","2":"A B"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"hidden attribute",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G B aC bC cC dC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"2B 1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"C p xB LC yB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"hidden attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js index 0a21db5724299e..94e7c84da87364 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","2":"3 LC 0B J K F G H A B C L M NC OC","129":"bB cB dB","769":"eB 1B","1281":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O","33":"5 m n o"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"High Resolution Time API",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","2":"4 OC 2B I J E F G A B C K L PC QC","129":"cB dB eB","769":"fB 3B","1281":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O","33":"6 m n o"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"High Resolution Time API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js index 9ad3fe56bc9a18..39167dff776462 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","4":"3 QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l IC cC xB","2":"H B YC ZC aC bC wB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC","4":"JC"},H:{"2":"yC"},I:{"1":"E 0C 1C JC 3C 4C","2":"0B J zC 2C"},J:{"1":"F A"},K:{"1":"C p wB IC xB","2":"A B"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Session history management",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","4":"4 SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l LC eC yB","2":"G B aC bC cC dC xB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC","4":"MC"},H:{"2":"0C"},I:{"1":"D 2C 3C MC 5C 6C","2":"2B I 1C 4C"},J:{"1":"E A"},K:{"1":"C p xB LC yB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Session history management",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js index fa8cf17096e6b4..eb1eb408b2da9c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC eC","129":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC","257":"0C 1C"},J:{"1":"A","16":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"516":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"16":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:2,C:"HTML Media Capture",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC gC","129":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C","257":"2C 3C"},J:{"1":"A","16":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"516":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"16":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:2,C:"HTML Media Capture",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js index f5d2066121052f..4da9eee8de1958 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G","260":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","132":"0B NC OC","260":"3 4 J K F G H A B C L M I N D O m"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 J","260":"4 5 6 7 K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"J PC 7B","260":"3 K QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","132":"H B YC ZC aC bC","260":"C wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"7B","260":"dC JC eC fC"},H:{"132":"yC"},I:{"1":"E 3C 4C","132":"zC","260":"0B J 0C 1C 2C JC"},J:{"260":"F A"},K:{"1":"p","132":"A","260":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"260":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"HTML5 semantic elements",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F","260":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","132":"2B PC QC","260":"4 5 I J E F G A B C K L H M N O m"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 I","260":"5 6 7 8 J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"I RC 9B","260":"4 J SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","132":"G B aC bC cC dC","260":"C xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"9B","260":"fC MC gC hC"},H:{"132":"0C"},I:{"1":"D 5C 6C","132":"1C","260":"2B I 2C 3C 4C MC"},J:{"260":"E A"},K:{"1":"p","132":"A","260":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"HTML5 semantic elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js index 2a51fab73c06ae..c8b5e35c9c2d81 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"HTTP Live Streaming (HLS)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"HTTP Live Streaming (HLS)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js index 240bb35ec48751..a311adb1141420 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"C L M I N D O","513":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC","513":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"NB OB PB QB RB SB TB UB VB WB","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","513":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC","260":"H A TC 8B"},F:{"1":"AB BB CB DB EB FB GB HB IB JB","2":"4 5 6 7 8 9 H B C I N D O m n o YC ZC aC bC wB IC cC xB","513":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","513":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","513":"p"},L:{"513":"E"},M:{"513":"E"},N:{"2":"A B"},O:{"513":"yB"},P:{"1":"J","513":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"513":"9B"},R:{"513":"ID"},S:{"1":"JD","513":"KD"}},B:6,C:"HTTP/2 protocol",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"C K L H M N O","513":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC","513":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"OB PB QB RB SB TB UB VB WB XB","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","513":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC","260":"G A VC AC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB","2":"5 6 7 8 9 G B C H M N O m n o AB aC bC cC dC xB LC eC yB","513":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","513":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","513":"p"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"513":"zB"},P:{"1":"I","513":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"513":"BC"},R:{"513":"JD"},S:{"1":"KD","513":"LD"}},B:6,C:"HTTP/2 protocol",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js index 3d52738fe89d9a..9f2897bc236113 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","322":"P Q R S T","578":"U V"},C:{"1":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB NC OC","194":"qB p rB sB tB uB vB P Q R 3B S T U V W"},D:{"1":"0 1 2 W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB","322":"P Q R S T","578":"U V"},E:{"2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB 9B","2052":"D FC GC HC XC","2116":"zB CC DC EC","3140":"M I UC VC AC BC yB WC"},F:{"1":"rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB YC ZC aC bC wB IC cC xB","578":"p"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC","2052":"D FC GC HC","2116":"uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"HTTP/3 protocol",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","322":"P Q R S T","578":"U V"},C:{"1":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB PC QC","194":"rB p sB tB uB vB wB P Q R 5B S T U V W"},D:{"1":"0 1 2 3 W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB","322":"P Q R S T","578":"U V"},E:{"2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB BC","2052":"HC IC JC 1B KC ZC","2116":"0B EC FC GC","3140":"L H WC XC CC DC zB YC"},F:{"1":"sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB aC bC cC dC xB LC eC yB","578":"p"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC","2052":"HC IC JC 1B KC","2116":"wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"HTTP/3 protocol",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js index df8c922210f985..0f202ba2814e2f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N NC OC","4":"4 5 6 7 8 9 D O m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC"},H:{"2":"yC"},I:{"1":"0B J E 0C 1C 2C JC 3C 4C","2":"zC"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"sandbox attribute for iframes",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M PC QC","4":"5 6 7 8 9 N O m n o AB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC"},H:{"2":"0C"},I:{"1":"2B I D 2C 3C 4C MC 5C 6C","2":"1C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"sandbox attribute for iframes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js index 85c55868478c2f..7cb6f1594b3745 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 9 J K F G H A B C L M I N D O AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","66":"5 6 7 8 m n o"},E:{"2":"3 J K G H A B C L M I D PC 7B QC RC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","130":"F SC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","130":"gC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"seamless attribute for iframes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 I J E F G A B C K L H M N O AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","66":"6 7 8 9 m n o"},E:{"2":"4 I J F G A B C K L H RC 9B SC TC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","130":"E UC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","130":"iC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"seamless attribute for iframes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js index fd95873ff93207..e809eaf02e49aa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N D O"},C:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC","8":"3 4 5 6 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L","8":"4 M I N D O"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B","8":"3 J QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B YC ZC aC bC","8":"C wB IC cC xB"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B","8":"dC JC eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","8":"0B J zC 0C 1C 2C JC"},J:{"1":"A","8":"F"},K:{"1":"p","2":"A B","8":"C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"srcdoc attribute for iframes",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M N O"},C:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC","8":"4 5 6 7 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K","8":"5 L H M N O"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","8":"4 I SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B aC bC cC dC","8":"C xB LC eC yB"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B","8":"fC MC gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","8":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","8":"E"},K:{"1":"p","2":"A B","8":"C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"srcdoc attribute for iframes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js index 1023bc124060b4..649cecfcf4bd36 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB NC OC","194":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","322":"ZB aB bB cB dB eB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB YC ZC aC bC wB IC cC xB","322":"MB NB OB PB QB RB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"194":"JD KD"}},B:5,C:"ImageCapture API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB PC QC","194":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","322":"aB bB cB dB eB fB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB aC bC cC dC xB LC eC yB","322":"NB OB PB QB RB SB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"194":"KD LD"}},B:5,C:"ImageCapture API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js index bd698cf8b204e6..1110a07656ff54 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","161":"B"},B:{"2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","161":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A","161":"B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Input Method Editor API",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","161":"B"},B:{"2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","161":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A","161":"B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Input Method Editor API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js index 4a95f9cabea838..012bcd5133bd41 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"naturalWidth & naturalHeight image properties",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"naturalWidth & naturalHeight image properties",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js index 4b4a321d18b6bd..e150dd13034f5c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","194":"P Q R S T U V W X"},C:{"1":"0 1 2 v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k NC OC","322":"l q r s t u"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p","194":"rB sB tB uB vB P Q R S T U V W X"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB","194":"gB hB iB jB kB lB mB nB oB pB qB p rB sB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Import maps",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","194":"P Q R S T U V W X"},C:{"1":"0 1 2 3 v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k PC QC","322":"l q r s t u"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p","194":"sB tB uB vB wB P Q R S T U V W X"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB","194":"hB iB jB kB lB mB nB oB pB qB rB p sB tB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Import maps",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js index 79e9908af4e769..7fae237e4a7d57 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","8":"A B"},B:{"1":"P","2":"0 1 2 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB NC OC","8":"0 1 2 CB DB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","72":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","66":"CB DB EB FB GB","72":"HB"},E:{"2":"3 J PC 7B QC","8":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"H B C I N lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","66":"4 D O m n","72":"o"},G:{"2":"7B dC JC eC fC","8":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"8":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J 5C 6C 7C 8C 9C 8B AD BD","2":"m n o CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"1":"JD","8":"KD"}},B:5,C:"HTML Imports",D:true}; +module.exports={A:{A:{"2":"J E F G NC","8":"A B"},B:{"1":"P","2":"0 1 2 3 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB PC QC","8":"0 1 2 3 DB EB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","72":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","66":"DB EB FB GB HB","72":"IB"},E:{"2":"4 I RC 9B SC","8":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","2":"G B C H M mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","66":"5 N O m n","72":"o"},G:{"2":"9B fC MC gC hC","8":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I 7C 8C 9C AD BD AC CD DD","2":"m n o ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"1":"KD","8":"LD"}},B:5,C:"HTML Imports",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js index 99c58a1228f0d8..9e7cc7b2295f13 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B","16":"NC"},D:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"indeterminate checkbox",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B","16":"PC"},D:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"indeterminate checkbox",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js index f81efcde834409..0efba2ffc98f00 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"A B C L M I","36":"3 J K F G H"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"A","8":"3 J K F G H","33":"5","36":"4 B C L M I N D O m n o"},E:{"1":"A B C L M I D 8B wB xB 9B VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J K F PC 7B QC RC","260":"G H SC TC","516":"UC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC","8":"B C aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC eC fC gC","260":"G hC iC jC","516":"vC"},H:{"2":"yC"},I:{"1":"E 3C 4C","8":"0B J zC 0C 1C 2C JC"},J:{"1":"A","8":"F"},K:{"1":"p","2":"A","8":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"IndexedDB",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"A B C K L H","36":"4 I J E F G"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"A","8":"4 I J E F G","33":"6","36":"5 B C K L H M N O m n o"},E:{"1":"A B C K L H AC xB yB BC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I J E RC 9B SC TC","260":"F G UC VC","516":"WC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC","8":"B C cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC gC hC iC","260":"F jC kC lC","516":"xC"},H:{"2":"0C"},I:{"1":"D 5C 6C","8":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","8":"E"},K:{"1":"p","2":"A","8":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"IndexedDB",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js index 9da73d96cf5b55..47f33d564a3fb7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB NC OC","132":"QB RB SB","260":"TB UB VB WB"},D:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","132":"UB VB WB XB","260":"YB ZB aB bB cB dB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB","132":"HB IB JB KB","260":"LB MB NB OB PB QB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC","16":"kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","260":"5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","260":"JD"}},B:2,C:"IndexedDB 2.0",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB PC QC","132":"RB SB TB","260":"UB VB WB XB"},D:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","132":"VB WB XB YB","260":"ZB aB bB cB dB eB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB","132":"IB JB KB LB","260":"MB NB OB PB QB RB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC","16":"mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","260":"7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","260":"KD"}},B:2,C:"IndexedDB 2.0",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js index 959f6dd1ef9392..5b578cef915f2e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","4":"KC","132":"K F"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","36":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS inline-block",D:true}; +module.exports={A:{A:{"1":"F G A B","4":"NC","132":"J E"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","36":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS inline-block",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js index fee42c2ea63f01..a8fdc10d424624 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"HTMLElement.innerText",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"HTMLElement.innerText",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js index 00cdd965a4b23d..a1dfc271e196d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A KC","132":"B"},B:{"132":"C L M I N D O","260":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB NC OC","516":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"4 5 6 7 8 D O m n o","2":"3 J K F G H A B C L M I N","132":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB","260":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K QC RC","2":"3 J PC 7B","2052":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC","1025":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1025":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2052":"A B"},O:{"1025":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"260":"9B"},R:{"1":"ID"},S:{"516":"JD KD"}},B:1,C:"autocomplete attribute: on & off values",D:true}; +module.exports={A:{A:{"1":"J E F G A NC","132":"B"},B:{"132":"C K L H M N O","260":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB PC QC","516":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"5 6 7 8 9 N O m n o","2":"4 I J E F G A B C K L H M","132":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB","260":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J SC TC","2":"4 I RC 9B","2052":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC","1025":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1025":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2052":"A B"},O:{"1025":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"260":"BC"},R:{"1":"JD"},S:{"516":"KD LD"}},B:1,C:"autocomplete attribute: on & off values",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js index ca66c600ffe986..269781539bad94 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB"},F:{"1":"4 5 6 7 8 9 B C D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H I N YC ZC aC bC"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC","129":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"Color input type",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB"},F:{"1":"5 6 7 8 9 B C N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G H M aC bC cC dC"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC","129":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"Color input type",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js index 86c76da8064bc6..fe8c232a434c5c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC","1090":"ZB aB bB cB","2052":"dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b","4100":"0 1 2 c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O","2052":"5 6 m n o"},E:{"2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B","4100":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC","260":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B zC 0C 1C","514":"J 2C JC"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"4100":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2052":"JD KD"}},B:1,C:"Date and time input types",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC","1090":"aB bB cB dB","2052":"eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b","4100":"0 1 2 3 c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O","2052":"6 7 m n o"},E:{"2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC","4100":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC","260":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B 1C 2C 3C","514":"I 4C MC"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"4100":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2052":"KD LD"}},B:1,C:"Date and time input types",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js index 879fd4c37e3eca..00e087a1b56b8e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","132":"zC 0C 1C"},J:{"1":"A","132":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Email, telephone & URL input types",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","132":"1C 2C 3C"},J:{"1":"A","132":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Email, telephone & URL input types",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js index beae2f638dbe9a..8ee51e6e3d019f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","2561":"A B","2692":"H"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2561":"C L M I N D O"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC","1537":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB OC","1796":"0B NC"},D:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M","1025":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB","1537":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J K PC 7B","1025":"F G H A B C RC SC TC 8B wB","1537":"QC","4097":"L xB"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","16":"H B C YC ZC aC bC wB IC","260":"cC","1025":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","1537":"4 I N D O m n"},G:{"1":"D rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC","1025":"G hC iC jC kC lC mC nC oC","1537":"eC fC gC","4097":"pC qC"},H:{"2":"yC"},I:{"16":"zC 0C","1025":"E 4C","1537":"0B J 1C 2C JC 3C"},J:{"1025":"A","1537":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2561":"A B"},O:{"1":"yB"},P:{"1025":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","1537":"JD"}},B:1,C:"input event",D:true}; +module.exports={A:{A:{"2":"J E F NC","2561":"A B","2692":"G"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2561":"C K L H M N O"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC","1537":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB QC","1796":"2B PC"},D:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L","1025":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB","1537":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I J RC 9B","1025":"E F G A B C TC UC VC AC xB","1537":"SC","4097":"K yB"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","16":"G B C aC bC cC dC xB LC","260":"eC","1025":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","1537":"5 H M N O m n"},G:{"1":"tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","1025":"F jC kC lC mC nC oC pC qC","1537":"gC hC iC","4097":"rC sC"},H:{"2":"0C"},I:{"16":"1C 2C","1025":"D 6C","1537":"2B I 3C 4C MC 5C"},J:{"1025":"A","1537":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2561":"A B"},O:{"1":"zB"},P:{"1025":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","1537":"KD"}},B:1,C:"input event",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js index 34a770757ce993..4a1d7e2038545d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J","16":"3 5 6 7 K F G n o","132":"4 H A B C L M I N D O m"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","132":"K F G H A B RC SC TC 8B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"fC gC","132":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","514":"7B dC JC eC"},H:{"2":"yC"},I:{"2":"zC 0C 1C","260":"0B J 2C JC","514":"E 3C 4C"},J:{"132":"A","260":"F"},K:{"2":"A B C wB IC xB","514":"p"},L:{"260":"E"},M:{"2":"E"},N:{"514":"A","1028":"B"},O:{"2":"yB"},P:{"260":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"260":"9B"},R:{"260":"ID"},S:{"1":"JD KD"}},B:1,C:"accept attribute for file input",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I","16":"4 6 7 8 J E F n o","132":"5 G A B C K L H M N O m"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","132":"J E F G A B TC UC VC AC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"hC iC","132":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","514":"9B fC MC gC"},H:{"2":"0C"},I:{"2":"1C 2C 3C","260":"2B I 4C MC","514":"D 5C 6C"},J:{"132":"A","260":"E"},K:{"2":"A B C xB LC yB","514":"p"},L:{"260":"D"},M:{"2":"D"},N:{"514":"A","1028":"B"},O:{"2":"zB"},P:{"260":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"260":"BC"},R:{"260":"JD"},S:{"1":"KD LD"}},B:1,C:"accept attribute for file input",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js index fe3958a9141c25..3ca8d483b54bb2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Directory selection from file input",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Directory selection from file input",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js index ee31944eefb3a3..a1a7212ab32a16 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC ZC aC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"130":"yC"},I:{"130":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"130":"A B C p wB IC xB"},L:{"132":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"130":"yB"},P:{"130":"J","132":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"132":"9B"},R:{"132":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"Multiple file selection",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC bC cC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"130":"0C"},I:{"130":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"130":"A B C p xB LC yB"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"zB"},P:{"130":"I","132":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"132":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"Multiple file selection",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js index 061c1c1bd6d98b..e31f63d429c122 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N NC OC","4":"4 D O m","194":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d"},D:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","66":"cB dB eB 1B fB 2B gB hB iB jB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB YC ZC aC bC wB IC cC xB","66":"PB QB RB SB TB UB VB WB XB YB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"194":"JD KD"}},B:1,C:"inputmode attribute",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M PC QC","4":"5 N O m","194":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d"},D:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","66":"dB eB fB 3B gB 4B hB iB jB kB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB aC bC cC dC xB LC eC yB","66":"QB RB SB TB UB VB WB XB YB ZB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"194":"KD LD"}},B:1,C:"inputmode attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js index 81b1f3de1f66ae..2e23feee2db216 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB NC OC"},D:{"1":"0 1 2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"Minimum length attribute for input fields",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB PC QC"},D:{"1":"0 1 2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"Minimum length attribute for input fields",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js index 1796d1b9fb414c..3ffc38b9033295 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","129":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L","1025":"M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","513":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"388":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B zC 0C 1C","388":"J E 2C JC 3C 4C"},J:{"2":"F","388":"A"},K:{"1":"A B C wB IC xB","388":"p"},L:{"388":"E"},M:{"641":"E"},N:{"388":"A B"},O:{"388":"yB"},P:{"388":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"388":"9B"},R:{"388":"ID"},S:{"513":"JD KD"}},B:1,C:"Number input type",D:true}; +module.exports={A:{A:{"2":"J E F G NC","129":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K","1025":"L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","513":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"388":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B 1C 2C 3C","388":"I D 4C MC 5C 6C"},J:{"2":"E","388":"A"},K:{"1":"A B C xB LC yB","388":"p"},L:{"388":"D"},M:{"641":"D"},N:{"388":"A B"},O:{"388":"zB"},P:{"388":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"388":"BC"},R:{"388":"JD"},S:{"513":"KD LD"}},B:1,C:"Number input type",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js index 79a48da56bcfdb..14a876bfad7295 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3","388":"K F G H A QC RC SC TC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC","388":"G eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC 3C"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Pattern attribute for input fields",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4","388":"J E F G A SC TC UC VC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","388":"F gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC 5C"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Pattern attribute for input fields",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js index 6c1c4d1c3125eb..937832869b8898 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l IC cC xB","2":"H YC ZC aC bC","132":"B wB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B E zC 0C 1C JC 3C 4C","4":"J 2C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"input placeholder attribute",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l LC eC yB","2":"G aC bC cC dC","132":"B xB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B D 1C 2C 3C MC 5C 6C","4":"I 4C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"input placeholder attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js index 4014dd22d4f392..f7a79d93d6dd81 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"E JC 3C 4C","4":"0B J zC 0C 1C 2C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Range input type",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"D MC 5C 6C","4":"2B I 1C 2C 3C 4C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Range input type",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js index 83c875b8be004e..65bd6393c00e4d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","129":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M I N D O"},C:{"2":"LC 0B NC OC","129":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 5 6 7 J K F G H A B C L M n o","129":"4 I N D O m"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H YC ZC aC bC","16":"B wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"129":"yC"},I:{"1":"E 3C 4C","16":"zC 0C","129":"0B J 1C 2C JC"},J:{"1":"F","129":"A"},K:{"1":"C p","2":"A","16":"B wB IC","129":"xB"},L:{"1":"E"},M:{"129":"E"},N:{"129":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"129":"JD KD"}},B:1,C:"Search input type",D:true}; +module.exports={A:{A:{"2":"J E F G NC","129":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L H M N O"},C:{"2":"OC 2B PC QC","129":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 6 7 8 I J E F G A B C K L n o","129":"5 H M N O m"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G aC bC cC dC","16":"B xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"129":"0C"},I:{"1":"D 5C 6C","16":"1C 2C","129":"2B I 3C 4C MC"},J:{"1":"E","129":"A"},K:{"1":"C p","2":"A","16":"B xB LC","129":"yB"},L:{"1":"D"},M:{"129":"D"},N:{"129":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"129":"KD LD"}},B:1,C:"Search input type",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js index 10fbbab6509e19..7651654e223d30 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","16":"H YC ZC aC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Selection controls for input & textarea",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","16":"G aC bC cC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Selection controls for input & textarea",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js index c4ecf8dec1b9cf..f9dc4f8a1e8a63 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js index 6c18813c4a01f7..7fb291a40a43cc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"KC","132":"K F G H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","16":"H YC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Element.insertAdjacentHTML()",D:true}; +module.exports={A:{A:{"1":"A B","16":"NC","132":"J E F G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","16":"G aC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Element.insertAdjacentHTML()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js index efb894dabc8698..2e993ebd22db18 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 J K F G H A B C L M I N D O m n o"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"Internationalization API",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 I J E F G A B C K L H M N O m n o"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"Internationalization API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js index d7ba7e0766e886..63e2c208ebb09d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"IntersectionObserver V2",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"IntersectionObserver V2",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js index 2ade2ea6d45755..c4582944da4aec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"N D O","2":"C L M","260":"I","513":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC","194":"YB ZB aB"},D:{"1":"eB 1B fB 2B gB hB iB","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","260":"XB YB ZB aB bB cB dB","513":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB YC ZC aC bC wB IC cC xB","260":"KB LB MB NB OB PB QB","513":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","513":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","513":"p"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","260":"5C 6C"},Q:{"513":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"IntersectionObserver",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"M N O","2":"C K L","260":"H","513":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC","194":"ZB aB bB"},D:{"1":"fB 3B gB 4B hB iB jB","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","260":"YB ZB aB bB cB dB eB","513":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB aC bC cC dC xB LC eC yB","260":"LB MB NB OB PB QB RB","513":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","513":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","513":"p"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","260":"7C 8C"},Q:{"513":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"IntersectionObserver",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js index 5398a600574d11..5458bdfb68f240 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D","130":"O"},C:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB NC OC"},D:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"Intl.PluralRules API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N","130":"O"},C:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB PC QC"},D:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"Intl.PluralRules API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js index 3ed8ea7f55e2e4..977964a0e45172 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","1025":"0 1 2 d e f g h i j k l q r s t u v w x y z E","1537":"P Q R S T U V W X Y Z a b c"},C:{"2":"LC","932":"3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB NC OC","2308":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 J K F G H A B C L M I N D O m n","545":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","1025":"0 1 2 d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","1537":"SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","516":"B C L M I wB xB 9B UC VC AC BC yB WC","548":"H A TC 8B","676":"F G RC SC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","513":"GB","545":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB","1025":"e f g h i j k l","1537":"FB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d"},G:{"1":"D zB CC DC EC FC GC HC","2":"7B dC JC eC fC","516":"uC vC wC AC BC yB xC","548":"iC jC kC lC mC nC oC pC qC rC sC tC","676":"G gC hC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","545":"3C 4C","1025":"E"},J:{"2":"F","545":"A"},K:{"2":"A B C wB IC xB","1025":"p"},L:{"1025":"E"},M:{"2308":"E"},N:{"2":"A B"},O:{"1537":"yB"},P:{"545":"J","1025":"m n o FD GD HD","1537":"5C 6C 7C 8C 9C 8B AD BD CD DD ED zB"},Q:{"1537":"9B"},R:{"1537":"ID"},S:{"932":"JD","2308":"KD"}},B:5,C:"Intrinsic & Extrinsic Sizing",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","1025":"0 1 2 3 d e f g h i j k l q r s t u v w x y z D","1537":"P Q R S T U V W X Y Z a b c"},C:{"2":"OC","932":"4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB PC QC","2308":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 I J E F G A B C K L H M N O m n","545":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","1025":"0 1 2 3 d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","1537":"TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","516":"B C K L H xB yB BC WC XC CC DC zB YC","548":"G A VC AC","676":"E F TC UC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","513":"HB","545":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB","1025":"e f g h i j k l","1537":"GB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","516":"wC xC yC CC DC zB zC","548":"kC lC mC nC oC pC qC rC sC tC uC vC","676":"F iC jC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","545":"5C 6C","1025":"D"},J:{"2":"E","545":"A"},K:{"2":"A B C xB LC yB","1025":"p"},L:{"1025":"D"},M:{"2308":"D"},N:{"2":"A B"},O:{"1537":"zB"},P:{"545":"I","1025":"m n o 1B HD ID","1537":"7C 8C 9C AD BD AC CD DD ED FD GD 0B"},Q:{"1537":"BC"},R:{"1537":"JD"},S:{"932":"KD","2308":"LD"}},B:5,C:"Intrinsic & Extrinsic Sizing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js index 6f8b16f4dce33a..593f161820f8ae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","129":"3 QC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"JPEG 2000 image format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","129":"4 SC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"JPEG 2000 image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js index 00ff8d7e2c1cfa..f00c60aa9a24ac 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z x y z E","578":"a b c d e f g h i j k l q r s t u v w"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y NC OC","322":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z x y z E 4B 5B 6B","194":"a b c d e f g h i j k l q r s t u v w"},E:{"1":"D XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB YC ZC aC bC wB IC cC xB","194":"uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"JPEG XL image format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z x y z D","578":"a b c d e f g h i j k l q r s t u v w"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y PC QC","322":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z x y z D 6B 7B 8B","194":"a b c d e f g h i j k l q r s t u v w"},E:{"1":"1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB aC bC cC dC xB LC eC yB","194":"vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"JPEG XL image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js index da8263d9abba8a..fa3d4d9ac9c6f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"JPEG XR image format",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"JPEG XR image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js index 5c1aa4a793a90e..9d89b6fa79382a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB NC OC"},D:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB YC ZC aC bC wB IC cC xB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"Lookbehind in JS regular expressions",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB PC QC"},D:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB aC bC cC dC xB LC eC yB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"Lookbehind in JS regular expressions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js index 456329d3a3c1d5..d43c5d0d9d1cc2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F KC","129":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"JSON parsing",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E NC","129":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"JSON parsing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js index 382728309f5090..207408d4561699 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I","132":"N D O"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC"},D:{"1":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","132":"dB eB 1B"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC","132":"8B"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB","132":"QB RB SB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC","132":"lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C","132":"7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","132":"JD"}},B:5,C:"CSS justify-content: space-evenly",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H","132":"M N O"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC"},D:{"1":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","132":"eB fB 3B"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC","132":"AC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB","132":"RB SB TB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC","132":"nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C","132":"9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","132":"KD"}},B:5,C:"CSS justify-content: space-evenly",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js index b1ac9185f85194..e3a3e08d18e8a5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"zC 0C 1C","132":"0B J 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"High-quality kerning pairs & ligatures",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"1C 2C 3C","132":"2B I 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"High-quality kerning pairs & ligatures",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js index 190669d408e521..6d941fea1ba8b6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","16":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC","16":"C"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p xB","2":"A B wB IC","16":"C"},L:{"1":"E"},M:{"130":"E"},N:{"130":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"KeyboardEvent.charCode",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","16":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC","16":"C"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p yB","2":"A B xB LC","16":"C"},L:{"1":"D"},M:{"130":"D"},N:{"130":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"KeyboardEvent.charCode",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js index 16f8fcf5e82a2d..b6d0c925810f22 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC"},D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","194":"OB PB QB RB SB TB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB YC ZC aC bC wB IC cC xB","194":"BB CB DB EB FB GB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"194":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J","194":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"194":"ID"},S:{"1":"JD KD"}},B:5,C:"KeyboardEvent.code",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC"},D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","194":"PB QB RB SB TB UB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB aC bC cC dC xB LC eC yB","194":"CB DB EB FB GB HB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"194":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I","194":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"194":"JD"},S:{"1":"KD LD"}},B:5,C:"KeyboardEvent.code",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js index e43cfb99cd7f0f..03c24994fbe263 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B I N YC ZC aC bC wB IC cC","16":"C"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p xB","2":"A B wB IC","16":"C"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"KeyboardEvent.getModifierState()",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B H M aC bC cC dC xB LC eC","16":"C"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p yB","2":"A B xB LC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"KeyboardEvent.getModifierState()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js index 3d15ed117bf422..55960b1d912be4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","260":"H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D O"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n o NC OC","132":"5 6 7 8 9 AB"},D:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"4 5 6 7 8 9 H B I N D O m n o AB BB CB DB EB FB GB HB IB JB YC ZC aC bC wB IC cC","16":"C"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"1":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p xB","2":"A B wB IC","16":"C"},L:{"1":"E"},M:{"1":"E"},N:{"260":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"KeyboardEvent.key",D:true}; +module.exports={A:{A:{"2":"J E F NC","260":"G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N O"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n o PC QC","132":"6 7 8 9 AB BB"},D:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"5 6 7 8 9 G B H M N O m n o AB BB CB DB EB FB GB HB IB JB KB aC bC cC dC xB LC eC","16":"C"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"1":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p yB","2":"A B xB LC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"KeyboardEvent.key",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js index 0eca61fe7a86b6..c57bb155ae086d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"K PC 7B","132":"3 J QC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC","16":"C","132":"I N"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC","132":"eC fC gC"},H:{"2":"yC"},I:{"1":"E 3C 4C","16":"zC 0C","132":"0B J 1C 2C JC"},J:{"132":"F A"},K:{"1":"p xB","2":"A B wB IC","16":"C"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"KeyboardEvent.location",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"J RC 9B","132":"4 I SC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC","16":"C","132":"H M"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","132":"gC hC iC"},H:{"2":"0C"},I:{"1":"D 5C 6C","16":"1C 2C","132":"2B I 3C 4C MC"},J:{"132":"E A"},K:{"1":"p yB","2":"A B xB LC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"KeyboardEvent.location",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js index 7b9929c01b7881..c3af4f47bf9cd4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","16":"3"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","16":"H YC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC","16":"zC 0C","132":"3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"132":"E"},M:{"132":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"2":"J","132":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"132":"ID"},S:{"1":"JD KD"}},B:7,C:"KeyboardEvent.which",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","16":"4"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","16":"G aC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC","16":"1C 2C","132":"5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"132":"D"},M:{"132":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"2":"I","132":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"132":"JD"},S:{"1":"KD LD"}},B:7,C:"KeyboardEvent.which",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js index f484813b182a7c..c758d88bdf08aa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"1":"B","2":"A"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Resource Hints: Lazyload",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Resource Hints: Lazyload",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js index 8d5ed4bacfa845..2838d195fe5c7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","2052":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","194":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D O","322":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","516":"NB OB PB QB RB SB TB UB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","1028":"A 8B"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","322":"4 5 6 7 8 9 I N D O m n o","516":"AB BB CB DB EB FB GB HB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC","1028":"kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","516":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"let",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","2052":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","194":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N O","322":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","516":"OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","1028":"A AC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","322":"5 6 7 8 9 H M N O m n o AB","516":"BB CB DB EB FB GB HB IB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC","1028":"mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","516":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"let",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js index 4dcff588a038ae..eda4b34ea56f11 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","130":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC"},H:{"130":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F","130":"A"},K:{"1":"p","130":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"130":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"PNG favicons",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","130":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC"},H:{"130":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E","130":"A"},K:{"1":"p","130":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"130":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"PNG favicons",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js index d71c3e1c0f3491..a053c82361dad2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P","1537":"0 1 2 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"LC 0B NC OC","260":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","513":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","1537":"0 1 2 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB aB bB cB dB eB fB gB hB iB jB kB YC ZC aC bC wB IC cC xB","1537":"lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"D oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","130":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC"},H:{"130":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","130":"A"},K:{"130":"A B C wB IC xB","1537":"p"},L:{"1537":"E"},M:{"2":"E"},N:{"130":"A B"},O:{"2":"yB"},P:{"2":"J 5C 6C 7C 8C 9C 8B AD BD","1537":"m n o CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"1537":"ID"},S:{"513":"JD KD"}},B:1,C:"SVG favicons",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P","1537":"0 1 2 3 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"OC 2B PC QC","260":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","513":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","1537":"0 1 2 3 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB bB cB dB eB fB gB hB iB jB kB lB aC bC cC dC xB LC eC yB","1537":"mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","130":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC"},H:{"130":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","130":"A"},K:{"130":"A B C xB LC yB","1537":"p"},L:{"1537":"D"},M:{"2":"D"},N:{"130":"A B"},O:{"2":"zB"},P:{"2":"I 7C 8C 9C AD BD AC CD DD","1537":"m n o ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"1537":"JD"},S:{"513":"KD LD"}},B:1,C:"SVG favicons",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js index 459e95ac12225d..073eb13a25ca19 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G KC","132":"H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"LC 0B","260":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"16":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"16":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","16":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Resource Hints: dns-prefetch",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F NC","132":"G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"OC 2B","260":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"16":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"16":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","16":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Resource Hints: dns-prefetch",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js index 7054738ecd7f07..df6dba0b728ea0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"2 E 4B 5B 6B MC","2":"0 1 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z NC OC"},D:{"1":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB"},E:{"1":"D XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB YC ZC aC bC wB IC cC xB"},G:{"1":"D","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:1,C:"Resource Hints: modulepreload",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"2 3 D 6B 7B 8B","2":"0 1 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z PC QC"},D:{"1":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB"},E:{"1":"1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aC bC cC dC xB LC eC yB"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:1,C:"Resource Hints: modulepreload",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js index 22df1834ba7fcd..422b0882569491 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","260":"I N D O"},C:{"1":"2 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB NC OC","129":"LB","514":"0 1 pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},D:{"1":"0 1 2 SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Resource Hints: preconnect",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","260":"H M N O"},C:{"1":"2 3 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB PC QC","129":"MB","514":"0 1 qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},D:{"1":"0 1 2 3 TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Resource Hints: preconnect",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js index 28e01842bd5873..ad2cd8d3291ac7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB","194":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC","194":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"J E 3C 4C","2":"0B zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Resource Hints: prefetch",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB","194":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","194":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"I D 5C 6C","2":"2B 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Resource Hints: prefetch",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js index 3c52c77f49a031..13af3b97543a07 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N","1028":"D O"},C:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB NC OC","132":"cB","578":"dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T"},D:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","322":"B"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC","322":"mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"Resource Hints: preload",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M","1028":"N O"},C:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB PC QC","132":"dB","578":"eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T"},D:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","322":"B"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC","322":"oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"Resource Hints: preload",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js index f6160c5b3e1841..ed9ba6700f0dfb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"Resource Hints: prerender",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"Resource Hints: prerender",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js index 526e16424a9ce9..842fd4b294004a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB NC OC","132":"0 1 2 sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB","66":"sB tB"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB","322":"M I 9B UC VC AC","580":"BC yB WC zB CC DC EC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB","66":"gB hB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC","322":"tC uC vC wC AC","580":"BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"132":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD","132":"KD"}},B:1,C:"Lazy loading via attribute for images & iframes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB PC QC","132":"0 1 2 3 tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB","66":"tB uB"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB","322":"L H BC WC XC CC","580":"DC zB YC 0B EC FC GC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB","66":"hB iB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","322":"vC wC xC yC CC","580":"DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD","132":"LD"}},B:1,C:"Lazy loading via attribute for images & iframes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js index 40fc234c84facb..836f8853fc0866 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"KC","132":"K F G H A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 J K F G H A B C L M I N D O m n o"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H B C YC ZC aC bC wB IC cC","132":"xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"G 7B dC JC eC fC gC hC iC jC"},H:{"132":"yC"},I:{"1":"E 3C 4C","132":"0B J zC 0C 1C 2C JC"},J:{"132":"F A"},K:{"1":"p","16":"A B C wB IC","132":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","132":"A"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","132":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","4":"JD"}},B:6,C:"localeCompare()",D:true}; +module.exports={A:{A:{"1":"B","16":"NC","132":"J E F G A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 I J E F G A B C K L H M N O m n o"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G B C aC bC cC dC xB LC eC","132":"yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"F 9B fC MC gC hC iC jC kC lC"},H:{"132":"0C"},I:{"1":"D 5C 6C","132":"2B I 1C 2C 3C 4C MC"},J:{"132":"E A"},K:{"1":"p","16":"A B C xB LC","132":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","132":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","4":"KD"}},B:6,C:"localeCompare()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js index 6ee2662c0e1aba..c8c0298b4fecae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"eB 1B fB 2B gB hB iB jB kB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"194":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"Magnetometer",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"fB 3B gB 4B hB iB jB kB lB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"Magnetometer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js index c06495dc16cf08..4d6e7b7deb4819 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","36":"H A B"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","36":"C L M"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC","36":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB OC"},D:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","36":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","36":"3 K F QC RC"},F:{"1":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B YC ZC aC bC wB","36":"4 C I N D O m IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B","36":"dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E","2":"zC","36":"0B J 0C 1C 2C JC 3C 4C"},J:{"36":"F A"},K:{"1":"p","2":"A B","36":"C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"36":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","36":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"matches() DOM method",D:true}; +module.exports={A:{A:{"2":"J E F NC","36":"G A B"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","36":"C K L"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC","36":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB QC"},D:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","36":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","36":"4 J E SC TC"},F:{"1":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B aC bC cC dC xB","36":"5 C H M N O m LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B","36":"fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D","2":"1C","36":"2B I 2C 3C 4C MC 5C 6C"},J:{"36":"E A"},K:{"1":"p","2":"A B","36":"C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","36":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"matches() DOM method",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js index 107e5790603d12..8355da20950e14 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"matchMedia",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"matchMedia",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js index 49124a458d8f18..05424c47a4bad4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"H A B KC","8":"K F G"},B:{"2":"C L M I N D O","8":"P Q R S T U V W X Y Z a b c d e f","584":"g h i j k l q r s t u v","1025":"0 1 2 w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","129":"LC 0B NC OC"},D:{"1":"6","8":"3 4 5 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f","584":"g h i j k l q r s t u v","1025":"0 1 2 w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","260":"3 J K F G H PC 7B QC RC SC TC"},F:{"2":"H","8":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B","584":"S T U V W X Y Z a b c d","1025":"e f g h i j k l","2052":"B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC"},H:{"8":"yC"},I:{"8":"0B J zC 0C 1C 2C JC 3C 4C","1025":"E"},J:{"1":"A","8":"F"},K:{"8":"A B C p wB IC xB"},L:{"1025":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"8":"yB"},P:{"1":"n o","8":"J m 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"8":"9B"},R:{"8":"ID"},S:{"1":"JD KD"}},B:2,C:"MathML",D:true}; +module.exports={A:{A:{"2":"G A B NC","8":"J E F"},B:{"2":"C K L H M N O","8":"P Q R S T U V W X Y Z a b c d e f","584":"g h i j k l q r s t u v","1025":"0 1 2 3 w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","129":"OC 2B PC QC"},D:{"1":"7","8":"4 5 6 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f","584":"g h i j k l q r s t u v","1025":"0 1 2 3 w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","260":"4 I J E F G RC 9B SC TC UC VC"},F:{"2":"G","8":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B","584":"S T U V W X Y Z a b c d","1025":"e f g h i j k l","2052":"B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC"},H:{"8":"0C"},I:{"8":"2B I 1C 2C 3C 4C MC 5C 6C","1025":"D"},J:{"1":"A","8":"E"},K:{"8":"A B C p xB LC yB"},L:{"1025":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"8":"zB"},P:{"1":"n o","8":"I m 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"8":"BC"},R:{"8":"JD"},S:{"1":"KD LD"}},B:2,C:"MathML",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js index 3304dc132ade67..7b37accb796e3a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"KC","900":"K F G H"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","1025":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","900":"LC 0B NC OC","1025":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 PC","900":"J 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H","132":"B C YC ZC aC bC wB IC cC xB"},G:{"1":"D dC JC eC fC gC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B","2052":"G hC"},H:{"132":"yC"},I:{"1":"0B J 1C 2C JC 3C 4C","16":"zC 0C","4097":"E"},J:{"1":"F A"},K:{"132":"A B C wB IC xB","4097":"p"},L:{"4097":"E"},M:{"4097":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"4097":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1025":"JD KD"}},B:1,C:"maxlength attribute for input and textarea elements",D:true}; +module.exports={A:{A:{"1":"A B","16":"NC","900":"J E F G"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","1025":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","900":"OC 2B PC QC","1025":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 RC","900":"I 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G","132":"B C aC bC cC dC xB LC eC yB"},G:{"1":"fC MC gC hC iC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B","2052":"F jC"},H:{"132":"0C"},I:{"1":"2B I 3C 4C MC 5C 6C","16":"1C 2C","4097":"D"},J:{"1":"E A"},K:{"132":"A B C xB LC yB","4097":"p"},L:{"4097":"D"},M:{"4097":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"4097":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1025":"KD LD"}},B:1,C:"maxlength attribute for input and textarea elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js index eb5a6614b0bc9a..f61fe46a24722c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB","33":"EB FB GB HB IB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"C L M I N D O"},C:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC"},M:{"1":"E"},A:{"2":"K F G H A KC","33":"B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N D O YC ZC aC bC wB IC cC xB","33":"4 5 m n o"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC XC"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","33":"3C 4C"}},B:6,C:"CSS ::backdrop pseudo-element",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB","33":"FB GB HB IB JB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"C K L H M N O"},C:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC"},M:{"1":"D"},A:{"2":"J E F G A NC","33":"B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M N O aC bC cC dC xB LC eC yB","33":"5 6 m n o"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC ZC"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","33":"5C 6C"}},B:6,C:"CSS ::backdrop pseudo-element",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js index f607f82e5d61a1..8ad16255718c61 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N NC OC","33":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J K PC 7B QC RC XC","33":"F G H A SC TC 8B"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC","33":"G gC hC iC jC kC lC"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"isolate-override from unicode-bidi",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M PC QC","33":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I J RC 9B SC TC ZC","33":"E F G A UC VC AC"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","33":"F iC jC kC lC mC nC"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"isolate-override from unicode-bidi",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js index 112367945b33c2..350289ae58a6bb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","33":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC","33":"4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J PC 7B QC XC","33":"K F G H A RC SC TC 8B"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G fC gC hC iC jC kC lC"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"isolate from unicode-bidi",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","33":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC","33":"5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I RC 9B SC ZC","33":"J E F G A TC UC VC AC"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F hC iC jC kC lC mC nC"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"isolate from unicode-bidi",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js index df685fed0df324..e1fd6d6958891e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC","33":"4 5 6 7 8 9 A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J PC 7B QC XC","33":"K F G H A RC SC TC 8B"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"G fC gC hC iC jC kC lC"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"plaintext from unicode-bidi",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC","33":"5 6 7 8 9 A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I RC 9B SC ZC","33":"J E F G A TC UC VC AC"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"F hC iC jC kC lC mC nC"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"plaintext from unicode-bidi",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js index b4824f27574e98..7654a8633f2451 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","33":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J K F PC 7B QC RC SC XC","33":"G H A B C TC 8B wB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","33":"G hC iC jC kC lC mC nC oC"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"text-decoration-color property",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","33":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I J E RC 9B SC TC UC ZC","33":"F G A B C VC AC xB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","33":"F jC kC lC mC nC oC pC qC"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"text-decoration-color property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js index 9e00a4dec11ee2..95fe9e21f558cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","33":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J K F PC 7B QC RC SC XC","33":"G H A B C TC 8B wB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","33":"G hC iC jC kC lC mC nC oC"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"text-decoration-line property",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","33":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I J E RC 9B SC TC UC ZC","33":"F G A B C VC AC xB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","33":"F jC kC lC mC nC oC pC qC"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"text-decoration-line property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js index ea27ca40f4a6bc..1f526d7410d8e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"2":"3 J K F PC 7B QC RC SC XC","33":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},G:{"2":"7B dC JC eC fC gC","33":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"text-decoration shorthand property",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"2":"4 I J E RC 9B SC TC UC ZC","33":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC"},G:{"2":"9B fC MC gC hC iC","33":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"text-decoration shorthand property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js index 73303dad0fed59..ecca81c47fc3aa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},L:{"1":"E"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","33":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},M:{"1":"E"},A:{"2":"K F G H A B KC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},K:{"1":"p","2":"A B C wB IC xB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","2":"3 J K F PC 7B QC RC SC XC","33":"G H A B C TC 8B wB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","33":"G hC iC jC kC lC mC nC oC"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"}},B:6,C:"text-decoration-style property",D:undefined}; +module.exports={A:{D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},L:{"1":"D"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","33":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},M:{"1":"D"},A:{"2":"J E F G A B NC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},K:{"1":"p","2":"A B C xB LC yB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC","2":"4 I J E RC 9B SC TC UC ZC","33":"F G A B C VC AC xB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","33":"F jC kC lC mC nC oC pC qC"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"}},B:6,C:"text-decoration-style property",D:undefined}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js index 1bb3def3182f0f..1c05d9a767d7c3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB NC OC","132":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 J K F G H A B C L M I N D","132":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J PC 7B QC","132":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"7B dC JC eC fC gC","132":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","132":"E 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","132":"p"},L:{"132":"E"},M:{"132":"E"},N:{"132":"A B"},O:{"132":"yB"},P:{"2":"J 5C","132":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"132":"9B"},R:{"132":"ID"},S:{"132":"JD KD"}},B:2,C:"Media Fragments",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB PC QC","132":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 I J E F G A B C K L H M N","132":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I RC 9B SC","132":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"9B fC MC gC hC iC","132":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","132":"D 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","132":"p"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"zB"},P:{"2":"I 7C","132":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"132":"JD"},S:{"132":"KD LD"}},B:2,C:"Media Fragments",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js index 5350c7688c16f8..c0744b48593ecd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB NC OC","260":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","324":"XB YB ZB aB bB cB dB eB 1B fB 2B"},E:{"2":"3 J K F G H A PC 7B QC RC SC TC 8B","132":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB","324":"IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"260":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","132":"5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"260":"JD KD"}},B:5,C:"Media Capture from DOM Elements API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB PC QC","260":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","324":"YB ZB aB bB cB dB eB fB 3B gB 4B"},E:{"2":"4 I J E F G A RC 9B SC TC UC VC AC","132":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB","324":"JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","132":"7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"260":"KD LD"}},B:5,C:"Media Capture from DOM Elements API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js index 05d689044071c9..20ef30a52289db 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","194":"TB UB"},E:{"1":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","322":"L M xB 9B"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB YC ZC aC bC wB IC cC xB","194":"GB HB"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC","578":"oC pC qC rC sC tC uC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"MediaRecorder API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","194":"UB VB"},E:{"1":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","322":"K L yB BC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB aC bC cC dC xB LC eC yB","194":"HB IB"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC","578":"qC rC sC tC uC vC wC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"MediaRecorder API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js index 17db512c457902..1824fbb503c08c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC","66":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N","33":"5 6 7 8 9 AB BB CB","66":"4 D O m n o"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC","260":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC 3C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Media Source Extensions",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC","66":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},D:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M","33":"6 7 8 9 AB BB CB DB","66":"5 N O m n o"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC","260":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC 5C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Media Source Extensions",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js index 4ae165bb1dc2bb..60ecd9b3e6fa4b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 LC 0B J K F NC OC","132":"4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T","450":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","66":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","66":"HB IB JB KB LB MB NB OB PB QB RB SB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"450":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Context menu item (menuitem element)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 OC 2B I J E PC QC","132":"5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T","450":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","66":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","66":"IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"450":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Context menu item (menuitem element)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js index a087935d67a46f..72678b832bf462 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB","132":"0 1 2 p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","258":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B UC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"513":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","16":"5C"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:1,C:"theme-color Meta Tag",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB","132":"0 1 2 3 p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","258":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC WC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"513":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","16":"7C"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:1,C:"theme-color Meta Tag",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js index 0faa96c543bc58..4d6decc55c3287 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H YC ZC aC bC"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"meter element",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G aC bC cC dC"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"meter element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js index 46434d6c23b628..c9db8e4988deaa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u NC OC"},D:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"Web MIDI API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u PC QC"},D:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"Web MIDI API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js index b66ad3a0a452ef..4fc346df911720 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","8":"K KC","129":"F","257":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS min/max-width/height",D:true}; +module.exports={A:{A:{"1":"G A B","8":"J NC","129":"E","257":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS min/max-width/height",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js index f043cf8193de2f..74a2231a3ead71 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","132":"3 4 J K F G H A B C L M I N D O m n NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","2":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"MP3 audio format",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","132":"4 5 I J E F G A B C K L H M N O m n PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","2":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"MP3 audio format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js index 2f4245d245365e..127735be826f6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","386":"n o"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","386":"n o"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js index 6e421435d0a55c..98b604ae03ffd0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m NC OC","4":"5 6 7 8 9 n o AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","4":"0B J zC 0C 2C JC","132":"1C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"260":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"MPEG-4/H.264 video format",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m PC QC","4":"6 7 8 9 n o AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","4":"2B I 1C 2C 4C MC","132":"3C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"260":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"MPEG-4/H.264 video format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js index e2df03269c9c9e..33e20082cefd9a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 Multiple backgrounds",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 Multiple backgrounds",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js index 8ea6cc88b5fb00..a13b7307ed86eb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"C L M I N D O","516":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"132":"YB ZB aB bB cB dB eB 1B fB 2B gB hB iB","164":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC","516":"jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a","1028":"0 1 2 b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"420":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","516":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"H TC","164":"F G SC","420":"3 J K PC 7B QC RC"},F:{"1":"C wB IC cC xB","2":"H B YC ZC aC bC","420":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB","516":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"iC jC","164":"G gC hC","420":"7B dC JC eC fC"},H:{"1":"yC"},I:{"420":"0B J zC 0C 1C 2C JC 3C 4C","516":"E"},J:{"420":"F A"},K:{"1":"C wB IC xB","2":"A B","516":"p"},L:{"516":"E"},M:{"1028":"E"},N:{"1":"A B"},O:{"516":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","420":"J"},Q:{"516":"9B"},R:{"516":"ID"},S:{"164":"JD KD"}},B:4,C:"CSS3 Multiple column layout",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"C K L H M N O","516":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"132":"ZB aB bB cB dB eB fB 3B gB 4B hB iB jB","164":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC","516":"kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a","1028":"0 1 2 3 b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"420":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","516":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"G VC","164":"E F UC","420":"4 I J RC 9B SC TC"},F:{"1":"C xB LC eC yB","2":"G B aC bC cC dC","420":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB","516":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"kC lC","164":"F iC jC","420":"9B fC MC gC hC"},H:{"1":"0C"},I:{"420":"2B I 1C 2C 3C 4C MC 5C 6C","516":"D"},J:{"420":"E A"},K:{"1":"C xB LC yB","2":"A B","516":"p"},L:{"516":"D"},M:{"1028":"D"},N:{"1":"A B"},O:{"516":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","420":"I"},Q:{"516":"BC"},R:{"516":"JD"},S:{"164":"KD LD"}},B:4,C:"CSS3 Multiple column layout",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js index a214a90b7f19f4..614a3ee77585f9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","260":"H A B"},B:{"132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D O"},C:{"2":"3 LC 0B J NC OC","260":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"16":"3 J K F G H A B C L M","132":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"16":"PC 7B","132":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"C cC xB","2":"H YC ZC aC bC","16":"B wB IC","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"16":"7B dC","132":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"16":"zC 0C","132":"0B J E 1C 2C JC 3C 4C"},J:{"132":"F A"},K:{"1":"C xB","2":"A","16":"B wB IC","132":"p"},L:{"132":"E"},M:{"260":"E"},N:{"260":"A B"},O:{"132":"yB"},P:{"132":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"132":"9B"},R:{"132":"ID"},S:{"260":"JD KD"}},B:5,C:"Mutation events",D:true}; +module.exports={A:{A:{"2":"J E F NC","260":"G A B"},B:{"132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N O"},C:{"2":"4 OC 2B I PC QC","260":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"16":"4 I J E F G A B C K L","132":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"16":"RC 9B","132":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"C eC yB","2":"G aC bC cC dC","16":"B xB LC","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"16":"9B fC","132":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"16":"1C 2C","132":"2B I D 3C 4C MC 5C 6C"},J:{"132":"E A"},K:{"1":"C yB","2":"A","16":"B xB LC","132":"p"},L:{"132":"D"},M:{"260":"D"},N:{"260":"A B"},O:{"132":"zB"},P:{"132":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"132":"BC"},R:{"132":"JD"},S:{"260":"KD LD"}},B:5,C:"Mutation events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js index 3d4c2678603bd5..f737177f8a1044 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G KC","8":"H A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L NC OC"},D:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D","33":"4 5 6 7 8 O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B zC 0C 1C","8":"J 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","8":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Mutation Observer",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F NC","8":"G A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K PC QC"},D:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N","33":"5 6 7 8 9 O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B 1C 2C 3C","8":"I 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","8":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Mutation Observer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js index 6b1ac76a508fd5..c5303066eacfa9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"KC","8":"K F"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","4":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Web Storage - name/value pairs",D:true}; +module.exports={A:{A:{"1":"F G A B","2":"NC","8":"J E"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","4":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Web Storage - name/value pairs",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js index 3001cdfae7e763..c7809b46224995 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","194":"P Q R S T U","260":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x NC OC","516":"0 1 2 y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p","194":"rB sB tB uB vB P Q R S T U","260":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC","516":"D AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB","194":"gB hB iB jB kB lB mB nB oB pB","260":"qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC","516":"D AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","516":"E"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"516":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"File System Access API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","194":"P Q R S T U","260":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x PC QC","516":"0 1 2 3 y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p","194":"sB tB uB vB wB P Q R S T U","260":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC","516":"CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB","194":"hB iB jB kB lB mB nB oB pB qB","260":"rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC","516":"CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","516":"D"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"516":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"File System Access API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js index 9b12f94060bf61..12f815184954bb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J","33":"K F G H A B C"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC SC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"0B zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Navigation Timing API",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I","33":"J E F G A B C"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC UC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"2B 1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Navigation Timing API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js index 898119bb5e25c4..b49dff44d2c1d7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","1028":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB","1028":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB YC ZC aC bC wB IC cC xB","1028":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"zC 3C 4C","132":"0B J 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","132":"J","516":"5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"KD","260":"JD"}},B:7,C:"Network Information API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","1028":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB","1028":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB aC bC cC dC xB LC eC yB","1028":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"1C 5C 6C","132":"2B I 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","132":"I","516":"7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"LD","260":"KD"}},B:7,C:"Network Information API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js index a45ff5670b632f..92335f45b77158 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC"},D:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J","36":"3 4 K F G H A B C L M I N D O m n"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC","516":"D FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","36":"E 3C 4C"},J:{"1":"A","2":"F"},K:{"2":"A B C wB IC xB","36":"p"},L:{"257":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"36":"J","130":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"130":"ID"},S:{"1":"JD KD"}},B:1,C:"Web Notifications",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC"},D:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I","36":"4 5 J E F G A B C K L H M N O m n"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC","516":"HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","36":"D 5C 6C"},J:{"1":"A","2":"E"},K:{"2":"A B C xB LC yB","36":"p"},L:{"257":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"36":"I","130":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"130":"JD"},S:{"1":"KD LD"}},B:1,C:"Web Notifications",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js index 492ab9548ab39f..e91ef6a9b4f3ec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","16":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Object.entries",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","16":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Object.entries",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js index 0aa42d3686271c..c8e61115927f2d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I","260":"N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC"},D:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC","132":"G H SC TC"},F:{"1":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H I N D O YC ZC aC","33":"B C bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","132":"G hC iC jC"},H:{"33":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC 3C"},J:{"2":"F A"},K:{"1":"p","2":"A","33":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 object-fit/object-position",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H","260":"M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC"},D:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC","132":"F G UC VC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G H M N O aC bC cC","33":"B C dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","132":"F jC kC lC"},H:{"33":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC 5C"},J:{"2":"E A"},K:{"1":"p","2":"A","33":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 object-fit/object-position",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js index 4e9a13ef49265d..5636432fb34c96 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB","2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB","2":"4 H B C I N D O m n o JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"J","2":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Object.observe data binding",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB","2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB","2":"5 G B C H M N O m n o KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"I","2":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Object.observe data binding",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js index f2571e97eff624..4d9c33f10f1c6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","8":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"8":"yC"},I:{"1":"E","8":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"8":"F A"},K:{"1":"p","8":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","8":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Object.values method",D:true}; +module.exports={A:{A:{"8":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","8":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"8":"0C"},I:{"1":"D","8":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"8":"E A"},K:{"1":"p","8":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","8":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Object.values method",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js index bc2e76d52cc0ff..f6db6fb3844720 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"L M I N D O","2":"0 1 2 C P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"Object RTC (ORTC) API for WebRTC",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"K L H M N O","2":"0 1 2 3 C P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"Object RTC (ORTC) API for WebRTC",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js index c3ab625a0b7159..2c59c1ca5c6b5a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"H KC","8":"K F G"},B:{"1":"C L M I N D O P Q R S T","2":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S NC OC","2":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","4":"0B","8":"LC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T","2":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB bC wB IC cC xB","2":"H p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC","8":"ZC aC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J zC 0C 1C 2C JC 3C 4C","2":"E"},J:{"1":"F A"},K:{"1":"B C wB IC xB","2":"A p"},L:{"2":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"1":"JD","2":"KD"}},B:7,C:"Offline web applications",D:true}; +module.exports={A:{A:{"1":"A B","2":"G NC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T","2":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S PC QC","2":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"2B","8":"OC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T","2":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB dC xB LC eC yB","2":"G p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC","8":"bC cC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I 1C 2C 3C 4C MC 5C 6C","2":"D"},J:{"1":"E A"},K:{"1":"B C xB LC yB","2":"A p"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"1":"KD","2":"LD"}},B:7,C:"Offline web applications",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js index d84e2e454a3c5c..f508ac813b59ba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB NC OC","194":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r"},D:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","322":"eB 1B fB 2B gB hB iB jB kB lB mB"},E:{"1":"D XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC","516":"DC EC FC GC HC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB YC ZC aC bC wB IC cC xB","322":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"1":"D","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC","516":"DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"194":"JD KD"}},B:1,C:"OffscreenCanvas",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB PC QC","194":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r"},D:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","322":"fB 3B gB 4B hB iB jB kB lB mB nB"},E:{"1":"1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC","516":"FC GC HC IC JC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB aC bC cC dC xB LC eC yB","322":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB"},G:{"1":"1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC","516":"FC GC HC IC JC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"194":"KD LD"}},B:1,C:"OffscreenCanvas",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js index b7c450a12b2d6b..f013ce5a21dad4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B","132":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"A","2":"F"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Ogg Vorbis audio format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC","132":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"A","2":"E"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Ogg Vorbis audio format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js index a5dfc20b5e587a..f27237548b0b46 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","8":"H A B"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"1":"JD KD"}},B:6,C:"Ogg/Theora video format",D:true}; +module.exports={A:{A:{"2":"J E F NC","8":"G A B"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"1":"KD LD"}},B:6,C:"Ogg/Theora video format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js index 4955f1f2775573..5b26d2207a2440 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D NC OC"},D:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","16":"4 N D O"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","16":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC","16":"C"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Reversed attribute of ordered lists",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N PC QC"},D:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","16":"5 M N O"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","16":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC","16":"C"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Reversed attribute of ordered lists",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js index 2bf203242eab1f..539f0422667e87 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I"},C:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB NC OC"},D:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"\"once\" event listener option",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H"},C:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB PC QC"},D:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"\"once\" event listener option",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js index 4d93e56d4d0e87..55d666aeba3559 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F KC","260":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B","516":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"0 1 2 4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L"},E:{"1":"3 K G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","1025":"F"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC","4":"xB"},G:{"1":"G D JC eC fC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC","1025":"gC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"A","132":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Online/offline status",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E NC","260":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B","516":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"0 1 2 3 5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K"},E:{"1":"4 J F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","1025":"E"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC","4":"yB"},G:{"1":"F MC gC hC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC","1025":"iC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"A","132":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Online/offline status",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js index 74bc59dcbf07f8..fa4980a8db1c97 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB"},E:{"2":"3 J K F G H A PC 7B QC RC SC TC 8B","132":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC","132":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Opus audio format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB"},E:{"2":"4 I J E F G A RC 9B SC TC UC VC AC","132":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC","132":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Opus audio format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js index fd8404645868c6..15bbc967c70e1b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","194":"eB 1B fB 2B gB hB iB jB kB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"Orientation Sensor",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","194":"fB 3B gB 4B hB iB jB kB lB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"Orientation Sensor",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js index d67809cdf858b5..c23391f691e395 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","260":"G","388":"H A B"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","388":"C L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC","129":"xB","260":"H B YC ZC aC bC wB IC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"C p xB","260":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"388":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS outline properties",D:true}; +module.exports={A:{A:{"2":"J E NC","260":"F","388":"G A B"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC","129":"yB","260":"G B aC bC cC dC xB LC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"C p yB","260":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS outline properties",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js index d59f7d56c1c5d9..d2384099a9e921 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC"},D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC"},D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js index 8228cdb370d1ba..20b9e85bd20a2c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"PageTransitionEvent",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"PageTransitionEvent",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js index 84463c4f285652..8da5700ca45880 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC","33":"A B C L M I N D"},D:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L","33":"4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B C YC ZC aC bC wB IC cC","33":"4 I N D O"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","33":"3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Page Visibility",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC","33":"A B C K L H M N"},D:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K","33":"5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC"},F:{"1":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B C aC bC cC dC xB LC eC","33":"5 H M N O"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","33":"5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Page Visibility",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js index d61b19f9401584..18dfaad016741a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"Passive event listeners",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"Passive event listeners",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passkeys.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passkeys.js index f310cb2a68b4cf..dfebe6c8faf794 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passkeys.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passkeys.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u"},E:{"1":"D CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB"},F:{"1":"g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f YC ZC aC bC wB IC cC xB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"n o","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"m"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"Passkeys",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u"},E:{"1":"EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B"},F:{"1":"g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f aC bC cC dC xB LC eC yB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"n o","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"m"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"Passkeys",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js index d81b7c0ff3cae0..fd14c577d41313 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","16":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B NC OC","16":"5B 6B MC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"4B 5B 6B"},E:{"1":"C L xB","2":"3 J K F G H A B PC 7B QC RC SC TC 8B wB","16":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB YC ZC aC bC wB IC cC xB","16":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"16":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","16":"E"},J:{"2":"F","16":"A"},K:{"2":"A B C wB IC xB","16":"p"},L:{"16":"E"},M:{"16":"E"},N:{"2":"A","16":"B"},O:{"16":"yB"},P:{"2":"J 5C 6C","16":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"16":"9B"},R:{"16":"ID"},S:{"2":"JD KD"}},B:1,C:"Password Rules",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","16":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D PC QC","16":"6B 7B 8B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"6B 7B 8B"},E:{"1":"C K yB","2":"4 I J E F G A B RC 9B SC TC UC VC AC xB","16":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aC bC cC dC xB LC eC yB","16":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"16":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","16":"D"},J:{"2":"E","16":"A"},K:{"2":"A B C xB LC yB","16":"p"},L:{"16":"D"},M:{"16":"D"},N:{"2":"A","16":"B"},O:{"16":"zB"},P:{"2":"I 7C 8C","16":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"16":"BC"},R:{"16":"JD"},S:{"2":"KD LD"}},B:1,C:"Password Rules",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js index c78c2674480758..9a61f59258c618 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L","132":"M I N D O"},C:{"1":"0 1 2 UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC","132":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},D:{"1":"0 1 2 mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB","132":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC RC","132":"G H SC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n o YC ZC aC bC wB IC cC xB","132":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","16":"G","132":"hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","132":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Path2D",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K","132":"L H M N O"},C:{"1":"0 1 2 3 VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC","132":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"1":"0 1 2 3 nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB","132":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC TC","132":"F G UC"},F:{"1":"cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n o aC bC cC dC xB LC eC yB","132":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","16":"F","132":"jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","132":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Path2D",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js index 94744451b8ba97..c5a48546d9975a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L","322":"M","8196":"I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB NC OC","4162":"bB cB dB eB 1B fB 2B gB hB iB jB","16452":"0 1 2 kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","194":"ZB aB bB cB dB eB","1090":"1B fB","8196":"2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","514":"A B 8B","8196":"C wB"},F:{"1":"kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB YC ZC aC bC wB IC cC xB","194":"MB NB OB PB QB RB SB TB","8196":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC","514":"kC lC mC","8196":"nC oC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"2049":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J","8196":"5C 6C 7C 8C 9C 8B AD"},Q:{"8196":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:2,C:"Payment Request API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K","322":"L","8196":"H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB PC QC","4162":"cB dB eB fB 3B gB 4B hB iB jB kB","16452":"0 1 2 3 lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","194":"aB bB cB dB eB fB","1090":"3B gB","8196":"4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","514":"A B AC","8196":"C xB"},F:{"1":"lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB aC bC cC dC xB LC eC yB","194":"NB OB PB QB RB SB TB UB","8196":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC","514":"mC nC oC","8196":"pC qC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"2049":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I","8196":"7C 8C 9C AD BD AC CD"},Q:{"8196":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:2,C:"Payment Request API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js index 8b55ec6eac530e..cb7b8938585a37 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C L M"},C:{"1":"0 1 2 4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"16":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"Built-in PDF viewer",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C K L"},C:{"1":"0 1 2 3 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"Built-in PDF viewer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js index c7e32d6620d234..6dfc48aede81d6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB NC OC"},D:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB"},G:{"1":"D zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Permissions API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB PC QC"},D:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Permissions API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js index f878c73da6327a..c2e9f535908fb6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","258":"P Q R S T U","322":"V W","388":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p NC OC","258":"0 1 2 rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","258":"fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U","322":"V W","388":"0 1 2 X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B PC 7B QC RC SC TC 8B","258":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB YC ZC aC bC wB IC cC xB","258":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB","322":"qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d","388":"e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC","258":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","258":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","388":"p"},L:{"388":"E"},M:{"258":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J 5C 6C 7C","258":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"258":"9B"},R:{"388":"ID"},S:{"2":"JD","258":"KD"}},B:5,C:"Permissions Policy",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","258":"P Q R S T U","322":"V W","388":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p PC QC","258":"0 1 2 3 sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","258":"gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U","322":"V W","388":"0 1 2 3 X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B RC 9B SC TC UC VC AC","258":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB aC bC cC dC xB LC eC yB","258":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB","322":"rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d","388":"e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC","258":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","258":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","388":"p"},L:{"388":"D"},M:{"258":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I 7C 8C 9C","258":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"258":"BC"},R:{"388":"JD"},S:{"2":"KD","258":"LD"}},B:5,C:"Permissions Policy",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js index 1385ee35624768..5d611830ec73dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB NC OC","132":"0 1 2 qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","1090":"lB","1412":"pB","1668":"mB nB oB"},D:{"1":"0 1 2 oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB","2114":"nB"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","4100":"A B C L 8B wB xB"},F:{"1":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB YC ZC aC bC wB IC cC xB","8196":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC","4100":"iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"16388":"E"},M:{"16388":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"Picture-in-Picture",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB PC QC","132":"0 1 2 3 rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","1090":"mB","1412":"qB","1668":"nB oB pB"},D:{"1":"0 1 2 3 pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB","2114":"oB"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","4100":"A B C K AC xB yB"},F:{"1":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB aC bC cC dC xB LC eC yB","8196":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC","4100":"kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"16388":"D"},M:{"16388":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"Picture-in-Picture",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js index de321138a88556..726bbb944c8256 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB NC OC","578":"GB HB IB JB"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB","194":"JB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB","322":"6"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Picture element",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB PC QC","578":"HB IB JB KB"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB","194":"KB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB","322":"7"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Picture element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js index ad707c1f90cc5c..344a1dc090f0f7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"2":"LC","194":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"194":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"194":"JD KD"}},B:1,C:"Ping attribute",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"2":"OC","194":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"194":"KD LD"}},B:1,C:"Ping attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js index b7ff926ff5e074..29fd52a68d518d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F G H A B","2":"KC","8":"K"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"PNG alpha transparency",D:true}; +module.exports={A:{A:{"1":"E F G A B","2":"NC","8":"J"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"PNG alpha transparency",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js index 9d5068588d3a22..0a6aeaed4605a1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:7,C:"CSS pointer-events (for HTML)",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:7,C:"CSS pointer-events (for HTML)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js index 517ddd1507a8fa..0e45a8084fd6fe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H KC","164":"A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC","8":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","328":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},D:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n","8":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","584":"YB ZB aB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","8":"F G H A B C RC SC TC 8B wB","1096":"xB"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","8":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB","584":"LB MB NB"},G:{"1":"D rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC","6148":"qC"},H:{"2":"yC"},I:{"1":"E","8":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"8":"F A"},K:{"1":"p","2":"A","8":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","36":"A"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"5C","8":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","328":"JD"}},B:2,C:"Pointer events",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G NC","164":"A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC","8":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB","328":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB"},D:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n","8":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","584":"ZB aB bB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","8":"E F G A B C TC UC VC AC xB","1096":"yB"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","8":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB","584":"MB NB OB"},G:{"1":"tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC","6148":"sC"},H:{"2":"0C"},I:{"1":"D","8":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"8":"E A"},K:{"1":"p","2":"A","8":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","36":"A"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"7C","8":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","328":"KD"}},B:2,C:"Pointer events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js index f26b0330053985..9630c76a935c5e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C"},C:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L NC OC","33":"4 5 6 7 8 9 M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"0 1 2 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I","33":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB","66":"4 N D O m n"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 I N D O m n o"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Pointer Lock API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C"},C:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K PC QC","33":"5 6 7 8 9 L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"0 1 2 3 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H","33":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB","66":"5 M N O m n"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 H M N O m n o"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Pointer Lock API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js index 188e0b733e4a3d..f625a7af011216 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O P Q R S T","322":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E","450":"U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB","194":"sB tB uB vB P Q R S T","322":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","450":"U"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB","194":"gB hB iB jB kB lB mB nB oB pB qB","322":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"450":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Portals",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O P Q R S T","322":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D","450":"U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB","194":"tB uB vB wB P Q R S T","322":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","450":"U"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB","194":"hB iB jB kB lB mB nB oB pB qB rB","322":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"450":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Portals",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js index 194f698507fb83..e3d494df686e1d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB NC OC"},D:{"1":"0 1 2 tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB"},E:{"1":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB"},F:{"1":"gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB YC ZC aC bC wB IC cC xB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"prefers-color-scheme media query",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB PC QC"},D:{"1":"0 1 2 3 uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB"},E:{"1":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB"},F:{"1":"hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB aC bC cC dC xB LC eC yB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"prefers-color-scheme media query",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js index 835846479ecf13..ea125f2b0463e6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC"},D:{"1":"0 1 2 rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"prefers-reduced-motion media query",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC"},D:{"1":"0 1 2 3 sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"prefers-reduced-motion media query",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js index 5433de3f63d68b..90d6977c7eb9ee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H YC ZC aC bC"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC","132":"gC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"progress element",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G aC bC cC dC"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","132":"iC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"progress element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js index 5ee73294229ce9..a942745d41ab26 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D"},C:{"1":"0 1 2 eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB NC OC"},D:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"Promise.prototype.finally",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N"},C:{"1":"0 1 2 3 fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB PC QC"},D:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"Promise.prototype.finally",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js index 5892996eaa52f8..6cffa32b518b45 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","4":"9 AB","8":"3 4 5 6 7 8 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"EB","8":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J K F PC 7B QC RC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","4":"4","8":"H B C I N D O YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC eC fC gC"},H:{"8":"yC"},I:{"1":"E 4C","8":"0B J zC 0C 1C 2C JC 3C"},J:{"8":"F A"},K:{"1":"p","8":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Promises",D:true}; +module.exports={A:{A:{"8":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"AB BB","8":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"FB","8":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I J E RC 9B SC TC"},F:{"1":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","4":"5","8":"G B C H M N O aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC gC hC iC"},H:{"8":"0C"},I:{"1":"D 6C","8":"2B I 1C 2C 3C 4C MC 5C"},J:{"8":"E A"},K:{"1":"p","8":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Promises",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js index 10edb8a89b7b3b..90a61477141477 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"JD KD"}},B:4,C:"Proximity API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"KD LD"}},B:4,C:"Proximity API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js index 5ca0b181171c83..6ce9e0661f6995 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D O KB LB MB NB OB PB QB RB SB TB UB","66":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"7 8 9 H B C AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB","66":"4 5 6 I N D O m n o"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Proxy object",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N O LB MB NB OB PB QB RB SB TB UB VB","66":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"8 9 G B C AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB","66":"5 6 7 H M N O m n o"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Proxy object",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js index 601a8bda1262cc..5810d1f3381d1f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB","2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB","2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB","2":"4 H B C I N D O kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","4":"5","16":"6 m n o"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"J 5C 6C 7C 8C 9C 8B","2":"m n o AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"JD","2":"KD"}},B:6,C:"HTTP Public Key Pinning",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB","2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"5 G B C H M N O lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","4":"6","16":"7 m n o"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"I 7C 8C 9C AD BD AC","2":"m n o CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"KD","2":"LD"}},B:6,C:"HTTP Public Key Pinning",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js index eec4e108f24e26..94bbfbff76fead 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"D O","2":"C L M I N","257":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB NC OC","257":"0 1 2 QB SB TB UB VB WB XB ZB aB bB cB dB eB 1B 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","1281":"RB YB fB"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","257":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","388":"QB RB SB TB UB VB"},E:{"2":"3 J K PC 7B QC RC","514":"F G H A B C L M I SC TC 8B wB xB 9B UC VC AC BC yB WC zB","2564":"D CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB YC ZC aC bC wB IC cC xB","16":"JB KB LB MB NB","257":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC","4100":"D FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"2":"ID"},S:{"257":"JD KD"}},B:5,C:"Push API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"N O","2":"C K L H M","257":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB PC QC","257":"0 1 2 3 RB TB UB VB WB XB YB aB bB cB dB eB fB 3B 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","1281":"SB ZB gB"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","257":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","388":"RB SB TB UB VB WB"},E:{"2":"4 I J RC 9B SC TC","514":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B","2564":"EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB aC bC cC dC xB LC eC yB","16":"KB LB MB NB OB","257":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC","4100":"HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"2":"JD"},S:{"257":"KD LD"}},B:5,C:"Push API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js index c1508d2f0efc63..c7d3f460a78251 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"KC","8":"K F","132":"G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","8":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","8":"H YC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"querySelector/querySelectorAll",D:true}; +module.exports={A:{A:{"1":"G A B","2":"NC","8":"J E","132":"F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","8":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","8":"G aC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"querySelector/querySelectorAll",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js index e75a31cad5cf91..2806d6af8488a7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","16":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 4 5 6 7 J K F G H A B C L M I N D O m n o"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H YC","132":"B C ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","132":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"257":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"readonly attribute of input and textarea elements",D:true}; +module.exports={A:{A:{"1":"J E F G A B","16":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 5 6 7 8 I J E F G A B C K L H M N O m n o"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G aC","132":"B C bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","132":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"readonly attribute of input and textarea elements",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js index 9cc1c115095490..d4cbe598176704 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O","516":"P Q R S T"},C:{"1":"W X Y Z a","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC","516":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V","2049":"0 1 2 b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m","260":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB","516":"2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T"},E:{"2":"3 J K F PC 7B QC RC","132":"G H A B SC TC 8B","516":"C wB xB","1025":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","1540":"L M 9B UC"},F:{"1":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","516":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB"},G:{"2":"7B dC JC eC fC gC","132":"G hC iC jC kC lC mC nC","516":"oC pC qC rC","1025":"D wC AC BC yB xC zB CC DC EC FC GC HC","1540":"sC tC uC vC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2049":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J","516":"5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"516":"JD KD"}},B:4,C:"Referrer Policy",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O","516":"P Q R S T"},C:{"1":"W X Y Z a","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC","516":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V","2049":"0 1 2 3 b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m","260":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB","516":"4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T"},E:{"2":"4 I J E RC 9B SC TC","132":"F G A B UC VC AC","516":"C xB yB","1025":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","1540":"K L BC WC"},F:{"1":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","516":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"2":"9B fC MC gC hC iC","132":"F jC kC lC mC nC oC pC","516":"qC rC sC tC","1025":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","1540":"uC vC wC xC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2049":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I","516":"7C 8C 9C AD BD AC CD DD ED"},Q:{"1":"BC"},R:{"1":"JD"},S:{"516":"KD LD"}},B:4,C:"Referrer Policy",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js index c19600d17a78d3..9b292e7778a743 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","129":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"2":"3 J K F G H A B C","129":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B YC ZC aC bC wB IC","129":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","129":"A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:1,C:"Custom protocol handling",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","129":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC"},D:{"2":"4 I J E F G A B C","129":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B aC bC cC dC xB LC","129":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","129":"A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:1,C:"Custom protocol handling",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js index 8a43dccee4c6fb..4054faadf147fb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"rel=noopener",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"rel=noopener",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js index d012c01592df74..53f97f3e1f64b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","132":"B"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C"},C:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M I"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Link type \"noreferrer\"",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","132":"B"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C"},C:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L H"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Link type \"noreferrer\"",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js index 9987c22ac9418f..c96f25eb49a12e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N","132":"D"},C:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB NC OC"},D:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","132":"WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G PC 7B QC RC SC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB YC ZC aC bC wB IC cC xB","132":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","132":"5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"relList (DOMTokenList)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M","132":"N"},C:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB PC QC"},D:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","132":"XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F RC 9B SC TC UC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB aC bC cC dC xB LC eC yB","132":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","132":"7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"relList (DOMTokenList)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js index 9b158422fc667e..34d82987536446 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G KC","132":"H A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"G D dC JC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B","260":"eC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"rem (root em) units",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F NC","132":"G A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"F fC MC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B","260":"gC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"rem (root em) units",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js index 6e7deb8e49413c..cc0d05ca8c8370 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","33":"4 B C L M I N D O m n o","164":"3 J K F G H A"},D:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H","33":"5 o","164":"4 O m n","420":"A B C L M I N D"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","33":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","33":"fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"requestAnimationFrame",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","33":"5 B C K L H M N O m n o","164":"4 I J E F G A"},D:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G","33":"6 o","164":"5 O m n","420":"A B C K L H M N"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","33":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","33":"hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"requestAnimationFrame",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js index a48d6f2a8c2e9a..7d20055496066f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC","194":"ZB aB"},D:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB","322":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC","322":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"requestIdleCallback",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC","194":"aB bB"},D:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB","322":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","322":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"requestIdleCallback",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js index 121cd5b48eaea9..5235645cca1ca1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB NC OC"},D:{"1":"0 1 2 iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","194":"aB bB cB dB eB 1B fB 2B gB hB"},E:{"1":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB","66":"L"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB","194":"NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"Resize Observer",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB PC QC"},D:{"1":"0 1 2 3 jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB cB dB eB fB 3B gB 4B hB iB"},E:{"1":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB","66":"K"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB","194":"OB PB QB RB SB TB UB VB WB XB YB"},G:{"1":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"Resize Observer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js index cac9cd1987859b..28f65227044ceb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC","194":"DB EB FB GB"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","260":"B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Resource Timing",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC","194":"EB FB GB HB"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","260":"B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Resource Timing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js index 6ae692204867b9..07c054db72b8c3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB RB SB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB YC ZC aC bC wB IC cC xB","194":"DB EB FB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Rest parameters",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","194":"RB SB TB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB aC bC cC dC xB LC eC yB","194":"EB FB GB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Rest parameters",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js index 8fe1287fe06f05..167b06cab51520 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","260":"I N D O"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","33":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n o","33":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N D YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","130":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"WebRTC Peer-to-peer connections",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","260":"H M N O"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","33":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n o","33":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M N aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","130":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"WebRTC Peer-to-peer connections",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js index 1b2dca9d72567e..bbb5399fd276e6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"K F G KC","132":"H A B"},B:{"4":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"J"},E:{"4":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"J PC 7B"},F:{"4":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","8":"H B C YC ZC aC bC wB IC cC xB"},G:{"4":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC"},H:{"8":"yC"},I:{"4":"0B J E 2C JC 3C 4C","8":"zC 0C 1C"},J:{"4":"A","8":"F"},K:{"4":"p","8":"A B C wB IC xB"},L:{"4":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"4":"9B"},R:{"4":"ID"},S:{"1":"JD KD"}},B:1,C:"Ruby annotation",D:true}; +module.exports={A:{A:{"4":"J E F NC","132":"G A B"},B:{"4":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"I"},E:{"4":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"I RC 9B"},F:{"4":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","8":"G B C aC bC cC dC xB LC eC yB"},G:{"4":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC"},H:{"8":"0C"},I:{"4":"2B I D 4C MC 5C 6C","8":"1C 2C 3C"},J:{"4":"A","8":"E"},K:{"4":"p","8":"A B C xB LC yB"},L:{"4":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"4":"BC"},R:{"4":"JD"},S:{"1":"KD LD"}},B:1,C:"Ruby annotation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js index 79c019973082b9..3355d06ba0327d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"K F KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB","2":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K QC","2":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"RC","129":"J PC 7B"},F:{"1":"H B C I N D O YC ZC aC bC wB IC cC xB","2":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"dC JC eC fC gC","2":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","129":"7B"},H:{"1":"yC"},I:{"1":"0B J zC 0C 1C 2C JC 3C","2":"E 4C"},J:{"1":"F A"},K:{"1":"A B C wB IC xB","2":"p"},L:{"2":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"display: run-in",D:true}; +module.exports={A:{A:{"1":"F G A B","2":"J E NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB","2":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J SC","2":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"TC","129":"I RC 9B"},F:{"1":"G B C H M N O aC bC cC dC xB LC eC yB","2":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"fC MC gC hC iC","2":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","129":"9B"},H:{"1":"0C"},I:{"1":"2B I 1C 2C 3C 4C MC 5C","2":"D 6C"},J:{"1":"E A"},K:{"1":"A B C xB LC yB","2":"p"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"display: run-in",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js index a10c486d1d73fc..84d18c02efcd99 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","388":"B"},B:{"1":"O P Q R S T U","2":"C L M I","129":"N D","513":"0 1 2 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B NC OC"},D:{"1":"XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","513":"0 1 2 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B wB","2052":"M UC","3076":"C L xB 9B"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB YC ZC aC bC wB IC cC xB","513":"pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC","2052":"oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","513":"p"},L:{"513":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"16":"9B"},R:{"513":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"'SameSite' cookie attribute",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","388":"B"},B:{"1":"O P Q R S T U","2":"C K L H","129":"M N","513":"0 1 2 3 V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B PC QC"},D:{"1":"YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","513":"0 1 2 3 Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC xB","2052":"L WC","3076":"C K yB BC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB aC bC cC dC xB LC eC yB","513":"qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC","2052":"qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","513":"p"},L:{"513":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"16":"BC"},R:{"513":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"'SameSite' cookie attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js index fd1e26fc14efeb..fb350f77caa868 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","164":"B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","36":"C L M I N D O"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D NC OC","36":"4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A","36":"B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","16":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"Screen Orientation",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","164":"B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","36":"C K L H M N O"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N PC QC","36":"5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","36":"B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","16":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"Screen Orientation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js index 5edd0bd652c4d2..caa27191e21d6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","132":"3"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"async attribute for external scripts",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","132":"4"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"async attribute for external scripts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js index 699ff88e1ad018..b61e091ae6b0c0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","132":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","257":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"defer attribute for external scripts",D:true}; +module.exports={A:{A:{"1":"A B","132":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","257":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"defer attribute for external scripts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js index 2ee580538032db..b15c04e6eaa19e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","132":"G H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","132":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB NC OC"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J PC 7B","132":"K F G H A B C L M I QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC aC bC","16":"B wB IC","132":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB cC xB"},G:{"1":"D zB CC DC EC FC GC HC","16":"7B dC JC","132":"G eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"1":"E","16":"zC 0C","132":"0B J 1C 2C JC 3C 4C"},J:{"132":"F A"},K:{"1":"p","132":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"132":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"scrollIntoView",D:true}; +module.exports={A:{A:{"2":"J E NC","132":"F G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","132":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB PC QC"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","132":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC cC dC","16":"B xB LC","132":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB eC yB"},G:{"1":"0B EC FC GC HC IC JC 1B KC","16":"9B fC MC","132":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"1":"D","16":"1C 2C","132":"2B I 3C 4C MC 5C 6C"},J:{"132":"E A"},K:{"1":"p","132":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"132":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"scrollIntoView",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js index 5000618205581e..39448679181ff5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Element.scrollIntoViewIfNeeded()",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Element.scrollIntoViewIfNeeded()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js index 53fd3948bba22a..bd0494c1780675 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","2":"0 1 2 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB","2":"H B C p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","2":"0 1 2 3 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB","2":"G B C p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js index 2ea7f00bb21208..2deea4bcab0d52 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","16":"KC","260":"K F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB NC OC","2180":"PB QB RB SB TB UB VB WB XB"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","132":"H B C YC ZC aC bC wB IC cC xB"},G:{"16":"JC","132":"7B dC","516":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","16":"0B J zC 0C 1C 2C","1025":"JC"},J:{"1":"A","16":"F"},K:{"1":"p","16":"A B C wB IC","132":"xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","16":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2180":"JD"}},B:5,C:"Selection API",D:true}; +module.exports={A:{A:{"1":"G A B","16":"NC","260":"J E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB PC QC","2180":"QB RB SB TB UB VB WB XB YB"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","132":"G B C aC bC cC dC xB LC eC yB"},G:{"16":"MC","132":"9B fC","516":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","16":"2B I 1C 2C 3C 4C","1025":"MC"},J:{"1":"A","16":"E"},K:{"1":"p","16":"A B C xB LC","132":"yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","16":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2180":"KD"}},B:5,C:"Selection API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js index ed831a4ad323b9..aedf5d7a106f25 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB NC OC"},D:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","196":"fB 2B gB hB","324":"iB"},E:{"2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","516":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"Server Timing",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB PC QC"},D:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","196":"gB 4B hB iB","324":"jB"},E:{"2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","516":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"Server Timing",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js index ccb89a6edbb523..fcc0d8077e32f8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","322":"I N"},C:{"1":"0 1 2 QB SB TB UB VB WB XB ZB aB bB cB dB eB 1B 2B gB hB iB jB kB lB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","194":"FB GB HB IB JB KB LB MB NB OB PB","513":"RB YB fB mB"},D:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB","4":"MB NB OB PB QB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B PC 7B QC RC SC TC 8B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 H B C I N D O m n o YC ZC aC bC wB IC cC xB","4":"9 AB BB CB DB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","4":"E"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"Service Workers",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","322":"H M"},C:{"1":"0 1 2 3 RB TB UB VB WB XB YB aB bB cB dB eB fB 3B 4B hB iB jB kB lB mB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","194":"GB HB IB JB KB LB MB NB OB PB QB","513":"SB ZB gB nB"},D:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB","4":"NB OB PB QB RB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B RC 9B SC TC UC VC AC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o aC bC cC dC xB LC eC yB","4":"AB BB CB DB EB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","4":"D"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"Service Workers",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js index 110461b0daf9aa..3ea198f68d7636 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"C L M I N D O","2":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"1":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Efficient Script Yielding: setImmediate()",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"C K L H M N O","2":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Efficient Script Yielding: setImmediate()",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js index 9ecd6f7e61914a..ba1a5b3aeace82 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"P","2":"0 1 2 C L M I N D O Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","66":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","2":"0 1 2 3 4 5 6 J K F G H A B C L M I N D O m n o Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"7 8 9 AB BB CB DB EB FB GB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB","2":"H B C lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","33":"4 I N D O m n"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC","33":"3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"5C 6C 7C 8C 9C 8B AD BD","2":"m n o CD DD ED zB FD GD HD","33":"J"},Q:{"1":"9B"},R:{"2":"ID"},S:{"1":"JD","2":"KD"}},B:7,C:"Shadow DOM (deprecated V0 spec)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"P","2":"0 1 2 3 C K L H M N O Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","66":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","2":"0 1 2 3 4 5 6 7 I J E F G A B C K L H M N O m n o Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"8 9 AB BB CB DB EB FB GB HB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","2":"G B C mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","33":"5 H M N O m n"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC","33":"5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"7C 8C 9C AD BD AC CD DD","2":"m n o ED FD GD 0B 1B HD ID","33":"I"},Q:{"1":"BC"},R:{"2":"JD"},S:{"1":"KD","2":"LD"}},B:7,C:"Shadow DOM (deprecated V0 spec)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js index 9b8f8bf423fda3..7b74ff5fc53b49 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB NC OC","322":"eB","578":"1B fB 2B gB"},D:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"A B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC","132":"kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","4":"5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"Shadow DOM (V1)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB PC QC","322":"fB","578":"3B gB 4B hB"},D:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"A B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC","132":"mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","4":"7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"Shadow DOM (V1)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js index f59e5b9d201cbf..0bcac978d64acc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"P Q R S T U V W X Y Z","2":"C L M I","194":"N D O","513":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB NC OC","194":"dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p","450":"rB sB tB uB vB","513":"0 1 2 P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B","194":"fB 2B gB hB iB jB kB lB","513":"0 1 2 a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A PC 7B QC RC SC TC","194":"B C L M I 8B wB xB 9B UC VC","513":"D AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB YC ZC aC bC wB IC cC xB","194":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","513":"vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC","194":"lC mC nC oC pC qC rC sC tC uC vC wC","513":"D AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","513":"p"},L:{"513":"E"},M:{"513":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD","513":"m n o ED zB FD GD HD"},Q:{"2":"9B"},R:{"513":"ID"},S:{"2":"JD","513":"KD"}},B:6,C:"Shared Array Buffer",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"P Q R S T U V W X Y Z","2":"C K L H","194":"M N O","513":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB PC QC","194":"eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p","450":"sB tB uB vB wB","513":"0 1 2 3 P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B","194":"gB 4B hB iB jB kB lB mB","513":"0 1 2 3 a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A RC 9B SC TC UC VC","194":"B C K L H AC xB yB BC WC XC","513":"CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB aC bC cC dC xB LC eC yB","194":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","513":"wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC","194":"nC oC pC qC rC sC tC uC vC wC xC yC","513":"CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","513":"p"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I 7C 8C 9C AD BD AC CD DD ED FD","513":"m n o GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"513":"JD"},S:{"2":"KD","513":"LD"}},B:6,C:"Shared Array Buffer",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js index ce2695d12a9cb4..39412f47ca2e17 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 K D QC zB CC DC EC FC GC HC XC","2":"J F G H A B C L M I PC 7B RC SC TC 8B wB xB 9B UC VC AC BC yB WC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC ZC aC"},G:{"1":"D eC fC zB CC DC EC FC GC HC","2":"G 7B dC JC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"B C wB IC xB","2":"p","16":"A"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"J","2":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"JD KD"}},B:1,C:"Shared Web Workers",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 J SC 0B EC FC GC HC IC JC 1B KC ZC","2":"I E F G A B C K L H RC 9B TC UC VC AC xB yB BC WC XC CC DC zB YC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC bC cC"},G:{"1":"gC hC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"B C xB LC yB","2":"p","16":"A"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"I","2":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"KD LD"}},B:1,C:"Shared Web Workers",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js index b1384a6bcd7389..1f9cb3ed0a6adb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K KC","132":"F G"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B"},H:{"1":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Server Name Indication",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J NC","132":"E F"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B"},H:{"1":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Server Name Indication",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js index 5ed66bc812bbd7..5d649df56c1629 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H A KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","2":"0 1 2 3 LC 0B J K F G H A B C XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","2":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"G H A B C TC 8B wB","2":"3 J K F PC 7B QC RC SC","129":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB OB QB xB","2":"H B C MB NB PB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC"},G:{"1":"G hC iC jC kC lC mC nC oC","2":"7B dC JC eC fC gC","257":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J 2C JC 3C 4C","2":"E zC 0C 1C"},J:{"2":"F A"},K:{"1":"xB","2":"A B C p wB IC"},L:{"2":"E"},M:{"2":"E"},N:{"1":"B","2":"A"},O:{"2":"yB"},P:{"1":"J","2":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"JD","2":"KD"}},B:7,C:"SPDY protocol",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G A NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 OC 2B I J E F G A B C YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"F G A B C VC AC xB","2":"4 I J E RC 9B SC TC UC","129":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB PB RB yB","2":"G B C NB OB QB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC"},G:{"1":"F jC kC lC mC nC oC pC qC","2":"9B fC MC gC hC iC","257":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I 4C MC 5C 6C","2":"D 1C 2C 3C"},J:{"2":"E A"},K:{"1":"yB","2":"A B C p xB LC"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"zB"},P:{"1":"I","2":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"KD","2":"LD"}},B:7,C:"SPDY protocol",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js index e09a5cb1f5348d..353ffba26d58ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","514":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC","322":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 J K F G H A B C L M I N D O m n o","164":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M PC 7B QC RC SC TC 8B wB xB 9B","1060":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 H B C I N D O m n o YC ZC aC bC wB IC cC xB","514":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC","1060":"D vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","164":"p"},L:{"164":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"164":"yB"},P:{"164":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"164":"9B"},R:{"164":"ID"},S:{"322":"JD KD"}},B:7,C:"Speech Recognition API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","514":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC","322":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 I J E F G A B C K L H M N O m n o","164":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L RC 9B SC TC UC VC AC xB yB BC","1060":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o aC bC cC dC xB LC eC yB","514":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC","1060":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","164":"p"},L:{"164":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"164":"zB"},P:{"164":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"164":"BC"},R:{"164":"JD"},S:{"322":"KD LD"}},B:7,C:"Speech Recognition API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js index 71669573a181e1..a7fcd84892fb64 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"M I N D O","2":"C L","257":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB NC OC","194":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB","257":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","2":"4 5 6 7 8 H B C I N D O m n o YC ZC aC bC wB IC cC xB","257":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"2":"ID"},S:{"1":"JD KD"}},B:7,C:"Speech Synthesis API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"L H M N O","2":"C K","257":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB PC QC","194":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB","257":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB","2":"5 6 7 8 9 G B C H M N O m n o aC bC cC dC xB LC eC yB","257":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"2":"JD"},S:{"1":"KD LD"}},B:7,C:"Speech Synthesis API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js index 7c89742770f490..373cb184656a17 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"4":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"4":"yC"},I:{"4":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","4":"F"},K:{"4":"A B C p wB IC xB"},L:{"4":"E"},M:{"4":"E"},N:{"4":"A B"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"4":"ID"},S:{"2":"JD KD"}},B:1,C:"Spellcheck attribute",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"4":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"4":"0C"},I:{"4":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","4":"E"},K:{"4":"A B C p xB LC yB"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"4":"JD"},S:{"2":"KD LD"}},B:1,C:"Spellcheck attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js index cb0acea2a859ca..5df69a58d1750b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r","2":"C L M I N D O","129":"0 1 2 s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r","129":"0 1 2 s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB","2":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z aC bC wB IC cC xB","2":"H YC ZC","129":"a b c d e f g h i j k l"},G:{"1":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC","2":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J zC 0C 1C 2C JC 3C 4C","129":"E"},J:{"1":"F A"},K:{"1":"B C wB IC xB","2":"A","129":"p"},L:{"129":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Web SQL Database",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r","2":"C K L H M N O","129":"0 1 2 3 s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r","129":"0 1 2 3 s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB","2":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z cC dC xB LC eC yB","2":"G aC bC","129":"a b c d e f g h i j k l"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC","2":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I 1C 2C 3C 4C MC 5C 6C","129":"D"},J:{"1":"E A"},K:{"1":"B C xB LC yB","2":"A","129":"p"},L:{"129":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Web SQL Database",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js index f6c84affbe1f15..1c1f2211b27bc7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C","514":"L M I"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB NC OC","194":"EB FB GB HB IB JB"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB","260":"GB HB IB JB"},E:{"2":"3 J K F PC 7B QC RC","260":"G SC","1028":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m YC ZC aC bC wB IC cC xB","260":"5 6 n o"},G:{"2":"7B dC JC eC fC gC","260":"G hC","1028":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Srcset and sizes attributes",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C","514":"K L H"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB PC QC","194":"FB GB HB IB JB KB"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB","260":"HB IB JB KB"},E:{"2":"4 I J E RC 9B SC TC","260":"F UC","1028":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m aC bC cC dC xB LC eC yB","260":"6 7 n o"},G:{"2":"9B fC MC gC hC iC","260":"F jC","1028":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Srcset and sizes attributes",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js index 2944225c810e78..680a812bd10efe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N NC OC","129":"IB JB KB LB MB NB","420":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB"},D:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m","420":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B I N D YC ZC aC bC wB IC cC","420":"4 5 6 7 8 9 C O m n o AB BB CB DB EB FB GB HB IB JB KB LB xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC","513":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","1537":"mC nC oC pC qC rC sC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","420":"A"},K:{"1":"p","2":"A B wB IC","420":"C xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","420":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:4,C:"getUserMedia/Stream API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M PC QC","129":"JB KB LB MB NB OB","420":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m","420":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B H M N aC bC cC dC xB LC eC","420":"5 6 7 8 9 C O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC","513":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","1537":"oC pC qC rC sC tC uC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","420":"A"},K:{"1":"p","2":"A B xB LC","420":"C yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","420":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:4,C:"getUserMedia/Stream API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js index e126705b4b17f5..00e548741f8088 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","130":"B"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C L","260":"M I","1028":"P Q R S T U V W X","5124":"N D O"},C:{"1":"0 1 2 l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB NC OC","5124":"j k","7172":"jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i","7746":"dB eB 1B fB 2B gB hB iB"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","260":"YB ZB aB bB cB dB eB","1028":"1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X"},E:{"2":"3 J K F G H PC 7B QC RC SC TC","1028":"I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","3076":"A B C L M 8B wB xB 9B"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB YC ZC aC bC wB IC cC xB","260":"LB MB NB OB PB QB RB","1028":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC","16":"kC","1028":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o ED zB FD GD HD","2":"J 5C 6C","1028":"7C 8C 9C 8B AD BD CD DD"},Q:{"1028":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:1,C:"Streams",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","130":"B"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C K","260":"L H","1028":"P Q R S T U V W X","5124":"M N O"},C:{"1":"0 1 2 3 l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB PC QC","5124":"j k","7172":"kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i","7746":"eB fB 3B gB 4B hB iB jB"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","260":"ZB aB bB cB dB eB fB","1028":"3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X"},E:{"2":"4 I J E F G RC 9B SC TC UC VC","1028":"H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","3076":"A B C K L AC xB yB BC"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB aC bC cC dC xB LC eC yB","260":"MB NB OB PB QB RB SB","1028":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC","16":"mC","1028":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o GD 0B 1B HD ID","2":"I 7C 8C","1028":"9C AD BD AC CD DD ED FD"},Q:{"1028":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:1,C:"Streams",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js index 7afb07d44a0938..a61638c943c9e1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A KC","129":"B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Strict Transport Security",D:true}; +module.exports={A:{A:{"2":"J E F G A NC","129":"B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Strict Transport Security",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js index 8979b333e3a82a..8ce62aebea4a69 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"5 6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","2":"0 1 2 3 4 LC 0B J K F G H A B C L M I N D O m 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","322":"bB cB dB eB 1B fB"},D:{"2":"0 1 2 3 4 J K F G H A B C L M I N D O JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","194":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"JD","2":"KD"}},B:7,C:"Scoped CSS",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"6 7 8 9 n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","2":"0 1 2 3 4 5 OC 2B I J E F G A B C K L H M N O m 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","322":"cB dB eB fB 3B gB"},D:{"2":"0 1 2 3 4 5 I J E F G A B C K L H M N O KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","194":"6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"KD","2":"LD"}},B:7,C:"Scoped CSS",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-bundling.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-bundling.js index 9f7d576b19171e..b25101dd553985 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-bundling.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-bundling.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Subresource Loading with Web Bundles",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Subresource Loading with Web Bundles",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js index 5a333ed92dfa37..d915d70947d3cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB NC OC"},D:{"1":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC","194":"mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Subresource Integrity",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB PC QC"},D:{"1":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC","194":"oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Subresource Integrity",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js index 0e7d7629414bab..e88b4a1bacb1f2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","516":"C L M I"},C:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","260":"3 4 5 J K F G H A B C L M I N D O m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"J"},E:{"1":"3 K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC","132":"J 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"7B dC"},H:{"260":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"p","260":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"SVG in CSS backgrounds",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","516":"C K L H"},C:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","260":"4 5 6 I J E F G A B C K L H M N O m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"I"},E:{"1":"4 J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC","132":"I 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"9B fC"},H:{"260":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"p","260":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"SVG in CSS backgrounds",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js index bfb371797474b9..fc3509d40a0b3a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J","4":"3 K F"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"SVG filters",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I","4":"4 J E"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"SVG filters",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js index 4549cf0a2e4f70..6c5fc79d9e91c2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"H A B KC","8":"K F G"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB","2":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","130":"KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC"},F:{"1":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB","2":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","130":"7 8 9 AB BB CB DB EB FB GB HB IB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"258":"yC"},I:{"1":"0B J 2C JC 3C 4C","2":"E zC 0C 1C"},J:{"1":"F A"},K:{"1":"A B C wB IC xB","2":"p"},L:{"130":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"J","130":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"130":"ID"},S:{"2":"JD KD"}},B:2,C:"SVG fonts",D:true}; +module.exports={A:{A:{"2":"G A B NC","8":"J E F"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB","2":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","130":"LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC"},F:{"1":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB","2":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","130":"8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"258":"0C"},I:{"1":"2B I 4C MC 5C 6C","2":"D 1C 2C 3C"},J:{"1":"E A"},K:{"1":"A B C xB LC yB","2":"p"},L:{"130":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"I","130":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"130":"JD"},S:{"2":"KD LD"}},B:2,C:"SVG fonts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js index 16118953feaa68..ca0d2b44c8f21a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","260":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB","132":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F H A B PC 7B QC RC TC 8B","132":"G SC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"4 I N D O m n o","4":"B C ZC aC bC wB IC cC","16":"H YC","132":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC iC jC kC lC mC","132":"G hC"},H:{"1":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F","132":"A"},K:{"1":"p xB","4":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","132":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"SVG fragment identifiers",D:true}; +module.exports={A:{A:{"2":"J E F NC","260":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB","132":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E G A B RC 9B SC TC VC AC","132":"F UC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"5 H M N O m n o","4":"B C bC cC dC xB LC eC","16":"G aC","132":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC kC lC mC nC oC","132":"F jC"},H:{"1":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E","132":"A"},K:{"1":"p yB","4":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","132":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"SVG fragment identifiers",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js index 79298b4efc1ef0..b886e970b1f678 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","388":"H A B"},B:{"4":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC","4":"0B"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"PC 7B","4":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"4":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"4":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","4":"E 3C 4C"},J:{"1":"A","2":"F"},K:{"4":"A B C p wB IC xB"},L:{"4":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"4":"9B"},R:{"4":"ID"},S:{"1":"JD KD"}},B:2,C:"SVG effects for HTML",D:true}; +module.exports={A:{A:{"2":"J E F NC","388":"G A B"},B:{"4":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC","4":"2B"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"RC 9B","4":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"4":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"4":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","4":"D 5C 6C"},J:{"1":"A","2":"E"},K:{"4":"A B C p xB LC yB"},L:{"4":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"4":"BC"},R:{"4":"JD"},S:{"1":"KD LD"}},B:2,C:"SVG effects for HTML",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js index bd236df0f67af9..a5ede0006ac839 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G","129":"H A B"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M I N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","8":"3 J K"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"3 J PC 7B","129":"K F G QC RC SC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"B bC wB IC","8":"H YC ZC aC"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","8":"7B dC JC","129":"G eC fC gC hC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"zC 0C 1C","129":"0B J 2C JC"},J:{"1":"A","129":"F"},K:{"1":"C p xB","8":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"129":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Inline SVG in HTML5",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F","129":"G A B"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 I J"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"4 I RC 9B","129":"J E F SC TC UC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"B dC xB LC","8":"G aC bC cC"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","8":"9B fC MC","129":"F gC hC iC jC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"1C 2C 3C","129":"2B I 4C MC"},J:{"1":"A","129":"E"},K:{"1":"C p yB","8":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Inline SVG in HTML5",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js index 75528b7c13db1f..4e700a099a2613 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC","4":"7B","132":"3 J K F G QC RC SC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"G 7B dC JC eC fC gC hC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"zC 0C 1C","132":"0B J 2C JC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"SVG in HTML img element",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC","4":"9B","132":"4 I J E F SC TC UC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"F 9B fC MC gC hC iC jC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"1C 2C 3C","132":"2B I 4C MC"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"SVG in HTML img element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js index ceda2d0ff6a369..8f19a34b1184dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"LC 0B NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"J"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"PC 7B","132":"3 J QC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"7B dC JC eC"},H:{"2":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"SVG SMIL animation",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"OC 2B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"I"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"RC 9B","132":"4 I SC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"9B fC MC gC"},H:{"2":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"SVG SMIL animation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js index 7fbb35878744b0..79c9692818031b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G","772":"H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","513":"C L M I N D O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","4":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"PC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"E 3C 4C","2":"zC 0C 1C","132":"0B J 2C JC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"257":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"SVG (basic support)",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F","772":"G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","513":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","4":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"RC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"D 5C 6C","2":"1C 2C 3C","132":"2B I 4C MC"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"SVG (basic support)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js index 5e5c8372f820de..996578d7c335c3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB","132":"pB qB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:6,C:"Signed HTTP Exchanges (SXG)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB","132":"qB rB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:6,C:"Signed HTTP Exchanges (SXG)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js index 97ea347a2bd10a..cd69a5bafced74 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F G H A B","16":"K KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"16":"LC 0B NC OC","129":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"16":"3 J PC 7B","257":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"769":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"16":"yC"},I:{"16":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"16":"F A"},K:{"1":"p","16":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"16":"A B"},O:{"1":"yB"},P:{"16":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"129":"JD KD"}},B:1,C:"tabindex global attribute",D:true}; +module.exports={A:{A:{"1":"E F G A B","16":"J NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"16":"OC 2B PC QC","129":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"16":"4 I RC 9B","257":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"769":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"16":"0C"},I:{"16":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"16":"E A"},K:{"1":"p","16":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"zB"},P:{"16":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"129":"KD LD"}},B:1,C:"tabindex global attribute",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js index 9bc3ef938873bd..d988165dacfd10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","16":"C"},C:{"1":"0 1 2 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB NC OC"},D:{"1":"0 1 2 NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"A B L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC","129":"C"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB YC ZC aC bC wB IC cC xB"},G:{"1":"D iC jC kC lC mC nC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC","129":"oC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ES6 Template Literals (Template Strings)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","16":"C"},C:{"1":"0 1 2 3 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB PC QC"},D:{"1":"0 1 2 3 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"A B K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC","129":"C"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB aC bC cC dC xB LC eC yB"},G:{"1":"kC lC mC nC oC pC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC","129":"qC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ES6 Template Literals (Template Strings)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js index af1c94587b0699..3172b0f1fecd22 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C","388":"L M"},C:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 LC 0B J K F G H A B C L M I N D O m n NC OC"},D:{"1":"0 1 2 HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 J K F G H A B C L M I N D O m n o","132":"8 9 AB BB CB DB EB FB GB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F PC 7B QC","388":"G SC","514":"RC"},F:{"1":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","132":"4 I N D O m n"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC","388":"G hC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"HTML templates",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C","388":"K L"},C:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 OC 2B I J E F G A B C K L H M N O m n PC QC"},D:{"1":"0 1 2 3 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 I J E F G A B C K L H M N O m n o","132":"9 AB BB CB DB EB FB GB HB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E RC 9B SC","388":"F UC","514":"TC"},F:{"1":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","132":"5 H M N O m n"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC","388":"F jC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"HTML templates",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js index c0374a5ac609ea..2159f656223772 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"Temporal",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"Temporal",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js index a10a288d49f325..46661d685f24bd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G A B KC","16":"H"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 4 5 6 7 8 9 LC 0B K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","16":"3 J"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"B C"},E:{"2":"J K PC 7B QC","16":"3 F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC IC cC xB","16":"wB"},G:{"2":"7B dC JC eC fC","16":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 2C JC 3C 4C","16":"1C"},J:{"2":"A","16":"F"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Test feature - updated",D:false}; +module.exports={A:{A:{"2":"J E F A B NC","16":"G"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 5 6 7 8 9 OC 2B J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","16":"4 I"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"B C"},E:{"2":"I J RC 9B SC","16":"4 E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC LC eC yB","16":"xB"},G:{"2":"9B fC MC gC hC","16":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 4C MC 5C 6C","16":"3C"},J:{"2":"A","16":"E"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Test feature - updated",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js index d3f94a1a3e764f..b90a2a5866930d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","2052":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 LC 0B J NC OC","1028":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","1060":"4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},D:{"2":"3 4 5 6 7 J K F G H A B C L M I N D O m n o","226":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB","2052":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F PC 7B QC RC","772":"L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","804":"G H A B C TC 8B wB","1316":"SC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB YC ZC aC bC wB IC cC xB","226":"HB IB JB KB LB MB NB OB PB","2052":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"7B dC JC eC fC gC","292":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","2052":"p"},L:{"2052":"E"},M:{"1028":"E"},N:{"2":"A B"},O:{"2052":"yB"},P:{"2":"J 5C 6C","2052":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2052":"9B"},R:{"2052":"ID"},S:{"1028":"JD KD"}},B:4,C:"text-decoration styling",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","2052":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 OC 2B I PC QC","1028":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","1060":"5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},D:{"2":"4 5 6 7 8 I J E F G A B C K L H M N O m n o","226":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB","2052":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E RC 9B SC TC","772":"K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","804":"F G A B C VC AC xB","1316":"UC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB aC bC cC dC xB LC eC yB","226":"IB JB KB LB MB NB OB PB QB","2052":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"9B fC MC gC hC iC","292":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","2052":"p"},L:{"2052":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"2052":"zB"},P:{"2":"I 7C 8C","2052":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2052":"BC"},R:{"2052":"JD"},S:{"1028":"KD LD"}},B:4,C:"text-decoration styling",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js index e73d666a9be265..f290b9458f8535 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 i j k l q r s t u v w x y z E","2":"C L M I N D O","164":"P Q R S T U V W X Y Z a b c d e f g h"},C:{"1":"0 1 2 SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB NC OC","322":"RB"},D:{"1":"0 1 2 i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o","164":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC","164":"F RC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","164":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC","164":"3C 4C"},J:{"2":"F","164":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o GD HD","164":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD"},Q:{"164":"9B"},R:{"164":"ID"},S:{"1":"JD KD"}},B:4,C:"text-emphasis styling",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 i j k l q r s t u v w x y z D","2":"C K L H M N O","164":"P Q R S T U V W X Y Z a b c d e f g h"},C:{"1":"0 1 2 3 TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB PC QC","322":"SB"},D:{"1":"0 1 2 3 i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o","164":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC","164":"E TC"},F:{"1":"V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","164":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC","164":"5C 6C"},J:{"2":"E","164":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o HD ID","164":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B"},Q:{"164":"BC"},R:{"164":"JD"},S:{"1":"KD LD"}},B:4,C:"text-emphasis styling",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js index 7e4ff735d447c1..60adce05d7eedb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B","2":"KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","8":"3 LC 0B J K NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","33":"H YC ZC aC bC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"p xB","33":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"CSS3 Text-overflow",D:true}; +module.exports={A:{A:{"1":"J E F G A B","2":"NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","8":"4 OC 2B I J PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","33":"G aC bC cC dC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"p yB","33":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"CSS3 Text-overflow",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js index 7a100edb482051..b56c89dde3c902 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","258":"8"},E:{"2":"3 J K F G H A B C L M I D PC 7B RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","258":"QC"},F:{"1":"PB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB QB YC ZC aC bC wB IC cC xB"},G:{"2":"7B dC JC","33":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"33":"E"},N:{"161":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS text-size-adjust",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","258":"9"},E:{"2":"4 I J E F G A B C K L H RC 9B TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","258":"SC"},F:{"1":"QB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB RB aC bC cC dC xB LC eC yB"},G:{"2":"9B fC MC","33":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"33":"D"},N:{"161":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS text-size-adjust",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js index aec8df968670d2..9ea8d57053356b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M","33":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","161":"I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB NC OC","161":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","450":"UB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"33":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"33":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","36":"7B"},H:{"2":"yC"},I:{"2":"0B","33":"J E zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"2":"A B C wB IC xB","33":"p"},L:{"33":"E"},M:{"161":"E"},N:{"2":"A B"},O:{"33":"yB"},P:{"33":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"33":"9B"},R:{"33":"ID"},S:{"161":"JD KD"}},B:7,C:"CSS text-stroke and text-fill",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L","33":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","161":"H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB PC QC","161":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","450":"VB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"33":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"33":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","36":"9B"},H:{"2":"0C"},I:{"2":"2B","33":"I D 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"2":"A B C xB LC yB","33":"p"},L:{"33":"D"},M:{"161":"D"},N:{"2":"A B"},O:{"33":"zB"},P:{"33":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"33":"BC"},R:{"33":"JD"},S:{"161":"KD LD"}},B:7,C:"CSS text-stroke and text-fill",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js index 32297cad850e29..98c7d6f6f01362 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Node.textContent",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Node.textContent",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js index ca7d8a10f5ebdc..278f32e29d708e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D O NC OC","132":"4"},D:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"TextEncoder & TextDecoder",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N O PC QC","132":"5"},D:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"TextEncoder & TextDecoder",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js index 29e1bec34f43b0..6df9d98ce42d34 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F KC","66":"G H A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB","2":"3 4 LC 0B J K F G H A B C L M I N D O m n o NC OC","66":"5","129":"mB nB oB pB qB p rB sB tB uB","388":"0 1 2 vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T","2":"3 4 J K F G H A B C L M I N D O m n","1540":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"F G H A B C L SC TC 8B wB xB","2":"3 J K PC 7B QC RC","513":"M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB xB","2":"H B C YC ZC aC bC wB IC cC","1540":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"129":"E"},N:{"1":"B","66":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"TLS 1.1",D:true}; +module.exports={A:{A:{"1":"B","2":"J E NC","66":"F G A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB","2":"4 5 OC 2B I J E F G A B C K L H M N O m n o PC QC","66":"6","129":"nB oB pB qB rB p sB tB uB vB","388":"0 1 2 3 wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T","2":"4 5 I J E F G A B C K L H M N O m n","1540":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"E F G A B C K UC VC AC xB yB","2":"4 I J RC 9B SC TC","513":"L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB yB","2":"G B C aC bC cC dC xB LC eC","1540":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"129":"D"},N:{"1":"B","66":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"TLS 1.1",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js index ad282780201079..1778a9baa07bed 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F KC","66":"G H A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 LC 0B J K F G H A B C L M I N D O m n o NC OC","66":"6 7 8"},D:{"1":"0 1 2 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H I YC","66":"B C ZC aC bC wB IC cC xB"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"p xB","2":"A B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","66":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"TLS 1.2",D:true}; +module.exports={A:{A:{"1":"B","2":"J E NC","66":"F G A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 OC 2B I J E F G A B C K L H M N O m n o PC QC","66":"7 8 9"},D:{"1":"0 1 2 3 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC"},F:{"1":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G H aC","66":"B C bC cC dC xB LC eC yB"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"p yB","2":"A B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","66":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"TLS 1.2",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js index ca5d76ec3b5c68..75b6c2e12bd509 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB NC OC","132":"fB 2B gB","450":"XB YB ZB aB bB cB dB eB 1B"},D:{"1":"0 1 2 oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","706":"aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","1028":"L xB 9B"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB","706":"aB bB cB"},G:{"1":"D pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:6,C:"TLS 1.3",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB PC QC","132":"gB 4B hB","450":"YB ZB aB bB cB dB eB fB 3B"},D:{"1":"0 1 2 3 pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","706":"bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","1028":"K yB BC"},F:{"1":"eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB","706":"bB cB dB"},G:{"1":"rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:6,C:"TLS 1.3",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js index a29518b1fdcd17..8064fd977cebf3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","8":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","578":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 O m n o YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","4":"3 J K F G H A B C L M I N D","194":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"0 1 2 5 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A","260":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:2,C:"Touch events",D:true}; +module.exports={A:{A:{"2":"J E F G NC","8":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","578":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 O m n o ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","4":"4 I J E F G A B C K L H M N","194":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"0 1 2 3 6 7 8 9 o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","260":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:2,C:"Touch events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js index 19d2335fc38482..f6ea1a4982decb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G","129":"A B","161":"H"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M I N"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","33":"3 J K F G H A B C L M I NC OC"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","33":"3 J K F G PC 7B QC RC SC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H YC ZC","33":"4 B C I N D O m n o aC bC wB IC cC"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","33":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","33":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 2D Transforms",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F","129":"A B","161":"G"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L H M"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","33":"4 I J E F G A B C K L H PC QC"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","33":"4 I J E F RC 9B SC TC UC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G aC bC","33":"5 B C H M N O m n o cC dC xB LC eC"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","33":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 2D Transforms",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js index b09139b23a3ba9..6f919f9bae84b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H NC OC","33":"A B C L M I"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B","33":"4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B","33":"3 J K F G QC RC SC","257":"H A B C L M I TC 8B wB xB 9B UC VC AC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 I N D O m n o"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","33":"G 7B dC JC eC fC gC hC","257":"iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"zC 0C 1C","33":"0B J 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:5,C:"CSS3 3D Transforms",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G PC QC","33":"A B C K L H"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B","33":"5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B","33":"4 I J E F SC TC UC","257":"G A B C K L H VC AC xB yB BC WC XC CC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 H M N O m n o"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","33":"F 9B fC MC gC hC iC jC","257":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"1C 2C 3C","33":"2B I 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:5,C:"CSS3 3D Transforms",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js index f0131c5fbf29e8..c7aa0febfc783c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Trusted Types for DOM manipulation",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Trusted Types for DOM manipulation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js index 1611a84ee91831..0474204c5dc067 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l ZC aC bC wB IC cC xB","2":"H YC"},G:{"1":"G D JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC"},H:{"2":"yC"},I:{"1":"0B J E 0C 1C 2C JC 3C 4C","2":"zC"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"TTF/OTF - TrueType and OpenType font support",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l bC cC dC xB LC eC yB","2":"G aC"},G:{"1":"F MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC"},H:{"2":"0C"},I:{"1":"2B I D 2C 3C 4C MC 5C 6C","2":"1C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"TTF/OTF - TrueType and OpenType font support",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js index 0a7809c0e5981b..f984dd8bef1b44 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"K F G H KC","132":"A"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","260":"QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC","260":"JC"},H:{"1":"yC"},I:{"1":"J E 2C JC 3C 4C","2":"0B zC 0C 1C"},J:{"1":"A","2":"F"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Typed Arrays",D:true}; +module.exports={A:{A:{"1":"B","2":"J E F G NC","132":"A"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","260":"SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC","260":"MC"},H:{"1":"0C"},I:{"1":"I D 4C MC 5C 6C","2":"2B 1C 2C 3C"},J:{"1":"A","2":"E"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Typed Arrays",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js index 29d8d8c9783923..2c2dbe244a2e29 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O t u v w x y z E","513":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s"},C:{"1":"lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y","2":"1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB E 4B 5B 6B MC NC OC","322":"0 TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB t u v w x y z E 4B 5B 6B","130":"KB LB MB","513":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g","578":"h i j k l q r s"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB NB YC ZC aC bC wB IC cC xB","513":"MB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"D sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"1":"KD","322":"JD"}},B:7,C:"FIDO U2F API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O t u v w x y z D","513":"P Q R S T U V W X Y Z a b c d e f g h i j k l q r s"},C:{"1":"mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y","2":"1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB D 6B 7B 8B PC QC","322":"0 UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB t u v w x y z D 6B 7B 8B","130":"LB MB NB","513":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g","578":"h i j k l q r s"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB OB aC bC cC dC xB LC eC yB","513":"NB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"1":"LD","322":"KD"}},B:7,C:"FIDO U2F API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js index 730e6e37d80a7c..125244ed74c0ea 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB NC OC"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB"},G:{"1":"D nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC","16":"mC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:1,C:"unhandledrejection/rejectionhandled events",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB PC QC"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB"},G:{"1":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC","16":"oC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:1,C:"unhandledrejection/rejectionhandled events",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js index ebf27056ed144a..ec1bebdee99184 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB NC OC"},D:{"1":"0 1 2 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Upgrade Insecure Requests",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PC QC"},D:{"1":"0 1 2 3 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Upgrade Insecure Requests",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js index 430ee8a6e983a1..c84a67d8b36710 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","66":"P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p","66":"rB sB tB uB vB P Q"},E:{"1":"D CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB"},F:{"1":"mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB YC ZC aC bC wB IC cC xB","66":"kB lB"},G:{"1":"D CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o CD DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"URL Scroll-To-Text Fragment",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","66":"P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p","66":"sB tB uB vB wB P Q"},E:{"1":"EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B"},F:{"1":"nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB aC bC cC dC xB LC eC yB","66":"lB mB"},G:{"1":"EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"URL Scroll-To-Text Fragment",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js index 9ec7b6028bfd95..90bc9c9bb6283d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 LC 0B J K F G H A B C L M I N D O m n o NC OC"},D:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O m n o","130":"5 6 7 8 9 AB BB CB DB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC RC","130":"F"},F:{"1":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","130":"I N D O"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC","130":"gC"},H:{"2":"yC"},I:{"1":"E 4C","2":"0B J zC 0C 1C 2C JC","130":"3C"},J:{"2":"F","130":"A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"URL API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 OC 2B I J E F G A B C K L H M N O m n o PC QC"},D:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O m n o","130":"6 7 8 9 AB BB CB DB EB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC TC","130":"E"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","130":"H M N O"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC","130":"iC"},H:{"2":"0C"},I:{"1":"D 6C","2":"2B I 1C 2C 3C 4C MC","130":"5C"},J:{"2":"E","130":"A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"URL API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js index 19c89562e8083a..7ad312ce2a4e19 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","132":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},D:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C L M I D 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB"},G:{"1":"D lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"URLSearchParams",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","132":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB"},G:{"1":"nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"URLSearchParams",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js index 39b533e2b83f6b..e9aad25e72b3e8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","132":"3 QC"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"1":"yC"},I:{"1":"0B J E 2C JC 3C 4C","2":"zC 0C 1C"},J:{"1":"F A"},K:{"1":"C p IC xB","2":"A B wB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"ECMAScript 5 Strict Mode",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","132":"4 SC"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"1":"0C"},I:{"1":"2B I D 4C MC 5C 6C","2":"1C 2C 3C"},J:{"1":"E A"},K:{"1":"C p LC yB","2":"A B xB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"ECMAScript 5 Strict Mode",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js index 11ceee51c22a42..6c970d507d9a74 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","33":"A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","33":"C L M I N D O"},C:{"1":"0 1 2 nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","33":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB NC OC"},D:{"1":"0 1 2 aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","33":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"XC","33":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","33":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"33":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","33":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"33":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"33":"A B"},O:{"1":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","33":"J 5C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","33":"JD"}},B:5,C:"CSS user-select: none",D:true}; +module.exports={A:{A:{"2":"J E F G NC","33":"A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","33":"C K L H M N O"},C:{"1":"0 1 2 3 oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB PC QC"},D:{"1":"0 1 2 3 bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","33":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"ZC","33":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","33":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},G:{"33":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","33":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"33":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"33":"A B"},O:{"1":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","33":"I 7C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","33":"KD"}},B:5,C:"CSS user-select: none",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js index 798e4c336ce31a..8456cc4b02b826 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB NC OC"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 J K F G H A B C L M I N D O m n o"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"User Timing API",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB PC QC"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 I J E F G A B C K L H M N O m n o"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"User Timing API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js index b4825a35488a74..1ce8fe8191020f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB NC OC","4609":"gB hB iB jB kB lB mB nB oB","4674":"2B","5698":"fB","7490":"ZB aB bB cB dB","7746":"eB 1B","8705":"0 1 2 pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","4097":"kB","4290":"1B fB 2B","6148":"gB hB iB jB"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","4609":"B C wB xB","8193":"L M 9B UC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB YC ZC aC bC wB IC cC xB","4097":"ZB","6148":"VB WB XB YB"},G:{"1":"D qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC","4097":"mC nC oC pC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"4097":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"2":"J 5C 6C 7C","4097":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:5,C:"Variable fonts",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB PC QC","4609":"hB iB jB kB lB mB nB oB pB","4674":"4B","5698":"gB","7490":"aB bB cB dB eB","7746":"fB 3B","8705":"0 1 2 3 qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB","4097":"lB","4290":"3B gB 4B","6148":"hB iB jB kB"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","4609":"B C xB yB","8193":"K L BC WC"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB aC bC cC dC xB LC eC yB","4097":"aB","6148":"WB XB YB ZB"},G:{"1":"sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC","4097":"oC pC qC rC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"4097":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"2":"I 7C 8C 9C","4097":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:5,C:"Variable fonts",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js index 94ac7c497d3547..26497558588368 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K F G H A B C L M"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","2":"H B YC ZC aC bC wB IC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"1":"yC"},I:{"1":"E 3C 4C","16":"0B J zC 0C 1C 2C JC"},J:{"16":"F A"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"SVG vector-effect: non-scaling-stroke",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J E F G A B C K L"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","2":"G B aC bC cC dC xB LC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"1":"0C"},I:{"1":"D 5C 6C","16":"2B I 1C 2C 3C 4C MC"},J:{"16":"E A"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"SVG vector-effect: non-scaling-stroke",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js index 9264672343e317..1fba5fb231b809 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A NC OC","33":"B C L M I"},D:{"1":"0 1 2 CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C I N YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"Vibration API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A PC QC","33":"B C K L H"},D:{"1":"0 1 2 3 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C H M aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"Vibration API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js index e0d609189cafc2..835bb5d465325a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","260":"3 4 J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A QC RC SC TC 8B","2":"PC 7B","513":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G 7B dC JC eC fC gC hC iC jC kC lC","513":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","132":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Video element",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","260":"4 5 I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A SC TC UC VC AC","2":"RC 9B","513":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC","513":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","132":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Video element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js index bfaf865c4234d5..0d1dbc480b1962 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"C L M I N D O","322":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","194":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","322":"0 1 2 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K PC 7B QC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB YC ZC aC bC wB IC cC xB","322":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","322":"p"},L:{"322":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"322":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"322":"9B"},R:{"322":"ID"},S:{"194":"JD KD"}},B:1,C:"Video Tracks",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"C K L H M N O","322":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","194":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","322":"0 1 2 3 SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J RC 9B SC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB aC bC cC dC xB LC eC yB","322":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","322":"p"},L:{"322":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"322":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"322":"BC"},R:{"322":"JD"},S:{"194":"KD LD"}},B:1,C:"Video Tracks",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/view-transitions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/view-transitions.js index 2c5f891077093a..96ed0c8b4352d3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/view-transitions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/view-transitions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"View Transitions API (single-document)",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"View Transitions API (single-document)",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js index 0aa14427504f9a..4dc66a0700e145 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","194":"s t u"},C:{"1":"0 1 2 k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j NC OC"},D:{"1":"0 1 2 v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i","194":"j k l q r s t u"},E:{"1":"D BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC"},F:{"1":"d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z YC ZC aC bC wB IC cC xB","194":"a b c"},G:{"1":"D BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"n o","2":"J m 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:5,C:"Small, Large, and Dynamic viewport units",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r","194":"s t u"},C:{"1":"0 1 2 3 k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j PC QC"},D:{"1":"0 1 2 3 v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i","194":"j k l q r s t u"},E:{"1":"DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC"},F:{"1":"d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z aC bC cC dC xB LC eC yB","194":"a b c"},G:{"1":"DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"n o","2":"I m 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:5,C:"Small, Large, and Dynamic viewport units",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js index 1148dcbf50a719..2b93539d11d40a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","132":"H","260":"A B"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","260":"C L M I"},C:{"1":"0 1 2 4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M I N D O NC OC"},D:{"1":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 J K F G H A B C L M I N D O","260":"5 6 7 m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC","260":"K"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC","516":"gC","772":"fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"260":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"Viewport units: vw, vh, vmin, vmax",D:true}; +module.exports={A:{A:{"2":"J E F NC","132":"G","260":"A B"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","260":"C K L H"},C:{"1":"0 1 2 3 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L H M N O PC QC"},D:{"1":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 I J E F G A B C K L H M N O","260":"6 7 8 m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC","260":"J"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC","516":"iC","772":"hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"Viewport units: vw, vh, vmin, vmax",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js index 54d438ba7c26ac..4e4ce2ae4eab18 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","4":"G H A B"},B:{"4":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"4":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"PC 7B","4":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H","4":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"4":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"4":"yC"},I:{"2":"0B J zC 0C 1C 2C JC","4":"E 3C 4C"},J:{"2":"F A"},K:{"4":"A B C p wB IC xB"},L:{"4":"E"},M:{"4":"E"},N:{"4":"A B"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"4":"9B"},R:{"4":"ID"},S:{"4":"JD KD"}},B:2,C:"WAI-ARIA Accessibility features",D:true}; +module.exports={A:{A:{"2":"J E NC","4":"F G A B"},B:{"4":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"4":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"RC 9B","4":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G","4":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"4":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"4":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC","4":"D 5C 6C"},J:{"2":"E A"},K:{"4":"A B C p xB LC yB"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"4":"BC"},R:{"4":"JD"},S:{"4":"KD LD"}},B:2,C:"WAI-ARIA Accessibility features",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js index c9a72637a87137..8dbee5070f1c70 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","194":"P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB","194":"pB qB p rB sB tB uB vB P Q R S T"},E:{"1":"D FC GC HC XC","2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC"},F:{"1":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB YC ZC aC bC wB IC cC xB","194":"eB fB gB hB iB jB kB lB mB nB oB pB qB"},G:{"1":"D FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o DD ED zB FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:4,C:"Screen Wake Lock API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","194":"P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB","194":"qB rB p sB tB uB vB wB P Q R S T"},E:{"1":"HC IC JC 1B KC ZC","2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC"},F:{"1":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB aC bC cC dC xB LC eC yB","194":"fB gB hB iB jB kB lB mB nB oB pB qB rB"},G:{"1":"HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o FD GD 0B 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:4,C:"Screen Wake Lock API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js index b859eb6565edd0..3bd97331b17bee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M","578":"I"},C:{"1":"0 1 2 ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB NC OC","194":"TB UB VB WB XB","1025":"YB"},D:{"1":"0 1 2 dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","322":"XB YB ZB aB bB cB"},E:{"1":"B C L M I D wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB YC ZC aC bC wB IC cC xB","322":"KB LB MB NB OB PB"},G:{"1":"D mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","194":"JD"}},B:6,C:"WebAssembly",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L","578":"H"},C:{"1":"0 1 2 3 aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB PC QC","194":"UB VB WB XB YB","1025":"ZB"},D:{"1":"0 1 2 3 eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","322":"YB ZB aB bB cB dB"},E:{"1":"B C K L H xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB aC bC cC dC xB LC eC yB","322":"LB MB NB OB PB QB"},G:{"1":"oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","194":"KD"}},B:6,C:"WebAssembly",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js index 14c2e3216148b9..4b709d23096229 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC 0B"},D:{"1":"0 1 2 4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l aC bC wB IC cC xB","2":"H YC ZC"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","16":"A"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"Wav audio format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC 2B"},D:{"1":"0 1 2 3 5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l cC dC xB LC eC yB","2":"G aC bC"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"Wav audio format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js index 0189574cf4f66e..05ce8d8c6596ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F KC","2":"G H A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"PC"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","16":"H"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC"},H:{"1":"yC"},I:{"1":"0B J E 1C 2C JC 3C 4C","16":"zC 0C"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"wbr (word break opportunity) element",D:true}; +module.exports={A:{A:{"1":"J E NC","2":"F G A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"RC"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","16":"G"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC"},H:{"1":"0C"},I:{"1":"2B I D 3C 4C MC 5C 6C","16":"1C 2C"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"wbr (word break opportunity) element",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js index d13cec2c9c364d..25e738d7f33bad 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","260":"P Q R S"},C:{"1":"0 1 2 R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB NC OC","260":"1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB","516":"TB UB VB WB XB YB ZB aB bB cB dB eB","580":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB","2049":"sB tB uB vB P Q"},D:{"1":"0 1 2 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB","132":"IB JB KB","260":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC 8B","1090":"B C L wB xB","2049":"M 9B UC"},F:{"1":"pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n o YC ZC aC bC wB IC cC xB","132":"5 6 7","260":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC","1090":"mC nC oC pC qC rC sC","2049":"D tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"260":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"260":"9B"},R:{"1":"ID"},S:{"1":"KD","516":"JD"}},B:5,C:"Web Animations API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","260":"P Q R S"},C:{"1":"0 1 2 3 R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB PC QC","260":"3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB","516":"UB VB WB XB YB ZB aB bB cB dB eB fB","580":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB","2049":"tB uB vB wB P Q"},D:{"1":"0 1 2 3 T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB","132":"JB KB LB","260":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC AC","1090":"B C K xB yB","2049":"L BC WC"},F:{"1":"qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n o aC bC cC dC xB LC eC yB","132":"6 7 8","260":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC","1090":"oC pC qC rC sC tC uC","2049":"vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"260":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"260":"BC"},R:{"1":"JD"},S:{"1":"LD","516":"KD"}},B:5,C:"Web Animations API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js index f60731ad6ce00c..dbe04e73bc216d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N","130":"D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","578":"tB uB vB P Q R 3B S T U"},D:{"1":"0 1 2 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB"},E:{"2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC","4":"D XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC","4":"D FC GC HC","260":"nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"Add to home screen (A2HS)",D:false}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","578":"uB vB wB P Q R 5B S T U"},D:{"1":"0 1 2 3 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC","4":"1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC","4":"HC IC JC 1B KC","260":"pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"Add to home screen (A2HS)",D:false}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js index ce5d2c90544a13..979d7e1365c4c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","1025":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","194":"RB SB TB UB VB WB XB YB","706":"ZB aB bB","1025":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB YC ZC aC bC wB IC cC xB","450":"IB JB KB LB","706":"MB NB OB","1025":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C 4C","1025":"E"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","1025":"p"},L:{"1025":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1025":"yB"},P:{"1":"m n o 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C"},Q:{"2":"9B"},R:{"1025":"ID"},S:{"2":"JD KD"}},B:7,C:"Web Bluetooth",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","1025":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","194":"SB TB UB VB WB XB YB ZB","706":"aB bB cB","1025":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB aC bC cC dC xB LC eC yB","450":"JB KB LB MB","706":"NB OB PB","1025":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C 6C","1025":"D"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","1025":"p"},L:{"1025":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1025":"zB"},P:{"1":"m n o 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C"},Q:{"2":"BC"},R:{"1025":"JD"},S:{"2":"KD LD"}},B:7,C:"Web Bluetooth",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js index 1616c8e994992a..98edb5db432dc8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB","66":"vB P Q R S T U V W X"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB YC ZC aC bC wB IC cC xB","66":"jB kB lB mB nB oB pB qB p rB sB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"Web Serial API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB","66":"wB P Q R S T U V W X"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB aC bC cC dC xB LC eC yB","66":"kB lB mB nB oB pB qB rB p sB tB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"Web Serial API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js index acb7f800cd078d..4992f3daa61ca4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q","516":"R S T U V W X Y Z a b c d"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"3 7 8 9 J K F G H A B C L M I N D AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X","130":"4 5 6 O m n o","1028":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"M I D UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","2049":"L xB 9B"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC","2049":"pC qC rC sC tC"},H:{"2":"yC"},I:{"2":"0B J zC 0C 1C 2C JC 3C","258":"E 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J","258":"5C 6C 7C"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:4,C:"Web Share API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q","516":"R S T U V W X Y Z a b c d"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"4 8 9 I J E F G A B C K L H M N AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X","130":"5 6 7 O m n o","1028":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"L H WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","2049":"K yB BC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC","2049":"rC sC tC uC vC"},H:{"2":"0C"},I:{"2":"2B I 1C 2C 3C 4C MC 5C","258":"D 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I","258":"7C 8C 9C"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:4,C:"Web Share API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js index c194dbe3f85cc7..8326fe7f1af1cd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C","226":"L M I N D"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B NC OC","4100":"1 2 E 4B 5B 6B MC","5124":"0 fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},D:{"1":"0 1 2 lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB"},E:{"1":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB","322":"xB"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB YC ZC aC bC wB IC cC xB"},G:{"1":"D vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC","578":"rC","2052":"uC","3076":"sC tC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1028":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2":"JD"}},B:2,C:"Web Authentication API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C","226":"K L H M N"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B PC QC","4100":"1 2 3 D 6B 7B 8B","5124":"0 gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z"},D:{"1":"0 1 2 3 mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB"},E:{"1":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB","322":"yB"},F:{"1":"bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB aC bC cC dC xB LC eC yB"},G:{"1":"xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC","578":"tC","2052":"wC","3076":"uC vC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2":"KD"}},B:2,C:"Web Authentication API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webcodecs.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webcodecs.js index d4634732b4f6d1..2854f5bd18925c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webcodecs.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webcodecs.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c"},E:{"2":"3 J K F G H A B C L M I PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC","132":"D FC GC HC XC"},F:{"1":"Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P YC ZC aC bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC","132":"D FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o FD GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"WebCodecs API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC","132":"HC IC JC 1B KC ZC"},F:{"1":"Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC","132":"HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 1B HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"WebCodecs API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js index 10e6fd59ccf596..b7e1a867737d7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"KC","8":"K F G H A","129":"B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","129":"C L M I N D O"},C:{"1":"0 1 2 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","129":"3 4 5 J K F G H A B C L M I N D O m n o"},D:{"1":"0 1 2 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F","129":"4 5 6 7 8 9 G H A B C L M I N D O m n o AB BB CB DB EB"},E:{"1":"G H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B","129":"K F QC RC SC"},F:{"1":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B YC ZC aC bC wB IC cC","129":"C I N D O xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC gC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"1":"A","2":"F"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A","129":"B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","129":"JD"}},B:6,C:"WebGL - 3D Canvas graphics",D:true}; +module.exports={A:{A:{"2":"NC","8":"J E F G A","129":"B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","129":"C K L H M N O"},C:{"1":"0 1 2 3 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","129":"4 5 6 I J E F G A B C K L H M N O m n o"},D:{"1":"0 1 2 3 GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E","129":"5 6 7 8 9 F G A B C K L H M N O m n o AB BB CB DB EB FB"},E:{"1":"F G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B","129":"J E SC TC UC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B aC bC cC dC xB LC eC","129":"C H M N O yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC iC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"1":"A","2":"E"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","129":"B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","129":"KD"}},B:6,C:"WebGL - 3D Canvas graphics",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js index ced6f9e435b612..71fd2226439178 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 LC 0B J K F G H A B C L M I N D O m n o NC OC","194":"OB PB QB","450":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB","2242":"RB SB TB UB VB WB"},D:{"1":"0 1 2 cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","578":"PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"I D VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H A PC 7B QC RC SC TC","1090":"B C L M 8B wB xB 9B UC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB YC ZC aC bC wB IC cC xB"},G:{"1":"D wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC","1090":"oC pC qC rC sC tC uC vC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","2242":"JD"}},B:6,C:"WebGL 2.0",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 OC 2B I J E F G A B C K L H M N O m n o PC QC","194":"PB QB RB","450":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","2242":"SB TB UB VB WB XB"},D:{"1":"0 1 2 3 dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","578":"QB RB SB TB UB VB WB XB YB ZB aB bB cB"},E:{"1":"H XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A RC 9B SC TC UC VC","1090":"B C K L AC xB yB BC WC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB aC bC cC dC xB LC eC yB"},G:{"1":"yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC","1090":"qC rC sC tC uC vC wC xC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","2242":"KD"}},B:6,C:"WebGL 2.0",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js index 5c52a7b9cdfe64..cc8d9f2e29fed9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 E","2":"C L M I N D O P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i j k l q r s t u v w x y z"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB NC OC","194":"0 1 2 hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i j k l q r s t u v w x y z","2049":"0 1 2 E 4B 5B 6B"},E:{"2":"3 J K F G H A B I D PC 7B QC RC SC TC 8B VC AC BC yB WC zB CC DC EC FC GC HC XC","322":"C L M wB xB 9B UC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB YC ZC aC bC wB IC cC xB","578":"p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h","2049":"i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"194":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD","194":"KD"}},B:5,C:"WebGPU",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 D","2":"C K L H M N O P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i j k l q r s t u v w x y z"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB PC QC","194":"0 1 2 3 iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i j k l q r s t u v w x y z","2049":"0 1 2 3 D 6B 7B 8B"},E:{"2":"4 I J E F G A B H RC 9B SC TC UC VC AC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","322":"C K L xB yB BC WC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB aC bC cC dC xB LC eC yB","578":"p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h","2049":"i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD","194":"LD"}},B:5,C:"WebGPU",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js index df66037a3124ed..6308b57d2eb017 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB","66":"vB P Q R S T U V W X"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB YC ZC aC bC wB IC cC xB","66":"kB lB mB nB oB pB qB p rB sB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"WebHID API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB","66":"wB P Q R S T U V W X"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB aC bC cC dC xB LC eC yB","66":"lB mB nB oB pB qB rB p sB tB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"WebHID API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js index 2f2164ba9f5152..fa888214934d4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"16":"3 J K F G H A B C L M I","132":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"H B C YC ZC aC bC wB IC cC xB","132":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"CSS -webkit-user-drag property",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"16":"4 I J E F G A B C K L H","132":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"G B C aC bC cC dC xB LC eC yB","132":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"CSS -webkit-user-drag property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js index 1ad3d3d00f4216..0c8996e80c6865 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G KC","520":"H A B"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","8":"C L","388":"M I N D O"},C:{"1":"0 1 2 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o"},D:{"1":"0 1 2 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J","132":"4 5 6 K F G H A B C L M I N D O m n o"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"PC","8":"3 J 7B QC","520":"K F G H A B C RC SC TC 8B wB","1028":"L xB 9B","7172":"M","8196":"I UC VC AC BC yB WC"},F:{"1":"4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC aC","132":"B C I bC wB IC cC xB"},G:{"2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC","1028":"pC qC rC sC tC","3076":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"zC 0C","132":"0B J 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"8":"A B"},O:{"1":"yB"},P:{"1":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD","132":"J"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:6,C:"WebM video format",D:true}; +module.exports={A:{A:{"2":"J E F NC","520":"G A B"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","8":"C K","388":"L H M N O"},C:{"1":"0 1 2 3 BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB"},D:{"1":"0 1 2 3 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I","132":"5 6 7 J E F G A B C K L H M N O m n o"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"RC","8":"4 I 9B SC","520":"J E F G A B C TC UC VC AC xB","1028":"K yB BC","7172":"L","8196":"H WC XC CC DC zB YC"},F:{"1":"5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC cC","132":"B C H dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC","1028":"rC sC tC uC vC","3076":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"1C 2C","132":"2B I 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"zB"},P:{"1":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID","132":"I"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:6,C:"WebM video format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js index c94637686d0ebb..868b47cc80f77c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Y Z a b c d e f g h i j k l q r s t u v w x y z E","450":"Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","450":"Q R S T U V W X"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","450":"lB mB nB oB pB qB p rB sB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"257":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"Web NFC",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Y Z a b c d e f g h i j k l q r s t u v w x y z D","450":"Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","450":"Q R S T U V W X"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","450":"mB nB oB pB qB rB p sB tB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"257":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"Web NFC",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js index d2621a228da3e3..26f8450f662751 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D"},C:{"1":"0 1 2 jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","8":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB"},D:{"1":"0 1 2 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J","8":"K F G","132":"4 H A B C L M I N D O m n o","260":"5 6 7 8 9 AB BB CB DB"},E:{"1":"D zB CC DC EC FC GC HC XC","2":"3 J K F G H A B C L PC 7B QC RC SC TC 8B wB xB 9B","516":"M I UC VC AC BC yB WC"},F:{"1":"4 5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H YC ZC aC","8":"B bC","132":"wB IC cC","260":"C I N D O xB"},G:{"1":"D uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC"},H:{"1":"yC"},I:{"1":"E JC 3C 4C","2":"0B zC 0C 1C","132":"J 2C"},J:{"2":"F A"},K:{"1":"C p wB IC xB","2":"A","132":"B"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","8":"JD"}},B:6,C:"WebP image format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N"},C:{"1":"0 1 2 3 kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","8":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB"},D:{"1":"0 1 2 3 FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I","8":"J E F","132":"5 G A B C K L H M N O m n o","260":"6 7 8 9 AB BB CB DB EB"},E:{"1":"0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G A B C K RC 9B SC TC UC VC AC xB yB BC","516":"L H WC XC CC DC zB YC"},F:{"1":"5 6 7 8 9 m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G aC bC cC","8":"B dC","132":"xB LC eC","260":"C H M N O yB"},G:{"1":"wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC"},H:{"1":"0C"},I:{"1":"D MC 5C 6C","2":"2B 1C 2C 3C","132":"I 4C"},J:{"2":"E A"},K:{"1":"C p xB LC yB","2":"A","132":"B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","8":"KD"}},B:6,C:"WebP image format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js index 98598bce1fa912..0a49d10c61a21e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B NC OC","132":"3 J","292":"K F G H A"},D:{"1":"0 1 2 4 5 6 7 8 9 N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 J K F G H A B C L M","260":"I"},E:{"1":"F G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","132":"3 QC","260":"K RC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H YC ZC aC bC","132":"B C wB IC cC"},G:{"1":"G D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC","132":"JC eC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","129":"F"},K:{"1":"p xB","2":"A","132":"B C wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Web Sockets",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B PC QC","132":"4 I","292":"J E F G A"},D:{"1":"0 1 2 3 5 6 7 8 9 M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 I J E F G A B C K L","260":"H"},E:{"1":"E F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","132":"4 SC","260":"J TC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G aC bC cC dC","132":"B C xB LC eC"},G:{"1":"F hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC","132":"MC gC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","129":"E"},K:{"1":"p yB","2":"A","132":"B C xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Web Sockets",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webtransport.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webtransport.js index a9b107266cfa8e..eaef354b00f904 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webtransport.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webtransport.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 h i j k l q r s t u v w x y z E","2":"C L M I N D O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"1 2 E 4B 5B 6B MC","2":"0 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z NC OC"},D:{"1":"0 1 2 g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z e f","66":"a b c d"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o GD HD","2":"J 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:5,C:"WebTransport",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 h i j k l q r s t u v w x y z D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"1 2 3 D 6B 7B 8B","2":"0 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z PC QC"},D:{"1":"0 1 2 3 g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z e f","66":"a b c d"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o HD ID","2":"I 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:5,C:"WebTransport",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js index 06169ee1f81cb9..7baf4ccbb5948a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","66":"aB bB cB dB eB 1B fB"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB YC ZC aC bC wB IC cC xB","66":"NB OB PB QB RB SB TB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"m n o 8C 9C 8B AD BD CD DD ED zB FD GD HD","2":"J 5C 6C 7C"},Q:{"2":"9B"},R:{"1":"ID"},S:{"2":"JD KD"}},B:7,C:"WebUSB",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","66":"bB cB dB eB fB 3B gB"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB aC bC cC dC xB LC eC yB","66":"OB PB QB RB SB TB UB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"m n o AD BD AC CD DD ED FD GD 0B 1B HD ID","2":"I 7C 8C 9C"},Q:{"2":"BC"},R:{"1":"JD"},S:{"2":"KD LD"}},B:7,C:"WebUSB",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js index 3a86cb107dd453..4cfd6cb5696fca 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","66":"P","257":"I N D O"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB NC OC","129":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","194":"aB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","66":"dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","66":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"513":"J","516":"m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:7,C:"WebVR API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","66":"P","257":"H M N O"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB PC QC","129":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","194":"bB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","66":"eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","66":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"513":"I","516":"m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:7,C:"WebVR API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js index f7d57a13c1c98e..7ebf4e41186771 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 LC 0B J K F G H A B C L M I N D O m n o NC OC","66":"6 7 8 9 AB BB CB","129":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","257":"0 1 2 bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"1":"0 1 2 4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 J K F G H A B C L M I N D"},E:{"1":"K F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC eC fC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B J zC 0C 1C 2C JC"},J:{"1":"A","2":"F"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"B","2":"A"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"129":"JD KD"}},B:4,C:"WebVTT - Web Video Text Tracks",D:true}; +module.exports={A:{A:{"1":"A B","2":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 OC 2B I J E F G A B C K L H M N O m n o PC QC","66":"7 8 9 AB BB CB DB","129":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","257":"0 1 2 3 cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"1":"0 1 2 3 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 I J E F G A B C K L H M N"},E:{"1":"J E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC gC hC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","2":"E"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"129":"KD LD"}},B:4,C:"WebVTT - Web Video Text Tracks",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js index b302b16bf75225..eb946a4cc2dbda 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"KC","8":"K F G H"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","8":"LC 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","8":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l bC wB IC cC xB","2":"H YC","8":"ZC aC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"E zC 3C 4C","2":"0B J 0C 1C 2C JC"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","8":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Web Workers",D:true}; +module.exports={A:{A:{"1":"A B","2":"NC","8":"J E F G"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","8":"OC 2B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","8":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l dC xB LC eC yB","2":"G aC","8":"bC cC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"D 1C 5C 6C","2":"2B I 2C 3C 4C MC"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Web Workers",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js index f7087a7c45feb9..1349dce99082d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"C L M I N D O","132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB NC OC","322":"0 1 2 uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC"},D:{"2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB","66":"jB kB lB mB nB oB pB qB p rB sB tB uB vB","132":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"2":"3 J K F G H A B C PC 7B QC RC SC TC 8B wB xB","578":"L M I D 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YC ZC aC bC wB IC cC xB","66":"YB ZB aB bB cB dB eB fB gB hB iB jB","132":"kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C wB IC xB","132":"p"},L:{"132":"E"},M:{"322":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J 5C 6C 7C 8C 9C 8B AD","132":"m n o BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD","322":"KD"}},B:4,C:"WebXR Device API",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"C K L H M N O","132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB PC QC","322":"0 1 2 3 vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},D:{"2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB","66":"kB lB mB nB oB pB qB rB p sB tB uB vB wB","132":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"2":"4 I J E F G A B C RC 9B SC TC UC VC AC xB yB","578":"K L H BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB aC bC cC dC xB LC eC yB","66":"ZB aB bB cB dB eB fB gB hB iB jB kB","132":"lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C xB LC yB","132":"p"},L:{"132":"D"},M:{"322":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I 7C 8C 9C AD BD AC CD","132":"m n o DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD","322":"LD"}},B:4,C:"WebXR Device API",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js index cedd628bf894c4..bd465b2901004f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L M I N D O"},C:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB NC OC","194":"BB CB DB EB FB GB HB"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 5 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS will-change property",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K L H M N O"},C:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB PC QC","194":"CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 6 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS will-change property",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js index bae20d53d5c921..ed53f15954576b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC OC","2":"LC 0B NC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"J"},E:{"1":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J PC 7B"},F:{"1":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l wB IC cC xB","2":"H B YC ZC aC bC"},G:{"1":"G D eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC"},H:{"2":"yC"},I:{"1":"E 3C 4C","2":"0B zC 0C 1C 2C JC","130":"J"},J:{"1":"F A"},K:{"1":"B C p wB IC xB","2":"A"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"WOFF - Web Open Font Format",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B QC","2":"OC 2B PC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"I"},E:{"1":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I RC 9B"},F:{"1":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l xB LC eC yB","2":"G B aC bC cC dC"},G:{"1":"F gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC"},H:{"2":"0C"},I:{"1":"D 5C 6C","2":"2B 1C 2C 3C 4C MC","130":"I"},J:{"1":"E A"},K:{"1":"B C p xB LC yB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"WOFF - Web Open Font Format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js index 10fdd713747945..e3d1aa6474a061 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"1":"0 1 2 M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","2":"C L"},C:{"1":"0 1 2 LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB NC OC"},D:{"1":"0 1 2 IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","2":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB"},E:{"1":"C L M I D xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"3 J K F G H PC 7B QC RC SC TC","132":"A B 8B wB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"4 H B C I N D O m n o YC ZC aC bC wB IC cC xB"},G:{"1":"D kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"G 7B dC JC eC fC gC hC iC jC"},H:{"2":"yC"},I:{"1":"E","2":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"2":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:2,C:"WOFF 2.0 - Web Open Font Format",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"1":"0 1 2 3 L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","2":"C K"},C:{"1":"0 1 2 3 MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB PC QC"},D:{"1":"0 1 2 3 JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB"},E:{"1":"C K L H yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"4 I J E F G RC 9B SC TC UC VC","132":"A B AC xB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"5 G B C H M N O m n o aC bC cC dC xB LC eC yB"},G:{"1":"mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"F 9B fC MC gC hC iC jC kC lC"},H:{"2":"0C"},I:{"1":"D","2":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:2,C:"WOFF 2.0 - Web Open Font Format",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js index 00bf3f96a9c6d3..ed63984e95159d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"K F G H A B KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"3 LC 0B J K F G H A B C L M NC OC"},D:{"1":"0 1 2 QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"H A B C L M I D TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"3 J K F G PC 7B QC RC SC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","2":"H B C YC ZC aC bC wB IC cC xB","4":"4 5 6 7 8 9 I N D O m n o AB BB CB"},G:{"1":"D iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"G 7B dC JC eC fC gC hC"},H:{"2":"yC"},I:{"1":"E","4":"0B J zC 0C 1C 2C JC 3C 4C"},J:{"4":"F A"},K:{"1":"p","2":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"CSS3 word-break",D:true}; +module.exports={A:{A:{"1":"J E F G A B NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"4 OC 2B I J E F G A B C K L PC QC"},D:{"1":"0 1 2 3 RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"G A B C K L H VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"4 I J E F RC 9B SC TC UC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","2":"G B C aC bC cC dC xB LC eC yB","4":"5 6 7 8 9 H M N O m n o AB BB CB DB"},G:{"1":"kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","4":"F 9B fC MC gC hC iC jC"},H:{"2":"0C"},I:{"1":"D","4":"2B I 1C 2C 3C 4C MC 5C 6C"},J:{"4":"E A"},K:{"1":"p","2":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"CSS3 word-break",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js index 3de52058fb0536..dcb023744b8b16 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"K F G H A B KC"},B:{"1":"0 1 2 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E","4":"C L M I N D"},C:{"1":"0 1 2 VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","4":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB NC OC"},D:{"1":"0 1 2 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","4":"3 4 J K F G H A B C L M I N D O m n o"},E:{"1":"F G H A B C L M I D RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","4":"3 J K PC 7B QC"},F:{"1":"4 5 6 7 8 9 I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H YC ZC","4":"B C aC bC wB IC cC"},G:{"1":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","4":"7B dC JC eC fC"},H:{"4":"yC"},I:{"1":"E 3C 4C","4":"0B J zC 0C 1C 2C JC"},J:{"1":"A","4":"F"},K:{"1":"p","4":"A B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"4":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"KD","4":"JD"}},B:4,C:"CSS3 Overflow-wrap",D:true}; +module.exports={A:{A:{"4":"J E F G A B NC"},B:{"1":"0 1 2 3 O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","4":"C K L H M N"},C:{"1":"0 1 2 3 WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","4":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB PC QC"},D:{"1":"0 1 2 3 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","4":"4 5 I J E F G A B C K L H M N O m n o"},E:{"1":"E F G A B C K L H TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","4":"4 I J RC 9B SC"},F:{"1":"5 6 7 8 9 H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G aC bC","4":"B C cC dC xB LC eC"},G:{"1":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","4":"9B fC MC gC hC"},H:{"4":"0C"},I:{"1":"D 5C 6C","4":"2B I 1C 2C 3C 4C MC"},J:{"1":"A","4":"E"},K:{"1":"p","4":"A B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"LD","4":"KD"}},B:4,C:"CSS3 Overflow-wrap",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js index 8f1dc7d2e5238f..7f49af5540d897 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F KC","132":"G H","260":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC","2":"LC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"PC 7B"},F:{"1":"4 5 6 7 8 9 B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB","2":"H"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"4":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"Cross-document messaging",D:true}; +module.exports={A:{A:{"2":"J E NC","132":"F G","260":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC","2":"OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"RC 9B"},F:{"1":"5 6 7 8 9 B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB","2":"G"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"Cross-document messaging",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js index 4c8c2b44d2058c..a8af26f454f3a0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"G H A B","2":"K F KC"},B:{"1":"C L M I N D O","4":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB","4":"0 1 2 3 J K F G H A B C L M I N D oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","16":"LC 0B NC OC"},D:{"4":"0 1 2 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 4 5 6 7 J K F G H A B C L M I N D O m n o"},E:{"4":"K F G H A B C L M I D QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","16":"3 J PC 7B"},F:{"4":"4 5 6 7 8 9 C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l cC xB","16":"H B YC ZC aC bC wB IC"},G:{"4":"G D gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","16":"7B dC JC eC fC"},H:{"2":"yC"},I:{"4":"J E 2C JC 3C 4C","16":"0B zC 0C 1C"},J:{"4":"F A"},K:{"4":"p xB","16":"A B C wB IC"},L:{"4":"E"},M:{"4":"E"},N:{"1":"A B"},O:{"4":"yB"},P:{"4":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"4":"9B"},R:{"4":"ID"},S:{"1":"JD","4":"KD"}},B:6,C:"X-Frame-Options HTTP header",D:true}; +module.exports={A:{A:{"1":"F G A B","2":"J E NC"},B:{"1":"C K L H M N O","4":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB","4":"0 1 2 3 4 I J E F G A B C K L H M N pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"OC 2B PC QC"},D:{"4":"0 1 2 3 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 5 6 7 8 I J E F G A B C K L H M N O m n o"},E:{"4":"J E F G A B C K L H SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","16":"4 I RC 9B"},F:{"4":"5 6 7 8 9 C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l eC yB","16":"G B aC bC cC dC xB LC"},G:{"4":"F iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","16":"9B fC MC gC hC"},H:{"2":"0C"},I:{"4":"I D 4C MC 5C 6C","16":"2B 1C 2C 3C"},J:{"4":"E A"},K:{"4":"p yB","16":"A B C xB LC"},L:{"4":"D"},M:{"4":"D"},N:{"1":"A B"},O:{"4":"zB"},P:{"4":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"4":"BC"},R:{"4":"JD"},S:{"1":"KD","4":"LD"}},B:6,C:"X-Frame-Options HTTP header",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js index 494909dfb09625..ce90d87e0a22f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H KC","132":"A B"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","2":"LC 0B","260":"A B","388":"K F G H","900":"3 J NC OC"},D:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","16":"3 J K","132":"BB CB","388":"4 5 6 7 8 9 F G H A B C L M I N D O m n o AB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","2":"J PC 7B","132":"F RC","388":"3 K QC"},F:{"1":"4 5 6 7 8 9 C O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l xB","2":"H B YC ZC aC bC wB IC cC","132":"I N D"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","2":"7B dC JC","132":"gC","388":"eC fC"},H:{"2":"yC"},I:{"1":"E 4C","2":"zC 0C 1C","388":"3C","900":"0B J 2C JC"},J:{"132":"A","388":"F"},K:{"1":"C p xB","2":"A B wB IC"},L:{"1":"E"},M:{"1":"E"},N:{"132":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"XMLHttpRequest advanced features",D:true}; +module.exports={A:{A:{"2":"J E F G NC","132":"A B"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","2":"OC 2B","260":"A B","388":"J E F G","900":"4 I PC QC"},D:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","16":"4 I J","132":"CB DB","388":"5 6 7 8 9 E F G A B C K L H M N O m n o AB BB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","2":"I RC 9B","132":"E TC","388":"4 J SC"},F:{"1":"5 6 7 8 9 C O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l yB","2":"G B aC bC cC dC xB LC eC","132":"H M N"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","2":"9B fC MC","132":"iC","388":"gC hC"},H:{"2":"0C"},I:{"1":"D 6C","2":"1C 2C 3C","388":"5C","900":"2B I 4C MC"},J:{"132":"A","388":"E"},K:{"1":"C p yB","2":"A B xB LC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"XMLHttpRequest advanced features",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js index 038c385931907f..f8710e8cde03cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"H A B","2":"K F G KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"1":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"1":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"1":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"1":"yC"},I:{"1":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"1":"F A"},K:{"1":"A B C p wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:1,C:"XHTML served as application/xhtml+xml",D:true}; +module.exports={A:{A:{"1":"G A B","2":"J E F NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"1":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"1":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"1":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"1":"0C"},I:{"1":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"1":"E A"},K:{"1":"A B C p xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:1,C:"XHTML served as application/xhtml+xml",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js index 981c1cafaa1d24..e92fb3f2fb16cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"H A B KC","4":"K F G"},B:{"2":"C L M I N D O","8":"0 1 2 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"8":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"8":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B"},E:{"8":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"8":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"8":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"8":"yC"},I:{"8":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"8":"F A"},K:{"8":"A B C p wB IC xB"},L:{"8":"E"},M:{"8":"E"},N:{"2":"A B"},O:{"8":"yB"},P:{"8":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"8":"9B"},R:{"8":"ID"},S:{"8":"JD KD"}},B:7,C:"XHTML+SMIL animation",D:true}; +module.exports={A:{A:{"2":"G A B NC","4":"J E F"},B:{"2":"C K L H M N O","8":"0 1 2 3 P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"8":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B"},E:{"8":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"8":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"8":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"8":"0C"},I:{"8":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"8":"E A"},K:{"8":"A B C p xB LC yB"},L:{"8":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"8":"zB"},P:{"8":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"8":"BC"},R:{"8":"JD"},S:{"8":"KD LD"}},B:7,C:"XHTML+SMIL animation",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js index 4b3fade5914984..d8a8fdd0012574 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","260":"K F G H KC"},B:{"1":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"1":"0 1 2 4 5 6 7 8 9 C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC","132":"B","260":"3 LC 0B J K F NC OC","516":"G H A"},D:{"1":"0 1 2 DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B","132":"3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB"},E:{"1":"G H A B C L M I D SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC","132":"3 J K F PC 7B QC RC"},F:{"1":"4 5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l","16":"H YC","132":"B C I N D ZC aC bC wB IC cC xB"},G:{"1":"G D hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC","132":"7B dC JC eC fC gC"},H:{"132":"yC"},I:{"1":"E 3C 4C","132":"0B J zC 0C 1C 2C JC"},J:{"132":"F A"},K:{"1":"p","16":"A","132":"B C wB IC xB"},L:{"1":"E"},M:{"1":"E"},N:{"1":"A B"},O:{"1":"yB"},P:{"1":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"1":"9B"},R:{"1":"ID"},S:{"1":"JD KD"}},B:4,C:"DOM Parsing and Serialization",D:true}; +module.exports={A:{A:{"1":"A B","260":"J E F G NC"},B:{"1":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"1":"0 1 2 3 5 6 7 8 9 C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"B","260":"4 OC 2B I J E PC QC","516":"F G A"},D:{"1":"0 1 2 3 EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B","132":"4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB"},E:{"1":"F G A B C K L H UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC","132":"4 I J E RC 9B SC TC"},F:{"1":"5 6 7 8 9 O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l","16":"G aC","132":"B C H M N bC cC dC xB LC eC yB"},G:{"1":"F jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC","132":"9B fC MC gC hC iC"},H:{"132":"0C"},I:{"1":"D 5C 6C","132":"2B I 1C 2C 3C 4C MC"},J:{"132":"E A"},K:{"1":"p","16":"A","132":"B C xB LC yB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"zB"},P:{"1":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"1":"BC"},R:{"1":"JD"},S:{"1":"KD LD"}},B:4,C:"DOM Parsing and Serialization",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/zstd.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/zstd.js index 6f81dfd98deb0f..9bbe34de26fa93 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/zstd.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/zstd.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"K F G H A B KC"},B:{"2":"0 1 2 C L M I N D O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E"},C:{"2":"0 1 2 3 4 5 6 7 8 9 LC 0B J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B 5B 6B MC NC OC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 J K F G H A B C L M I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 1B fB 2B gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z E 4B","194":"5B 6B"},E:{"2":"3 J K F G H A B C L M I D PC 7B QC RC SC TC 8B wB xB 9B UC VC AC BC yB WC zB CC DC EC FC GC HC XC"},F:{"2":"4 5 6 7 8 9 H B C I N D O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB p rB sB tB uB vB P Q R 3B S T U V W X Y Z a b c d e f g h i j k l YC ZC aC bC wB IC cC xB"},G:{"2":"G D 7B dC JC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC AC BC yB xC zB CC DC EC FC GC HC"},H:{"2":"yC"},I:{"2":"0B J E zC 0C 1C 2C JC 3C 4C"},J:{"2":"F A"},K:{"2":"A B C p wB IC xB"},L:{"2":"E"},M:{"2":"E"},N:{"2":"A B"},O:{"2":"yB"},P:{"2":"J m n o 5C 6C 7C 8C 9C 8B AD BD CD DD ED zB FD GD HD"},Q:{"2":"9B"},R:{"2":"ID"},S:{"2":"JD KD"}},B:6,C:"zstd (Zstandard) content-encoding",D:true}; +module.exports={A:{A:{"2":"J E F G A B NC"},B:{"2":"0 1 2 3 C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 OC 2B I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D 6B 7B 8B PC QC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I J E F G A B C K L H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB 3B gB 4B hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R S T U V W X Y Z a b c d e f g h i j k l q r s t u v w x y z D","194":"6B 7B 8B"},E:{"2":"4 I J E F G A B C K L H RC 9B SC TC UC VC AC xB yB BC WC XC CC DC zB YC 0B EC FC GC HC IC JC 1B KC ZC"},F:{"2":"5 6 7 8 9 G B C H M N O m n o AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB pB qB rB p sB tB uB vB wB P Q R 5B S T U V W X Y Z a b c d e f g h i j k l aC bC cC dC xB LC eC yB"},G:{"2":"F 9B fC MC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC CC DC zB zC 0B EC FC GC HC IC JC 1B KC"},H:{"2":"0C"},I:{"2":"2B I D 1C 2C 3C 4C MC 5C 6C"},J:{"2":"E A"},K:{"2":"A B C p xB LC yB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"zB"},P:{"2":"I m n o 7C 8C 9C AD BD AC CD DD ED FD GD 0B 1B HD ID"},Q:{"2":"BC"},R:{"2":"JD"},S:{"2":"KD LD"}},B:6,C:"zstd (Zstandard) content-encoding",D:true}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/package.json b/tools/node_modules/eslint/node_modules/caniuse-lite/package.json index 233d75fae0125f..52e49c121a9536 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/package.json +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/package.json @@ -1,6 +1,6 @@ { "name": "caniuse-lite", - "version": "1.0.30001532", + "version": "1.0.30001541", "description": "A smaller version of caniuse-db, with only the essentials!", "main": "dist/unpacker/index.js", "files": [ diff --git a/tools/node_modules/eslint/node_modules/convert-source-map/index.js b/tools/node_modules/eslint/node_modules/convert-source-map/index.js index dc602d7c6dc278..2e8e916e79d66c 100644 --- a/tools/node_modules/eslint/node_modules/convert-source-map/index.js +++ b/tools/node_modules/eslint/node_modules/convert-source-map/index.js @@ -1,17 +1,17 @@ 'use strict'; -var fs = require('fs'); -var path = require('path'); Object.defineProperty(exports, 'commentRegex', { get: function getCommentRegex () { - return /^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/mg; + // Groups: 1: media type, 2: MIME type, 3: charset, 4: encoding, 5: data. + return /^\s*?\/[\/\*][@#]\s+?sourceMappingURL=data:(((?:application|text)\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/mg; } }); + Object.defineProperty(exports, 'mapFileCommentRegex', { get: function getMapFileCommentRegex () { // Matches sourceMappingURL in either // or /* comment styles. - return /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/mg; + return /(?:\/\/[@#][ \t]+?sourceMappingURL=([^\s'"`]+?)[ \t]*?$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*?(?:\*\/){1}[ \t]*?$)/mg; } }); @@ -45,29 +45,43 @@ function stripComment(sm) { return sm.split(',').pop(); } -function readFromFileMap(sm, dir) { - // NOTE: this will only work on the server since it attempts to read the map file - +function readFromFileMap(sm, read) { var r = exports.mapFileCommentRegex.exec(sm); - // for some odd reason //# .. captures in 1 and /* .. */ in 2 var filename = r[1] || r[2]; - var filepath = path.resolve(dir, filename); try { - return fs.readFileSync(filepath, 'utf8'); + var sm = read(filename); + if (sm != null && typeof sm.catch === 'function') { + return sm.catch(throwError); + } else { + return sm; + } } catch (e) { - throw new Error('An error occurred while trying to read the map file at ' + filepath + '\n' + e); + throwError(e); + } + + function throwError(e) { + throw new Error('An error occurred while trying to read the map file at ' + filename + '\n' + e.stack); } } function Converter (sm, opts) { opts = opts || {}; - if (opts.isFileComment) sm = readFromFileMap(sm, opts.commentFileDir); - if (opts.hasComment) sm = stripComment(sm); - if (opts.isEncoded) sm = decodeBase64(sm); - if (opts.isJSON || opts.isEncoded) sm = JSON.parse(sm); + if (opts.hasComment) { + sm = stripComment(sm); + } + + if (opts.encoding === 'base64') { + sm = decodeBase64(sm); + } else if (opts.encoding === 'uri') { + sm = decodeURIComponent(sm); + } + + if (opts.isJSON || opts.encoding) { + sm = JSON.parse(sm); + } this.sourcemap = sm; } @@ -104,10 +118,22 @@ function encodeBase64WithBtoa() { return btoa(unescape(encodeURIComponent(json))); } +Converter.prototype.toURI = function () { + var json = this.toJSON(); + return encodeURIComponent(json); +}; + Converter.prototype.toComment = function (options) { - var base64 = this.toBase64(); - var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; - return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data; + var encoding, content, data; + if (options != null && options.encoding === 'uri') { + encoding = ''; + content = this.toURI(); + } else { + encoding = ';base64'; + content = this.toBase64(); + } + data = 'sourceMappingURL=data:application/json;charset=utf-8' + encoding + ',' + content; + return options != null && options.multiline ? '/*# ' + data + ' */' : '//# ' + data; }; // returns copy instead of original @@ -137,20 +163,42 @@ exports.fromJSON = function (json) { return new Converter(json, { isJSON: true }); }; +exports.fromURI = function (uri) { + return new Converter(uri, { encoding: 'uri' }); +}; + exports.fromBase64 = function (base64) { - return new Converter(base64, { isEncoded: true }); + return new Converter(base64, { encoding: 'base64' }); }; exports.fromComment = function (comment) { + var m, encoding; comment = comment .replace(/^\/\*/g, '//') .replace(/\*\/$/g, ''); - - return new Converter(comment, { isEncoded: true, hasComment: true }); + m = exports.commentRegex.exec(comment); + encoding = m && m[4] || 'uri'; + return new Converter(comment, { encoding: encoding, hasComment: true }); }; -exports.fromMapFileComment = function (comment, dir) { - return new Converter(comment, { commentFileDir: dir, isFileComment: true, isJSON: true }); +function makeConverter(sm) { + return new Converter(sm, { isJSON: true }); +} + +exports.fromMapFileComment = function (comment, read) { + if (typeof read === 'string') { + throw new Error( + 'String directory paths are no longer supported with `fromMapFileComment`\n' + + 'Please review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading' + ) + } + + var sm = readFromFileMap(comment, read); + if (sm != null && typeof sm.then === 'function') { + return sm.then(makeConverter); + } else { + return makeConverter(sm); + } }; // Finds last sourcemap comment in file or returns null if none was found @@ -160,9 +208,15 @@ exports.fromSource = function (content) { }; // Finds last sourcemap comment in file or returns null if none was found -exports.fromMapFileSource = function (content, dir) { +exports.fromMapFileSource = function (content, read) { + if (typeof read === 'string') { + throw new Error( + 'String directory paths are no longer supported with `fromMapFileSource`\n' + + 'Please review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading' + ) + } var m = content.match(exports.mapFileCommentRegex); - return m ? exports.fromMapFileComment(m.pop(), dir) : null; + return m ? exports.fromMapFileComment(m.pop(), read) : null; }; exports.removeComments = function (src) { diff --git a/tools/node_modules/eslint/node_modules/convert-source-map/package.json b/tools/node_modules/eslint/node_modules/convert-source-map/package.json index 0d796cacdf903e..c38f29f7200dc8 100644 --- a/tools/node_modules/eslint/node_modules/convert-source-map/package.json +++ b/tools/node_modules/eslint/node_modules/convert-source-map/package.json @@ -1,6 +1,6 @@ { "name": "convert-source-map", - "version": "1.9.0", + "version": "2.0.0", "description": "Converts a source-map from/to different formats and allows adding/changing properties.", "main": "index.js", "scripts": { @@ -30,12 +30,9 @@ }, "license": "MIT", "engine": { - "node": ">=0.6" + "node": ">=4" }, "files": [ "index.js" - ], - "browser": { - "fs": false - } + ] } diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js index 48fe85d8cd9500..afd14403b5fb95 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js @@ -2303,7 +2303,9 @@ module.exports = { "22.3.20", "22.3.21", "22.3.22", - "22.3.23" + "22.3.23", + "22.3.24", + "22.3.25" ], "110.0.5415.0": [ "23.0.0-alpha.1", @@ -2505,7 +2507,10 @@ module.exports = { "24.7.1", "24.8.0", "24.8.1", - "24.8.2" + "24.8.2", + "24.8.3", + "24.8.4", + "24.8.5" ], "114.0.5694.0": [ "25.0.0-alpha.1", @@ -2614,7 +2619,11 @@ module.exports = { "25.5.0", "25.6.0", "25.7.0", - "25.8.0" + "25.8.0", + "25.8.1", + "25.8.2", + "25.8.3", + "25.8.4" ], "116.0.5791.0": [ "26.0.0-alpha.1", @@ -2704,6 +2713,14 @@ module.exports = { "116.0.5845.179": [ "26.2.0" ], + "116.0.5845.188": [ + "26.2.1" + ], + "116.0.5845.190": [ + "26.2.2", + "26.2.3", + "26.2.4" + ], "118.0.5949.0": [ "27.0.0-alpha.1", "27.0.0-alpha.2", @@ -2724,6 +2741,20 @@ module.exports = { "28.0.0-nightly.20230830", "28.0.0-nightly.20230831" ], + "118.0.5993.5": [ + "27.0.0-beta.1", + "27.0.0-beta.2", + "27.0.0-beta.3" + ], + "118.0.5993.11": [ + "27.0.0-beta.4" + ], + "118.0.5993.18": [ + "27.0.0-beta.5", + "27.0.0-beta.6", + "27.0.0-beta.7", + "27.0.0-beta.8" + ], "116.0.5829.0": [ "27.0.0-nightly.20230614" ], @@ -2779,6 +2810,27 @@ module.exports = { ], "118.0.5993.0": [ "28.0.0-nightly.20230907", - "28.0.0-nightly.20230908" + "28.0.0-nightly.20230908", + "28.0.0-nightly.20230911", + "28.0.0-nightly.20230912", + "28.0.0-nightly.20230913", + "28.0.0-nightly.20230914", + "28.0.0-nightly.20230915" + ], + "119.0.6006.0": [ + "28.0.0-nightly.20230919" + ], + "119.0.6017.0": [ + "28.0.0-nightly.20230920" + ], + "119.0.6019.2": [ + "28.0.0-nightly.20230921", + "28.0.0-nightly.20230925", + "28.0.0-nightly.20230926", + "28.0.0-nightly.20230927", + "28.0.0-nightly.20230928" + ], + "119.0.6029.0": [ + "28.0.0-nightly.20230929" ] }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json index 5d8bc167f19db4..73344270b5ad20 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json @@ -1 +1 @@ -{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908"]} \ No newline at end of file +{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js index b898a4023cc7fc..efecc50791f495 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js @@ -1688,6 +1688,8 @@ module.exports = { "22.3.21": "108.0.5359.215", "22.3.22": "108.0.5359.215", "22.3.23": "108.0.5359.215", + "22.3.24": "108.0.5359.215", + "22.3.25": "108.0.5359.215", "23.0.0-alpha.1": "110.0.5415.0", "23.0.0-alpha.2": "110.0.5451.0", "23.0.0-alpha.3": "110.0.5451.0", @@ -1837,6 +1839,9 @@ module.exports = { "24.8.0": "112.0.5615.204", "24.8.1": "112.0.5615.204", "24.8.2": "112.0.5615.204", + "24.8.3": "112.0.5615.204", + "24.8.4": "112.0.5615.204", + "24.8.5": "112.0.5615.204", "25.0.0-alpha.1": "114.0.5694.0", "25.0.0-alpha.2": "114.0.5694.0", "25.0.0-alpha.3": "114.0.5710.0", @@ -1901,6 +1906,10 @@ module.exports = { "25.6.0": "114.0.5735.289", "25.7.0": "114.0.5735.289", "25.8.0": "114.0.5735.289", + "25.8.1": "114.0.5735.289", + "25.8.2": "114.0.5735.289", + "25.8.3": "114.0.5735.289", + "25.8.4": "114.0.5735.289", "26.0.0-alpha.1": "116.0.5791.0", "26.0.0-alpha.2": "116.0.5791.0", "26.0.0-alpha.3": "116.0.5791.0", @@ -1962,12 +1971,24 @@ module.exports = { "26.0.0": "116.0.5845.82", "26.1.0": "116.0.5845.97", "26.2.0": "116.0.5845.179", + "26.2.1": "116.0.5845.188", + "26.2.2": "116.0.5845.190", + "26.2.3": "116.0.5845.190", + "26.2.4": "116.0.5845.190", "27.0.0-alpha.1": "118.0.5949.0", "27.0.0-alpha.2": "118.0.5949.0", "27.0.0-alpha.3": "118.0.5949.0", "27.0.0-alpha.4": "118.0.5949.0", "27.0.0-alpha.5": "118.0.5949.0", "27.0.0-alpha.6": "118.0.5949.0", + "27.0.0-beta.1": "118.0.5993.5", + "27.0.0-beta.2": "118.0.5993.5", + "27.0.0-beta.3": "118.0.5993.5", + "27.0.0-beta.4": "118.0.5993.11", + "27.0.0-beta.5": "118.0.5993.18", + "27.0.0-beta.6": "118.0.5993.18", + "27.0.0-beta.7": "118.0.5993.18", + "27.0.0-beta.8": "118.0.5993.18", "27.0.0-nightly.20230601": "116.0.5791.0", "27.0.0-nightly.20230602": "116.0.5791.0", "27.0.0-nightly.20230605": "116.0.5791.0", @@ -2032,5 +2053,18 @@ module.exports = { "28.0.0-nightly.20230831": "118.0.5949.0", "28.0.0-nightly.20230906": "118.0.5991.0", "28.0.0-nightly.20230907": "118.0.5993.0", - "28.0.0-nightly.20230908": "118.0.5993.0" + "28.0.0-nightly.20230908": "118.0.5993.0", + "28.0.0-nightly.20230911": "118.0.5993.0", + "28.0.0-nightly.20230912": "118.0.5993.0", + "28.0.0-nightly.20230913": "118.0.5993.0", + "28.0.0-nightly.20230914": "118.0.5993.0", + "28.0.0-nightly.20230915": "118.0.5993.0", + "28.0.0-nightly.20230919": "119.0.6006.0", + "28.0.0-nightly.20230920": "119.0.6017.0", + "28.0.0-nightly.20230921": "119.0.6019.2", + "28.0.0-nightly.20230925": "119.0.6019.2", + "28.0.0-nightly.20230926": "119.0.6019.2", + "28.0.0-nightly.20230927": "119.0.6019.2", + "28.0.0-nightly.20230928": "119.0.6019.2", + "28.0.0-nightly.20230929": "119.0.6029.0" }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json index 0eec59c6e002ab..77528b40406000 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json @@ -1 +1 @@ -{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0"} \ No newline at end of file +{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json index a49c26dd4af7c2..d1d203f7a836b4 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json @@ -1,6 +1,6 @@ { "name": "electron-to-chromium", - "version": "1.4.513", + "version": "1.4.537", "description": "Provides a list of electron-to-chromium version mappings", "main": "index.js", "files": [ diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js index e05326790e8580..e1e5d21e8a7c4d 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js @@ -680,7 +680,11 @@ const getBasicUtils = (context, { */ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAll, ruleConfig, indent) => { const ancestors = /** @type {import('eslint').Rule.Node[]} */context.getAncestors(); - const sourceCode = context.getSourceCode(); + + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; const utils = /** @type {Utils} */getBasicUtils(context, settings); const { tagNamePreference, @@ -1844,7 +1848,10 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext * @returns {void} */ const callIterator = (context, node, jsdocNodes, state, lastCall) => { - const sourceCode = context.getSourceCode(); + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; const { lines } = sourceCode; @@ -1908,7 +1915,10 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext return { // @ts-expect-error ESLint accepts create(context) { - const sourceCode = context.getSourceCode(); + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; settings = getSettings(context); if (!settings) { return {}; @@ -1967,7 +1977,10 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContext const checkFile = (iterator, ruleConfig) => { return { create(context) { - const sourceCode = context.getSourceCode(); + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; const settings = getSettings(context); if (!settings) { return {}; @@ -2057,7 +2070,11 @@ function iterateJsdoc(iterator, ruleConfig) { return iterateAllJsdocs(iterator, ruleConfig, hasObjectAny ? /** @type {ContextObject[]} */contexts : null, ruleConfig.matchContext).create(context); } } - const sourceCode = context.getSourceCode(); + + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; const { lines } = sourceCode; diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/informativeDocs.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/informativeDocs.js index 3a9425ca4e41e7..23f7c810338b77 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/informativeDocs.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/informativeDocs.js @@ -65,8 +65,9 @@ var _default = (0, _iterateJsdoc.default)(({ report, utils }) => { - const { + const /** @type {{aliases: {[key: string]: string[]}, excludedTags: string[], uselessWords: string[]}} */{ aliases = defaultAliases, + excludedTags = [], uselessWords = defaultUselessWords } = context.options[0] || {}; const nodeNames = getNamesFromNode(node); @@ -89,6 +90,9 @@ var _default = (0, _iterateJsdoc.default)(({ } = utils.getDescription(); let descriptionReported = false; for (const tag of jsdoc.tags) { + if (excludedTags.includes(tag.tag)) { + continue; + } if (descriptionIsRedundant(tag.description, tag.name)) { utils.reportJSDoc('This tag description only repeats the name it describes.', tag); } @@ -109,6 +113,16 @@ var _default = (0, _iterateJsdoc.default)(({ additionalProperties: false, properties: { aliases: { + patternProperties: { + '.*': { + items: { + type: 'string' + }, + type: 'array' + } + } + }, + excludedTags: { items: { type: 'string' }, diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js index c2912f496bc7f8..2cf64b37d7731f 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireDescriptionCompleteSentence.js @@ -29,7 +29,7 @@ const extractParagraphs = text => { const extractSentences = (text, abbreviationsRegex) => { const txt = text // Remove all {} tags. - .replaceAll(/\{[\s\S]*?\}\s*/gu, '') + .replaceAll(/(? { /** @type {import('eslint').Rule.RuleModule} */ var _default = { create(context) { - const sourceCode = context.getSourceCode(); + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; const settings = (0, _iterateJsdoc.getSettings)(context); if (!settings) { return {}; diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js index 2e5ff041eb3d9f..e20e125ebcff05 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireReturns.js @@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; +var _exportParser = _interopRequireDefault(require("../exportParser.js")); var _iterateJsdoc = _interopRequireDefault(require("../iterateJsdoc.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @@ -36,14 +37,18 @@ var _default = (0, _iterateJsdoc.default)(({ info: { comment }, + node, report, + settings, utils, context }) => { const { contexts, + enableFixer = false, forceRequireReturn = false, - forceReturnsWithAsync = false + forceReturnsWithAsync = false, + publicOnly = false } = context.options[0] || {}; // A preflight check. We do not need to run a deep check @@ -81,6 +86,23 @@ var _default = (0, _iterateJsdoc.default)(({ if (!missingReturnTag) { return false; } + if (publicOnly) { + /** @type {import('./requireJsdoc.js').RequireJsdocOpts} */ + const opt = { + ancestorsOnly: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.ancestorsOnly) ?? false), + esm: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.esm) ?? true), + initModuleExports: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.cjs) ?? true), + initWindow: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.window) ?? false) + }; + // istanbul ignore next -- Fallback to deprecated method + const { + sourceCode = context.getSourceCode() + } = context; + const exported = _exportParser.default.isUncommentedExport( /** @type {import('eslint').Rule.Node} */node, sourceCode, opt, settings); + if (!exported) { + return false; + } + } if ((forceRequireReturn || forceRequireReturnContext) && (iteratingFunction || utils.isVirtualFunction())) { return true; } @@ -91,7 +113,9 @@ var _default = (0, _iterateJsdoc.default)(({ return iteratingFunction && utils.hasValueOrExecutorHasNonEmptyResolveValue(forceReturnsWithAsync); }; if (shouldReport()) { - report(`Missing JSDoc @${tagName} declaration.`); + utils.reportJSDoc(`Missing JSDoc @${tagName} declaration.`, null, enableFixer ? () => { + utils.addTag(tagName); + } : null); } }, { contextDefaults: true, @@ -100,6 +124,7 @@ var _default = (0, _iterateJsdoc.default)(({ description: 'Requires that returns are documented.', url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header' }, + fixable: 'code', schema: [{ additionalProperties: false, properties: { @@ -133,6 +158,9 @@ var _default = (0, _iterateJsdoc.default)(({ }, type: 'array' }, + enableFixer: { + type: 'boolean' + }, exemptedBy: { items: { type: 'string' @@ -146,6 +174,30 @@ var _default = (0, _iterateJsdoc.default)(({ forceReturnsWithAsync: { default: false, type: 'boolean' + }, + publicOnly: { + oneOf: [{ + default: false, + type: 'boolean' + }, { + additionalProperties: false, + default: {}, + properties: { + ancestorsOnly: { + type: 'boolean' + }, + cjs: { + type: 'boolean' + }, + esm: { + type: 'boolean' + }, + window: { + type: 'boolean' + } + }, + type: 'object' + }] } }, type: 'object' diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json index 0aaebb1f516e16..b703633a830ba6 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json @@ -140,5 +140,5 @@ "test-cov": "cross-env TIMING=1 nyc --reporter text npm run test-no-cov", "test-index": "npm run test-no-cov -- test/rules/index.js" }, - "version": "46.5.1" + "version": "46.8.2" } diff --git a/tools/node_modules/eslint/node_modules/flatted/package.json b/tools/node_modules/eslint/node_modules/flatted/package.json index b72ae944cc47a7..96faef75fa390f 100644 --- a/tools/node_modules/eslint/node_modules/flatted/package.json +++ b/tools/node_modules/eslint/node_modules/flatted/package.json @@ -1,6 +1,6 @@ { "name": "flatted", - "version": "3.2.7", + "version": "3.2.9", "description": "A super light and fast circular JSON parser.", "unpkg": "min.js", "types": "types.d.ts", @@ -15,6 +15,7 @@ "size": "cat index.js | wc -c;cat min.js | wc -c;gzip -c9 min.js | wc -c;cat min.js | brotli | wc -c; cat es.js | brotli | wc -c; cat esm.js | brotli | wc -c", "test": "c8 node test/index.js", "test:php": "php php/test.php", + "test:py": "python python/test.py", "coverage": "mkdir -p ./coverage; c8 report --reporter=text-lcov > ./coverage/lcov.info" }, "repository": { diff --git a/tools/node_modules/eslint/node_modules/flatted/php/flatted.php b/tools/node_modules/eslint/node_modules/flatted/php/flatted.php index 30585bf9455db1..22659f6a01746c 100644 --- a/tools/node_modules/eslint/node_modules/flatted/php/flatted.php +++ b/tools/node_modules/eslint/node_modules/flatted/php/flatted.php @@ -19,6 +19,7 @@ */ class FlattedString { + public $value = ''; public function __construct($value) { $this->value = $value; } @@ -148,7 +149,6 @@ private static function wrap($value) { foreach ($keys as $key) { $value->$key = self::wrap($value->$key); } - return $value; } return $value; } diff --git a/tools/node_modules/eslint/node_modules/flatted/python/flatted.py b/tools/node_modules/eslint/node_modules/flatted/python/flatted.py new file mode 100644 index 00000000000000..56bb08ecf67a87 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/flatted/python/flatted.py @@ -0,0 +1,149 @@ +# ISC License +# +# Copyright (c) 2018-2021, Andrea Giammarchi, @WebReflection +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +import json as _json + +class _Known: + def __init__(self): + self.key = [] + self.value = [] + +class _String: + def __init__(self, value): + self.value = value + + +def _array_keys(value): + keys = [] + i = 0 + for _ in value: + keys.append(i) + i += 1 + return keys + +def _object_keys(value): + keys = [] + for key in value: + keys.append(key) + return keys + +def _is_array(value): + return isinstance(value, list) or isinstance(value, tuple) + +def _is_object(value): + return isinstance(value, dict) + +def _is_string(value): + return isinstance(value, str) + +def _index(known, input, value): + input.append(value) + index = str(len(input) - 1) + known.key.append(value) + known.value.append(index) + return index + +def _loop(keys, input, known, output): + for key in keys: + value = output[key] + if isinstance(value, _String): + _ref(key, input[int(value.value)], input, known, output) + + return output + +def _ref(key, value, input, known, output): + if _is_array(value) and not value in known: + known.append(value) + value = _loop(_array_keys(value), input, known, value) + elif _is_object(value) and not value in known: + known.append(value) + value = _loop(_object_keys(value), input, known, value) + + output[key] = value + +def _relate(known, input, value): + if _is_string(value) or _is_array(value) or _is_object(value): + try: + return known.value[known.key.index(value)] + except: + return _index(known, input, value) + + return value + +def _transform(known, input, value): + if _is_array(value): + output = [] + for val in value: + output.append(_relate(known, input, val)) + return output + + if _is_object(value): + obj = {} + for key in value: + obj[key] = _relate(known, input, value[key]) + return obj + + return value + +def _wrap(value): + if _is_string(value): + return _String(value) + + if _is_array(value): + i = 0 + for val in value: + value[i] = _wrap(val) + i += 1 + + elif _is_object(value): + for key in value: + value[key] = _wrap(value[key]) + + return value + +def parse(value, *args, **kwargs): + json = _json.loads(value, *args, **kwargs) + wrapped = [] + for value in json: + wrapped.append(_wrap(value)) + + input = [] + for value in wrapped: + if isinstance(value, _String): + input.append(value.value) + else: + input.append(value) + + value = input[0] + + if _is_array(value): + return _loop(_array_keys(value), input, [value], value) + + if _is_object(value): + return _loop(_object_keys(value), input, [value], value) + + return value + + +def stringify(value, *args, **kwargs): + known = _Known() + input = [] + output = [] + i = int(_index(known, input, value)) + while i < len(input): + output.append(_transform(known, input, input[i])) + i += 1 + return _json.dumps(output, *args, **kwargs) diff --git a/tools/node_modules/eslint/node_modules/flatted/python/test.py b/tools/node_modules/eslint/node_modules/flatted/python/test.py new file mode 100644 index 00000000000000..740739e5efab95 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/flatted/python/test.py @@ -0,0 +1,63 @@ +from flatted import stringify as _stringify, parse + +def stringify(value): + return _stringify(value, separators=(',', ':')) + +assert stringify([None, None]) == '[[null,null]]' + +a = [] +o = {} + +assert stringify(a) == '[[]]' +assert stringify(o) == '[{}]' + +a.append(a) +o['o'] = o + +assert stringify(a) == '[["0"]]' +assert stringify(o) == '[{"o":"0"}]' + +b = parse(stringify(a)) +assert isinstance(b, list) and b[0] == b + +a.append(1) +a.append('two') +a.append(True) +o['one'] = 1 +o['two'] = 'two' +o['three'] = True + +assert stringify(a) == '[["0",1,"1",true],"two"]' +assert stringify(o) == '[{"o":"0","one":1,"two":"1","three":true},"two"]' + +a.append(o) +o['a'] = a + +assert stringify(a) == '[["0",1,"1",true,"2"],"two",{"o":"2","one":1,"two":"1","three":true,"a":"0"}]' +assert stringify(o) == '[{"o":"0","one":1,"two":"1","three":true,"a":"2"},"two",["2",1,"1",true,"0"]]' + +a.append({'test': 'OK'}) +a.append([1, 2, 3]) + +o['test'] = {'test': 'OK'} +o['array'] = [1, 2, 3] + +assert stringify(a) == '[["0",1,"1",true,"2","3","4"],"two",{"o":"2","one":1,"two":"1","three":true,"a":"0","test":"3","array":"4"},{"test":"5"},[1,2,3],"OK"]' +assert stringify(o) == '[{"o":"0","one":1,"two":"1","three":true,"a":"2","test":"3","array":"4"},"two",["2",1,"1",true,"0","3","4"],{"test":"5"},[1,2,3],"OK"]' + +a2 = parse(stringify(a)); +o2 = parse(stringify(o)); + +assert a2[0] == a2 +assert o2['o'] == o2 + +assert a2[1] == 1 and a2[2] == 'two' and a2[3] == True and isinstance(a2[4], dict) +assert a2[4] == a2[4]['o'] and a2 == a2[4]['o']['a'] + +str = parse('[{"prop":"1","a":"2","b":"3"},{"value":123},["4","5"],{"e":"6","t":"7","p":4},{},{"b":"8"},"f",{"a":"9"},["10"],"sup",{"a":1,"d":2,"c":"7","z":"11","h":1},{"g":2,"a":"7","b":"12","f":6},{"r":4,"u":"7","c":5}]') +assert str['b']['t']['a'] == 'sup' and str['a'][1]['b'][0]['c'] == str['b']['t'] + +oo = parse('[{"a":"1","b":"0","c":"2"},{"aa":"3"},{"ca":"4","cb":"5","cc":"6","cd":"7","ce":"8","cf":"9"},{"aaa":"10"},{"caa":"4"},{"cba":"5"},{"cca":"2"},{"cda":"4"},"value2","value3","value1"]'); +assert oo['a']['aa']['aaa'] == 'value1' and oo == oo['b'] and oo['c']['ca']['caa'] == oo['c']['ca'] + +print('OK') diff --git a/tools/node_modules/eslint/node_modules/globals/globals.json b/tools/node_modules/eslint/node_modules/globals/globals.json index 76af3e3b7af94f..2c10cb9212397e 100644 --- a/tools/node_modules/eslint/node_modules/globals/globals.json +++ b/tools/node_modules/eslint/node_modules/globals/globals.json @@ -659,6 +659,7 @@ "MediaStream": false, "MediaStreamAudioDestinationNode": false, "MediaStreamAudioSourceNode": false, + "MediaStreamConstraints": false, "MediaStreamEvent": false, "MediaStreamTrack": false, "MediaStreamTrackEvent": false, diff --git a/tools/node_modules/eslint/node_modules/globals/package.json b/tools/node_modules/eslint/node_modules/globals/package.json index 2eb5e446e302ef..2bf430ff79933b 100644 --- a/tools/node_modules/eslint/node_modules/globals/package.json +++ b/tools/node_modules/eslint/node_modules/globals/package.json @@ -1,6 +1,6 @@ { "name": "globals", - "version": "13.21.0", + "version": "13.22.0", "description": "Global identifiers from different JavaScript environments", "license": "MIT", "repository": "sindresorhus/globals", diff --git a/tools/node_modules/eslint/node_modules/spdx-license-ids/index.json b/tools/node_modules/eslint/node_modules/spdx-license-ids/index.json index 04c03126d98eb8..846917b60b5fd7 100644 --- a/tools/node_modules/eslint/node_modules/spdx-license-ids/index.json +++ b/tools/node_modules/eslint/node_modules/spdx-license-ids/index.json @@ -22,6 +22,8 @@ "APSL-1.1", "APSL-1.2", "APSL-2.0", + "ASWF-Digital-Assets-1.0", + "ASWF-Digital-Assets-1.1", "Abstyles", "AdaCore-doc", "Adobe-2006", @@ -71,6 +73,7 @@ "Bitstream-Charter", "Bitstream-Vera", "BlueOak-1.0.0", + "Boehm-GC", "Borceux", "Brian-Gladman-3-Clause", "C-UDA-1.0", @@ -125,6 +128,7 @@ "CC-BY-SA-3.0", "CC-BY-SA-3.0-AT", "CC-BY-SA-3.0-DE", + "CC-BY-SA-3.0-IGO", "CC-BY-SA-4.0", "CC-PDDC", "CC0-1.0", @@ -246,6 +250,7 @@ "ImageMagick", "Imlib2", "Info-ZIP", + "Inner-Net-2.0", "Intel", "Intel-ACPI", "Interbase-1.0", @@ -276,16 +281,21 @@ "LZMA-SDK-9.11-to-9.20", "LZMA-SDK-9.22", "Latex2e", + "Latex2e-translated-notice", "Leptonica", "LiLiQ-P-1.1", "LiLiQ-R-1.1", "LiLiQ-Rplus-1.1", "Libpng", "Linux-OpenIB", + "Linux-man-pages-1-para", "Linux-man-pages-copyleft", + "Linux-man-pages-copyleft-2-para", + "Linux-man-pages-copyleft-var", "MIT", "MIT-0", "MIT-CMU", + "MIT-Festival", "MIT-Modern-Variant", "MIT-Wu", "MIT-advertising", @@ -319,6 +329,7 @@ "NICTA-1.0", "NIST-PD", "NIST-PD-fallback", + "NIST-Software", "NLOD-1.0", "NLOD-2.0", "NLPL", @@ -370,8 +381,10 @@ "OLDAP-2.6", "OLDAP-2.7", "OLDAP-2.8", + "OLFL-1.3", "OML", "OPL-1.0", + "OPL-UK-3.0", "OPUBL-1.0", "OSET-PL-2.1", "OSL-1.0", @@ -409,6 +422,7 @@ "SGI-B-1.0", "SGI-B-1.1", "SGI-B-2.0", + "SGP4", "SHL-0.5", "SHL-0.51", "SISSL", @@ -444,12 +458,14 @@ "TTWL", "TU-Berlin-1.0", "TU-Berlin-2.0", + "TermReadKey", "UCAR", "UCL-1.0", "UPL-1.0", "Unicode-DFS-2015", "Unicode-DFS-2016", "Unicode-TOU", + "UnixCrypt", "Unlicense", "VOSTROM", "VSL-1.0", @@ -459,12 +475,15 @@ "W3C-20150513", "WTFPL", "Watcom-1.0", + "Widget-Workshop", "Wsuipa", "X11", "X11-distribute-modifications-variant", "XFree86-1.1", "XSkat", + "Xdebug-1.03", "Xerox", + "Xfig", "Xnet", "YPL-1.0", "YPL-1.1", @@ -483,6 +502,7 @@ "copyleft-next-0.3.1", "curl", "diffmark", + "dtoa", "dvipdfm", "eGenix", "etalab-2.0", @@ -493,6 +513,7 @@ "libselinux-1.0", "libtiff", "libutil-David-Nugent", + "metamail", "mpi-permissive", "mpich2", "mplus", diff --git a/tools/node_modules/eslint/node_modules/spdx-license-ids/package.json b/tools/node_modules/eslint/node_modules/spdx-license-ids/package.json index ea060776d9cf76..1a8ba472eaff05 100644 --- a/tools/node_modules/eslint/node_modules/spdx-license-ids/package.json +++ b/tools/node_modules/eslint/node_modules/spdx-license-ids/package.json @@ -1,6 +1,6 @@ { "name": "spdx-license-ids", - "version": "3.0.13", + "version": "3.0.15", "description": "A list of SPDX license identifiers", "repository": "jslicense/spdx-license-ids", "author": "Shinnosuke Watanabe (https://github.com/shinnn)", @@ -28,10 +28,10 @@ ], "devDependencies": { "@shinnn/eslint-config": "^7.0.0", - "eslint": "^8.2.0", + "eslint": "^8.49.0", "eslint-formatter-codeframe": "^7.32.1", "rmfr": "^2.0.0", - "tape": "^5.3.1" + "tape": "^5.6.6" }, "eslintConfig": { "extends": "@shinnn" diff --git a/tools/node_modules/eslint/node_modules/update-browserslist-db/check-npm-version.js b/tools/node_modules/eslint/node_modules/update-browserslist-db/check-npm-version.js index 25e1c92d36abf3..5a37592b9a1fa7 100644 --- a/tools/node_modules/eslint/node_modules/update-browserslist-db/check-npm-version.js +++ b/tools/node_modules/eslint/node_modules/update-browserslist-db/check-npm-version.js @@ -7,7 +7,7 @@ try { process.stderr.write( pico.red( 'Update npm or call ' + - pico.yellow('npx browserslist@latest --update-db') + + pico.yellow('npx update-browserslist-db@latest') + '\n' ) ) diff --git a/tools/node_modules/eslint/node_modules/update-browserslist-db/index.js b/tools/node_modules/eslint/node_modules/update-browserslist-db/index.js index 464f74da43382b..7fc0d3a4ed7b35 100644 --- a/tools/node_modules/eslint/node_modules/update-browserslist-db/index.js +++ b/tools/node_modules/eslint/node_modules/update-browserslist-db/index.js @@ -1,10 +1,10 @@ -let { writeFileSync, readFileSync, existsSync } = require('fs') +let { existsSync, readFileSync, writeFileSync } = require('fs') let { execSync } = require('child_process') let { join } = require('path') let escalade = require('escalade/sync') let pico = require('picocolors') -const { detectIndent, detectEOL } = require('./utils') +const { detectEOL, detectIndent } = require('./utils') function BrowserslistUpdateError(message) { this.name = 'BrowserslistUpdateError' @@ -40,16 +40,16 @@ function detectLockfile() { let lockfilePnpm = join(packageDir, 'pnpm-lock.yaml') if (existsSync(lockfilePnpm)) { - return { mode: 'pnpm', file: lockfilePnpm } + return { file: lockfilePnpm, mode: 'pnpm' } } else if (existsSync(lockfileNpm)) { - return { mode: 'npm', file: lockfileNpm } + return { file: lockfileNpm, mode: 'npm' } } else if (existsSync(lockfileYarn)) { - let lock = { mode: 'yarn', file: lockfileYarn } + let lock = { file: lockfileYarn, mode: 'yarn' } lock.content = readFileSync(lock.file).toString() lock.version = /# yarn lockfile v1/.test(lock.content) ? 1 : 2 return lock } else if (existsSync(lockfileShrinkwrap)) { - return { mode: 'npm', file: lockfileShrinkwrap } + return { file: lockfileShrinkwrap, mode: 'npm' } } throw new BrowserslistUpdateError( 'No lockfile found. Run "npm install", "yarn install" or "pnpm install"' @@ -59,11 +59,11 @@ function detectLockfile() { function getLatestInfo(lock) { if (lock.mode === 'yarn') { if (lock.version === 1) { - return JSON.parse(execSync('yarn info caniuse-lite --json').toString()) + return JSON.parse(execSync('yarnpkg info caniuse-lite --json').toString()) .data } else { return JSON.parse( - execSync('yarn npm info caniuse-lite --json').toString() + execSync('yarnpkg npm info caniuse-lite --json').toString() ) } } @@ -209,10 +209,10 @@ function updatePackageManually(print, lock, latest) { ) writeFileSync(lock.file, lockfileData.content) - let install = lock.mode === 'yarn' ? 'yarn add -W' : lock.mode + ' install' + let install = lock.mode === 'yarn' ? 'yarnpkg add -W' : lock.mode + ' install' print( 'Installing new caniuse-lite version\n' + - pico.yellow('$ ' + install + ' caniuse-lite') + + pico.yellow('$ ' + install.replace('yarnpkg', 'yarn') + ' caniuse-lite') + '\n' ) try { @@ -232,17 +232,22 @@ function updatePackageManually(print, lock, latest) { process.exit(1) } /* c8 ignore end */ - let del = lock.mode === 'yarn' ? 'yarn remove -W' : lock.mode + ' uninstall' + let del = + lock.mode === 'yarn' ? 'yarnpkg remove -W' : lock.mode + ' uninstall' print( 'Cleaning package.json dependencies from caniuse-lite\n' + - pico.yellow('$ ' + del + ' caniuse-lite') + + pico.yellow('$ ' + del.replace('yarnpkg', 'yarn') + ' caniuse-lite') + '\n' ) execSync(del + ' caniuse-lite') } function updateWith(print, cmd) { - print('Updating caniuse-lite version\n' + pico.yellow('$ ' + cmd) + '\n') + print( + 'Updating caniuse-lite version\n' + + pico.yellow('$ ' + cmd.replace('yarnpkg', 'yarn')) + + '\n' + ) try { execSync(cmd) } catch (e) /* c8 ignore start */ { @@ -277,7 +282,7 @@ module.exports = function updateDB(print = defaultPrint) { print('Latest version: ' + pico.bold(pico.green(latest.version)) + '\n') if (lock.mode === 'yarn' && lock.version !== 1) { - updateWith(print, 'yarn up -R caniuse-lite') + updateWith(print, 'yarnpkg up -R caniuse-lite') } else if (lock.mode === 'pnpm') { updateWith(print, 'pnpm up caniuse-lite') } else { diff --git a/tools/node_modules/eslint/node_modules/update-browserslist-db/package.json b/tools/node_modules/eslint/node_modules/update-browserslist-db/package.json index 0ed71fa87e20a1..f1997a18443c0b 100644 --- a/tools/node_modules/eslint/node_modules/update-browserslist-db/package.json +++ b/tools/node_modules/eslint/node_modules/update-browserslist-db/package.json @@ -1,6 +1,6 @@ { "name": "update-browserslist-db", - "version": "1.0.11", + "version": "1.0.13", "description": "CLI tool to update caniuse-lite to refresh target browsers from Browserslist config", "keywords": [ "caniuse", diff --git a/tools/node_modules/eslint/package.json b/tools/node_modules/eslint/package.json index a4055c72df1863..e5d58e0d74a9c2 100644 --- a/tools/node_modules/eslint/package.json +++ b/tools/node_modules/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "8.49.0", + "version": "8.50.0", "author": "Nicholas C. Zakas ", "description": "An AST-based pattern checker for JavaScript.", "bin": { @@ -63,7 +63,7 @@ "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.50.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", From 55a03fedaee269f6ae0c81c99a6874e8d30d41ab Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Tue, 3 Oct 2023 14:19:51 -0400 Subject: [PATCH 069/232] test_runner: add test location for FileTests This commit adds the previously missing test location for FileTest tests. Fixes: https://github.com/nodejs/node/issues/49926 Fixes: https://github.com/nodejs/node/issues/49927 PR-URL: https://github.com/nodejs/node/pull/49999 Reviewed-By: Moshe Atlow Reviewed-By: Chemi Atlow Reviewed-By: Benjamin Gruenbaum Reviewed-By: Luigi Pinca --- lib/internal/test_runner/runner.js | 11 ++++++++++ .../parallel/test-runner-filetest-location.js | 20 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 test/parallel/test-runner-filetest-location.js diff --git a/lib/internal/test_runner/runner.js b/lib/internal/test_runner/runner.js index 4832d6b8179a62..dfe7bd367ddae2 100644 --- a/lib/internal/test_runner/runner.js +++ b/lib/internal/test_runner/runner.js @@ -183,6 +183,17 @@ class FileTest extends Test { #rawBufferSize = 0; #reportedChildren = 0; failedSubtests = false; + + constructor(options) { + super(options); + this.loc ??= { + __proto__: null, + line: 1, + column: 1, + file: resolve(this.name), + }; + } + #skipReporting() { return this.#reportedChildren > 0 && (!this.error || this.error.failureType === kSubtestsFailed); } diff --git a/test/parallel/test-runner-filetest-location.js b/test/parallel/test-runner-filetest-location.js new file mode 100644 index 00000000000000..4e09bcd35eea4f --- /dev/null +++ b/test/parallel/test-runner-filetest-location.js @@ -0,0 +1,20 @@ +'use strict'; +const common = require('../common'); +const fixtures = require('../common/fixtures'); +const { strictEqual } = require('node:assert'); +const { relative } = require('node:path'); +const { run } = require('node:test'); +const fixture = fixtures.path('test-runner', 'never_ending_sync.js'); +const relativePath = relative(process.cwd(), fixture); +const stream = run({ + files: [relativePath], + timeout: common.platformTimeout(100), +}); + +stream.on('test:fail', common.mustCall((result) => { + strictEqual(result.name, relativePath); + strictEqual(result.details.error.failureType, 'testTimeoutFailure'); + strictEqual(result.line, 1); + strictEqual(result.column, 1); + strictEqual(result.file, fixture); +})); From d7132d92146b38182c38b335c4f1e5f6976ab8d1 Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Wed, 4 Oct 2023 09:19:13 +0900 Subject: [PATCH 070/232] fs: improve error performance for `fdatasyncSync` PR-URL: https://github.com/nodejs/node/pull/49898 Refs: https://github.com/nodejs/performance/issues/106 Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung --- benchmark/fs/bench_fdatasyncSync.js | 42 +++++++++++++++++++++++++++++ lib/fs.js | 4 +-- src/node_file.cc | 14 +++++----- typings/internalBinding/fs.d.ts | 1 + 4 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 benchmark/fs/bench_fdatasyncSync.js diff --git a/benchmark/fs/bench_fdatasyncSync.js b/benchmark/fs/bench_fdatasyncSync.js new file mode 100644 index 00000000000000..9aedb0a314fb24 --- /dev/null +++ b/benchmark/fs/bench_fdatasyncSync.js @@ -0,0 +1,42 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); + +const tmpfile = tmpdir.resolve(`.existing-file-${process.pid}`); +fs.writeFileSync(tmpfile, 'this-is-for-a-benchmark', 'utf8'); + +const bench = common.createBenchmark(main, { + type: ['existing', 'non-existing'], + n: [1e4], +}); + +function main({ n, type }) { + let fd; + + switch (type) { + case 'existing': + fd = fs.openSync(tmpfile, 'r', 0o666); + break; + case 'non-existing': + fd = 1 << 30; + break; + default: + new Error('Invalid type'); + } + + bench.start(); + for (let i = 0; i < n; i++) { + try { + fs.fdatasyncSync(fd); + } catch { + // do nothing + } + } + + bench.end(n); + + if (type === 'existing') fs.closeSync(fd); +} diff --git a/lib/fs.js b/lib/fs.js index 0f7a46dcb9c595..34ff2063d355ac 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -1303,9 +1303,7 @@ function fdatasync(fd, callback) { */ function fdatasyncSync(fd) { fd = getValidatedFd(fd); - const ctx = {}; - binding.fdatasync(fd, undefined, ctx); - handleErrorFromBinding(ctx); + return binding.fdatasync(fd); } /** diff --git a/src/node_file.cc b/src/node_file.cc index 4f50cd9954df5f..81db5309edf540 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1536,21 +1536,21 @@ static void Fdatasync(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 2); + CHECK_GE(argc, 1); CHECK(args[0]->IsInt32()); const int fd = args[0].As()->Value(); - FSReqBase* req_wrap_async = GetReqWrap(args, 1); - if (req_wrap_async != nullptr) { + if (argc > 1) { // fdatasync(fd, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 1); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN0(UV_FS_FDATASYNC, req_wrap_async) AsyncCall(env, req_wrap_async, args, "fdatasync", UTF8, AfterNoArgs, uv_fs_fdatasync, fd); - } else { - CHECK_EQ(argc, 3); - FSReqWrapSync req_wrap_sync; + } else { // fdatasync(fd) + FSReqWrapSync req_wrap_sync("fdatasync"); FS_SYNC_TRACE_BEGIN(fdatasync); - SyncCall(env, args[2], &req_wrap_sync, "fdatasync", uv_fs_fdatasync, fd); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_fdatasync, fd); FS_SYNC_TRACE_END(fdatasync); } } diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index a59045e33066cb..b4c4cd6e79a91c 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -86,6 +86,7 @@ declare namespace InternalFSBinding { function fdatasync(fd: number, req: FSReqCallback): void; function fdatasync(fd: number, req: undefined, ctx: FSSyncContext): void; function fdatasync(fd: number, usePromises: typeof kUsePromises): Promise; + function fdatasync(fd: number): void; function fstat(fd: number, useBigint: boolean, req: FSReqCallback): void; function fstat(fd: number, useBigint: true, req: FSReqCallback): void; From a517be0a5a532dfae3d8deaefeeb39c0569e3259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinicius=20Louren=C3=A7o?= <12551007+H4ad@users.noreply.github.com> Date: Tue, 3 Oct 2023 21:38:32 -0300 Subject: [PATCH 071/232] perf_hooks: reducing overhead of performance observer entry list PR-URL: https://github.com/nodejs/node/pull/50008 Reviewed-By: Stephen Belanger Reviewed-By: Yagiz Nizipli --- benchmark/perf_hooks/performance-observer.js | 49 ++++++++++++++++++++ lib/internal/perf/observe.js | 31 ++++++------- 2 files changed, 64 insertions(+), 16 deletions(-) create mode 100644 benchmark/perf_hooks/performance-observer.js diff --git a/benchmark/perf_hooks/performance-observer.js b/benchmark/perf_hooks/performance-observer.js new file mode 100644 index 00000000000000..42a94932860c38 --- /dev/null +++ b/benchmark/perf_hooks/performance-observer.js @@ -0,0 +1,49 @@ +'use strict'; + +const assert = require('assert'); +const common = require('../common.js'); + +const { + PerformanceObserver, + performance, +} = require('perf_hooks'); + +function randomFn() { + return Math.random(); +} + +const bench = common.createBenchmark(main, { + n: [1e5], + pending: [1, 10], +}, { + options: ['--expose-internals'], +}); + +let _result; + +function fillQueue(timerfied, pending) { + for (let i = 0; i < pending; i++) { + _result = timerfied(); + } + // Avoid V8 deadcode (elimination) + assert.ok(_result); +} + +function main({ n, pending }) { + const timerfied = performance.timerify(randomFn); + + let count = 0; + const obs = new PerformanceObserver((entries) => { + count += entries.getEntries().length; + + if (count >= n) { + bench.end(count); + } else { + fillQueue(timerfied, pending); + } + }); + obs.observe({ entryTypes: ['function'], buffered: true }); + + bench.start(); + fillQueue(timerfied, pending); +} diff --git a/lib/internal/perf/observe.js b/lib/internal/perf/observe.js index b97ae08402260a..244d01f541d886 100644 --- a/lib/internal/perf/observe.js +++ b/lib/internal/perf/observe.js @@ -15,7 +15,6 @@ const { ObjectDefineProperties, ObjectFreeze, ObjectKeys, - ReflectConstruct, SafeMap, SafeSet, Symbol, @@ -171,9 +170,18 @@ function maybeIncrementObserverCount(type) { } } +const kSkipThrow = Symbol('kSkipThrow'); +const performanceObserverSorter = (first, second) => { + return first.startTime - second.startTime; +}; + class PerformanceObserverEntryList { - constructor() { - throw new ERR_ILLEGAL_CONSTRUCTOR(); + constructor(skipThrowSymbol = undefined, entries = []) { + if (skipThrowSymbol !== kSkipThrow) { + throw new ERR_ILLEGAL_CONSTRUCTOR(); + } + + this[kBuffer] = ArrayPrototypeSort(entries, performanceObserverSorter); } getEntries() { @@ -232,14 +240,6 @@ ObjectDefineProperties(PerformanceObserverEntryList.prototype, { }, }); -function createPerformanceObserverEntryList(entries) { - return ReflectConstruct(function PerformanceObserverEntryList() { - this[kBuffer] = ArrayPrototypeSort(entries, (first, second) => { - return first.startTime - second.startTime; - }); - }, [], PerformanceObserverEntryList); -} - class PerformanceObserver { #buffer = []; #entryTypes = new SafeSet(); @@ -349,8 +349,9 @@ class PerformanceObserver { } [kDispatch]() { - this.#callback(createPerformanceObserverEntryList(this.takeRecords()), - this); + const entryList = new PerformanceObserverEntryList(kSkipThrow, this.takeRecords()); + + this.#callback(entryList, this); } [kInspect](depth, options) { @@ -523,9 +524,7 @@ function filterBufferMapByNameAndType(name, type) { bufferList = ArrayPrototypeSlice(bufferList); } - return ArrayPrototypeSort(bufferList, (first, second) => { - return first.startTime - second.startTime; - }); + return ArrayPrototypeSort(bufferList, performanceObserverSorter); } function observerCallback(name, type, startTime, duration, details) { From b70757476cce04b46e551a89e2973ca4a03f77bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Louren=C3=A7o?= Date: Tue, 19 Sep 2023 22:55:09 -0300 Subject: [PATCH 072/232] benchmark: added new benchmarks for blob PR-URL: https://github.com/nodejs/node/pull/49730 Reviewed-By: Yagiz Nizipli Reviewed-By: Zeyu "Alex" Yang Reviewed-By: Matthew Aitken Reviewed-By: Benjamin Gruenbaum Reviewed-By: Rafael Gonzaga Reviewed-By: Stephen Belanger --- benchmark/blob/clone.js | 22 ++++++++++++++ benchmark/blob/creation.js | 48 ++++++++++++++++++++++++++++++ benchmark/blob/resolveObjectURL.js | 22 ++++++++++++++ benchmark/blob/slice.js | 27 +++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 benchmark/blob/clone.js create mode 100644 benchmark/blob/creation.js create mode 100644 benchmark/blob/resolveObjectURL.js create mode 100644 benchmark/blob/slice.js diff --git a/benchmark/blob/clone.js b/benchmark/blob/clone.js new file mode 100644 index 00000000000000..7f66255ad9da0c --- /dev/null +++ b/benchmark/blob/clone.js @@ -0,0 +1,22 @@ +'use strict'; +const common = require('../common.js'); +const { + Blob, +} = require('node:buffer'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [50e3], +}); + +let _cloneResult; + +function main({ n }) { + bench.start(); + for (let i = 0; i < n; ++i) + _cloneResult = structuredClone(new Blob(['hello'])); + bench.end(n); + + // Avoid V8 deadcode (elimination) + assert.ok(_cloneResult); +} diff --git a/benchmark/blob/creation.js b/benchmark/blob/creation.js new file mode 100644 index 00000000000000..906d301bca850a --- /dev/null +++ b/benchmark/blob/creation.js @@ -0,0 +1,48 @@ +'use strict'; +const common = require('../common.js'); +const { + Blob, +} = require('node:buffer'); +const assert = require('assert'); + +const options = { + flags: ['--expose-internals'], +}; + +const bench = common.createBenchmark(main, { + n: [50e3], + kind: [ + 'Blob', + 'createBlob', + ], +}, options); + +let _blob; +let _createBlob; + +function main({ n, kind }) { + switch (kind) { + case 'Blob': { + bench.start(); + for (let i = 0; i < n; ++i) + _blob = new Blob(['hello']); + bench.end(n); + + // Avoid V8 deadcode (elimination) + assert.ok(_blob); + break; + } case 'createBlob': { + const { createBlob } = require('internal/blob'); + const reusableBlob = new Blob(['hello']); + bench.start(); + for (let i = 0; i < n; ++i) + _createBlob = createBlob(reusableBlob, reusableBlob.size); + bench.end(n); + + // Avoid V8 deadcode (elimination) + assert.ok(_createBlob); + break; + } default: + throw new Error('Invalid kind'); + } +} diff --git a/benchmark/blob/resolveObjectURL.js b/benchmark/blob/resolveObjectURL.js new file mode 100644 index 00000000000000..3b70c69f66dea6 --- /dev/null +++ b/benchmark/blob/resolveObjectURL.js @@ -0,0 +1,22 @@ +'use strict'; +const common = require('../common.js'); +const { Blob, resolveObjectURL } = require('node:buffer'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [50e3], +}); + +let _resolveObjectURL; + +function main({ n }) { + const blob = new Blob(['hello']); + const id = URL.createObjectURL(blob); + bench.start(); + for (let i = 0; i < n; ++i) + _resolveObjectURL = resolveObjectURL(id); + bench.end(n); + + // Avoid V8 deadcode (elimination) + assert.ok(_resolveObjectURL); +} diff --git a/benchmark/blob/slice.js b/benchmark/blob/slice.js new file mode 100644 index 00000000000000..fcad0d68584353 --- /dev/null +++ b/benchmark/blob/slice.js @@ -0,0 +1,27 @@ +'use strict'; +const common = require('../common.js'); +const { Blob } = require('node:buffer'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [50e3], + dataSize: [ + 5, + 30 * 1024, + ], +}); + +let _sliceResult; + +function main({ n, dataSize }) { + const data = 'a'.repeat(dataSize); + const reusableBlob = new Blob([data]); + + bench.start(); + for (let i = 0; i < n; ++i) + _sliceResult = reusableBlob.slice(0, Math.floor(data.length / 2)); + bench.end(n); + + // Avoid V8 deadcode (elimination) + assert.ok(_sliceResult); +} From 88611d199a88616a4b0e73954c4f5fedc04ec900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Louren=C3=A7o?= Date: Fri, 22 Sep 2023 08:52:57 -0300 Subject: [PATCH 073/232] benchmark: improved config for blob,file benchmark PR-URL: https://github.com/nodejs/node/pull/49730 Reviewed-By: Yagiz Nizipli Reviewed-By: Zeyu "Alex" Yang Reviewed-By: Matthew Aitken Reviewed-By: Benjamin Gruenbaum Reviewed-By: Rafael Gonzaga Reviewed-By: Stephen Belanger --- benchmark/blob/blob.js | 2 +- benchmark/blob/file.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/blob/blob.js b/benchmark/blob/blob.js index 7e5ea5d7cc2fae..4a79a87d27deba 100644 --- a/benchmark/blob/blob.js +++ b/benchmark/blob/blob.js @@ -4,7 +4,7 @@ const { Blob } = require('buffer'); const bench = common.createBenchmark(main, { bytes: [128, 1024, 1024 ** 2], - n: [1e6], + n: [1e3], operation: ['text', 'arrayBuffer'], }); diff --git a/benchmark/blob/file.js b/benchmark/blob/file.js index 001de1be1157f9..39596f91e397e8 100644 --- a/benchmark/blob/file.js +++ b/benchmark/blob/file.js @@ -3,8 +3,8 @@ const common = require('../common.js'); const { File } = require('buffer'); const bench = common.createBenchmark(main, { - bytes: [128, 1024, 1024 ** 2], - n: [1e6], + bytes: [128, 1024], + n: [1e3], operation: ['text', 'arrayBuffer'], }); From 52b56939499f778ed717d488c2b11bee69654217 Mon Sep 17 00:00:00 2001 From: Chemi Atlow Date: Wed, 4 Oct 2023 10:17:35 +0300 Subject: [PATCH 074/232] tls: ciphers allow bang syntax Fixes: https://github.com/nodejs/node/issues/49699 PR-URL: https://github.com/nodejs/node/pull/49712 Reviewed-By: Ben Noordhuis Reviewed-By: Moshe Atlow --- lib/internal/tls/secure-context.js | 12 ++++++++---- test/parallel/test-tls-set-ciphers.js | 5 +++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/internal/tls/secure-context.js b/lib/internal/tls/secure-context.js index 36d33e6ac8e2e3..0fa3098ffa1020 100644 --- a/lib/internal/tls/secure-context.js +++ b/lib/internal/tls/secure-context.js @@ -101,8 +101,10 @@ function processCiphers(ciphers, name) { ArrayPrototypeFilter( ciphers, (cipher) => { - return cipher.length > 0 && - !StringPrototypeStartsWith(cipher, 'TLS_'); + if (cipher.length === 0) return false; + if (StringPrototypeStartsWith(cipher, 'TLS_')) return false; + if (StringPrototypeStartsWith(cipher, '!TLS_')) return false; + return true; }), ':'); const cipherSuites = @@ -110,8 +112,10 @@ function processCiphers(ciphers, name) { ArrayPrototypeFilter( ciphers, (cipher) => { - return cipher.length > 0 && - StringPrototypeStartsWith(cipher, 'TLS_'); + if (cipher.length === 0) return false; + if (StringPrototypeStartsWith(cipher, 'TLS_')) return true; + if (StringPrototypeStartsWith(cipher, '!TLS_')) return true; + return false; }), ':'); // Specifying empty cipher suites for both TLS1.2 and TLS1.3 is invalid, its diff --git a/test/parallel/test-tls-set-ciphers.js b/test/parallel/test-tls-set-ciphers.js index b66c419cf5f4d1..313c5e238956b0 100644 --- a/test/parallel/test-tls-set-ciphers.js +++ b/test/parallel/test-tls-set-ciphers.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if (!common.hasOpenSSL3) + common.skip('missing crypto, or OpenSSL version lower than 3'); const fixtures = require('../common/fixtures'); const { inspect } = require('util'); @@ -85,6 +85,7 @@ test('AES256-SHA', U, 'AES256-SHA'); test(U, 'TLS_AES_256_GCM_SHA384', 'TLS_AES_256_GCM_SHA384'); test('TLS_AES_256_GCM_SHA384', U, 'TLS_AES_256_GCM_SHA384'); +test('TLS_AES_256_GCM_SHA384:!TLS_CHACHA20_POLY1305_SHA256', U, 'TLS_AES_256_GCM_SHA384'); // Do not have shared ciphers. test('TLS_AES_256_GCM_SHA384', 'TLS_CHACHA20_POLY1305_SHA256', From 1eb2af29b418c01c8280c3b8154b6b77f67e2700 Mon Sep 17 00:00:00 2001 From: Mohammed Keyvanzadeh Date: Wed, 4 Oct 2023 10:47:44 +0330 Subject: [PATCH 075/232] src: name scoped lock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Name a scoped lock to be consistent with all the others. PR-URL: https://github.com/nodejs/node/pull/50010 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen --- src/node_messaging.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node_messaging.cc b/src/node_messaging.cc index f015f86ec2a121..503a58bd4f6391 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -785,7 +785,7 @@ void MessagePort::OnMessage(MessageProcessingMode mode) { size_t processing_limit; if (mode == MessageProcessingMode::kNormalOperation) { - Mutex::ScopedLock(data_->mutex_); + Mutex::ScopedLock lock(data_->mutex_); processing_limit = std::max(data_->incoming_messages_.size(), static_cast(1000)); } else { From 4b27087b30d87d590152cc177c7c4a8886e78f48 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Wed, 4 Oct 2023 12:13:06 +0200 Subject: [PATCH 076/232] stream: optimize Writable PR-URL: https://github.com/nodejs/node/pull/50012 Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum Reviewed-By: Yagiz Nizipli --- lib/internal/streams/writable.js | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 5800c9df171ff2..8b44731b462a95 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -108,6 +108,7 @@ const kWriteCb = 1 << 26; const kExpectWriteCb = 1 << 27; const kAfterWriteTickInfo = 1 << 28; const kAfterWritePending = 1 << 29; +const kHasBuffer = 1 << 30; // TODO(benjamingr) it is likely slower to do it this way than with free functions function makeBitMapDescriptor(bit) { @@ -340,6 +341,7 @@ function resetBuffer(state) { state.buffered = []; state.bufferedIndex = 0; state.state |= kAllBuffers | kAllNoop; + state.state &= ~kHasBuffer; } WritableState.prototype.getBuffer = function getBuffer() { @@ -396,11 +398,13 @@ function Writable(options) { destroyImpl.construct(this, () => { const state = this._writableState; - if (!state.writing) { + if ((state.state & kWriting) === 0) { clearBuffer(this, state); } - finishMaybe(this, state); + if ((state.state & kEnding) !== 0) { + finishMaybe(this, state); + } }); } @@ -523,6 +527,7 @@ function writeOrBuffer(stream, state, chunk, encoding, callback) { if ((state.state & (kWriting | kErrored | kCorked | kConstructed)) !== kConstructed) { state.buffered.push({ chunk, encoding, callback }); + state.state |= kHasBuffer; if ((state.state & kAllBuffers) !== 0 && encoding !== 'buffer') { state.state &= ~kAllBuffers; } @@ -591,8 +596,9 @@ function onwrite(stream, er) { // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364 er.stack; // eslint-disable-line no-unused-expressions - if (!state.errored) { - state.errored = er; + if ((state.state & kErrored) === 0) { + state[kErroredValue] = er; + state.state |= kErrored; } // In case of duplex streams we need to notify the readable side of the @@ -607,12 +613,12 @@ function onwrite(stream, er) { onwriteError(stream, state, er, cb); } } else { - if (state.buffered.length > state.bufferedIndex) { + if ((state.state & kHasBuffer) !== 0) { clearBuffer(stream, state); } if (sync) { - const needDrain = state.length === 0 && (state.state & kNeedDrain) !== 0; + const needDrain = (state.state & kNeedDrain) !== 0 && state.length === 0; const needTick = needDrain || (state.state & kDestroyed !== 0) || cb !== nop; // It is a common case that the callback passed to .write() is always @@ -625,7 +631,9 @@ function onwrite(stream, er) { state.state |= kAfterWritePending; } else { state.pendingcb--; - finishMaybe(stream, state, true); + if ((state.state & kEnding) !== 0) { + finishMaybe(stream, state, true); + } } } else if ((state.state & kAfterWriteTickInfo) !== 0 && state[kAfterWriteTickInfoValue].cb === cb) { @@ -636,7 +644,9 @@ function onwrite(stream, er) { state.state |= (kAfterWritePending | kAfterWriteTickInfo); } else { state.pendingcb--; - finishMaybe(stream, state, true); + if ((state.state & kEnding) !== 0) { + finishMaybe(stream, state, true); + } } } else { afterWrite(stream, state, 1, cb); @@ -668,7 +678,9 @@ function afterWrite(stream, state, count, cb) { errorBuffer(state); } - finishMaybe(stream, state); + if ((state.state & kEnding) !== 0) { + finishMaybe(stream, state, true); + } } // If there's something in the buffer waiting, then invoke callbacks. @@ -692,7 +704,7 @@ function errorBuffer(state) { // If there's something in the buffer waiting, then process it. function clearBuffer(stream, state) { - if ((state.state & (kDestroyed | kBufferProcessing | kCorked)) !== 0 || + if ((state.state & (kDestroyed | kBufferProcessing | kCorked | kHasBuffer)) !== kHasBuffer || (state.state & kConstructed) === 0) { return; } From 88c739bef41187eeb9ac037a81162f9552bc82dd Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Wed, 4 Oct 2023 14:45:40 +0200 Subject: [PATCH 077/232] stream: avoid unnecessary drain for sync stream PR-URL: https://github.com/nodejs/node/pull/50014 Reviewed-By: Matteo Collina Reviewed-By: Benjamin Gruenbaum --- lib/internal/streams/transform.js | 7 ++++++- lib/internal/streams/writable.js | 14 ++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/internal/streams/transform.js b/lib/internal/streams/transform.js index 2527ce94c8f44d..02646f44344901 100644 --- a/lib/internal/streams/transform.js +++ b/lib/internal/streams/transform.js @@ -182,7 +182,12 @@ Transform.prototype._write = function(chunk, encoding, callback) { this.push(val); } - if ( + if (rState.ended) { + // If user has called this.push(null) we have to + // delay the callback to properly progate the new + // state. + process.nextTick(callback); + } else if ( wState.ended || // Backwards compat. length === rState.length || // Backwards compat. rState.length < rState.highWaterMark diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 8b44731b462a95..9851b77bd8fa98 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -517,14 +517,6 @@ function writeOrBuffer(stream, state, chunk, encoding, callback) { state.length += len; - // stream._write resets state.length - const ret = state.length < state.highWaterMark; - - // We must ensure that previous needDrain will not be reset to false. - if (!ret) { - state.state |= kNeedDrain; - } - if ((state.state & (kWriting | kErrored | kCorked | kConstructed)) !== kConstructed) { state.buffered.push({ chunk, encoding, callback }); state.state |= kHasBuffer; @@ -544,6 +536,12 @@ function writeOrBuffer(stream, state, chunk, encoding, callback) { state.state &= ~kSync; } + const ret = state.length < state.highWaterMark; + + if (!ret) { + state.state |= kNeedDrain; + } + // Return false if errored or destroyed in order to break // any synchronous while(stream.write(data)) loops. return ret && (state.state & (kDestroyed | kErrored)) === 0; From 22e3eb659a3f50aa9d33be3caaafe287893accd1 Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Wed, 4 Oct 2023 09:10:30 -0400 Subject: [PATCH 078/232] fs: add flush option to writeFile() functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit adds a 'flush' option to the fs.writeFile family of functions. Refs: https://github.com/nodejs/node/issues/49886 PR-URL: https://github.com/nodejs/node/pull/50009 Reviewed-By: Matteo Collina Reviewed-By: Michaël Zasso Reviewed-By: LiviaMedeiros Reviewed-By: Daijiro Wachi --- doc/api/fs.md | 20 +++- lib/fs.js | 59 +++++++++-- lib/internal/fs/promises.js | 31 +++++- test/parallel/test-fs-write-file-flush.js | 114 ++++++++++++++++++++++ 4 files changed, 210 insertions(+), 14 deletions(-) create mode 100644 test/parallel/test-fs-write-file-flush.js diff --git a/doc/api/fs.md b/doc/api/fs.md index 54e5e5bd571ab1..56f693656eddb7 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -1718,6 +1718,9 @@ All the [caveats][] for `fs.watch()` also apply to `fsPromises.watch()`. + +The maximum number of test files that the test runner CLI will execute +concurrently. The default value is `os.availableParallelism() - 1`. + ### `--test-name-pattern` -> Stability: 1 - Experimental +> Stability: 1.1 - Active development When using the [Permission Model][], the process will not be able to spawn any child process by default. @@ -154,7 +154,7 @@ changes: description: Paths delimited by comma (`,`) are no longer allowed. --> -> Stability: 1 - Experimental +> Stability: 1.1 - Active development This flag configures file system read permissions using the [Permission Model][]. @@ -208,7 +208,7 @@ changes: description: Paths delimited by comma (`,`) are no longer allowed. --> -> Stability: 1 - Experimental +> Stability: 1.1 - Active development This flag configures file system write permissions using the [Permission Model][]. @@ -232,7 +232,7 @@ Relative paths are NOT supported through the CLI flag. added: v20.0.0 --> -> Stability: 1 - Experimental +> Stability: 1.1 - Active development When using the [Permission Model][], the process will not be able to create any worker threads by default. @@ -666,7 +666,7 @@ Enable experimental support for the `https:` protocol in `import` specifiers. added: v20.0.0 --> -> Stability: 1 - Experimental +> Stability: 1.1 - Active development Enable the Permission Model for current process. When enabled, the following permissions are restricted: diff --git a/doc/api/permissions.md b/doc/api/permissions.md index e17bbb38e55cbc..f8796fe6f753c5 100644 --- a/doc/api/permissions.md +++ b/doc/api/permissions.md @@ -468,7 +468,7 @@ Additionally, import maps only work on `import` so it may be desirable to add a -> Stability: 1 - Experimental +> Stability: 1.1 - Active development From aab045ec4bac26f10ce95012473185249e712b53 Mon Sep 17 00:00:00 2001 From: Rafael Gonzaga Date: Sun, 8 Oct 2023 19:56:00 -0300 Subject: [PATCH 106/232] doc: mention files read before env setup PR-URL: https://github.com/nodejs/node/pull/50072 Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel --- doc/api/permissions.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/api/permissions.md b/doc/api/permissions.md index f8796fe6f753c5..92d4a6f4d0a2d8 100644 --- a/doc/api/permissions.md +++ b/doc/api/permissions.md @@ -576,6 +576,10 @@ There are constraints you need to know before using this system: * When creating symlinks the target (first argument) should have read and write access. * Permission changes are not retroactively applied to existing resources. +* The Permission Model is initialized after the Node.js environment is set up. + However, certain flags such as `--env-file` or `--openssl-config` are designed + to read files before environment initialization. As a result, such flags are + not subject to the rules of the Permission Model. [Import maps]: https://url.spec.whatwg.org/#relative-url-with-fragment-string [Security Policy]: https://github.com/nodejs/node/blob/main/SECURITY.md From c99e51ed1b7c8f3f570b23385fe30f7e9850875a Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Mon, 9 Oct 2023 04:53:19 +0200 Subject: [PATCH 107/232] src: generate default snapshot with --predictable To improve determinism of snapshot generation, add --predictable to the V8 flags used to initialize a process launched to generate snapshot. Also add a kGeneratePredictableSnapshot flag to ProcessInitializationFlags for this and moves the configuration of these flags into node::InitializeOncePerProcess() so that it can be shared by embedders. PR-URL: https://github.com/nodejs/node/pull/48749 Refs: https://github.com/nodejs/build/issues/3043 Reviewed-By: Richard Lau Reviewed-By: Yagiz Nizipli Reviewed-By: Chengzhong Wu --- src/node.cc | 6 ++++++ src/node.h | 2 ++ tools/snapshot/node_mksnapshot.cc | 5 ++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/node.cc b/src/node.cc index 89e0e5524c2102..14e27806a5d3b2 100644 --- a/src/node.cc +++ b/src/node.cc @@ -838,6 +838,12 @@ static ExitCode InitializeNodeWithArgsInternal( V8::SetFlagsFromString(NODE_V8_OPTIONS, sizeof(NODE_V8_OPTIONS) - 1); #endif + if (!!(flags & ProcessInitializationFlags::kGeneratePredictableSnapshot) || + per_process::cli_options->per_isolate->build_snapshot) { + v8::V8::SetFlagsFromString("--predictable"); + v8::V8::SetFlagsFromString("--random_seed=42"); + } + // Specify this explicitly to avoid being affected by V8 changes to the // default value. V8::SetFlagsFromString("--rehash-snapshot"); diff --git a/src/node.h b/src/node.h index ca01c42e8af484..f2740116a4710b 100644 --- a/src/node.h +++ b/src/node.h @@ -265,6 +265,8 @@ enum Flags : uint32_t { // cppgc::InitializeProcess() before creating a Node.js environment // and call cppgc::ShutdownProcess() before process shutdown. kNoInitializeCppgc = 1 << 13, + // Initialize the process for predictable snapshot generation. + kGeneratePredictableSnapshot = 1 << 14, // Emulate the behavior of InitializeNodeWithArgs() when passing // a flags argument to the InitializeOncePerProcess() replacement diff --git a/tools/snapshot/node_mksnapshot.cc b/tools/snapshot/node_mksnapshot.cc index a9df251700ea06..841a8ca743bcaa 100644 --- a/tools/snapshot/node_mksnapshot.cc +++ b/tools/snapshot/node_mksnapshot.cc @@ -50,8 +50,6 @@ int main(int argc, char* argv[]) { setvbuf(stderr, nullptr, _IONBF, 0); #endif // _WIN32 - v8::V8::SetFlagsFromString("--random_seed=42"); - v8::V8::SetFlagsFromString("--harmony-import-assertions"); return BuildSnapshot(argc, argv); } @@ -65,7 +63,8 @@ int BuildSnapshot(int argc, char* argv[]) { std::unique_ptr result = node::InitializeOncePerProcess( - std::vector(argv, argv + argc)); + std::vector(argv, argv + argc), + node::ProcessInitializationFlags::kGeneratePredictableSnapshot); CHECK(!result->early_return()); CHECK_EQ(result->exit_code(), 0); From 9d836516e6809425c7285b2836f960cd13326841 Mon Sep 17 00:00:00 2001 From: Niya Shiyas <98641481+niyashiyas@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:53:15 +0530 Subject: [PATCH 108/232] test: replace forEach with for..of in test-parse-args.mjs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49824 Reviewed-By: Luigi Pinca Reviewed-By: Tobias Nießen --- test/parallel/test-parse-args.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-parse-args.mjs b/test/parallel/test-parse-args.mjs index 98c162643e64ff..41af0eba1c923d 100644 --- a/test/parallel/test-parse-args.mjs +++ b/test/parallel/test-parse-args.mjs @@ -451,7 +451,7 @@ const candidateGreedyOptions = [ '--foo', ]; -candidateGreedyOptions.forEach((value) => { +for (const value of candidateGreedyOptions) { test(`greedy: when short option with value '${value}' then eaten`, () => { const args = ['-w', value]; const options = { with: { type: 'string', short: 'w' } }; @@ -469,7 +469,7 @@ candidateGreedyOptions.forEach((value) => { const result = parseArgs({ args, options, strict: false }); assert.deepStrictEqual(result, expectedResult); }); -}); +} test('strict: when candidate option value is plain text then does not throw', () => { const args = ['--with', 'abc']; From edb0ffd7d4374e4e330aa5e58b1d07b2a4455477 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 9 Oct 2023 09:41:01 -0400 Subject: [PATCH 109/232] crypto: use X509_ALGOR accessors instead of reaching into X509_ALGOR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While the struct is still public in OpenSSL, there is a (somewhat inconvenient) accessor. Use it to remain compatible if it becomes opaque in the future. PR-URL: https://github.com/nodejs/node/pull/50057 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen --- src/crypto/crypto_rsa.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/crypto/crypto_rsa.cc b/src/crypto/crypto_rsa.cc index 3f8499457cf107..f222ab9cf5ccbc 100644 --- a/src/crypto/crypto_rsa.cc +++ b/src/crypto/crypto_rsa.cc @@ -577,7 +577,9 @@ Maybe GetRsaKeyDetail( int64_t salt_length = 20; if (params->hashAlgorithm != nullptr) { - hash_nid = OBJ_obj2nid(params->hashAlgorithm->algorithm); + const ASN1_OBJECT* hash_obj; + X509_ALGOR_get0(&hash_obj, nullptr, nullptr, params->hashAlgorithm); + hash_nid = OBJ_obj2nid(hash_obj); } if (target @@ -590,9 +592,13 @@ Maybe GetRsaKeyDetail( } if (params->maskGenAlgorithm != nullptr) { - mgf_nid = OBJ_obj2nid(params->maskGenAlgorithm->algorithm); + const ASN1_OBJECT* mgf_obj; + X509_ALGOR_get0(&mgf_obj, nullptr, nullptr, params->maskGenAlgorithm); + mgf_nid = OBJ_obj2nid(mgf_obj); if (mgf_nid == NID_mgf1) { - mgf1_hash_nid = OBJ_obj2nid(params->maskHash->algorithm); + const ASN1_OBJECT* mgf1_hash_obj; + X509_ALGOR_get0(&mgf1_hash_obj, nullptr, nullptr, params->maskHash); + mgf1_hash_nid = OBJ_obj2nid(mgf1_hash_obj); } } From 03bf5c5d9a0a46ea89c1d62f906f89df8eeedf2e Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 10 Oct 2023 01:45:45 +0100 Subject: [PATCH 110/232] deps: update googletest to 2dd1c13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50081 Reviewed-By: Luigi Pinca Reviewed-By: Tobias Nießen --- deps/googletest/src/gtest-port.cc | 15 +++++++++++++-- .../maintaining/maintaining-dependencies.md | 6 +++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/deps/googletest/src/gtest-port.cc b/deps/googletest/src/gtest-port.cc index e9d12d92e7cb5a..3bb7dd450812d5 100644 --- a/deps/googletest/src/gtest-port.cc +++ b/deps/googletest/src/gtest-port.cc @@ -697,13 +697,24 @@ bool RE::PartialMatch(const char* str, const RE& re) { void RE::Init(const char* regex) { pattern_ = regex; + // NetBSD (and Android, which takes its regex implemntation from NetBSD) does + // not include the GNU regex extensions (such as Perl style character classes + // like \w) in REG_EXTENDED. REG_EXTENDED is only specified to include the + // [[:alpha:]] style character classes. Enable REG_GNU wherever it is defined + // so users can use those extensions. +#if defined(REG_GNU) + constexpr int reg_flags = REG_EXTENDED | REG_GNU; +#else + constexpr int reg_flags = REG_EXTENDED; +#endif + // Reserves enough bytes to hold the regular expression used for a // full match. const size_t full_regex_len = strlen(regex) + 10; char* const full_pattern = new char[full_regex_len]; snprintf(full_pattern, full_regex_len, "^(%s)$", regex); - is_valid_ = regcomp(&full_regex_, full_pattern, REG_EXTENDED) == 0; + is_valid_ = regcomp(&full_regex_, full_pattern, reg_flags) == 0; // We want to call regcomp(&partial_regex_, ...) even if the // previous expression returns false. Otherwise partial_regex_ may // not be properly initialized can may cause trouble when it's @@ -714,7 +725,7 @@ void RE::Init(const char* regex) { // regex. We change it to an equivalent form "()" to be safe. if (is_valid_) { const char* const partial_regex = (*regex == '\0') ? "()" : regex; - is_valid_ = regcomp(&partial_regex_, partial_regex, REG_EXTENDED) == 0; + is_valid_ = regcomp(&partial_regex_, partial_regex, reg_flags) == 0; } EXPECT_TRUE(is_valid_) << "Regular expression \"" << regex diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 62a5f524251791..210d41c7200d6d 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -15,7 +15,7 @@ This a list of all the dependencies: * [c-ares 1.19.0][] * [cjs-module-lexer 1.2.2][] * [corepack][] -* [googletest e47544a][] +* [googletest 2dd1c13][] * [histogram 0.11.8][] * [icu-small 73.2][] * [libuv 1.46.0][] @@ -189,7 +189,7 @@ In practical terms, Corepack will let you use Yarn and pnpm without having to install them - just like what currently happens with npm, which is shipped by Node.js by default. -### googletest e47544a +### googletest 2dd1c13 The [googletest](https://github.com/google/googletest) dependency is Google’s C++ testing and mocking framework. @@ -326,7 +326,7 @@ performance improvements not currently available in standard zlib. [cjs-module-lexer 1.2.2]: #cjs-module-lexer-122 [corepack]: #corepack [dependency-update-action]: ../../../.github/workflows/tools.yml -[googletest e47544a]: #googletest-e47544a +[googletest 2dd1c13]: #googletest-2dd1c13 [histogram 0.11.8]: #histogram-0118 [icu-small 73.2]: #icu-small-732 [libuv 1.46.0]: #libuv-1460 From b9adf3d66e23d087da8f0b4cbf09ca2afe982eba Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 10 Oct 2023 01:45:53 +0100 Subject: [PATCH 111/232] tools: update lint-md-dependencies - @rollup/plugin-commonjs@25.0.5 - @rollup/plugin-node-resolve@15.2.2 - rollup@4.0.2 PR-URL: https://github.com/nodejs/node/pull/50083 Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel --- tools/lint-md/package-lock.json | 221 +++++++++++++++++++++++++++----- tools/lint-md/package.json | 6 +- 2 files changed, 193 insertions(+), 34 deletions(-) diff --git a/tools/lint-md/package-lock.json b/tools/lint-md/package-lock.json index a05cc3cab05b65..6c1310c681d71e 100644 --- a/tools/lint-md/package-lock.json +++ b/tools/lint-md/package-lock.json @@ -16,9 +16,9 @@ "vfile-reporter": "^8.1.0" }, "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-node-resolve": "^15.2.1", - "rollup": "^3.29.4", + "@rollup/plugin-commonjs": "^25.0.5", + "@rollup/plugin-node-resolve": "^15.2.2", + "rollup": "^4.0.2", "rollup-plugin-cleanup": "^3.2.1" } }, @@ -29,9 +29,9 @@ "dev": true }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", + "version": "25.0.5", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.5.tgz", + "integrity": "sha512-xY8r/A9oisSeSuLCTfhssyDjo9Vp/eDiRLXkg1MXCcEEgEjPmLU+ZyDB20OOD0NlyDa/8SGbK5uIggF5XTx77w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -45,7 +45,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" + "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -54,9 +54,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", - "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", + "version": "15.2.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.2.tgz", + "integrity": "sha512-f64bU4OKqV0yihtxFemmuf0oj37pToCFMISCA+sJbbIAl5wcpbRO9XgWNWb1tDiWQJUcPxo6V0l59hcuZOQ3kw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -70,7 +70,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -79,9 +79,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", - "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz", + "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -92,7 +92,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -100,6 +100,162 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.0.2.tgz", + "integrity": "sha512-xDvk1pT4vaPU2BOLy0MqHMdYZyntqpaBf8RhBiezlqG9OjY8F50TyctHo8znigYKd+QCFhCmlmXHOL/LoaOl3w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.0.2.tgz", + "integrity": "sha512-lqCglytY3E6raze27DD9VQJWohbwCxzqs9aSHcj5X/8hJpzZfNdbsr4Ja9Hqp6iPyF53+5PtPx0pKRlkSvlHZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.0.2.tgz", + "integrity": "sha512-nkBKItS6E6CCzvRwgiKad+j+1ibmL7SIInj7oqMWmdkCjiSX6VeVZw2mLlRKIUL+JjsBgpATTfo7BiAXc1v0jA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.0.2.tgz", + "integrity": "sha512-vX2C8xvWPIbpEgQht95+dY6BReKAvtDgPDGi0XN0kWJKkm4WdNmq5dnwscv/zxvi+n6jUTBhs6GtpkkWT4q8Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.0.2.tgz", + "integrity": "sha512-DVFIfcHOjgmeHOAqji4xNz2wczt1Bmzy9MwBZKBa83SjBVO/i38VHDR+9ixo8QpBOiEagmNw12DucG+v55tCrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.0.2.tgz", + "integrity": "sha512-GCK/a9ItUxPI0V5hQEJjH4JtOJO90GF2Hja7TO+EZ8rmkGvEi8/ZDMhXmcuDpQT7/PWrTT9RvnG8snMd5SrhBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.0.2.tgz", + "integrity": "sha512-cLuBp7rOjIB1R2j/VazjCmHC7liWUur2e9mFflLJBAWCkrZ+X0+QwHLvOQakIwDymungzAKv6W9kHZnTp/Mqrg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.0.2.tgz", + "integrity": "sha512-Zqw4iVnJr2naoyQus0yLy7sLtisCQcpdMKUCeXPBjkJtpiflRime/TMojbnl8O3oxUAj92mxr+t7im/RbgA20w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.0.2.tgz", + "integrity": "sha512-jJRU9TyUD/iMqjf8aLAp7XiN3pIj5v6Qcu+cdzBfVTKDD0Fvua4oUoK8eVJ9ZuKBEQKt3WdlcwJXFkpmMLk6kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.0.2.tgz", + "integrity": "sha512-ZkS2NixCxHKC4zbOnw64ztEGGDVIYP6nKkGBfOAxEPW71Sji9v8z3yaHNuae/JHPwXA+14oDefnOuVfxl59SmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.0.2.tgz", + "integrity": "sha512-3SKjj+tvnZ0oZq2BKB+fI+DqYI83VrRzk7eed8tJkxeZ4zxJZcLSE8YDQLYGq1tZAnAX+H076RHHB4gTZXsQzw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.0.2.tgz", + "integrity": "sha512-MBdJIOxRauKkry7t2q+rTHa3aWjVez2eioWg+etRVS3dE4tChhmt5oqZYr48R6bPmcwEhxQr96gVRfeQrLbqng==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@types/debug": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", @@ -361,12 +517,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -387,13 +537,10 @@ } }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -5619,18 +5766,30 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.0.2.tgz", + "integrity": "sha512-MCScu4usMPCeVFaiLcgMDaBQeYi1z6vpWxz0r0hq0Hv77Y2YuOTZldkuNJ54BdYBH3e+nkrk6j0Rre/NLDBYzg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.0.2", + "@rollup/rollup-android-arm64": "4.0.2", + "@rollup/rollup-darwin-arm64": "4.0.2", + "@rollup/rollup-darwin-x64": "4.0.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.0.2", + "@rollup/rollup-linux-arm64-gnu": "4.0.2", + "@rollup/rollup-linux-arm64-musl": "4.0.2", + "@rollup/rollup-linux-x64-gnu": "4.0.2", + "@rollup/rollup-linux-x64-musl": "4.0.2", + "@rollup/rollup-win32-arm64-msvc": "4.0.2", + "@rollup/rollup-win32-ia32-msvc": "4.0.2", + "@rollup/rollup-win32-x64-msvc": "4.0.2", "fsevents": "~2.3.2" } }, diff --git a/tools/lint-md/package.json b/tools/lint-md/package.json index 968dbce29a6cc6..0255adedd42373 100644 --- a/tools/lint-md/package.json +++ b/tools/lint-md/package.json @@ -14,9 +14,9 @@ "vfile-reporter": "^8.1.0" }, "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-node-resolve": "^15.2.1", - "rollup": "^3.29.4", + "@rollup/plugin-commonjs": "^25.0.5", + "@rollup/plugin-node-resolve": "^15.2.2", + "rollup": "^4.0.2", "rollup-plugin-cleanup": "^3.2.1" } } From 9302806c0a23f477e72e8131c2c62eeee0937adb Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 10 Oct 2023 06:23:08 +0100 Subject: [PATCH 112/232] deps: update zlib to 1.2.13.1-motley-fef5869 PR-URL: https://github.com/nodejs/node/pull/50085 Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel --- deps/zlib/CMakeLists.txt | 53 ++++++++++ deps/zlib/README.chromium | 2 +- deps/zlib/contrib/optimizations/inflate.c | 5 +- .../contrib/optimizations/insert_string.h | 97 +++---------------- .../contrib/tests/standalone_test_runner.cc | 9 ++ deps/zlib/contrib/tests/utils_unittest.cc | 14 ++- deps/zlib/deflate.c | 10 +- deps/zlib/google/DEPS | 3 +- deps/zlib/google/zip_internal.cc | 13 +-- deps/zlib/google/zip_reader.cc | 16 +-- deps/zlib/google/zip_reader_unittest.cc | 34 ++----- .../maintaining/maintaining-dependencies.md | 6 +- 12 files changed, 126 insertions(+), 136 deletions(-) create mode 100644 deps/zlib/contrib/tests/standalone_test_runner.cc diff --git a/deps/zlib/CMakeLists.txt b/deps/zlib/CMakeLists.txt index 471a3a46a09dd6..234eab8db41def 100644 --- a/deps/zlib/CMakeLists.txt +++ b/deps/zlib/CMakeLists.txt @@ -24,6 +24,7 @@ check_include_file(stddef.h HAVE_STDDEF_H) option(ENABLE_SIMD_OPTIMIZATIONS "Enable all SIMD optimizations" OFF) option(ENABLE_SIMD_AVX512 "Enable SIMD AXV512 optimizations" OFF) option(USE_ZLIB_RABIN_KARP_HASH "Enable bitstream compatibility with canonical zlib" OFF) +option(BUILD_UNITTESTS "Enable standalone unit tests build" OFF) if (USE_ZLIB_RABIN_KARP_HASH) add_definitions(-DUSE_ZLIB_RABIN_KARP_ROLLING_HASH) @@ -244,6 +245,58 @@ set(CMAKE_CXX_STANDARD 14) # workaround for older compilers (e.g. g++ 5.4). add_executable(zlib_bench contrib/bench/zlib_bench.cc) target_link_libraries(zlib_bench zlib) +#============================================================================ +# Unit Tests +#============================================================================ +if (BUILD_UNITTESTS) + include (ExternalProject) + set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/third_party) + ExternalProject_add( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG d1467f5813f4d363cfd11aba99c4e9fe47a85e99 + UPDATE_COMMAND "" + INSTALL_COMMAND "" + LOG_DOWNLOAD ON + LOG_CONFIGURE ON + LOG_BUILD ON + ) + + # gtest includedir + ExternalProject_Get_Property(googletest source_dir) + set(GTEST_INCLUDE_DIRS + ${source_dir}/googletest/include + ${source_dir}/googletest/include/gtest + ) + + # gtest library + ExternalProject_Get_Property(googletest binary_dir) + set(GTEST_LIBRARY_PATH ${binary_dir}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a) + set(GTEST_LIBRARY gtest) + add_library(${GTEST_LIBRARY} UNKNOWN IMPORTED) + set_property(TARGET ${GTEST_LIBRARY} PROPERTY IMPORTED_LOCATION ${GTEST_LIBRARY_PATH}) + add_dependencies(${GTEST_LIBRARY} googletest) + + set(UTEST_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/tests/infcover.cc + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/tests/infcover.h + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/tests/utils_unittest.cc + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/tests/standalone_test_runner.cc + ${CMAKE_CURRENT_SOURCE_DIR}/google/compression_utils_portable.cc + ) + + add_compile_definitions(CMAKE_STANDALONE_UNITTESTS) + + add_executable(zlib_unittests ${UTEST_SRC}) + target_include_directories(zlib_unittests PUBLIC ${GTEST_INCLUDE_DIRS}) + target_include_directories(zlib_unittests PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/google) + + target_link_libraries(zlib_unittests ${GTEST_LIBRARY}) + target_link_libraries(zlib_unittests zlib) + # Needed by gtest + target_link_libraries(zlib_unittests pthread) +endif() + #============================================================================ # Minigzip tool #============================================================================ diff --git a/deps/zlib/README.chromium b/deps/zlib/README.chromium index 663ee0521ed30c..1dfb99666423ea 100644 --- a/deps/zlib/README.chromium +++ b/deps/zlib/README.chromium @@ -5,7 +5,7 @@ Version: 1.2.13 CPEPrefix: cpe:/a:zlib:zlib:1.2.13 Security Critical: yes Shipped: yes -License: Custom license +License: Zlib License File: LICENSE License Android Compatible: yes diff --git a/deps/zlib/contrib/optimizations/inflate.c b/deps/zlib/contrib/optimizations/inflate.c index 6ed87160f5350d..2a8e0ef76db6ba 100644 --- a/deps/zlib/contrib/optimizations/inflate.c +++ b/deps/zlib/contrib/optimizations/inflate.c @@ -1488,8 +1488,9 @@ int ZEXPORT inflateCopy(z_streamp dest, z_streamp source) { if (copy == Z_NULL) return Z_MEM_ERROR; window = Z_NULL; if (state->window != Z_NULL) { - window = (unsigned char FAR *) - ZALLOC(source, 1U << state->wbits, sizeof(unsigned char)); + window = (unsigned char FAR *)ZALLOC( + source, (1U << state->wbits) + CHUNKCOPY_CHUNK_SIZE, + sizeof(unsigned char)); if (window == Z_NULL) { ZFREE(source, copy); return Z_MEM_ERROR; diff --git a/deps/zlib/contrib/optimizations/insert_string.h b/deps/zlib/contrib/optimizations/insert_string.h index c6a296aef7390e..260b8268029a8c 100644 --- a/deps/zlib/contrib/optimizations/insert_string.h +++ b/deps/zlib/contrib/optimizations/insert_string.h @@ -16,64 +16,7 @@ #endif #endif -#include "cpu_features.h" - -// clang-format off -#if defined(CRC32_SIMD_SSE42_PCLMUL) - #include /* Required to make MSVC bot build pass. */ - - #if defined(__clang__) || defined(__GNUC__) - #define TARGET_CPU_WITH_CRC __attribute__((target("sse4.2"))) - #else - #define TARGET_CPU_WITH_CRC - #endif - - /* CRC32C uint32_t */ - #define _cpu_crc32c_hash_u32 _mm_crc32_u32 - -#elif defined(CRC32_ARMV8_CRC32) - #if defined(__clang__) - #define __crc32cw __builtin_arm_crc32cw - #elif defined(__GNUC__) - #define __crc32cw __builtin_aarch64_crc32cw - #endif - - #if defined(__aarch64__) && defined(__clang__) - #define TARGET_CPU_WITH_CRC __attribute__((target("crc"))) - #elif defined(__aarch64__) && defined(__GNUC__) - #define TARGET_CPU_WITH_CRC __attribute__((target("+crc"))) - #elif defined(__clang__) // !defined(__aarch64__) - #define TARGET_CPU_WITH_CRC __attribute__((target("armv8-a,crc"))) - #endif // defined(__aarch64__) - - /* CRC32C uint32_t */ - #define _cpu_crc32c_hash_u32 __crc32cw - -#endif -// clang-format on - -#if defined(TARGET_CPU_WITH_CRC) - -TARGET_CPU_WITH_CRC -local INLINE Pos insert_string_simd(deflate_state* const s, const Pos str) { - Pos ret; - unsigned val, h = 0; - - zmemcpy(&val, &s->window[str], sizeof(val)); - - if (s->level >= 6) - val &= 0xFFFFFF; - - /* Compute hash from the CRC32C of |val|. */ - h = _cpu_crc32c_hash_u32(h, val); - - ret = s->head[h & s->hash_mask]; - s->head[h & s->hash_mask] = str; - s->prev[str & s->w_mask] = ret; - return ret; -} - -#endif // TARGET_CPU_WITH_CRC +#include /** * Some applications need to match zlib DEFLATE output exactly [3]. Use the @@ -107,10 +50,23 @@ local INLINE Pos insert_string_simd(deflate_state* const s, const Pos str) { * characters and the first MIN_MATCH bytes of str are valid (except for * the last MIN_MATCH-1 bytes of the input file). */ -local INLINE Pos insert_string_c(deflate_state* const s, const Pos str) { +local INLINE Pos insert_string(deflate_state* const s, const Pos str) { Pos ret; - +/* insert_string dictionary insertion: ANZAC++ hasher + * significantly improves data compression speed. + * + * Note: the generated compressed output is a valid DEFLATE stream, but will + * differ from canonical zlib output. + */ +#if defined(USE_ZLIB_RABIN_KARP_ROLLING_HASH) UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH - 1)]); +#else + uint32_t value; + // Validated for little endian archs (i.e. x86, Arm). YMMV for big endian. + zmemcpy(&value, &s->window[str], sizeof(value)); + s->ins_h = ((value * 66521 + 66521) >> 16) & s->hash_mask; +#endif + #ifdef FASTEST ret = s->head[s->ins_h]; #else @@ -121,25 +77,4 @@ local INLINE Pos insert_string_c(deflate_state* const s, const Pos str) { return ret; } -local INLINE Pos insert_string(deflate_state* const s, const Pos str) { -/* insert_string_simd string dictionary insertion: SIMD crc32c symbol hasher - * significantly improves data compression speed. - * - * Note: the generated compressed output is a valid DEFLATE stream, but will - * differ from canonical zlib output. - */ -#if defined(USE_ZLIB_RABIN_KARP_ROLLING_HASH) -/* So this build-time option can be used to disable the crc32c hash, and use - * the Rabin-Karp hash instead. - */ /* FALLTHROUGH Rabin-Karp */ -#elif defined(TARGET_CPU_WITH_CRC) && defined(CRC32_SIMD_SSE42_PCLMUL) - if (x86_cpu_enable_simd) - return insert_string_simd(s, str); -#elif defined(TARGET_CPU_WITH_CRC) && defined(CRC32_ARMV8_CRC32) - if (arm_cpu_enable_crc32) - return insert_string_simd(s, str); -#endif - return insert_string_c(s, str); /* Rabin-Karp */ -} - #endif /* INSERT_STRING_H */ diff --git a/deps/zlib/contrib/tests/standalone_test_runner.cc b/deps/zlib/contrib/tests/standalone_test_runner.cc new file mode 100644 index 00000000000000..1ec9c30bacba02 --- /dev/null +++ b/deps/zlib/contrib/tests/standalone_test_runner.cc @@ -0,0 +1,9 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the Chromium source repository LICENSE file. +#include + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/deps/zlib/contrib/tests/utils_unittest.cc b/deps/zlib/contrib/tests/utils_unittest.cc index 7270d0af90855f..d06dbc9812ad92 100644 --- a/deps/zlib/contrib/tests/utils_unittest.cc +++ b/deps/zlib/contrib/tests/utils_unittest.cc @@ -7,12 +7,17 @@ #include #include -#include "base/files/file_path.h" -#include "base/files/scoped_temp_dir.h" #include "compression_utils_portable.h" #include "gtest.h" + +#if !defined(CMAKE_STANDALONE_UNITTESTS) +#include "base/files/file_path.h" +#include "base/files/scoped_temp_dir.h" + #include "third_party/zlib/contrib/minizip/unzip.h" #include "third_party/zlib/contrib/minizip/zip.h" +#endif + #include "zlib.h" void TestPayloads(size_t input_size, zlib_internal::WrapperType type) { @@ -1020,6 +1025,9 @@ TEST(ZlibTest, DeflateZFixedCorruption) { 0); } +// TODO(gustavoa): make these tests run standalone. +#ifndef CMAKE_STANDALONE_UNITTESTS + TEST(ZlibTest, ZipFilenameCommentSize) { // Check that minizip rejects zip member filenames or comments longer than // the zip format can represent. @@ -1138,3 +1146,5 @@ TEST(ZlibTest, ZipExtraFieldSize) { EXPECT_EQ(unzGoToNextFile(uzf), UNZ_END_OF_LIST_OF_FILE); EXPECT_EQ(unzClose(uzf), UNZ_OK); } + +#endif diff --git a/deps/zlib/deflate.c b/deps/zlib/deflate.c index 1fa55e5d010618..173ce596be582e 100644 --- a/deps/zlib/deflate.c +++ b/deps/zlib/deflate.c @@ -457,15 +457,9 @@ int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, s->w_size = 1 << s->w_bits; s->w_mask = s->w_size - 1; + s->chromium_zlib_hash = 1; +#if defined(USE_ZLIB_RABIN_KARP_ROLLING_HASH) s->chromium_zlib_hash = 0; -#if !defined(USE_ZLIB_RABIN_KARP_ROLLING_HASH) - #if defined(TARGET_CPU_WITH_CRC) && defined(CRC32_SIMD_SSE42_PCLMUL) - if (x86_cpu_enable_simd) - s->chromium_zlib_hash = 1; - #elif defined(TARGET_CPU_WITH_CRC) && defined(CRC32_ARMV8_CRC32) - if (arm_cpu_enable_crc32) - s->chromium_zlib_hash = 1; - #endif #endif s->hash_bits = memLevel + 7; diff --git a/deps/zlib/google/DEPS b/deps/zlib/google/DEPS index 03f2cb950b9517..7ec5343ee23953 100644 --- a/deps/zlib/google/DEPS +++ b/deps/zlib/google/DEPS @@ -2,5 +2,6 @@ include_rules = [ '+base', '+build', '+testing', - "+third_party/zlib/zlib.h", + '+third_party/icu/source/i18n/unicode', + '+third_party/zlib/zlib.h', ] diff --git a/deps/zlib/google/zip_internal.cc b/deps/zlib/google/zip_internal.cc index 9b20b421e24765..b9976d63ee301b 100644 --- a/deps/zlib/google/zip_internal.cc +++ b/deps/zlib/google/zip_internal.cc @@ -260,12 +260,13 @@ zip_fileinfo TimeToZipFileInfo(const base::Time& file_time) { // It assumes that dates below 1980 are in the double digit format. // Hence the fail safe option is to leave the date unset. Some programs // might show the unset date as 1980-0-0 which is invalid. - zip_info.tmz_date.tm_year = file_time_parts.year; - zip_info.tmz_date.tm_mon = file_time_parts.month - 1; - zip_info.tmz_date.tm_mday = file_time_parts.day_of_month; - zip_info.tmz_date.tm_hour = file_time_parts.hour; - zip_info.tmz_date.tm_min = file_time_parts.minute; - zip_info.tmz_date.tm_sec = file_time_parts.second; + zip_info.tmz_date = { + .tm_sec = static_cast(file_time_parts.second), + .tm_min = static_cast(file_time_parts.minute), + .tm_hour = static_cast(file_time_parts.hour), + .tm_mday = static_cast(file_time_parts.day_of_month), + .tm_mon = static_cast(file_time_parts.month - 1), + .tm_year = static_cast(file_time_parts.year)}; } return zip_info; diff --git a/deps/zlib/google/zip_reader.cc b/deps/zlib/google/zip_reader.cc index 9b1030a029c8a4..34a815e5f52e9f 100644 --- a/deps/zlib/google/zip_reader.cc +++ b/deps/zlib/google/zip_reader.cc @@ -246,14 +246,14 @@ bool ZipReader::OpenEntry() { // Construct the last modified time. The timezone info is not present in ZIP // archives, so we construct the time as UTC. - base::Time::Exploded exploded_time = {}; - exploded_time.year = info.tmu_date.tm_year; - exploded_time.month = info.tmu_date.tm_mon + 1; // 0-based vs 1-based - exploded_time.day_of_month = info.tmu_date.tm_mday; - exploded_time.hour = info.tmu_date.tm_hour; - exploded_time.minute = info.tmu_date.tm_min; - exploded_time.second = info.tmu_date.tm_sec; - exploded_time.millisecond = 0; + const base::Time::Exploded exploded_time = { + .year = static_cast(info.tmu_date.tm_year), + .month = + static_cast(info.tmu_date.tm_mon + 1), // 0-based vs 1-based + .day_of_month = static_cast(info.tmu_date.tm_mday), + .hour = static_cast(info.tmu_date.tm_hour), + .minute = static_cast(info.tmu_date.tm_min), + .second = static_cast(info.tmu_date.tm_sec)}; if (!base::Time::FromUTCExploded(exploded_time, &entry_.last_modified)) entry_.last_modified = base::Time::UnixEpoch(); diff --git a/deps/zlib/google/zip_reader_unittest.cc b/deps/zlib/google/zip_reader_unittest.cc index b9175045d07268..6086c97c49b622 100644 --- a/deps/zlib/google/zip_reader_unittest.cc +++ b/deps/zlib/google/zip_reader_unittest.cc @@ -19,6 +19,7 @@ #include "base/files/scoped_temp_dir.h" #include "base/functional/bind.h" #include "base/hash/md5.h" +#include "base/i18n/time_formatting.h" #include "base/path_service.h" #include "base/run_loop.h" #include "base/strings/string_piece.h" @@ -31,6 +32,7 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" +#include "third_party/icu/source/i18n/unicode/timezone.h" #include "third_party/zlib/google/zip_internal.h" using ::testing::_; @@ -288,18 +290,10 @@ TEST_F(ZipReaderTest, RegularFile) { EXPECT_EQ(target_path, entry->path); EXPECT_EQ(13527, entry->original_size); - - // The expected time stamp: 2009-05-29 06:22:20 - base::Time::Exploded exploded = {}; // Zero-clear. - entry->last_modified.UTCExplode(&exploded); - EXPECT_EQ(2009, exploded.year); - EXPECT_EQ(5, exploded.month); - EXPECT_EQ(29, exploded.day_of_month); - EXPECT_EQ(6, exploded.hour); - EXPECT_EQ(22, exploded.minute); - EXPECT_EQ(20, exploded.second); - EXPECT_EQ(0, exploded.millisecond); - + EXPECT_EQ("2009-05-29 06:22:20.000", + base::UnlocalizedTimeFormatWithPattern(entry->last_modified, + "y-MM-dd HH:mm:ss.SSS", + icu::TimeZone::getGMT())); EXPECT_FALSE(entry->is_unsafe); EXPECT_FALSE(entry->is_directory); } @@ -396,18 +390,10 @@ TEST_F(ZipReaderTest, Directory) { EXPECT_EQ(target_path, entry->path); // The directory size should be zero. EXPECT_EQ(0, entry->original_size); - - // The expected time stamp: 2009-05-31 15:49:52 - base::Time::Exploded exploded = {}; // Zero-clear. - entry->last_modified.UTCExplode(&exploded); - EXPECT_EQ(2009, exploded.year); - EXPECT_EQ(5, exploded.month); - EXPECT_EQ(31, exploded.day_of_month); - EXPECT_EQ(15, exploded.hour); - EXPECT_EQ(49, exploded.minute); - EXPECT_EQ(52, exploded.second); - EXPECT_EQ(0, exploded.millisecond); - + EXPECT_EQ("2009-05-31 15:49:52.000", + base::UnlocalizedTimeFormatWithPattern(entry->last_modified, + "y-MM-dd HH:mm:ss.SSS", + icu::TimeZone::getGMT())); EXPECT_FALSE(entry->is_unsafe); EXPECT_TRUE(entry->is_directory); } diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 210d41c7200d6d..f660f3305b3114 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -31,7 +31,7 @@ This a list of all the dependencies: * [undici 5.26.4][] * [uvwasi 0.0.19][] * [V8 11.3.244.8][] -* [zlib 1.2.13.1-motley-f5fd0ad][] +* [zlib 1.2.13.1-motley-fef5869][] Any code which meets one or more of these conditions should be managed as a dependency: @@ -311,7 +311,7 @@ See [maintaining-web-assembly][] for more informations. high-performance JavaScript and WebAssembly engine, written in C++. See [maintaining-V8][] for more informations. -### zlib 1.2.13.1-motley-f5fd0ad +### zlib 1.2.13.1-motley-fef5869 The [zlib](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/zlib) dependency lossless data-compression library, @@ -349,4 +349,4 @@ performance improvements not currently available in standard zlib. [update-openssl-action]: ../../../.github/workflows/update-openssl.yml [uvwasi 0.0.19]: #uvwasi-0019 [v8 11.3.244.8]: #v8-1132448 -[zlib 1.2.13.1-motley-f5fd0ad]: #zlib-12131-motley-f5fd0ad +[zlib 1.2.13.1-motley-fef5869]: #zlib-12131-motley-fef5869 From 3d03ca9f312952ea27fc55a161f285a1998a5226 Mon Sep 17 00:00:00 2001 From: RamdohokarAngha <91063774+RamdohokarAngha@users.noreply.github.com> Date: Wed, 11 Oct 2023 00:04:07 +0530 Subject: [PATCH 113/232] doc: fix description of `fs.readdir` `recursive` option PR-URL: https://github.com/nodejs/node/pull/48902 Fixes: https://github.com/nodejs/node/issues/48640 Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli Reviewed-By: Antoine du Hamel --- doc/api/fs.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/api/fs.md b/doc/api/fs.md index ab3a7e9026c37e..b15c7be1d1f192 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -1298,7 +1298,9 @@ changes: * `options` {string|Object} * `encoding` {string} **Default:** `'utf8'` * `withFileTypes` {boolean} **Default:** `false` - * `recursive` {boolean} **Default:** `false` + * `recursive` {boolean} If `true`, reads the contents of a directory + recursively. In recursive mode, it will list all files, sub files, and + directories. **Default:** `false`. * Returns: {Promise} Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`. @@ -3614,7 +3616,9 @@ changes: * `options` {string|Object} * `encoding` {string} **Default:** `'utf8'` * `withFileTypes` {boolean} **Default:** `false` - * `recursive` {boolean} **Default:** `false` + * `recursive` {boolean} If `true`, reads the contents of a directory + recursively. In recursive mode, it will list all files, sub files and + directories. **Default:** `false`. * `callback` {Function} * `err` {Error} * `files` {string\[]|Buffer\[]|fs.Dirent\[]} @@ -5681,7 +5685,9 @@ changes: * `options` {string|Object} * `encoding` {string} **Default:** `'utf8'` * `withFileTypes` {boolean} **Default:** `false` - * `recursive` {boolean} **Default:** `false` + * `recursive` {boolean} If `true`, reads the contents of a directory + recursively. In recursive mode, it will list all files, sub files, and + directories. **Default:** `false`. * Returns: {string\[]|Buffer\[]|fs.Dirent\[]} Reads the contents of the directory. From 545aa74ae2c8a4bf3295290c08215cce34e46eb0 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 10 Oct 2023 20:34:32 +0100 Subject: [PATCH 114/232] deps: update simdutf to 3.2.18 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50091 Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung Reviewed-By: Tobias Nießen --- deps/simdutf/simdutf.cpp | 9 ++++++--- deps/simdutf/simdutf.h | 6 +++--- doc/contributing/maintaining/maintaining-dependencies.md | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/deps/simdutf/simdutf.cpp b/deps/simdutf/simdutf.cpp index eb3c53ba069ede..70b461ab550b46 100644 --- a/deps/simdutf/simdutf.cpp +++ b/deps/simdutf/simdutf.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-11 13:30:54 -0400. Do not edit! */ +/* auto-generated on 2023-10-08 13:48:09 -0400. Do not edit! */ // dofile: invoked with prepath=/Users/dlemire/CVS/github/simdutf/src, filename=simdutf.cpp /* begin file src/simdutf.cpp */ #include "simdutf.h" @@ -1119,9 +1119,12 @@ simdutf_really_inline simd16::operator simd16() const { retur #endif #ifdef _MSC_VER -#if _MSC_VER >= 1920 -// Visual Studio 2019 and up support VBMI2 under x64 even if the header +#if _MSC_VER >= 1930 +// Visual Studio 2022 and up support VBMI2 under x64 even if the header // avx512vbmi2intrin.h is not found. +// Visual Studio 2019 technically supports VBMI2, but the implementation +// might be unreliable. Search for visualstudio2019icelakeissue in our +// tests. #define SIMDUTF_COMPILER_SUPPORTS_VBMI2 1 #endif #endif diff --git a/deps/simdutf/simdutf.h b/deps/simdutf/simdutf.h index 22a49f48c6bc95..6ab1c34d7b30a7 100644 --- a/deps/simdutf/simdutf.h +++ b/deps/simdutf/simdutf.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-08-11 13:30:54 -0400. Do not edit! */ +/* auto-generated on 2023-10-08 13:48:09 -0400. Do not edit! */ // dofile: invoked with prepath=/Users/dlemire/CVS/github/simdutf/include, filename=simdutf.h /* begin file include/simdutf.h */ #ifndef SIMDUTF_H @@ -576,7 +576,7 @@ SIMDUTF_DISABLE_UNDESIRED_WARNINGS #define SIMDUTF_SIMDUTF_VERSION_H /** The version of simdutf being used (major.minor.revision) */ -#define SIMDUTF_VERSION "3.2.17" +#define SIMDUTF_VERSION "3.2.18" namespace simdutf { enum { @@ -591,7 +591,7 @@ enum { /** * The revision (major.minor.REVISION) of simdutf being used. */ - SIMDUTF_VERSION_REVISION = 17 + SIMDUTF_VERSION_REVISION = 18 }; } // namespace simdutf diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index f660f3305b3114..ca0c4498f283ac 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -27,7 +27,7 @@ This a list of all the dependencies: * [npm 9.6.7][] * [openssl 3.0.8][] * [postject 1.0.0-alpha.6][] -* [simdutf 3.2.17][] +* [simdutf 3.2.18][] * [undici 5.26.4][] * [uvwasi 0.0.19][] * [V8 11.3.244.8][] @@ -286,7 +286,7 @@ See [maintaining-openssl][] for more informations. The [postject](https://github.com/nodejs/postject) dependency is used for the [Single Executable strategic initiative](https://github.com/nodejs/single-executable). -### simdutf 3.2.17 +### simdutf 3.2.18 The [simdutf](https://github.com/simdutf/simdutf) dependency is a C++ library for fast UTF-8 decoding and encoding. @@ -344,7 +344,7 @@ performance improvements not currently available in standard zlib. [npm 9.6.7]: #npm-967 [openssl 3.0.8]: #openssl-308 [postject 1.0.0-alpha.6]: #postject-100-alpha6 -[simdutf 3.2.17]: #simdutf-3217 +[simdutf 3.2.18]: #simdutf-3218 [undici 5.26.4]: #undici-5264 [update-openssl-action]: ../../../.github/workflows/update-openssl.yml [uvwasi 0.0.19]: #uvwasi-0019 From 57eb06edff4cfbfa5cdb96b5703d621f33e72955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Alves?= <71379045+andremralves@users.noreply.github.com> Date: Tue, 10 Oct 2023 19:24:24 -0300 Subject: [PATCH 115/232] fs: improve error performance for `ftruncateSync` PR-URL: https://github.com/nodejs/node/pull/50032 Refs: https://github.com/nodejs/performance/issues/106 Reviewed-By: Yagiz Nizipli --- benchmark/fs/bench-ftruncateSync.js | 40 +++++++++++++++++++++++++++++ lib/fs.js | 4 +-- src/node_file.cc | 12 ++++----- 3 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 benchmark/fs/bench-ftruncateSync.js diff --git a/benchmark/fs/bench-ftruncateSync.js b/benchmark/fs/bench-ftruncateSync.js new file mode 100644 index 00000000000000..a02686ffd901b3 --- /dev/null +++ b/benchmark/fs/bench-ftruncateSync.js @@ -0,0 +1,40 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); + +const path = tmpdir.resolve(`new-file-${process.pid}`); +fs.appendFileSync(path, 'Some content.'); + +const bench = common.createBenchmark(main, { + type: ['invalid', 'valid'], + n: [1e4], +}); + +function main({ n, type }) { + let fd; + + switch (type) { + case 'invalid': + fd = 1 << 30; + break; + case 'valid': + fd = fs.openSync(path, 'r+'); + break; + default: + throw new Error('Invalid type'); + } + + bench.start(); + for (let i = 0; i < n; i++) { + try { + fs.ftruncateSync(fd, 4); + } catch { + // do nothing + } + } + bench.end(n); + if (type === 'valid') fs.closeSync(fd); +} diff --git a/lib/fs.js b/lib/fs.js index f83a0d83095746..540942d25570b2 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -1136,9 +1136,7 @@ function ftruncateSync(fd, len = 0) { fd = getValidatedFd(fd); validateInteger(len, 'len'); len = MathMax(0, len); - const ctx = {}; - binding.ftruncate(fd, len, undefined, ctx); - handleErrorFromBinding(ctx); + binding.ftruncate(fd, len); } function lazyLoadCp() { diff --git a/src/node_file.cc b/src/node_file.cc index 81db5309edf540..4dd18528671582 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1509,7 +1509,7 @@ static void FTruncate(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 3); + CHECK_GE(argc, 2); CHECK(args[0]->IsInt32()); const int fd = args[0].As()->Value(); @@ -1517,17 +1517,15 @@ static void FTruncate(const FunctionCallbackInfo& args) { CHECK(IsSafeJsInt(args[1])); const int64_t len = args[1].As()->Value(); - FSReqBase* req_wrap_async = GetReqWrap(args, 2); - if (req_wrap_async != nullptr) { + if (argc > 2) { + FSReqBase* req_wrap_async = GetReqWrap(args, 2); FS_ASYNC_TRACE_BEGIN0(UV_FS_FTRUNCATE, req_wrap_async) AsyncCall(env, req_wrap_async, args, "ftruncate", UTF8, AfterNoArgs, uv_fs_ftruncate, fd, len); } else { - CHECK_EQ(argc, 4); - FSReqWrapSync req_wrap_sync; + FSReqWrapSync req_wrap_sync("ftruncate"); FS_SYNC_TRACE_BEGIN(ftruncate); - SyncCall(env, args[3], &req_wrap_sync, "ftruncate", uv_fs_ftruncate, fd, - len); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_ftruncate, fd, len); FS_SYNC_TRACE_END(ftruncate); } } From 614c3620c3e9c64c5c11313cafe151a9cd4ddeea Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Wed, 11 Oct 2023 17:03:58 +0100 Subject: [PATCH 116/232] deps: update corepack to 0.21.0 PR-URL: https://github.com/nodejs/node/pull/50088 Reviewed-By: Antoine du Hamel Reviewed-By: Trivikram Kamat --- deps/corepack/CHANGELOG.md | 16 + deps/corepack/dist/lib/corepack.cjs | 1246 +++++++++++++-------------- deps/corepack/package.json | 8 +- 3 files changed, 641 insertions(+), 629 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 45b5d182594b6e..4c94877b3e6a97 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [0.21.0](https://github.com/nodejs/corepack/compare/v0.20.0...v0.21.0) (2023-10-08) + + +### ⚠ BREAKING CHANGES + +* remove support for Node.js 16.x + +### Features + +* update package manager versions ([#297](https://github.com/nodejs/corepack/issues/297)) ([503e135](https://github.com/nodejs/corepack/commit/503e135878935cc881ebd94b48d5eca94ec4c27b)) + + +### Miscellaneous Chores + +* update supported Node.js versions ([#309](https://github.com/nodejs/corepack/issues/309)) ([787e24d](https://github.com/nodejs/corepack/commit/787e24df609513702eafcd8c6a5f03544d7d45cc)) + ## [0.20.0](https://github.com/nodejs/corepack/compare/v0.19.0...v0.20.0) (2023-08-29) diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index 69e50a97cccec4..b3c0aae570d24b 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __esm = (fn2, res) => function __init() { return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; }; @@ -32,8 +33,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; -// .yarn/cache/typanion-npm-3.12.1-788497c54f-492540c6ac.zip/node_modules/typanion/lib/index.mjs +// .yarn/cache/typanion-npm-3.12.1-788497c54f-90cf558a34.zip/node_modules/typanion/lib/index.mjs var lib_exports = {}; __export(lib_exports, { KeyRelationship: () => KeyRelationship, @@ -919,7 +924,7 @@ function hasKeyRelationship(subject, relationship, others, { ignore = [] } = {}) } var simpleKeyRegExp, colorStringRegExp, colorStringAlphaRegExp, base64RegExp, uuid4RegExp, iso8601RegExp, BOOLEAN_COERCIONS, isInstanceOf, isOneOf, TypeAssertionError, checks, KeyRelationship, keyRelationships; var init_lib = __esm({ - ".yarn/cache/typanion-npm-3.12.1-788497c54f-492540c6ac.zip/node_modules/typanion/lib/index.mjs"() { + ".yarn/cache/typanion-npm-3.12.1-788497c54f-90cf558a34.zip/node_modules/typanion/lib/index.mjs"() { simpleKeyRegExp = /^[a-zA-Z_][a-zA-Z0-9_]*$/; colorStringRegExp = /^#[0-9a-f]{6}$/i; colorStringAlphaRegExp = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i; @@ -1010,9 +1015,9 @@ var init_lib = __esm({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/constants.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/constants.js var require_constants = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/constants.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/constants.js"(exports, module2) { var SEMVER_SPEC_VERSION = "2.0.0"; var MAX_LENGTH = 256; var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ @@ -1041,18 +1046,18 @@ var require_constants = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/debug.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/debug.js var require_debug = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/debug.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/debug.js"(exports, module2) { var debug2 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { }; module2.exports = debug2; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/re.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/re.js var require_re = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/re.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/re.js"(exports, module2) { var { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH } = require_constants(); var debug2 = require_debug(); exports = module2.exports = {}; @@ -1128,9 +1133,9 @@ var require_re = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/parse-options.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/parse-options.js var require_parse_options = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/parse-options.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/parse-options.js"(exports, module2) { var looseOption = Object.freeze({ loose: true }); var emptyOpts = Object.freeze({}); var parseOptions = (options) => { @@ -1146,9 +1151,9 @@ var require_parse_options = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/identifiers.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/identifiers.js var require_identifiers = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/internal/identifiers.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/identifiers.js"(exports, module2) { var numeric = /^[0-9]+$/; var compareIdentifiers = (a, b) => { const anum = numeric.test(a); @@ -1167,9 +1172,9 @@ var require_identifiers = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/semver.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/semver.js var require_semver = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/semver.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/semver.js"(exports, module2) { var debug2 = require_debug(); var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); var { safeRe: re, t } = require_re(); @@ -1409,9 +1414,9 @@ var require_semver = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/parse.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/parse.js var require_parse = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/parse.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/parse.js"(exports, module2) { var SemVer = require_semver(); var parse = (version2, options, throwErrors = false) => { if (version2 instanceof SemVer) { @@ -1430,9 +1435,9 @@ var require_parse = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/valid.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/valid.js var require_valid = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/valid.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/valid.js"(exports, module2) { var parse = require_parse(); var valid = (version2, options) => { const v = parse(version2, options); @@ -1442,9 +1447,9 @@ var require_valid = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/clean.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/clean.js var require_clean = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/clean.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/clean.js"(exports, module2) { var parse = require_parse(); var clean = (version2, options) => { const s = parse(version2.trim().replace(/^[=v]+/, ""), options); @@ -1454,9 +1459,9 @@ var require_clean = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/inc.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/inc.js var require_inc = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/inc.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/inc.js"(exports, module2) { var SemVer = require_semver(); var inc = (version2, release, options, identifier, identifierBase) => { if (typeof options === "string") { @@ -1477,9 +1482,9 @@ var require_inc = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/diff.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/diff.js var require_diff = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/diff.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/diff.js"(exports, module2) { var parse = require_parse(); var diff = (version1, version2) => { const v1 = parse(version1, null, true); @@ -1521,36 +1526,36 @@ var require_diff = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/major.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/major.js var require_major = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/major.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/major.js"(exports, module2) { var SemVer = require_semver(); var major = (a, loose) => new SemVer(a, loose).major; module2.exports = major; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/minor.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/minor.js var require_minor = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/minor.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/minor.js"(exports, module2) { var SemVer = require_semver(); var minor = (a, loose) => new SemVer(a, loose).minor; module2.exports = minor; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/patch.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/patch.js var require_patch = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/patch.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/patch.js"(exports, module2) { var SemVer = require_semver(); var patch = (a, loose) => new SemVer(a, loose).patch; module2.exports = patch; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/prerelease.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/prerelease.js var require_prerelease = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/prerelease.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/prerelease.js"(exports, module2) { var parse = require_parse(); var prerelease = (version2, options) => { const parsed = parse(version2, options); @@ -1560,36 +1565,36 @@ var require_prerelease = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare.js var require_compare = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare.js"(exports, module2) { var SemVer = require_semver(); var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); module2.exports = compare; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/rcompare.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rcompare.js var require_rcompare = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/rcompare.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rcompare.js"(exports, module2) { var compare = require_compare(); var rcompare = (a, b, loose) => compare(b, a, loose); module2.exports = rcompare; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare-loose.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-loose.js var require_compare_loose = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare-loose.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-loose.js"(exports, module2) { var compare = require_compare(); var compareLoose = (a, b) => compare(a, b, true); module2.exports = compareLoose; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare-build.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-build.js var require_compare_build = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/compare-build.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-build.js"(exports, module2) { var SemVer = require_semver(); var compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose); @@ -1600,81 +1605,81 @@ var require_compare_build = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/sort.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/sort.js var require_sort = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/sort.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/sort.js"(exports, module2) { var compareBuild = require_compare_build(); var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); module2.exports = sort; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/rsort.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rsort.js var require_rsort = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/rsort.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rsort.js"(exports, module2) { var compareBuild = require_compare_build(); var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); module2.exports = rsort; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/gt.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gt.js var require_gt = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/gt.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gt.js"(exports, module2) { var compare = require_compare(); var gt = (a, b, loose) => compare(a, b, loose) > 0; module2.exports = gt; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/lt.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lt.js var require_lt = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/lt.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lt.js"(exports, module2) { var compare = require_compare(); var lt = (a, b, loose) => compare(a, b, loose) < 0; module2.exports = lt; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/eq.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/eq.js var require_eq = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/eq.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/eq.js"(exports, module2) { var compare = require_compare(); var eq = (a, b, loose) => compare(a, b, loose) === 0; module2.exports = eq; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/neq.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/neq.js var require_neq = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/neq.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/neq.js"(exports, module2) { var compare = require_compare(); var neq = (a, b, loose) => compare(a, b, loose) !== 0; module2.exports = neq; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/gte.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gte.js var require_gte = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/gte.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gte.js"(exports, module2) { var compare = require_compare(); var gte = (a, b, loose) => compare(a, b, loose) >= 0; module2.exports = gte; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/lte.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lte.js var require_lte = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/lte.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lte.js"(exports, module2) { var compare = require_compare(); var lte = (a, b, loose) => compare(a, b, loose) <= 0; module2.exports = lte; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/cmp.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/cmp.js var require_cmp = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/cmp.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/cmp.js"(exports, module2) { var eq = require_eq(); var neq = require_neq(); var gt = require_gt(); @@ -1721,9 +1726,9 @@ var require_cmp = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/coerce.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/coerce.js var require_coerce = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/coerce.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/coerce.js"(exports, module2) { var SemVer = require_semver(); var parse = require_parse(); var { safeRe: re, t } = require_re(); @@ -1760,9 +1765,9 @@ var require_coerce = __commonJS({ } }); -// .yarn/cache/yallist-npm-4.0.0-b493d9e907-cd7fe32508.zip/node_modules/yallist/iterator.js +// .yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/iterator.js var require_iterator = __commonJS({ - ".yarn/cache/yallist-npm-4.0.0-b493d9e907-cd7fe32508.zip/node_modules/yallist/iterator.js"(exports, module2) { + ".yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/iterator.js"(exports, module2) { "use strict"; module2.exports = function(Yallist) { Yallist.prototype[Symbol.iterator] = function* () { @@ -1774,9 +1779,9 @@ var require_iterator = __commonJS({ } }); -// .yarn/cache/yallist-npm-4.0.0-b493d9e907-cd7fe32508.zip/node_modules/yallist/yallist.js +// .yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/yallist.js var require_yallist = __commonJS({ - ".yarn/cache/yallist-npm-4.0.0-b493d9e907-cd7fe32508.zip/node_modules/yallist/yallist.js"(exports, module2) { + ".yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip/node_modules/yallist/yallist.js"(exports, module2) { "use strict"; module2.exports = Yallist; Yallist.Node = Node; @@ -2143,9 +2148,9 @@ var require_yallist = __commonJS({ } }); -// .yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-b2d72088dd.zip/node_modules/lru-cache/index.js +// .yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip/node_modules/lru-cache/index.js var require_lru_cache = __commonJS({ - ".yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-b2d72088dd.zip/node_modules/lru-cache/index.js"(exports, module2) { + ".yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-cb53e58278.zip/node_modules/lru-cache/index.js"(exports, module2) { "use strict"; var Yallist = require_yallist(); var MAX = Symbol("max"); @@ -2413,9 +2418,9 @@ var require_lru_cache = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/range.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/range.js var require_range = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/range.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/range.js"(exports, module2) { var Range = class { constructor(range, options) { options = parseOptions(options); @@ -2770,9 +2775,9 @@ var require_range = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/comparator.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/comparator.js var require_comparator = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/classes/comparator.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/comparator.js"(exports, module2) { var ANY = Symbol("SemVer ANY"); var Comparator = class { static get ANY() { @@ -2882,9 +2887,9 @@ var require_comparator = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/satisfies.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/satisfies.js var require_satisfies = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/functions/satisfies.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/satisfies.js"(exports, module2) { var Range = require_range(); var satisfies = (version2, range, options) => { try { @@ -2898,18 +2903,18 @@ var require_satisfies = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/to-comparators.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/to-comparators.js var require_to_comparators = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/to-comparators.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/to-comparators.js"(exports, module2) { var Range = require_range(); var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); module2.exports = toComparators; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/max-satisfying.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/max-satisfying.js var require_max_satisfying = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/max-satisfying.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/max-satisfying.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var maxSatisfying = (versions, range, options) => { @@ -2935,9 +2940,9 @@ var require_max_satisfying = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/min-satisfying.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-satisfying.js var require_min_satisfying = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/min-satisfying.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-satisfying.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var minSatisfying = (versions, range, options) => { @@ -2963,9 +2968,9 @@ var require_min_satisfying = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/min-version.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-version.js var require_min_version = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/min-version.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-version.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var gt = require_gt(); @@ -3019,9 +3024,9 @@ var require_min_version = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/valid.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/valid.js var require_valid2 = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/valid.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/valid.js"(exports, module2) { var Range = require_range(); var validRange = (range, options) => { try { @@ -3034,9 +3039,9 @@ var require_valid2 = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/outside.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/outside.js var require_outside = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/outside.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/outside.js"(exports, module2) { var SemVer = require_semver(); var Comparator = require_comparator(); var { ANY } = Comparator; @@ -3102,27 +3107,27 @@ var require_outside = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/gtr.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/gtr.js var require_gtr = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/gtr.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/gtr.js"(exports, module2) { var outside = require_outside(); var gtr = (version2, range, options) => outside(version2, range, ">", options); module2.exports = gtr; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/ltr.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/ltr.js var require_ltr = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/ltr.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/ltr.js"(exports, module2) { var outside = require_outside(); var ltr = (version2, range, options) => outside(version2, range, "<", options); module2.exports = ltr; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/intersects.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/intersects.js var require_intersects = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/intersects.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/intersects.js"(exports, module2) { var Range = require_range(); var intersects = (r1, r2, options) => { r1 = new Range(r1, options); @@ -3133,9 +3138,9 @@ var require_intersects = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/simplify.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/simplify.js var require_simplify = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/simplify.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/simplify.js"(exports, module2) { var satisfies = require_satisfies(); var compare = require_compare(); module2.exports = (versions, range, options) => { @@ -3182,9 +3187,9 @@ var require_simplify = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/subset.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/subset.js var require_subset = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/ranges/subset.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/subset.js"(exports, module2) { var Range = require_range(); var Comparator = require_comparator(); var { ANY } = Comparator; @@ -3344,9 +3349,9 @@ var require_subset = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/index.js +// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/index.js var require_semver2 = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-9e949f7d57.zip/node_modules/semver/index.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/index.js"(exports, module2) { var internalRe = require_re(); var constants = require_constants(); var SemVer = require_semver(); @@ -3438,9 +3443,9 @@ var require_semver2 = __commonJS({ } }); -// .yarn/cache/ms-npm-2.1.2-ec0c1512ff-3f46af60a0.zip/node_modules/ms/index.js +// .yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip/node_modules/ms/index.js var require_ms = __commonJS({ - ".yarn/cache/ms-npm-2.1.2-ec0c1512ff-3f46af60a0.zip/node_modules/ms/index.js"(exports, module2) { + ".yarn/cache/ms-npm-2.1.2-ec0c1512ff-a437714e2f.zip/node_modules/ms/index.js"(exports, module2) { var s = 1e3; var m = s * 60; var h = m * 60; @@ -3554,9 +3559,9 @@ var require_ms = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/common.js +// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js var require_common = __commonJS({ - ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/common.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js"(exports, module2) { function setup(env2) { createDebug.debug = createDebug; createDebug.default = createDebug; @@ -3717,9 +3722,9 @@ var require_common = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/browser.js +// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js var require_browser = __commonJS({ - ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/browser.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js"(exports, module2) { exports.formatArgs = formatArgs; exports.save = save; exports.load = load; @@ -3886,7 +3891,7 @@ var require_browser = __commonJS({ } }); -// .yarn/cache/supports-color-npm-9.3.1-08866b3304-4c447d3aff.zip/node_modules/supports-color/index.js +// .yarn/cache/supports-color-npm-9.3.1-08866b3304-cf142b72de.zip/node_modules/supports-color/index.js var supports_color_exports = {}; __export(supports_color_exports, { createSupportsColor: () => createSupportsColor, @@ -4003,7 +4008,7 @@ function createSupportsColor(stream, options = {}) { } var import_node_process, import_node_os, import_node_tty, env, flagForceColor, supportsColor, supports_color_default; var init_supports_color = __esm({ - ".yarn/cache/supports-color-npm-9.3.1-08866b3304-4c447d3aff.zip/node_modules/supports-color/index.js"() { + ".yarn/cache/supports-color-npm-9.3.1-08866b3304-cf142b72de.zip/node_modules/supports-color/index.js"() { import_node_process = __toESM(require("node:process"), 1); import_node_os = __toESM(require("node:os"), 1); import_node_tty = __toESM(require("node:tty"), 1); @@ -4021,9 +4026,9 @@ var init_supports_color = __esm({ } }); -// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/node.js +// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js var require_node = __commonJS({ - ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/node.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js"(exports, module2) { var tty3 = require("tty"); var util = require("util"); exports.init = init; @@ -4195,9 +4200,9 @@ var require_node = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/index.js +// .yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js var require_src = __commonJS({ - ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/index.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-80c19f725b/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js"(exports, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser(); } else { @@ -4206,9 +4211,9 @@ var require_src = __commonJS({ } }); -// .yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-884c7cb519.zip/node_modules/lru-cache/index.js +// .yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-b3a452b491.zip/node_modules/lru-cache/index.js var require_lru_cache2 = __commonJS({ - ".yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-884c7cb519.zip/node_modules/lru-cache/index.js"(exports, module2) { + ".yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-b3a452b491.zip/node_modules/lru-cache/index.js"(exports, module2) { var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date; var hasAbortController = typeof AbortController === "function"; var AC = hasAbortController ? AbortController : class AbortController { @@ -5223,9 +5228,9 @@ var require_lru_cache2 = __commonJS({ } }); -// .yarn/cache/agent-base-npm-7.1.0-4b12ba5111-d1c9dc1b33.zip/node_modules/agent-base/dist/helpers.js +// .yarn/cache/agent-base-npm-7.1.0-4b12ba5111-fc974ab57f.zip/node_modules/agent-base/dist/helpers.js var require_helpers = __commonJS({ - ".yarn/cache/agent-base-npm-7.1.0-4b12ba5111-d1c9dc1b33.zip/node_modules/agent-base/dist/helpers.js"(exports) { + ".yarn/cache/agent-base-npm-7.1.0-4b12ba5111-fc974ab57f.zip/node_modules/agent-base/dist/helpers.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -5298,9 +5303,9 @@ var require_helpers = __commonJS({ } }); -// .yarn/cache/agent-base-npm-7.1.0-4b12ba5111-d1c9dc1b33.zip/node_modules/agent-base/dist/index.js +// .yarn/cache/agent-base-npm-7.1.0-4b12ba5111-fc974ab57f.zip/node_modules/agent-base/dist/index.js var require_dist = __commonJS({ - ".yarn/cache/agent-base-npm-7.1.0-4b12ba5111-d1c9dc1b33.zip/node_modules/agent-base/dist/index.js"(exports) { + ".yarn/cache/agent-base-npm-7.1.0-4b12ba5111-fc974ab57f.zip/node_modules/agent-base/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -5408,9 +5413,9 @@ var require_dist = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/common.js +// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js var require_common2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/common.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js"(exports, module2) { function setup(env2) { createDebug.debug = createDebug; createDebug.default = createDebug; @@ -5571,9 +5576,9 @@ var require_common2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/browser.js +// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js var require_browser2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/browser.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js"(exports, module2) { exports.formatArgs = formatArgs; exports.save = save; exports.load = load; @@ -5740,9 +5745,9 @@ var require_browser2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/node.js +// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js var require_node2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/node.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js"(exports, module2) { var tty3 = require("tty"); var util = require("util"); exports.init = init; @@ -5914,9 +5919,9 @@ var require_node2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/index.js +// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js var require_src2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-ab50d98b6f.zip/node_modules/debug/src/index.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js"(exports, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser2(); } else { @@ -5925,9 +5930,9 @@ var require_src2 = __commonJS({ } }); -// .yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-0bba2ef7c8.zip/node_modules/proxy-from-env/index.js +// .yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-fe7dd8b1bd.zip/node_modules/proxy-from-env/index.js var require_proxy_from_env = __commonJS({ - ".yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-0bba2ef7c8.zip/node_modules/proxy-from-env/index.js"(exports) { + ".yarn/cache/proxy-from-env-npm-1.1.0-c13d07f26b-fe7dd8b1bd.zip/node_modules/proxy-from-env/index.js"(exports) { "use strict"; var parseUrl = require("url").parse; var DEFAULT_PORTS = { @@ -5995,9 +6000,9 @@ var require_proxy_from_env = __commonJS({ } }); -// .yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-a028878555.zip/node_modules/http-proxy-agent/dist/index.js +// .yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-a11574ff39.zip/node_modules/http-proxy-agent/dist/index.js var require_dist2 = __commonJS({ - ".yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-a028878555.zip/node_modules/http-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/http-proxy-agent-npm-7.0.0-106a57cc8c-a11574ff39.zip/node_modules/http-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -6129,9 +6134,9 @@ var require_dist2 = __commonJS({ } }); -// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-4fc3e7f50c.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js +// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js var require_parse_proxy_response = __commonJS({ - ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-4fc3e7f50c.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) { + ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -6225,9 +6230,9 @@ var require_parse_proxy_response = __commonJS({ } }); -// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-4fc3e7f50c.zip/node_modules/https-proxy-agent/dist/index.js +// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/index.js var require_dist3 = __commonJS({ - ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-4fc3e7f50c.zip/node_modules/https-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -6372,9 +6377,9 @@ var require_dist3 = __commonJS({ } }); -// .yarn/cache/ip-npm-2.0.0-204facb3cc-42a7cf251b.zip/node_modules/ip/lib/ip.js +// .yarn/cache/ip-npm-2.0.0-204facb3cc-8d186cc558.zip/node_modules/ip/lib/ip.js var require_ip = __commonJS({ - ".yarn/cache/ip-npm-2.0.0-204facb3cc-42a7cf251b.zip/node_modules/ip/lib/ip.js"(exports) { + ".yarn/cache/ip-npm-2.0.0-204facb3cc-8d186cc558.zip/node_modules/ip/lib/ip.js"(exports) { var ip = exports; var { Buffer: Buffer2 } = require("buffer"); var os3 = require("os"); @@ -6675,9 +6680,9 @@ var require_ip = __commonJS({ } }); -// .yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-898a5ce465.zip/node_modules/smart-buffer/build/utils.js +// .yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/build/utils.js var require_utils = __commonJS({ - ".yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-898a5ce465.zip/node_modules/smart-buffer/build/utils.js"(exports) { + ".yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/build/utils.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var buffer_1 = require("buffer"); @@ -6744,9 +6749,9 @@ var require_utils = __commonJS({ } }); -// .yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-898a5ce465.zip/node_modules/smart-buffer/build/smartbuffer.js +// .yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/build/smartbuffer.js var require_smartbuffer = __commonJS({ - ".yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-898a5ce465.zip/node_modules/smart-buffer/build/smartbuffer.js"(exports) { + ".yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/build/smartbuffer.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require_utils(); @@ -7902,9 +7907,9 @@ var require_smartbuffer = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/constants.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/constants.js var require_constants2 = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/constants.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/constants.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SOCKS5_NO_ACCEPTABLE_AUTH = exports.SOCKS5_CUSTOM_AUTH_END = exports.SOCKS5_CUSTOM_AUTH_START = exports.SOCKS_INCOMING_PACKET_SIZES = exports.SocksClientState = exports.Socks5Response = exports.Socks5HostType = exports.Socks5Auth = exports.Socks4Response = exports.SocksCommand = exports.ERRORS = exports.DEFAULT_TIMEOUT = void 0; @@ -8021,9 +8026,9 @@ var require_constants2 = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/util.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/util.js var require_util = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/util.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/util.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shuffleArray = exports.SocksClientError = void 0; @@ -8044,9 +8049,9 @@ var require_util = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/helpers.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/helpers.js var require_helpers2 = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/helpers.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/helpers.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSocksClientChainOptions = exports.validateSocksClientOptions = void 0; @@ -8124,9 +8129,9 @@ var require_helpers2 = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/receivebuffer.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/receivebuffer.js var require_receivebuffer = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/common/receivebuffer.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/common/receivebuffer.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReceiveBuffer = void 0; @@ -8172,9 +8177,9 @@ var require_receivebuffer = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/client/socksclient.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/client/socksclient.js var require_socksclient = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/client/socksclient.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/client/socksclient.js"(exports) { "use strict"; var __awaiter2 = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) { function adopt(value) { @@ -8851,9 +8856,9 @@ var require_socksclient = __commonJS({ } }); -// .yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/index.js +// .yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/index.js var require_build = __commonJS({ - ".yarn/cache/socks-npm-2.7.1-17f2b53052-a8026d6abf.zip/node_modules/socks/build/index.js"(exports) { + ".yarn/cache/socks-npm-2.7.1-17f2b53052-43f69dbc9f.zip/node_modules/socks/build/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -8880,9 +8885,9 @@ var require_build = __commonJS({ } }); -// .yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-6df7fae19f.zip/node_modules/socks-proxy-agent/dist/index.js +// .yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-3971e6af57.zip/node_modules/socks-proxy-agent/dist/index.js var require_dist4 = __commonJS({ - ".yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-6df7fae19f.zip/node_modules/socks-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-3971e6af57.zip/node_modules/socks-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -9064,9 +9069,9 @@ var require_dist4 = __commonJS({ } }); -// .yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-ffb32d1944.zip/node_modules/data-uri-to-buffer/dist/index.js +// .yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-08ad2f2cd5.zip/node_modules/data-uri-to-buffer/dist/index.js var require_dist5 = __commonJS({ - ".yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-ffb32d1944.zip/node_modules/data-uri-to-buffer/dist/index.js"(exports) { + ".yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-08ad2f2cd5.zip/node_modules/data-uri-to-buffer/dist/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dataUriToBuffer = void 0; @@ -9111,9 +9116,9 @@ var require_dist5 = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/notmodified.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notmodified.js var require_notmodified = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/notmodified.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notmodified.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var NotModifiedError = class extends Error { @@ -9126,9 +9131,9 @@ var require_notmodified = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/data.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/data.js var require_data = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/data.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/data.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -9167,9 +9172,9 @@ var require_data = __commonJS({ } }); -// .yarn/cache/universalify-npm-0.1.2-9b22d31d2d-056559913f.zip/node_modules/universalify/index.js +// .yarn/cache/universalify-npm-0.1.2-9b22d31d2d-e70e0339f6.zip/node_modules/universalify/index.js var require_universalify = __commonJS({ - ".yarn/cache/universalify-npm-0.1.2-9b22d31d2d-056559913f.zip/node_modules/universalify/index.js"(exports) { + ".yarn/cache/universalify-npm-0.1.2-9b22d31d2d-e70e0339f6.zip/node_modules/universalify/index.js"(exports) { "use strict"; exports.fromCallback = function(fn2) { return Object.defineProperty(function() { @@ -9200,9 +9205,9 @@ var require_universalify = __commonJS({ } }); -// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/polyfills.js +// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/polyfills.js var require_polyfills = __commonJS({ - ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/polyfills.js"(exports, module2) { + ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/polyfills.js"(exports, module2) { var constants = require("constants"); var origCwd = process.cwd; var cwd = null; @@ -9516,9 +9521,9 @@ var require_polyfills = __commonJS({ } }); -// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/legacy-streams.js +// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/legacy-streams.js var require_legacy_streams = __commonJS({ - ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/legacy-streams.js"(exports, module2) { + ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/legacy-streams.js"(exports, module2) { var Stream = require("stream").Stream; module2.exports = legacy; function legacy(fs8) { @@ -9615,9 +9620,9 @@ var require_legacy_streams = __commonJS({ } }); -// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/clone.js +// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/clone.js var require_clone = __commonJS({ - ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/clone.js"(exports, module2) { + ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/clone.js"(exports, module2) { "use strict"; module2.exports = clone; var getPrototypeOf = Object.getPrototypeOf || function(obj) { @@ -9638,9 +9643,9 @@ var require_clone = __commonJS({ } }); -// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/graceful-fs.js +// .yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/graceful-fs.js var require_graceful_fs = __commonJS({ - ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-0228fc1080.zip/node_modules/graceful-fs/graceful-fs.js"(exports, module2) { + ".yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip/node_modules/graceful-fs/graceful-fs.js"(exports, module2) { var fs8 = require("fs"); var polyfills = require_polyfills(); var legacy = require_legacy_streams(); @@ -10008,9 +10013,9 @@ var require_graceful_fs = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/fs/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/fs/index.js var require_fs = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/fs/index.js"(exports) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/fs/index.js"(exports) { "use strict"; var u = require_universalify().fromCallback; var fs8 = require_graceful_fs(); @@ -10097,9 +10102,9 @@ var require_fs = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/win32.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/win32.js var require_win32 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/win32.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/win32.js"(exports, module2) { "use strict"; var path10 = require("path"); function getRootPath(p) { @@ -10121,9 +10126,9 @@ var require_win32 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs.js var require_mkdirs = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -10182,9 +10187,9 @@ var require_mkdirs = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js var require_mkdirs_sync = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -10233,9 +10238,9 @@ var require_mkdirs_sync = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/index.js var require_mkdirs2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/mkdirs/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/mkdirs/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var mkdirs = u(require_mkdirs()); @@ -10252,9 +10257,9 @@ var require_mkdirs2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/utimes.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/utimes.js var require_utimes = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/utimes.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/utimes.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var os3 = require("os"); @@ -10331,9 +10336,9 @@ var require_utimes = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/stat.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/stat.js var require_stat = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/stat.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/stat.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -10502,9 +10507,9 @@ var require_stat = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/buffer.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/buffer.js var require_buffer = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/util/buffer.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/util/buffer.js"(exports, module2) { "use strict"; module2.exports = function(size) { if (typeof Buffer.allocUnsafe === "function") { @@ -10519,9 +10524,9 @@ var require_buffer = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy-sync/copy-sync.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy-sync/copy-sync.js var require_copy_sync = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy-sync/copy-sync.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy-sync/copy-sync.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -10665,9 +10670,9 @@ var require_copy_sync = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy-sync/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy-sync/index.js var require_copy_sync2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy-sync/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy-sync/index.js"(exports, module2) { "use strict"; module2.exports = { copySync: require_copy_sync() @@ -10675,9 +10680,9 @@ var require_copy_sync2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/path-exists/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/path-exists/index.js var require_path_exists = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/path-exists/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/path-exists/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromPromise; var fs8 = require_fs(); @@ -10691,9 +10696,9 @@ var require_path_exists = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy/copy.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy/copy.js var require_copy = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy/copy.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy/copy.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -10901,9 +10906,9 @@ var require_copy = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy/index.js var require_copy2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/copy/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/copy/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; module2.exports = { @@ -10912,9 +10917,9 @@ var require_copy2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/remove/rimraf.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/remove/rimraf.js var require_rimraf = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/remove/rimraf.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/remove/rimraf.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -11163,9 +11168,9 @@ var require_rimraf = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/remove/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/remove/index.js var require_remove = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/remove/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/remove/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var rimraf2 = require_rimraf(); @@ -11176,9 +11181,9 @@ var require_remove = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/empty/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/empty/index.js var require_empty = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/empty/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/empty/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var fs8 = require_graceful_fs(); @@ -11226,9 +11231,9 @@ var require_empty = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/file.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/file.js var require_file = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/file.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/file.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var path10 = require("path"); @@ -11281,9 +11286,9 @@ var require_file = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/link.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/link.js var require_link = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/link.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/link.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var path10 = require("path"); @@ -11347,9 +11352,9 @@ var require_link = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink-paths.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink-paths.js var require_symlink_paths = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink-paths.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink-paths.js"(exports, module2) { "use strict"; var path10 = require("path"); var fs8 = require_graceful_fs(); @@ -11429,9 +11434,9 @@ var require_symlink_paths = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink-type.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink-type.js var require_symlink_type = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink-type.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink-type.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); function symlinkType(srcpath, type, callback) { @@ -11464,9 +11469,9 @@ var require_symlink_type = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink.js var require_symlink = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/symlink.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/symlink.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var path10 = require("path"); @@ -11533,9 +11538,9 @@ var require_symlink = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/index.js var require_ensure = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/ensure/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/ensure/index.js"(exports, module2) { "use strict"; var file = require_file(); var link = require_link(); @@ -11560,9 +11565,9 @@ var require_ensure = __commonJS({ } }); -// .yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-d85d544514.zip/node_modules/jsonfile/index.js +// .yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-7dc94b628d.zip/node_modules/jsonfile/index.js var require_jsonfile = __commonJS({ - ".yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-d85d544514.zip/node_modules/jsonfile/index.js"(exports, module2) { + ".yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-7dc94b628d.zip/node_modules/jsonfile/index.js"(exports, module2) { var _fs; try { _fs = require_graceful_fs(); @@ -11677,9 +11682,9 @@ var require_jsonfile = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/jsonfile.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/jsonfile.js var require_jsonfile2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/jsonfile.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/jsonfile.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var jsonFile = require_jsonfile(); @@ -11693,9 +11698,9 @@ var require_jsonfile2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/output-json.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/output-json.js var require_output_json = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/output-json.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/output-json.js"(exports, module2) { "use strict"; var path10 = require("path"); var mkdir4 = require_mkdirs2(); @@ -11723,9 +11728,9 @@ var require_output_json = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/output-json-sync.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/output-json-sync.js var require_output_json_sync = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/output-json-sync.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/output-json-sync.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -11742,9 +11747,9 @@ var require_output_json_sync = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/index.js var require_json = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/json/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/json/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var jsonFile = require_jsonfile2(); @@ -11760,9 +11765,9 @@ var require_json = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move-sync/move-sync.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move-sync/move-sync.js var require_move_sync = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move-sync/move-sync.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move-sync/move-sync.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -11808,9 +11813,9 @@ var require_move_sync = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move-sync/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move-sync/index.js var require_move_sync2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move-sync/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move-sync/index.js"(exports, module2) { "use strict"; module2.exports = { moveSync: require_move_sync() @@ -11818,9 +11823,9 @@ var require_move_sync2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move/move.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move/move.js var require_move = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move/move.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move/move.js"(exports, module2) { "use strict"; var fs8 = require_graceful_fs(); var path10 = require("path"); @@ -11890,9 +11895,9 @@ var require_move = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move/index.js var require_move2 = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/move/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/move/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; module2.exports = { @@ -11901,9 +11906,9 @@ var require_move2 = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/output/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/output/index.js var require_output = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/output/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/output/index.js"(exports, module2) { "use strict"; var u = require_universalify().fromCallback; var fs8 = require_graceful_fs(); @@ -11943,9 +11948,9 @@ var require_output = __commonJS({ } }); -// .yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/index.js +// .yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/index.js var require_lib = __commonJS({ - ".yarn/cache/fs-extra-npm-8.1.0-197473387f-cfdc1f2b8d.zip/node_modules/fs-extra/lib/index.js"(exports, module2) { + ".yarn/cache/fs-extra-npm-8.1.0-197473387f-259f7b814d.zip/node_modules/fs-extra/lib/index.js"(exports, module2) { "use strict"; module2.exports = Object.assign( {}, @@ -11975,9 +11980,9 @@ var require_lib = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/notfound.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notfound.js var require_notfound = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/notfound.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notfound.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var NotFoundError = class extends Error { @@ -11990,9 +11995,9 @@ var require_notfound = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/file.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/file.js var require_file2 = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/file.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/file.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -12042,9 +12047,9 @@ var require_file2 = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseControlResponse.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseControlResponse.js var require_parseControlResponse = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseControlResponse.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseControlResponse.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.positiveIntermediate = exports.positiveCompletion = exports.isMultiline = exports.isSingleLine = exports.parseControlResponse = void 0; @@ -12095,9 +12100,9 @@ var require_parseControlResponse = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/FtpContext.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/FtpContext.js var require_FtpContext = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/FtpContext.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/FtpContext.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FTPContext = exports.FTPError = void 0; @@ -12414,9 +12419,9 @@ Closing reason: ${this._closingError.stack}`; } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/FileInfo.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/FileInfo.js var require_FileInfo = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/FileInfo.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/FileInfo.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileInfo = exports.FileType = void 0; @@ -12471,9 +12476,9 @@ var require_FileInfo = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListDOS.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListDOS.js var require_parseListDOS = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListDOS.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListDOS.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformList = exports.parseLine = exports.testLine = void 0; @@ -12515,9 +12520,9 @@ var require_parseListDOS = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListUnix.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListUnix.js var require_parseListUnix = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListUnix.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListUnix.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformList = exports.parseLine = exports.testLine = void 0; @@ -12602,9 +12607,9 @@ var require_parseListUnix = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListMLSD.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListMLSD.js var require_parseListMLSD = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseListMLSD.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseListMLSD.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseMLSxDate = exports.transformList = exports.parseLine = exports.testLine = void 0; @@ -12764,9 +12769,9 @@ var require_parseListMLSD = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseList.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseList.js var require_parseList = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/parseList.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/parseList.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -12838,9 +12843,9 @@ var require_parseList = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/ProgressTracker.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/ProgressTracker.js var require_ProgressTracker = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/ProgressTracker.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/ProgressTracker.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressTracker = void 0; @@ -12909,9 +12914,9 @@ var require_ProgressTracker = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/StringWriter.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/StringWriter.js var require_StringWriter = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/StringWriter.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/StringWriter.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StringWriter = void 0; @@ -12937,9 +12942,9 @@ var require_StringWriter = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/netUtils.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/netUtils.js var require_netUtils = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/netUtils.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/netUtils.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ipIsPrivateV4Address = exports.upgradeSocket = exports.describeAddress = exports.describeTLS = void 0; @@ -12989,9 +12994,9 @@ var require_netUtils = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/transfer.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/transfer.js var require_transfer = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/transfer.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/transfer.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloadTo = exports.uploadFrom = exports.connectForPassiveTransfer = exports.parsePasvResponse = exports.enterPassiveModeIPv4 = exports.parseEpsvResponse = exports.enterPassiveModeIPv6 = void 0; @@ -13228,9 +13233,9 @@ var require_transfer = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/Client.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/Client.js var require_Client = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/Client.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/Client.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Client = void 0; @@ -13947,17 +13952,17 @@ var require_Client = __commonJS({ } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/StringEncoding.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/StringEncoding.js var require_StringEncoding = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/StringEncoding.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/StringEncoding.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); } }); -// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/index.js +// .yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/index.js var require_dist6 = __commonJS({ - ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-3d085eaea5.zip/node_modules/basic-ftp/dist/index.js"(exports) { + ".yarn/cache/basic-ftp-npm-5.0.3-95a5b33162-2b960ea976.zip/node_modules/basic-ftp/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -13996,9 +14001,9 @@ var require_dist6 = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/ftp.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/ftp.js var require_ftp = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/ftp.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/ftp.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14077,9 +14082,9 @@ var require_ftp = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/http-error.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http-error.js var require_http_error = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/http-error.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http-error.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var http_1 = require("http"); @@ -14094,9 +14099,9 @@ var require_http_error = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/http.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http.js var require_http = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/http.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14247,9 +14252,9 @@ var require_http = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/https.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/https.js var require_https = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/https.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/https.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14265,9 +14270,9 @@ var require_https = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/index.js +// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/index.js var require_dist7 = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-ffa2b3377c.zip/node_modules/get-uri/dist/index.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/index.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14310,9 +14315,9 @@ var require_dist7 = __commonJS({ } }); -// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-befc0287c3.zip/node_modules/estraverse/package.json +// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/package.json var require_package = __commonJS({ - ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-befc0287c3.zip/node_modules/estraverse/package.json"(exports, module2) { + ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/package.json"(exports, module2) { module2.exports = { name: "estraverse", description: "ECMAScript JS AST traversal functions", @@ -14356,9 +14361,9 @@ var require_package = __commonJS({ } }); -// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-befc0287c3.zip/node_modules/estraverse/estraverse.js +// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/estraverse.js var require_estraverse = __commonJS({ - ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-befc0287c3.zip/node_modules/estraverse/estraverse.js"(exports) { + ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/estraverse.js"(exports) { (function clone(exports2) { "use strict"; var Syntax, VisitorOption, VisitorKeys, BREAK, SKIP, REMOVE; @@ -14953,9 +14958,9 @@ var require_estraverse = __commonJS({ } }); -// .yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/ast.js +// .yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/ast.js var require_ast = __commonJS({ - ".yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/ast.js"(exports, module2) { + ".yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/ast.js"(exports, module2) { (function() { "use strict"; function isExpression(node) { @@ -15073,9 +15078,9 @@ var require_ast = __commonJS({ } }); -// .yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/code.js +// .yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/code.js var require_code = __commonJS({ - ".yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/code.js"(exports, module2) { + ".yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/code.js"(exports, module2) { (function() { "use strict"; var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch; @@ -15174,9 +15179,9 @@ var require_code = __commonJS({ } }); -// .yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/keyword.js +// .yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/keyword.js var require_keyword = __commonJS({ - ".yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/keyword.js"(exports, module2) { + ".yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/keyword.js"(exports, module2) { (function() { "use strict"; var code = require_code(); @@ -15302,9 +15307,9 @@ var require_keyword = __commonJS({ } }); -// .yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/utils.js +// .yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/utils.js var require_utils2 = __commonJS({ - ".yarn/cache/esutils-npm-2.0.3-f865beafd5-179e017b58.zip/node_modules/esutils/lib/utils.js"(exports) { + ".yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip/node_modules/esutils/lib/utils.js"(exports) { (function() { "use strict"; exports.ast = require_ast(); @@ -15314,9 +15319,9 @@ var require_utils2 = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/base64.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/base64.js var require_base64 = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/base64.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/base64.js"(exports) { var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); exports.encode = function(number) { if (0 <= number && number < intToCharMap.length) { @@ -15355,9 +15360,9 @@ var require_base64 = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/base64-vlq.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/base64-vlq.js var require_base64_vlq = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/base64-vlq.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/base64-vlq.js"(exports) { var base64 = require_base64(); var VLQ_BASE_SHIFT = 5; var VLQ_BASE = 1 << VLQ_BASE_SHIFT; @@ -15409,9 +15414,9 @@ var require_base64_vlq = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/util.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/util.js var require_util2 = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/util.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/util.js"(exports) { function getArg(aArgs, aName, aDefaultValue) { if (aName in aArgs) { return aArgs[aName]; @@ -15710,9 +15715,9 @@ var require_util2 = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/array-set.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/array-set.js var require_array_set = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/array-set.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/array-set.js"(exports) { var util = require_util2(); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -15780,9 +15785,9 @@ var require_array_set = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/mapping-list.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/mapping-list.js var require_mapping_list = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/mapping-list.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/mapping-list.js"(exports) { var util = require_util2(); function generatedPositionAfter(mappingA, mappingB) { var lineA = mappingA.generatedLine; @@ -15819,9 +15824,9 @@ var require_mapping_list = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-map-generator.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-map-generator.js var require_source_map_generator = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-map-generator.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-map-generator.js"(exports) { var base64VLQ = require_base64_vlq(); var util = require_util2(); var ArraySet = require_array_set().ArraySet; @@ -16095,9 +16100,9 @@ var require_source_map_generator = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/binary-search.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/binary-search.js var require_binary_search = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/binary-search.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/binary-search.js"(exports) { exports.GREATEST_LOWER_BOUND = 1; exports.LEAST_UPPER_BOUND = 2; function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { @@ -16151,9 +16156,9 @@ var require_binary_search = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/quick-sort.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/quick-sort.js var require_quick_sort = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/quick-sort.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/quick-sort.js"(exports) { function swap(ary, x, y) { var temp = ary[x]; ary[x] = ary[y]; @@ -16186,9 +16191,9 @@ var require_quick_sort = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-map-consumer.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-map-consumer.js var require_source_map_consumer = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-map-consumer.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-map-consumer.js"(exports) { var util = require_util2(); var binarySearch = require_binary_search(); var ArraySet = require_array_set().ArraySet; @@ -16787,9 +16792,9 @@ var require_source_map_consumer = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-node.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-node.js var require_source_node = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/lib/source-node.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/lib/source-node.js"(exports) { var SourceMapGenerator = require_source_map_generator().SourceMapGenerator; var util = require_util2(); var REGEX_NEWLINE = /(\r?\n)/; @@ -17053,18 +17058,18 @@ var require_source_node = __commonJS({ } }); -// .yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/source-map.js +// .yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/source-map.js var require_source_map = __commonJS({ - ".yarn/cache/source-map-npm-0.6.1-1a3621db16-cba9f44c3a.zip/node_modules/source-map/source-map.js"(exports) { + ".yarn/cache/source-map-npm-0.6.1-1a3621db16-ab55398007.zip/node_modules/source-map/source-map.js"(exports) { exports.SourceMapGenerator = require_source_map_generator().SourceMapGenerator; exports.SourceMapConsumer = require_source_map_consumer().SourceMapConsumer; exports.SourceNode = require_source_node().SourceNode; } }); -// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-14769d3458.zip/node_modules/escodegen/package.json +// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/package.json var require_package2 = __commonJS({ - ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-14769d3458.zip/node_modules/escodegen/package.json"(exports, module2) { + ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/package.json"(exports, module2) { module2.exports = { name: "escodegen", description: "ECMAScript code generator", @@ -17129,9 +17134,9 @@ var require_package2 = __commonJS({ } }); -// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-14769d3458.zip/node_modules/escodegen/escodegen.js +// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/escodegen.js var require_escodegen = __commonJS({ - ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-14769d3458.zip/node_modules/escodegen/escodegen.js"(exports) { + ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/escodegen.js"(exports) { (function() { "use strict"; var Syntax, Precedence, BinaryPrecedence, SourceNode, estraverse, esutils, base, indent, json, renumber, hexadecimal, quotes, escapeless, newline, space, parentheses, semicolons, safeConcatenation, directive, extra, parse, sourceMap, sourceCode, preserveBlankLines, FORMAT_MINIFY, FORMAT_DEFAULTS; @@ -19185,9 +19190,9 @@ var require_escodegen = __commonJS({ } }); -// .yarn/cache/esprima-npm-4.0.1-1084e98778-08b3015538.zip/node_modules/esprima/dist/esprima.js +// .yarn/cache/esprima-npm-4.0.1-1084e98778-ad4bab9ead.zip/node_modules/esprima/dist/esprima.js var require_esprima = __commonJS({ - ".yarn/cache/esprima-npm-4.0.1-1084e98778-08b3015538.zip/node_modules/esprima/dist/esprima.js"(exports, module2) { + ".yarn/cache/esprima-npm-4.0.1-1084e98778-ad4bab9ead.zip/node_modules/esprima/dist/esprima.js"(exports, module2) { (function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === "object" && typeof module2 === "object") module2.exports = factory(); @@ -25421,7 +25426,7 @@ var require_esprima = __commonJS({ } }); -// .yarn/cache/tslib-npm-2.6.0-4d336a6824-702dfe42c8.zip/node_modules/tslib/tslib.es6.mjs +// .yarn/cache/tslib-npm-2.6.0-4d336a6824-8d18020a8b.zip/node_modules/tslib/tslib.es6.mjs var tslib_es6_exports = {}; __export(tslib_es6_exports, { __addDisposableResource: () => __addDisposableResource, @@ -25888,7 +25893,7 @@ function __disposeResources(env2) { } var extendStatics, __assign, __createBinding, __setModuleDefault, _SuppressedError, tslib_es6_default; var init_tslib_es6 = __esm({ - ".yarn/cache/tslib-npm-2.6.0-4d336a6824-702dfe42c8.zip/node_modules/tslib/tslib.es6.mjs"() { + ".yarn/cache/tslib-npm-2.6.0-4d336a6824-8d18020a8b.zip/node_modules/tslib/tslib.es6.mjs"() { extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; @@ -25967,9 +25972,9 @@ var init_tslib_es6 = __esm({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/types.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/types.js var require_types = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/types.js"(exports) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/types.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Def = void 0; @@ -26652,9 +26657,9 @@ var require_types = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/path.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/path.js var require_path = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/path.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/path.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -26955,9 +26960,9 @@ var require_path = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/scope.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/scope.js var require_scope = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/scope.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/scope.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -27217,9 +27222,9 @@ var require_scope = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/node-path.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/node-path.js var require_node_path = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/node-path.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/node-path.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -27572,9 +27577,9 @@ var require_node_path = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/path-visitor.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/path-visitor.js var require_path_visitor = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/path-visitor.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/path-visitor.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -27866,9 +27871,9 @@ var require_path_visitor = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/equiv.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/equiv.js var require_equiv = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/equiv.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/equiv.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28017,9 +28022,9 @@ var require_equiv = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/fork.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/fork.js var require_fork = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/fork.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/fork.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28075,9 +28080,9 @@ var require_fork = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/shared.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/shared.js var require_shared = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/lib/shared.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/lib/shared.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28136,9 +28141,9 @@ var require_shared = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/core.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/core.js var require_core = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/core.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/core.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28266,9 +28271,9 @@ var require_core = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es6.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es6.js var require_es6 = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es6.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es6.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28331,9 +28336,9 @@ var require_es6 = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es7.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es7.js var require_es7 = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es7.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es7.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28358,9 +28363,9 @@ var require_es7 = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es2020.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es2020.js var require_es2020 = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es2020.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es2020.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28377,9 +28382,9 @@ var require_es2020 = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/jsx.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/jsx.js var require_jsx = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/jsx.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/jsx.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28442,9 +28447,9 @@ var require_jsx = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/type-annotations.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/type-annotations.js var require_type_annotations = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/type-annotations.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/type-annotations.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28473,9 +28478,9 @@ var require_type_annotations = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/flow.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/flow.js var require_flow = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/flow.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/flow.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28569,9 +28574,9 @@ var require_flow = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/esprima.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/esprima.js var require_esprima2 = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/esprima.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/esprima.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28628,9 +28633,9 @@ var require_esprima2 = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/babel-core.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/babel-core.js var require_babel_core = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/babel-core.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/babel-core.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28752,9 +28757,9 @@ var require_babel_core = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/babel.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/babel.js var require_babel = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/babel.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/babel.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28769,9 +28774,9 @@ var require_babel = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/typescript.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/typescript.js var require_typescript = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/typescript.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/typescript.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28928,9 +28933,9 @@ var require_typescript = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es-proposals.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es-proposals.js var require_es_proposals = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/def/es-proposals.js"(exports, module2) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/def/es-proposals.js"(exports, module2) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); @@ -28955,9 +28960,9 @@ var require_es_proposals = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/gen/namedTypes.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/gen/namedTypes.js var require_namedTypes = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/gen/namedTypes.js"(exports) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/gen/namedTypes.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.namedTypes = void 0; @@ -28967,9 +28972,9 @@ var require_namedTypes = __commonJS({ } }); -// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/main.js +// .yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/main.js var require_main = __commonJS({ - ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-bb0eb8a85e.zip/node_modules/ast-types/main.js"(exports) { + ".yarn/cache/ast-types-npm-0.13.4-69f7e68df8-3a1a409764.zip/node_modules/ast-types/main.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.visit = exports.use = exports.Type = exports.someField = exports.PathVisitor = exports.Path = exports.NodePath = exports.namedTypes = exports.getSupertypeNames = exports.getFieldValue = exports.getFieldNames = exports.getBuilderName = exports.finalize = exports.eachField = exports.defineMethod = exports.builtInTypes = exports.builders = exports.astNodesAreEquivalent = void 0; @@ -29057,9 +29062,9 @@ var require_vm2 = __commonJS({ } }); -// .yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-105bd28952.zip/node_modules/degenerator/dist/index.js +// .yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-c859071a75.zip/node_modules/degenerator/dist/index.js var require_dist8 = __commonJS({ - ".yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-105bd28952.zip/node_modules/degenerator/dist/index.js"(exports) { + ".yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-c859071a75.zip/node_modules/degenerator/dist/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compile = exports.degenerator = void 0; @@ -29201,9 +29206,9 @@ var require_dist8 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dateRange.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dateRange.js var require_dateRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dateRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dateRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dateRange() { @@ -29213,9 +29218,9 @@ var require_dateRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsDomainIs.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainIs.js var require_dnsDomainIs = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsDomainIs.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainIs.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dnsDomainIs(host, domain) { @@ -29227,9 +29232,9 @@ var require_dnsDomainIs = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js var require_dnsDomainLevels = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dnsDomainLevels(host) { @@ -29244,9 +29249,9 @@ var require_dnsDomainLevels = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/util.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/util.js var require_util3 = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/util.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/util.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isGMT = exports.dnsLookup = void 0; @@ -29270,9 +29275,9 @@ var require_util3 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsResolve.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsResolve.js var require_dnsResolve = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/dnsResolve.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsResolve.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -29291,9 +29296,9 @@ var require_dnsResolve = __commonJS({ } }); -// .yarn/cache/netmask-npm-2.0.2-2299510a4d-ba4edae75a.zip/node_modules/netmask/lib/netmask.js +// .yarn/cache/netmask-npm-2.0.2-2299510a4d-cafd28388e.zip/node_modules/netmask/lib/netmask.js var require_netmask = __commonJS({ - ".yarn/cache/netmask-npm-2.0.2-2299510a4d-ba4edae75a.zip/node_modules/netmask/lib/netmask.js"(exports) { + ".yarn/cache/netmask-npm-2.0.2-2299510a4d-cafd28388e.zip/node_modules/netmask/lib/netmask.js"(exports) { (function() { var Netmask, atob, chr, chr0, chrA, chra, ip2long, long2ip; long2ip = function(long) { @@ -29486,9 +29491,9 @@ var require_netmask = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isInNet.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isInNet.js var require_isInNet = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isInNet.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isInNet.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var netmask_1 = require_netmask(); @@ -29509,9 +29514,9 @@ var require_isInNet = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isPlainHostName.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isPlainHostName.js var require_isPlainHostName = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isPlainHostName.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isPlainHostName.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function isPlainHostName(host) { @@ -29521,9 +29526,9 @@ var require_isPlainHostName = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isResolvable.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isResolvable.js var require_isResolvable = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/isResolvable.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isResolvable.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -29541,9 +29546,9 @@ var require_isResolvable = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js var require_localHostOrDomainIs = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function localHostOrDomainIs(host, hostdom) { @@ -29562,9 +29567,9 @@ var require_localHostOrDomainIs = __commonJS({ } }); -// .yarn/cache/ip-npm-1.1.8-abea558b72-bb1850e7b6.zip/node_modules/ip/lib/ip.js +// .yarn/cache/ip-npm-1.1.8-abea558b72-ab32a5ecfa.zip/node_modules/ip/lib/ip.js var require_ip2 = __commonJS({ - ".yarn/cache/ip-npm-1.1.8-abea558b72-bb1850e7b6.zip/node_modules/ip/lib/ip.js"(exports) { + ".yarn/cache/ip-npm-1.1.8-abea558b72-ab32a5ecfa.zip/node_modules/ip/lib/ip.js"(exports) { var ip = exports; var { Buffer: Buffer2 } = require("buffer"); var os3 = require("os"); @@ -29868,9 +29873,9 @@ var require_ip2 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/myIpAddress.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/myIpAddress.js var require_myIpAddress = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/myIpAddress.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/myIpAddress.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -29903,9 +29908,9 @@ var require_myIpAddress = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/shExpMatch.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/shExpMatch.js var require_shExpMatch = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/shExpMatch.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/shExpMatch.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function shExpMatch(str, shexp) { @@ -29920,9 +29925,9 @@ var require_shExpMatch = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/timeRange.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/timeRange.js var require_timeRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/timeRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/timeRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function timeRange() { @@ -29967,9 +29972,9 @@ var require_timeRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/weekdayRange.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/weekdayRange.js var require_weekdayRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/weekdayRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/weekdayRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -30015,9 +30020,9 @@ var require_weekdayRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/index.js +// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/index.js var require_dist9 = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-e77d61b35d.zip/node_modules/pac-resolver/dist/index.js"(exports) { + ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/index.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -30092,9 +30097,9 @@ var require_dist9 = __commonJS({ } }); -// .yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-26e60ad16f.zip/node_modules/pac-proxy-agent/dist/index.js +// .yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-810aaaac1b.zip/node_modules/pac-proxy-agent/dist/index.js var require_dist10 = __commonJS({ - ".yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-26e60ad16f.zip/node_modules/pac-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-810aaaac1b.zip/node_modules/pac-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -30308,9 +30313,9 @@ var require_dist10 = __commonJS({ } }); -// .yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-481d168121.zip/node_modules/proxy-agent/dist/index.js +// .yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-51121cb190.zip/node_modules/proxy-agent/dist/index.js var require_dist11 = __commonJS({ - ".yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-481d168121.zip/node_modules/proxy-agent/dist/index.js"(exports) { + ".yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-51121cb190.zip/node_modules/proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -30432,9 +30437,9 @@ var require_dist11 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/high-level-opt.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/high-level-opt.js var require_high_level_opt = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/high-level-opt.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/high-level-opt.js"(exports, module2) { "use strict"; var argmap = /* @__PURE__ */ new Map([ ["C", "cwd"], @@ -30464,9 +30469,9 @@ var require_high_level_opt = __commonJS({ } }); -// .yarn/cache/minipass-npm-5.0.0-c64fb63c92-dac2e19609.zip/node_modules/minipass/index.js +// .yarn/cache/minipass-npm-5.0.0-c64fb63c92-a91d8043f6.zip/node_modules/minipass/index.js var require_minipass = __commonJS({ - ".yarn/cache/minipass-npm-5.0.0-c64fb63c92-dac2e19609.zip/node_modules/minipass/index.js"(exports) { + ".yarn/cache/minipass-npm-5.0.0-c64fb63c92-a91d8043f6.zip/node_modules/minipass/index.js"(exports) { "use strict"; var proc = typeof process === "object" && process ? process : { stdout: null, @@ -31071,9 +31076,9 @@ var require_minipass = __commonJS({ } }); -// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-c0071edb24.zip/node_modules/minizlib/constants.js +// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/constants.js var require_constants3 = __commonJS({ - ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-c0071edb24.zip/node_modules/minizlib/constants.js"(exports, module2) { + ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/constants.js"(exports, module2) { var realZlibConstants = require("zlib").constants || /* istanbul ignore next */ { ZLIB_VERNUM: 4736 }; module2.exports = Object.freeze(Object.assign(/* @__PURE__ */ Object.create(null), { @@ -31187,9 +31192,9 @@ var require_constants3 = __commonJS({ } }); -// .yarn/cache/minipass-npm-3.3.6-b8d93a945b-9704cf677a.zip/node_modules/minipass/index.js +// .yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip/node_modules/minipass/index.js var require_minipass2 = __commonJS({ - ".yarn/cache/minipass-npm-3.3.6-b8d93a945b-9704cf677a.zip/node_modules/minipass/index.js"(exports, module2) { + ".yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip/node_modules/minipass/index.js"(exports, module2) { "use strict"; var proc = typeof process === "object" && process ? process : { stdout: null, @@ -31711,9 +31716,9 @@ var require_minipass2 = __commonJS({ } }); -// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-c0071edb24.zip/node_modules/minizlib/index.js +// .yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/index.js var require_minizlib = __commonJS({ - ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-c0071edb24.zip/node_modules/minizlib/index.js"(exports) { + ".yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-64fae024e1.zip/node_modules/minizlib/index.js"(exports) { "use strict"; var assert2 = require("assert"); var Buffer2 = require("buffer").Buffer; @@ -31975,17 +31980,17 @@ var require_minizlib = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/normalize-windows-path.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-windows-path.js var require_normalize_windows_path = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/normalize-windows-path.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-windows-path.js"(exports, module2) { var platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; module2.exports = platform !== "win32" ? (p) => p : (p) => p && p.replace(/\\/g, "/"); } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/read-entry.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/read-entry.js var require_read_entry = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/read-entry.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/read-entry.js"(exports, module2) { "use strict"; var { Minipass } = require_minipass(); var normPath = require_normalize_windows_path(); @@ -32077,9 +32082,9 @@ var require_read_entry = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/types.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/types.js var require_types2 = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/types.js"(exports) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/types.js"(exports) { "use strict"; exports.name = /* @__PURE__ */ new Map([ ["0", "File"], @@ -32124,9 +32129,9 @@ var require_types2 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/large-numbers.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/large-numbers.js var require_large_numbers = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/large-numbers.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/large-numbers.js"(exports, module2) { "use strict"; var encode = (num, buf) => { if (!Number.isSafeInteger(num)) { @@ -32214,9 +32219,9 @@ var require_large_numbers = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/header.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/header.js var require_header = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/header.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/header.js"(exports, module2) { "use strict"; var types = require_types2(); var pathModule = require("path").posix; @@ -32434,9 +32439,9 @@ var require_header = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/pax.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pax.js var require_pax = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/pax.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pax.js"(exports, module2) { "use strict"; var Header = require_header(); var path10 = require("path"); @@ -32535,9 +32540,9 @@ var require_pax = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/strip-trailing-slashes.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-trailing-slashes.js var require_strip_trailing_slashes = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/strip-trailing-slashes.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-trailing-slashes.js"(exports, module2) { module2.exports = (str) => { let i = str.length - 1; let slashesStart = -1; @@ -32550,9 +32555,9 @@ var require_strip_trailing_slashes = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/warn-mixin.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/warn-mixin.js var require_warn_mixin = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/warn-mixin.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/warn-mixin.js"(exports, module2) { "use strict"; module2.exports = (Base) => class extends Base { warn(code, message, data = {}) { @@ -32580,9 +32585,9 @@ var require_warn_mixin = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/winchars.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/winchars.js var require_winchars = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/winchars.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/winchars.js"(exports, module2) { "use strict"; var raw = [ "|", @@ -32601,9 +32606,9 @@ var require_winchars = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/strip-absolute-path.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-absolute-path.js var require_strip_absolute_path = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/strip-absolute-path.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-absolute-path.js"(exports, module2) { var { isAbsolute, parse } = require("path").win32; module2.exports = (path10) => { let r = ""; @@ -32619,9 +32624,9 @@ var require_strip_absolute_path = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/mode-fix.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mode-fix.js var require_mode_fix = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/mode-fix.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mode-fix.js"(exports, module2) { "use strict"; module2.exports = (mode, isDir, portable) => { mode &= 4095; @@ -32644,9 +32649,9 @@ var require_mode_fix = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/write-entry.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/write-entry.js var require_write_entry = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/write-entry.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/write-entry.js"(exports, module2) { "use strict"; var { Minipass } = require_minipass(); var Pax = require_pax(); @@ -33109,9 +33114,9 @@ var require_write_entry = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/pack.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pack.js var require_pack = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/pack.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pack.js"(exports, module2) { "use strict"; var PackJob = class { constructor(path11, absolute) { @@ -33467,9 +33472,9 @@ var require_pack = __commonJS({ } }); -// .yarn/cache/fs-minipass-npm-2.1.0-501ef87306-56d19f9a03.zip/node_modules/fs-minipass/index.js +// .yarn/cache/fs-minipass-npm-2.1.0-501ef87306-703d16522b.zip/node_modules/fs-minipass/index.js var require_fs_minipass = __commonJS({ - ".yarn/cache/fs-minipass-npm-2.1.0-501ef87306-56d19f9a03.zip/node_modules/fs-minipass/index.js"(exports) { + ".yarn/cache/fs-minipass-npm-2.1.0-501ef87306-703d16522b.zip/node_modules/fs-minipass/index.js"(exports) { "use strict"; var MiniPass = require_minipass2(); var EE = require("events").EventEmitter; @@ -33842,9 +33847,9 @@ var require_fs_minipass = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/parse.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/parse.js var require_parse2 = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/parse.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/parse.js"(exports, module2) { "use strict"; var warner = require_warn_mixin(); var Header = require_header(); @@ -34243,9 +34248,9 @@ var require_parse2 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/list.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/list.js var require_list = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/list.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/list.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Parser = require_parse2(); @@ -34357,9 +34362,9 @@ var require_list = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/create.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/create.js var require_create = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/create.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/create.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Pack = require_pack(); @@ -34451,9 +34456,9 @@ var require_create = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/replace.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/replace.js var require_replace = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/replace.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/replace.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Pack = require_pack(); @@ -34667,9 +34672,9 @@ var require_replace = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/update.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/update.js var require_update = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/update.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/update.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var r = require_replace(); @@ -34698,9 +34703,9 @@ var require_update = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/opts-arg.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/opts-arg.js var require_opts_arg = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/opts-arg.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/opts-arg.js"(exports, module2) { var { promisify } = require("util"); var fs8 = require("fs"); var optsArg = (opts) => { @@ -34726,9 +34731,9 @@ var require_opts_arg = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/path-arg.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/path-arg.js var require_path_arg = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/path-arg.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/path-arg.js"(exports, module2) { var platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform; var { resolve, parse } = require("path"); var pathArg = (path10) => { @@ -34758,9 +34763,9 @@ var require_path_arg = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/find-made.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/find-made.js var require_find_made = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/find-made.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/find-made.js"(exports, module2) { var { dirname } = require("path"); var findMade = (opts, parent, path10 = void 0) => { if (path10 === parent) @@ -34784,9 +34789,9 @@ var require_find_made = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/mkdirp-manual.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-manual.js var require_mkdirp_manual = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/mkdirp-manual.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-manual.js"(exports, module2) { var { dirname } = require("path"); var mkdirpManual = (path10, opts, made) => { opts.recursive = false; @@ -34845,9 +34850,9 @@ var require_mkdirp_manual = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/mkdirp-native.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-native.js var require_mkdirp_native = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/mkdirp-native.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/mkdirp-native.js"(exports, module2) { var { dirname } = require("path"); var { findMade, findMadeSync } = require_find_made(); var { mkdirpManual, mkdirpManualSync } = require_mkdirp_manual(); @@ -34883,9 +34888,9 @@ var require_mkdirp_native = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/use-native.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/use-native.js var require_use_native = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/lib/use-native.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/lib/use-native.js"(exports, module2) { var fs8 = require("fs"); var version2 = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version; var versArr = version2.replace(/^v/, "").split("."); @@ -34896,9 +34901,9 @@ var require_use_native = __commonJS({ } }); -// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/index.js +// .yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/index.js var require_mkdirp = __commonJS({ - ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1233611198.zip/node_modules/mkdirp/index.js"(exports, module2) { + ".yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-46ea0f3ffa.zip/node_modules/mkdirp/index.js"(exports, module2) { var optsArg = require_opts_arg(); var pathArg = require_path_arg(); var { mkdirpNative, mkdirpNativeSync } = require_mkdirp_native(); @@ -34923,9 +34928,9 @@ var require_mkdirp = __commonJS({ } }); -// .yarn/cache/chownr-npm-2.0.0-638f1c9c61-7b240ff920.zip/node_modules/chownr/chownr.js +// .yarn/cache/chownr-npm-2.0.0-638f1c9c61-594754e130.zip/node_modules/chownr/chownr.js var require_chownr = __commonJS({ - ".yarn/cache/chownr-npm-2.0.0-638f1c9c61-7b240ff920.zip/node_modules/chownr/chownr.js"(exports, module2) { + ".yarn/cache/chownr-npm-2.0.0-638f1c9c61-594754e130.zip/node_modules/chownr/chownr.js"(exports, module2) { "use strict"; var fs8 = require("fs"); var path10 = require("path"); @@ -35054,9 +35059,9 @@ var require_chownr = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/mkdir.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mkdir.js var require_mkdir = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/mkdir.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mkdir.js"(exports, module2) { "use strict"; var mkdirp = require_mkdirp(); var fs8 = require("fs"); @@ -35246,9 +35251,9 @@ var require_mkdir = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/normalize-unicode.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-unicode.js var require_normalize_unicode = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/normalize-unicode.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-unicode.js"(exports, module2) { var normalizeCache = /* @__PURE__ */ Object.create(null); var { hasOwnProperty } = Object.prototype; module2.exports = (s) => { @@ -35260,9 +35265,9 @@ var require_normalize_unicode = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/path-reservations.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/path-reservations.js var require_path_reservations = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/path-reservations.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/path-reservations.js"(exports, module2) { var assert2 = require("assert"); var normalize = require_normalize_unicode(); var stripSlashes = require_strip_trailing_slashes(); @@ -35374,9 +35379,9 @@ var require_path_reservations = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/get-write-flag.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/get-write-flag.js var require_get_write_flag = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/get-write-flag.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/get-write-flag.js"(exports, module2) { var platform = process.env.__FAKE_PLATFORM__ || process.platform; var isWindows = platform === "win32"; var fs8 = global.__FAKE_TESTING_FS__ || require("fs"); @@ -35388,9 +35393,9 @@ var require_get_write_flag = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/unpack.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/unpack.js var require_unpack = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/unpack.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/unpack.js"(exports, module2) { "use strict"; var assert2 = require("assert"); var Parser = require_parse2(); @@ -36070,9 +36075,9 @@ var require_unpack = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/extract.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/extract.js var require_extract = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/lib/extract.js"(exports, module2) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/extract.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Unpack = require_unpack(); @@ -36155,9 +36160,9 @@ var require_extract = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/index.js +// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/index.js var require_tar = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-815c25f881.zip/node_modules/tar/index.js"(exports) { + ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/index.js"(exports) { "use strict"; exports.c = exports.create = require_create(); exports.r = exports.replace = require_replace(); @@ -36175,9 +36180,9 @@ var require_tar = __commonJS({ } }); -// .yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-757e7df6b1.zip/node_modules/v8-compile-cache/v8-compile-cache.js +// .yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b2d866febf.zip/node_modules/v8-compile-cache/v8-compile-cache.js var require_v8_compile_cache = __commonJS({ - ".yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-757e7df6b1.zip/node_modules/v8-compile-cache/v8-compile-cache.js"(exports, module2) { + ".yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b2d866febf.zip/node_modules/v8-compile-cache/v8-compile-cache.js"(exports, module2) { "use strict"; var Module2 = require("module"); var crypto = require("crypto"); @@ -36451,9 +36456,9 @@ var require_v8_compile_cache = __commonJS({ } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/windows.js +// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/windows.js var require_windows = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/windows.js"(exports, module2) { + ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/windows.js"(exports, module2) { module2.exports = isexe; isexe.sync = sync; var fs8 = require("fs"); @@ -36491,9 +36496,9 @@ var require_windows = __commonJS({ } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/mode.js +// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/mode.js var require_mode = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/mode.js"(exports, module2) { + ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/mode.js"(exports, module2) { module2.exports = isexe; isexe.sync = sync; var fs8 = require("fs"); @@ -36524,9 +36529,9 @@ var require_mode = __commonJS({ } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/index.js +// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/index.js var require_isexe = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-b37fe0a798.zip/node_modules/isexe/index.js"(exports, module2) { + ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/index.js"(exports, module2) { var fs8 = require("fs"); var core; if (process.platform === "win32" || global.TESTING_WINDOWS) { @@ -36579,9 +36584,9 @@ var require_isexe = __commonJS({ } }); -// .yarn/cache/which-npm-3.0.1-b2b0f09ace-5c5f879943.zip/node_modules/which/lib/index.js +// .yarn/cache/which-npm-3.0.1-b2b0f09ace-15263b0616.zip/node_modules/which/lib/index.js var require_lib2 = __commonJS({ - ".yarn/cache/which-npm-3.0.1-b2b0f09ace-5c5f879943.zip/node_modules/which/lib/index.js"(exports, module2) { + ".yarn/cache/which-npm-3.0.1-b2b0f09ace-15263b0616.zip/node_modules/which/lib/index.js"(exports, module2) { var isexe = require_isexe(); var { join: join2, delimiter, sep, posix } = require("path"); var isWindows = process.platform === "win32"; @@ -36671,9 +36676,9 @@ var require_lib2 = __commonJS({ } }); -// .yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-ba7ae056a6.zip/node_modules/is-windows/index.js +// .yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-b32f418ab3.zip/node_modules/is-windows/index.js var require_is_windows = __commonJS({ - ".yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-ba7ae056a6.zip/node_modules/is-windows/index.js"(exports, module2) { + ".yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-b32f418ab3.zip/node_modules/is-windows/index.js"(exports, module2) { (function(factory) { if (exports && typeof exports === "object" && typeof module2 !== "undefined") { module2.exports = factory(); @@ -36697,9 +36702,9 @@ var require_is_windows = __commonJS({ } }); -// .yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-c0f4db69b5.zip/node_modules/cmd-extension/index.js +// .yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-acdb425d51.zip/node_modules/cmd-extension/index.js var require_cmd_extension = __commonJS({ - ".yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-c0f4db69b5.zip/node_modules/cmd-extension/index.js"(exports, module2) { + ".yarn/cache/cmd-extension-npm-1.0.2-11aa204c4b-acdb425d51.zip/node_modules/cmd-extension/index.js"(exports, module2) { "use strict"; var path10 = require("path"); var cmdExtension; @@ -36710,9 +36715,9 @@ var require_cmd_extension = __commonJS({ } }); -// .yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-bd05b9c123.zip/node_modules/@zkochan/cmd-shim/index.js +// .yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-ba1442ba1e.zip/node_modules/@zkochan/cmd-shim/index.js var require_cmd_shim = __commonJS({ - ".yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-bd05b9c123.zip/node_modules/@zkochan/cmd-shim/index.js"(exports, module2) { + ".yarn/cache/@zkochan-cmd-shim-npm-6.0.0-97792a7373-ba1442ba1e.zip/node_modules/@zkochan/cmd-shim/index.js"(exports, module2) { "use strict"; cmdShim2.ifExists = cmdShimIfExists; var util_1 = require("util"); @@ -37061,7 +37066,7 @@ __export(lib_exports2, { }); module.exports = __toCommonJS(lib_exports2); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/constants.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/constants.mjs var NODE_INITIAL = 0; var NODE_SUCCESS = 1; var NODE_ERRORED = 2; @@ -37074,7 +37079,7 @@ var BATCH_REGEX = /^-[a-zA-Z]{2,}$/; var BINDING_REGEX = /^([^=]+)=([\s\S]*)$/; var DEBUG = process.env.DEBUG_CLI === `1`; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/errors.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/errors.mjs var UsageError = class extends Error { constructor(message) { super(message); @@ -37143,7 +37148,7 @@ var whileRunning = (input) => `While running ${input.filter((token) => { } }).join(` `)}`; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/format.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/format.mjs var MAX_LINE_LENGTH = 80; var richLine = Array(MAX_LINE_LENGTH).fill(`\u2501`); for (let t = 0; t <= 24; ++t) @@ -37202,7 +37207,7 @@ function formatMarkdownish(text, { format, paragraphs }) { ` : ``; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/utils.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/utils.mjs var isOptionSymbol = Symbol(`clipanion/isOption`); function makeCommandOption(spec) { return { ...spec, [isOptionSymbol]: true }; @@ -37253,7 +37258,7 @@ function applyValidator(name, value, validator) { return value; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/Command.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/Command.mjs var Command = class { constructor() { this.help = false; @@ -37300,7 +37305,7 @@ var Command = class { Command.isOption = isOptionSymbol; Command.Default = []; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/core.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/core.mjs function debug(str) { if (DEBUG) { console.log(str); @@ -38049,7 +38054,7 @@ var CliBuilder = class { } }; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/platform/node.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/platform/node.mjs var import_tty = __toESM(require("tty"), 1); function getDefaultColorDepth() { if (import_tty.default && `getColorDepth` in import_tty.default.WriteStream.prototype) @@ -38090,7 +38095,7 @@ function getCaptureActivator(context) { }; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/HelpCommand.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/HelpCommand.mjs var HelpCommand = class extends Command { constructor(contexts) { super(); @@ -38140,7 +38145,7 @@ var HelpCommand = class extends Command { } }; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/Cli.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/Cli.mjs var errorCommandSymbol = Symbol(`clipanion/errorCommand`); var Cli = class { constructor({ binaryLabel, binaryName: binaryNameOpt = `...`, binaryVersion, enableCapture = false, enableColors } = {}) { @@ -38492,7 +38497,7 @@ function noopCaptureActivator(fn2) { return fn2(); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/builtins/index.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/index.mjs var builtins_exports = {}; __export(builtins_exports, { DefinitionsCommand: () => DefinitionsCommand, @@ -38500,7 +38505,7 @@ __export(builtins_exports, { VersionCommand: () => VersionCommand }); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/builtins/definitions.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/definitions.mjs var DefinitionsCommand = class extends Command { async execute() { this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)} @@ -38509,7 +38514,7 @@ var DefinitionsCommand = class extends Command { }; DefinitionsCommand.paths = [[`--clipanion=definitions`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/builtins/help.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/help.mjs var HelpCommand2 = class extends Command { async execute() { this.context.stdout.write(this.cli.usage()); @@ -38517,7 +38522,7 @@ var HelpCommand2 = class extends Command { }; HelpCommand2.paths = [[`-h`], [`--help`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/builtins/version.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/version.mjs var VersionCommand = class extends Command { async execute() { var _a; @@ -38527,7 +38532,7 @@ var VersionCommand = class extends Command { }; VersionCommand.paths = [[`-v`], [`--version`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/index.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/index.mjs var options_exports = {}; __export(options_exports, { Array: () => Array2, @@ -38544,7 +38549,7 @@ __export(options_exports, { rerouteArguments: () => rerouteArguments }); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/Array.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Array.mjs function Array2(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const { arity = 1 } = opts; @@ -38579,7 +38584,7 @@ function Array2(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/Boolean.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Boolean.mjs function Boolean2(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const optNames = descriptor.split(`,`); @@ -38607,7 +38612,7 @@ function Boolean2(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/Counter.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Counter.mjs function Counter(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const optNames = descriptor.split(`,`); @@ -38640,7 +38645,7 @@ function Counter(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/Proxy.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Proxy.mjs function Proxy2(opts = {}) { return makeCommandOption({ definition(builder, key) { @@ -38656,7 +38661,7 @@ function Proxy2(opts = {}) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/Rest.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Rest.mjs function Rest(opts = {}) { return makeCommandOption({ definition(builder, key) { @@ -38683,7 +38688,7 @@ function Rest(opts = {}) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fb3428b745.zip/node_modules/clipanion/lib/advanced/options/String.mjs +// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/String.mjs function StringOption(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const { arity = 1 } = opts; @@ -38755,7 +38760,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.20.0"; +var version = "0.21.0"; // sources/Engine.ts var import_fs3 = __toESM(require("fs")); @@ -38767,7 +38772,7 @@ var import_semver3 = __toESM(require_semver2()); var config_default = { definitions: { npm: { - default: "9.8.1+sha1.b8f070cc770128b38017160491504184863329f0", + default: "10.2.0+sha1.2e4f7aba9cd913de8747d45b3dd5fb43615a4139", fetchLatestFrom: { type: "npm", package: "npm" @@ -38795,13 +38800,16 @@ var config_default = { package: "npm" }, commands: { - use: ["npm", "install"] + use: [ + "npm", + "install" + ] } } } }, pnpm: { - default: "8.6.12+sha1.a2f983fbf8f2531dc85db2a5d7f398063d51a6f3", + default: "8.8.0+sha1.9922e8b650d393700209ccd81e0ebdbcbe43b0d3", fetchLatestFrom: { type: "npm", package: "pnpm" @@ -38833,7 +38841,10 @@ var config_default = { package: "pnpm" }, commands: { - use: ["pnpm", "install"] + use: [ + "pnpm", + "install" + ] } }, ">=6.0.0": { @@ -38847,7 +38858,10 @@ var config_default = { package: "pnpm" }, commands: { - use: ["pnpm", "install"] + use: [ + "pnpm", + "install" + ] } } } @@ -38859,7 +38873,7 @@ var config_default = { package: "yarn" }, transparent: { - default: "3.6.3+sha224.524038cfca4ec8b2d45164c9c13f05e57a7d762f30542a8d647f69e3", + default: "3.6.4+sha224.4b0b0a9cf41b177779b701850108387d3189ba7c93bd1a535fafbf72", commands: [ [ "yarn", @@ -38879,7 +38893,10 @@ var config_default = { package: "yarn" }, commands: { - use: ["yarn", "install"] + use: [ + "yarn", + "install" + ] } }, ">=2.0.0": { @@ -38898,7 +38915,10 @@ var config_default = { } }, commands: { - use: ["yarn", "install"] + use: [ + "yarn", + "install" + ] } } } @@ -39400,13 +39420,10 @@ var import_fs4 = __toESM(require("fs")); var import_path4 = __toESM(require("path")); var import_which = __toESM(require_lib2()); var DisableCommand = class extends Command { - constructor() { - super(...arguments); - this.installDirectory = options_exports.String(`--install-directory`, { - description: `Where the shims are located` - }); - this.names = options_exports.Rest(); - } + installDirectory = options_exports.String(`--install-directory`, { + description: `Where the shims are located` + }); + names = options_exports.Rest(); async execute() { let installDirectory = this.installDirectory; if (typeof installDirectory === `undefined`) @@ -39447,10 +39464,10 @@ var DisableCommand = class extends Command { } } }; -DisableCommand.paths = [ +__publicField(DisableCommand, "paths", [ [`disable`] -]; -DisableCommand.usage = Command.Usage({ +]); +__publicField(DisableCommand, "usage", Command.Usage({ description: `Remove the Corepack shims from the install directory`, details: ` When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. @@ -39467,7 +39484,7 @@ DisableCommand.usage = Command.Usage({ `Disable the Yarn shim only`, `$0 disable yarn` ]] -}); +})); // sources/commands/Enable.ts var import_cmd_shim = __toESM(require_cmd_shim()); @@ -39475,13 +39492,10 @@ var import_fs5 = __toESM(require("fs")); var import_path5 = __toESM(require("path")); var import_which2 = __toESM(require_lib2()); var EnableCommand = class extends Command { - constructor() { - super(...arguments); - this.installDirectory = options_exports.String(`--install-directory`, { - description: `Where the shims are to be installed` - }); - this.names = options_exports.Rest(); - } + installDirectory = options_exports.String(`--install-directory`, { + description: `Where the shims are to be installed` + }); + names = options_exports.Rest(); async execute() { let installDirectory = this.installDirectory; if (typeof installDirectory === `undefined`) @@ -39524,10 +39538,10 @@ var EnableCommand = class extends Command { }); } }; -EnableCommand.paths = [ +__publicField(EnableCommand, "paths", [ [`enable`] -]; -EnableCommand.usage = Command.Usage({ +]); +__publicField(EnableCommand, "usage", Command.Usage({ description: `Add the Corepack shims to the install directories`, details: ` When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. @@ -39544,7 +39558,7 @@ EnableCommand.usage = Command.Usage({ `Enable the Yarn shim only`, `$0 enable yarn` ]] -}); +})); // sources/commands/InstallGlobal.ts var import_fs8 = __toESM(require("fs")); @@ -39716,19 +39730,16 @@ var BaseCommand = class extends Command { // sources/commands/InstallGlobal.ts var InstallGlobalCommand = class extends BaseCommand { - constructor() { - super(...arguments); - this.global = options_exports.Boolean(`-g,--global`, { - required: true - }); - this.all = options_exports.Boolean(`--all`, false, { - description: `If true, all available default package managers will be installed` - }); - this.cacheOnly = options_exports.Boolean(`--cache-only`, false, { - description: `If true, the package managers will only be cached, not set as new defaults` - }); - this.args = options_exports.Rest(); - } + global = options_exports.Boolean(`-g,--global`, { + required: true + }); + all = options_exports.Boolean(`--all`, false, { + description: `If true, all available default package managers will be installed` + }); + cacheOnly = options_exports.Boolean(`--cache-only`, false, { + description: `If true, the package managers will only be cached, not set as new defaults` + }); + args = options_exports.Rest(); async execute() { if (this.args.length === 0 && !this.all) throw new UsageError(`No package managers specified; use --all to install all available package managers, or specify one or more package managers to proceed`); @@ -39799,10 +39810,10 @@ var InstallGlobalCommand = class extends BaseCommand { } } }; -InstallGlobalCommand.paths = [ +__publicField(InstallGlobalCommand, "paths", [ [`install`] -]; -InstallGlobalCommand.usage = Command.Usage({ +]); +__publicField(InstallGlobalCommand, "usage", Command.Usage({ description: `Install package managers on the system`, details: ` Download the selected package managers and install them on the system. @@ -39816,7 +39827,7 @@ InstallGlobalCommand.usage = Command.Usage({ `Install the latest version of all available package managers, and make them globally available`, `corepack install -g --all` ]] -}); +})); // sources/commands/InstallLocal.ts var InstallLocalCommand = class extends BaseCommand { @@ -39833,10 +39844,10 @@ var InstallLocalCommand = class extends BaseCommand { await this.context.engine.ensurePackageManager(resolved); } }; -InstallLocalCommand.paths = [ +__publicField(InstallLocalCommand, "paths", [ [`install`] -]; -InstallLocalCommand.usage = Command.Usage({ +]); +__publicField(InstallLocalCommand, "usage", Command.Usage({ description: `Install the package manager configured in the local project`, details: ` Download and install the package manager configured in the local project. This command doesn't change the global version used when running the package manager from outside the project (use the \`-g,--global\` flag if you wish to do this). @@ -39845,25 +39856,22 @@ InstallLocalCommand.usage = Command.Usage({ `Install the project's package manager in the cache`, `corepack install` ]] -}); +})); // sources/commands/Pack.ts var import_promises2 = require("fs/promises"); var import_path8 = __toESM(require("path")); var PackCommand = class extends BaseCommand { - constructor() { - super(...arguments); - this.all = options_exports.Boolean(`--all`, false, { - description: `If true, all available default package managers will be installed` - }); - this.json = options_exports.Boolean(`--json`, false, { - description: `If true, the path to the generated tarball will be printed on stdout` - }); - this.output = options_exports.String(`-o,--output`, { - description: `Where the tarball should be generated; by default "corepack.tgz"` - }); - this.patterns = options_exports.Rest(); - } + all = options_exports.Boolean(`--all`, false, { + description: `If true, all available default package managers will be installed` + }); + json = options_exports.Boolean(`--json`, false, { + description: `If true, the path to the generated tarball will be printed on stdout` + }); + output = options_exports.String(`-o,--output`, { + description: `Where the tarball should be generated; by default "corepack.tgz"` + }); + patterns = options_exports.Rest(); async execute() { const descriptors = await this.resolvePatternsToDescriptors({ all: this.all, @@ -39902,10 +39910,10 @@ var PackCommand = class extends BaseCommand { } } }; -PackCommand.paths = [ +__publicField(PackCommand, "paths", [ [`pack`] -]; -PackCommand.usage = Command.Usage({ +]); +__publicField(PackCommand, "usage", Command.Usage({ description: `Store package managers in a tarball`, details: ` Download the selected package managers and store them inside a tarball suitable for use with \`corepack install -g\`. @@ -39920,7 +39928,7 @@ PackCommand.usage = Command.Usage({ `Pack the latest versions of all supported package managers inside a file named everything.tgz`, `corepack pack --all -o everything.tgz` ]] -}); +})); // sources/commands/Up.ts var import_semver5 = __toESM(require_semver2()); @@ -39946,10 +39954,10 @@ var UpCommand = class extends BaseCommand { await this.setLocalPackageManager(packageManagerInfo); } }; -UpCommand.paths = [ +__publicField(UpCommand, "paths", [ [`up`] -]; -UpCommand.usage = Command.Usage({ +]); +__publicField(UpCommand, "usage", Command.Usage({ description: `Update the package manager used in the current project`, details: ` Retrieve the latest available version for the current major release line @@ -39965,14 +39973,11 @@ UpCommand.usage = Command.Usage({ `Configure the project to use the latest Yarn release`, `corepack up` ]] -}); +})); // sources/commands/Use.ts var UseCommand = class extends BaseCommand { - constructor() { - super(...arguments); - this.pattern = options_exports.String(); - } + pattern = options_exports.String(); async execute() { const [descriptor] = await this.resolvePatternsToDescriptors({ all: false, @@ -39987,10 +39992,10 @@ var UseCommand = class extends BaseCommand { await this.setLocalPackageManager(packageManagerInfo); } }; -UseCommand.paths = [ +__publicField(UseCommand, "paths", [ [`use`] -]; -UseCommand.usage = Command.Usage({ +]); +__publicField(UseCommand, "usage", Command.Usage({ description: `Define the package manager to use for the current project`, details: ` When run, this command will retrieve the latest release matching the @@ -40001,19 +40006,16 @@ UseCommand.usage = Command.Usage({ `Configure the project to use the latest Yarn release`, `corepack use 'yarn@*'` ]] -}); +})); // sources/commands/deprecated/Hydrate.ts var import_promises3 = require("fs/promises"); var import_path9 = __toESM(require("path")); var HydrateCommand = class extends Command { - constructor() { - super(...arguments); - this.activate = options_exports.Boolean(`--activate`, false, { - description: `If true, this release will become the default one for this package manager` - }); - this.fileName = options_exports.String(); - } + activate = options_exports.Boolean(`--activate`, false, { + description: `If true, this release will become the default one for this package manager` + }); + fileName = options_exports.String(); async execute() { const installFolder = getInstallFolder(); const fileName = import_path9.default.resolve(this.context.cwd, this.fileName); @@ -40054,31 +40056,28 @@ var HydrateCommand = class extends Command { `); } }; -HydrateCommand.paths = [ +__publicField(HydrateCommand, "paths", [ [`hydrate`] -]; +]); // sources/commands/deprecated/Prepare.ts var import_promises4 = require("fs/promises"); var import_path10 = __toESM(require("path")); var PrepareCommand = class extends Command { - constructor() { - super(...arguments); - this.activate = options_exports.Boolean(`--activate`, false, { - description: `If true, this release will become the default one for this package manager` - }); - this.all = options_exports.Boolean(`--all`, false, { - description: `If true, all available default package managers will be installed` - }); - this.json = options_exports.Boolean(`--json`, false, { - description: `If true, the output will be the path of the generated tarball` - }); - this.output = options_exports.String(`-o,--output`, { - description: `If true, the installed package managers will also be stored in a tarball`, - tolerateBoolean: true - }); - this.specs = options_exports.Rest(); - } + activate = options_exports.Boolean(`--activate`, false, { + description: `If true, this release will become the default one for this package manager` + }); + all = options_exports.Boolean(`--all`, false, { + description: `If true, all available default package managers will be installed` + }); + json = options_exports.Boolean(`--json`, false, { + description: `If true, the output will be the path of the generated tarball` + }); + output = options_exports.String(`-o,--output`, { + description: `If true, the installed package managers will also be stored in a tarball`, + tolerateBoolean: true + }); + specs = options_exports.Rest(); async execute() { if (this.all && this.specs.length > 0) throw new UsageError(`The --all option cannot be used along with an explicit package manager specification`); @@ -40138,9 +40137,9 @@ var PrepareCommand = class extends Command { } } }; -PrepareCommand.paths = [ +__publicField(PrepareCommand, "paths", [ [`prepare`] -]; +]); // sources/miscUtils.ts var Cancellation = class extends Error { @@ -40233,10 +40232,7 @@ async function runMain(argv) { binaryVersion: `corepack/${version}` }); cli.register(class BinaryCommand extends Command { - constructor() { - super(...arguments); - this.proxy = options_exports.Proxy(); - } + proxy = options_exports.Proxy(); async execute() { return executePackageManagerRequest(request, this.proxy, this.context); } diff --git a/deps/corepack/package.json b/deps/corepack/package.json index dc168d9389b1aa..8ffbde7ca15efa 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.20.0", + "version": "0.21.0", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" @@ -10,13 +10,13 @@ "url": "https://github.com/nodejs/corepack.git" }, "engines": { - "node": ">=16.20.0" + "node": ">=18.17.1" }, "exports": { "./package.json": "./package.json" }, "license": "MIT", - "packageManager": "yarn@4.0.0-rc.44+sha224.6526204ca38ed0105e81ba52d83dc0c7b8ee63600a13dc332914fde0", + "packageManager": "yarn@4.0.0-rc.50+sha256.6663791fa05e15176880da500c334caf1699541f834302e6df085d20ef06069d", "devDependencies": { "@babel/core": "^7.14.3", "@babel/plugin-transform-modules-commonjs": "^7.14.0", @@ -52,7 +52,7 @@ }, "scripts": { "build": "rm -rf dist shims && run build:bundle && ts-node ./mkshims.ts", - "build:bundle": "esbuild ./sources/_lib.ts --bundle --platform=node --target=node16.20.0 --external:corepack --outfile='./dist/lib/corepack.cjs' --resolve-extensions='.ts,.mjs,.js'", + "build:bundle": "esbuild ./sources/_lib.ts --bundle --platform=node --target=node18.17.0 --external:corepack --outfile='./dist/lib/corepack.cjs' --resolve-extensions='.ts,.mjs,.js'", "corepack": "ts-node ./sources/_cli.ts", "lint": "eslint .", "prepack": "yarn build", From d1aa62f1f5462443a5123466d49811b592ed275a Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Wed, 11 Oct 2023 12:25:05 -0400 Subject: [PATCH 117/232] fs: add flush option to createWriteStream() This commit adds a 'flush' option to the createWriteStream() family of functions. Refs: https://github.com/nodejs/node/issues/49886 PR-URL: https://github.com/nodejs/node/pull/50093 Reviewed-By: Yagiz Nizipli Reviewed-By: Matteo Collina Reviewed-By: Marco Ippolito --- doc/api/fs.md | 11 +++ lib/fs.js | 1 + lib/internal/fs/promises.js | 1 + lib/internal/fs/streams.js | 28 ++++++- test/parallel/test-fs-write-stream-flush.js | 81 +++++++++++++++++++++ 5 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 test/parallel/test-fs-write-stream-flush.js diff --git a/doc/api/fs.md b/doc/api/fs.md index b15c7be1d1f192..8442fa2a5a18b4 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -318,6 +318,10 @@ fd.createReadStream({ start: 90, end: 99 }); * `options` {Object} @@ -326,6 +330,8 @@ added: v16.11.0 * `emitClose` {boolean} **Default:** `true` * `start` {integer} * `highWaterMark` {number} **Default:** `16384` + * `flush` {boolean} If `true`, the underlying file descriptor is flushed + prior to closing it. **Default:** `false`. * Returns: {fs.WriteStream} `options` may also include a `start` option to allow writing data at some @@ -2514,6 +2520,9 @@ If `options` is a string, then it specifies the encoding. -An import assertion has failed, preventing the specified module to be imported. +An import `type` attribute was provided, but the specified module is of a +different type. @@ -1771,7 +1772,7 @@ added: - v16.14.0 --> -An import assertion is missing, preventing the specified module to be imported. +An import attribute is missing, preventing the specified module to be imported. @@ -1783,7 +1784,17 @@ added: - v16.14.0 --> -An import assertion is not supported by this version of Node.js. +An import attribute is not supported by this version of Node.js. + + + +### `ERR_IMPORT_ATTRIBUTE_UNSUPPORTED` + + + +An import attribute is not supported by this version of Node.js. diff --git a/doc/api/esm.md b/doc/api/esm.md index fa2abac7029b3d..4e09164e2d2390 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -7,6 +7,9 @@ -> Stability: 1 - Experimental +> Stability: 1.1 - Active development + +> This feature was previously named "Import assertions", and using the `assert` +> keyword instead of `with`. Any uses in code of the prior `assert` keyword +> should be updated to use `with` instead. -The [Import Assertions proposal][] adds an inline syntax for module import +The [Import Attributes proposal][] adds an inline syntax for module import statements to pass on more information alongside the module specifier. ```js -import fooData from './foo.json' assert { type: 'json' }; +import fooData from './foo.json' with { type: 'json' }; const { default: barData } = - await import('./bar.json', { assert: { type: 'json' } }); + await import('./bar.json', { with: { type: 'json' } }); ``` -Node.js supports the following `type` values, for which the assertion is +Node.js supports the following `type` values, for which the attribute is mandatory: -| Assertion `type` | Needed for | +| Attribute `type` | Needed for | | ---------------- | ---------------- | | `'json'` | [JSON modules][] | @@ -545,10 +558,10 @@ separate cache. JSON files can be referenced by `import`: ```js -import packageConfig from './package.json' assert { type: 'json' }; +import packageConfig from './package.json' with { type: 'json' }; ``` -The `assert { type: 'json' }` syntax is mandatory; see [Import Assertions][]. +The `with { type: 'json' }` syntax is mandatory; see [Import Attributes][]. The imported JSON only exposes a `default` export. There is no support for named exports. A cache entry is created in the CommonJS cache to avoid duplication. @@ -1055,8 +1068,8 @@ resolution for ESM specifiers is [commonjs-extension-resolution-loader][]. [Determining module system]: packages.md#determining-module-system [Dynamic `import()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import [ES Module Integration Proposal for WebAssembly]: https://github.com/webassembly/esm-integration -[Import Assertions]: #import-assertions -[Import Assertions proposal]: https://github.com/tc39/proposal-import-assertions +[Import Attributes]: #import-attributes +[Import Attributes proposal]: https://github.com/tc39/proposal-import-attributes [JSON modules]: #json-modules [Module customization hooks]: module.md#customization-hooks [Node.js Module Resolution And Loading Algorithm]: #resolution-algorithm-specification diff --git a/doc/api/module.md b/doc/api/module.md index 8bf5c09041a41a..857c02142b199f 100644 --- a/doc/api/module.md +++ b/doc/api/module.md @@ -458,6 +458,11 @@ register('./path-to-my-hooks.js', { + * `linker` {Function} * `specifier` {string} The specifier of the requested module: ```mjs @@ -625,15 +633,14 @@ The identifier of the current module, as set in the constructor. * `referencingModule` {vm.Module} The `Module` object `link()` is called on. * `extra` {Object} - * `assert` {Object} The data from the assertion: - - ```js - import foo from 'foo' assert { name: 'value' }; - // ^^^^^^^^^^^^^^^^^ the assertion + * `attributes` {Object} The data from the attribute: + ```mjs + import foo from 'foo' with { name: 'value' }; + // ^^^^^^^^^^^^^^^^^ the attribute ``` - Per ECMA-262, hosts are expected to ignore assertions that they do not - support, as opposed to, for example, triggering an error if an - unsupported assertion is present. + Per ECMA-262, hosts are expected to trigger an error if an + unsupported attribute is present. + * `assert` {Object} Alias for `extra.attributes`. * Returns: {vm.Module|Promise} * Returns: {Promise} @@ -732,7 +739,7 @@ changes: - v17.0.0 - v16.12.0 pr-url: https://github.com/nodejs/node/pull/40249 - description: Added support for import assertions to the + description: Added support for import attributes to the `importModuleDynamically` parameter. --> @@ -762,7 +769,7 @@ changes: `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. * `specifier` {string} specifier passed to `import()` * `module` {vm.Module} - * `importAssertions` {Object} The `"assert"` value passed to the + * `importAttributes` {Object} The `"with"` value passed to the [`optionsExpression`][] optional parameter, or an empty object if no value was provided. * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is @@ -977,7 +984,7 @@ changes: - v17.0.0 - v16.12.0 pr-url: https://github.com/nodejs/node/pull/40249 - description: Added support for import assertions to the + description: Added support for import attributes to the `importModuleDynamically` parameter. - version: v15.9.0 pr-url: https://github.com/nodejs/node/pull/35431 @@ -1021,7 +1028,7 @@ changes: considered stable. * `specifier` {string} specifier passed to `import()` * `function` {Function} - * `importAssertions` {Object} The `"assert"` value passed to the + * `importAttributes` {Object} The `"with"` value passed to the [`optionsExpression`][] optional parameter, or an empty object if no value was provided. * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is @@ -1207,7 +1214,7 @@ changes: - v17.0.0 - v16.12.0 pr-url: https://github.com/nodejs/node/pull/40249 - description: Added support for import assertions to the + description: Added support for import attributes to the `importModuleDynamically` parameter. - version: v6.3.0 pr-url: https://github.com/nodejs/node/pull/6635 @@ -1245,7 +1252,7 @@ changes: using it in a production environment. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} - * `importAssertions` {Object} The `"assert"` value passed to the + * `importAttributes` {Object} The `"with"` value passed to the [`optionsExpression`][] optional parameter, or an empty object if no value was provided. * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is @@ -1285,7 +1292,7 @@ changes: - v17.0.0 - v16.12.0 pr-url: https://github.com/nodejs/node/pull/40249 - description: Added support for import assertions to the + description: Added support for import attributes to the `importModuleDynamically` parameter. - version: v14.6.0 pr-url: https://github.com/nodejs/node/pull/34023 @@ -1344,7 +1351,7 @@ changes: using it in a production environment. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} - * `importAssertions` {Object} The `"assert"` value passed to the + * `importAttributes` {Object} The `"with"` value passed to the [`optionsExpression`][] optional parameter, or an empty object if no value was provided. * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is @@ -1388,7 +1395,7 @@ changes: - v17.0.0 - v16.12.0 pr-url: https://github.com/nodejs/node/pull/40249 - description: Added support for import assertions to the + description: Added support for import attributes to the `importModuleDynamically` parameter. - version: v6.3.0 pr-url: https://github.com/nodejs/node/pull/6635 @@ -1424,7 +1431,7 @@ changes: using it in a production environment. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} - * `importAssertions` {Object} The `"assert"` value passed to the + * `importAttributes` {Object} The `"with"` value passed to the [`optionsExpression`][] optional parameter, or an empty object if no value was provided. * Returns: {Module Namespace Object|vm.Module} Returning a `vm.Module` is diff --git a/lib/internal/vm/module.js b/lib/internal/vm/module.js index c77ee9b107e0ad..78fe45ff9c8ebb 100644 --- a/lib/internal/vm/module.js +++ b/lib/internal/vm/module.js @@ -304,8 +304,8 @@ class SourceTextModule extends Module { this[kLink] = async (linker) => { this.#statusOverride = 'linking'; - const promises = this[kWrap].link(async (identifier, assert) => { - const module = await linker(identifier, this, { assert }); + const promises = this[kWrap].link(async (identifier, attributes) => { + const module = await linker(identifier, this, { attributes, assert: attributes }); if (module[kWrap] === undefined) { throw new ERR_VM_MODULE_NOT_MODULE(); } diff --git a/test/parallel/test-vm-module-link.js b/test/parallel/test-vm-module-link.js index 16694d5d846075..6b19a4d4916868 100644 --- a/test/parallel/test-vm-module-link.js +++ b/test/parallel/test-vm-module-link.js @@ -1,6 +1,6 @@ 'use strict'; -// Flags: --experimental-vm-modules +// Flags: --experimental-vm-modules --harmony-import-attributes const common = require('../common'); @@ -126,12 +126,14 @@ async function circular2() { async function asserts() { const m = new SourceTextModule(` - import "foo" assert { n1: 'v1', n2: 'v2' }; + import "foo" with { n1: 'v1', n2: 'v2' }; `, { identifier: 'm' }); await m.link((s, r, p) => { assert.strictEqual(s, 'foo'); assert.strictEqual(r.identifier, 'm'); + assert.strictEqual(p.attributes.n1, 'v1'); assert.strictEqual(p.assert.n1, 'v1'); + assert.strictEqual(p.attributes.n2, 'v2'); assert.strictEqual(p.assert.n2, 'v2'); return new SourceTextModule(''); }); From 0ddb87ede356d4cf992093eafe1ac1d54518b412 Mon Sep 17 00:00:00 2001 From: Niklas Mollenhauer Date: Sat, 14 Oct 2023 08:41:59 +0200 Subject: [PATCH 134/232] typings: use `Symbol.dispose` and `Symbol.asyncDispose` in types PR-URL: https://github.com/nodejs/node/pull/50123 Reviewed-By: Antoine du Hamel Reviewed-By: Debadree Chatterjee --- typings/primordials.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typings/primordials.d.ts b/typings/primordials.d.ts index 006ecace1ead1c..ffce093458f2b5 100644 --- a/typings/primordials.d.ts +++ b/typings/primordials.d.ts @@ -427,8 +427,8 @@ declare namespace primordials { export const SymbolFor: typeof Symbol.for export const SymbolKeyFor: typeof Symbol.keyFor export const SymbolAsyncIterator: typeof Symbol.asyncIterator - export const SymbolDispose: symbol // TODO(MoLow): use typeof Symbol.dispose when it's available - export const SymbolAsyncDispose: symbol // TODO(MoLow): use typeof Symbol.asyncDispose when it's available + export const SymbolDispose: typeof Symbol.dispose + export const SymbolAsyncDispose: typeof Symbol.asyncDispose export const SymbolHasInstance: typeof Symbol.hasInstance export const SymbolIsConcatSpreadable: typeof Symbol.isConcatSpreadable export const SymbolIterator: typeof Symbol.iterator From 06aa4b9fe9b6ced043e9dac74dceb1e3891cdcf2 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Sat, 14 Oct 2023 15:35:01 -0400 Subject: [PATCH 135/232] fs: improve error performance of `readdirSync` PR-URL: https://github.com/nodejs/node/pull/50131 Reviewed-By: Matteo Collina Reviewed-By: Geoffrey Booth --- lib/fs.js | 22 +++++++++---------- src/node_file.cc | 29 ++++++++++---------------- test/parallel/test-fs-readdir-types.js | 4 ++-- test/parallel/test-repl-underscore.js | 4 ++-- typings/internalBinding/fs.d.ts | 4 ++-- 5 files changed, 28 insertions(+), 35 deletions(-) diff --git a/lib/fs.js b/lib/fs.js index 72e81de4afa42c..31d8e60c7b674e 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -1408,17 +1408,16 @@ function readdirSyncRecursive(basePath, options) { const readdirResults = []; const pathsQueue = [basePath]; - const ctx = { path: basePath }; function read(path) { - ctx.path = path; const readdirResult = binding.readdir( pathModule.toNamespacedPath(path), encoding, withFileTypes, - undefined, - ctx, ); - handleErrorFromBinding(ctx); + + if (readdirResult === undefined) { + return; + } if (withFileTypes) { // Calling `readdir` with `withFileTypes=true`, the result is an array of arrays. @@ -1517,12 +1516,13 @@ function readdirSync(path, options) { return readdirSyncRecursive(path, options); } - const ctx = { path }; - const result = binding.readdir(pathModule.toNamespacedPath(path), - options.encoding, !!options.withFileTypes, - undefined, ctx); - handleErrorFromBinding(ctx); - return options.withFileTypes ? getDirents(path, result) : result; + const result = binding.readdir( + pathModule.toNamespacedPath(path), + options.encoding, + !!options.withFileTypes, + ); + + return result !== undefined && options.withFileTypes ? getDirents(path, result) : result; } /** diff --git a/src/node_file.cc b/src/node_file.cc index 1cee74e35a87d8..786c113712c56b 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1926,8 +1926,8 @@ static void ReadDir(const FunctionCallbackInfo& args) { bool with_types = args[2]->IsTrue(); - FSReqBase* req_wrap_async = GetReqWrap(args, 3); - if (req_wrap_async != nullptr) { // readdir(path, encoding, withTypes, req) + if (argc > 3) { // readdir(path, encoding, withTypes, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 3); req_wrap_async->set_with_file_types(with_types); FS_ASYNC_TRACE_BEGIN1( UV_FS_SCANDIR, req_wrap_async, "path", TRACE_STR_COPY(*path)) @@ -1940,18 +1940,16 @@ static void ReadDir(const FunctionCallbackInfo& args) { uv_fs_scandir, *path, 0 /*flags*/); - } else { // readdir(path, encoding, withTypes, undefined, ctx) - CHECK_EQ(argc, 5); - FSReqWrapSync req_wrap_sync; + } else { // readdir(path, encoding, withTypes) + FSReqWrapSync req_wrap_sync("scandir", *path); FS_SYNC_TRACE_BEGIN(readdir); - int err = SyncCall(env, args[4], &req_wrap_sync, "scandir", - uv_fs_scandir, *path, 0 /*flags*/); + int err = SyncCallAndThrowOnError( + env, &req_wrap_sync, uv_fs_scandir, *path, 0 /*flags*/); FS_SYNC_TRACE_END(readdir); - if (err < 0) { - return; // syscall failed, no need to continue, error info is in ctx + if (is_uv_error(err)) { + return; } - CHECK_GE(req_wrap_sync.req.result, 0); int r; std::vector> name_v; std::vector> type_v; @@ -1962,12 +1960,8 @@ static void ReadDir(const FunctionCallbackInfo& args) { r = uv_fs_scandir_next(&(req_wrap_sync.req), &ent); if (r == UV_EOF) break; - if (r != 0) { - Local ctx = args[4].As(); - ctx->Set(env->context(), env->errno_string(), - Integer::New(isolate, r)).Check(); - ctx->Set(env->context(), env->syscall_string(), - OneByteString(isolate, "readdir")).Check(); + if (is_uv_error(r)) { + env->ThrowUVException(r, "scandir", nullptr, *path); return; } @@ -1978,8 +1972,7 @@ static void ReadDir(const FunctionCallbackInfo& args) { &error); if (filename.IsEmpty()) { - Local ctx = args[4].As(); - ctx->Set(env->context(), env->error_string(), error).Check(); + isolate->ThrowException(error); return; } diff --git a/test/parallel/test-fs-readdir-types.js b/test/parallel/test-fs-readdir-types.js index 9116a04f44ed70..3cc6b1cceff7fc 100644 --- a/test/parallel/test-fs-readdir-types.js +++ b/test/parallel/test-fs-readdir-types.js @@ -29,7 +29,7 @@ tmpdir.refresh(); // Create the necessary files files.forEach(function(currentFile) { - fs.closeSync(fs.openSync(`${readdirDir}/${currentFile}`, 'w')); + fs.writeFileSync(`${readdirDir}/${currentFile}`, '', 'utf8'); }); @@ -95,7 +95,7 @@ binding.readdir = common.mustCall((path, encoding, types, req, ctx) => { }; oldReaddir(path, encoding, types, req); } else { - const results = oldReaddir(path, encoding, types, req, ctx); + const results = oldReaddir(path, encoding, types); results[1] = results[1].map(() => UNKNOWN); return results; } diff --git a/test/parallel/test-repl-underscore.js b/test/parallel/test-repl-underscore.js index 3abd01ba9d0cbc..0f8103ce4573cd 100644 --- a/test/parallel/test-repl-underscore.js +++ b/test/parallel/test-repl-underscore.js @@ -180,9 +180,9 @@ function testError() { /^Uncaught Error: ENOENT: no such file or directory, scandir '.*nonexistent\?'/, /Object\.readdirSync/, /^ {2}errno: -(2|4058),$/, - " syscall: 'scandir',", " code: 'ENOENT',", - " path: '/nonexistent?'", + " syscall: 'scandir',", + /^ {2}path: '*'/, '}', "'ENOENT'", "'scandir'", diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index 3ef49f4ab0ced7..c4dd973293ab22 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -166,8 +166,8 @@ declare namespace InternalFSBinding { function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: true, req: FSReqCallback<[string[], number[]]>): void; function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: false, req: FSReqCallback): void; function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: boolean, req: undefined, ctx: FSSyncContext): string[] | [string[], number[]]; - function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: true, req: undefined, ctx: FSSyncContext): [string[], number[]]; - function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: false, req: undefined, ctx: FSSyncContext): string[]; + function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: true): [string[], number[]]; + function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: false): string[]; function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: boolean, usePromises: typeof kUsePromises): Promise; function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: true, usePromises: typeof kUsePromises): Promise<[string[], number[]]>; function readdir(path: StringOrBuffer, encoding: unknown, withFileTypes: false, usePromises: typeof kUsePromises): Promise; From 23269717bbf1427a683d04ec13a4120ceecd1e09 Mon Sep 17 00:00:00 2001 From: Rafael Gonzaga Date: Sat, 14 Oct 2023 16:51:30 -0300 Subject: [PATCH 136/232] benchmark: add warmup to accessSync bench PR-URL: https://github.com/nodejs/node/pull/50073 Reviewed-By: Yagiz Nizipli --- benchmark/fs/bench-accessSync.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/benchmark/fs/bench-accessSync.js b/benchmark/fs/bench-accessSync.js index a80504620580ce..bf0718634b1d01 100644 --- a/benchmark/fs/bench-accessSync.js +++ b/benchmark/fs/bench-accessSync.js @@ -13,6 +13,16 @@ const bench = common.createBenchmark(main, { n: [1e5], }); +function runBench(n, path) { + for (let i = 0; i < n; i++) { + try { + fs.accessSync(path); + } catch { + // do nothing + } + } +} + function main({ n, type }) { let path; @@ -29,14 +39,10 @@ function main({ n, type }) { default: new Error('Invalid type'); } + // warmup + runBench(n, path); bench.start(); - for (let i = 0; i < n; i++) { - try { - fs.accessSync(path); - } catch { - // do nothing - } - } + runBench(n, path); bench.end(n); } From e60b3ab31b43568f720a0782a0b823a4c7a09cc5 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sat, 14 Oct 2023 23:50:30 +0200 Subject: [PATCH 137/232] stream: use private symbol for bitmap state PR-URL: https://github.com/nodejs/node/pull/49993 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Matteo Collina Reviewed-By: Yagiz Nizipli Reviewed-By: Raz Luvaton --- lib/internal/streams/readable.js | 45 +++--- lib/internal/streams/writable.js | 257 ++++++++++++++++--------------- 2 files changed, 152 insertions(+), 150 deletions(-) diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index 49df23cba9f4c2..f551053bf7b79c 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -73,6 +73,7 @@ const { const { validateObject } = require('internal/validators'); const kPaused = Symbol('kPaused'); +const kState = Symbol('kState'); const { StringDecoder } = require('string_decoder'); const from = require('internal/streams/from'); @@ -107,10 +108,10 @@ const kDataEmitted = 1 << 18; function makeBitMapDescriptor(bit) { return { enumerable: false, - get() { return (this.state & bit) !== 0; }, + get() { return (this[kState] & bit) !== 0; }, set(value) { - if (value) this.state |= bit; - else this.state &= ~bit; + if (value) this[kState] |= bit; + else this[kState] &= ~bit; }, }; } @@ -163,13 +164,13 @@ function ReadableState(options, stream, isDuplex) { // Bit map field to store ReadableState more effciently with 1 bit per field // instead of a V8 slot per field. - this.state = kEmitClose | kAutoDestroy | kConstructed | kSync; + this[kState] = kEmitClose | kAutoDestroy | kConstructed | kSync; // Object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away. - if (options && options.objectMode) this.state |= kObjectMode; + if (options && options.objectMode) this[kState] |= kObjectMode; if (isDuplex && options && options.readableObjectMode) - this.state |= kObjectMode; + this[kState] |= kObjectMode; // The point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" @@ -188,10 +189,10 @@ function ReadableState(options, stream, isDuplex) { this[kPaused] = null; // Should close be emitted on destroy. Defaults to true. - if (options && options.emitClose === false) this.state &= ~kEmitClose; + if (options && options.emitClose === false) this[kState] &= ~kEmitClose; // Should .destroy() be called after 'end' (and potentially 'finish'). - if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy; + if (options && options.autoDestroy === false) this[kState] &= ~kAutoDestroy; // Indicates whether the stream has errored. When true no further @@ -296,7 +297,7 @@ function readableAddChunk(stream, chunk, encoding, addToFront) { const state = stream._readableState; let err; - if ((state.state & kObjectMode) === 0) { + if ((state[kState] & kObjectMode) === 0) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; if (state.encoding !== encoding) { @@ -323,11 +324,11 @@ function readableAddChunk(stream, chunk, encoding, addToFront) { if (err) { errorOrDestroy(stream, err); } else if (chunk === null) { - state.state &= ~kReading; + state[kState] &= ~kReading; onEofChunk(stream, state); - } else if (((state.state & kObjectMode) !== 0) || (chunk && chunk.length > 0)) { + } else if (((state[kState] & kObjectMode) !== 0) || (chunk && chunk.length > 0)) { if (addToFront) { - if ((state.state & kEndEmitted) !== 0) + if ((state[kState] & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); else if (state.destroyed || state.errored) return false; @@ -338,7 +339,7 @@ function readableAddChunk(stream, chunk, encoding, addToFront) { } else if (state.destroyed || state.errored) { return false; } else { - state.state &= ~kReading; + state[kState] &= ~kReading; if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) @@ -350,7 +351,7 @@ function readableAddChunk(stream, chunk, encoding, addToFront) { } } } else if (!addToFront) { - state.state &= ~kReading; + state[kState] &= ~kReading; maybeReadMore(stream, state); } @@ -366,7 +367,7 @@ function addChunk(stream, state, chunk, addToFront) { stream.listenerCount('data') > 0) { // Use the guard to avoid creating `Set()` repeatedly // when we have multiple pipes. - if ((state.state & kMultiAwaitDrain) !== 0) { + if ((state[kState] & kMultiAwaitDrain) !== 0) { state.awaitDrainWriters.clear(); } else { state.awaitDrainWriters = null; @@ -382,7 +383,7 @@ function addChunk(stream, state, chunk, addToFront) { else state.buffer.push(chunk); - if ((state.state & kNeedReadable) !== 0) + if ((state[kState] & kNeedReadable) !== 0) emitReadable(stream); } maybeReadMore(stream, state); @@ -437,7 +438,7 @@ function computeNewHighWaterMark(n) { function howMuchToRead(n, state) { if (n <= 0 || (state.length === 0 && state.ended)) return 0; - if ((state.state & kObjectMode) !== 0) + if ((state[kState] & kObjectMode) !== 0) return 1; if (NumberIsNaN(n)) { // Only flow one buffer at a time. @@ -468,7 +469,7 @@ Readable.prototype.read = function(n) { state.highWaterMark = computeNewHighWaterMark(n); if (n !== 0) - state.state &= ~kEmittedReadable; + state[kState] &= ~kEmittedReadable; // If we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger @@ -519,7 +520,7 @@ Readable.prototype.read = function(n) { // 3. Actually pull the requested chunks out of the buffer and return. // if we need a readable event, then we need to do some reading. - let doRead = (state.state & kNeedReadable) !== 0; + let doRead = (state[kState] & kNeedReadable) !== 0; debug('need readable', doRead); // If we currently have less than the highWaterMark, then also read some. @@ -537,10 +538,10 @@ Readable.prototype.read = function(n) { debug('reading, ended or constructing', doRead); } else if (doRead) { debug('do read'); - state.state |= kReading | kSync; + state[kState] |= kReading | kSync; // If the length is currently zero, then we *need* a readable event. if (state.length === 0) - state.state |= kNeedReadable; + state[kState] |= kNeedReadable; // Call internal read method try { @@ -548,7 +549,7 @@ Readable.prototype.read = function(n) { } catch (err) { errorOrDestroy(this, err); } - state.state &= ~kSync; + state[kState] &= ~kSync; // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index cd191fb70aa803..b8f8b72ce8d113 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -78,6 +78,7 @@ const kDefaultEncodingValue = Symbol('kDefaultEncodingValue'); const kWriteCbValue = Symbol('kWriteCbValue'); const kAfterWriteTickInfoValue = Symbol('kAfterWriteTickInfoValue'); const kBufferedValue = Symbol('kBufferedValue'); +const kState = Symbol('kState'); const kObjectMode = 1 << 0; const kEnded = 1 << 1; @@ -115,10 +116,10 @@ const kBuffered = 1 << 30; function makeBitMapDescriptor(bit) { return { enumerable: false, - get() { return (this.state & bit) !== 0; }, + get() { return (this[kState] & bit) !== 0; }, set(value) { - if (value) this.state |= bit; - else this.state &= ~bit; + if (value) this[kState] |= bit; + else this[kState] &= ~bit; }, }; } @@ -200,13 +201,13 @@ ObjectDefineProperties(WritableState.prototype, { errored: { __proto__: null, enumerable: false, - get() { return (this.state & kErrored) !== 0 ? this[kErroredValue] : null; }, + get() { return (this[kState] & kErrored) !== 0 ? this[kErroredValue] : null; }, set(value) { if (value) { this[kErroredValue] = value; - this.state |= kErrored; + this[kState] |= kErrored; } else { - this.state &= ~kErrored; + this[kState] &= ~kErrored; } }, }, @@ -214,15 +215,15 @@ ObjectDefineProperties(WritableState.prototype, { writable: { __proto__: null, enumerable: false, - get() { return (this.state & kHasWritable) !== 0 ? (this.state & kWritable) !== 0 : undefined; }, + get() { return (this[kState] & kHasWritable) !== 0 ? (this[kState] & kWritable) !== 0 : undefined; }, set(value) { if (value == null) { - this.state &= ~(kHasWritable | kWritable); + this[kState] &= ~(kHasWritable | kWritable); } else if (value) { - this.state |= (kHasWritable | kWritable); + this[kState] |= (kHasWritable | kWritable); } else { - this.state |= kHasWritable; - this.state &= ~kWritable; + this[kState] |= kHasWritable; + this[kState] &= ~kWritable; } }, }, @@ -230,12 +231,12 @@ ObjectDefineProperties(WritableState.prototype, { defaultEncoding: { __proto__: null, enumerable: false, - get() { return (this.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : this[kDefaultEncodingValue]; }, + get() { return (this[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : this[kDefaultEncodingValue]; }, set(value) { if (value === 'utf8' || value === 'utf-8') { - this.state |= kDefaultUTF8Encoding; + this[kState] |= kDefaultUTF8Encoding; } else { - this.state &= ~kDefaultUTF8Encoding; + this[kState] &= ~kDefaultUTF8Encoding; this[kDefaultEncodingValue] = value; } }, @@ -245,13 +246,13 @@ ObjectDefineProperties(WritableState.prototype, { writecb: { __proto__: null, enumerable: false, - get() { return (this.state & kWriteCb) !== 0 ? this[kWriteCbValue] : nop; }, + get() { return (this[kState] & kWriteCb) !== 0 ? this[kWriteCbValue] : nop; }, set(value) { if (value) { this[kWriteCbValue] = value; - this.state |= kWriteCb; + this[kState] |= kWriteCb; } else { - this.state &= ~kWriteCb; + this[kState] &= ~kWriteCb; } }, }, @@ -261,13 +262,13 @@ ObjectDefineProperties(WritableState.prototype, { afterWriteTickInfo: { __proto__: null, enumerable: false, - get() { return (this.state & kAfterWriteTickInfo) !== 0 ? this[kAfterWriteTickInfoValue] : null; }, + get() { return (this[kState] & kAfterWriteTickInfo) !== 0 ? this[kAfterWriteTickInfoValue] : null; }, set(value) { if (value) { this[kAfterWriteTickInfoValue] = value; - this.state |= kAfterWriteTickInfo; + this[kState] |= kAfterWriteTickInfo; } else { - this.state &= ~kAfterWriteTickInfo; + this[kState] &= ~kAfterWriteTickInfo; } }, }, @@ -275,13 +276,13 @@ ObjectDefineProperties(WritableState.prototype, { buffered: { __proto__: null, enumerable: false, - get() { return (this.state & kBuffered) !== 0 ? this[kBufferedValue] : []; }, + get() { return (this[kState] & kBuffered) !== 0 ? this[kBufferedValue] : []; }, set(value) { this[kBufferedValue] = value; if (value) { - this.state |= kBuffered; + this[kState] |= kBuffered; } else { - this.state &= ~kBuffered; + this[kState] &= ~kBuffered; } }, }, @@ -299,10 +300,10 @@ function WritableState(options, stream, isDuplex) { // Bit map field to store WritableState more effciently with 1 bit per field // instead of a V8 slot per field. - this.state = kSync | kConstructed | kEmitClose | kAutoDestroy; + this[kState] = kSync | kConstructed | kEmitClose | kAutoDestroy; - if (options && options.objectMode) this.state |= kObjectMode; - if (isDuplex && options && options.writableObjectMode) this.state |= kObjectMode; + if (options && options.objectMode) this[kState] |= kObjectMode; + if (isDuplex && options && options.writableObjectMode) this[kState] |= kObjectMode; // The point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if @@ -311,22 +312,22 @@ function WritableState(options, stream, isDuplex) { getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex) : getDefaultHighWaterMark(false); - if (!options || options.decodeStrings !== false) this.state |= kDecodeStrings; + if (!options || options.decodeStrings !== false) this[kState] |= kDecodeStrings; // Should close be emitted on destroy. Defaults to true. - if (options && options.emitClose === false) this.state &= ~kEmitClose; + if (options && options.emitClose === false) this[kState] &= ~kEmitClose; // Should .destroy() be called after 'end' (and potentially 'finish'). - if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy; + if (options && options.autoDestroy === false) this[kState] &= ~kAutoDestroy; // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. const defaultEncoding = options?.defaultEncoding; if (defaultEncoding == null || defaultEncoding === 'utf8' || defaultEncoding === 'utf-8') { - this.state |= kDefaultUTF8Encoding; + this[kState] |= kDefaultUTF8Encoding; } else if (Buffer.isEncoding(defaultEncoding)) { - this.state &= ~kDefaultUTF8Encoding; + this[kState] &= ~kDefaultUTF8Encoding; this[kDefaultEncodingValue] = defaultEncoding; } else { throw new ERR_UNKNOWN_ENCODING(defaultEncoding); @@ -356,18 +357,18 @@ function WritableState(options, stream, isDuplex) { function resetBuffer(state) { state[kBufferedValue] = null; state.bufferedIndex = 0; - state.state |= kAllBuffers | kAllNoop; - state.state &= ~kBuffered; + state[kState] |= kAllBuffers | kAllNoop; + state[kState] &= ~kBuffered; } WritableState.prototype.getBuffer = function getBuffer() { - return (this.state & kBuffered) === 0 ? [] : ArrayPrototypeSlice(this.buffered, this.bufferedIndex); + return (this[kState] & kBuffered) === 0 ? [] : ArrayPrototypeSlice(this.buffered, this.bufferedIndex); }; ObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', { __proto__: null, get() { - return (this.state & kBuffered) === 0 ? 0 : this[kBufferedValue].length - this.bufferedIndex; + return (this[kState] & kBuffered) === 0 ? 0 : this[kBufferedValue].length - this.bufferedIndex; }, }); @@ -414,11 +415,11 @@ function Writable(options) { destroyImpl.construct(this, () => { const state = this._writableState; - if ((state.state & kWriting) === 0) { + if ((state[kState] & kWriting) === 0) { clearBuffer(this, state); } - if ((state.state & kEnding) !== 0) { + if ((state[kState] & kEnding) !== 0) { finishMaybe(this, state); } }); @@ -444,10 +445,10 @@ function _write(stream, chunk, encoding, cb) { if (typeof encoding === 'function') { cb = encoding; - encoding = (state.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; + encoding = (state[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; } else { if (!encoding) - encoding = (state.state & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; + encoding = (state[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : state.defaultEncoding; else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); if (typeof cb !== 'function') @@ -456,9 +457,9 @@ function _write(stream, chunk, encoding, cb) { if (chunk === null) { throw new ERR_STREAM_NULL_VALUES(); - } else if ((state.state & kObjectMode) === 0) { + } else if ((state[kState] & kObjectMode) === 0) { if (typeof chunk === 'string') { - if ((state.state & kDecodeStrings) !== 0) { + if ((state[kState] & kDecodeStrings) !== 0) { chunk = Buffer.from(chunk, encoding); encoding = 'buffer'; } @@ -474,9 +475,9 @@ function _write(stream, chunk, encoding, cb) { } let err; - if ((state.state & kEnding) !== 0) { + if ((state[kState] & kEnding) !== 0) { err = new ERR_STREAM_WRITE_AFTER_END(); - } else if ((state.state & kDestroyed) !== 0) { + } else if ((state[kState] & kDestroyed) !== 0) { err = new ERR_STREAM_DESTROYED('write'); } @@ -496,7 +497,7 @@ Writable.prototype.write = function(chunk, encoding, cb) { Writable.prototype.cork = function() { const state = this._writableState; - state.state |= kCorked; + state[kState] |= kCorked; state.corked++; }; @@ -507,10 +508,10 @@ Writable.prototype.uncork = function() { state.corked--; if (!state.corked) { - state.state &= ~kCorked; + state[kState] &= ~kCorked; } - if ((state.state & kWriting) === 0) + if ((state[kState] & kWriting) === 0) clearBuffer(this, state); } }; @@ -529,42 +530,42 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, chunk, encoding, callback) { - const len = (state.state & kObjectMode) !== 0 ? 1 : chunk.length; + const len = (state[kState] & kObjectMode) !== 0 ? 1 : chunk.length; state.length += len; - if ((state.state & (kWriting | kErrored | kCorked | kConstructed)) !== kConstructed) { - if ((state.state & kBuffered) === 0) { - state.state |= kBuffered; + if ((state[kState] & (kWriting | kErrored | kCorked | kConstructed)) !== kConstructed) { + if ((state[kState] & kBuffered) === 0) { + state[kState] |= kBuffered; state[kBufferedValue] = []; } state[kBufferedValue].push({ chunk, encoding, callback }); - if ((state.state & kAllBuffers) !== 0 && encoding !== 'buffer') { - state.state &= ~kAllBuffers; + if ((state[kState] & kAllBuffers) !== 0 && encoding !== 'buffer') { + state[kState] &= ~kAllBuffers; } - if ((state.state & kAllNoop) !== 0 && callback !== nop) { - state.state &= ~kAllNoop; + if ((state[kState] & kAllNoop) !== 0 && callback !== nop) { + state[kState] &= ~kAllNoop; } } else { state.writelen = len; if (callback !== nop) { state.writecb = callback; } - state.state |= kWriting | kSync | kExpectWriteCb; + state[kState] |= kWriting | kSync | kExpectWriteCb; stream._write(chunk, encoding, state.onwrite); - state.state &= ~kSync; + state[kState] &= ~kSync; } const ret = state.length < state.highWaterMark; if (!ret) { - state.state |= kNeedDrain; + state[kState] |= kNeedDrain; } // Return false if errored or destroyed in order to break // any synchronous while(stream.write(data)) loops. - return ret && (state.state & (kDestroyed | kErrored)) === 0; + return ret && (state[kState] & (kDestroyed | kErrored)) === 0; } function doWrite(stream, state, writev, len, chunk, encoding, cb) { @@ -572,14 +573,14 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { if (cb !== nop) { state.writecb = cb; } - state.state |= kWriting | kSync | kExpectWriteCb; - if ((state.state & kDestroyed) !== 0) + state[kState] |= kWriting | kSync | kExpectWriteCb; + if ((state[kState] & kDestroyed) !== 0) state.onwrite(new ERR_STREAM_DESTROYED('write')); else if (writev) stream._writev(chunk, state.onwrite); else stream._write(chunk, encoding, state.onwrite); - state.state &= ~kSync; + state[kState] &= ~kSync; } function onwriteError(stream, state, er, cb) { @@ -598,15 +599,15 @@ function onwriteError(stream, state, er, cb) { function onwrite(stream, er) { const state = stream._writableState; - if ((state.state & kExpectWriteCb) === 0) { + if ((state[kState] & kExpectWriteCb) === 0) { errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK()); return; } - const sync = (state.state & kSync) !== 0; - const cb = (state.state & kWriteCb) !== 0 ? state[kWriteCbValue] : nop; + const sync = (state[kState] & kSync) !== 0; + const cb = (state[kState] & kWriteCb) !== 0 ? state[kWriteCbValue] : nop; - state.state &= ~(kWriting | kExpectWriteCb | kWriteCb); + state[kState] &= ~(kWriting | kExpectWriteCb | kWriteCb); state.length -= state.writelen; state.writelen = 0; @@ -614,9 +615,9 @@ function onwrite(stream, er) { // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364 er.stack; // eslint-disable-line no-unused-expressions - if ((state.state & kErrored) === 0) { + if ((state[kState] & kErrored) === 0) { state[kErroredValue] = er; - state.state |= kErrored; + state[kState] |= kErrored; } // In case of duplex streams we need to notify the readable side of the @@ -631,38 +632,38 @@ function onwrite(stream, er) { onwriteError(stream, state, er, cb); } } else { - if ((state.state & kBuffered) !== 0) { + if ((state[kState] & kBuffered) !== 0) { clearBuffer(stream, state); } if (sync) { - const needDrain = (state.state & kNeedDrain) !== 0 && state.length === 0; - const needTick = needDrain || (state.state & kDestroyed !== 0) || cb !== nop; + const needDrain = (state[kState] & kNeedDrain) !== 0 && state.length === 0; + const needTick = needDrain || (state[kState] & kDestroyed !== 0) || cb !== nop; // It is a common case that the callback passed to .write() is always // the same. In that case, we do not schedule a new nextTick(), but // rather just increase a counter, to improve performance and avoid // memory allocations. if (cb === nop) { - if ((state.state & kAfterWritePending) === 0 && needTick) { + if ((state[kState] & kAfterWritePending) === 0 && needTick) { process.nextTick(afterWrite, stream, state, 1, cb); - state.state |= kAfterWritePending; + state[kState] |= kAfterWritePending; } else { state.pendingcb--; - if ((state.state & kEnding) !== 0) { + if ((state[kState] & kEnding) !== 0) { finishMaybe(stream, state, true); } } - } else if ((state.state & kAfterWriteTickInfo) !== 0 && + } else if ((state[kState] & kAfterWriteTickInfo) !== 0 && state[kAfterWriteTickInfoValue].cb === cb) { state[kAfterWriteTickInfoValue].count++; } else if (needTick) { state[kAfterWriteTickInfoValue] = { count: 1, cb, stream, state }; process.nextTick(afterWriteTick, state[kAfterWriteTickInfoValue]); - state.state |= (kAfterWritePending | kAfterWriteTickInfo); + state[kState] |= (kAfterWritePending | kAfterWriteTickInfo); } else { state.pendingcb--; - if ((state.state & kEnding) !== 0) { + if ((state[kState] & kEnding) !== 0) { finishMaybe(stream, state, true); } } @@ -673,17 +674,17 @@ function onwrite(stream, er) { } function afterWriteTick({ stream, state, count, cb }) { - state.state &= ~kAfterWriteTickInfo; + state[kState] &= ~kAfterWriteTickInfo; state[kAfterWriteTickInfoValue] = null; return afterWrite(stream, state, count, cb); } function afterWrite(stream, state, count, cb) { - state.state &= ~kAfterWritePending; + state[kState] &= ~kAfterWritePending; - const needDrain = (state.state & (kEnding | kNeedDrain | kDestroyed)) === kNeedDrain && state.length === 0; + const needDrain = (state[kState] & (kEnding | kNeedDrain | kDestroyed)) === kNeedDrain && state.length === 0; if (needDrain) { - state.state &= ~kNeedDrain; + state[kState] &= ~kNeedDrain; stream.emit('drain'); } @@ -692,25 +693,25 @@ function afterWrite(stream, state, count, cb) { cb(null); } - if ((state.state & kDestroyed) !== 0) { + if ((state[kState] & kDestroyed) !== 0) { errorBuffer(state); } - if ((state.state & kEnding) !== 0) { + if ((state[kState] & kEnding) !== 0) { finishMaybe(stream, state, true); } } // If there's something in the buffer waiting, then invoke callbacks. function errorBuffer(state) { - if ((state.state & kWriting) !== 0) { + if ((state[kState] & kWriting) !== 0) { return; } - if ((state.state & kBuffered) !== 0) { + if ((state[kState] & kBuffered) !== 0) { for (let n = state.bufferedIndex; n < state.buffered.length; ++n) { const { chunk, callback } = state[kBufferedValue][n]; - const len = (state.state & kObjectMode) !== 0 ? 1 : chunk.length; + const len = (state[kState] & kObjectMode) !== 0 ? 1 : chunk.length; state.length -= len; callback(state.errored ?? new ERR_STREAM_DESTROYED('write')); } @@ -724,11 +725,11 @@ function errorBuffer(state) { // If there's something in the buffer waiting, then process it. function clearBuffer(stream, state) { - if ((state.state & (kDestroyed | kBufferProcessing | kCorked | kBuffered)) !== kBuffered) { + if ((state[kState] & (kDestroyed | kBufferProcessing | kCorked | kBuffered)) !== kBuffered) { return; } - const objectMode = (state.state & kObjectMode) !== 0; + const objectMode = (state[kState] & kObjectMode) !== 0; const { [kBufferedValue]: buffered, bufferedIndex } = state; const bufferedLength = buffered.length - bufferedIndex; @@ -738,20 +739,20 @@ function clearBuffer(stream, state) { let i = bufferedIndex; - state.state |= kBufferProcessing; + state[kState] |= kBufferProcessing; if (bufferedLength > 1 && stream._writev) { state.pendingcb -= bufferedLength - 1; - const callback = (state.state & kAllNoop) !== 0 ? nop : (err) => { + const callback = (state[kState] & kAllNoop) !== 0 ? nop : (err) => { for (let n = i; n < buffered.length; ++n) { buffered[n].callback(err); } }; // Make a copy of `buffered` if it's going to be used by `callback` above, // since `doWrite` will mutate the array. - const chunks = (state.state & kAllNoop) !== 0 && i === 0 ? + const chunks = (state[kState] & kAllNoop) !== 0 && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i); - chunks.allBuffers = (state.state & kAllBuffers) !== 0; + chunks.allBuffers = (state[kState] & kAllBuffers) !== 0; doWrite(stream, state, true, state.length, chunks, '', callback); @@ -762,7 +763,7 @@ function clearBuffer(stream, state) { buffered[i++] = null; const len = objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, callback); - } while (i < buffered.length && (state.state & kWriting) === 0); + } while (i < buffered.length && (state[kState] & kWriting) === 0); if (i === buffered.length) { resetBuffer(state); @@ -773,7 +774,7 @@ function clearBuffer(stream, state) { state.bufferedIndex = i; } } - state.state &= ~kBufferProcessing; + state[kState] &= ~kBufferProcessing; } Writable.prototype._write = function(chunk, encoding, cb) { @@ -808,38 +809,38 @@ Writable.prototype.end = function(chunk, encoding, cb) { } // .end() fully uncorks. - if ((state.state & kCorked) !== 0) { + if ((state[kState] & kCorked) !== 0) { state.corked = 1; this.uncork(); } if (err) { // Do nothing... - } else if ((state.state & (kEnding | kErrored)) === 0) { + } else if ((state[kState] & (kEnding | kErrored)) === 0) { // This is forgiving in terms of unnecessary calls to end() and can hide // logic errors. However, usually such errors are harmless and causing a // hard error can be disproportionately destructive. It is not always // trivial for the user to determine whether end() needs to be called // or not. - state.state |= kEnding; + state[kState] |= kEnding; finishMaybe(this, state, true); - state.state |= kEnded; - } else if ((state.state & kFinished) !== 0) { + state[kState] |= kEnded; + } else if ((state[kState] & kFinished) !== 0) { err = new ERR_STREAM_ALREADY_FINISHED('end'); - } else if ((state.state & kDestroyed) !== 0) { + } else if ((state[kState] & kDestroyed) !== 0) { err = new ERR_STREAM_DESTROYED('end'); } if (typeof cb === 'function') { if (err) { process.nextTick(cb, err); - } else if ((state.state & kErrored) !== 0) { + } else if ((state[kState] & kErrored) !== 0) { process.nextTick(cb, state[kErroredValue]); - } else if ((state.state & kFinished) !== 0) { + } else if ((state[kState] & kFinished) !== 0) { process.nextTick(cb, null); } else { - state.state |= kOnFinished; + state[kState] |= kOnFinished; state[kOnFinishedValue] ??= []; state[kOnFinishedValue].push(cb); } @@ -851,7 +852,7 @@ Writable.prototype.end = function(chunk, encoding, cb) { function needFinish(state) { return ( // State is ended && constructed but not destroyed, finished, writing, errorEmitted or closedEmitted - (state.state & ( + (state[kState] & ( kEnding | kDestroyed | kConstructed | @@ -877,9 +878,9 @@ function callFinal(stream, state) { state.pendingcb--; if (err) { callFinishedCallbacks(state, err); - errorOrDestroy(stream, err, (state.state & kSync) !== 0); + errorOrDestroy(stream, err, (state[kState] & kSync) !== 0); } else if (needFinish(state)) { - state.state |= kPrefinished; + state[kState] |= kPrefinished; stream.emit('prefinish'); // Backwards compat. Don't check state.sync here. // Some streams assume 'finish' will be emitted @@ -889,7 +890,7 @@ function callFinal(stream, state) { } } - state.state |= kSync; + state[kState] |= kSync; state.pendingcb++; try { @@ -898,16 +899,16 @@ function callFinal(stream, state) { onFinish(err); } - state.state &= ~kSync; + state[kState] &= ~kSync; } function prefinish(stream, state) { - if ((state.state & (kPrefinished | kFinalCalled)) === 0) { - if (typeof stream._final === 'function' && (state.state & kDestroyed) === 0) { - state.state |= kFinalCalled; + if ((state[kState] & (kPrefinished | kFinalCalled)) === 0) { + if (typeof stream._final === 'function' && (state[kState] & kDestroyed) === 0) { + state[kState] |= kFinalCalled; callFinal(stream, state); } else { - state.state |= kPrefinished; + state[kState] |= kPrefinished; stream.emit('prefinish'); } } @@ -936,13 +937,13 @@ function finishMaybe(stream, state, sync) { function finish(stream, state) { state.pendingcb--; - state.state |= kFinished; + state[kState] |= kFinished; callFinishedCallbacks(state, null); stream.emit('finish'); - if ((state.state & kAutoDestroy) !== 0) { + if ((state[kState] & kAutoDestroy) !== 0) { // In case of duplex streams we need a way to detect // if the readable side is ready for autoDestroy as well. const rState = stream._readableState; @@ -959,13 +960,13 @@ function finish(stream, state) { } function callFinishedCallbacks(state, err) { - if ((state.state & kOnFinished) === 0) { + if ((state[kState] & kOnFinished) === 0) { return; } const onfinishCallbacks = state[kOnFinishedValue]; state[kOnFinishedValue] = null; - state.state &= ~kOnFinished; + state[kState] &= ~kOnFinished; for (let i = 0; i < onfinishCallbacks.length; i++) { onfinishCallbacks[i](err); } @@ -975,21 +976,21 @@ ObjectDefineProperties(Writable.prototype, { closed: { __proto__: null, get() { - return this._writableState ? (this._writableState.state & kClosed) !== 0 : false; + return this._writableState ? (this._writableState[kState] & kClosed) !== 0 : false; }, }, destroyed: { __proto__: null, get() { - return this._writableState ? (this._writableState.state & kDestroyed) !== 0 : false; + return this._writableState ? (this._writableState[kState] & kDestroyed) !== 0 : false; }, set(value) { // Backward compatibility, the user is explicitly managing destroyed. if (!this._writableState) return; - if (value) this._writableState.state |= kDestroyed; - else this._writableState.state &= ~kDestroyed; + if (value) this._writableState[kState] |= kDestroyed; + else this._writableState[kState] &= ~kDestroyed; }, }, @@ -1002,7 +1003,7 @@ ObjectDefineProperties(Writable.prototype, { // Compat. The user might manually disable writable side through // deprecated setter. return !!w && w.writable !== false && !w.errored && - (w.state & (kEnding | kEnded | kDestroyed)) === 0; + (w[kState] & (kEnding | kEnded | kDestroyed)) === 0; }, set(val) { // Backwards compatible. @@ -1016,7 +1017,7 @@ ObjectDefineProperties(Writable.prototype, { __proto__: null, get() { const state = this._writableState; - return state ? (state.state & kFinished) !== 0 : false; + return state ? (state[kState] & kFinished) !== 0 : false; }, }, @@ -1024,7 +1025,7 @@ ObjectDefineProperties(Writable.prototype, { __proto__: null, get() { const state = this._writableState; - return state ? (state.state & kObjectMode) !== 0 : false; + return state ? (state[kState] & kObjectMode) !== 0 : false; }, }, @@ -1040,7 +1041,7 @@ ObjectDefineProperties(Writable.prototype, { __proto__: null, get() { const state = this._writableState; - return state ? (state.state & kEnding) !== 0 : false; + return state ? (state[kState] & kEnding) !== 0 : false; }, }, @@ -1048,7 +1049,7 @@ ObjectDefineProperties(Writable.prototype, { __proto__: null, get() { const state = this._writableState; - return state ? (state.state & (kDestroyed | kEnding | kNeedDrain)) === kNeedDrain : false; + return state ? (state[kState] & (kDestroyed | kEnding | kNeedDrain)) === kNeedDrain : false; }, }, @@ -1090,9 +1091,9 @@ ObjectDefineProperties(Writable.prototype, { get: function() { const state = this._writableState; return ( - (state.state & (kHasWritable | kWritable)) !== kHasWritable && - (state.state & (kDestroyed | kErrored)) !== 0 && - (state.state & kFinished) === 0 + (state[kState] & (kHasWritable | kWritable)) !== kHasWritable && + (state[kState] & (kDestroyed | kErrored)) !== 0 && + (state[kState] & kFinished) === 0 ); }, }, @@ -1103,7 +1104,7 @@ Writable.prototype.destroy = function(err, cb) { const state = this._writableState; // Invoke pending callbacks. - if ((state.state & (kBuffered | kOnFinished | kDestroyed)) !== kDestroyed) { + if ((state[kState] & (kBuffered | kOnFinished | kDestroyed)) !== kDestroyed) { process.nextTick(errorBuffer, state); } From c25716be8b6dd5ef38bc937669d3e8a3257cfdff Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Sun, 15 Oct 2023 08:50:31 +0200 Subject: [PATCH 138/232] os: cache homedir, remove getCheckedFunction PR-URL: https://github.com/nodejs/node/pull/50037 Reviewed-By: Yagiz Nizipli --- benchmark/os/homedir.js | 31 +++++++++++++++++++++++++++++++ benchmark/os/hostname.js | 31 +++++++++++++++++++++++++++++++ benchmark/os/uptime.js | 31 +++++++++++++++++++++++++++++++ lib/os.js | 4 ++-- 4 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 benchmark/os/homedir.js create mode 100644 benchmark/os/hostname.js create mode 100644 benchmark/os/uptime.js diff --git a/benchmark/os/homedir.js b/benchmark/os/homedir.js new file mode 100644 index 00000000000000..d48f99dba18a2b --- /dev/null +++ b/benchmark/os/homedir.js @@ -0,0 +1,31 @@ +'use strict'; + +const common = require('../common.js'); +const homedir = require('os').homedir; +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e6], +}); + +function main({ n }) { + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(homedir()); + } + + bench.start(); + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = homedir(); + } + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'string'); + } +} diff --git a/benchmark/os/hostname.js b/benchmark/os/hostname.js new file mode 100644 index 00000000000000..9436f23af98c7a --- /dev/null +++ b/benchmark/os/hostname.js @@ -0,0 +1,31 @@ +'use strict'; + +const common = require('../common.js'); +const hostname = require('os').hostname; +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e6], +}); + +function main({ n }) { + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(hostname()); + } + + bench.start(); + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = hostname(); + } + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'string'); + } +} diff --git a/benchmark/os/uptime.js b/benchmark/os/uptime.js new file mode 100644 index 00000000000000..2f25dfe670b722 --- /dev/null +++ b/benchmark/os/uptime.js @@ -0,0 +1,31 @@ +'use strict'; + +const common = require('../common.js'); +const uptime = require('os').uptime; +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e5], +}); + +function main({ n }) { + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(uptime()); + } + + bench.start(); + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = uptime(); + } + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'number'); + } +} diff --git a/lib/os.js b/lib/os.js index 34391697b5891c..1ad17c635182d4 100644 --- a/lib/os.js +++ b/lib/os.js @@ -61,9 +61,9 @@ const { } = internalBinding('os'); function getCheckedFunction(fn) { - return hideStackFrames(function checkError(...args) { + return hideStackFrames(function checkError() { const ctx = {}; - const ret = fn(...args, ctx); + const ret = fn(ctx); if (ret === undefined) { throw new ERR_SYSTEM_ERROR(ctx); } From 73757a5f421be9a658f2bc4a22cf8e1c0a6dc23d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinicius=20Louren=C3=A7o?= <12551007+H4ad@users.noreply.github.com> Date: Sun, 15 Oct 2023 07:55:27 -0300 Subject: [PATCH 139/232] benchmark: fix race condition on fs benchs PR-URL: https://github.com/nodejs/node/pull/50035 Reviewed-By: Yagiz Nizipli Reviewed-By: Benjamin Gruenbaum Reviewed-By: Matteo Collina --- benchmark/fs/readfile-partitioned.js | 38 ++++++++++++++------- benchmark/fs/readfile-permission-enabled.js | 29 +++++++++------- benchmark/fs/readfile-promises.js | 35 +++++++++++-------- benchmark/fs/readfile.js | 35 +++++++++++-------- benchmark/fs/writefile-promises.js | 29 +++++++++------- 5 files changed, 99 insertions(+), 67 deletions(-) diff --git a/benchmark/fs/readfile-partitioned.js b/benchmark/fs/readfile-partitioned.js index b0183709e9f1e9..5a2004873e9fa0 100644 --- a/benchmark/fs/readfile-partitioned.js +++ b/benchmark/fs/readfile-partitioned.js @@ -14,7 +14,6 @@ const filename = path.resolve(__dirname, `.removeme-benchmark-garbage-${process.pid}`); const fs = require('fs'); const zlib = require('zlib'); -const assert = require('assert'); const bench = common.createBenchmark(main, { duration: [5], @@ -35,20 +34,28 @@ function main({ len, duration, concurrent, encoding }) { const zipData = Buffer.alloc(1024, 'a'); + let waitConcurrent = 0; + + // Plus one because of zip + const targetConcurrency = concurrent + 1; + const startedAt = Date.now(); + const endAt = startedAt + (duration * 1000); + let reads = 0; let zips = 0; - let benchEnded = false; + bench.start(); - setTimeout(() => { + + function stop() { const totalOps = reads + zips; - benchEnded = true; bench.end(totalOps); + try { fs.unlinkSync(filename); } catch { // Continue regardless of error. } - }, duration * 1000); + } function read() { fs.readFile(filename, encoding, afterRead); @@ -56,11 +63,6 @@ function main({ len, duration, concurrent, encoding }) { function afterRead(er, data) { if (er) { - if (er.code === 'ENOENT') { - // Only OK if unlinked by the timer from main. - assert.ok(benchEnded); - return; - } throw er; } @@ -68,8 +70,13 @@ function main({ len, duration, concurrent, encoding }) { throw new Error('wrong number of bytes returned'); reads++; - if (!benchEnded) + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === targetConcurrency) { + stop(); + } else if (!benchEnded) { read(); + } } function zip() { @@ -81,12 +88,17 @@ function main({ len, duration, concurrent, encoding }) { throw er; zips++; - if (!benchEnded) + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === targetConcurrency) { + stop(); + } else if (!benchEnded) { zip(); + } } // Start reads - while (concurrent-- > 0) read(); + for (let i = 0; i < concurrent; i++) read(); // Start a competing zip zip(); diff --git a/benchmark/fs/readfile-permission-enabled.js b/benchmark/fs/readfile-permission-enabled.js index 6f762a402dfb5f..46f20be6a0b06e 100644 --- a/benchmark/fs/readfile-permission-enabled.js +++ b/benchmark/fs/readfile-permission-enabled.js @@ -5,7 +5,6 @@ const common = require('../common.js'); const fs = require('fs'); -const assert = require('assert'); const tmpdir = require('../../test/common/tmpdir'); tmpdir.refresh(); @@ -36,18 +35,24 @@ function main({ len, duration, concurrent, encoding }) { data = null; let reads = 0; - let benchEnded = false; + let waitConcurrent = 0; + + const startedAt = Date.now(); + const endAt = startedAt + (duration * 1000); + bench.start(); - setTimeout(() => { - benchEnded = true; + + function stop() { bench.end(reads); + try { fs.unlinkSync(filename); } catch { // Continue regardless of error. } + process.exit(0); - }, duration * 1000); + } function read() { fs.readFile(filename, encoding, afterRead); @@ -55,11 +60,6 @@ function main({ len, duration, concurrent, encoding }) { function afterRead(er, data) { if (er) { - if (er.code === 'ENOENT') { - // Only OK if unlinked by the timer from main. - assert.ok(benchEnded); - return; - } throw er; } @@ -67,9 +67,14 @@ function main({ len, duration, concurrent, encoding }) { throw new Error('wrong number of bytes returned'); reads++; - if (!benchEnded) + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === concurrent) { + stop(); + } else if (!benchEnded) { read(); + } } - while (concurrent--) read(); + for (let i = 0; i < concurrent; i++) read(); } diff --git a/benchmark/fs/readfile-promises.js b/benchmark/fs/readfile-promises.js index b9fcab00333419..f1df92931b35a0 100644 --- a/benchmark/fs/readfile-promises.js +++ b/benchmark/fs/readfile-promises.js @@ -5,7 +5,6 @@ const common = require('../common.js'); const fs = require('fs'); -const assert = require('assert'); const tmpdir = require('../../test/common/tmpdir'); tmpdir.refresh(); @@ -35,19 +34,25 @@ function main({ len, duration, concurrent, encoding }) { fs.writeFileSync(filename, data); data = null; - let writes = 0; - let benchEnded = false; + let reads = 0; + let waitConcurrent = 0; + + const startedAt = Date.now(); + const endAt = startedAt + (duration * 1000); + bench.start(); - setTimeout(() => { - benchEnded = true; - bench.end(writes); + + function stop() { + bench.end(reads); + try { fs.unlinkSync(filename); } catch { // Continue regardless of error. } + process.exit(0); - }, duration * 1000); + } function read() { fs.promises.readFile(filename, encoding) @@ -57,21 +62,21 @@ function main({ len, duration, concurrent, encoding }) { function afterRead(er, data) { if (er) { - if (er.code === 'ENOENT') { - // Only OK if unlinked by the timer from main. - assert.ok(benchEnded); - return; - } throw er; } if (data.length !== len) throw new Error('wrong number of bytes returned'); - writes++; - if (!benchEnded) + reads++; + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === concurrent) { + stop(); + } else if (!benchEnded) { read(); + } } - while (concurrent--) read(); + for (let i = 0; i < concurrent; i++) read(); } diff --git a/benchmark/fs/readfile.js b/benchmark/fs/readfile.js index 24c2c5401ecf9c..9f74508042205f 100644 --- a/benchmark/fs/readfile.js +++ b/benchmark/fs/readfile.js @@ -5,7 +5,6 @@ const common = require('../common.js'); const fs = require('fs'); -const assert = require('assert'); const tmpdir = require('../../test/common/tmpdir'); tmpdir.refresh(); @@ -29,30 +28,31 @@ function main({ len, duration, concurrent, encoding }) { data = null; let reads = 0; - let benchEnded = false; + let waitConcurrent = 0; + + const startedAt = Date.now(); + const endAt = startedAt + (duration * 1000); + bench.start(); - setTimeout(() => { - benchEnded = true; + + function read() { + fs.readFile(filename, encoding, afterRead); + } + + function stop() { bench.end(reads); + try { fs.unlinkSync(filename); } catch { // Continue regardless of error. } - process.exit(0); - }, duration * 1000); - function read() { - fs.readFile(filename, encoding, afterRead); + process.exit(0); } function afterRead(er, data) { if (er) { - if (er.code === 'ENOENT') { - // Only OK if unlinked by the timer from main. - assert.ok(benchEnded); - return; - } throw er; } @@ -60,9 +60,14 @@ function main({ len, duration, concurrent, encoding }) { throw new Error('wrong number of bytes returned'); reads++; - if (!benchEnded) + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === concurrent) { + stop(); + } else if (!benchEnded) { read(); + } } - while (concurrent--) read(); + for (let i = 0; i < concurrent; i++) read(); } diff --git a/benchmark/fs/writefile-promises.js b/benchmark/fs/writefile-promises.js index 2f3fd352aa886e..41c029051bc04d 100644 --- a/benchmark/fs/writefile-promises.js +++ b/benchmark/fs/writefile-promises.js @@ -5,7 +5,6 @@ const common = require('../common.js'); const fs = require('fs'); -const assert = require('assert'); const tmpdir = require('../../test/common/tmpdir'); tmpdir.refresh(); @@ -38,11 +37,16 @@ function main({ encodingType, duration, concurrent, size }) { } let writes = 0; - let benchEnded = false; + let waitConcurrent = 0; + + const startedAt = Date.now(); + const endAt = startedAt + (duration * 1000); + bench.start(); - setTimeout(() => { - benchEnded = true; + + function stop() { bench.end(writes); + for (let i = 0; i < filesWritten; i++) { try { fs.unlinkSync(`${filename}-${i}`); @@ -50,8 +54,9 @@ function main({ encodingType, duration, concurrent, size }) { // Continue regardless of error. } } + process.exit(0); - }, duration * 1000); + } function write() { fs.promises.writeFile(`${filename}-${filesWritten++}`, chunk, encoding) @@ -61,18 +66,18 @@ function main({ encodingType, duration, concurrent, size }) { function afterWrite(er) { if (er) { - if (er.code === 'ENOENT') { - // Only OK if unlinked by the timer from main. - assert.ok(benchEnded); - return; - } throw er; } writes++; - if (!benchEnded) + const benchEnded = Date.now() >= endAt; + + if (benchEnded && (++waitConcurrent) === concurrent) { + stop(); + } else if (!benchEnded) { write(); + } } - while (concurrent--) write(); + for (let i = 0; i < concurrent; i++) write(); } From 33470d965cc56d08988df773af0100fade9b6c80 Mon Sep 17 00:00:00 2001 From: Chengzhong Wu Date: Sun, 15 Oct 2023 18:55:36 +0800 Subject: [PATCH 140/232] doc: improve ccache explanation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ccache improves the build speed significantly only when the branch was built before. Building fresh branches with major changes are not benefited from ccache. PR-URL: https://github.com/nodejs/node/pull/50133 Fixes: https://github.com/nodejs/node/issues/49967 Reviewed-By: Yagiz Nizipli Reviewed-By: Antoine du Hamel Reviewed-By: Michaël Zasso --- BUILDING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BUILDING.md b/BUILDING.md index d1f00c3cfd42f2..fb2eed1376e3f9 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -543,7 +543,8 @@ export CC="ccache cc" # add to ~/.zshrc or other shell config file export CXX="ccache c++" # add to ~/.zshrc or other shell config file ``` -This will allow for near-instantaneous rebuilds even when switching branches. +This will allow for near-instantaneous rebuilds when switching branches back +and forth that were built with cache. When modifying only the JS layer in `lib`, it is possible to externally load it without modifying the executable: From 35b160e6a32e054f3e8743ed10c924238ce6829e Mon Sep 17 00:00:00 2001 From: Mohammed Keyvanzadeh Date: Sun, 15 Oct 2023 18:44:57 +0330 Subject: [PATCH 141/232] tools: refactor checkimports.py - Use f-strings for formatting. - Use raw strings for regexes alongside f-strings. - Use a generator. - Remove unnecessary `else` clause. PR-URL: https://github.com/nodejs/node/pull/50011 Reviewed-By: Richard Lau Reviewed-By: Christian Clauss --- tools/checkimports.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tools/checkimports.py b/tools/checkimports.py index b94919e3cc47e4..ed003d8b6b98cd 100755 --- a/tools/checkimports.py +++ b/tools/checkimports.py @@ -8,9 +8,9 @@ import itertools def do_exist(file_name, lines, imported): - if not any(not re.match('using \w+::{0};'.format(imported), line) and - re.search('\\b{0}\\b'.format(imported), line) for line in lines): - print('File "{0}" does not use "{1}"'.format(file_name, imported)) + if not any(not re.match(fr'using \w+::{imported};', line) and + re.search(fr'\b{imported}\b', line) for line in lines): + print(f'File "{file_name}" does not use "{imported}"') return False return True @@ -27,18 +27,16 @@ def is_valid(file_name): usings.append(matches.group(1)) importeds.append(matches.group(2)) - valid = all([do_exist(file_name, lines, imported) for imported in importeds]) + valid = all(do_exist(file_name, lines, imported) for imported in importeds) sorted_usings = sorted(usings, key=lambda x: x.lower()) if sorted_usings != usings: - print("using statements aren't sorted in '{0}'.".format(file_name)) + print(f"using statements aren't sorted in '{file_name}'.") for num, actual, expected in zip(line_numbers, usings, sorted_usings): if actual != expected: - print('\tLine {0}: Actual: {1}, Expected: {2}' - .format(num, actual, expected)) + print(f'\tLine {num}: Actual: {actual}, Expected: {expected}') return False - else: - return valid + return valid if __name__ == '__main__': if len(sys.argv) > 1: From f72cbb7e0262f84c459dca01b1bf56bfd96d3ea3 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Mon, 16 Oct 2023 00:30:13 +0800 Subject: [PATCH 142/232] deps: V8: cherry-pick 25902244ad1a Original commit message: [api] add line breaks to the output of Message::PrintCurrentStackTrace Previously this prints the stack trace without line breaks and it can be difficult to read. This also affects --abort-on-uncaught-exception. This patch adds line breaks to the output to improve readability. Change-Id: I4c44b529f8c829329f784b0859b1d13c9ec56838 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4925009 Reviewed-by: Leszek Swirski Commit-Queue: Joyee Cheung Cr-Commit-Position: refs/heads/main@{#90360} Refs: https://github.com/v8/v8/commit/25902244ad1aa5ad7c7e5c85d6b0afae4e878536 PR-URL: https://github.com/nodejs/node/pull/50156 Reviewed-By: Jiawen Geng Reviewed-By: Debadree Chatterjee --- common.gypi | 2 +- deps/v8/src/execution/isolate.cc | 1 + deps/v8/test/cctest/test-api.cc | 46 ++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index 1b7eb92b89b34b..52636bb2fac590 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.19', + 'v8_embedder_string': '-node.20', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/execution/isolate.cc b/deps/v8/src/execution/isolate.cc index 1c63f0c56bf719..3c62ba5a5caef9 100644 --- a/deps/v8/src/execution/isolate.cc +++ b/deps/v8/src/execution/isolate.cc @@ -2451,6 +2451,7 @@ void Isolate::PrintCurrentStackTrace(std::ostream& out) { for (int i = 0; i < frames->length(); ++i) { Handle frame(CallSiteInfo::cast(frames->get(i)), this); SerializeCallSiteInfo(this, frame, &builder); + if (i != frames->length() - 1) builder.AppendCharacter('\n'); } Handle stack_trace = builder.Finish().ToHandleChecked(); diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index af7dfbf03ce2d8..6d83d9a4327598 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -31,6 +31,7 @@ #include #include #include +#include #include #include "test/cctest/cctest.h" @@ -4869,6 +4870,51 @@ TEST(MessageGetSourceLine) { }); } +void GetCurrentStackTrace(const v8::FunctionCallbackInfo& args) { + std::stringstream ss; + v8::Message::PrintCurrentStackTrace(args.GetIsolate(), ss); + std::string str = ss.str(); + args.GetReturnValue().Set(v8_str(str.c_str())); +} + +THREADED_TEST(MessagePrintCurrentStackTrace) { + v8::Isolate* isolate = CcTest::isolate(); + v8::HandleScope scope(isolate); + Local templ = ObjectTemplate::New(isolate); + templ->Set(isolate, "getCurrentStackTrace", + v8::FunctionTemplate::New(isolate, GetCurrentStackTrace)); + LocalContext context(nullptr, templ); + + v8::ScriptOrigin origin = v8::ScriptOrigin(isolate, v8_str("test"), 0, 0); + v8::Local script = v8_str( + "function c() {\n" + " return getCurrentStackTrace();\n" + "}\n" + "function b() {\n" + " return c();\n" + "}\n" + "function a() {\n" + " return b();\n" + "}\n" + "a();"); + v8::Local stack_trace = + v8::Script::Compile(context.local(), script, &origin) + .ToLocalChecked() + ->Run(context.local()) + .ToLocalChecked(); + + CHECK(stack_trace->IsString()); + v8::String::Utf8Value stack_trace_value(isolate, + stack_trace.As()); + std::string stack_trace_string(*stack_trace_value); + std::string expected( + "c (test:2:10)\n" + "b (test:5:10)\n" + "a (test:8:10)\n" + "test:10:1"); + CHECK_EQ(stack_trace_string, expected); +} + THREADED_TEST(GetSetProperty) { LocalContext context; v8::Isolate* isolate = context->GetIsolate(); From 4861ad6431ab52f5ffaf3a11e45ff7d0bebdccde Mon Sep 17 00:00:00 2001 From: Raz Luvaton <16746759+rluvaton@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:31:08 +0300 Subject: [PATCH 143/232] stream: call helper function from push and unshift PR-URL: https://github.com/nodejs/node/pull/50173 Reviewed-By: Matteo Collina Reviewed-By: Robert Nagy Reviewed-By: Benjamin Gruenbaum --- lib/internal/streams/readable.js | 193 ++++++++++++++++++++++--------- 1 file changed, 140 insertions(+), 53 deletions(-) diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index f551053bf7b79c..7ceb83d3f20523 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -284,77 +284,164 @@ Readable.prototype[SymbolAsyncDispose] = function() { // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function(chunk, encoding) { - return readableAddChunk(this, chunk, encoding, false); + debug('push', chunk); + + const state = this._readableState; + return (state[kState] & kObjectMode) === 0 ? + readableAddChunkPushByteMode(this, state, chunk, encoding) : + readableAddChunkPushObjectMode(this, state, chunk, encoding); }; // Unshift should *always* be something directly out of read(). Readable.prototype.unshift = function(chunk, encoding) { - return readableAddChunk(this, chunk, encoding, true); + debug('unshift', chunk); + const state = this._readableState; + return (state[kState] & kObjectMode) === 0 ? + readableAddChunkUnshiftByteMode(this, state, chunk, encoding) : + readableAddChunkUnshiftObjectMode(this, state, chunk); }; -function readableAddChunk(stream, chunk, encoding, addToFront) { - debug('readableAddChunk', chunk); - const state = stream._readableState; - let err; - if ((state[kState] & kObjectMode) === 0) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (state.encoding !== encoding) { - if (addToFront && state.encoding) { - // When unshifting, if state.encoding is set, we have to save - // the string in the BufferList with the state encoding. - chunk = Buffer.from(chunk, encoding).toString(state.encoding); - } else { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } +function readableAddChunkUnshiftByteMode(stream, state, chunk, encoding) { + if (chunk === null) { + state[kState] &= ~kReading; + onEofChunk(stream, state); + + return false; + } + + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (state.encoding !== encoding) { + if (state.encoding) { + // When unshifting, if state.encoding is set, we have to save + // the string in the BufferList with the state encoding. + chunk = Buffer.from(chunk, encoding).toString(state.encoding); + } else { + chunk = Buffer.from(chunk, encoding); } - } else if (chunk instanceof Buffer) { - encoding = ''; - } else if (Stream._isUint8Array(chunk)) { - chunk = Stream._uint8ArrayToBuffer(chunk); - encoding = ''; - } else if (chunk != null) { - err = new ERR_INVALID_ARG_TYPE( - 'chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + } else if (chunk !== undefined && !(chunk instanceof Buffer)) { + errorOrDestroy(stream, new ERR_INVALID_ARG_TYPE( + 'chunk', ['string', 'Buffer', 'Uint8Array'], chunk)); + return false; } - if (err) { - errorOrDestroy(stream, err); - } else if (chunk === null) { + + if (!(chunk && chunk.length > 0)) { + return canPushMore(state); + } + + return readableAddChunkUnshiftValue(stream, state, chunk); +} + +function readableAddChunkUnshiftObjectMode(stream, state, chunk) { + if (chunk === null) { state[kState] &= ~kReading; onEofChunk(stream, state); - } else if (((state[kState] & kObjectMode) !== 0) || (chunk && chunk.length > 0)) { - if (addToFront) { - if ((state[kState] & kEndEmitted) !== 0) - errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); - else if (state.destroyed || state.errored) - return false; - else - addChunk(stream, state, chunk, true); - } else if (state.ended) { - errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - } else if (state.destroyed || state.errored) { - return false; - } else { - state[kState] &= ~kReading; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) - addChunk(stream, state, chunk, false); - else - maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } + + return false; + } + + return readableAddChunkUnshiftValue(stream, state, chunk); +} + +function readableAddChunkUnshiftValue(stream, state, chunk) { + if ((state[kState] & kEndEmitted) !== 0) + errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else if (state.destroyed || state.errored) + return false; + else + addChunk(stream, state, chunk, true); + + return canPushMore(state); +} + +function readableAddChunkPushByteMode(stream, state, chunk, encoding) { + if (chunk === null) { + state[kState] &= ~kReading; + onEofChunk(stream, state); + + return false; + } + + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (state.encoding !== encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; } - } else if (!addToFront) { + } else if (chunk instanceof Buffer) { + encoding = ''; + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + encoding = ''; + } else if (chunk !== undefined) { + errorOrDestroy(stream, new ERR_INVALID_ARG_TYPE( + 'chunk', ['string', 'Buffer', 'Uint8Array'], chunk)); + return false; + } + + if (!chunk || chunk.length <= 0) { state[kState] &= ~kReading; maybeReadMore(stream, state); + + return canPushMore(state); + } + + if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + + return false; + } + + if (state.destroyed || state.errored) { + return false; + } + + state[kState] &= ~kReading; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (chunk.length === 0) { + maybeReadMore(stream, state); + + return canPushMore(state); + } } + addChunk(stream, state, chunk, false); + return canPushMore(state); +} + +function readableAddChunkPushObjectMode(stream, state, chunk, encoding) { + if (chunk === null) { + state[kState] &= ~kReading; + onEofChunk(stream, state); + + return false; + } + + if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + return false; + } + + if (state.destroyed || state.errored) { + return false; + } + + state[kState] &= ~kReading; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + } + + addChunk(stream, state, chunk, false); + return canPushMore(state); +} + +function canPushMore(state) { // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. From 05ee35028b7b744ab7ebecf2589136fc505498a3 Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Mon, 16 Oct 2023 05:28:23 +0900 Subject: [PATCH 144/232] tools: update comment in `update-uncidi.sh` and `acorn_version.h` PR-URL: https://github.com/nodejs/node/pull/50175 Fixes: https://github.com/nodejs/node/issues/50159 Refs: https://github.com/nodejs/node/pull/50165 Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau Reviewed-By: Rafael Gonzaga --- src/acorn_version.h | 2 +- tools/dep_updaters/update-undici.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/acorn_version.h b/src/acorn_version.h index 8c71b2ece5aa80..7e0add93c19bf8 100644 --- a/src/acorn_version.h +++ b/src/acorn_version.h @@ -1,5 +1,5 @@ // This is an auto generated file, please do not edit. -// Refer to tools/update-acorn.sh +// Refer to tools/dep_updaters/update-acorn.sh #ifndef SRC_ACORN_VERSION_H_ #define SRC_ACORN_VERSION_H_ #define ACORN_VERSION "8.10.0" diff --git a/tools/dep_updaters/update-undici.sh b/tools/dep_updaters/update-undici.sh index 962557f7a0d185..e50a3b909b8adf 100755 --- a/tools/dep_updaters/update-undici.sh +++ b/tools/dep_updaters/update-undici.sh @@ -43,7 +43,7 @@ rm -f deps/undici/undici.js # update version information in src/undici_version.h cat > "$ROOT/src/undici_version.h" < Date: Mon, 16 Oct 2023 17:50:28 +0200 Subject: [PATCH 145/232] test: fix defect path traversal tests The test never actually tested what it claims to test because it did not properly insert separators before `..`. PR-URL: https://github.com/nodejs/node/pull/50124 Reviewed-By: Yagiz Nizipli Reviewed-By: Rafael Gonzaga --- test/fixtures/permission/fs-traversal.js | 6 +++--- test/parallel/test-permission-fs-traversal-path.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/fixtures/permission/fs-traversal.js b/test/fixtures/permission/fs-traversal.js index 18243edfeadf7e..87132177643c45 100644 --- a/test/fixtures/permission/fs-traversal.js +++ b/test/fixtures/permission/fs-traversal.js @@ -12,9 +12,9 @@ path.resolve = (s) => s; const blockedFolder = process.env.BLOCKEDFOLDER; const allowedFolder = process.env.ALLOWEDFOLDER; -const traversalPath = allowedFolder + '../file.md'; -const traversalFolderPath = allowedFolder + '../folder'; -const bufferTraversalPath = Buffer.from(allowedFolder + '../file.md'); +const traversalPath = allowedFolder + '/../file.md'; +const traversalFolderPath = allowedFolder + '/../folder'; +const bufferTraversalPath = Buffer.from(traversalPath); const uint8ArrayTraversalPath = new TextEncoder().encode(traversalPath); { diff --git a/test/parallel/test-permission-fs-traversal-path.js b/test/parallel/test-permission-fs-traversal-path.js index 547cd81c77cf18..d618c3e4f79879 100644 --- a/test/parallel/test-permission-fs-traversal-path.js +++ b/test/parallel/test-permission-fs-traversal-path.js @@ -18,7 +18,7 @@ const tmpdir = require('../common/tmpdir'); const file = fixtures.path('permission', 'fs-traversal.js'); const blockedFolder = tmpdir.path; -const allowedFolder = tmpdir.resolve('subdirectory/'); +const allowedFolder = tmpdir.resolve('subdirectory'); const commonPathWildcard = path.join(__filename, '../../common*'); { From ff8e1b860e3403ede134f7d957433d588e44abab Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Thu, 12 Oct 2023 16:44:55 +0000 Subject: [PATCH 146/232] doc: update security release process - update security release process to reflect current way to ask for tweet to amplify security release blog posts. Signed-off-by: Michael Dawson PR-URL: https://github.com/nodejs/node/pull/50166 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Rafael Gonzaga --- doc/contributing/security-release-process.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/contributing/security-release-process.md b/doc/contributing/security-release-process.md index fd33f3ccbb5afd..a3a4224de95fea 100644 --- a/doc/contributing/security-release-process.md +++ b/doc/contributing/security-release-process.md @@ -120,7 +120,8 @@ The google groups UI does not support adding a CC, until we figure out a better way, forward the email you receive to `oss-security@lists.openwall.com` as a CC. -* [ ] Send a message to `#nodejs-social` in OpenJS Foundation slack +* [ ] Post in the [nodejs-social channel][] + in the OpenJS slack asking for amplication of the blog post. ```text Security release pre-alert: @@ -179,7 +180,8 @@ out a better way, forward the email you receive to For more information see: https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ ``` -* [ ] Create a new issue in [nodejs/tweet][] +* [ ] Post in the [nodejs-social channel][] + in the OpenJS slack asking for amplication of the blog post. ```text Security release: @@ -238,5 +240,5 @@ The steps to correct CVE information are: [H1 CVE requests]: https://hackerone.com/nodejs/cve_requests [docker-node]: https://github.com/nodejs/docker-node/issues [email]: https://groups.google.com/forum/#!forum/nodejs-sec +[nodejs-social channel]: https://openjs-foundation.slack.com/archives/C0142A39BNE [nodejs/build]: https://github.com/nodejs/build/issues -[nodejs/tweet]: https://github.com/nodejs/tweet/issues From 85de4b8254e5313c36afe4494a4021c2403beebb Mon Sep 17 00:00:00 2001 From: Shi Pujin Date: Tue, 17 Oct 2023 04:19:31 +0800 Subject: [PATCH 147/232] doc: add loong64 to list of architectures PR-URL: https://github.com/nodejs/node/pull/50172 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Michael Dawson --- doc/api/os.md | 5 +++-- doc/api/process.md | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/api/os.md b/doc/api/os.md index a02726fb7c2eb1..550ae7659de5f5 100644 --- a/doc/api/os.md +++ b/doc/api/os.md @@ -50,8 +50,9 @@ added: v0.5.0 * Returns: {string} Returns the operating system CPU architecture for which the Node.js binary was -compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'mips'`, -`'mipsel'`, `'ppc'`, `'ppc64'`, `'riscv64'`, `'s390'`, `'s390x'`, and `'x64'`. +compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'loong64'`, +`'mips'`, `'mipsel'`, `'ppc'`, `'ppc64'`, `'riscv64'`, `'s390'`, `'s390x'`, +and `'x64'`. The return value is equivalent to [`process.arch`][]. diff --git a/doc/api/process.md b/doc/api/process.md index 5718c83e4fbcf4..f0ce10fa9f071a 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -873,8 +873,8 @@ added: v0.5.0 * {string} The operating system CPU architecture for which the Node.js binary was compiled. -Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, -`'ppc64'`, `'riscv64'`, `'s390'`, `'s390x'`, and `'x64'`. +Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'loong64'`, `'mips'`, +`'mipsel'`, `'ppc'`, `'ppc64'`, `'riscv64'`, `'s390'`, `'s390x'`, and `'x64'`. ```mjs import { arch } from 'node:process'; From ffdc3571679b0ad1be2fd552917db5f9be4df2c3 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 14 Oct 2023 17:04:43 -0500 Subject: [PATCH 148/232] stream: allow pass stream class to `stream.compose` PR-URL: https://github.com/nodejs/node/pull/50187 Fixes: https://github.com/nodejs/node/issues/50176 Reviewed-By: Moshe Atlow Reviewed-By: Robert Nagy Reviewed-By: Benjamin Gruenbaum --- lib/internal/streams/duplexify.js | 5 +++++ test/parallel/test-runner-run.mjs | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/internal/streams/duplexify.js b/lib/internal/streams/duplexify.js index 788bcb63242c38..2503b531519066 100644 --- a/lib/internal/streams/duplexify.js +++ b/lib/internal/streams/duplexify.js @@ -85,6 +85,11 @@ module.exports = function duplexify(body, name) { if (typeof body === 'function') { const { value, write, final, destroy } = fromAsyncGen(body); + // Body might be a constructor function instead of an async generator function. + if (isDuplexNodeStream(value)) { + return value; + } + if (isIterable(value)) { return from(Duplexify, value, { // TODO (ronag): highWaterMark? diff --git a/test/parallel/test-runner-run.mjs b/test/parallel/test-runner-run.mjs index 02fed7a3659162..892e361cb25159 100644 --- a/test/parallel/test-runner-run.mjs +++ b/test/parallel/test-runner-run.mjs @@ -104,6 +104,16 @@ describe('require(\'node:test\').run', { concurrency: true }, () => { assert.match(stringResults[1], /tests 1/); assert.match(stringResults[1], /pass 1/); }); + + it('spec', async () => { + const result = await run({ + files: [join(testFixtures, 'default-behavior/test/random.cjs')] + }).compose(spec).toArray(); + const stringResults = result.map((bfr) => bfr.toString()); + assert.match(stringResults[0], /this should pass/); + assert.match(stringResults[1], /tests 1/); + assert.match(stringResults[1], /pass 1/); + }); }); it('should be piped with tap', async () => { From 63379313d599081004ab73367e450e580ec02f82 Mon Sep 17 00:00:00 2001 From: Rafael Gonzaga Date: Mon, 16 Oct 2023 20:01:19 -0300 Subject: [PATCH 149/232] doc: add command to keep major branch sync PR-URL: https://github.com/nodejs/node/pull/50102 Reviewed-By: Richard Lau --- doc/contributing/releases.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index 04d005ad8258a8..1d3bd71194caf4 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -1207,6 +1207,20 @@ Notify the `@nodejs/npm` team in the release proposal PR to inform them of the upcoming release. `npm` maintains a list of [supported versions](https://github.com/npm/cli/blob/latest/lib/utils/unsupported.js#L3) that will need updating to include the new major release. +To keep the branch in sync until the release date, it can be as simple as +doing the following: + +> Make sure to check that there are no PRs with the label `dont-land-on-vX.x`. + +```bash +git checkout vN.x +git reset --hard upstream/main +git checkout vN.x-staging +git reset --hard upstream/main +git push upstream vN.x +git push upstream vN.x-staging +``` + ### Update `NODE_MODULE_VERSION` This macro in `src/node_version.h` is used to signal an ABI version for native From 5025e24ac75782d75641ce00e5b160c94a6885a4 Mon Sep 17 00:00:00 2001 From: Rafael Gonzaga Date: Mon, 16 Oct 2023 20:01:31 -0300 Subject: [PATCH 150/232] doc: update release-stewards with last sec-release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50179 Refs: https://github.com/nodejs-private/node-private/issues/485 Reviewed-By: Richard Lau Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca Reviewed-By: Benjamin Gruenbaum Reviewed-By: Matteo Collina Reviewed-By: Michael Dawson --- doc/contributing/security-release-process.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/contributing/security-release-process.md b/doc/contributing/security-release-process.md index a3a4224de95fea..4cd9835a953e94 100644 --- a/doc/contributing/security-release-process.md +++ b/doc/contributing/security-release-process.md @@ -30,6 +30,7 @@ The current security stewards are documented in the main Node.js | RH and IBM | Michael | 2023-Feb-16 | | NearForm | Rafael | 2023-Jun-20 | | NearForm | Rafael | 2023-Aug-09 | +| NearForm | Rafael | 2023-Oct-13 | | Datadog | Bryan | | | IBM | Joe | | | Platformatic | Matteo | | From 56bbc30a44f87e65c34f655a5658d19970e36175 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 5 Oct 2023 03:27:11 +0200 Subject: [PATCH 151/232] vm: unify host-defined option generation in vm.compileFunction Set a default host-defined option for vm.compileFunction so that it's consistent with vm.Script. PR-URL: https://github.com/nodejs/node/pull/50137 Refs: https://github.com/nodejs/node/issues/35375 Reviewed-By: Geoffrey Booth Reviewed-By: Yagiz Nizipli Reviewed-By: Chengzhong Wu Reviewed-By: Antoine du Hamel --- lib/internal/vm.js | 25 ++++++++++++++++++- lib/vm.js | 12 +++------ src/node_contextify.cc | 20 ++++++--------- .../test-vm-no-dynamic-import-callback.js | 13 +++++++--- 4 files changed, 46 insertions(+), 24 deletions(-) diff --git a/lib/internal/vm.js b/lib/internal/vm.js index f348ef6d2d612f..a463bdec88bdd4 100644 --- a/lib/internal/vm.js +++ b/lib/internal/vm.js @@ -2,12 +2,16 @@ const { ArrayPrototypeForEach, + Symbol, } = primordials; const { compileFunction, isContext: _isContext, } = internalBinding('contextify'); +const { + default_host_defined_options, +} = internalBinding('symbols'); const { validateArray, validateBoolean, @@ -30,12 +34,27 @@ function isContext(object) { return _isContext(object); } +function getHostDefinedOptionId(importModuleDynamically, filename) { + if (importModuleDynamically !== undefined) { + // Check that it's either undefined or a function before we pass + // it into the native constructor. + validateFunction(importModuleDynamically, + 'options.importModuleDynamically'); + } + if (importModuleDynamically === undefined) { + // We need a default host defined options that are the same for all + // scripts not needing custom module callbacks so that the isolate + // compilation cache can be hit. + return default_host_defined_options; + } + return Symbol(filename); +} + function internalCompileFunction(code, params, options) { validateString(code, 'code'); if (params !== undefined) { validateStringArray(params, 'params'); } - const { filename = '', columnOffset = 0, @@ -72,6 +91,8 @@ function internalCompileFunction(code, params, options) { validateObject(extension, name, kValidateObjectAllowNullable); }); + const hostDefinedOptionId = + getHostDefinedOptionId(importModuleDynamically, filename); const result = compileFunction( code, filename, @@ -82,6 +103,7 @@ function internalCompileFunction(code, params, options) { parsingContext, contextExtensions, params, + hostDefinedOptionId, ); if (produceCachedData) { @@ -113,6 +135,7 @@ function internalCompileFunction(code, params, options) { } module.exports = { + getHostDefinedOptionId, internalCompileFunction, isContext, }; diff --git a/lib/vm.js b/lib/vm.js index f134cdc983db6d..fe2981019a6170 100644 --- a/lib/vm.js +++ b/lib/vm.js @@ -41,7 +41,6 @@ const { const { validateBoolean, validateBuffer, - validateFunction, validateInt32, validateObject, validateOneOf, @@ -54,6 +53,7 @@ const { kVmBreakFirstLineSymbol, } = require('internal/util'); const { + getHostDefinedOptionId, internalCompileFunction, isContext, } = require('internal/vm'); @@ -86,12 +86,8 @@ class Script extends ContextifyScript { } validateBoolean(produceCachedData, 'options.produceCachedData'); - if (importModuleDynamically !== undefined) { - // Check that it's either undefined or a function before we pass - // it into the native constructor. - validateFunction(importModuleDynamically, - 'options.importModuleDynamically'); - } + const hostDefinedOptionId = + getHostDefinedOptionId(importModuleDynamically, filename); // Calling `ReThrow()` on a native TryCatch does not generate a new // abort-on-uncaught-exception check. A dummy try/catch in JS land // protects against that. @@ -103,7 +99,7 @@ class Script extends ContextifyScript { cachedData, produceCachedData, parsingContext, - importModuleDynamically !== undefined); + hostDefinedOptionId); } catch (e) { throw e; /* node-do-not-add-exception-line */ } diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 1754797e06851b..f669f323b1c6f3 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -771,11 +771,11 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { bool produce_cached_data = false; Local parsing_context = context; - bool needs_custom_host_defined_options = false; + Local id_symbol; if (argc > 2) { // new ContextifyScript(code, filename, lineOffset, columnOffset, // cachedData, produceCachedData, parsingContext, - // needsCustomHostDefinedOptions) + // hostDefinedOptionId) CHECK_EQ(argc, 8); CHECK(args[2]->IsNumber()); line_offset = args[2].As()->Value(); @@ -795,9 +795,8 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { CHECK_NOT_NULL(sandbox); parsing_context = sandbox->context(); } - if (args[7]->IsTrue()) { - needs_custom_host_defined_options = true; - } + CHECK(args[7]->IsSymbol()); + id_symbol = args[7].As(); } ContextifyScript* contextify_script = @@ -821,12 +820,6 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { Local host_defined_options = PrimitiveArray::New(isolate, loader::HostDefinedOptions::kLength); - // We need a default host defined options that's the same for all scripts - // not needing custom module callbacks for so that the isolate compilation - // cache can be hit. - Local id_symbol = needs_custom_host_defined_options - ? Symbol::New(isolate, filename) - : env->default_host_defined_options(); host_defined_options->Set( isolate, loader::HostDefinedOptions::kID, id_symbol); @@ -1200,6 +1193,10 @@ void ContextifyContext::CompileFunction( params_buf = args[8].As(); } + // Argument 10: host-defined option symbol + CHECK(args[9]->IsSymbol()); + Local id_symbol = args[9].As(); + // Read cache from cached data buffer ScriptCompiler::CachedData* cached_data = nullptr; if (!cached_data_buf.IsEmpty()) { @@ -1211,7 +1208,6 @@ void ContextifyContext::CompileFunction( // Set host_defined_options Local host_defined_options = PrimitiveArray::New(isolate, loader::HostDefinedOptions::kLength); - Local id_symbol = Symbol::New(isolate, filename); host_defined_options->Set( isolate, loader::HostDefinedOptions::kID, id_symbol); diff --git a/test/parallel/test-vm-no-dynamic-import-callback.js b/test/parallel/test-vm-no-dynamic-import-callback.js index 3651f997598b21..35b553d587c6e4 100644 --- a/test/parallel/test-vm-no-dynamic-import-callback.js +++ b/test/parallel/test-vm-no-dynamic-import-callback.js @@ -1,7 +1,7 @@ 'use strict'; -require('../common'); -const { Script } = require('vm'); +const common = require('../common'); +const { Script, compileFunction } = require('vm'); const assert = require('assert'); assert.rejects(async () => { @@ -10,4 +10,11 @@ assert.rejects(async () => { await imported; }, { code: 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING' -}); +}).then(common.mustCall()); + +assert.rejects(async () => { + const imported = compileFunction('return import("fs")')(); + await imported; +}, { + code: 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING' +}).then(common.mustCall()); From 3697c19c805df5e355aa8db0a26dbb2892684932 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 11 Oct 2023 04:50:50 +0200 Subject: [PATCH 152/232] vm: use internal versions of compileFunction and Script Instead of using the public versions of the vm APIs internally, use the internal versions so that we can skip unnecessary argument validation. The public versions would need special care to the generation of host-defined options to hit the isolate compilation cache when imporModuleDynamically isn't used, while internally it's almost always used, so this allows us to handle the host-defined options separately. PR-URL: https://github.com/nodejs/node/pull/50137 Refs: https://github.com/nodejs/node/issues/35375 Reviewed-By: Geoffrey Booth Reviewed-By: Yagiz Nizipli Reviewed-By: Chengzhong Wu Reviewed-By: Antoine du Hamel --- lib/internal/modules/cjs/loader.js | 73 +++++++------ lib/internal/modules/esm/translators.js | 35 ++++--- lib/internal/process/execution.js | 35 ++++--- lib/internal/vm.js | 131 +++++++++++++----------- lib/repl.js | 85 +++++++-------- lib/vm.js | 63 ++++++++++-- test/message/eval_messages.out | 14 +-- test/message/stdin_messages.out | 18 ++-- 8 files changed, 268 insertions(+), 186 deletions(-) diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 8be147c8e233ca..b3b438372fe9ed 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -52,6 +52,7 @@ const { SafeMap, SafeWeakMap, String, + Symbol, StringPrototypeCharAt, StringPrototypeCharCodeAt, StringPrototypeEndsWith, @@ -84,7 +85,12 @@ const { setOwnProperty, getLazy, } = require('internal/util'); -const { internalCompileFunction } = require('internal/vm'); +const { + internalCompileFunction, + makeContextifyScript, + runScriptInThisContext, +} = require('internal/vm'); + const assert = require('internal/assert'); const fs = require('fs'); const path = require('path'); @@ -1240,7 +1246,6 @@ Module.prototype.require = function(id) { let resolvedArgv; let hasPausedEntry = false; /** @type {import('vm').Script} */ -let Script; /** * Wraps the given content in a script and runs it in a new context. @@ -1250,47 +1255,49 @@ let Script; * @param {object} codeCache The SEA code cache */ function wrapSafe(filename, content, cjsModuleInstance, codeCache) { + const hostDefinedOptionId = Symbol(`cjs:${filename}`); + async function importModuleDynamically(specifier, _, importAttributes) { + const cascadedLoader = getCascadedLoader(); + return cascadedLoader.import(specifier, normalizeReferrerURL(filename), + importAttributes); + } if (patched) { - const wrapper = Module.wrap(content); - if (Script === undefined) { - ({ Script } = require('vm')); - } - const script = new Script(wrapper, { - filename, - lineOffset: 0, - importModuleDynamically: async (specifier, _, importAttributes) => { - const cascadedLoader = getCascadedLoader(); - return cascadedLoader.import(specifier, normalizeReferrerURL(filename), - importAttributes); - }, - }); + const wrapped = Module.wrap(content); + const script = makeContextifyScript( + wrapped, // code + filename, // filename + 0, // lineOffset + 0, // columnOffset + undefined, // cachedData + false, // produceCachedData + undefined, // parsingContext + hostDefinedOptionId, // hostDefinedOptionId + importModuleDynamically, // importModuleDynamically + ); // Cache the source map for the module if present. if (script.sourceMapURL) { maybeCacheSourceMap(filename, content, this, false, undefined, script.sourceMapURL); } - return script.runInThisContext({ - displayErrors: true, - }); + return runScriptInThisContext(script, true, false); } + const params = [ 'exports', 'require', 'module', '__filename', '__dirname' ]; try { - const result = internalCompileFunction(content, [ - 'exports', - 'require', - 'module', - '__filename', - '__dirname', - ], { - filename, - cachedData: codeCache, - importModuleDynamically(specifier, _, importAttributes) { - const cascadedLoader = getCascadedLoader(); - return cascadedLoader.import(specifier, normalizeReferrerURL(filename), - importAttributes); - }, - }); + const result = internalCompileFunction( + content, // code, + filename, // filename + 0, // lineOffset + 0, // columnOffset, + codeCache, // cachedData + false, // produceCachedData + undefined, // parsingContext + undefined, // contextExtensions + params, // params + hostDefinedOptionId, // hostDefinedOptionId + importModuleDynamically, // importModuleDynamically + ); // The code cache is used for SEAs only. if (codeCache && diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index 5627d98cf294d0..c36fe07a9503ae 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -15,6 +15,7 @@ const { StringPrototypeReplaceAll, StringPrototypeSlice, StringPrototypeStartsWith, + Symbol, SyntaxErrorPrototype, globalThis: { WebAssembly }, } = primordials; @@ -192,19 +193,29 @@ function enrichCJSError(err, content, filename) { */ function loadCJSModule(module, source, url, filename) { let compiledWrapper; + async function importModuleDynamically(specifier, _, importAttributes) { + return asyncESM.esmLoader.import(specifier, url, importAttributes); + } try { - compiledWrapper = internalCompileFunction(source, [ - 'exports', - 'require', - 'module', - '__filename', - '__dirname', - ], { - filename, - importModuleDynamically(specifier, _, importAttributes) { - return asyncESM.esmLoader.import(specifier, url, importAttributes); - }, - }).function; + compiledWrapper = internalCompileFunction( + source, // code, + filename, // filename + 0, // lineOffset + 0, // columnOffset, + undefined, // cachedData + false, // produceCachedData + undefined, // parsingContext + undefined, // contextExtensions + [ // params + 'exports', + 'require', + 'module', + '__filename', + '__dirname', + ], + Symbol(`cjs:${filename}`), // hostDefinedOptionsId + importModuleDynamically, // importModuleDynamically + ).function; } catch (err) { enrichCJSError(err, source, url); throw err; diff --git a/lib/internal/process/execution.js b/lib/internal/process/execution.js index 8ae6a1678af1b5..b8c507c798182e 100644 --- a/lib/internal/process/execution.js +++ b/lib/internal/process/execution.js @@ -1,6 +1,7 @@ 'use strict'; const { + Symbol, RegExpPrototypeExec, globalThis, } = primordials; @@ -25,7 +26,9 @@ const { emitAfter, popAsyncContext, } = require('internal/async_hooks'); - +const { + makeContextifyScript, runScriptInThisContext, +} = require('internal/vm'); // shouldAbortOnUncaughtToggle is a typed array for faster // communication with JS. const { shouldAbortOnUncaughtToggle } = internalBinding('util'); @@ -53,7 +56,6 @@ function evalModule(source, print) { function evalScript(name, body, breakFirstLine, print, shouldLoadESM = false) { const CJSModule = require('internal/modules/cjs/loader').Module; - const { kVmBreakFirstLineSymbol } = require('internal/util'); const { pathToFileURL } = require('internal/url'); const cwd = tryGetCwd(); @@ -79,16 +81,25 @@ function evalScript(name, body, breakFirstLine, print, shouldLoadESM = false) { `; globalThis.__filename = name; RegExpPrototypeExec(/^/, ''); // Necessary to reset RegExp statics before user code runs. - const result = module._compile(script, `${name}-wrapper`)(() => - require('vm').runInThisContext(body, { - filename: name, - displayErrors: true, - [kVmBreakFirstLineSymbol]: !!breakFirstLine, - importModuleDynamically(specifier, _, importAttributes) { - const loader = asyncESM.esmLoader; - return loader.import(specifier, baseUrl, importAttributes); - }, - })); + const result = module._compile(script, `${name}-wrapper`)(() => { + const hostDefinedOptionId = Symbol(name); + async function importModuleDynamically(specifier, _, importAttributes) { + const loader = asyncESM.esmLoader; + return loader.import(specifier, baseUrl, importAttributes); + } + const script = makeContextifyScript( + body, // code + name, // filename, + 0, // lineOffset + 0, // columnOffset, + undefined, // cachedData + false, // produceCachedData + undefined, // parsingContext + hostDefinedOptionId, // hostDefinedOptionId + importModuleDynamically, // importModuleDynamically + ); + return runScriptInThisContext(script, true, !!breakFirstLine); + }); if (print) { const { log } = require('internal/console/global'); log(result); diff --git a/lib/internal/vm.js b/lib/internal/vm.js index a463bdec88bdd4..4f7b8c652f3c26 100644 --- a/lib/internal/vm.js +++ b/lib/internal/vm.js @@ -1,32 +1,26 @@ 'use strict'; const { - ArrayPrototypeForEach, + ReflectApply, Symbol, } = primordials; const { + ContextifyScript, compileFunction, isContext: _isContext, } = internalBinding('contextify'); +const { + runInContext, +} = ContextifyScript.prototype; const { default_host_defined_options, } = internalBinding('symbols'); const { - validateArray, - validateBoolean, - validateBuffer, validateFunction, validateObject, - validateString, - validateStringArray, kValidateObjectAllowArray, - kValidateObjectAllowNullable, - validateInt32, } = require('internal/validators'); -const { - ERR_INVALID_ARG_TYPE, -} = require('internal/errors').codes; function isContext(object) { validateObject(object, 'object', kValidateObjectAllowArray); @@ -50,49 +44,20 @@ function getHostDefinedOptionId(importModuleDynamically, filename) { return Symbol(filename); } -function internalCompileFunction(code, params, options) { - validateString(code, 'code'); - if (params !== undefined) { - validateStringArray(params, 'params'); - } - const { - filename = '', - columnOffset = 0, - lineOffset = 0, - cachedData = undefined, - produceCachedData = false, - parsingContext = undefined, - contextExtensions = [], - importModuleDynamically, - } = options; - - validateString(filename, 'options.filename'); - validateInt32(columnOffset, 'options.columnOffset'); - validateInt32(lineOffset, 'options.lineOffset'); - if (cachedData !== undefined) - validateBuffer(cachedData, 'options.cachedData'); - validateBoolean(produceCachedData, 'options.produceCachedData'); - if (parsingContext !== undefined) { - if ( - typeof parsingContext !== 'object' || - parsingContext === null || - !isContext(parsingContext) - ) { - throw new ERR_INVALID_ARG_TYPE( - 'options.parsingContext', - 'Context', - parsingContext, - ); - } - } - validateArray(contextExtensions, 'options.contextExtensions'); - ArrayPrototypeForEach(contextExtensions, (extension, i) => { - const name = `options.contextExtensions[${i}]`; - validateObject(extension, name, kValidateObjectAllowNullable); +function registerImportModuleDynamically(referrer, importModuleDynamically) { + const { importModuleDynamicallyWrap } = require('internal/vm/module'); + const { registerModule } = require('internal/modules/esm/utils'); + registerModule(referrer, { + __proto__: null, + importModuleDynamically: + importModuleDynamicallyWrap(importModuleDynamically), }); +} - const hostDefinedOptionId = - getHostDefinedOptionId(importModuleDynamically, filename); +function internalCompileFunction( + code, filename, lineOffset, columnOffset, + cachedData, produceCachedData, parsingContext, contextExtensions, + params, hostDefinedOptionId, importModuleDynamically) { const result = compileFunction( code, filename, @@ -119,23 +84,65 @@ function internalCompileFunction(code, params, options) { } if (importModuleDynamically !== undefined) { - validateFunction(importModuleDynamically, - 'options.importModuleDynamically'); - const { importModuleDynamicallyWrap } = require('internal/vm/module'); - const wrapped = importModuleDynamicallyWrap(importModuleDynamically); - const func = result.function; - const { registerModule } = require('internal/modules/esm/utils'); - registerModule(func, { - __proto__: null, - importModuleDynamically: wrapped, - }); + registerImportModuleDynamically(result.function, importModuleDynamically); } return result; } +function makeContextifyScript(code, + filename, + lineOffset, + columnOffset, + cachedData, + produceCachedData, + parsingContext, + hostDefinedOptionId, + importModuleDynamically) { + let script; + // Calling `ReThrow()` on a native TryCatch does not generate a new + // abort-on-uncaught-exception check. A dummy try/catch in JS land + // protects against that. + try { // eslint-disable-line no-useless-catch + script = new ContextifyScript(code, + filename, + lineOffset, + columnOffset, + cachedData, + produceCachedData, + parsingContext, + hostDefinedOptionId); + } catch (e) { + throw e; /* node-do-not-add-exception-line */ + } + + if (importModuleDynamically !== undefined) { + registerImportModuleDynamically(script, importModuleDynamically); + } + return script; +} + +// Internal version of vm.Script.prototype.runInThisContext() which skips +// argument validation. +function runScriptInThisContext(script, displayErrors, breakOnFirstLine) { + return ReflectApply( + runInContext, + script, + [ + null, // sandbox - use current context + -1, // timeout + displayErrors, // displayErrors + false, // breakOnSigint + breakOnFirstLine, // breakOnFirstLine + ], + ); +} + module.exports = { getHostDefinedOptionId, internalCompileFunction, isContext, + makeContextifyScript, + registerImportModuleDynamically, + runScriptInThisContext, }; diff --git a/lib/repl.js b/lib/repl.js index 52f3026414d72d..d8021215b3f425 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -118,6 +118,9 @@ const { } = require('internal/util'); const { inspect } = require('internal/util/inspect'); const vm = require('vm'); + +const { runInThisContext, runInContext } = vm.Script.prototype; + const path = require('path'); const fs = require('fs'); const { Interface } = require('readline'); @@ -185,7 +188,9 @@ const history = require('internal/repl/history'); const { extensionFormatMap, } = require('internal/modules/esm/formats'); - +const { + makeContextifyScript, +} = require('internal/vm'); let nextREPLResourceNumber = 1; // This prevents v8 code cache from getting confused and using a different // cache from a resource of the same name @@ -430,8 +435,6 @@ function REPLServer(prompt, } function defaultEval(code, context, file, cb) { - const asyncESM = require('internal/process/esm_loader'); - let result, script, wrappedErr; let err = null; let wrappedCmd = false; @@ -449,6 +452,21 @@ function REPLServer(prompt, wrappedCmd = true; } + const hostDefinedOptionId = Symbol(`eval:${file}`); + let parentURL; + try { + const { pathToFileURL } = require('internal/url'); + // Adding `/repl` prevents dynamic imports from loading relative + // to the parent of `process.cwd()`. + parentURL = pathToFileURL(path.join(process.cwd(), 'repl')).href; + } catch { + // Continue regardless of error. + } + async function importModuleDynamically(specifier, _, importAttributes) { + const asyncESM = require('internal/process/esm_loader'); + return asyncESM.esmLoader.import(specifier, parentURL, + importAttributes); + } // `experimentalREPLAwait` is set to true by default. // Shall be false in case `--no-experimental-repl-await` flag is used. if (experimentalREPLAwait && StringPrototypeIncludes(code, 'await')) { @@ -466,28 +484,21 @@ function REPLServer(prompt, } catch (e) { let recoverableError = false; if (e.name === 'SyntaxError') { - let parentURL; - try { - const { pathToFileURL } = require('internal/url'); - // Adding `/repl` prevents dynamic imports from loading relative - // to the parent of `process.cwd()`. - parentURL = pathToFileURL(path.join(process.cwd(), 'repl')).href; - } catch { - // Continue regardless of error. - } - // Remove all "await"s and attempt running the script // in order to detect if error is truly non recoverable const fallbackCode = SideEffectFreeRegExpPrototypeSymbolReplace(/\bawait\b/g, code, ''); try { - vm.createScript(fallbackCode, { - filename: file, - displayErrors: true, - importModuleDynamically: (specifier, _, importAttributes) => { - return asyncESM.esmLoader.import(specifier, parentURL, - importAttributes); - }, - }); + makeContextifyScript( + fallbackCode, // code + file, // filename, + 0, // lineOffset + 0, // columnOffset, + undefined, // cachedData + false, // produceCachedData + undefined, // parsingContext + hostDefinedOptionId, // hostDefinedOptionId + importModuleDynamically, // importModuleDynamically + ); } catch (fallbackError) { if (isRecoverableError(fallbackError, fallbackCode)) { recoverableError = true; @@ -507,15 +518,6 @@ function REPLServer(prompt, return cb(null); if (err === null) { - let parentURL; - try { - const { pathToFileURL } = require('internal/url'); - // Adding `/repl` prevents dynamic imports from loading relative - // to the parent of `process.cwd()`. - parentURL = pathToFileURL(path.join(process.cwd(), 'repl')).href; - } catch { - // Continue regardless of error. - } while (true) { try { if (self.replMode === module.exports.REPL_MODE_STRICT && @@ -524,14 +526,17 @@ function REPLServer(prompt, // value for statements and declarations that don't return a value. code = `'use strict'; void 0;\n${code}`; } - script = vm.createScript(code, { - filename: file, - displayErrors: true, - importModuleDynamically: (specifier, _, importAttributes) => { - return asyncESM.esmLoader.import(specifier, parentURL, - importAttributes); - }, - }); + script = makeContextifyScript( + code, // code + file, // filename, + 0, // lineOffset + 0, // columnOffset, + undefined, // cachedData + false, // produceCachedData + undefined, // parsingContext + hostDefinedOptionId, // hostDefinedOptionId + importModuleDynamically, // importModuleDynamically + ); } catch (e) { debug('parse error %j', code, e); if (wrappedCmd) { @@ -591,9 +596,9 @@ function REPLServer(prompt, }; if (self.useGlobal) { - result = script.runInThisContext(scriptOptions); + result = ReflectApply(runInThisContext, script, [scriptOptions]); } else { - result = script.runInContext(context, scriptOptions); + result = ReflectApply(runInContext, script, [context, scriptOptions]); } } finally { if (self.breakEvalOnSigint) { diff --git a/lib/vm.js b/lib/vm.js index fe2981019a6170..d396a3df8c0e13 100644 --- a/lib/vm.js +++ b/lib/vm.js @@ -39,13 +39,16 @@ const { ERR_INVALID_ARG_TYPE, } = require('internal/errors').codes; const { + validateArray, validateBoolean, validateBuffer, validateInt32, - validateObject, validateOneOf, + validateObject, validateString, + validateStringArray, validateUint32, + kValidateObjectAllowNullable, } = require('internal/validators'); const { emitExperimentalWarning, @@ -56,6 +59,7 @@ const { getHostDefinedOptionId, internalCompileFunction, isContext, + registerImportModuleDynamically, } = require('internal/vm'); const kParsingContext = Symbol('script parsing context'); @@ -105,13 +109,7 @@ class Script extends ContextifyScript { } if (importModuleDynamically !== undefined) { - const { importModuleDynamicallyWrap } = require('internal/vm/module'); - const { registerModule } = require('internal/modules/esm/utils'); - registerModule(this, { - __proto__: null, - importModuleDynamically: - importModuleDynamicallyWrap(importModuleDynamically), - }); + registerImportModuleDynamically(this, importModuleDynamically); } } @@ -298,7 +296,54 @@ function runInThisContext(code, options) { } function compileFunction(code, params, options = kEmptyObject) { - return internalCompileFunction(code, params, options).function; + validateString(code, 'code'); + if (params !== undefined) { + validateStringArray(params, 'params'); + } + const { + filename = '', + columnOffset = 0, + lineOffset = 0, + cachedData = undefined, + produceCachedData = false, + parsingContext = undefined, + contextExtensions = [], + importModuleDynamically, + } = options; + + validateString(filename, 'options.filename'); + validateInt32(columnOffset, 'options.columnOffset'); + validateInt32(lineOffset, 'options.lineOffset'); + if (cachedData !== undefined) + validateBuffer(cachedData, 'options.cachedData'); + validateBoolean(produceCachedData, 'options.produceCachedData'); + if (parsingContext !== undefined) { + if ( + typeof parsingContext !== 'object' || + parsingContext === null || + !isContext(parsingContext) + ) { + throw new ERR_INVALID_ARG_TYPE( + 'options.parsingContext', + 'Context', + parsingContext, + ); + } + } + validateArray(contextExtensions, 'options.contextExtensions'); + ArrayPrototypeForEach(contextExtensions, (extension, i) => { + const name = `options.contextExtensions[${i}]`; + validateObject(extension, name, kValidateObjectAllowNullable); + }); + + const hostDefinedOptionId = + getHostDefinedOptionId(importModuleDynamically, filename); + + return internalCompileFunction( + code, filename, lineOffset, columnOffset, + cachedData, produceCachedData, parsingContext, contextExtensions, + params, hostDefinedOptionId, importModuleDynamically, + ).function; } const measureMemoryModes = { diff --git a/test/message/eval_messages.out b/test/message/eval_messages.out index 3f44332c03a470..e07bbe4d6acd3c 100644 --- a/test/message/eval_messages.out +++ b/test/message/eval_messages.out @@ -2,10 +2,9 @@ [eval]:1 with(this){__filename} ^^^^ + SyntaxError: Strict mode code may not include a with statement - at new Script (node:vm:*:*) - at createScript (node:vm:*:*) - at Object.runInThisContext (node:vm:*:*) + at makeContextifyScript (node:internal/vm:*:*) at node:internal/process/execution:*:* at [eval]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -21,8 +20,7 @@ throw new Error("hello") Error: hello at [eval]:1:7 - at Script.runInThisContext (node:vm:*:*) - at Object.runInThisContext (node:vm:*:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [eval]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -37,8 +35,7 @@ throw new Error("hello") Error: hello at [eval]:1:7 - at Script.runInThisContext (node:vm:*:*) - at Object.runInThisContext (node:vm:*:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [eval]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -53,8 +50,7 @@ var x = 100; y = x; ReferenceError: y is not defined at [eval]:1:16 - at Script.runInThisContext (node:vm:*:*) - at Object.runInThisContext (node:vm:*:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [eval]-wrapper:*:* at runScript (node:internal/process/execution:*:*) diff --git a/test/message/stdin_messages.out b/test/message/stdin_messages.out index 3fd047aacb11a2..6afc8a62d7fcd9 100644 --- a/test/message/stdin_messages.out +++ b/test/message/stdin_messages.out @@ -4,9 +4,7 @@ with(this){__filename} ^^^^ SyntaxError: Strict mode code may not include a with statement - at new Script (node:vm:*) - at createScript (node:vm:*) - at Object.runInThisContext (node:vm:*) + at makeContextifyScript (node:internal/vm:*:*) at node:internal/process/execution:*:* at [stdin]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -14,6 +12,8 @@ SyntaxError: Strict mode code may not include a with statement at node:internal/main/eval_stdin:*:* at Socket. (node:internal/process/execution:*:*) at Socket.emit (node:events:*:*) + at endReadableNT (node:internal/streams/readable:*:*) + at process.processTicksAndRejections (node:internal/process/task_queues:*:*) Node.js * 42 @@ -24,8 +24,7 @@ throw new Error("hello") Error: hello at [stdin]:1:7 - at Script.runInThisContext (node:vm:*) - at Object.runInThisContext (node:vm:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [stdin]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -33,6 +32,7 @@ Error: hello at node:internal/main/eval_stdin:*:* at Socket. (node:internal/process/execution:*:*) at Socket.emit (node:events:*:*) + at endReadableNT (node:internal/streams/readable:*:*) Node.js * [stdin]:1 @@ -41,8 +41,7 @@ throw new Error("hello") Error: hello at [stdin]:1:* - at Script.runInThisContext (node:vm:*) - at Object.runInThisContext (node:vm:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [stdin]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -50,6 +49,7 @@ Error: hello at node:internal/main/eval_stdin:*:* at Socket. (node:internal/process/execution:*:*) at Socket.emit (node:events:*:*) + at endReadableNT (node:internal/streams/readable:*:*) Node.js * 100 @@ -59,8 +59,7 @@ let x = 100; y = x; ReferenceError: y is not defined at [stdin]:1:16 - at Script.runInThisContext (node:vm:*) - at Object.runInThisContext (node:vm:*) + at runScriptInThisContext (node:internal/vm:*:*) at node:internal/process/execution:*:* at [stdin]-wrapper:*:* at runScript (node:internal/process/execution:*:*) @@ -68,6 +67,7 @@ ReferenceError: y is not defined at node:internal/main/eval_stdin:*:* at Socket. (node:internal/process/execution:*:*) at Socket.emit (node:events:*:*) + at endReadableNT (node:internal/streams/readable:*:*) Node.js * From 9853fd96df31708a14d43b2090cd4b4a5a705b33 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 5 Oct 2023 23:08:44 +0200 Subject: [PATCH 153/232] vm: reject in importModuleDynamically without --experimental-vm-modules Users cannot access any API that can be used to return a module or module namespace in this callback without --experimental-vm-modules anyway, so this would eventually lead to a rejection. This patch rejects in this case with our own error message and use a constant host-defined option for the rejection, so that scripts with the same source can still be compiled using the compilation cache if no `import()` is actually called in the script. PR-URL: https://github.com/nodejs/node/pull/50137 Refs: https://github.com/nodejs/node/issues/35375 Reviewed-By: Geoffrey Booth Reviewed-By: Yagiz Nizipli Reviewed-By: Chengzhong Wu Reviewed-By: Antoine du Hamel --- doc/api/errors.md | 6 ++++ doc/api/vm.md | 24 ++++++++++++---- lib/internal/errors.js | 3 ++ lib/internal/modules/esm/utils.js | 8 +++++- lib/internal/vm.js | 16 +++++++++++ src/env_properties.h | 3 +- ...vm-dynamic-import-callback-missing-flag.js | 28 +++++++++++++++++++ 7 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 test/parallel/test-vm-dynamic-import-callback-missing-flag.js diff --git a/doc/api/errors.md b/doc/api/errors.md index 89048c6485df0f..a98f4d527e8659 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -3004,6 +3004,12 @@ An attempt was made to use something that was already closed. While using the Performance Timing API (`perf_hooks`), no valid performance entry types are found. + + +### `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG` + +A dynamic import callback was invoked without `--experimental-vm-modules`. + ### `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING` diff --git a/doc/api/vm.md b/doc/api/vm.md index ba16e2f4b24592..076aa812b83953 100644 --- a/doc/api/vm.md +++ b/doc/api/vm.md @@ -98,7 +98,9 @@ changes: when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. This option is part of the experimental modules API. We do not recommend - using it in a production environment. + using it in a production environment. If `--experimental-vm-modules` isn't + set, this callback will be ignored and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} * `importAttributes` {Object} The `"with"` value passed to the @@ -767,6 +769,9 @@ changes: * `importModuleDynamically` {Function} Called during evaluation of this module when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. + If `--experimental-vm-modules` isn't set, this callback will be ignored + and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `module` {vm.Module} * `importAttributes` {Object} The `"with"` value passed to the @@ -1025,7 +1030,9 @@ changes: when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. This option is part of the experimental modules API, and should not be - considered stable. + considered stable. If `--experimental-vm-modules` isn't + set, this callback will be ignored and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `function` {Function} * `importAttributes` {Object} The `"with"` value passed to the @@ -1249,7 +1256,9 @@ changes: when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. This option is part of the experimental modules API. We do not recommend - using it in a production environment. + using it in a production environment. If `--experimental-vm-modules` isn't + set, this callback will be ignored and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} * `importAttributes` {Object} The `"with"` value passed to the @@ -1348,7 +1357,9 @@ changes: when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. This option is part of the experimental modules API. We do not recommend - using it in a production environment. + using it in a production environment. If `--experimental-vm-modules` isn't + set, this callback will be ignored and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} * `importAttributes` {Object} The `"with"` value passed to the @@ -1428,7 +1439,9 @@ changes: when `import()` is called. If this option is not specified, calls to `import()` will reject with [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`][]. This option is part of the experimental modules API. We do not recommend - using it in a production environment. + using it in a production environment. If `--experimental-vm-modules` isn't + set, this callback will be ignored and calls to `import()` will reject with + [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`][]. * `specifier` {string} specifier passed to `import()` * `script` {vm.Script} * `importAttributes` {Object} The `"with"` value passed to the @@ -1592,6 +1605,7 @@ are not controllable through the timeout either. [Source Text Module Record]: https://tc39.es/ecma262/#sec-source-text-module-records [Synthetic Module Record]: https://heycam.github.io/webidl/#synthetic-module-records [V8 Embedder's Guide]: https://v8.dev/docs/embed#contexts +[`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG`]: errors.md#err_vm_dynamic_import_callback_missing_flag [`ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`]: errors.md#err_vm_dynamic_import_callback_missing [`ERR_VM_MODULE_STATUS`]: errors.md#err_vm_module_status [`Error`]: errors.md#class-error diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 76ce7867043c7d..a72236063b47fd 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -1821,6 +1821,9 @@ E('ERR_VALID_PERFORMANCE_ENTRY_TYPE', 'At least one valid performance entry type is required', Error); E('ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING', 'A dynamic import callback was not specified.', TypeError); +E('ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG', + 'A dynamic import callback was invoked without --experimental-vm-modules', + TypeError); E('ERR_VM_MODULE_ALREADY_LINKED', 'Module has already been linked', Error); E('ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA', 'Cached data cannot be created for a module which has been evaluated', Error); diff --git a/lib/internal/modules/esm/utils.js b/lib/internal/modules/esm/utils.js index a5b7bf0596139a..41077285452eac 100644 --- a/lib/internal/modules/esm/utils.js +++ b/lib/internal/modules/esm/utils.js @@ -14,9 +14,11 @@ const { } = internalBinding('util'); const { default_host_defined_options, + vm_dynamic_import_missing_flag, } = internalBinding('symbols'); const { + ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG, ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING, ERR_INVALID_ARG_VALUE, } = require('internal/errors').codes; @@ -132,7 +134,8 @@ const moduleRegistries = new SafeWeakMap(); */ function registerModule(referrer, registry) { const idSymbol = referrer[host_defined_option_symbol]; - if (idSymbol === default_host_defined_options) { + if (idSymbol === default_host_defined_options || + idSymbol === vm_dynamic_import_missing_flag) { // The referrer is compiled without custom callbacks, so there is // no registry to hold on to. We'll throw // ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING when a callback is @@ -173,6 +176,9 @@ async function importModuleDynamicallyCallback(symbol, specifier, attributes) { return importModuleDynamically(specifier, callbackReferrer, attributes); } } + if (symbol === vm_dynamic_import_missing_flag) { + throw new ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG(); + } throw new ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING(); } diff --git a/lib/internal/vm.js b/lib/internal/vm.js index 4f7b8c652f3c26..b67eb177b35f07 100644 --- a/lib/internal/vm.js +++ b/lib/internal/vm.js @@ -15,6 +15,7 @@ const { } = ContextifyScript.prototype; const { default_host_defined_options, + vm_dynamic_import_missing_flag, } = internalBinding('symbols'); const { validateFunction, @@ -22,6 +23,11 @@ const { kValidateObjectAllowArray, } = require('internal/validators'); +const { + getOptionValue, +} = require('internal/options'); + + function isContext(object) { validateObject(object, 'object', kValidateObjectAllowArray); @@ -41,6 +47,16 @@ function getHostDefinedOptionId(importModuleDynamically, filename) { // compilation cache can be hit. return default_host_defined_options; } + // We should've thrown here immediately when we introduced + // --experimental-vm-modules and importModuleDynamically, but since + // users are already using this callback to throw a similar error, + // we also defer the error to the time when an actual import() is called + // to avoid breaking them. To ensure that the isolate compilation + // cache can still be hit, use a constant sentinel symbol here. + if (!getOptionValue('--experimental-vm-modules')) { + return vm_dynamic_import_missing_flag; + } + return Symbol(filename); } diff --git a/src/env_properties.h b/src/env_properties.h index 82af371416f927..8c5b80fe5635ec 100644 --- a/src/env_properties.h +++ b/src/env_properties.h @@ -44,7 +44,8 @@ V(owner_symbol, "owner_symbol") \ V(onpskexchange_symbol, "onpskexchange") \ V(resource_symbol, "resource_symbol") \ - V(trigger_async_id_symbol, "trigger_async_id_symbol") + V(trigger_async_id_symbol, "trigger_async_id_symbol") \ + V(vm_dynamic_import_missing_flag, "vm_dynamic_import_missing_flag") // Strings are per-isolate primitives but Environment proxies them // for the sake of convenience. Strings should be ASCII-only. diff --git a/test/parallel/test-vm-dynamic-import-callback-missing-flag.js b/test/parallel/test-vm-dynamic-import-callback-missing-flag.js new file mode 100644 index 00000000000000..4b0d09ca3674a7 --- /dev/null +++ b/test/parallel/test-vm-dynamic-import-callback-missing-flag.js @@ -0,0 +1,28 @@ +'use strict'; + +const common = require('../common'); +const { Script, compileFunction } = require('vm'); +const assert = require('assert'); + +assert( + !process.execArgv.includes('--experimental-vm-modules'), + 'This test must be run without --experimental-vm-modules'); + +assert.rejects(async () => { + const script = new Script('import("fs")', { + importModuleDynamically: common.mustNotCall(), + }); + const imported = script.runInThisContext(); + await imported; +}, { + code: 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG' +}).then(common.mustCall()); + +assert.rejects(async () => { + const imported = compileFunction('return import("fs")', [], { + importModuleDynamically: common.mustNotCall(), + })(); + await imported; +}, { + code: 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAG' +}).then(common.mustCall()); From 6d7274e3ca921f458d218fc88ccc3b342b904049 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Tue, 17 Oct 2023 21:09:34 +0200 Subject: [PATCH 154/232] stream: reduce scope of readable bitmap details PR-URL: https://github.com/nodejs/node/pull/49963 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Raz Luvaton Reviewed-By: Luigi Pinca Reviewed-By: Rich Trott --- lib/internal/streams/readable.js | 289 ++++++++++++++++++++----------- 1 file changed, 191 insertions(+), 98 deletions(-) diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index 7ceb83d3f20523..a129b1b6f4b75d 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -72,7 +72,6 @@ const { } = require('internal/errors'); const { validateObject } = require('internal/validators'); -const kPaused = Symbol('kPaused'); const kState = Symbol('kState'); const { StringDecoder } = require('string_decoder'); @@ -84,6 +83,11 @@ const nop = () => {}; const { errorOrDestroy } = destroyImpl; +const kErroredValue = Symbol('kErroredValue'); +const kDefaultEncodingValue = Symbol('kDefaultEncodingValue'); +const kDecoderValue = Symbol('kDecoderValue'); +const kEncodingValue = Symbol('kEncodingValue'); + const kObjectMode = 1 << 0; const kEnded = 1 << 1; const kEndEmitted = 1 << 2; @@ -103,6 +107,14 @@ const kCloseEmitted = 1 << 15; const kMultiAwaitDrain = 1 << 16; const kReadingMore = 1 << 17; const kDataEmitted = 1 << 18; +const kErrored = 1 << 19; +const kDefaultUTF8Encoding = 1 << 20; +const kDecoder = 1 << 21; +const kEncoding = 1 << 22; +const kHasFlowing = 1 << 23; +const kFlowing = 1 << 24; +const kHasPaused = 1 << 25; +const kPaused = 1 << 26; // TODO(benjamingr) it is likely slower to do it this way than with free functions function makeBitMapDescriptor(bit) { @@ -151,8 +163,93 @@ ObjectDefineProperties(ReadableState.prototype, { // If true, a maybeReadMore has been scheduled. readingMore: makeBitMapDescriptor(kReadingMore), dataEmitted: makeBitMapDescriptor(kDataEmitted), + + // Indicates whether the stream has errored. When true no further + // _read calls, 'data' or 'readable' events should occur. This is needed + // since when autoDestroy is disabled we need a way to tell whether the + // stream has failed. + errored: { + __proto__: null, + enumerable: false, + get() { + return (this[kState] & kErrored) !== 0 ? this[kErroredValue] : null; + }, + set(value) { + if (value) { + this[kErroredValue] = value; + this[kState] |= kErrored; + } else { + this[kState] &= ~kErrored; + } + }, + }, + + defaultEncoding: { + __proto__: null, + enumerable: false, + get() { return (this[kState] & kDefaultUTF8Encoding) !== 0 ? 'utf8' : this[kDefaultEncodingValue]; }, + set(value) { + if (value === 'utf8' || value === 'utf-8') { + this[kState] |= kDefaultUTF8Encoding; + } else { + this[kState] &= ~kDefaultUTF8Encoding; + this[kDefaultEncodingValue] = value; + } + }, + }, + + decoder: { + __proto__: null, + enumerable: false, + get() { + return (this[kState] & kDecoder) !== 0 ? this[kDecoderValue] : null; + }, + set(value) { + if (value) { + this[kDecoderValue] = value; + this[kState] |= kDecoder; + } else { + this[kState] &= ~kDecoder; + } + }, + }, + + encoding: { + __proto__: null, + enumerable: false, + get() { + return (this[kState] & kEncoding) !== 0 ? this[kEncodingValue] : null; + }, + set(value) { + if (value) { + this[kEncodingValue] = value; + this[kState] |= kEncoding; + } else { + this[kState] &= ~kEncoding; + } + }, + }, + + flowing: { + __proto__: null, + enumerable: false, + get() { + return (this[kState] & kHasFlowing) !== 0 ? (this[kState] & kFlowing) !== 0 : null; + }, + set(value) { + if (value == null) { + this[kState] &= ~(kHasFlowing | kFlowing); + } else if (value) { + this[kState] |= (kHasFlowing | kFlowing); + } else { + this[kState] |= kHasFlowing; + this[kState] &= ~kFlowing; + } + }, + }, }); + function ReadableState(options, stream, isDuplex) { // Duplex streams are both readable and writable, but share // the same options object. @@ -184,9 +281,6 @@ function ReadableState(options, stream, isDuplex) { this.buffer = new BufferList(); this.length = 0; this.pipes = []; - this.flowing = null; - - this[kPaused] = null; // Should close be emitted on destroy. Defaults to true. if (options && options.emitClose === false) this[kState] &= ~kEmitClose; @@ -194,20 +288,12 @@ function ReadableState(options, stream, isDuplex) { // Should .destroy() be called after 'end' (and potentially 'finish'). if (options && options.autoDestroy === false) this[kState] &= ~kAutoDestroy; - - // Indicates whether the stream has errored. When true no further - // _read calls, 'data' or 'readable' events should occur. This is needed - // since when autoDestroy is disabled we need a way to tell whether the - // stream has failed. - this.errored = null; - - // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. const defaultEncoding = options?.defaultEncoding; - if (defaultEncoding == null) { - this.defaultEncoding = 'utf8'; + if (defaultEncoding == null || defaultEncoding === 'utf8' || defaultEncoding === 'utf-8') { + this[kState] |= kDefaultUTF8Encoding; } else if (Buffer.isEncoding(defaultEncoding)) { this.defaultEncoding = defaultEncoding; } else { @@ -218,8 +304,6 @@ function ReadableState(options, stream, isDuplex) { // type: null | Writable | Set. this.awaitDrainWriters = null; - this.decoder = null; - this.encoding = null; if (options && options.encoding) { this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; @@ -363,7 +447,6 @@ function readableAddChunkPushByteMode(stream, state, chunk, encoding) { if (chunk === null) { state[kState] &= ~kReading; onEofChunk(stream, state); - return false; } @@ -391,22 +474,20 @@ function readableAddChunkPushByteMode(stream, state, chunk, encoding) { return canPushMore(state); } - if (state.ended) { + if ((state[kState] & kEnded) !== 0) { errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); - return false; } - if (state.destroyed || state.errored) { + if ((state[kState] & (kDestroyed | kErrored)) !== 0) { return false; } state[kState] &= ~kReading; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); + if ((state[kState] & kDecoder) !== 0 && !encoding) { + chunk = state[kDecoderValue].write(chunk); if (chunk.length === 0) { maybeReadMore(stream, state); - return canPushMore(state); } } @@ -419,22 +500,22 @@ function readableAddChunkPushObjectMode(stream, state, chunk, encoding) { if (chunk === null) { state[kState] &= ~kReading; onEofChunk(stream, state); - return false; } - if (state.ended) { + if ((state[kState] & kEnded) !== 0) { errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); return false; } - if (state.destroyed || state.errored) { + if ((state[kState] & (kDestroyed | kErrored)) !== 0) { return false; } state[kState] &= ~kReading; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); + + if ((state[kState] & kDecoder) !== 0 && !encoding) { + chunk = state[kDecoderValue].write(chunk); } addChunk(stream, state, chunk, false); @@ -445,12 +526,12 @@ function canPushMore(state) { // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. - return !state.ended && + return (state[kState] & kEnded) === 0 && (state.length < state.highWaterMark || state.length === 0); } function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync && + if ((state[kState] & (kFlowing | kSync)) === kFlowing && state.length === 0 && stream.listenerCount('data') > 0) { // Use the guard to avoid creating `Set()` repeatedly // when we have multiple pipes. @@ -460,11 +541,11 @@ function addChunk(stream, state, chunk, addToFront) { state.awaitDrainWriters = null; } - state.dataEmitted = true; + state[kState] |= kDataEmitted; stream.emit('data', chunk); } else { // Update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; + state.length += (state[kState] & kObjectMode) !== 0 ? 1 : chunk.length; if (addToFront) state.buffer.unshift(chunk); else @@ -478,7 +559,7 @@ function addChunk(stream, state, chunk, addToFront) { Readable.prototype.isPaused = function() { const state = this._readableState; - return state[kPaused] === true || state.flowing === false; + return (state[kState] & kPaused) !== 0 || (state[kState] & (kHasFlowing | kFlowing)) === kHasFlowing; }; // Backwards compatibility. @@ -529,13 +610,13 @@ function howMuchToRead(n, state) { return 1; if (NumberIsNaN(n)) { // Only flow one buffer at a time. - if (state.flowing && state.length) + if ((state[kState] & kFlowing) !== 0 && state.length) return state.buffer.first().length; return state.length; } if (n <= state.length) return n; - return state.ended ? state.length : 0; + return (state[kState] & kEnded) !== 0 ? state.length : 0; } // You can override either this method, or the async _read(n) below. @@ -562,13 +643,13 @@ Readable.prototype.read = function(n) { // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. if (n === 0 && - state.needReadable && + (state[kState] & kNeedReadable) !== 0 && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || - state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) + (state[kState] & kEnded) !== 0)) { + debug('read: emitReadable', state.length, (state[kState] & kEnded) !== 0); + if (state.length === 0 && (state[kState] & kEnded) !== 0) endReadable(this); else emitReadable(this); @@ -578,7 +659,7 @@ Readable.prototype.read = function(n) { n = howMuchToRead(n, state); // If we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { + if (n === 0 && (state[kState] & kEnded) !== 0) { if (state.length === 0) endReadable(this); return null; @@ -619,8 +700,7 @@ Readable.prototype.read = function(n) { // However, if we've ended, then there's no point, if we're already // reading, then it's unnecessary, if we're constructing we have to wait, // and if we're destroyed or errored, then it's not allowed, - if (state.ended || state.reading || state.destroyed || state.errored || - !state.constructed) { + if ((state[kState] & (kReading | kEnded | kDestroyed | kErrored | kConstructed)) !== kConstructed) { doRead = false; debug('reading, ended or constructing', doRead); } else if (doRead) { @@ -640,7 +720,7 @@ Readable.prototype.read = function(n) { // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) + if ((state[kState] & kReading) === 0) n = howMuchToRead(nOrig, state); } @@ -651,11 +731,11 @@ Readable.prototype.read = function(n) { ret = null; if (ret === null) { - state.needReadable = state.length <= state.highWaterMark; + state[kState] |= state.length <= state.highWaterMark ? kNeedReadable : 0; n = 0; } else { state.length -= n; - if (state.multiAwaitDrain) { + if ((state[kState] & kMultiAwaitDrain) !== 0) { state.awaitDrainWriters.clear(); } else { state.awaitDrainWriters = null; @@ -665,16 +745,16 @@ Readable.prototype.read = function(n) { if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. - if (!state.ended) - state.needReadable = true; + if ((state[kState] & kEnded) === 0) + state[kState] |= kNeedReadable; // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) + if (nOrig !== n && (state[kState] & kEnded) !== 0) endReadable(this); } - if (ret !== null && !state.errorEmitted && !state.closeEmitted) { - state.dataEmitted = true; + if (ret !== null && (state[kState] & (kErrorEmitted | kCloseEmitted)) === 0) { + state[kState] |= kDataEmitted; this.emit('data', ret); } @@ -683,25 +763,26 @@ Readable.prototype.read = function(n) { function onEofChunk(stream, state) { debug('onEofChunk'); - if (state.ended) return; - if (state.decoder) { - const chunk = state.decoder.end(); + if ((state[kState] & kEnded) !== 0) return; + const decoder = (state[kState] & kDecoder) !== 0 ? state[kDecoderValue] : null; + if (decoder) { + const chunk = decoder.end(); if (chunk && chunk.length) { state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; + state.length += (state[kState] & kObjectMode) !== 0 ? 1 : chunk.length; } } - state.ended = true; + state[kState] |= kEnded; - if (state.sync) { + if ((state[kState] & kSync) !== 0) { // If we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() // the readable code triggers during a read() call. emitReadable(stream); } else { // Emit 'readable' now to make sure it gets picked up. - state.needReadable = false; - state.emittedReadable = true; + state[kState] &= ~kNeedReadable; + state[kState] |= kEmittedReadable; // We have to emit readable now that we are EOF. Modules // in the ecosystem (e.g. dicer) rely on this event being sync. emitReadable_(stream); @@ -713,21 +794,21 @@ function onEofChunk(stream, state) { // a nextTick recursion warning, but that's not so bad. function emitReadable(stream) { const state = stream._readableState; - debug('emitReadable', state.needReadable, state.emittedReadable); - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; + debug('emitReadable'); + state[kState] &= ~kNeedReadable; + if ((state[kState] & kEmittedReadable) === 0) { + debug('emitReadable', (state[kState] & kFlowing) !== 0); + state[kState] |= kEmittedReadable; process.nextTick(emitReadable_, stream); } } function emitReadable_(stream) { const state = stream._readableState; - debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && !state.errored && (state.length || state.ended)) { + debug('emitReadable_'); + if ((state[kState] & (kDestroyed | kErrored)) === 0 && (state.length || state.ended)) { stream.emit('readable'); - state.emittedReadable = false; + state[kState] &= ~kEmittedReadable; } // The stream needs another readable event if: @@ -736,10 +817,9 @@ function emitReadable_(stream) { // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. - state.needReadable = - !state.flowing && - !state.ended && - state.length <= state.highWaterMark; + state[kState] |= + (state[kState] & (kFlowing | kEnded)) === 0 && + state.length <= state.highWaterMark ? kNeedReadable : 0; flow(stream); } @@ -751,8 +831,8 @@ function emitReadable_(stream) { // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. function maybeReadMore(stream, state) { - if (!state.readingMore && state.constructed) { - state.readingMore = true; + if ((state[kState] & (kReadingMore | kConstructed)) === kConstructed) { + state[kState] |= kReadingMore; process.nextTick(maybeReadMore_, stream, state); } } @@ -781,9 +861,9 @@ function maybeReadMore_(stream, state) { // called push() with new data. In this case we skip performing more // read()s. The execution ends in this method again after the _read() ends // up calling push() with more data. - while (!state.reading && !state.ended && + while ((state[kState] & (kReading | kEnded)) === 0 && (state.length < state.highWaterMark || - (state.flowing && state.length === 0))) { + ((state[kState] & kFlowing) !== 0 && state.length === 0))) { const len = state.length; debug('maybeReadMore read 0'); stream.read(0); @@ -791,7 +871,7 @@ function maybeReadMore_(stream, state) { // Didn't get any data, stop spinning. break; } - state.readingMore = false; + state[kState] &= ~kReadingMore; } // Abstract method. to be overridden in specific implementation classes. @@ -808,7 +888,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) { if (state.pipes.length === 1) { if (!state.multiAwaitDrain) { - state.multiAwaitDrain = true; + state[kState] |= kMultiAwaitDrain; state.awaitDrainWriters = new SafeSet( state.awaitDrainWriters ? [state.awaitDrainWriters] : [], ); @@ -1089,16 +1169,16 @@ function updateReadableListening(self) { const state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && state[kPaused] === false) { + if ((state[kState] & (kHasPaused | kPaused | kResumeScheduled)) === (kHasPaused | kResumeScheduled)) { // Flowing needs to be set to true now, otherwise // the upcoming resume will not flow. - state.flowing = true; + state[kState] |= kHasFlowing | kFlowing; // Crude way to check if we should resume. } else if (self.listenerCount('data') > 0) { self.resume(); - } else if (!state.readableListening) { - state.flowing = null; + } else if ((state[kState] & kReadableListening) === 0) { + state[kState] &= ~(kHasFlowing | kFlowing); } } @@ -1111,15 +1191,21 @@ function nReadingNextTick(self) { // If the user uses them, then switch into old mode. Readable.prototype.resume = function() { const state = this._readableState; - if (!state.flowing) { + if ((state[kState] & kFlowing) === 0) { debug('resume'); // We flow only if there is no one listening // for readable, but we still have to call // resume(). - state.flowing = !state.readableListening; + state[kState] |= kHasFlowing; + if (!state.readableListening) { + state[kState] |= kFlowing; + } else { + state[kState] &= ~kFlowing; + } resume(this, state); } - state[kPaused] = false; + state[kState] |= kHasPaused; + state[kState] &= ~kPaused; return this; }; @@ -1131,33 +1217,35 @@ function resume(stream, state) { } function resume_(stream, state) { - debug('resume', state.reading); - if (!state.reading) { + debug('resume', (state[kState] & kReading) !== 0); + if ((state[kState] & kReading) === 0) { stream.read(0); } - state.resumeScheduled = false; + state[kState] &= ~kResumeScheduled; stream.emit('resume'); flow(stream); - if (state.flowing && !state.reading) + if ((state[kState] & (kFlowing | kReading)) === kFlowing) stream.read(0); } Readable.prototype.pause = function() { - debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { + const state = this._readableState; + debug('call pause'); + if (state.flowing !== false) { debug('pause'); - this._readableState.flowing = false; + state[kState] |= kHasFlowing; + state[kState] &= ~kFlowing; this.emit('pause'); } - this._readableState[kPaused] = true; + state[kState] |= kHasPaused | kPaused; return this; }; function flow(stream) { const state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null); + debug('flow'); + while ((state[kState] & kFlowing) !== 0 && stream.read() !== null); } // Wrap an old-style stream as the async data source. @@ -1436,10 +1524,15 @@ ObjectDefineProperties(ReadableState.prototype, { paused: { __proto__: null, get() { - return this[kPaused] !== false; + return (this[kState] & kPaused) !== 0; }, set(value) { - this[kPaused] = !!value; + this[kState] |= kHasPaused; + if (value) { + this[kState] |= kPaused; + } else { + this[kState] &= ~kPaused; + } }, }, }); @@ -1479,9 +1572,9 @@ function fromList(n, state) { function endReadable(stream) { const state = stream._readableState; - debug('endReadable', state.endEmitted); - if (!state.endEmitted) { - state.ended = true; + debug('endReadable', (state[kState] & kEndEmitted) !== 0); + if ((state[kState] & kEndEmitted) === 0) { + state[kState] |= kEnded; process.nextTick(endReadableNT, state, stream); } } From c75264b1f9bd34dff8a1c7daa23f768d2841cd5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Louren=C3=A7o?= Date: Tue, 17 Oct 2023 15:59:29 -0300 Subject: [PATCH 155/232] doc: add H4ad to collaborators Fixes: https://github.com/nodejs/node/issues/50103 PR-URL: https://github.com/nodejs/node/pull/50217 Reviewed-By: Yagiz Nizipli Reviewed-By: Raz Luvaton --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 46f118d31c4cfa..d96132374644e0 100644 --- a/README.md +++ b/README.md @@ -359,6 +359,8 @@ For information about the governance of the Node.js project, see **Guy Bedford** <> (he/him) * [HarshithaKP](https://github.com/HarshithaKP) - **Harshitha K P** <> (she/her) +* [H4ad](https://github.com/himself65) - + **Vinícius Lourenço Claro Cardoso** <> (he/him) * [himself65](https://github.com/himself65) - **Zeyu "Alex" Yang** <> (he/him) * [iansu](https://github.com/iansu) - From f37b577b143e3f44cf91bd91befc9baa7a8a4ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vinicius=20Louren=C3=A7o?= <12551007+H4ad@users.noreply.github.com> Date: Tue, 17 Oct 2023 16:31:49 -0300 Subject: [PATCH 156/232] doc: fix H4ad collaborator sort PR-URL: https://github.com/nodejs/node/pull/50218 Reviewed-By: Yagiz Nizipli Reviewed-By: Moshe Atlow Reviewed-By: Matthew Aitken Reviewed-By: Richard Lau --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d96132374644e0..1f1027e1b57ecf 100644 --- a/README.md +++ b/README.md @@ -357,10 +357,10 @@ For information about the governance of the Node.js project, see **Gireesh Punathil** <> (he/him) * [guybedford](https://github.com/guybedford) - **Guy Bedford** <> (he/him) +* [H4ad](https://github.com/H4ad) - + **Vinícius Lourenço Claro Cardoso** <> (he/him) * [HarshithaKP](https://github.com/HarshithaKP) - **Harshitha K P** <> (she/her) -* [H4ad](https://github.com/himself65) - - **Vinícius Lourenço Claro Cardoso** <> (he/him) * [himself65](https://github.com/himself65) - **Zeyu "Alex" Yang** <> (he/him) * [iansu](https://github.com/iansu) - From ffa94612fdc366648f027d43039e0a526fd52478 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 18 Oct 2023 02:46:38 +0200 Subject: [PATCH 157/232] doc: fix typo in dgram docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50211 Reviewed-By: Marco Ippolito Reviewed-By: Luigi Pinca Reviewed-By: Tobias Nießen Reviewed-By: Vinícius Lourenço Claro Cardoso --- doc/api/dgram.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/dgram.md b/doc/api/dgram.md index c46511994a72b9..1d804e82ab8f60 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -902,7 +902,7 @@ to exclude the socket from the reference counting that keeps the Node.js process active, allowing the process to exit even if the socket is still listening. -Calling `socket.unref()` multiple times will have no addition effect. +Calling `socket.unref()` multiple times will have no additional effect. The `socket.unref()` method returns a reference to the socket so calls can be chained. From 35164fa46633ce58cda2a40ffe519e6725b2872c Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Tue, 17 Oct 2023 21:51:41 -0400 Subject: [PATCH 158/232] fs: add flush option to appendFile() functions This commit adds documentation and tests for the 'flush' option of the fs.appendFile family of functions. Technically, support was indirectly added in #50009, but this makes it more official. Refs: https://github.com/nodejs/node/issues/49886 Refs: https://github.com/nodejs/node/pull/50009 PR-URL: https://github.com/nodejs/node/pull/50095 Reviewed-By: Matteo Collina --- doc/api/fs.md | 21 ++++ test/parallel/test-fs-append-file-flush.js | 114 +++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 test/parallel/test-fs-append-file-flush.js diff --git a/doc/api/fs.md b/doc/api/fs.md index 8442fa2a5a18b4..7a544a59593e08 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -180,6 +180,9 @@ longer be used. * `path` {string|Buffer|URL|FileHandle} filename or {FileHandle} @@ -886,6 +895,8 @@ added: v10.0.0 * `encoding` {string|null} **Default:** `'utf8'` * `mode` {integer} **Default:** `0o666` * `flag` {string} See [support of file system `flags`][]. **Default:** `'a'`. + * `flush` {boolean} If `true`, the underlying file descriptor is flushed + prior to closing it. **Default:** `false`. * Returns: {Promise} Fulfills with `undefined` upon success. Asynchronously append data to a file, creating the file if it does not yet @@ -2028,6 +2039,9 @@ the user from reading or writing to it. @@ -2858,7 +2863,7 @@ changes: > Stability: 1 - `stream.compose` is experimental. * `streams` {Stream\[]|Iterable\[]|AsyncIterable\[]|Function\[]| - ReadableStream\[]|WritableStream\[]|TransformStream\[]} + ReadableStream\[]|WritableStream\[]|TransformStream\[]|Duplex\[]|Function} * Returns: {stream.Duplex} Combines two or more streams into a `Duplex` stream that writes to the From 3441e1982d906d32cdb2934c50fbe6d1d42f2094 Mon Sep 17 00:00:00 2001 From: Jithil P Ponnan Date: Thu, 19 Oct 2023 17:37:09 +1100 Subject: [PATCH 178/232] test: improve code coverage of diagnostics_channel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit test: improve code coverage of diagnostics_channel PR-URL: https://github.com/nodejs/node/pull/50053 Reviewed-By: Gerhard Stöbich --- ...tics-channel-tracing-channel-args-types.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/parallel/test-diagnostics-channel-tracing-channel-args-types.js diff --git a/test/parallel/test-diagnostics-channel-tracing-channel-args-types.js b/test/parallel/test-diagnostics-channel-tracing-channel-args-types.js new file mode 100644 index 00000000000000..5ae55badc4ac8e --- /dev/null +++ b/test/parallel/test-diagnostics-channel-tracing-channel-args-types.js @@ -0,0 +1,39 @@ +'use strict'; + +require('../common'); +const dc = require('diagnostics_channel'); +const assert = require('assert'); + +let channel; + +// tracingChannel creating with name +channel = dc.tracingChannel('test'); +assert.strictEqual(channel.start.name, 'tracing:test:start'); + +// tracingChannel creating with channels +channel = dc.tracingChannel({ + start: dc.channel('tracing:test:start'), + end: dc.channel('tracing:test:end'), + asyncStart: dc.channel('tracing:test:asyncStart'), + asyncEnd: dc.channel('tracing:test:asyncEnd'), + error: dc.channel('tracing:test:error'), +}); + +// tracingChannel creating without nameOrChannels must throw TypeError +assert.throws(() => (channel = dc.tracingChannel(0)), { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + message: + /The "nameOrChannels" argument must be of type string or an instance of Channel or Object/, +}); + +// tracingChannel creating without instance of Channel must throw error +assert.throws(() => (channel = dc.tracingChannel({ start: '' })), { + code: 'ERR_INVALID_ARG_TYPE', + message: /The "nameOrChannels\.start" property must be an instance of Channel/, +}); + +// tracingChannel creating with empty nameOrChannels must throw error +assert.throws(() => (channel = dc.tracingChannel({})), { + message: /Cannot convert undefined or null to object/, +}); From 5c56081d670cf90dff3aa29f84c74a36f35f597f Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 18 Oct 2023 17:18:26 +0200 Subject: [PATCH 179/232] test: deflake `test-loaders-workers-spawned` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50251 Fixes: https://github.com/nodejs/node/issues/50247 Reviewed-By: Yagiz Nizipli Reviewed-By: Vinícius Lourenço Claro Cardoso Reviewed-By: Luigi Pinca --- test/es-module/test-loaders-workers-spawned.mjs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/es-module/test-loaders-workers-spawned.mjs b/test/es-module/test-loaders-workers-spawned.mjs index a04d8edb041e36..bcd651f5ad6c3f 100644 --- a/test/es-module/test-loaders-workers-spawned.mjs +++ b/test/es-module/test-loaders-workers-spawned.mjs @@ -48,8 +48,14 @@ describe('Worker threads do not spawn infinitely', { concurrency: true }, () => ]); assert.strictEqual(stderr, ''); + // We are validating that: + // 1. the `--require` flag is run first from the main thread (and A is printed). + // 2. the `--require` flag is then run on the loader thread (and A is printed). + // 3. the `--loader` module is executed (and B is printed). + // 4. the `--import` module is evaluated once, on the main thread (and C is printed). + // 5. the user code is finally executed (and D is printed). // The worker code should always run before the --import, but the console.log might arrive late. - assert.match(stdout, /^A\r?\nA\r?\n(B\r?\nC|C\r?\nB)\r?\nD\r?\n$/); + assert.match(stdout, /^A\r?\n(A\r?\nB\r?\nC|A\r?\nC\r?\nB|C\r?\nA\r?\nB)\r?\nD\r?\n$/); assert.strictEqual(code, 0); assert.strictEqual(signal, null); }); From 458d9a82e39444d3ca1861537eff7599e6ab19f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Thu, 19 Oct 2023 13:47:45 +0200 Subject: [PATCH 180/232] buffer: remove unnecessary assignment in fromString The assignment to the encoding variable has no effect. Refs: https://github.com/nodejs/node/pull/29217 PR-URL: https://github.com/nodejs/node/pull/50199 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca --- lib/buffer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/buffer.js b/lib/buffer.js index 0ff7c1920adbba..ee30c69cc9611c 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -475,7 +475,6 @@ function fromString(string, encoding) { if (string.length === 0) return new FastBuffer(); ops = encodingOps.utf8; - encoding = undefined; } else { ops = getEncodingOps(encoding); if (ops === undefined) From 5d4b5ff1b8b4396535cc6db6cf223252098b3164 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Thu, 19 Oct 2023 12:03:49 -0400 Subject: [PATCH 181/232] test: set `test-structuredclone-*` as flaky MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50261 Refs: https://github.com/nodejs/node/issues/50260 Reviewed-By: Zeyu "Alex" Yang Reviewed-By: Vinícius Lourenço Claro Cardoso --- test/pummel/pummel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/pummel/pummel.status b/test/pummel/pummel.status index 143450986e46c4..abd8b8957df0d4 100644 --- a/test/pummel/pummel.status +++ b/test/pummel/pummel.status @@ -9,6 +9,8 @@ prefix pummel [$system==win32] # https://github.com/nodejs/node/issues/40728 test-fs-watch-non-recursive: PASS,FLAKY +# https://github.com/nodejs/node/issues/50260 +test-structuredclone-jstransferable: PASS,FLAKY [$system==linux] # https://github.com/nodejs/node/issues/38226 From e8ebed7a241a7b150659adedf3d08cbc52643eda Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 19 Oct 2023 10:40:28 -0700 Subject: [PATCH 182/232] meta: move Trott to TSC regular member At the current time, I'm not able to give Node.js the time and attention it needs and deserves from a voting TSC member. I'm proud of the work and efforts I've made as a TSC voting member, and I want to leave before I'm less happy with my efforts. Thanks for all the trust and good will over the years. PR-URL: https://github.com/nodejs/node/pull/50297 Reviewed-By: Tierney Cyren Reviewed-By: Richard Lau --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f1027e1b57ecf..70a130c5fa7d07 100644 --- a/README.md +++ b/README.md @@ -204,8 +204,6 @@ For information about the governance of the Node.js project, see **Michaël Zasso** <> (he/him) * [tniessen](https://github.com/tniessen) - **Tobias Nießen** <> (he/him) -* [Trott](https://github.com/Trott) - - **Rich Trott** <> (he/him) #### TSC regular members @@ -233,6 +231,8 @@ For information about the governance of the Node.js project, see **Rod Vagg** <> * [TimothyGu](https://github.com/TimothyGu) - **Tiancheng "Timothy" Gu** <> (he/him) +* [Trott](https://github.com/Trott) - + **Rich Trott** <> (he/him)
                            From 0dce19c8f6582f414ae717d3fe5cd0f2da1254ab Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Thu, 19 Oct 2023 22:15:13 -0400 Subject: [PATCH 183/232] test: set crypto-timing test as flaky PR-URL: https://github.com/nodejs/node/pull/50232 Refs: https://github.com/nodejs/node/issues/38226 Reviewed-By: Ruy Adorno Reviewed-By: Filip Skokan --- test/pummel/pummel.status | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/pummel/pummel.status b/test/pummel/pummel.status index abd8b8957df0d4..589647bcb741fa 100644 --- a/test/pummel/pummel.status +++ b/test/pummel/pummel.status @@ -31,3 +31,7 @@ test-heapsnapshot-near-heap-limit: PASS,FLAKY [$system==ibmi] # https://github.com/nodejs/node/issues/39683 test-regress-GH-892: PASS, FLAKY + +[$arch==s390x] +# https://github.com/nodejs/node/issues/38226 +test-crypto-timing-safe-equal-benchmarks: PASS,FLAKY From a9ba29ba103957f236a73ec3b6e87313972aa6b0 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Fri, 20 Oct 2023 12:27:27 +0100 Subject: [PATCH 184/232] doc: fix release process table of contents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The table of contents for the release process still references a deleted section. Remove that reference, and renumber the following table of contents entries so that they link through to the correct sections. PR-URL: https://github.com/nodejs/node/pull/50216 Refs: https://github.com/nodejs/node/pull/45858 Reviewed-By: Luigi Pinca Reviewed-By: Michaël Zasso Reviewed-By: Tobias Nießen Reviewed-By: Rafael Gonzaga --- doc/contributing/releases.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index 1d3bd71194caf4..740cab058262e0 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -32,9 +32,8 @@ official release builds for Node.js, hosted on . * [16. Check the release](#16-check-the-release) * [17. Create a blog post](#17-create-a-blog-post) * [18. Create the release on GitHub](#18-create-the-release-on-github) - * [19. Cleanup](#19-cleanup) - * [20. Announce](#20-announce) - * [21. Celebrate](#21-celebrate) + * [19. Announce](#19-announce) + * [20. Celebrate](#20-celebrate) * [LTS releases](#lts-releases) * [Major releases](#major-releases) From 788714b28fbc015e2a3b6bad9d9442c749127a18 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Fri, 20 Oct 2023 14:56:44 +0200 Subject: [PATCH 185/232] test: reduce the number of requests and parsers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The maximum number of parsers in the free list is set to 1000. However the test does not need to use this maximum. Reduce it to 50. Refs: https://github.com/nodejs/node/pull/50228#issuecomment-1768293624 PR-URL: https://github.com/nodejs/node/pull/50240 Fixes: https://github.com/nodejs/node/issues/49564 Reviewed-By: Yagiz Nizipli Reviewed-By: Vinícius Lourenço Claro Cardoso --- test/sequential/test-http-regr-gh-2928.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/sequential/test-http-regr-gh-2928.js b/test/sequential/test-http-regr-gh-2928.js index 25476e0453c53b..f6a9e1603288a4 100644 --- a/test/sequential/test-http-regr-gh-2928.js +++ b/test/sequential/test-http-regr-gh-2928.js @@ -8,6 +8,8 @@ const httpCommon = require('_http_common'); const { HTTPParser } = require('_http_common'); const net = require('net'); +httpCommon.parsers.max = 50; + const COUNT = httpCommon.parsers.max + 1; const parsers = new Array(COUNT); From 1bfcf817af57c9640da1df89c32b155724338115 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Fri, 20 Oct 2023 06:28:18 -0700 Subject: [PATCH 186/232] http2: allow streams to complete gracefully after goaway A detailed analysis of the cause of this bug is in my linked comment on the corresponding issue. The primary fix is the new setImmediate call in Http2Stream#_destroy, which prevents a re-entrant call into Http2Session::SendPendingData when sending trailers after the Http2Session has been shut down, allowing the trailer data to be flushed properly before the socket is closed. As a result of this change, writes can be initiated later in the lifetime of the Http2Session. So, when a JSStreamSocket is used as the underlying socket reference for an Http2Session, it needs to be able to accept write calls after it is closed. In addition, now that outgoing data can be flushed differently after a session is closed, in two tests clients receive errors that they previously did not receive. I believe the new errors are more correct, so I changed the tests to match. Fixes: https://github.com/nodejs/node/issues/42713 Refs: https://github.com/nodejs/node/issues/42713#issuecomment-1756140062 PR-URL: https://github.com/nodejs/node/pull/50202 Reviewed-By: Matteo Collina Reviewed-By: Rafael Gonzaga --- lib/internal/http2/core.js | 7 +++++-- lib/internal/js_stream_socket.js | 5 ++++- .../test-h2-large-header-cause-client-to-hangup.js | 10 ++++++++-- .../parallel/test-http2-exceeds-server-trailer-size.js | 8 ++++++-- .../test-http2-trailers-after-session-close.js | 3 --- 5 files changed, 23 insertions(+), 10 deletions(-) rename test/{known_issues => parallel}/test-http2-trailers-after-session-close.js (89%) diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 1a689859aff752..909946816c7495 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -2358,8 +2358,11 @@ class Http2Stream extends Duplex { // This notifies the session that this stream has been destroyed and // gives the session the opportunity to clean itself up. The session // will destroy if it has been closed and there are no other open or - // pending streams. - session[kMaybeDestroy](); + // pending streams. Delay with setImmediate so we don't do it on the + // nghttp2 stack. + setImmediate(() => { + session[kMaybeDestroy](); + }); callback(err); } // The Http2Stream can be destroyed if it has closed and if the readable diff --git a/lib/internal/js_stream_socket.js b/lib/internal/js_stream_socket.js index 70d6d03069f3f1..a6aee73f468b08 100644 --- a/lib/internal/js_stream_socket.js +++ b/lib/internal/js_stream_socket.js @@ -179,10 +179,13 @@ class JSStreamSocket extends Socket { // anything. doClose will call finishWrite with ECANCELED for us shortly. this[kCurrentWriteRequest] = req; // Store req, for doClose to cancel return 0; + } else if (this._handle === null) { + // If this._handle is already null, there is nothing left to do with a + // pending write request, so we discard it. + return 0; } const handle = this._handle; - assert(handle !== null); const self = this; diff --git a/test/parallel/test-h2-large-header-cause-client-to-hangup.js b/test/parallel/test-h2-large-header-cause-client-to-hangup.js index b8b08cecf6817c..eb18d9e9a20ae7 100644 --- a/test/parallel/test-h2-large-header-cause-client-to-hangup.js +++ b/test/parallel/test-h2-large-header-cause-client-to-hangup.js @@ -7,7 +7,7 @@ const http2 = require('http2'); const assert = require('assert'); const { DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE, - NGHTTP2_CANCEL, + NGHTTP2_FRAME_SIZE_ERROR, } = http2.constants; const headerSize = DEFAULT_SETTINGS_MAX_HEADER_LIST_SIZE; @@ -28,11 +28,17 @@ server.listen(0, common.mustCall(() => { function send() { const stream = clientSession.request({ ':path': '/' }); stream.on('close', common.mustCall(() => { - assert.strictEqual(stream.rstCode, NGHTTP2_CANCEL); + assert.strictEqual(stream.rstCode, NGHTTP2_FRAME_SIZE_ERROR); clearTimeout(timer); server.close(); })); + stream.on('error', common.expectsError({ + code: 'ERR_HTTP2_STREAM_ERROR', + name: 'Error', + message: 'Stream closed with error code NGHTTP2_FRAME_SIZE_ERROR' + })); + stream.end(); } })); diff --git a/test/parallel/test-http2-exceeds-server-trailer-size.js b/test/parallel/test-http2-exceeds-server-trailer-size.js index 87c1070afbb7a4..ae2bbc1dca08bf 100644 --- a/test/parallel/test-http2-exceeds-server-trailer-size.js +++ b/test/parallel/test-http2-exceeds-server-trailer-size.js @@ -43,9 +43,13 @@ server.listen(0, () => { const clientStream = clientSession.request(); clientStream.on('close', common.mustCall()); - // These events mustn't be called once the frame size error is from the server + clientStream.on('error', common.expectsError({ + code: 'ERR_HTTP2_STREAM_ERROR', + name: 'Error', + message: 'Stream closed with error code NGHTTP2_FRAME_SIZE_ERROR' + })); + // This event mustn't be called once the frame size error is from the server clientStream.on('frameError', common.mustNotCall()); - clientStream.on('error', common.mustNotCall()); clientStream.end(); }); diff --git a/test/known_issues/test-http2-trailers-after-session-close.js b/test/parallel/test-http2-trailers-after-session-close.js similarity index 89% rename from test/known_issues/test-http2-trailers-after-session-close.js rename to test/parallel/test-http2-trailers-after-session-close.js index 3d5be11e5b5185..f7c7387eb01380 100644 --- a/test/known_issues/test-http2-trailers-after-session-close.js +++ b/test/parallel/test-http2-trailers-after-session-close.js @@ -3,9 +3,6 @@ // Fixes: https://github.com/nodejs/node/issues/42713 const common = require('../common'); if (!common.hasCrypto) { - // Remove require('assert').fail when issue is fixed and test - // is moved out of the known_issues directory. - require('assert').fail('missing crypto'); common.skip('missing crypto'); } const assert = require('assert'); From 2cfc4007d1754f8f3a652b25c2017ea29db9a62a Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Thu, 19 Oct 2023 12:35:02 -0400 Subject: [PATCH 187/232] test: set `test-cli-node-options` as flaky MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50296 Refs: https://github.com/nodejs/node/issues/50295 Reviewed-By: Vinícius Lourenço Claro Cardoso Reviewed-By: Michael Dawson --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 90acc6d7c6e66b..7bf6ba740ddea8 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -13,6 +13,8 @@ test-crypto-keygen: PASS,FLAKY test-fs-rmdir-recursive: PASS, FLAKY # https://github.com/nodejs/node/issues/49985 test-runner-watch-mode: PASS, FLAKY +# https://github.com/nodejs/node/issues/50295 +test-cli-node-options: PASS, FLAKY # Windows on x86 [$system==win32 && $arch==x86] From b9e0fed995af358ba6798e8ffaa5d1cb594e8eac Mon Sep 17 00:00:00 2001 From: StefanStojanovic Date: Thu, 19 Oct 2023 13:59:19 +0200 Subject: [PATCH 188/232] test: set test-worker-nearheaplimit-deadlock flaky PR-URL: https://github.com/nodejs/node/pull/50277 Reviewed-By: Richard Lau Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson --- test/parallel/parallel.status | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 7bf6ba740ddea8..f77813ed774243 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -17,7 +17,7 @@ test-runner-watch-mode: PASS, FLAKY test-cli-node-options: PASS, FLAKY # Windows on x86 -[$system==win32 && $arch==x86] +[$system==win32 && $arch==ia32] test-worker-nearheaplimit-deadlock: PASS, FLAKY # Windows on ARM From 50181a19b85720c9ac09f256cbf5ce56597a747e Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Wed, 18 Oct 2023 10:46:53 -0400 Subject: [PATCH 189/232] test: set inspector async stack test as flaky https://github.com/nodejs/node/issues/50243 PR-URL: https://github.com/nodejs/node/pull/50244 Refs: https://github.com/nodejs/node/issues/50243 Reviewed-By: Filip Skokan Reviewed-By: Ruy Adorno Reviewed-By: Michael Dawson --- test/parallel/parallel.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index f77813ed774243..fa425fdcfc475b 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -41,6 +41,8 @@ test-http-server-headers-timeout-keepalive: PASS,FLAKY test-http-server-request-timeout-keepalive: PASS,FLAKY # https://github.com/nodejs/node/issues/43465 test-http-server-request-timeouts-mixed: PASS,FLAKY +# https://github.com/nodejs/node/issues/50243 +test-inspector-async-stack-traces-set-interval: PASS, FLAKY [$arch==arm || $arch==arm64] # https://github.com/nodejs/node/pull/31178 From ab5985d0e97061a8842cc1a85aba2b29a7e426c0 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Fri, 20 Oct 2023 11:36:06 -0400 Subject: [PATCH 190/232] test: set `test-emit-after-on-destroyed` as flaky Ref: https://github.com/nodejs/node/issues/50245 PR-URL: https://github.com/nodejs/node/pull/50246 Refs: https://github.com/nodejs/node/issues/50245 Reviewed-By: Filip Skokan Reviewed-By: Geoffrey Booth Reviewed-By: Michael Dawson --- test/async-hooks/async-hooks.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/async-hooks/async-hooks.status b/test/async-hooks/async-hooks.status index 673883e4fe3d4d..dbcb29baed84a0 100644 --- a/test/async-hooks/async-hooks.status +++ b/test/async-hooks/async-hooks.status @@ -21,3 +21,5 @@ test-callback-error: PASS, FLAKY [$system==freebsd] [$system==aix] +# https://github.com/nodejs/node/issues/50245 +test-emit-after-on-destroyed: PASS, FLAKY From a589a1a905e79f1e6ef941832cbd626d2e3c023d Mon Sep 17 00:00:00 2001 From: Geoffrey Booth Date: Fri, 20 Oct 2023 08:44:56 -0700 Subject: [PATCH 191/232] esm: detect ESM syntax in ambiguous JavaScript PR-URL: https://github.com/nodejs/node/pull/50096 Reviewed-By: Yagiz Nizipli Reviewed-By: Benjamin Gruenbaum Reviewed-By: Guy Bedford --- benchmark/esm/detect-esm-syntax.js | 37 +++ doc/api/cli.md | 27 +++ doc/api/esm.md | 59 +++-- doc/api/modules.md | 6 +- doc/api/packages.md | 8 + lib/internal/modules/esm/get_format.js | 64 ++++-- lib/internal/modules/esm/load.js | 36 +-- lib/internal/modules/run_main.js | 15 +- lib/internal/process/execution.js | 8 + src/node_contextify.cc | 39 +++- src/node_options.cc | 5 + src/node_options.h | 1 + test/es-module/test-esm-detect-ambiguous.mjs | 214 ++++++++++++++++++ .../package-type-commonjs/imports-esm.js | 1 + .../package-type-commonjs/imports-esm.mjs | 1 + .../package-type-commonjs/module.js | 2 + .../package-type-module/imports-commonjs.cjs | 1 + .../package-type-module/imports-commonjs.mjs | 1 + .../package-without-type/commonjs.js | 2 + .../package-without-type/imports-commonjs.cjs | 1 + .../package-without-type/imports-commonjs.mjs | 1 + .../package-without-type/imports-esm.js | 1 + .../package-without-type/imports-esm.mjs | 1 + .../package-without-type/imports-noext-cjs.js | 1 + .../imports-noext-cjs.mjs | 1 + .../package-without-type/imports-noext-esm.js | 1 + .../imports-noext-esm.mjs | 1 + .../es-modules/package-without-type/module.js | 1 - .../es-modules/package-without-type/noext-cjs | 2 + test/sequential/test-watch-mode.mjs | 4 +- 30 files changed, 475 insertions(+), 67 deletions(-) create mode 100644 benchmark/esm/detect-esm-syntax.js create mode 100644 test/es-module/test-esm-detect-ambiguous.mjs create mode 100644 test/fixtures/es-modules/package-type-commonjs/imports-esm.js create mode 100644 test/fixtures/es-modules/package-type-commonjs/imports-esm.mjs create mode 100644 test/fixtures/es-modules/package-type-commonjs/module.js create mode 100644 test/fixtures/es-modules/package-type-module/imports-commonjs.cjs create mode 100644 test/fixtures/es-modules/package-type-module/imports-commonjs.mjs create mode 100644 test/fixtures/es-modules/package-without-type/commonjs.js create mode 100644 test/fixtures/es-modules/package-without-type/imports-commonjs.cjs create mode 100644 test/fixtures/es-modules/package-without-type/imports-commonjs.mjs create mode 100644 test/fixtures/es-modules/package-without-type/imports-esm.js create mode 100644 test/fixtures/es-modules/package-without-type/imports-esm.mjs create mode 100644 test/fixtures/es-modules/package-without-type/imports-noext-cjs.js create mode 100644 test/fixtures/es-modules/package-without-type/imports-noext-cjs.mjs create mode 100644 test/fixtures/es-modules/package-without-type/imports-noext-esm.js create mode 100644 test/fixtures/es-modules/package-without-type/imports-noext-esm.mjs create mode 100644 test/fixtures/es-modules/package-without-type/noext-cjs diff --git a/benchmark/esm/detect-esm-syntax.js b/benchmark/esm/detect-esm-syntax.js new file mode 100644 index 00000000000000..dfc347225f32d6 --- /dev/null +++ b/benchmark/esm/detect-esm-syntax.js @@ -0,0 +1,37 @@ +'use strict'; + +// This benchmarks the cost of running `containsModuleSyntax` on a CommonJS module being imported. +// We use the TypeScript fixture because it's a very large CommonJS file with no ESM syntax: the worst case. +const common = require('../common.js'); +const tmpdir = require('../../test/common/tmpdir.js'); +const fixtures = require('../../test/common/fixtures.js'); +const scriptPath = fixtures.path('snapshot', 'typescript.js'); +const fs = require('node:fs'); + +const bench = common.createBenchmark(main, { + type: ['with-module-syntax-detection', 'without-module-syntax-detection'], + n: [1e4], +}, { + flags: ['--experimental-detect-module'], +}); + +const benchmarkDirectory = tmpdir.fileURL('benchmark-detect-esm-syntax'); +const ambiguousURL = new URL('./typescript.js', benchmarkDirectory); +const explicitURL = new URL('./typescript.cjs', benchmarkDirectory); + +async function main({ n, type }) { + tmpdir.refresh(); + + fs.mkdirSync(benchmarkDirectory, { recursive: true }); + fs.cpSync(scriptPath, ambiguousURL); + fs.cpSync(scriptPath, explicitURL); + + bench.start(); + + for (let i = 0; i < n; i++) { + const url = type === 'with-module-syntax-detection' ? ambiguousURL : explicitURL; + await import(url); + } + + bench.end(n); +} diff --git a/doc/api/cli.md b/doc/api/cli.md index 67e5e8808d7792..11ff77dd8745fa 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -611,6 +611,32 @@ files with no extension will be treated as WebAssembly if they begin with the WebAssembly magic number (`\0asm`); otherwise they will be treated as ES module JavaScript. +### `--experimental-detect-module` + + + +> Stability: 1.0 - Early development + +Node.js will inspect the source code of ambiguous input to determine whether it +contains ES module syntax; if such syntax is detected, the input will be treated +as an ES module. + +Ambiguous input is defined as: + +* Files with a `.js` extension or no extension; and either no controlling + `package.json` file or one that lacks a `type` field; and + `--experimental-default-type` is not specified. +* String input (`--eval` or STDIN) when neither `--input-type` nor + `--experimental-default-type` are specified. + +ES module syntax is defined as syntax that would throw when evaluated as +CommonJS. This includes `import` and `export` statements and `import.meta` +references. It does _not_ include `import()` expressions, which are valid in +CommonJS. + ### `--experimental-import-meta-resolve` @@ -1019,18 +1029,33 @@ _isImports_, _conditions_) > 1. Return _"commonjs"_. > 4. If _url_ ends in _".json"_, then > 1. Return _"json"_. -> 5. Let _packageURL_ be the result of **LOOKUP\_PACKAGE\_SCOPE**(_url_). -> 6. Let _pjson_ be the result of **READ\_PACKAGE\_JSON**(_packageURL_). -> 7. If _pjson?.type_ exists and is _"module"_, then -> 1. If _url_ ends in _".js"_ or has no file extension, then -> 1. If `--experimental-wasm-modules` is enabled and the file at _url_ -> contains the header for a WebAssembly module, then -> 1. Return _"wasm"_. -> 2. Otherwise, -> 1. Return _"module"_. -> 2. Return **undefined**. -> 8. Otherwise, -> 1. Return **undefined**. +> 5. If `--experimental-wasm-modules` is enabled and _url_ ends in +> _".wasm"_, then +> 1. Return _"wasm"_. +> 6. Let _packageURL_ be the result of **LOOKUP\_PACKAGE\_SCOPE**(_url_). +> 7. Let _pjson_ be the result of **READ\_PACKAGE\_JSON**(_packageURL_). +> 8. Let _packageType_ be **null**. +> 9. If _pjson?.type_ is _"module"_ or _"commonjs"_, then +> 1. Set _packageType_ to _pjson.type_. +> 10. If _url_ ends in _".js"_, then +> 1. If _packageType_ is not **null**, then +> 1. Return _packageType_. +> 2. If `--experimental-detect-module` is enabled and the source of +> module contains static import or export syntax, then +> 1. Return _"module"_. +> 3. Return _"commonjs"_. +> 11. If _url_ does not have any extension, then +> 1. If _packageType_ is _"module"_ and `--experimental-wasm-modules` is +> enabled and the file at _url_ contains the header for a WebAssembly +> module, then +> 1. Return _"wasm"_. +> 2. If _packageType_ is not **null**, then +> 1. Return _packageType_. +> 3. If `--experimental-detect-module` is enabled and the source of +> module contains static import or export syntax, then +> 1. Return _"module"_. +> 4. Return _"commonjs"_. +> 12. Return **undefined** (will throw during load phase). **LOOKUP\_PACKAGE\_SCOPE**(_url_) diff --git a/doc/api/modules.md b/doc/api/modules.md index 02fae47d88ea69..e38bca4f3cee54 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -80,8 +80,10 @@ By default, Node.js will treat the following as CommonJS modules: * Files with a `.js` extension when the nearest parent `package.json` file contains a top-level field [`"type"`][] with a value of `"commonjs"`. -* Files with a `.js` extension when the nearest parent `package.json` file - doesn't contain a top-level field [`"type"`][]. Package authors should include +* Files with a `.js` extension or without an extension, when the nearest parent + `package.json` file doesn't contain a top-level field [`"type"`][] or there is + no `package.json` in any parent folder; unless the file contains syntax that + errors unless it is evaluated as an ES module. Package authors should include the [`"type"`][] field, even in packages where all sources are CommonJS. Being explicit about the `type` of the package will make things easier for build tools and loaders to determine how the files in the package should be diff --git a/doc/api/packages.md b/doc/api/packages.md index 9f55cbbb15939f..9287ff71c404c9 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -69,6 +69,14 @@ expressions: * Strings passed in as an argument to `--eval`, or piped to `node` via `STDIN`, with the flag `--input-type=module`. +* Code that contains syntax that only parses successfully as [ES modules][], + such as `import` or `export` statements or `import.meta`, when the code has no + explicit marker of how it should be interpreted. Explicit markers are `.mjs` + or `.cjs` extensions, `package.json` `"type"` fields with either `"module"` or + `"commonjs"` values, or `--input-type` or `--experimental-default-type` flags. + Dynamic `import()` expressions are supported in either CommonJS or ES modules + and would not cause a file to be treated as an ES module. + Node.js will treat the following as [CommonJS][] when passed to `node` as the initial input, or when referenced by `import` statements or `import()` expressions: diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index 56d002ca0883ad..ee50bea472758d 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -18,9 +18,7 @@ const { const experimentalNetworkImports = getOptionValue('--experimental-network-imports'); -const defaultTypeFlag = getOptionValue('--experimental-default-type'); -// The next line is where we flip the default to ES modules someday. -const defaultType = defaultTypeFlag === 'module' ? 'module' : 'commonjs'; +const { containsModuleSyntax } = internalBinding('contextify'); const { getPackageType } = require('internal/modules/esm/resolve'); const { fileURLToPath } = require('internal/url'); const { ERR_UNKNOWN_FILE_EXTENSION } = require('internal/errors').codes; @@ -85,11 +83,12 @@ function underNodeModules(url) { /** * @param {URL} url - * @param {{parentURL: string}} context + * @param {{parentURL: string; source?: Buffer}} context * @param {boolean} ignoreErrors * @returns {string} */ -function getFileProtocolModuleFormat(url, context, ignoreErrors) { +function getFileProtocolModuleFormat(url, context = { __proto__: null }, ignoreErrors) { + const { source } = context; const ext = extname(url); if (ext === '.js') { @@ -97,30 +96,53 @@ function getFileProtocolModuleFormat(url, context, ignoreErrors) { if (packageType !== 'none') { return packageType; } + // The controlling `package.json` file has no `type` field. - if (defaultType === 'module') { - // An exception to the type flag making ESM the default everywhere is that package scopes under `node_modules` - // should retain the assumption that a lack of a `type` field means CommonJS. - return underNodeModules(url) ? 'commonjs' : 'module'; + switch (getOptionValue('--experimental-default-type')) { + case 'module': { // The user explicitly passed `--experimental-default-type=module`. + // An exception to the type flag making ESM the default everywhere is that package scopes under `node_modules` + // should retain the assumption that a lack of a `type` field means CommonJS. + return underNodeModules(url) ? 'commonjs' : 'module'; + } + case 'commonjs': { // The user explicitly passed `--experimental-default-type=commonjs`. + return 'commonjs'; + } + default: { // The user did not pass `--experimental-default-type`. + // `source` is undefined when this is called from `defaultResolve`; + // but this gets called again from `defaultLoad`/`defaultLoadSync`. + if (source && getOptionValue('--experimental-detect-module')) { + return containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs'; + } + return 'commonjs'; + } } - return 'commonjs'; } if (ext === '') { const packageType = getPackageType(url); - if (defaultType === 'commonjs') { // Legacy behavior - if (packageType === 'none' || packageType === 'commonjs') { - return 'commonjs'; - } // Else packageType === 'module' + if (packageType === 'module') { return getFormatOfExtensionlessFile(url); - } // Else defaultType === 'module' - if (underNodeModules(url)) { // Exception for package scopes under `node_modules` - return packageType === 'module' ? getFormatOfExtensionlessFile(url) : 'commonjs'; } - if (packageType === 'none' || packageType === 'module') { - return getFormatOfExtensionlessFile(url); - } // Else packageType === 'commonjs' - return 'commonjs'; + if (packageType !== 'none') { + return packageType; // 'commonjs' or future package types + } + + // The controlling `package.json` file has no `type` field. + switch (getOptionValue('--experimental-default-type')) { + case 'module': { // The user explicitly passed `--experimental-default-type=module`. + return underNodeModules(url) ? 'commonjs' : getFormatOfExtensionlessFile(url); + } + case 'commonjs': { // The user explicitly passed `--experimental-default-type=commonjs`. + return 'commonjs'; + } + default: { // The user did not pass `--experimental-default-type`. + if (source && getOptionValue('--experimental-detect-module') && + getFormatOfExtensionlessFile(url) === 'module') { + return containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs'; + } + return 'commonjs'; + } + } } const format = extensionFormatMap[ext]; diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js index 1881745a6d3134..f706b5b808da27 100644 --- a/lib/internal/modules/esm/load.js +++ b/lib/internal/modules/esm/load.js @@ -33,7 +33,7 @@ const DATA_URL_PATTERN = /^[^/]+\/[^,;]+(?:[^,]*?)(;base64)?,([\s\S]*)$/; /** * @param {URL} url URL to the module * @param {ESModuleContext} context used to decorate error messages - * @returns {{ responseURL: string, source: string | BufferView }} + * @returns {Promise<{ responseURL: string, source: string | BufferView }>} */ async function getSource(url, context) { const { protocol, href } = url; @@ -105,7 +105,7 @@ function getSourceSync(url, context) { * @param {LoadContext} context * @returns {LoadReturn} */ -async function defaultLoad(url, context = kEmptyObject) { +async function defaultLoad(url, context = { __proto__: null }) { let responseURL = url; let { importAttributes, @@ -127,19 +127,24 @@ async function defaultLoad(url, context = kEmptyObject) { throwIfUnsupportedURLScheme(urlInstance, experimentalNetworkImports); - format ??= await defaultGetFormat(urlInstance, context); - - validateAttributes(url, format, importAttributes); - - if ( - format === 'builtin' || - format === 'commonjs' - ) { + if (urlInstance.protocol === 'node:') { source = null; } else if (source == null) { ({ responseURL, source } = await getSource(urlInstance, context)); + context.source = source; + } + + if (format == null || format === 'commonjs') { + // Now that we have the source for the module, run `defaultGetFormat` again in case we detect ESM syntax. + format = await defaultGetFormat(urlInstance, context); + } + + if (format === 'commonjs') { + source = null; // Let the CommonJS loader handle it (for now) } + validateAttributes(url, format, importAttributes); + return { __proto__: null, format, @@ -178,16 +183,17 @@ function defaultLoadSync(url, context = kEmptyObject) { throwIfUnsupportedURLScheme(urlInstance, false); - format ??= defaultGetFormat(urlInstance, context); - - validateAttributes(url, format, importAttributes); - - if (format === 'builtin') { + if (urlInstance.protocol === 'node:') { source = null; } else if (source == null) { ({ responseURL, source } = getSourceSync(urlInstance, context)); + context.source = source; } + format ??= defaultGetFormat(urlInstance, context); + + validateAttributes(url, format, importAttributes); + return { __proto__: null, format, diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index a9828286a9c0e0..1f03c313121db0 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -4,6 +4,7 @@ const { StringPrototypeEndsWith, } = primordials; +const { containsModuleSyntax } = internalBinding('contextify'); const { getOptionValue } = require('internal/options'); const path = require('path'); @@ -70,7 +71,19 @@ function shouldUseESMLoader(mainPath) { const { readPackageScope } = require('internal/modules/package_json_reader'); const pkg = readPackageScope(mainPath); // No need to guard `pkg` as it can only be an object or `false`. - return pkg.data?.type === 'module' || getOptionValue('--experimental-default-type') === 'module'; + switch (pkg.data?.type) { + case 'module': + return true; + case 'commonjs': + return false; + default: { // No package.json or no `type` field. + if (getOptionValue('--experimental-detect-module')) { + // If the first argument of `containsModuleSyntax` is undefined, it will read `mainPath` from the file system. + return containsModuleSyntax(undefined, mainPath); + } + return false; + } + } } /** diff --git a/lib/internal/process/execution.js b/lib/internal/process/execution.js index b8c507c798182e..5de5edfb2d5524 100644 --- a/lib/internal/process/execution.js +++ b/lib/internal/process/execution.js @@ -26,6 +26,8 @@ const { emitAfter, popAsyncContext, } = require('internal/async_hooks'); +const { containsModuleSyntax } = internalBinding('contextify'); +const { getOptionValue } = require('internal/options'); const { makeContextifyScript, runScriptInThisContext, } = require('internal/vm'); @@ -70,6 +72,12 @@ function evalScript(name, body, breakFirstLine, print, shouldLoadESM = false) { const baseUrl = pathToFileURL(module.filename).href; const { loadESM } = asyncESM; + if (getOptionValue('--experimental-detect-module') && + getOptionValue('--input-type') === '' && getOptionValue('--experimental-default-type') === '' && + containsModuleSyntax(body, name)) { + return evalModule(body, print); + } + const runScript = () => { // Create wrapper for cache entry const script = ` diff --git a/src/node_contextify.cc b/src/node_contextify.cc index ddf2e2c2fb24d1..64860d7e56d2bf 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -1385,20 +1385,43 @@ constexpr std::array esm_syntax_error_messages = { void ContextifyContext::ContainsModuleSyntax( const FunctionCallbackInfo& args) { - // Argument 1: source code - CHECK(args[0]->IsString()); - Local code = args[0].As(); + Environment* env = Environment::GetCurrent(args); + Isolate* isolate = env->isolate(); + Local context = env->context(); - // Argument 2: filename - Local filename = String::Empty(args.GetIsolate()); + if (args.Length() == 0) { + return THROW_ERR_MISSING_ARGS( + env, "containsModuleSyntax needs at least 1 argument"); + } + + // Argument 2: filename; if undefined, use empty string + Local filename = String::Empty(isolate); if (!args[1]->IsUndefined()) { CHECK(args[1]->IsString()); filename = args[1].As(); } - Environment* env = Environment::GetCurrent(args); - Isolate* isolate = env->isolate(); - Local context = env->context(); + // Argument 1: source code; if undefined, read from filename in argument 2 + Local code; + if (args[0]->IsUndefined()) { + CHECK(!filename.IsEmpty()); + const char* filename_str = Utf8Value(isolate, filename).out(); + std::string contents; + int result = ReadFileSync(&contents, filename_str); + if (result != 0) { + isolate->ThrowException( + ERR_MODULE_NOT_FOUND(isolate, "Cannot read file %s", filename_str)); + return; + } + code = String::NewFromUtf8(isolate, + contents.c_str(), + v8::NewStringType::kNormal, + contents.length()) + .ToLocalChecked(); + } else { + CHECK(args[0]->IsString()); + code = args[0].As(); + } // TODO(geoffreybooth): Centralize this rather than matching the logic in // cjs/loader.js and translators.js diff --git a/src/node_options.cc b/src/node_options.cc index fc9940b64c5c33..29cb7fc6b29b89 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -347,6 +347,11 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { &EnvironmentOptions::conditions, kAllowedInEnvvar); AddAlias("-C", "--conditions"); + AddOption("--experimental-detect-module", + "when ambiguous modules fail to evaluate because they contain " + "ES module syntax, try again to evaluate them as ES modules", + &EnvironmentOptions::detect_module, + kAllowedInEnvvar); AddOption("--diagnostic-dir", "set dir for all output files" " (default: current working directory)", diff --git a/src/node_options.h b/src/node_options.h index ba16f54e129aec..30955c779714ce 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -104,6 +104,7 @@ class EnvironmentOptions : public Options { public: bool abort_on_uncaught_exception = false; std::vector conditions; + bool detect_module = false; std::string dns_result_order; bool enable_source_maps = false; bool experimental_fetch = true; diff --git a/test/es-module/test-esm-detect-ambiguous.mjs b/test/es-module/test-esm-detect-ambiguous.mjs new file mode 100644 index 00000000000000..61629965518a82 --- /dev/null +++ b/test/es-module/test-esm-detect-ambiguous.mjs @@ -0,0 +1,214 @@ +import { spawnPromisified } from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import { spawn } from 'node:child_process'; +import { describe, it } from 'node:test'; +import { strictEqual, match } from 'node:assert'; + +describe('--experimental-detect-module', { concurrency: true }, () => { + describe('string input', { concurrency: true }, () => { + it('permits ESM syntax in --eval input without requiring --input-type=module', async () => { + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + '--eval', + 'import { version } from "node:process"; console.log(version);', + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, `${process.version}\n`); + strictEqual(code, 0); + strictEqual(signal, null); + }); + + // ESM is unsupported for --print via --input-type=module + + it('permits ESM syntax in STDIN input without requiring --input-type=module', async () => { + const child = spawn(process.execPath, [ + '--experimental-detect-module', + ]); + child.stdin.end('console.log(typeof import.meta.resolve)'); + + match((await child.stdout.toArray()).toString(), /^function\r?\n$/); + }); + + it('should be overridden by --input-type', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + '--input-type=commonjs', + '--eval', + 'import.meta.url', + ]); + + match(stderr, /SyntaxError: Cannot use 'import\.meta' outside a module/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + + it('should be overridden by --experimental-default-type', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + '--experimental-default-type=commonjs', + '--eval', + 'import.meta.url', + ]); + + match(stderr, /SyntaxError: Cannot use 'import\.meta' outside a module/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + + it('does not trigger detection via source code `eval()`', async () => { + const { code, signal, stdout, stderr } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + '--eval', + 'eval("import \'nonexistent\';");', + ]); + + match(stderr, /SyntaxError: Cannot use import statement outside a module/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + }); + + describe('.js file input in a typeless package', { concurrency: true }, () => { + for (const { testName, entryPath } of [ + { + testName: 'permits CommonJS syntax in a .js entry point', + entryPath: fixtures.path('es-modules/package-without-type/commonjs.js'), + }, + { + testName: 'permits ESM syntax in a .js entry point', + entryPath: fixtures.path('es-modules/package-without-type/module.js'), + }, + { + testName: 'permits CommonJS syntax in a .js file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-commonjs.cjs'), + }, + { + testName: 'permits ESM syntax in a .js file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-esm.js'), + }, + { + testName: 'permits CommonJS syntax in a .js file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-commonjs.mjs'), + }, + { + testName: 'permits ESM syntax in a .js file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-esm.mjs'), + }, + ]) { + it(testName, async () => { + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + entryPath, + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + } + }); + + describe('extensionless file input in a typeless package', { concurrency: true }, () => { + for (const { testName, entryPath } of [ + { + testName: 'permits CommonJS syntax in an extensionless entry point', + entryPath: fixtures.path('es-modules/package-without-type/noext-cjs'), + }, + { + testName: 'permits ESM syntax in an extensionless entry point', + entryPath: fixtures.path('es-modules/package-without-type/noext-esm'), + }, + { + testName: 'permits CommonJS syntax in an extensionless file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-noext-cjs.js'), + }, + { + testName: 'permits ESM syntax in an extensionless file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-noext-esm.js'), + }, + { + testName: 'permits CommonJS syntax in an extensionless file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-noext-cjs.mjs'), + }, + { + testName: 'permits ESM syntax in an extensionless file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-without-type/imports-noext-esm.mjs'), + }, + ]) { + it(testName, async () => { + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + entryPath, + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'executed\n'); + strictEqual(code, 0); + strictEqual(signal, null); + }); + } + }); + + describe('file input in a "type": "commonjs" package', { concurrency: true }, () => { + for (const { testName, entryPath } of [ + { + testName: 'disallows ESM syntax in a .js entry point', + entryPath: fixtures.path('es-modules/package-type-commonjs/module.js'), + }, + { + testName: 'disallows ESM syntax in a .js file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-type-commonjs/imports-esm.js'), + }, + { + testName: 'disallows ESM syntax in a .js file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-type-commonjs/imports-esm.mjs'), + }, + ]) { + it(testName, async () => { + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + entryPath, + ]); + + match(stderr, /SyntaxError: Unexpected token 'export'/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + } + }); + + describe('file input in a "type": "module" package', { concurrency: true }, () => { + for (const { testName, entryPath } of [ + { + testName: 'disallows CommonJS syntax in a .js entry point', + entryPath: fixtures.path('es-modules/package-type-module/cjs.js'), + }, + { + testName: 'disallows CommonJS syntax in a .js file imported by a CommonJS entry point', + entryPath: fixtures.path('es-modules/package-type-module/imports-commonjs.cjs'), + }, + { + testName: 'disallows CommonJS syntax in a .js file imported by an ESM entry point', + entryPath: fixtures.path('es-modules/package-type-module/imports-commonjs.mjs'), + }, + ]) { + it(testName, async () => { + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + entryPath, + ]); + + match(stderr, /ReferenceError: module is not defined in ES module scope/); + strictEqual(stdout, ''); + strictEqual(code, 1); + strictEqual(signal, null); + }); + } + }); +}); diff --git a/test/fixtures/es-modules/package-type-commonjs/imports-esm.js b/test/fixtures/es-modules/package-type-commonjs/imports-esm.js new file mode 100644 index 00000000000000..d2f5d5fee76ef7 --- /dev/null +++ b/test/fixtures/es-modules/package-type-commonjs/imports-esm.js @@ -0,0 +1 @@ +import('./module.js'); diff --git a/test/fixtures/es-modules/package-type-commonjs/imports-esm.mjs b/test/fixtures/es-modules/package-type-commonjs/imports-esm.mjs new file mode 100644 index 00000000000000..d3eb2fba6a8ee7 --- /dev/null +++ b/test/fixtures/es-modules/package-type-commonjs/imports-esm.mjs @@ -0,0 +1 @@ +import './module.js'; diff --git a/test/fixtures/es-modules/package-type-commonjs/module.js b/test/fixtures/es-modules/package-type-commonjs/module.js new file mode 100644 index 00000000000000..251d6e538a1fcf --- /dev/null +++ b/test/fixtures/es-modules/package-type-commonjs/module.js @@ -0,0 +1,2 @@ +export default 'module'; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-type-module/imports-commonjs.cjs b/test/fixtures/es-modules/package-type-module/imports-commonjs.cjs new file mode 100644 index 00000000000000..7dbbf0d97a46ba --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/imports-commonjs.cjs @@ -0,0 +1 @@ +import('./cjs.js'); diff --git a/test/fixtures/es-modules/package-type-module/imports-commonjs.mjs b/test/fixtures/es-modules/package-type-module/imports-commonjs.mjs new file mode 100644 index 00000000000000..df53dcd2bd4885 --- /dev/null +++ b/test/fixtures/es-modules/package-type-module/imports-commonjs.mjs @@ -0,0 +1 @@ +import './cjs.js'; diff --git a/test/fixtures/es-modules/package-without-type/commonjs.js b/test/fixtures/es-modules/package-without-type/commonjs.js new file mode 100644 index 00000000000000..9b4d39fa21ada2 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/commonjs.js @@ -0,0 +1,2 @@ +module.exports = 'cjs'; +console.log('executed'); diff --git a/test/fixtures/es-modules/package-without-type/imports-commonjs.cjs b/test/fixtures/es-modules/package-without-type/imports-commonjs.cjs new file mode 100644 index 00000000000000..b247f42a15ceb8 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-commonjs.cjs @@ -0,0 +1 @@ +import('./commonjs.js'); diff --git a/test/fixtures/es-modules/package-without-type/imports-commonjs.mjs b/test/fixtures/es-modules/package-without-type/imports-commonjs.mjs new file mode 100644 index 00000000000000..c2f8171fd1deda --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-commonjs.mjs @@ -0,0 +1 @@ +import './commonjs.js'; diff --git a/test/fixtures/es-modules/package-without-type/imports-esm.js b/test/fixtures/es-modules/package-without-type/imports-esm.js new file mode 100644 index 00000000000000..d2f5d5fee76ef7 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-esm.js @@ -0,0 +1 @@ +import('./module.js'); diff --git a/test/fixtures/es-modules/package-without-type/imports-esm.mjs b/test/fixtures/es-modules/package-without-type/imports-esm.mjs new file mode 100644 index 00000000000000..d3eb2fba6a8ee7 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-esm.mjs @@ -0,0 +1 @@ +import './module.js'; diff --git a/test/fixtures/es-modules/package-without-type/imports-noext-cjs.js b/test/fixtures/es-modules/package-without-type/imports-noext-cjs.js new file mode 100644 index 00000000000000..9f78ce4dd0ed7e --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-noext-cjs.js @@ -0,0 +1 @@ +import('./noext-cjs'); diff --git a/test/fixtures/es-modules/package-without-type/imports-noext-cjs.mjs b/test/fixtures/es-modules/package-without-type/imports-noext-cjs.mjs new file mode 100644 index 00000000000000..2419cba28f9318 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-noext-cjs.mjs @@ -0,0 +1 @@ +import './noext-cjs'; diff --git a/test/fixtures/es-modules/package-without-type/imports-noext-esm.js b/test/fixtures/es-modules/package-without-type/imports-noext-esm.js new file mode 100644 index 00000000000000..96eca54521b9d3 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-noext-esm.js @@ -0,0 +1 @@ +import './noext-esm'; diff --git a/test/fixtures/es-modules/package-without-type/imports-noext-esm.mjs b/test/fixtures/es-modules/package-without-type/imports-noext-esm.mjs new file mode 100644 index 00000000000000..96eca54521b9d3 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/imports-noext-esm.mjs @@ -0,0 +1 @@ +import './noext-esm'; diff --git a/test/fixtures/es-modules/package-without-type/module.js b/test/fixtures/es-modules/package-without-type/module.js index 69147a3b8ca027..251d6e538a1fcf 100644 --- a/test/fixtures/es-modules/package-without-type/module.js +++ b/test/fixtures/es-modules/package-without-type/module.js @@ -1,3 +1,2 @@ -// This file can be run or imported only if `--experimental-default-type=module` is set. export default 'module'; console.log('executed'); diff --git a/test/fixtures/es-modules/package-without-type/noext-cjs b/test/fixtures/es-modules/package-without-type/noext-cjs new file mode 100644 index 00000000000000..37f7b87ad10561 --- /dev/null +++ b/test/fixtures/es-modules/package-without-type/noext-cjs @@ -0,0 +1,2 @@ +module.exports = 'commonjs'; +console.log('executed'); diff --git a/test/sequential/test-watch-mode.mjs b/test/sequential/test-watch-mode.mjs index dbe486f5bb2991..c6dcb0fcbffb1b 100644 --- a/test/sequential/test-watch-mode.mjs +++ b/test/sequential/test-watch-mode.mjs @@ -277,11 +277,11 @@ console.log(values.random); it('should not load --import modules in main process', async () => { const file = createTmpFile(); - const imported = pathToFileURL(createTmpFile('setImmediate(() => process.exit(0));')); + const imported = pathToFileURL(createTmpFile('process._rawDebug("imported");')); const args = ['--import', imported, file]; const { stderr, stdout } = await runWriteSucceed({ file, watchedFile: file, args }); - assert.strictEqual(stderr, ''); + assert.strictEqual(stderr, 'imported\nimported\n'); assert.deepStrictEqual(stdout, [ 'running', `Completed running ${inspect(file)}`, From 773320e1debbabeff8b0ed77bcf6c6bb5e014fee Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Fri, 20 Oct 2023 18:25:42 +0200 Subject: [PATCH 192/232] crypto: ensure valid point on elliptic curve in SubtleCrypto.importKey MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50234 Reviewed-By: Tobias Nießen Reviewed-By: Antoine du Hamel --- lib/internal/crypto/ec.js | 4 + src/crypto/crypto_keys.cc | 31 +++++++ src/crypto/crypto_keys.h | 3 + .../test-webcrypto-export-import-ec.js | 86 ++++++++++++++++--- 4 files changed, 114 insertions(+), 10 deletions(-) diff --git a/lib/internal/crypto/ec.js b/lib/internal/crypto/ec.js index 710917af2e2783..9f30f6e1a0ba09 100644 --- a/lib/internal/crypto/ec.js +++ b/lib/internal/crypto/ec.js @@ -264,6 +264,10 @@ async function ecImportKey( break; } + if (!keyObject[kHandle].checkEcKeyData()) { + throw lazyDOMException('Invalid keyData', 'DataError'); + } + const { namedCurve: checkNamedCurve, } = keyObject[kHandle].keyDetail({}); diff --git a/src/crypto/crypto_keys.cc b/src/crypto/crypto_keys.cc index 8d2774ff61a64c..c5dd2fb8fce40f 100644 --- a/src/crypto/crypto_keys.cc +++ b/src/crypto/crypto_keys.cc @@ -907,6 +907,8 @@ v8::Local KeyObjectHandle::Initialize(Environment* env) { isolate, templ, "getSymmetricKeySize", GetSymmetricKeySize); SetProtoMethodNoSideEffect( isolate, templ, "getAsymmetricKeyType", GetAsymmetricKeyType); + SetProtoMethodNoSideEffect( + isolate, templ, "checkEcKeyData", CheckEcKeyData); SetProtoMethod(isolate, templ, "export", Export); SetProtoMethod(isolate, templ, "exportJwk", ExportJWK); SetProtoMethod(isolate, templ, "initECRaw", InitECRaw); @@ -926,6 +928,7 @@ void KeyObjectHandle::RegisterExternalReferences( registry->Register(Init); registry->Register(GetSymmetricKeySize); registry->Register(GetAsymmetricKeyType); + registry->Register(CheckEcKeyData); registry->Register(Export); registry->Register(ExportJWK); registry->Register(InitECRaw); @@ -1237,6 +1240,34 @@ void KeyObjectHandle::GetAsymmetricKeyType( args.GetReturnValue().Set(key->GetAsymmetricKeyType()); } +bool KeyObjectHandle::CheckEcKeyData() const { + MarkPopErrorOnReturn mark_pop_error_on_return; + + const ManagedEVPPKey& key = data_->GetAsymmetricKey(); + KeyType type = data_->GetKeyType(); + CHECK_NE(type, kKeyTypeSecret); + EVPKeyCtxPointer ctx(EVP_PKEY_CTX_new(key.get(), nullptr)); + CHECK(ctx); + CHECK_EQ(EVP_PKEY_id(key.get()), EVP_PKEY_EC); + + if (type == kKeyTypePrivate) { + return EVP_PKEY_check(ctx.get()) == 1; + } + +#if OPENSSL_VERSION_MAJOR >= 3 + return EVP_PKEY_public_check_quick(ctx.get()) == 1; +#else + return EVP_PKEY_public_check(ctx.get()) == 1; +#endif +} + +void KeyObjectHandle::CheckEcKeyData(const FunctionCallbackInfo& args) { + KeyObjectHandle* key; + ASSIGN_OR_RETURN_UNWRAP(&key, args.Holder()); + + args.GetReturnValue().Set(key->CheckEcKeyData()); +} + void KeyObjectHandle::GetSymmetricKeySize( const FunctionCallbackInfo& args) { KeyObjectHandle* key; diff --git a/src/crypto/crypto_keys.h b/src/crypto/crypto_keys.h index eb4f5222670e89..820d26cc153177 100644 --- a/src/crypto/crypto_keys.h +++ b/src/crypto/crypto_keys.h @@ -193,6 +193,9 @@ class KeyObjectHandle : public BaseObject { const v8::FunctionCallbackInfo& args); v8::Local GetAsymmetricKeyType() const; + static void CheckEcKeyData(const v8::FunctionCallbackInfo& args); + bool CheckEcKeyData() const; + static void GetSymmetricKeySize( const v8::FunctionCallbackInfo& args); diff --git a/test/parallel/test-webcrypto-export-import-ec.js b/test/parallel/test-webcrypto-export-import-ec.js index e17ff0c2d4075c..2bb9173ec857ff 100644 --- a/test/parallel/test-webcrypto-export-import-ec.js +++ b/test/parallel/test-webcrypto-export-import-ec.js @@ -400,15 +400,81 @@ async function testImportRaw({ name, publicUsages }, namedCurve) { ['ECDSA', ['verify'], ['sign']], ['ECDH', [], ['deriveBits', 'deriveBits']], ]) { - assert.rejects(subtle.importKey( - 'spki', - rsaPublic.export({ format: 'der', type: 'spki' }), - { name, hash: 'SHA-256', namedCurve: 'P-256' }, - true, publicUsages), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'pkcs8', - rsaPrivate.export({ format: 'der', type: 'pkcs8' }), - { name, hash: 'SHA-256', namedCurve: 'P-256' }, - true, privateUsages), { message: /Invalid key type/ }); + assert.rejects( + subtle.importKey( + 'spki', + rsaPublic.export({ format: 'der', type: 'spki' }), + { name, hash: 'SHA-256', namedCurve: 'P-256' }, + true, publicUsages), { message: /Invalid key type/ }, + ).then(common.mustCall()); + assert.rejects( + subtle.importKey( + 'pkcs8', + rsaPrivate.export({ format: 'der', type: 'pkcs8' }), + { name, hash: 'SHA-256', namedCurve: 'P-256' }, + true, privateUsages), { message: /Invalid key type/ }, + ).then(common.mustCall()); + } +} + +// Bad private keys +{ + for (const { namedCurve, key: pkcs8 } of [ + // The private key is exactly equal to the order, and the public key is + // private key * order. + { + namedCurve: 'P-256', + key: Buffer.from( + '3066020100301306072a8648ce3d020106082a8648ce3d030107044c304a0201' + + '010420ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc' + + '632551a12303210000ffffff00000000ffffffffffffffffbce6faada7179e84' + + 'f3b9cac2fc632551', 'hex'), + }, + // The private key is exactly equal to the order, and the public key is + // omitted. + { + namedCurve: 'P-256', + key: Buffer.from( + '3041020100301306072a8648ce3d020106082a8648ce3d030107042730250201' + + '010420ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc' + + '632551', 'hex'), + }, + // The private key is exactly equal to the order + 11, and the public key is + // private key * order. + { + namedCurve: 'P-521', + key: Buffer.from( + '3081ee020100301006072a8648ce3d020106052b810400230481d63081d30201' + + '01044201ffffffffffffffffffffffffffffffffffffffffffffffffffffffff' + + 'fffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb7' + + '1e91386414a181890381860004008a75841259fdedff546f1a39573b4315cfed' + + '5dc7ed7c17849543ef2c54f2991652f3dbc5332663da1bd19b1aebe319108501' + + '5c024fa4c9a902ecc0e02dda0cdb9a0096fb303fcbba2129849d0ca877054fb2' + + '293add566210bd0493ed2e95d4e0b9b82b1bc8a90e8b42a4ab3892331914a953' + + '36dcac80e3f4819b5d58874f92ce48c808', 'hex'), + }, + // The private key is exactly equal to the order + 11, and the public key is + // omitted. + { + namedCurve: 'P-521', + key: Buffer.from( + '3060020100301006072a8648ce3d020106052b81040023044930470201010442' + + '01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' + + 'fffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e9138' + + '6414', 'hex'), + }, + ]) { + for (const [name, privateUsages] of [ + ['ECDSA', ['sign']], + ['ECDH', ['deriveBits', 'deriveBits']], + ]) { + assert.rejects( + subtle.importKey( + 'pkcs8', + pkcs8, + { name, hash: 'SHA-256', namedCurve }, + true, privateUsages), { name: 'DataError', message: /Invalid keyData/ }, + ).then(common.mustCall()); + } } } From c37a75a898c6f7a008152421bd241c0bf74a249b Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Fri, 20 Oct 2023 17:57:33 -0400 Subject: [PATCH 193/232] test: update `url` web platform tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50264 Reviewed-By: Antoine du Hamel Reviewed-By: Michaël Zasso Reviewed-By: Moshe Atlow Reviewed-By: Luigi Pinca --- test/fixtures/wpt/README.md | 2 +- test/fixtures/wpt/url/failure.html | 2 + .../wpt/url/resources/a-element-origin.js | 4 ++ test/fixtures/wpt/url/resources/a-element.js | 4 ++ .../wpt/url/resources/setters_tests.json | 54 +++++++++++++++++++ .../wpt/url/resources/urltestdata.json | 1 - .../wpt/url/url-statics-canparse.any.js | 8 +-- .../wpt/url/urlsearchparams-delete.any.js | 11 ++++ .../wpt/url/urlsearchparams-has.any.js | 8 +++ test/fixtures/wpt/versions.json | 2 +- 10 files changed, 89 insertions(+), 7 deletions(-) diff --git a/test/fixtures/wpt/README.md b/test/fixtures/wpt/README.md index c8210edb569c17..6bcd1e51efd83b 100644 --- a/test/fixtures/wpt/README.md +++ b/test/fixtures/wpt/README.md @@ -27,7 +27,7 @@ Last update: - resource-timing: https://github.com/web-platform-tests/wpt/tree/22d38586d0/resource-timing - resources: https://github.com/web-platform-tests/wpt/tree/919874f84f/resources - streams: https://github.com/web-platform-tests/wpt/tree/517e945bbf/streams -- url: https://github.com/web-platform-tests/wpt/tree/84782d9315/url +- url: https://github.com/web-platform-tests/wpt/tree/c2d7e70b52/url - user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing - wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi - wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi diff --git a/test/fixtures/wpt/url/failure.html b/test/fixtures/wpt/url/failure.html index 8a408412668fd3..e61f462f97456f 100644 --- a/test/fixtures/wpt/url/failure.html +++ b/test/fixtures/wpt/url/failure.html @@ -10,6 +10,8 @@ function runTests(testData) { for (const test of testData) { + + // skip comments, inputs we expect to pass and relative URLs if (typeof test === "string" || !test.failure || test.base !== null) { continue; } diff --git a/test/fixtures/wpt/url/resources/a-element-origin.js b/test/fixtures/wpt/url/resources/a-element-origin.js index de72988ea93c12..c1c24c8986b4aa 100644 --- a/test/fixtures/wpt/url/resources/a-element-origin.js +++ b/test/fixtures/wpt/url/resources/a-element-origin.js @@ -21,6 +21,10 @@ function runURLTests(urlTests) { if (expected.base === null && expected.input.startsWith("#")) continue; + // HTML special cases data: and javascript: URLs in + if (expected.base !== null && (expected.base.startsWith("data:") || expected.base.startsWith("javascript:"))) + continue; + // We cannot use a null base for HTML tests const base = expected.base === null ? "about:blank" : expected.base; diff --git a/test/fixtures/wpt/url/resources/a-element.js b/test/fixtures/wpt/url/resources/a-element.js index d87937d002b24a..cff4160d328942 100644 --- a/test/fixtures/wpt/url/resources/a-element.js +++ b/test/fixtures/wpt/url/resources/a-element.js @@ -21,6 +21,10 @@ function runURLTests(urlTests) { if (expected.relativeTo === "any-base") continue; + // HTML special cases data: and javascript: URLs in + if (expected.base !== null && (expected.base.startsWith("data:") || expected.base.startsWith("javascript:"))) + continue; + // We cannot use a null base for HTML tests const base = expected.base === null ? "about:blank" : expected.base; diff --git a/test/fixtures/wpt/url/resources/setters_tests.json b/test/fixtures/wpt/url/resources/setters_tests.json index 347caf49ab0520..82adf4cdce270b 100644 --- a/test/fixtures/wpt/url/resources/setters_tests.json +++ b/test/fixtures/wpt/url/resources/setters_tests.json @@ -2021,6 +2021,24 @@ "href": "sc:/space%20", "pathname": "/space%20" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/%20", + "pathname": "/%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/%00", + "pathname": "/%00" + } } ], "search": [ @@ -2141,6 +2159,24 @@ "href": "sc:space #fragment", "search": "" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/?%20", + "search": "?%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/?%00", + "search": "?%00" + } } ], "hash": [ @@ -2311,6 +2347,24 @@ "href": "sc:space ?query", "hash": "" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/#%20", + "hash": "#%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/#%00", + "hash": "#%00" + } } ], "href": [ diff --git a/test/fixtures/wpt/url/resources/urltestdata.json b/test/fixtures/wpt/url/resources/urltestdata.json index ec189871d90814..287a84b467a48b 100644 --- a/test/fixtures/wpt/url/resources/urltestdata.json +++ b/test/fixtures/wpt/url/resources/urltestdata.json @@ -7851,7 +7851,6 @@ "input": "blob:file://host/path", "base": null, "href": "blob:file://host/path", - "origin": "null", "protocol": "blob:", "username": "", "password": "", diff --git a/test/fixtures/wpt/url/url-statics-canparse.any.js b/test/fixtures/wpt/url/url-statics-canparse.any.js index c87fcb4f56fcdd..74f3da31f0d175 100644 --- a/test/fixtures/wpt/url/url-statics-canparse.any.js +++ b/test/fixtures/wpt/url/url-statics-canparse.any.js @@ -6,23 +6,23 @@ "expected": false }, { - "url": "a:b", + "url": "aaa:b", "base": undefined, "expected": true }, { "url": undefined, - "base": "a:b", + "base": "aaa:b", "expected": false }, { - "url": "a:/b", + "url": "aaa:/b", "base": undefined, "expected": true }, { "url": undefined, - "base": "a:/b", + "base": "aaa:/b", "expected": true }, { diff --git a/test/fixtures/wpt/url/urlsearchparams-delete.any.js b/test/fixtures/wpt/url/urlsearchparams-delete.any.js index f9c623b90b175d..c597142c51d5bf 100644 --- a/test/fixtures/wpt/url/urlsearchparams-delete.any.js +++ b/test/fixtures/wpt/url/urlsearchparams-delete.any.js @@ -70,3 +70,14 @@ test(() => { params.delete('a', 'c'); assert_equals(params.toString(), 'a=b&a=d'); }, "Two-argument delete()"); + +test(() => { + const params = new URLSearchParams(); + params.append('a', 'b'); + params.append('a', 'c'); + params.append('b', 'c'); + params.append('b', 'd'); + params.delete('b', 'c'); + params.delete('a', undefined); + assert_equals(params.toString(), 'b=d'); +}, "Two-argument delete() respects undefined as second arg"); diff --git a/test/fixtures/wpt/url/urlsearchparams-has.any.js b/test/fixtures/wpt/url/urlsearchparams-has.any.js index 54cbf286db4a3d..2133a5da2f8b91 100644 --- a/test/fixtures/wpt/url/urlsearchparams-has.any.js +++ b/test/fixtures/wpt/url/urlsearchparams-has.any.js @@ -35,3 +35,11 @@ test(() => { params.delete('a', 'b'); assert_true(params.has('a', 'd')); }, "Two-argument has()"); + +test(() => { + const params = new URLSearchParams("a=b&a=d&c&e&"); + assert_true(params.has('a', 'b')); + assert_false(params.has('a', 'c')); + assert_true(params.has('a', 'd')); + assert_true(params.has('a', undefined)); +}, "Two-argument has() respects undefined as second arg"); \ No newline at end of file diff --git a/test/fixtures/wpt/versions.json b/test/fixtures/wpt/versions.json index 12b65f8f31f0ba..27daee082506fb 100644 --- a/test/fixtures/wpt/versions.json +++ b/test/fixtures/wpt/versions.json @@ -68,7 +68,7 @@ "path": "streams" }, "url": { - "commit": "84782d931516aa13cfe32dc7eaa1377b4d947d66", + "commit": "c2d7e70b52cbd9a5b938aa32f37078d7a71e0b21", "path": "url" }, "user-timing": { From 8d0edc63990af908b4ce7ef81d53348925f5414d Mon Sep 17 00:00:00 2001 From: CanadaHonk <19228318+CanadaHonk@users.noreply.github.com> Date: Sat, 21 Oct 2023 00:39:03 +0100 Subject: [PATCH 194/232] fs: improve error performance for `mkdirSync` PR-URL: https://github.com/nodejs/node/pull/49847 Refs: https://github.com/nodejs/performance/issues/106 Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung --- benchmark/fs/bench-mkdirSync.js | 44 ++++++++++++++++++++++++++++++ lib/fs.js | 11 ++++---- src/node_file.cc | 47 +++++++++++---------------------- typings/internalBinding/fs.d.ts | 6 ++--- 4 files changed, 68 insertions(+), 40 deletions(-) create mode 100644 benchmark/fs/bench-mkdirSync.js diff --git a/benchmark/fs/bench-mkdirSync.js b/benchmark/fs/bench-mkdirSync.js new file mode 100644 index 00000000000000..1db1c587877671 --- /dev/null +++ b/benchmark/fs/bench-mkdirSync.js @@ -0,0 +1,44 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); + +const bench = common.createBenchmark(main, { + type: ['existing', 'non-existing'], + recursive: ['true', 'false'], + n: [1e3], +}); + +function main({ n, type, recursive }) { + recursive = recursive === 'true'; + let files; + + switch (type) { + case 'non-existing': + files = []; + + // Populate tmpdir with target dirs + for (let i = 0; i < n; i++) { + const path = tmpdir.resolve(recursive ? `rmdirsync-bench-dir-${process.pid}-${i}/a/b/c` : `rmdirsync-bench-dir-${process.pid}-${i}`); + files.push(path); + } + break; + case 'existing': + files = new Array(n).fill(__dirname); + break; + default: + new Error('Invalid type'); + } + + bench.start(); + for (let i = 0; i < n; i++) { + try { + fs.mkdirSync(files[i], { recursive }); + } catch { + // do nothing + } + } + bench.end(n); +} diff --git a/lib/fs.js b/lib/fs.js index 1b95e2a6a79d3b..58d6f0375abdf3 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -1383,11 +1383,12 @@ function mkdirSync(path, options) { path = getValidatedPath(path); validateBoolean(recursive, 'options.recursive'); - const ctx = { path }; - const result = binding.mkdir(pathModule.toNamespacedPath(path), - parseFileMode(mode, 'mode'), recursive, - undefined, ctx); - handleErrorFromBinding(ctx); + const result = binding.mkdir( + pathModule.toNamespacedPath(path), + parseFileMode(mode, 'mode'), + recursive, + ); + if (recursive) { return result; } diff --git a/src/node_file.cc b/src/node_file.cc index 29272c1423b0da..3bdd6d9407bc22 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1786,30 +1786,11 @@ int MKDirpAsync(uv_loop_t* loop, return err; } -int CallMKDirpSync(Environment* env, const FunctionCallbackInfo& args, - FSReqWrapSync* req_wrap, const char* path, int mode) { - env->PrintSyncTrace(); - int err = MKDirpSync(env->event_loop(), &req_wrap->req, path, mode, - nullptr); - if (err < 0) { - v8::Local context = env->context(); - v8::Local ctx_obj = args[4].As(); - v8::Isolate* isolate = env->isolate(); - ctx_obj->Set(context, - env->errno_string(), - v8::Integer::New(isolate, err)).Check(); - ctx_obj->Set(context, - env->syscall_string(), - OneByteString(isolate, "mkdir")).Check(); - } - return err; -} - static void MKDir(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 4); + CHECK_GE(argc, 3); BufferValue path(env->isolate(), args[0]); CHECK_NOT_NULL(*path); @@ -1822,21 +1803,25 @@ static void MKDir(const FunctionCallbackInfo& args) { CHECK(args[2]->IsBoolean()); bool mkdirp = args[2]->IsTrue(); - FSReqBase* req_wrap_async = GetReqWrap(args, 3); - if (req_wrap_async != nullptr) { // mkdir(path, mode, req) + if (argc > 3) { // mkdir(path, mode, recursive, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 3); FS_ASYNC_TRACE_BEGIN1( UV_FS_UNLINK, req_wrap_async, "path", TRACE_STR_COPY(*path)) AsyncCall(env, req_wrap_async, args, "mkdir", UTF8, mkdirp ? AfterMkdirp : AfterNoArgs, mkdirp ? MKDirpAsync : uv_fs_mkdir, *path, mode); - } else { // mkdir(path, mode, undefined, ctx) - CHECK_EQ(argc, 5); - FSReqWrapSync req_wrap_sync; + } else { // mkdir(path, mode, recursive) + FSReqWrapSync req_wrap_sync("mkdir", *path); FS_SYNC_TRACE_BEGIN(mkdir); if (mkdirp) { - int err = CallMKDirpSync(env, args, &req_wrap_sync, *path, mode); - if (err == 0 && - !req_wrap_sync.continuation_data()->first_path().empty()) { + env->PrintSyncTrace(); + int err = MKDirpSync( + env->event_loop(), &req_wrap_sync.req, *path, mode, nullptr); + if (is_uv_error(err)) { + env->ThrowUVException(err, "mkdir", nullptr, *path); + return; + } + if (!req_wrap_sync.continuation_data()->first_path().empty()) { Local error; std::string first_path(req_wrap_sync.continuation_data()->first_path()); FromNamespacedPath(&first_path); @@ -1844,15 +1829,13 @@ static void MKDir(const FunctionCallbackInfo& args) { first_path.c_str(), UTF8, &error); if (path.IsEmpty()) { - Local ctx = args[4].As(); - ctx->Set(env->context(), env->error_string(), error).Check(); + env->isolate()->ThrowException(error); return; } args.GetReturnValue().Set(path.ToLocalChecked()); } } else { - SyncCall(env, args[4], &req_wrap_sync, "mkdir", - uv_fs_mkdir, *path, mode); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_mkdir, *path, mode); } FS_SYNC_TRACE_END(mkdir); } diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index 6bed01519fa2b0..8b49b7456cbf3c 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -146,9 +146,9 @@ declare namespace InternalFSBinding { function mkdir(path: string, mode: number, recursive: boolean, req: FSReqCallback): void; function mkdir(path: string, mode: number, recursive: true, req: FSReqCallback): void; function mkdir(path: string, mode: number, recursive: false, req: FSReqCallback): void; - function mkdir(path: string, mode: number, recursive: boolean, req: undefined, ctx: FSSyncContext): void | string; - function mkdir(path: string, mode: number, recursive: true, req: undefined, ctx: FSSyncContext): string; - function mkdir(path: string, mode: number, recursive: false, req: undefined, ctx: FSSyncContext): void; + function mkdir(path: string, mode: number, recursive: boolean): void | string; + function mkdir(path: string, mode: number, recursive: true): string; + function mkdir(path: string, mode: number, recursive: false): void; function mkdir(path: string, mode: number, recursive: boolean, usePromises: typeof kUsePromises): Promise; function mkdir(path: string, mode: number, recursive: true, usePromises: typeof kUsePromises): Promise; function mkdir(path: string, mode: number, recursive: false, usePromises: typeof kUsePromises): Promise; From eb33f70260b0f84b6e60bf0eb2db00e4fdf0c349 Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Sat, 21 Oct 2023 08:39:14 +0900 Subject: [PATCH 195/232] fs: improve error performance for `fsyncSync` PR-URL: https://github.com/nodejs/node/pull/49880 Refs: https://github.com/nodejs/performance/issues/106 Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung --- benchmark/fs/bench-fsyncSync.js | 42 +++++++++++++++++++++++++++++++++ lib/fs.js | 4 +--- src/node_file.cc | 12 +++++----- typings/internalBinding/fs.d.ts | 2 +- 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 benchmark/fs/bench-fsyncSync.js diff --git a/benchmark/fs/bench-fsyncSync.js b/benchmark/fs/bench-fsyncSync.js new file mode 100644 index 00000000000000..fc7ef29266790b --- /dev/null +++ b/benchmark/fs/bench-fsyncSync.js @@ -0,0 +1,42 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); + +const tmpfile = tmpdir.resolve(`.existing-file-${process.pid}`); +fs.writeFileSync(tmpfile, 'this-is-for-a-benchmark', 'utf8'); + +const bench = common.createBenchmark(main, { + type: ['existing', 'non-existing'], + n: [1e4], +}); + +function main({ n, type }) { + let fd; + + switch (type) { + case 'existing': + fd = fs.openSync(tmpfile, 'r', 0o666); + break; + case 'non-existing': + fd = 1 << 30; + break; + default: + new Error('Invalid type'); + } + + bench.start(); + for (let i = 0; i < n; i++) { + try { + fs.fsyncSync(fd); + } catch { + // do nothing + } + } + + bench.end(n); + + if (type === 'existing') fs.closeSync(fd); +} diff --git a/lib/fs.js b/lib/fs.js index 58d6f0375abdf3..418441a1d0c819 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -1321,9 +1321,7 @@ function fsync(fd, callback) { */ function fsyncSync(fd) { fd = getValidatedFd(fd); - const ctx = {}; - binding.fsync(fd, undefined, ctx); - handleErrorFromBinding(ctx); + return binding.fsync(fd); } /** diff --git a/src/node_file.cc b/src/node_file.cc index 3bdd6d9407bc22..02f4ee00de735a 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -1551,21 +1551,21 @@ static void Fsync(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); const int argc = args.Length(); - CHECK_GE(argc, 2); + CHECK_GE(argc, 1); CHECK(args[0]->IsInt32()); const int fd = args[0].As()->Value(); - FSReqBase* req_wrap_async = GetReqWrap(args, 1); - if (req_wrap_async != nullptr) { + if (argc > 1) { + FSReqBase* req_wrap_async = GetReqWrap(args, 1); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN0(UV_FS_FSYNC, req_wrap_async) AsyncCall(env, req_wrap_async, args, "fsync", UTF8, AfterNoArgs, uv_fs_fsync, fd); } else { - CHECK_EQ(argc, 3); - FSReqWrapSync req_wrap_sync; + FSReqWrapSync req_wrap_sync("fsync"); FS_SYNC_TRACE_BEGIN(fsync); - SyncCall(env, args[2], &req_wrap_sync, "fsync", uv_fs_fsync, fd); + SyncCallAndThrowOnError(env, &req_wrap_sync, uv_fs_fsync, fd); FS_SYNC_TRACE_END(fsync); } } diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index 8b49b7456cbf3c..e3b74c9ab671a2 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -100,8 +100,8 @@ declare namespace InternalFSBinding { function fstat(fd: number, useBigint: false, usePromises: typeof kUsePromises): Promise; function fsync(fd: number, req: FSReqCallback): void; - function fsync(fd: number, req: undefined, ctx: FSSyncContext): void; function fsync(fd: number, usePromises: typeof kUsePromises): Promise; + function fsync(fd: number): void; function ftruncate(fd: number, len: number, req: FSReqCallback): void; function ftruncate(fd: number, len: number, req: undefined, ctx: FSSyncContext): void; From b705e19a95b5fc5a2edc9fc11a7649d6eb32d70b Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 8 Oct 2023 00:24:18 +0000 Subject: [PATCH 196/232] deps: update c-ares to 1.20.0 Co-authored-by: Richard Lau PR-URL: https://github.com/nodejs/node/pull/50082 Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli --- LICENSE | 31 +- deps/cares/CHANGES | 292 +++- deps/cares/CMakeLists.txt | 14 +- deps/cares/INSTALL.md | 25 +- deps/cares/LICENSE.md | 32 +- deps/cares/Makefile.Watcom | 8 +- deps/cares/Makefile.am | 21 + deps/cares/Makefile.dj | 5 +- deps/cares/Makefile.in | 21 + deps/cares/Makefile.m32 | 14 +- deps/cares/Makefile.msvc | 45 +- deps/cares/Makefile.netware | 11 +- deps/cares/README.msvc | 2 +- deps/cares/RELEASE-NOTES | 91 +- deps/cares/acinclude.m4 | 3 +- deps/cares/aminclude_static.am | 2 +- deps/cares/buildconf | 2 + deps/cares/buildconf.bat | 3 + deps/cares/c-ares-config.cmake.in | 3 + deps/cares/cares.gyp | 36 +- deps/cares/configure | 198 ++- deps/cares/configure.ac | 25 +- deps/cares/docs/CMakeLists.txt | 2 + deps/cares/docs/Makefile.am | 7 +- deps/cares/docs/Makefile.in | 10 +- deps/cares/docs/Makefile.inc | 2 + deps/cares/docs/acountry.1 | 54 - deps/cares/docs/adig.1 | 18 + deps/cares/docs/ahost.1 | 18 + deps/cares/docs/ares_cancel.3 | 2 + deps/cares/docs/ares_create_query.3 | 2 + deps/cares/docs/ares_destroy.3 | 2 + deps/cares/docs/ares_destroy_options.3 | 2 + deps/cares/docs/ares_dup.3 | 2 + deps/cares/docs/ares_expand_name.3 | 2 + deps/cares/docs/ares_expand_string.3 | 2 + deps/cares/docs/ares_fds.3 | 2 + deps/cares/docs/ares_free_data.3 | 2 + deps/cares/docs/ares_free_hostent.3 | 2 + deps/cares/docs/ares_free_string.3 | 2 + deps/cares/docs/ares_freeaddrinfo.3 | 2 + deps/cares/docs/ares_get_servers.3 | 2 + deps/cares/docs/ares_get_servers_ports.3 | 3 + deps/cares/docs/ares_getaddrinfo.3 | 2 + deps/cares/docs/ares_gethostbyaddr.3 | 2 + deps/cares/docs/ares_gethostbyname.3 | 2 + deps/cares/docs/ares_gethostbyname_file.3 | 2 + deps/cares/docs/ares_getnameinfo.3 | 2 + deps/cares/docs/ares_getsock.3 | 2 + deps/cares/docs/ares_inet_ntop.3 | 2 + deps/cares/docs/ares_inet_pton.3 | 2 + deps/cares/docs/ares_init.3 | 2 + deps/cares/docs/ares_init_options.3 | 17 +- deps/cares/docs/ares_library_cleanup.3 | 2 + deps/cares/docs/ares_library_init.3 | 2 + deps/cares/docs/ares_library_init_android.3 | 2 + deps/cares/docs/ares_library_initialized.3 | 2 + deps/cares/docs/ares_mkquery.3 | 2 + deps/cares/docs/ares_parse_a_reply.3 | 2 + deps/cares/docs/ares_parse_aaaa_reply.3 | 2 + deps/cares/docs/ares_parse_caa_reply.3 | 2 + deps/cares/docs/ares_parse_mx_reply.3 | 2 + deps/cares/docs/ares_parse_naptr_reply.3 | 2 + deps/cares/docs/ares_parse_ns_reply.3 | 2 + deps/cares/docs/ares_parse_ptr_reply.3 | 2 + deps/cares/docs/ares_parse_soa_reply.3 | 2 + deps/cares/docs/ares_parse_srv_reply.3 | 2 + deps/cares/docs/ares_parse_txt_reply.3 | 2 + deps/cares/docs/ares_parse_uri_reply.3 | 2 + deps/cares/docs/ares_process.3 | 2 + deps/cares/docs/ares_query.3 | 2 + deps/cares/docs/ares_save_options.3 | 2 + deps/cares/docs/ares_search.3 | 2 + deps/cares/docs/ares_send.3 | 2 + deps/cares/docs/ares_set_local_dev.3 | 2 + deps/cares/docs/ares_set_local_ip4.3 | 2 + deps/cares/docs/ares_set_local_ip6.3 | 2 + deps/cares/docs/ares_set_servers.3 | 2 + deps/cares/docs/ares_set_servers_csv.3 | 2 + deps/cares/docs/ares_set_servers_ports.3 | 3 + deps/cares/docs/ares_set_servers_ports_csv.3 | 3 + deps/cares/docs/ares_set_socket_callback.3 | 3 + .../docs/ares_set_socket_configure_callback.3 | 2 + deps/cares/docs/ares_set_socket_functions.3 | 7 +- deps/cares/docs/ares_set_sortlist.3 | 3 + deps/cares/docs/ares_strerror.3 | 2 + deps/cares/docs/ares_timeout.3 | 2 + deps/cares/docs/ares_version.3 | 2 + deps/cares/get_ver.awk | 2 + deps/cares/include/CMakeLists.txt | 2 + deps/cares/include/Makefile.am | 2 + deps/cares/include/Makefile.in | 3 + deps/cares/include/ares.h | 78 +- deps/cares/include/ares_build.h | 38 +- deps/cares/include/ares_build.h.cmake | 9 + deps/cares/include/ares_build.h.in | 39 +- deps/cares/include/ares_dns.h | 41 +- deps/cares/include/ares_nameser.h | 26 + deps/cares/include/ares_rules.h | 39 +- deps/cares/include/ares_version.h | 33 +- deps/cares/libcares.pc.cmake | 3 + deps/cares/libcares.pc.in | 2 + deps/cares/ltmain.sh | 4 +- deps/cares/m4/ax_check_user_namespace.m4 | 7 +- deps/cares/m4/ax_check_uts_namespace.m4 | 7 +- deps/cares/m4/cares-compilers.m4 | 3 +- deps/cares/m4/cares-confopts.m4 | 3 +- deps/cares/m4/cares-functions.m4 | 105 +- deps/cares/m4/cares-reentrant.m4 | 5 +- deps/cares/m4/xc-am-iface.m4 | 3 +- deps/cares/m4/xc-cc-check.m4 | 3 +- deps/cares/m4/xc-lt-iface.m4 | 4 +- deps/cares/m4/xc-translit.m4 | 4 +- deps/cares/m4/xc-val-flgs.m4 | 4 +- deps/cares/m4/zz40-xc-ovr.m4 | 3 +- deps/cares/maketgz | 2 + deps/cares/msvc_ver.inc | 2 + deps/cares/src/CMakeLists.txt | 2 + deps/cares/src/Makefile.am | 2 + deps/cares/src/Makefile.in | 3 + deps/cares/src/lib/CMakeLists.txt | 2 + deps/cares/src/lib/Makefile.am | 2 + deps/cares/src/lib/Makefile.in | 139 +- deps/cares/src/lib/Makefile.inc | 24 +- deps/cares/src/lib/ares__addrinfo2hostent.c | 41 +- deps/cares/src/lib/ares__addrinfo_localhost.c | 36 +- deps/cares/src/lib/ares__buf.c | 476 +++++ deps/cares/src/lib/ares__buf.h | 252 +++ deps/cares/src/lib/ares__close_sockets.c | 145 +- deps/cares/src/lib/ares__get_hostent.c | 37 +- deps/cares/src/lib/ares__htable.c | 374 ++++ deps/cares/src/lib/ares__htable.h | 164 ++ deps/cares/src/lib/ares__htable_asvp.c | 195 +++ deps/cares/src/lib/ares__htable_asvp.h | 120 ++ deps/cares/src/lib/ares__htable_stvp.c | 193 +++ deps/cares/src/lib/ares__htable_stvp.h | 115 ++ deps/cares/src/lib/ares__llist.c | 316 ++++ deps/cares/src/lib/ares__llist.h | 203 +++ .../cares/src/lib/ares__parse_into_addrinfo.c | 36 +- deps/cares/src/lib/ares__read_line.c | 37 +- deps/cares/src/lib/ares__readaddrinfo.c | 39 +- deps/cares/src/lib/ares__slist.c | 501 ++++++ deps/cares/src/lib/ares__slist.h | 197 +++ deps/cares/src/lib/ares__sortaddrinfo.c | 4 +- deps/cares/src/lib/ares__timeval.c | 34 +- deps/cares/src/lib/ares_android.c | 35 +- deps/cares/src/lib/ares_android.h | 35 +- deps/cares/src/lib/ares_cancel.c | 98 +- deps/cares/src/lib/ares_config.h.cmake | 7 + deps/cares/src/lib/ares_config.h.in | 6 + deps/cares/src/lib/ares_create_query.c | 37 +- deps/cares/src/lib/ares_data.c | 36 +- deps/cares/src/lib/ares_data.h | 41 +- deps/cares/src/lib/ares_destroy.c | 93 +- deps/cares/src/lib/ares_expand_name.c | 37 +- deps/cares/src/lib/ares_expand_string.c | 37 +- deps/cares/src/lib/ares_fds.c | 80 +- deps/cares/src/lib/ares_free_hostent.c | 37 +- deps/cares/src/lib/ares_free_string.c | 37 +- deps/cares/src/lib/ares_freeaddrinfo.c | 38 +- deps/cares/src/lib/ares_getaddrinfo.c | 169 +- deps/cares/src/lib/ares_getenv.c | 38 +- deps/cares/src/lib/ares_getenv.h | 42 +- deps/cares/src/lib/ares_gethostbyaddr.c | 50 +- deps/cares/src/lib/ares_gethostbyname.c | 36 +- deps/cares/src/lib/ares_getnameinfo.c | 50 +- deps/cares/src/lib/ares_getsock.c | 89 +- deps/cares/src/lib/ares_inet_net_pton.h | 40 +- deps/cares/src/lib/ares_init.c | 410 +++-- deps/cares/src/lib/ares_iphlpapi.h | 42 +- deps/cares/src/lib/ares_ipv6.h | 36 +- deps/cares/src/lib/ares_library_init.c | 38 +- deps/cares/src/lib/ares_llist.c | 63 - deps/cares/src/lib/ares_llist.h | 39 - deps/cares/src/lib/ares_mkquery.c | 37 +- deps/cares/src/lib/ares_nowarn.c | 37 +- deps/cares/src/lib/ares_nowarn.h | 41 +- deps/cares/src/lib/ares_options.c | 49 +- deps/cares/src/lib/ares_parse_a_reply.c | 38 +- deps/cares/src/lib/ares_parse_aaaa_reply.c | 40 +- deps/cares/src/lib/ares_parse_caa_reply.c | 36 +- deps/cares/src/lib/ares_parse_mx_reply.c | 38 +- deps/cares/src/lib/ares_parse_naptr_reply.c | 39 +- deps/cares/src/lib/ares_parse_ns_reply.c | 36 +- deps/cares/src/lib/ares_parse_ptr_reply.c | 37 +- deps/cares/src/lib/ares_parse_soa_reply.c | 38 +- deps/cares/src/lib/ares_parse_srv_reply.c | 38 +- deps/cares/src/lib/ares_parse_txt_reply.c | 38 +- deps/cares/src/lib/ares_parse_uri_reply.c | 41 +- deps/cares/src/lib/ares_platform.c | 39 +- deps/cares/src/lib/ares_platform.h | 43 +- deps/cares/src/lib/ares_private.h | 189 +- deps/cares/src/lib/ares_process.c | 1532 ++++++++--------- deps/cares/src/lib/ares_query.c | 85 +- deps/cares/src/lib/ares_rand.c | 161 +- deps/cares/src/lib/ares_search.c | 42 +- deps/cares/src/lib/ares_send.c | 83 +- deps/cares/src/lib/ares_setup.h | 39 +- deps/cares/src/lib/ares_strcasecmp.c | 38 +- deps/cares/src/lib/ares_strcasecmp.h | 42 +- deps/cares/src/lib/ares_strdup.c | 38 +- deps/cares/src/lib/ares_strdup.h | 42 +- deps/cares/src/lib/ares_strerror.c | 37 +- deps/cares/src/lib/ares_strsplit.c | 35 +- deps/cares/src/lib/ares_strsplit.h | 40 +- deps/cares/src/lib/ares_timeout.c | 113 +- deps/cares/src/lib/ares_version.c | 27 +- deps/cares/src/lib/ares_writev.c | 79 - deps/cares/src/lib/ares_writev.h | 36 - deps/cares/src/lib/bitncmp.c | 3 +- deps/cares/src/lib/bitncmp.h | 41 +- deps/cares/src/lib/cares.rc | 36 +- deps/cares/src/lib/config-dos.h | 9 +- deps/cares/src/lib/config-win32.h | 38 +- deps/cares/src/lib/inet_net_pton.c | 3 +- deps/cares/src/lib/inet_ntop.c | 6 +- deps/cares/src/lib/setup_once.h | 43 +- deps/cares/src/lib/windows_port.c | 8 + deps/cares/src/tools/CMakeLists.txt | 19 +- deps/cares/src/tools/Makefile.am | 8 +- deps/cares/src/tools/Makefile.in | 137 +- deps/cares/src/tools/Makefile.inc | 2 + deps/cares/src/tools/acountry.c | 655 ------- deps/cares/src/tools/adig.c | 35 +- deps/cares/src/tools/ahost.c | 35 +- deps/cares/src/tools/ares_getopt.c | 2 + deps/cares/src/tools/ares_getopt.h | 2 + .../maintaining/maintaining-dependencies.md | 6 +- 228 files changed, 7758 insertions(+), 3752 deletions(-) delete mode 100644 deps/cares/docs/acountry.1 create mode 100644 deps/cares/src/lib/ares__buf.c create mode 100644 deps/cares/src/lib/ares__buf.h create mode 100644 deps/cares/src/lib/ares__htable.c create mode 100644 deps/cares/src/lib/ares__htable.h create mode 100644 deps/cares/src/lib/ares__htable_asvp.c create mode 100644 deps/cares/src/lib/ares__htable_asvp.h create mode 100644 deps/cares/src/lib/ares__htable_stvp.c create mode 100644 deps/cares/src/lib/ares__htable_stvp.h create mode 100644 deps/cares/src/lib/ares__llist.c create mode 100644 deps/cares/src/lib/ares__llist.h create mode 100644 deps/cares/src/lib/ares__slist.c create mode 100644 deps/cares/src/lib/ares__slist.h delete mode 100644 deps/cares/src/lib/ares_llist.c delete mode 100644 deps/cares/src/lib/ares_llist.h delete mode 100644 deps/cares/src/lib/ares_writev.c delete mode 100644 deps/cares/src/lib/ares_writev.h delete mode 100644 deps/cares/src/tools/acountry.c diff --git a/LICENSE b/LICENSE index 5688952e3ba22f..511343a8dfd4bb 100644 --- a/LICENSE +++ b/LICENSE @@ -78,19 +78,30 @@ The externally maintained libraries used by Node.js are: - c-ares, located at deps/cares, is licensed as follows: """ - Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS + MIT License + + Copyright (c) 1998 Massachusetts Institute of Technology + Copyright (c) 2007 - 2023 Daniel Stenberg with many contributors, see AUTHORS file. - Copyright 1998 by the Massachusetts Institute of Technology. + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. - Permission to use, copy, modify, and distribute this software and its - documentation for any purpose and without fee is hereby granted, provided that - the above copyright notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting documentation, and that - the name of M.I.T. not be used in advertising or publicity pertaining to - distribution of the software without specific, written prior permission. - M.I.T. makes no representations about the suitability of this software for any - purpose. It is provided "as is" without express or implied warranty. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. """ - cjs-module-lexer, located at deps/cjs-module-lexer, is licensed as follows: diff --git a/deps/cares/CHANGES b/deps/cares/CHANGES index d465143131d726..82caeb70cdc4b4 100644 --- a/deps/cares/CHANGES +++ b/deps/cares/CHANGES @@ -1,5 +1,222 @@ Changelog for the c-ares project. Generated with git2changes.pl +Version 1.20.0 (6 Oct 2023) + +Brad House (6 Oct 2023) +- fix slist search off by 1 + +GitHub (6 Oct 2023) +- [Brad House brought this change] + + 1.20.0 release prep (#557) + +- [Brad House brought this change] + + ares__buf should return standard error codes. more helpers implemented. (#558) + + The purpose of this PR is to hopefully make the private API of this set of routines less likely to need to be changed in a future release. While this is not a public API, it could become harder in the future to change usage as it becomes more widely used within c-ares. + + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Update from 1989 MIT license text to modern MIT license text (#556) + + ares (and thus c-ares) was originally licensed under the 1989 MIT license text: + https://fedoraproject.org/wiki/Licensing:MIT#Old_Style_(no_advertising_without_permission) + + This change updates the license to the modern MIT license as recognized here: + https://opensource.org/license/mit/ + + care has been taken to ensure correct attributions remain for the authors contained within the copyright headers, and all authors with attributions in the headers have been contacted for approval regarding the change. Any authors which were not able to be contacted, the original copyright maintains, luckily that exists in only a single file `ares_parse_caa_reply.c` at this time. + + Please see PR #556 for the documented approvals by each contributor. + + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Test Harness: use ares_timeout() to calculate the value to pass to select() these days. (#555) + + The test framework was using 100ms timeout passed to select(), and not using ares_timeout() to calculate the actual recommended value based on the queries in queue. Using ares_timeout() tests the functionality of ares_timeout() itself and will provide more responsive results. + + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Fix for TCP back to back queries (#552) + + As per #266, TCP queries are basically broken. If we get a partial reply, things just don't work, but unlike UDP, TCP may get fragmented and we need to properly handle that. + + I've started creating a basic parser/buffer framework for c-ares for memory safety reasons, but it also helps for things like this where we shouldn't be manually tracking positions and fetching only a couple of bytes at a time from a socket. This parser/buffer will be expanded and used more in the future. + + This also resolves #206 by allowing NULL to be specified for some socket callbacks so they will auto-route to the built-in c-ares functions. + + Fixes: #206, #266 + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + remove acountry from built tools as nerd.dk is gone (#554) + + The acountry utility required a third party DNSBL service from nerd.dk in order to operate. That service has been offline for about a year and there is no other comparable service offering. We are keeping the code in the repository as an example, but no longer building it. + + Fixes: #537 + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Don't requeue any queries for getaddrinfo() during destruction. (#553) + + During ares_destroy(), any outstanding queries are terminated, however ares_getaddrinfo() had an ordering issue with status codes which in some circumstances could lead to a new query being enqueued rather than honoring the termination. + + Fixes #532 + Fix By: @Chilledheart and Brad House (@bradh352) + +- [Brad House brought this change] + + ares_getaddrinfo(): Fail faster on AF_UNSPEC if we've already received one address class (#551) + + As per #541, when using AF_UNSPEC with ares_getaddrinfo() (and in turn with ares_gethostbynam()) if we receive a successful response for one address class, we should not allow the other address class to continue on with retries, just return the address class we have. + + This will limit the overall query time to whatever timeout remains for the pending query for the other address class, it will not, however, terminate the other query as it may still prove to be successful (possibly coming in less than a millisecond later) and we'd want that result still. It just turns off additional error processing to get the result back quicker. + + Fixes Bug: #541 + Fix By: Brad House (@bradh352) + +- [Sam Morris brought this change] + + Avoid producing an ill-formed result when qualifying a name with the root domain (#546) + + This prevents the result of qualifying "name" with "." being "name.." which is ill-formed. + + Fixes Bug: #545 + Fix By: Sam Morris (@yrro) + +- [Brad House brought this change] + + Configuration option to limit number of UDP queries per ephemeral port (#549) + + Add a new ARES_OPT_UDP_MAX_QUERIES option with udp_max_queries parameter that can be passed to ares_init_options(). This value defaults to 0 (unlimited) to maintain existing compatibility, any positive number will cause new UDP ephemeral ports to be created once the threshold is reached, we'll call these 'connections' even though its technically wrong for UDP. + + Implementation Details: + * Each server entry in a channel now has a linked-list of connections/ports for udp and tcp. The first connection in the list is the one most likely to be eligible to accept new queries. + * Queries are now tracked by connection rather than by server. + * Every time a query is detached from a connection, the connection that it was attached to will be checked to see if it needs to be cleaned up. + * Insertion, lookup, and searching for connections has been implemented as O(1) complexity so the number of connections will not impact performance. + * Remove is_broken from the server, it appears it would be set and immediately unset, so must have been invalidated via a prior patch. A future patch should probably track consecutive server errors and de-prioritize such servers. The code right now will always try servers in the order of configuration, so a bad server in the list will always be tried and may rely on timeout logic to try the next. + * Various other cleanups to remove code duplication and for clarification. + + Fixes Bug: #444 + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + its not 1991 anymore, lower default timeout and retry count (#542) + + A lot of time has passed since the original timeouts and retry counts were chosen. We have on and off issues reported due to this. Even on geostationary satellite links, latency is worst case around 1.5s. This PR changes the per-server timeout to 2s and the retry count lowered from 4 to 3. + + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Modernization: Implement base data-structures and replace usage (#540) + + c-ares currently lacks modern data structures that can make coding easier and more efficient. This PR implements a new linked list, skip list (sorted linked list), and hashtable implementation that are easy to use and hard to misuse. Though these implementations use more memory allocations than the prior implementation, the ability to more rapidly iterate on the codebase is a bigger win than any marginal performance difference (which is unlikely to be visible, modern systems are much more powerful than when c-ares was initially created). + + The data structure implementation favors readability and audit-ability over performance, however using the algorithmically correct data type for the purpose should offset any perceived losses. + + The primary motivation for this PR is to facilitate future implementation for Issues #444, #135, #458, and possibly #301 + + A couple additional notes: + + The ares_timeout() function is now O(1) complexity instead of O(n) due to the use of a skiplist. + Some obscure bugs were uncovered which were actually being incorrectly validated in the test cases. These have been addressed in this PR but are not explicitly discussed. + Fixed some dead code warnings in ares_rand for systems that don't need rc4 + + Fix By: Brad House (@bradh352) + +- [Jérôme Duval brought this change] + + fix missing prefix for CMake generated libcares.pc (#530) + + 'pkg-config grpc --cflags' complains with: + Variable 'prefix' not defined in libcares.pc + + Fix By: Jérôme Duval (@korli) + +bradh352 (11 Jul 2023) +- windows get_DNS_Windows port fix for ipv6 + +- windows get_DNS_Windows port is in network byte order + +- backoff to debian 11 due to coverage check failure + +- extend on PR #534, windows should also honor a port + +GitHub (11 Jul 2023) +- [Brad House brought this change] + + Support configuration of DNS server ports (#534) + + As per https://man.openbsd.org/OpenBSD-5.1/resolv.conf.5 we should + support bracketed syntax for resolv.conf entries to contain an optional + port number. + + We also need to utilize this format for configuration of MacOS + DNS servers as seen when using the Viscosity OpenVPN client, where + it starts a private DNS server listening on localhost on a non-standard + port. + + Fix By: Brad House (@bradh352) + +Daniel Stenberg (9 Jun 2023) +- provide SPDX identifiers and a REUSE CI job to verify + + All files have their licence and copyright information clearly + identifiable. If not in the file header, they are set separately in + .reuse/dep5. + + All used license texts are provided in LICENSES/ + +GitHub (30 May 2023) +- [Alexey A Tikhonov brought this change] + + Remove unreachable code as reported by Coverity (#527) + + Coverity reported some code as unreachable. A manual inspection confirmed the reports. + + Fix By: Alexey A Tikhonov (@alexey-tikhonov) + +- [Ben Noordhuis brought this change] + + rand: add support for getrandom() (#526) + + glibc provides arc4random_buf() but musl does not and /dev/urandom is + not always available. + +- [Tim Wojtulewicz brought this change] + + Replace uses of sprintf with snprintf (#525) + + sprintf isn't safe even if you think you are using it right. Switch to snprintf(). + + Fix By: Tim Wojtulewicz (@timwoj) + +bradh352 (23 May 2023) +- update version and release procedure + +GitHub (22 May 2023) +- [Douglas R. Reno brought this change] + + INSTALL.md: Add Watcom instructions and update Windows documentation URLs (#524) + + This commit adds instructions on how to use the WATCOM compiler to build c-ares. This was just tested on c-ares-1.19.1 and works well. + + While going through the links for the C Runtime documentation for Windows systems, I discovered that all three of the KB articles that were linked are now nonexistent. This commit replaces KB94248 with the current replacement available on Microsoft's website, which also makes the other two KB articles obsolete. + + Fix By: Douglas R. Reno (@renodr) + Version 1.19.1 (22 May 2023) bradh352 (22 May 2023) @@ -5477,78 +5694,3 @@ Daniel Stenberg (11 Jun 2010) - [BogDan Vatra brought this change] init: allow c-ares to work on Android OS - -- changelog: fill in the 1.7.2 changes - -- added another pdf to ignore - -Yang Tse (11 Jun 2010) -- add ares_parse_mx_reply.c to VS dsp file - -Daniel Stenberg (10 Jun 2010) -- tarball: add $(CSOURCES) $(HHEADERS) to EXTRA_DIST - - It's not clear to me why we need this, but we apparently may - otherwise not get all files bundled in the dist tarball. - -- version: start working on 1.7.3 - -Version 1.7.2 (10 Jun 2010) - -Daniel Stenberg (10 Jun 2010) -- RELEASE-NOTES: 1.7.2 details added - -- [Jakub Hrozek brought this change] - - ares_init: Last, not first instance of domain or search should win - -- style: make code less than 80 columns wide - -Yang Tse (31 May 2010) -- [Tor Arntsen brought this change] - - improve alternative definition of bool to use enum instead of unsigned char - -- fix VS2010 compiler warnings - -Daniel Stenberg (18 Apr 2010) -- [Jérémy Lal brought this change] - - added ares_parse_mx_reply - -- repair the file mode - -- remove all $Id$ lines - -- remove all .cvsignore files - -- spell fix - - reported by Gregor Jasny on the mailing list - -- [Peter Pentchev brought this change] - - Fix a couple of typos and grammar nits. - -- ignore the GPG signature files too - -- start the journey towards 1.7.2 - -- no longer CVS tagging - -- ignore generated PDFs - -Version 1.7.1 (23 Mar 2010) - -Daniel Stenberg (23 Mar 2010) -- 1.7.1 - -- made README the primary readme file - - ... and did README.cares to contain a historic reason etc. - -- s/CVS/git - -- git now, not CVS - -- ignore lots of generated files diff --git a/deps/cares/CMakeLists.txt b/deps/cares/CMakeLists.txt index 9379014296c44b..9a855503fc95ce 100644 --- a/deps/cares/CMakeLists.txt +++ b/deps/cares/CMakeLists.txt @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT CMAKE_MINIMUM_REQUIRED (VERSION 3.1.0) INCLUDE (CheckIncludeFiles) @@ -8,10 +10,10 @@ INCLUDE (CheckCSourceCompiles) INCLUDE (CheckStructHasMember) INCLUDE (CheckLibraryExists) -PROJECT (c-ares LANGUAGES C VERSION "1.19.1" ) +PROJECT (c-ares LANGUAGES C VERSION "1.20.0" ) # Set this version before release -SET (CARES_VERSION "1.19.1") +SET (CARES_VERSION "1.20.0") INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are wrong. @@ -26,7 +28,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w # For example, a version of 4:0:2 would generate output such as: # libname.so -> libname.so.2 # libname.so.2 -> libname.so.2.2.0 -SET (CARES_LIB_VERSIONINFO "8:1:6") +SET (CARES_LIB_VERSIONINFO "9:0:7") OPTION (CARES_STATIC "Build as a static library" OFF) @@ -164,6 +166,7 @@ CARES_FUNCTION_IN_LIBRARY (clock_gettime rt HAVE_LIBRT) # Look for necessary includes CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H) +CHECK_INCLUDE_FILES (sys/random.h HAVE_SYS_RANDOM_H) CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H) CHECK_INCLUDE_FILES (sys/sockio.h HAVE_SYS_SOCKIO_H) CHECK_INCLUDE_FILES (arpa/inet.h HAVE_ARPA_INET_H) @@ -281,6 +284,7 @@ CARES_EXTRAINCLUDE_IFSET (HAVE_STDLIB_H stdlib.h) CARES_EXTRAINCLUDE_IFSET (HAVE_STRING_H string.h) CARES_EXTRAINCLUDE_IFSET (HAVE_STRINGS_H strings.h) CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_IOCTL_H sys/ioctl.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_RANDOM_H sys/random.h) CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SELECT_H sys/select.h) CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKET_H sys/socket.h) CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKIO_H sys/sockio.h) @@ -365,6 +369,7 @@ CHECK_SYMBOL_EXISTS (gethostbyaddr "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOST CHECK_SYMBOL_EXISTS (gethostbyname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTBYNAME) CHECK_SYMBOL_EXISTS (gethostname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTNAME) CHECK_SYMBOL_EXISTS (getnameinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETNAMEINFO) +CHECK_SYMBOL_EXISTS (getrandom "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETRANDOM) CHECK_SYMBOL_EXISTS (getservbyport_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYPORT_R) CHECK_SYMBOL_EXISTS (getservbyname_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYNAME_R) CHECK_SYMBOL_EXISTS (gettimeofday "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETTIMEOFDAY) @@ -562,6 +567,9 @@ ENDIF () IF (HAVE_SYS_TYPES_H) SET (CARES_HAVE_SYS_TYPES_H 1) ENDIF () +IF (HAVE_SYS_RANDOM_H) + SET (CARES_HAVE_SYS_RANDOM_H 1) +ENDIF() IF (HAVE_SYS_SOCKET_H) SET (CARES_HAVE_SYS_SOCKET_H 1) ENDIF() diff --git a/deps/cares/INSTALL.md b/deps/cares/INSTALL.md index 0f9d95a521924a..9b2f847be8cbe2 100644 --- a/deps/cares/INSTALL.md +++ b/deps/cares/INSTALL.md @@ -291,16 +291,12 @@ As a general rule, building a DLL with static CRT linkage is highly discouraged, and intermixing CRTs in the same app is something to avoid at any cost. -Reading and comprehension of Microsoft Knowledge Base articles -KB94248 and KB140584 is a must for any Windows developer. Especially +Reading and comprehension of the following Microsoft Learn article +is a must for any Windows developer. Especially important is full understanding if you are not going to follow the advice given above. - - [KB94248](http://support.microsoft.com/kb/94248/en-us) - How To Use the C Run-Time - - - [KB140584](http://support.microsoft.com/kb/140584/en-us) - How to link with the correct C Run-Time (CRT) library - - - [KB190799](http://msdn.microsoft.com/en-us/library/ms235460) - Potential Errors Passing CRT Objects Across DLL Boundaries + - [Use the C Run-Time](https://learn.microsoft.com/en-us/troubleshoot/developer/visualstudio/cpp/libraries/use-c-run-time) If your app is misbehaving in some strange way, or it is suffering from memory corruption, before asking for further help, please try @@ -397,6 +393,21 @@ You can build and install c-ares using [vcpkg](https://github.com/Microsoft/vcpk The c-ares port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository. +WATCOM +===== + +To build c-ares with OpenWatcom, you need to have at least version 1.9 of OpenWatcom. You can get the latest version from [http://openwatcom.org/ftp/install/](http://openwatcom.org/ftp/install/). Install the version that corresponds to your current host platform. + +After installing OpenWatcom, open a new command prompt and execute the following commands: + +``` + cd \path\to\cmake\source + buildconf.bat + wmake -u -f Makefile.Watcom +``` + +After running wmake, you should get adig.exe, ahost.exe, and the static and dynamic versions of libcares. + PORTS ===== diff --git a/deps/cares/LICENSE.md b/deps/cares/LICENSE.md index ad6bb52b729ed4..134145428aae48 100644 --- a/deps/cares/LICENSE.md +++ b/deps/cares/LICENSE.md @@ -1,15 +1,27 @@ # c-ares license -Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS +MIT License + + +Copyright (c) 1998 Massachusetts Institute of Technology +Copyright (c) 2007 - 2023 Daniel Stenberg with many contributors, see AUTHORS file. -Copyright 1998 by the Massachusetts Institute of Technology. +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided that -the above copyright notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting documentation, and that -the name of M.I.T. not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior permission. -M.I.T. makes no representations about the suitability of this software for any -purpose. It is provided "as is" without express or implied warranty. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/deps/cares/Makefile.Watcom b/deps/cares/Makefile.Watcom index 34e07bb4c6b96a..6ea10e532bc4a4 100644 --- a/deps/cares/Makefile.Watcom +++ b/deps/cares/Makefile.Watcom @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT # # Watcom / OpenWatcom / Win32 makefile for cares. # Quick hack by Guenter; comments to: /dev/nul @@ -17,7 +19,7 @@ LIBNAME = $(%libname) LIBNAME = cares !endif TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib -DEMOS = adig.exe ahost.exe acountry.exe +DEMOS = adig.exe ahost.exe CC = wcc386 LD = wlink @@ -118,10 +120,6 @@ ahost.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib $(CC) $(CFLAGS) src\tools\ahost.c -fo=$(OBJ_BASE)\tools\ahost.obj $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\ahost.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib -acountry.exe: $(OBJ_BASE)\tools\ares_getopt.obj $(LIBNAME).lib - $(CC) $(CFLAGS) src\tools\acountry.c -fo=$(OBJ_BASE)\tools\acountry.obj - $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\tools\acountry.obj $[@ } library $]@, ws2_32.lib, iphlpapi.lib - clean: .SYMBOLIC -$(RM) $(OBJS_STAT) -$(RM) $(OBJS_DYN) diff --git a/deps/cares/Makefile.am b/deps/cares/Makefile.am index eef3d3d160e455..cc22ac13b31b96 100644 --- a/deps/cares/Makefile.am +++ b/deps/cares/Makefile.am @@ -1,3 +1,24 @@ +############################################################# +# +# Copyright (C) the Massachusetts Institute of Technology. +# Copyright (C) Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this +# software and its documentation for any purpose and without +# fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright +# notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in +# advertising or publicity pertaining to distribution of the +# software without specific, written prior permission. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# SPDX-License-Identifier: MIT +# +############################################################# + AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 ACLOCAL_AMFLAGS = -I m4 --install diff --git a/deps/cares/Makefile.dj b/deps/cares/Makefile.dj index a88aae219da933..2f22188863886b 100644 --- a/deps/cares/Makefile.dj +++ b/deps/cares/Makefile.dj @@ -1,6 +1,7 @@ # # c-ares Makefile for djgpp/gcc/Watt-32. -# By Gisle Vanem 2004 - 2020. +# Copyright (C) Gisle Vanem +# SPDX-License-Identifier: MIT # include src/lib/Makefile.inc @@ -46,7 +47,7 @@ OBJECTS = $(addprefix $(OBJ_DIR)/, \ GENERATED = src/lib/ares_config.h \ include/ares_build.h -TARGETS = libcares.a acountry.exe adig.exe ahost.exe +TARGETS = libcares.a adig.exe ahost.exe .SECONDARY: $(OBJ_DIR)/ares_getopt.o diff --git a/deps/cares/Makefile.in b/deps/cares/Makefile.in index 3dfa479a2441ff..271369e15a67cd 100644 --- a/deps/cares/Makefile.in +++ b/deps/cares/Makefile.in @@ -14,6 +14,27 @@ @SET_MAKE@ +############################################################# +# +# Copyright (C) the Massachusetts Institute of Technology. +# Copyright (C) Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this +# software and its documentation for any purpose and without +# fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright +# notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in +# advertising or publicity pertaining to distribution of the +# software without specific, written prior permission. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# SPDX-License-Identifier: MIT +# +############################################################# + VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ diff --git a/deps/cares/Makefile.m32 b/deps/cares/Makefile.m32 index 66d28b1c146761..e51e64b3f938ae 100644 --- a/deps/cares/Makefile.m32 +++ b/deps/cares/Makefile.m32 @@ -1,10 +1,12 @@ ############################################################# # -## Makefile for building libcares.a with MingW32 (GCC-3.2) -## Use: make -f Makefile.m32 [demos] -## -## Quick hack by Guenter; comments to: /dev/nul +# Makefile for building libcares.a with MingW32 (GCC-3.2) +# Use: make -f Makefile.m32 [demos] # +# Quick hack by Guenter; comments to: /dev/nul +# +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT ######################################################## ## Nothing more to do below this line! @@ -34,7 +36,7 @@ $(LIB): $(OBJLIB) all: $(LIB) demos -demos: src/tools/adig.exe src/tools/ahost.exe src/tools/acountry.exe +demos: src/tools/adig.exe src/tools/ahost.exe tags: etags *.[ch] @@ -68,7 +70,7 @@ install: done) clean: - $(RM) src/tools/ares_getopt.o $(OBJLIB) $(LIB) src/tools/adig.exe src/tools/ahost.exe src/tools/acountry.exe + $(RM) src/tools/ares_getopt.o $(OBJLIB) $(LIB) src/tools/adig.exe src/tools/ahost.exe distclean: clean $(RM) config.cache config.log config.status Makefile diff --git a/deps/cares/Makefile.msvc b/deps/cares/Makefile.msvc index 62cc48fb3b545f..17daa0c8c0cad6 100644 --- a/deps/cares/Makefile.msvc +++ b/deps/cares/Makefile.msvc @@ -12,6 +12,8 @@ # M.I.T. makes no representations about the suitability of # this software for any purpose. It is provided "as is" # without express or implied warranty. +# +# SPDX-License-Identifier: MIT # ------------------------------------------------------------------------------ # @@ -20,7 +22,7 @@ # Usage: nmake /f makefile.msvc CFG= # # must be one of: [ lib-release | lib-debug | dll-release | dll-debug } -# must be one of: [ ALL | c-ares | acountry | adig | ahost | clean } +# must be one of: [ ALL | c-ares | adig | ahost | clean } # # If a other than ALL or clean is given, becomes mandatory. # @@ -130,7 +132,7 @@ VALID_CFGSET = TRUE ! MESSAGE Usage: nmake /f makefile.msvc CFG= ! MESSAGE ! MESSAGE must be one of: [ lib-release | lib-debug | dll-release | dll-debug } -! MESSAGE must be one of: [ ALL | c-ares | acountry | adig | ahost | clean } +! MESSAGE must be one of: [ ALL | c-ares | adig | ahost | clean } ! MESSAGE ! MESSAGE If a other than ALL or clean is given, becomes mandatory. ! MESSAGE @@ -145,7 +147,6 @@ VALID_CFGSET = TRUE # -------------------------------------------------------- CARES_DIR = $(BASE_DIR)\cares -PROG1_DIR = $(BASE_DIR)\acountry PROG2_DIR = $(BASE_DIR)\adig PROG3_DIR = $(BASE_DIR)\ahost @@ -156,20 +157,16 @@ PROG3_DIR = $(BASE_DIR)\ahost !IF "$(VALID_CFGSET)" == "TRUE" CARES_OUTDIR = $(CARES_DIR)\$(CFG) -PROG1_OUTDIR = $(PROG1_DIR)\$(CFG) PROG2_OUTDIR = $(PROG2_DIR)\$(CFG) PROG3_OUTDIR = $(PROG3_DIR)\$(CFG) CARES_OBJDIR = $(CARES_OUTDIR)\obj -PROG1_OBJDIR = $(PROG1_OUTDIR)\obj PROG2_OBJDIR = $(PROG2_OUTDIR)\obj PROG3_OBJDIR = $(PROG3_OUTDIR)\obj !ELSE !UNDEF CARES_OUTDIR -!UNDEF PROG1_OUTDIR !UNDEF PROG2_OUTDIR !UNDEF PROG3_OUTDIR !UNDEF CARES_OBJDIR -!UNDEF PROG1_OBJDIR !UNDEF PROG2_OBJDIR !UNDEF PROG3_OBJDIR !ENDIF @@ -301,17 +298,6 @@ CARES_OBJS = $(CARES_OBJS:.c=.obj) CARES_OBJS = $(CARES_OBJS) $(CARES_OBJDIR)\cares.res !ENDIF -!IF [ECHO PROG1_OBJS=^$(PROG1_OBJDIR)\$(SAMPLESOURCES: = $(PROG1_OBJDIR^)\) > .\prog1_objs.inc] == 0 -!INCLUDE .\prog1_objs.inc -!IF [DEL .\prog1_objs.inc] -!ENDIF -!ELSE -!ERROR Problem generating PROG1_OBJS list. -!ENDIF -PROG1_OBJS = $(PROG1_OBJS:.c=.obj) -PROG1_OBJS = $(PROG1_OBJS:/=\) -PROG1_OBJS = $(PROG1_OBJS) $(PROG1_OBJDIR)\acountry.obj - !IF [ECHO PROG2_OBJS=^$(PROG2_OBJDIR)\$(SAMPLESOURCES: = $(PROG2_OBJDIR^)\) > .\prog2_objs.inc] == 0 !INCLUDE .\prog2_objs.inc !IF [DEL .\prog2_objs.inc] @@ -350,9 +336,6 @@ PROG3_OBJS = $(PROG3_OBJS) $(PROG3_OBJDIR)\ahost.obj {$(SRCDIR)\src\lib}.c{$(CARES_OBJDIR)}.obj: $(CC_CMD) $(CC_CFLAGS) $(CARES_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< -{$(SRCDIR)\src\tools}.c{$(PROG1_OBJDIR)}.obj: - $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< - {$(SRCDIR)\src\tools}.c{$(PROG2_OBJDIR)}.obj: $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< @@ -362,9 +345,6 @@ PROG3_OBJS = $(PROG3_OBJS) $(PROG3_OBJDIR)\ahost.obj # Hack Alert! we reference ../lib/ files in the Makefile.inc for tools as they # share some files with the library itself. We need to hack around that here. -{$(SRCDIR)\src\lib}.c{$(PROG1_OBJDIR)\..\lib}.obj: - $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG1_OBJDIR)\$(@F) /Fd$(PROG1_OBJDIR)\ /c $< - {$(SRCDIR)\src\lib}.c{$(PROG2_OBJDIR)\..\lib}.obj: $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG2_OBJDIR)\$(@F) /Fd$(PROG2_OBJDIR)\ /c $< @@ -403,7 +383,7 @@ install: !IF "$(VALID_CFGSET)" == "TRUE" -ALL: c-ares acountry adig ahost +ALL: c-ares adig ahost @ # $(HHEADERS) $(CSOURCES) @@ -413,11 +393,6 @@ c-ares: $(CARES_OBJDIR) $(CARES_OBJS) $(CARES_OUTDIR) @if exist $(CARES_OUTDIR)\$(CARES_TARGET).manifest mt -nologo -manifest $(CARES_OUTDIR)\$(CARES_TARGET).manifest -outputresource:$(CARES_OUTDIR)\$(CARES_TARGET);2 ! ENDIF -# acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) -acountry: c-ares $(PROG1_OBJDIR) $(PROG1_OBJS) $(PROG1_OUTDIR) - $(SPROG_LINK) $(SPROG_LFLAGS) /out:$(PROG1_OUTDIR)\acountry.exe $(PROG1_OBJS:..\lib=) - @if exist $(PROG1_OUTDIR)\acountry.exe.manifest mt -nologo -manifest $(PROG1_OUTDIR)\acountry.exe.manifest -outputresource:$(PROG1_OUTDIR)\acountry.exe;1 - # adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) adig: c-ares $(PROG2_OBJDIR) $(PROG2_OBJS) $(PROG2_OUTDIR) $(SPROG_LINK) $(SPROG_LFLAGS) /out:$(PROG2_OUTDIR)\adig.exe $(PROG2_OBJS:..\lib=) @@ -431,9 +406,6 @@ ahost: c-ares $(PROG3_OBJDIR) $(PROG3_OBJS) $(PROG3_OUTDIR) $(CARES_OUTDIR): $(CARES_DIR) @if not exist $(CARES_OUTDIR) mkdir $(CARES_OUTDIR) -$(PROG1_OUTDIR): $(PROG1_DIR) - @if not exist $(PROG1_OUTDIR) mkdir $(PROG1_OUTDIR) - $(PROG2_OUTDIR): $(PROG2_DIR) @if not exist $(PROG2_OUTDIR) mkdir $(PROG2_OUTDIR) @@ -443,9 +415,6 @@ $(PROG3_OUTDIR): $(PROG3_DIR) $(CARES_OBJDIR): $(CARES_OUTDIR) @if not exist $(CARES_OBJDIR) mkdir $(CARES_OBJDIR) -$(PROG1_OBJDIR): $(PROG1_OUTDIR) - @if not exist $(PROG1_OBJDIR) mkdir $(PROG1_OBJDIR) - $(PROG2_OBJDIR): $(PROG2_OUTDIR) @if not exist $(PROG2_OBJDIR) mkdir $(PROG2_OBJDIR) @@ -454,7 +423,6 @@ $(PROG3_OBJDIR): $(PROG3_OUTDIR) clean: @-RMDIR /S /Q $(CARES_OUTDIR) >NUL 2>&1 - @-RMDIR /S /Q $(PROG1_OUTDIR) >NUL 2>&1 @-RMDIR /S /Q $(PROG2_OUTDIR) >NUL 2>&1 @-RMDIR /S /Q $(PROG3_OUTDIR) >NUL 2>&1 @@ -479,9 +447,6 @@ $(BASE_DIR): $(CARES_DIR): $(BASE_DIR) @if not exist $(CARES_DIR) mkdir $(CARES_DIR) -$(PROG1_DIR): $(BASE_DIR) - @if not exist $(PROG1_DIR) mkdir $(PROG1_DIR) - $(PROG2_DIR): $(BASE_DIR) @if not exist $(PROG2_DIR) mkdir $(PROG2_DIR) diff --git a/deps/cares/Makefile.netware b/deps/cares/Makefile.netware index e1a8a5523ca07b..790b17a8e0196a 100644 --- a/deps/cares/Makefile.netware +++ b/deps/cares/Makefile.netware @@ -1,9 +1,10 @@ ################################################################# # -## Makefile for building libcares (NetWare version - gnu make) -## Use: make -f Makefile.netware -## -## Comments to: Guenter Knauf http://www.gknw.de/phpbb +# Makefile for building libcares (NetWare version - gnu make) +# Use: make -f Makefile.netware +# +# Copyright (C) Guenter Knauf +# SPDX-License-Identifier: MIT # ################################################################# @@ -17,7 +18,7 @@ INSTDIR = ../ares-$(LIBCARES_VERSION_STR)-bin-nw endif # Edit the vars below to change NLM target settings. -TARGETS = adig.nlm ahost.nlm acountry.nlm +TARGETS = adig.nlm ahost.nlm LTARGET = libcares.$(LIBEXT) VERSION = $(LIBCARES_VERSION) COPYR = $(LIBCARES_COPYRIGHT_STR) diff --git a/deps/cares/README.msvc b/deps/cares/README.msvc index 396f497db40873..97d4f0cf583b8a 100644 --- a/deps/cares/README.msvc +++ b/deps/cares/README.msvc @@ -28,7 +28,7 @@ depends on the MSVC compiler version being used to build c-ares. Below the MSVCXX folder there will exist four folders named 'cares', - 'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that + 'ahost', and 'adig'. The 'cares' folder is the one that holds the c-ares libraries you have just generated, the other three hold sample programs that use the libraries. diff --git a/deps/cares/RELEASE-NOTES b/deps/cares/RELEASE-NOTES index 2524f3ccf413e8..062f7a73e22c7e 100644 --- a/deps/cares/RELEASE-NOTES +++ b/deps/cares/RELEASE-NOTES @@ -1,57 +1,60 @@ -c-ares version 1.19.1 +c-ares version 1.20.0 -This is a security and bugfix release. +This is a feature and bugfix release with some significant internal changes. -A special thanks goes out to the Open Source Technology Improvement Fund -(https://ostif.org) for sponsoring a security audit of c-ares performed by X41 -(https://x41-dsec.de). - -Security: - o CVE-2023-32067. High. 0-byte UDP payload causes Denial of Service [12] - o CVE-2023-31147. Moderate. Insufficient randomness in generation of DNS - query IDs [13] - o CVE-2023-31130. Moderate. Buffer Underwrite in ares_inet_net_pton() [14] - o CVE-2023-31124. Low. AutoTools does not set CARES_RANDOM_FILE during cross - compilation [15] +Changes: + o Update from 1989 MIT license text to modern MIT license text [1] + o Remove acountry from built tools as nerd.dk is gone [3] + o Add new ARES_OPT_UDP_MAX_QUERIES configuration option to limit the number of + queries that can be made from a single ephemeral port [7] + o Default per-query timeout has been reduced to 2s with a 3x retry count [8] + o Modernization: start implementing some common data structures that are easy + to use and hard to misuse. This will make code refactoring easier and remove + some varied implementations in use. This change also makes ares_timeout() + more efficient [9] + o Use SPDX identifiers and a REUSE CI job to verify [12] + o rand: add support for getrandom() [14] Bug fixes: - o Fix uninitialized memory warning in test [1] - o Turn off IPV6_V6ONLY on Windows to allow IPv4-mapped IPv6 addresses [2] - o ares_getaddrinfo() should allow a port of 0 [3] - o Fix memory leak in ares_send() on error [4] - o Fix comment style in ares_data.h [5] - o Remove unneeded ifdef for Windows [6] - o Fix typo in ares_init_options.3 [7] - o Re-add support for Watcom compiler [8] - o Sync ax_pthread.m4 with upstream [9] - o Windows: Invalid stack variable used out of scope for HOSTS path [10] - o Sync ax_cxx_compile_stdcxx_11.m4 with upstream to fix uclibc support [11] + o TCP back to back queries were broken [2] + o Ensure queries for ares_getaddrinfo() are not requeued during destruction [4] + o ares_getaddrinfo() should not retry other address classes if one address + class has already been returned [5] + o Avoid production ill-formed result when qualifying a name with the root + domain [6] + o Fix missing prefix for CMake generated libcares.pc [10] + o DNS server ports will now be read from system configuration instead of + defaulting to port 53 [11] + o Remove some unreachable code [13] + o Replace usages of sprintf with snprintf [15] + o Fix Watcom instructions and update Windows URLs [16] Thanks go to these friendly people for their efforts and contributions: + Alexey A Tikhonov (@alexey-tikhonov) + Ben Noordhuis (@bnoordhuis) Brad House (@bradh352) @Chilledheart Daniel Stenberg (@bagder) Douglas R. Reno (@renodr) - Gregor Jasny (@gjasny) - Jay Freeman (@saurik) - @lifenjoiner - Nikolaos Chatzikonstantinou (@createyourpersonalaccount) - Yijie Ma (@yijiem) + Jérôme Duval (@korli) + Sam Morris (@yrro) + Tim Wojtulewicz (@timwoj) (9 contributors) References to bug reports and discussions on issues: - [1] = https://github.com/c-ares/c-ares/pull/515 - [2] = https://github.com/c-ares/c-ares/pull/520 - [3] = https://github.com/c-ares/c-ares/issues/517 - [4] = https://github.com/c-ares/c-ares/pull/511 - [5] = https://github.com/c-ares/c-ares/pull/513 - [6] = https://github.com/c-ares/c-ares/pull/512 - [7] = https://github.com/c-ares/c-ares/pull/510 - [8] = https://github.com/c-ares/c-ares/pull/509 - [9] = https://github.com/c-ares/c-ares/pull/507 - [10] = https://github.com/c-ares/c-ares/pull/502 - [11] = https://github.com/c-ares/c-ares/pull/505 - [12] = https://github.com/c-ares/c-ares/security/advisories/GHSA-9g78-jv2r-p7vc - [13] = https://github.com/c-ares/c-ares/security/advisories/GHSA-8r8p-23f3-64c2 - [14] = https://github.com/c-ares/c-ares/security/advisories/GHSA-x6mf-cxr9-8q6v - [15] = https://github.com/c-ares/c-ares/security/advisories/GHSA-54xr-f67r-4pc4 + [1] = https://github.com/c-ares/c-ares/pull/556 + [2] = https://github.com/c-ares/c-ares/pull/552 + [3] = https://github.com/c-ares/c-ares/pull/554 + [4] = https://github.com/c-ares/c-ares/pull/553 + [5] = https://github.com/c-ares/c-ares/pull/551 + [6] = https://github.com/c-ares/c-ares/pull/546 + [7] = https://github.com/c-ares/c-ares/pull/549 + [8] = https://github.com/c-ares/c-ares/pull/542 + [9] = https://github.com/c-ares/c-ares/pull/540 + [10] = https://github.com/c-ares/c-ares/pull/530 + [11] = https://github.com/c-ares/c-ares/pull/534 + [12] = https://github.com/c-ares/c-ares/commit/c1b00c41 + [13] = https://github.com/c-ares/c-ares/pull/527 + [14] = https://github.com/c-ares/c-ares/pull/526 + [15] = https://github.com/c-ares/c-ares/pull/525 + [16] = https://github.com/c-ares/c-ares/pull/524 diff --git a/deps/cares/acinclude.m4 b/deps/cares/acinclude.m4 index c255198e5f452c..2644cdfa34b41e 100644 --- a/deps/cares/acinclude.m4 +++ b/deps/cares/acinclude.m4 @@ -1,4 +1,5 @@ - +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT dnl CURL_CHECK_DEF (SYMBOL, [INCLUDES], [SILENT]) dnl ------------------------------------------------- diff --git a/deps/cares/aminclude_static.am b/deps/cares/aminclude_static.am index 94db7e3a8c6d7c..01a565d77106c1 100644 --- a/deps/cares/aminclude_static.am +++ b/deps/cares/aminclude_static.am @@ -1,6 +1,6 @@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Mon May 22 14:23:05 CEST 2023 +# from AX_AM_MACROS_STATIC on Sat Oct 7 13:50:28 CEST 2023 # Code coverage diff --git a/deps/cares/buildconf b/deps/cares/buildconf index 4e4c17e9991980..94c6abc7c225ef 100755 --- a/deps/cares/buildconf +++ b/deps/cares/buildconf @@ -1,4 +1,6 @@ #!/bin/sh +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT echo "*** Do not use buildconf. Instead, just use: autoreconf -fi" >&2 exec ${AUTORECONF:-autoreconf} -fi "${@}" diff --git a/deps/cares/buildconf.bat b/deps/cares/buildconf.bat index dcee45239b8b58..0227c885214a66 100644 --- a/deps/cares/buildconf.bat +++ b/deps/cares/buildconf.bat @@ -6,6 +6,9 @@ REM systems where there is no autotools support (i.e. Microsoft). REM REM This file is not included nor needed for c-ares' release REM archives, neither for c-ares' daily snapshot archives. +REM +REM Copyright (C) The c-ares project and its contributors +REM SPDX-License-Identifier: MIT if exist GIT-INFO goto start_doing ECHO ERROR: This file shall only be used with a c-ares git checkout. diff --git a/deps/cares/c-ares-config.cmake.in b/deps/cares/c-ares-config.cmake.in index 1d05b24e54737e..f68ed832b98e35 100644 --- a/deps/cares/c-ares-config.cmake.in +++ b/deps/cares/c-ares-config.cmake.in @@ -1,3 +1,6 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT + @PACKAGE_INIT@ set_and_check(c-ares_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") diff --git a/deps/cares/cares.gyp b/deps/cares/cares.gyp index 110024a331671b..9797a3216ae882 100644 --- a/deps/cares/cares.gyp +++ b/deps/cares/cares.gyp @@ -8,9 +8,27 @@ 'include/ares_version.h', 'src/lib/ares__addrinfo2hostent.c', 'src/lib/ares__addrinfo_localhost.c', + 'src/lib/ares__buf.c', + 'src/lib/ares__buf.h', + 'src/lib/ares__close_sockets.c', + 'src/lib/ares__htable.c', + 'src/lib/ares__htable.h', + 'src/lib/ares__htable_asvp.c', + 'src/lib/ares__htable_asvp.h', + 'src/lib/ares__htable_stvp.c', + 'src/lib/ares__htable_stvp.h', + 'src/lib/ares__llist.c', + 'src/lib/ares__llist.h', + 'src/lib/ares__get_hostent.c', + 'src/lib/ares__parse_into_addrinfo.c', + 'src/lib/ares__read_line.c', + 'src/lib/ares__readaddrinfo.c', + 'src/lib/ares__slist.c', + 'src/lib/ares__slist.h', + 'src/lib/ares__sortaddrinfo.c', + 'src/lib/ares__timeval.c', 'src/lib/ares_android.c', 'src/lib/ares_cancel.c', - 'src/lib/ares__close_sockets.c', 'src/lib/ares_create_query.c', 'src/lib/ares_data.c', 'src/lib/ares_data.h', @@ -21,25 +39,22 @@ 'src/lib/ares_free_hostent.c', 'src/lib/ares_free_string.c', 'src/lib/ares_freeaddrinfo.c', - 'src/lib/ares_getenv.h', 'src/lib/ares_getaddrinfo.c', + 'src/lib/ares_getenv.h', 'src/lib/ares_gethostbyaddr.c', 'src/lib/ares_gethostbyname.c', - 'src/lib/ares__get_hostent.c', 'src/lib/ares_getnameinfo.c', 'src/lib/ares_getsock.c', + 'src/lib/ares_inet_net_pton.h', 'src/lib/ares_init.c', 'src/lib/ares_ipv6.h', 'src/lib/ares_library_init.c', - 'src/lib/ares_llist.c', - 'src/lib/ares_llist.h', 'src/lib/ares_mkquery.c', 'src/lib/ares_nowarn.c', 'src/lib/ares_nowarn.h', 'src/lib/ares_options.c', - 'src/lib/ares__parse_into_addrinfo.c', - 'src/lib/ares_parse_aaaa_reply.c', 'src/lib/ares_parse_a_reply.c', + 'src/lib/ares_parse_aaaa_reply.c', 'src/lib/ares_parse_caa_reply.c', 'src/lib/ares_parse_mx_reply.c', 'src/lib/ares_parse_naptr_reply.c', @@ -54,12 +69,9 @@ 'src/lib/ares_process.c', 'src/lib/ares_query.c', 'src/lib/ares_rand.c', - 'src/lib/ares__read_line.c', - 'src/lib/ares__readaddrinfo.c', 'src/lib/ares_search.c', 'src/lib/ares_send.c', 'src/lib/ares_setup.h', - 'src/lib/ares__sortaddrinfo.c', 'src/lib/ares_strcasecmp.c', 'src/lib/ares_strcasecmp.h', 'src/lib/ares_strdup.c', @@ -67,15 +79,11 @@ 'src/lib/ares_strerror.c', 'src/lib/ares_strsplit.c', 'src/lib/ares_timeout.c', - 'src/lib/ares__timeval.c', 'src/lib/ares_version.c', - 'src/lib/ares_writev.c', - 'src/lib/ares_writev.h', 'src/lib/bitncmp.c', 'src/lib/bitncmp.h', 'src/lib/inet_net_pton.c', 'src/lib/inet_ntop.c', - 'src/lib/ares_inet_net_pton.h', 'src/lib/setup_once.h', 'src/tools/ares_getopt.c', 'src/tools/ares_getopt.h', diff --git a/deps/cares/configure b/deps/cares/configure index 2f182e0ce3177d..63c917a937e60c 100755 --- a/deps/cares/configure +++ b/deps/cares/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for c-ares 1.19.1. +# Generated by GNU Autoconf 2.71 for c-ares 1.20.0. # # Report bugs to . # @@ -855,8 +855,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='c-ares' PACKAGE_TARNAME='c-ares' -PACKAGE_VERSION='1.19.1' -PACKAGE_STRING='c-ares 1.19.1' +PACKAGE_VERSION='1.20.0' +PACKAGE_STRING='c-ares 1.20.0' PACKAGE_BUGREPORT='c-ares mailing list: http://lists.haxx.se/listinfo/c-ares' PACKAGE_URL='' @@ -1650,7 +1650,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures c-ares 1.19.1 to adapt to many kinds of systems. +\`configure' configures c-ares 1.20.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1721,7 +1721,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of c-ares 1.19.1:";; + short | recursive ) echo "Configuration of c-ares 1.20.0:";; esac cat <<\_ACEOF @@ -1861,7 +1861,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -c-ares configure 1.19.1 +c-ares configure 1.20.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2453,7 +2453,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by c-ares $as_me 1.19.1, which was +It was created by c-ares $as_me 1.20.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3426,7 +3426,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -CARES_VERSION_INFO="8:1:6" +CARES_VERSION_INFO="9:0:7" @@ -7060,7 +7060,7 @@ fi # Define the identity of the package. PACKAGE='c-ares' - VERSION='1.19.1' + VERSION='1.20.0' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -29558,6 +29558,182 @@ printf "%s\n" "no" >&6; } fi +cares_includes_sys_random="\ +/* includes start */ +#ifdef HAVE_SYS_RANDOM_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/random.h" "ac_cv_header_sys_random_h" "$cares_includes_sys_random +" +if test "x$ac_cv_header_sys_random_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_RANDOM_H 1" >>confdefs.h + +fi + + + + # + tst_links_getrandom="unknown" + tst_proto_getrandom="unknown" + tst_compi_getrandom="unknown" + tst_allow_getrandom="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getrandom can be linked" >&5 +printf %s "checking if getrandom can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getrandom to an innocuous variant, in case declares getrandom. + For example, HP-UX 11i declares gettimeofday. */ +#define getrandom innocuous_getrandom + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getrandom (); below. */ + +#include +#undef getrandom + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getrandom (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getrandom || defined __stub___getrandom +choke me +#endif + +int +main (void) +{ +return getrandom (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_getrandom="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_getrandom="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_getrandom" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getrandom is prototyped" >&5 +printf %s "checking if getrandom is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_sys_random + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getrandom" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_getrandom="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_getrandom="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_getrandom" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getrandom is compilable" >&5 +printf %s "checking if getrandom is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_random + +int +main (void) +{ + + if(0 != getrandom(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getrandom="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getrandom="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_getrandom" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getrandom usage allowed" >&5 +printf %s "checking if getrandom usage allowed... " >&6; } + if test "x$cares_disallow_getrandom" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_getrandom="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_getrandom="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getrandom might be used" >&5 +printf %s "checking if getrandom might be used... " >&6; } + if test "$tst_links_getrandom" = "yes" && + test "$tst_proto_getrandom" = "yes" && + test "$tst_compi_getrandom" = "yes" && + test "$tst_allow_getrandom" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h + + ac_cv_func_getrandom="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_getrandom="no" + fi + + # tst_links_getservbyport_r="unknown" tst_proto_getservbyport_r="unknown" @@ -35178,7 +35354,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by c-ares $as_me 1.19.1, which was +This file was extended by c-ares $as_me 1.20.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -35246,7 +35422,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -c-ares config.status 1.19.1 +c-ares config.status 1.20.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/deps/cares/configure.ac b/deps/cares/configure.ac index 54e79d6e2a9680..9f0b5a87097391 100644 --- a/deps/cares/configure.ac +++ b/deps/cares/configure.ac @@ -1,9 +1,29 @@ +############################################################# +# +# Copyright (C) the Massachusetts Institute of Technology. +# Copyright (C) Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this +# software and its documentation for any purpose and without +# fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright +# notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in +# advertising or publicity pertaining to distribution of the +# software without specific, written prior permission. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# SPDX-License-Identifier: MIT +# +############################################################# AC_PREREQ([2.60]) -AC_INIT([c-ares], [1.19.1], +AC_INIT([c-ares], [1.20.0], [c-ares mailing list: http://lists.haxx.se/listinfo/c-ares]) -CARES_VERSION_INFO="8:1:6" +CARES_VERSION_INFO="9:0:7" dnl This flag accepts an argument of the form current[:revision[:age]]. So, dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to dnl 1. @@ -666,6 +686,7 @@ CARES_CHECK_FUNC_GETENV CARES_CHECK_FUNC_GETHOSTBYADDR CARES_CHECK_FUNC_GETHOSTBYNAME CARES_CHECK_FUNC_GETHOSTNAME +CARES_CHECK_FUNC_GETRANDOM CARES_CHECK_FUNC_GETSERVBYPORT_R CARES_CHECK_FUNC_INET_NET_PTON CARES_CHECK_FUNC_INET_NTOP diff --git a/deps/cares/docs/CMakeLists.txt b/deps/cares/docs/CMakeLists.txt index 5b91d313e2fd0f..3fcf39e8af6b40 100644 --- a/deps/cares/docs/CMakeLists.txt +++ b/deps/cares/docs/CMakeLists.txt @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT # Headers and Man Pages installation target IF (CARES_INSTALL) # ManPages diff --git a/deps/cares/docs/Makefile.am b/deps/cares/docs/Makefile.am index 289445ce49b497..1aff3818850d8c 100644 --- a/deps/cares/docs/Makefile.am +++ b/deps/cares/docs/Makefile.am @@ -1,6 +1,5 @@ -#*************************************************************************** - -########################################################################### +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign subdir-objects no-dependencies @@ -8,4 +7,4 @@ include Makefile.inc man_MANS = $(MANPAGES) -EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 acountry.1 Makefile.inc CMakeLists.txt +EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 Makefile.inc CMakeLists.txt diff --git a/deps/cares/docs/Makefile.in b/deps/cares/docs/Makefile.in index b169b2a01d1066..710fa60584139f 100644 --- a/deps/cares/docs/Makefile.in +++ b/deps/cares/docs/Makefile.in @@ -14,9 +14,8 @@ @SET_MAKE@ -#*************************************************************************** - -########################################################################### +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -327,6 +326,9 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign subdir-objects no-dependencies + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT MANPAGES = ares_cancel.3 \ ares_create_query.3 \ ares_destroy.3 \ @@ -388,7 +390,7 @@ MANPAGES = ares_cancel.3 \ ares_version.3 man_MANS = $(MANPAGES) -EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 acountry.1 Makefile.inc CMakeLists.txt +EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 Makefile.inc CMakeLists.txt all: all-am .SUFFIXES: diff --git a/deps/cares/docs/Makefile.inc b/deps/cares/docs/Makefile.inc index 3aa62aa43b3d58..f042c06688ab38 100644 --- a/deps/cares/docs/Makefile.inc +++ b/deps/cares/docs/Makefile.inc @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT MANPAGES = ares_cancel.3 \ ares_create_query.3 \ ares_destroy.3 \ diff --git a/deps/cares/docs/acountry.1 b/deps/cares/docs/acountry.1 deleted file mode 100644 index ab5ab3d022325a..00000000000000 --- a/deps/cares/docs/acountry.1 +++ /dev/null @@ -1,54 +0,0 @@ -.TH ACOUNTRY "1" "April 2011" "c-ares utilities" -.SH NAME -acountry \- print the country where an IPv4 address or host is located -.SH SYNOPSIS -.B acountry -[\fIOPTION\fR]... \fIHOST\fR... -.SH DESCRIPTION -.PP -.\" Add any additional description here -.PP -Print the country where HOST (an IPv4 address or hostname) is located, -using the countries.nerd.dk DNS domain to identify the country. -.PP -This utility comes with the \fBc\-ares\fR asynchronous resolver library. -.SH OPTIONS -.TP -\fB\-d\fR -Print some extra debugging output. -.TP -\fB\-h\fR, \fB\-?\fR -Display this help and exit. -.TP -\fB\-v\fR -Be more verbose. Print extra information. -.SH "REPORTING BUGS" -Report bugs to the c-ares mailing list: -.br -\fBhttps://lists.haxx.se/listinfo/c-ares\fR -.SH "SEE ALSO" -.PP -adig(1), ahost(1). -.PP -The DNSBL countries.nerd.dk -.br -\fBhttp://countries.nerd.dk/\fR -.SH COPYRIGHT -This utility is based on code/ideas contained in sofware written by Greg Hudson (ares) -carrying the following notice: -.br -Copyright 1998 by the Massachusetts Institute of Technology. -.br -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of M.I.T. not be used in -advertising or publicity pertaining to distribution of the software -without specific, written prior permission. M.I.T. makes no -representations about the suitability of this software for any -purpose. It is provided "as is" without express or implied warranty. -.br -No further copyright claims are being made by the author(s) of this utility. -.SH AUTHOR -Gisle Vanem diff --git a/deps/cares/docs/adig.1 b/deps/cares/docs/adig.1 index 52ff49b7395e25..6760bbef7db91e 100644 --- a/deps/cares/docs/adig.1 +++ b/deps/cares/docs/adig.1 @@ -1,3 +1,21 @@ +.\" +.\" Copyright (C) the Massachusetts Institute of Technology. +.\" Copyright (C) Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.\" SPDX-License-Identifier: MIT +.\" .TH ADIG "1" "April 2011" "c-ares utilities" .SH NAME adig \- print information collected from Domain Name System (DNS) servers diff --git a/deps/cares/docs/ahost.1 b/deps/cares/docs/ahost.1 index 07d9d1d18a1403..30b968deeb528c 100644 --- a/deps/cares/docs/ahost.1 +++ b/deps/cares/docs/ahost.1 @@ -1,3 +1,21 @@ +.\" +.\" Copyright (C) the Massachusetts Institute of Technology. +.\" Copyright (C) Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.\" SPDX-License-Identifier: MIT +.\" .TH AHOST "1" "April 2011" "c-ares utilities" .SH NAME ahost \- print the A or AAAA record associated with a hostname or IP address diff --git a/deps/cares/docs/ares_cancel.3 b/deps/cares/docs/ares_cancel.3 index 1a2d3f5846ea5f..49f025d74cc954 100644 --- a/deps/cares/docs/ares_cancel.3 +++ b/deps/cares/docs/ares_cancel.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_CANCEL 3 "31 March 2004" .SH NAME ares_cancel \- Cancel a resolve diff --git a/deps/cares/docs/ares_create_query.3 b/deps/cares/docs/ares_create_query.3 index 1ab0624e4134d0..28d12603a1f732 100644 --- a/deps/cares/docs/ares_create_query.3 +++ b/deps/cares/docs/ares_create_query.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_CREATE_QUERY 3 "17 Aug 2012" .SH NAME ares_create_query \- Compose a single-question DNS query buffer diff --git a/deps/cares/docs/ares_destroy.3 b/deps/cares/docs/ares_destroy.3 index 9cdee30aac6eec..a65a522c276972 100644 --- a/deps/cares/docs/ares_destroy.3 +++ b/deps/cares/docs/ares_destroy.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_DESTROY 3 "7 December 2004" .SH NAME ares_destroy \- Destroy a resolver channel diff --git a/deps/cares/docs/ares_destroy_options.3 b/deps/cares/docs/ares_destroy_options.3 index d3779b60cf4905..96520d3de3741b 100644 --- a/deps/cares/docs/ares_destroy_options.3 +++ b/deps/cares/docs/ares_destroy_options.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_DESTROY_OPTIONS 3 "1 June 2007" .SH NAME ares_destroy_options \- Destroy options initialized with ares_save_options diff --git a/deps/cares/docs/ares_dup.3 b/deps/cares/docs/ares_dup.3 index 925c0cdd5f7928..879be0e1661ebe 100644 --- a/deps/cares/docs/ares_dup.3 +++ b/deps/cares/docs/ares_dup.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_DUP 3 "26 May 2009" .SH NAME ares_dup \- Duplicate a resolver channel diff --git a/deps/cares/docs/ares_expand_name.3 b/deps/cares/docs/ares_expand_name.3 index e750ab89162961..a4f340e4fca1fb 100644 --- a/deps/cares/docs/ares_expand_name.3 +++ b/deps/cares/docs/ares_expand_name.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_EXPAND_NAME 3 "20 Nov 2009" .SH NAME ares_expand_name \- Expand a DNS-encoded domain name diff --git a/deps/cares/docs/ares_expand_string.3 b/deps/cares/docs/ares_expand_string.3 index 89037424f1fab8..572881853d736b 100644 --- a/deps/cares/docs/ares_expand_string.3 +++ b/deps/cares/docs/ares_expand_string.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_EXPAND_NAME 3 "20 Nov 2009" .SH NAME ares_expand_string \- Expand a length encoded string diff --git a/deps/cares/docs/ares_fds.3 b/deps/cares/docs/ares_fds.3 index 07063fb008ff23..08731eae0439d8 100644 --- a/deps/cares/docs/ares_fds.3 +++ b/deps/cares/docs/ares_fds.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_FDS 3 "23 July 1998" .SH NAME ares_fds \- return file descriptors to select on diff --git a/deps/cares/docs/ares_free_data.3 b/deps/cares/docs/ares_free_data.3 index a6f3938be5c4e3..f4159729f3b5a4 100644 --- a/deps/cares/docs/ares_free_data.3 +++ b/deps/cares/docs/ares_free_data.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_FREE_DATA 3 "5 March 2010" .SH NAME ares_free_data \- Free data allocated by several c-ares functions diff --git a/deps/cares/docs/ares_free_hostent.3 b/deps/cares/docs/ares_free_hostent.3 index 7c92724e70c052..ef7840800bf1ca 100644 --- a/deps/cares/docs/ares_free_hostent.3 +++ b/deps/cares/docs/ares_free_hostent.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_FREE_HOSTENT 3 "23 July 1998" .SH NAME ares_free_hostent \- Free host structure allocated by ares functions diff --git a/deps/cares/docs/ares_free_string.3 b/deps/cares/docs/ares_free_string.3 index d8a8e4689b5239..7a4063f8f7c91a 100644 --- a/deps/cares/docs/ares_free_string.3 +++ b/deps/cares/docs/ares_free_string.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_FREE_STRING 3 "4 February 2004" .SH NAME ares_free_string \- Free strings allocated by ares functions diff --git a/deps/cares/docs/ares_freeaddrinfo.3 b/deps/cares/docs/ares_freeaddrinfo.3 index 8a8ad591872824..8a3bb12a48ad4b 100644 --- a/deps/cares/docs/ares_freeaddrinfo.3 +++ b/deps/cares/docs/ares_freeaddrinfo.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_FREEADDRINFO 3 "31 October 2018" .SH NAME ares_freeaddrinfo \- Free addrinfo structure allocated by ares functions diff --git a/deps/cares/docs/ares_get_servers.3 b/deps/cares/docs/ares_get_servers.3 index eb5861b6015701..fbd911ea256ae8 100644 --- a/deps/cares/docs/ares_get_servers.3 +++ b/deps/cares/docs/ares_get_servers.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GET_SERVERS 3 "5 March 2010" .SH NAME ares_get_servers, ares_get_servers_ports \- Retrieve name servers from an initialized ares_channel diff --git a/deps/cares/docs/ares_get_servers_ports.3 b/deps/cares/docs/ares_get_servers_ports.3 index 1f5d1f708b75f1..2fb648531bbe2e 100644 --- a/deps/cares/docs/ares_get_servers_ports.3 +++ b/deps/cares/docs/ares_get_servers_ports.3 @@ -1 +1,4 @@ +.\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT .so man3/ares_get_servers.3 diff --git a/deps/cares/docs/ares_getaddrinfo.3 b/deps/cares/docs/ares_getaddrinfo.3 index eb085e5d26e4bf..ea90f9c7f86d77 100644 --- a/deps/cares/docs/ares_getaddrinfo.3 +++ b/deps/cares/docs/ares_getaddrinfo.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETADDRINFO 3 "4 November 2018" .SH NAME ares_getaddrinfo \- Initiate a host query by name and service diff --git a/deps/cares/docs/ares_gethostbyaddr.3 b/deps/cares/docs/ares_gethostbyaddr.3 index c58ca5061509e6..eaeb58d5db9ed5 100644 --- a/deps/cares/docs/ares_gethostbyaddr.3 +++ b/deps/cares/docs/ares_gethostbyaddr.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETHOSTBYADDR 3 "24 July 1998" .SH NAME ares_gethostbyaddr \- Initiate a host query by address diff --git a/deps/cares/docs/ares_gethostbyname.3 b/deps/cares/docs/ares_gethostbyname.3 index 5b4d9702b3f7af..b3614eb43c9a23 100644 --- a/deps/cares/docs/ares_gethostbyname.3 +++ b/deps/cares/docs/ares_gethostbyname.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETHOSTBYNAME 3 "25 July 1998" .SH NAME ares_gethostbyname \- Initiate a host query by name diff --git a/deps/cares/docs/ares_gethostbyname_file.3 b/deps/cares/docs/ares_gethostbyname_file.3 index ab127fce77a678..5bbb28a8fedfc3 100644 --- a/deps/cares/docs/ares_gethostbyname_file.3 +++ b/deps/cares/docs/ares_gethostbyname_file.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETHOSTBYNAME 3 "25 July 1998" .SH NAME ares_gethostbyname_file \- Lookup a name in the system's hosts file diff --git a/deps/cares/docs/ares_getnameinfo.3 b/deps/cares/docs/ares_getnameinfo.3 index d10d8410157b83..bde3e800e46738 100644 --- a/deps/cares/docs/ares_getnameinfo.3 +++ b/deps/cares/docs/ares_getnameinfo.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETNAMEINFO 3 "1 May 2009" .SH NAME ares_getnameinfo \- Address-to-nodename translation in protocol-independent manner diff --git a/deps/cares/docs/ares_getsock.3 b/deps/cares/docs/ares_getsock.3 index 7908daebc195f2..c502e483500500 100644 --- a/deps/cares/docs/ares_getsock.3 +++ b/deps/cares/docs/ares_getsock.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_GETSOCK 3 "11 March 2010" .SH NAME ares_getsock \- get socket descriptors to wait on diff --git a/deps/cares/docs/ares_inet_ntop.3 b/deps/cares/docs/ares_inet_ntop.3 index d0d0b5915ab2d5..68d1db9b95cd39 100644 --- a/deps/cares/docs/ares_inet_ntop.3 +++ b/deps/cares/docs/ares_inet_ntop.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_INET_NTOP 3 "17 Feb 2013" .SH NAME ares_inet_ntop \- convert a network format address to presentation format diff --git a/deps/cares/docs/ares_inet_pton.3 b/deps/cares/docs/ares_inet_pton.3 index bf7140d3b54545..21c4eacdab6414 100644 --- a/deps/cares/docs/ares_inet_pton.3 +++ b/deps/cares/docs/ares_inet_pton.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_INET_PTON 3 "17 Feb 2013" .SH NAME ares_inet_pton \- convert an IPv4 or IPv6 address from text to binary form diff --git a/deps/cares/docs/ares_init.3 b/deps/cares/docs/ares_init.3 index 0baf4b76fea59f..d68e2241f4ee2e 100644 --- a/deps/cares/docs/ares_init.3 +++ b/deps/cares/docs/ares_init.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_INIT 3 "5 March 2010" .SH NAME ares_init \- Initialize a resolver channel diff --git a/deps/cares/docs/ares_init_options.3 b/deps/cares/docs/ares_init_options.3 index b31f6637c75b73..2fc14c569a9dd0 100644 --- a/deps/cares/docs/ares_init_options.3 +++ b/deps/cares/docs/ares_init_options.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_INIT 3 "5 March 2010" .SH NAME ares_init_options \- Initialize a resolver channel @@ -42,6 +44,7 @@ struct ares_options { int ednspsz; char *resolvconf_path; char *hosts_path; + int udp_max_queries; }; int ares_init_options(ares_channel *\fIchannelptr\fP, @@ -71,7 +74,7 @@ description of possible flag values. The number of seconds each name server is given to respond to a query on the first try. (After the first try, the timeout algorithm becomes more complicated, but scales linearly with the value of \fItimeout\fP.) The -default is five seconds. This option is being deprecated by +default is two seconds. This option is being deprecated by \fIARES_OPT_TIMEOUTMS\fP starting in c-ares 1.5.2. .TP 18 .B ARES_OPT_TIMEOUTMS @@ -80,7 +83,7 @@ default is five seconds. This option is being deprecated by The number of milliseconds each name server is given to respond to a query on the first try. (After the first try, the timeout algorithm becomes more complicated, but scales linearly with the value of \fItimeout\fP.) The -default is five seconds. Note that this option is specified with the same +default is two seconds. Note that this option is specified with the same struct field as the former \fIARES_OPT_TIMEOUT\fP, it is but the option bits that tell c-ares how to interpret the number. This option was added in c-ares 1.5.2. @@ -89,7 +92,7 @@ that tell c-ares how to interpret the number. This option was added in c-ares .B int \fItries\fP; .br The number of tries the resolver will try contacting each name server -before giving up. The default is four tries. +before giving up. The default is three tries. .TP 18 .B ARES_OPT_NDOTS .B int \fIndots\fP; @@ -204,6 +207,14 @@ should be set to a path string, and will be honoured on *nix like systems. The default is .B /etc/hosts .br +.TP 18 +.B ARES_OPT_UDP_MAX_QUERIES +.B int \fIudp_max_queries\fP; +.br +The maximum number of udp queries that can be sent on a single ephemeral port +to a given DNS server before a new ephemeral port is assigned. Any value of 0 +or less will be considered unlimited, and is the default. +.br .PP The \fIoptmask\fP parameter also includes options without a corresponding field in the diff --git a/deps/cares/docs/ares_library_cleanup.3 b/deps/cares/docs/ares_library_cleanup.3 index a1ffa6a948a479..1af89d78d3f002 100644 --- a/deps/cares/docs/ares_library_cleanup.3 +++ b/deps/cares/docs/ares_library_cleanup.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_LIBRARY_CLEANUP 3 "19 May 2009" .SH NAME ares_library_cleanup \- c-ares library deinitialization diff --git a/deps/cares/docs/ares_library_init.3 b/deps/cares/docs/ares_library_init.3 index 21fc3ecab54825..286702da56f8c0 100644 --- a/deps/cares/docs/ares_library_init.3 +++ b/deps/cares/docs/ares_library_init.3 @@ -14,6 +14,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_LIBRARY_INIT 3 "19 May 2009" .SH NAME ares_library_init \- c-ares library initialization diff --git a/deps/cares/docs/ares_library_init_android.3 b/deps/cares/docs/ares_library_init_android.3 index 9e1ac4cd5bed30..51ec20d5bd7948 100644 --- a/deps/cares/docs/ares_library_init_android.3 +++ b/deps/cares/docs/ares_library_init_android.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_LIBRARY_INIT_ANDROID 3 "13 Sept 2017" .SH NAME ares_library_init_android \- c-ares library Android initialization diff --git a/deps/cares/docs/ares_library_initialized.3 b/deps/cares/docs/ares_library_initialized.3 index 3e2727f85748a9..c9baad37e1962d 100644 --- a/deps/cares/docs/ares_library_initialized.3 +++ b/deps/cares/docs/ares_library_initialized.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_LIBRARY_INITIALIZED 3 "29 Sep 2016" .SH NAME ares_library_initialized \- get the initialization state diff --git a/deps/cares/docs/ares_mkquery.3 b/deps/cares/docs/ares_mkquery.3 index e394fe2847afdc..c8788433246a78 100644 --- a/deps/cares/docs/ares_mkquery.3 +++ b/deps/cares/docs/ares_mkquery.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_MKQUERY 3 "20 Nov 2009" .SH NAME ares_mkquery \- Compose a single-question DNS query buffer diff --git a/deps/cares/docs/ares_parse_a_reply.3 b/deps/cares/docs/ares_parse_a_reply.3 index 6038f68e599f4c..8dd20c3dcd922e 100644 --- a/deps/cares/docs/ares_parse_a_reply.3 +++ b/deps/cares/docs/ares_parse_a_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_A_REPLY 3 "25 July 1998" .SH NAME ares_parse_a_reply \- Parse a reply to a DNS query of type A diff --git a/deps/cares/docs/ares_parse_aaaa_reply.3 b/deps/cares/docs/ares_parse_aaaa_reply.3 index bddd3c2f9febe7..ebb490464cc41a 100644 --- a/deps/cares/docs/ares_parse_aaaa_reply.3 +++ b/deps/cares/docs/ares_parse_aaaa_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_AAAA_REPLY 3 "20 Nov 2009" .SH NAME ares_parse_aaaa_reply \- Parse a reply to a DNS query of type AAAA diff --git a/deps/cares/docs/ares_parse_caa_reply.3 b/deps/cares/docs/ares_parse_caa_reply.3 index 71bd6be96013cc..f99fb26496c22d 100644 --- a/deps/cares/docs/ares_parse_caa_reply.3 +++ b/deps/cares/docs/ares_parse_caa_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_CAA_REPLY 3 "16 September 2020" .SH NAME ares_parse_caa_reply \- Parse a reply to a DNS query of type CAA diff --git a/deps/cares/docs/ares_parse_mx_reply.3 b/deps/cares/docs/ares_parse_mx_reply.3 index 6c5c902d10caff..05e6cc4e9bbf2c 100644 --- a/deps/cares/docs/ares_parse_mx_reply.3 +++ b/deps/cares/docs/ares_parse_mx_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_MX_REPLY 3 "4 August 2009" .SH NAME ares_parse_mx_reply \- Parse a reply to a DNS query of type MX diff --git a/deps/cares/docs/ares_parse_naptr_reply.3 b/deps/cares/docs/ares_parse_naptr_reply.3 index b98f8fd24095c6..5cefa2604fd936 100644 --- a/deps/cares/docs/ares_parse_naptr_reply.3 +++ b/deps/cares/docs/ares_parse_naptr_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_NAPTR_REPLY 3 "23 February 2012" .SH NAME ares_parse_naptr_reply \- Parse a reply to a DNS query of type NAPTR diff --git a/deps/cares/docs/ares_parse_ns_reply.3 b/deps/cares/docs/ares_parse_ns_reply.3 index b767e04f683839..2fed14c47430d4 100644 --- a/deps/cares/docs/ares_parse_ns_reply.3 +++ b/deps/cares/docs/ares_parse_ns_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_NS_REPLY 3 "10 February 2007" .SH NAME ares_parse_ns_reply \- Parse a reply to a DNS query of type NS into a hostent diff --git a/deps/cares/docs/ares_parse_ptr_reply.3 b/deps/cares/docs/ares_parse_ptr_reply.3 index e3eb4d09b39e82..c554ecaa1f12e3 100644 --- a/deps/cares/docs/ares_parse_ptr_reply.3 +++ b/deps/cares/docs/ares_parse_ptr_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_PTR_REPLY 3 "25 July 1998" .SH NAME ares_parse_ptr_reply \- Parse a reply to a DNS query of type PTR into a hostent diff --git a/deps/cares/docs/ares_parse_soa_reply.3 b/deps/cares/docs/ares_parse_soa_reply.3 index c43f9be084164a..04d70fa79a39fd 100644 --- a/deps/cares/docs/ares_parse_soa_reply.3 +++ b/deps/cares/docs/ares_parse_soa_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_SOA_REPLY 3 "29 May 2012" .SH NAME ares_parse_soa_reply \- Parse a reply to a DNS query of type SOA diff --git a/deps/cares/docs/ares_parse_srv_reply.3 b/deps/cares/docs/ares_parse_srv_reply.3 index d3c26dbc287e78..1a04b6282d4274 100644 --- a/deps/cares/docs/ares_parse_srv_reply.3 +++ b/deps/cares/docs/ares_parse_srv_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_SRV_REPLY 3 "4 August 2009" .SH NAME ares_parse_srv_reply \- Parse a reply to a DNS query of type SRV diff --git a/deps/cares/docs/ares_parse_txt_reply.3 b/deps/cares/docs/ares_parse_txt_reply.3 index 6eeb04c7419833..e4d7aa736ec799 100644 --- a/deps/cares/docs/ares_parse_txt_reply.3 +++ b/deps/cares/docs/ares_parse_txt_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_TXT_REPLY 3 "27 October 2009" .SH NAME ares_parse_txt_reply \- Parse a reply to a DNS query of type TXT diff --git a/deps/cares/docs/ares_parse_uri_reply.3 b/deps/cares/docs/ares_parse_uri_reply.3 index 60bc22854c7d77..2c2268c1c51ee6 100644 --- a/deps/cares/docs/ares_parse_uri_reply.3 +++ b/deps/cares/docs/ares_parse_uri_reply.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PARSE_URI_REPLY 3 "14 August 2020" .SH NAME ares_parse_uri_reply \- Parse a reply to a DNS query of type URI diff --git a/deps/cares/docs/ares_process.3 b/deps/cares/docs/ares_process.3 index 28666f2e152bae..4f6ec981259f6f 100644 --- a/deps/cares/docs/ares_process.3 +++ b/deps/cares/docs/ares_process.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_PROCESS 3 "25 July 1998" .SH NAME ares_process \- Process events for name resolution diff --git a/deps/cares/docs/ares_query.3 b/deps/cares/docs/ares_query.3 index 1055baaed8096a..aa40f850ad524a 100644 --- a/deps/cares/docs/ares_query.3 +++ b/deps/cares/docs/ares_query.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_QUERY 3 "24 July 1998" .SH NAME ares_query \- Initiate a single-question DNS query diff --git a/deps/cares/docs/ares_save_options.3 b/deps/cares/docs/ares_save_options.3 index b5fcf17776d86f..308eb395f83f83 100644 --- a/deps/cares/docs/ares_save_options.3 +++ b/deps/cares/docs/ares_save_options.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SAVE_OPTIONS 3 "5 March 2010" .SH NAME ares_save_options \- Save configuration values obtained from initialized ares_channel diff --git a/deps/cares/docs/ares_search.3 b/deps/cares/docs/ares_search.3 index 6b301877d0468b..c81f03b3dc1ebc 100644 --- a/deps/cares/docs/ares_search.3 +++ b/deps/cares/docs/ares_search.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SEARCH 3 "24 July 1998" .SH NAME ares_search \- Initiate a DNS query with domain search diff --git a/deps/cares/docs/ares_send.3 b/deps/cares/docs/ares_send.3 index bcd55b3f4e60ae..59f2e2b4233b6e 100644 --- a/deps/cares/docs/ares_send.3 +++ b/deps/cares/docs/ares_send.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SEND 3 "25 July 1998" .SH NAME ares_send \- Initiate a DNS query diff --git a/deps/cares/docs/ares_set_local_dev.3 b/deps/cares/docs/ares_set_local_dev.3 index 059eae54753162..7c32d1a51fe8e4 100644 --- a/deps/cares/docs/ares_set_local_dev.3 +++ b/deps/cares/docs/ares_set_local_dev.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_LOCAL_DEV 3 "30 June 2010" .SH NAME ares_set_local_dev \- Bind to a specific network device when creating sockets. diff --git a/deps/cares/docs/ares_set_local_ip4.3 b/deps/cares/docs/ares_set_local_ip4.3 index 8425f5b67bfe25..86965ab212d660 100644 --- a/deps/cares/docs/ares_set_local_ip4.3 +++ b/deps/cares/docs/ares_set_local_ip4.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_LOCAL_IP4 3 "30 June 2010" .SH NAME ares_set_local_ip4 \- Set local IPv4 address outgoing requests. diff --git a/deps/cares/docs/ares_set_local_ip6.3 b/deps/cares/docs/ares_set_local_ip6.3 index 6719ad35989b2e..585be294e94057 100644 --- a/deps/cares/docs/ares_set_local_ip6.3 +++ b/deps/cares/docs/ares_set_local_ip6.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_LOCAL_IP6 3 "30 June 2010" .SH NAME ares_set_local_ip6 \- Set local IPv6 address outgoing requests. diff --git a/deps/cares/docs/ares_set_servers.3 b/deps/cares/docs/ares_set_servers.3 index aeed0a515661c6..6634ef5a2573f6 100644 --- a/deps/cares/docs/ares_set_servers.3 +++ b/deps/cares/docs/ares_set_servers.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_SERVERS 3 "5 March 2010" .SH NAME ares_set_servers, ares_set_servers_ports \- Initialize an ares_channel name servers configuration diff --git a/deps/cares/docs/ares_set_servers_csv.3 b/deps/cares/docs/ares_set_servers_csv.3 index a729281b9786ec..fd37a1789e224f 100644 --- a/deps/cares/docs/ares_set_servers_csv.3 +++ b/deps/cares/docs/ares_set_servers_csv.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_SERVERS_CSV 3 "30 June 2010" .SH NAME ares_set_servers_csv, ares_set_servers_ports_csv \- Set list of DNS servers to be used. diff --git a/deps/cares/docs/ares_set_servers_ports.3 b/deps/cares/docs/ares_set_servers_ports.3 index a3be18938e6983..5b08f58091349f 100644 --- a/deps/cares/docs/ares_set_servers_ports.3 +++ b/deps/cares/docs/ares_set_servers_ports.3 @@ -1 +1,4 @@ +.\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT .so man3/ares_set_servers.3 diff --git a/deps/cares/docs/ares_set_servers_ports_csv.3 b/deps/cares/docs/ares_set_servers_ports_csv.3 index 30535c69f109bc..77fd3bbae9f554 100644 --- a/deps/cares/docs/ares_set_servers_ports_csv.3 +++ b/deps/cares/docs/ares_set_servers_ports_csv.3 @@ -1 +1,4 @@ +.\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT .so man3/ares_set_servers_csv.3 diff --git a/deps/cares/docs/ares_set_socket_callback.3 b/deps/cares/docs/ares_set_socket_callback.3 index 70d7cf7d598cb3..d251eb821b083e 100644 --- a/deps/cares/docs/ares_set_socket_callback.3 +++ b/deps/cares/docs/ares_set_socket_callback.3 @@ -1,4 +1,7 @@ .\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_SOCKET_CALLBACK 3 "20 Nov 2009" .SH NAME ares_set_socket_callback \- Set a socket creation callback diff --git a/deps/cares/docs/ares_set_socket_configure_callback.3 b/deps/cares/docs/ares_set_socket_configure_callback.3 index 89188a6a9a0668..7cc27fe60b7609 100644 --- a/deps/cares/docs/ares_set_socket_configure_callback.3 +++ b/deps/cares/docs/ares_set_socket_configure_callback.3 @@ -1,4 +1,6 @@ .\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT .TH ARES_SET_SOCKET_CONFIGURE_CALLBACK 3 "6 Feb 2016" .SH NAME ares_set_socket_configure_callback \- Set a socket configuration callback diff --git a/deps/cares/docs/ares_set_socket_functions.3 b/deps/cares/docs/ares_set_socket_functions.3 index 0c33a494118f09..1b4e1aaee32d8f 100644 --- a/deps/cares/docs/ares_set_socket_functions.3 +++ b/deps/cares/docs/ares_set_socket_functions.3 @@ -1,4 +1,5 @@ -.\" +.\" Copyright (C) Daniel Stenberg +.\" SPDX-License-Identifier: MIT .TH ARES_SET_SOCKET_FUNCTIONS 3 "13 Dec 2016" .SH NAME ares_set_socket_functions \- Set socket io callbacks @@ -24,7 +25,9 @@ void ares_set_socket_functions(ares_channel \fIchannel\fP, This function sets a set of callback \fIfunctions\fP in the given ares channel handle. These callback functions will be invoked to create/destroy socket objects and perform io, instead of the normal system calls. A client application can override normal network -operation fully through this functionality, and provide its own transport layer. +operation fully through this functionality, and provide its own transport layer. You +can choose to only implement some of the socket functions, and provide NULL to any +others and c-ares will use its built-in system functions in that case. .PP All callback functions are expected to operate like their system equivalents, and to set diff --git a/deps/cares/docs/ares_set_sortlist.3 b/deps/cares/docs/ares_set_sortlist.3 index 50e99e87df8d49..24c3c35a7319eb 100644 --- a/deps/cares/docs/ares_set_sortlist.3 +++ b/deps/cares/docs/ares_set_sortlist.3 @@ -1,4 +1,5 @@ .\" +.\" Copyright (C) Daniel Stenberg .\" Permission to use, copy, modify, and distribute this .\" software and its documentation for any purpose and without .\" fee is hereby granted, provided that the above copyright @@ -11,6 +12,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_SET_SORTLIST 3 "23 November 2015" .SH NAME ares_set_sortlist \- Initialize an ares_channel sortlist configuration diff --git a/deps/cares/docs/ares_strerror.3 b/deps/cares/docs/ares_strerror.3 index 6369fccd60796f..745a0d607beb41 100644 --- a/deps/cares/docs/ares_strerror.3 +++ b/deps/cares/docs/ares_strerror.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_STRERROR 3 "25 July 1998" .SH NAME ares_strerror \- Get the description of an ares library error code diff --git a/deps/cares/docs/ares_timeout.3 b/deps/cares/docs/ares_timeout.3 index c57685dcf7c4c3..d61bdd98ed607b 100644 --- a/deps/cares/docs/ares_timeout.3 +++ b/deps/cares/docs/ares_timeout.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_TIMEOUT 3 "25 July 1998" .SH NAME ares_timeout \- return maximum time to wait diff --git a/deps/cares/docs/ares_version.3 b/deps/cares/docs/ares_version.3 index 9ba7831f54db37..e6a338e34108f9 100644 --- a/deps/cares/docs/ares_version.3 +++ b/deps/cares/docs/ares_version.3 @@ -13,6 +13,8 @@ .\" this software for any purpose. It is provided "as is" .\" without express or implied warranty. .\" +.\" SPDX-License-Identifier: MIT +.\" .TH ARES_VERSION 3 "29 January 2004" .SH NAME ares_version \- Get the version number of the library diff --git a/deps/cares/get_ver.awk b/deps/cares/get_ver.awk index 5e3db6db99a96b..263ca02ded084e 100644 --- a/deps/cares/get_ver.awk +++ b/deps/cares/get_ver.awk @@ -1,6 +1,8 @@ # *************************************************************************** # * Project: c-ares # * +# * Copyright (C) The c-ares project and its contributors +# * SPDX-License-Identifier: MIT # *************************************************************************** # awk script which fetches c-ares version number and string from input # file and writes them to STDOUT. Here you can get an awk version for Win32: diff --git a/deps/cares/include/CMakeLists.txt b/deps/cares/include/CMakeLists.txt index 3321956dd74f58..4801d873b5acd8 100644 --- a/deps/cares/include/CMakeLists.txt +++ b/deps/cares/include/CMakeLists.txt @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT # Write ares_build.h configuration file. This is an installed file. CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h) diff --git a/deps/cares/include/Makefile.am b/deps/cares/include/Makefile.am index d208bece64cd44..c9db5671d7048e 100644 --- a/deps/cares/include/Makefile.am +++ b/deps/cares/include/Makefile.am @@ -1,3 +1,5 @@ +# Copyright (C) Daniel Stenberg +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 ACLOCAL_AMFLAGS = -I m4 --install diff --git a/deps/cares/include/Makefile.in b/deps/cares/include/Makefile.in index 8586bd52f1133d..bd37daee03e43f 100644 --- a/deps/cares/include/Makefile.in +++ b/deps/cares/include/Makefile.in @@ -336,6 +336,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Copyright (C) Daniel Stenberg +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 ACLOCAL_AMFLAGS = -I m4 --install diff --git a/deps/cares/include/ares.h b/deps/cares/include/ares.h index 8c7520eec6552f..d2c1e9e3a6f327 100644 --- a/deps/cares/include/ares.h +++ b/deps/cares/include/ares.h @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2007-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) Massachusetts Institute of Technology + * Copyright (c) Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #ifndef ARES__H @@ -157,25 +167,26 @@ extern "C" { #define ARES_FLAG_EDNS (1 << 8) /* Option mask values */ -#define ARES_OPT_FLAGS (1 << 0) -#define ARES_OPT_TIMEOUT (1 << 1) -#define ARES_OPT_TRIES (1 << 2) -#define ARES_OPT_NDOTS (1 << 3) -#define ARES_OPT_UDP_PORT (1 << 4) -#define ARES_OPT_TCP_PORT (1 << 5) -#define ARES_OPT_SERVERS (1 << 6) -#define ARES_OPT_DOMAINS (1 << 7) -#define ARES_OPT_LOOKUPS (1 << 8) -#define ARES_OPT_SOCK_STATE_CB (1 << 9) -#define ARES_OPT_SORTLIST (1 << 10) -#define ARES_OPT_SOCK_SNDBUF (1 << 11) -#define ARES_OPT_SOCK_RCVBUF (1 << 12) -#define ARES_OPT_TIMEOUTMS (1 << 13) -#define ARES_OPT_ROTATE (1 << 14) -#define ARES_OPT_EDNSPSZ (1 << 15) -#define ARES_OPT_NOROTATE (1 << 16) -#define ARES_OPT_RESOLVCONF (1 << 17) -#define ARES_OPT_HOSTS_FILE (1 << 18) +#define ARES_OPT_FLAGS (1 << 0) +#define ARES_OPT_TIMEOUT (1 << 1) +#define ARES_OPT_TRIES (1 << 2) +#define ARES_OPT_NDOTS (1 << 3) +#define ARES_OPT_UDP_PORT (1 << 4) +#define ARES_OPT_TCP_PORT (1 << 5) +#define ARES_OPT_SERVERS (1 << 6) +#define ARES_OPT_DOMAINS (1 << 7) +#define ARES_OPT_LOOKUPS (1 << 8) +#define ARES_OPT_SOCK_STATE_CB (1 << 9) +#define ARES_OPT_SORTLIST (1 << 10) +#define ARES_OPT_SOCK_SNDBUF (1 << 11) +#define ARES_OPT_SOCK_RCVBUF (1 << 12) +#define ARES_OPT_TIMEOUTMS (1 << 13) +#define ARES_OPT_ROTATE (1 << 14) +#define ARES_OPT_EDNSPSZ (1 << 15) +#define ARES_OPT_NOROTATE (1 << 16) +#define ARES_OPT_RESOLVCONF (1 << 17) +#define ARES_OPT_HOSTS_FILE (1 << 18) +#define ARES_OPT_UDP_MAX_QUERIES (1 << 19) /* Nameinfo flag values */ #define ARES_NI_NOFQDN (1 << 0) @@ -286,6 +297,7 @@ struct ares_options { int ednspsz; char *resolvconf_path; char *hosts_path; + int udp_max_queries; }; struct hostent; diff --git a/deps/cares/include/ares_build.h b/deps/cares/include/ares_build.h index 7f7d2e02daaba9..0a2b7a711a3bf0 100644 --- a/deps/cares/include/ares_build.h +++ b/deps/cares/include/ares_build.h @@ -1,20 +1,32 @@ +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ #ifndef __CARES_BUILD_H #define __CARES_BUILD_H -/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - /* ================================================================ */ /* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ /* ================================================================ */ diff --git a/deps/cares/include/ares_build.h.cmake b/deps/cares/include/ares_build.h.cmake index e847f17ea79ea7..e2ab7173bf8fde 100644 --- a/deps/cares/include/ares_build.h.cmake +++ b/deps/cares/include/ares_build.h.cmake @@ -1,5 +1,9 @@ #ifndef __CARES_BUILD_H #define __CARES_BUILD_H +/* + * Copyright (C) The c-ares project and its contributors + * SPDX-License-Identifier: MIT + */ #define CARES_TYPEOF_ARES_SOCKLEN_T @CARES_TYPEOF_ARES_SOCKLEN_T@ #define CARES_TYPEOF_ARES_SSIZE_T @CARES_TYPEOF_ARES_SSIZE_T@ @@ -8,6 +12,7 @@ * files. We need to include some dependent headers that may be system specific * for C-Ares */ #cmakedefine CARES_HAVE_SYS_TYPES_H +#cmakedefine CARES_HAVE_SYS_RANDOM_H #cmakedefine CARES_HAVE_SYS_SOCKET_H #cmakedefine CARES_HAVE_WINDOWS_H #cmakedefine CARES_HAVE_WS2TCPIP_H @@ -20,6 +25,10 @@ # include #endif +#ifdef CARES_HAVE_SYS_RANDOM_H +# include +#endif + #ifdef CARES_HAVE_SYS_SOCKET_H # include #endif diff --git a/deps/cares/include/ares_build.h.in b/deps/cares/include/ares_build.h.in index 8abc874c809026..c8624da855dd8b 100644 --- a/deps/cares/include/ares_build.h.in +++ b/deps/cares/include/ares_build.h.in @@ -1,19 +1,30 @@ -#ifndef __CARES_BUILD_H -#define __CARES_BUILD_H - - -/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef __CARES_BUILD_H +#define __CARES_BUILD_H /* ================================================================ */ /* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ diff --git a/deps/cares/include/ares_dns.h b/deps/cares/include/ares_dns.h index bc8aa7b1091de6..e49c3d26ab1aa8 100644 --- a/deps/cares/include/ares_dns.h +++ b/deps/cares/include/ares_dns.h @@ -1,20 +1,31 @@ -#ifndef HEADER_CARES_DNS_H -#define HEADER_CARES_DNS_H - -/* Copyright 1998, 2011 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_DNS_H +#define HEADER_CARES_DNS_H /* * NOTE TO INTEGRATORS: diff --git a/deps/cares/include/ares_nameser.h b/deps/cares/include/ares_nameser.h index 18a9e5ac0e25fa..3138d89d747fad 100644 --- a/deps/cares/include/ares_nameser.h +++ b/deps/cares/include/ares_nameser.h @@ -1,3 +1,29 @@ +/* MIT License + * + * Copyright (c) Massachusetts Institute of Technology + * Copyright (c) Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ #ifndef ARES_NAMESER_H #define ARES_NAMESER_H diff --git a/deps/cares/include/ares_rules.h b/deps/cares/include/ares_rules.h index 1706ab7d00444d..f6b1f663e2dbf0 100644 --- a/deps/cares/include/ares_rules.h +++ b/deps/cares/include/ares_rules.h @@ -1,19 +1,30 @@ -#ifndef __CARES_RULES_H -#define __CARES_RULES_H - - -/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef __CARES_RULES_H +#define __CARES_RULES_H /* ================================================================ */ /* COMPILE TIME SANITY CHECKS */ diff --git a/deps/cares/include/ares_version.h b/deps/cares/include/ares_version.h index 35a1ed1a3d3035..fa83494fd4efd6 100644 --- a/deps/cares/include/ares_version.h +++ b/deps/cares/include/ares_version.h @@ -1,17 +1,42 @@ +/* MIT License + * + * Copyright (c) Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ #ifndef ARES__VERSION_H #define ARES__VERSION_H /* This is the global package copyright */ -#define ARES_COPYRIGHT "2004 - 2021 Daniel Stenberg, ." +#define ARES_COPYRIGHT "2004 - 2023 Daniel Stenberg, ." #define ARES_VERSION_MAJOR 1 -#define ARES_VERSION_MINOR 19 -#define ARES_VERSION_PATCH 1 +#define ARES_VERSION_MINOR 20 +#define ARES_VERSION_PATCH 0 #define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\ (ARES_VERSION_MINOR<<8)|\ (ARES_VERSION_PATCH)) -#define ARES_VERSION_STR "1.19.1" +#define ARES_VERSION_STR "1.20.0" #if (ARES_VERSION >= 0x010700) # define CARES_HAVE_ARES_LIBRARY_INIT 1 diff --git a/deps/cares/libcares.pc.cmake b/deps/cares/libcares.pc.cmake index f1213cf8b69002..df49368633b229 100644 --- a/deps/cares/libcares.pc.cmake +++ b/deps/cares/libcares.pc.cmake @@ -4,6 +4,9 @@ # | (_|_____| (_| | | | __/\__ \ # \___| \__,_|_| \___||___/ # +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT +prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=@CMAKE_INSTALL_FULL_BINDIR@ libdir=@CMAKE_INSTALL_FULL_LIBDIR@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ diff --git a/deps/cares/libcares.pc.in b/deps/cares/libcares.pc.in index e7ef5d250725b7..aa4bfc91ddb37a 100644 --- a/deps/cares/libcares.pc.in +++ b/deps/cares/libcares.pc.in @@ -4,6 +4,8 @@ # | (_|_____| (_| | | | __/\__ \ # \___| \__,_|_| \___||___/ # +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ diff --git a/deps/cares/ltmain.sh b/deps/cares/ltmain.sh index 8fb8700eef391d..9b12fbb7fa9a09 100755 --- a/deps/cares/ltmain.sh +++ b/deps/cares/ltmain.sh @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.7 Debian-2.4.7-4" +VERSION="2.4.7 Debian-2.4.7-5" package_revision=2.4.7 @@ -2308,7 +2308,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.7-4 + version: $progname $scriptversion Debian-2.4.7-5 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` diff --git a/deps/cares/m4/ax_check_user_namespace.m4 b/deps/cares/m4/ax_check_user_namespace.m4 index 27ba69821cb7e3..aca721626f2e89 100644 --- a/deps/cares/m4/ax_check_user_namespace.m4 +++ b/deps/cares/m4/ax_check_user_namespace.m4 @@ -8,6 +8,9 @@ # # This macro checks whether the local system supports Linux user namespaces. # If so, it calls AC_DEFINE(HAVE_USER_NAMESPACE). +# +# Copyright (C) The c-ares team +# SPDX-License-Identifier: MIT AC_DEFUN([AX_CHECK_USER_NAMESPACE],[dnl AC_CACHE_CHECK([whether user namespaces are supported], @@ -34,9 +37,9 @@ int main() { pid_t child = clone(userfn, userst + 1024*1024, CLONE_NEWUSER|SIGCHLD, 0); if (child < 0) return 1; - sprintf(buffer, "/proc/%d/uid_map", child); + snprintf(buffer, sizeof(buffer), "/proc/%d/uid_map", child); fd = open(buffer, O_CREAT|O_WRONLY|O_TRUNC, 0755); - sprintf(buffer, "0 %d 1\n", getuid()); + snprintf(buffer, sizeof(buffer), "0 %d 1\n", getuid()); write(fd, buffer, strlen(buffer)); close(fd); diff --git a/deps/cares/m4/ax_check_uts_namespace.m4 b/deps/cares/m4/ax_check_uts_namespace.m4 index cf7b145c30e471..5708acf1b9f376 100644 --- a/deps/cares/m4/ax_check_uts_namespace.m4 +++ b/deps/cares/m4/ax_check_uts_namespace.m4 @@ -10,6 +10,9 @@ # Also requires user namespaces to be available, so that non-root users # can enter the namespace. # If so, it calls AC_DEFINE(HAVE_UTS_NAMESPACE). +# +# Copyright (C) The c-ares team +# SPDX-License-Identifier: MIT AC_DEFUN([AX_CHECK_UTS_NAMESPACE],[dnl AC_CACHE_CHECK([whether UTS namespaces are supported], @@ -55,9 +58,9 @@ int main() { pid_t child = clone(fn, st + 1024*1024, CLONE_NEWUSER|SIGCHLD, 0); if (child < 0) return 1; - sprintf(buffer, "/proc/%d/uid_map", child); + snprintf(buffer, sizeof(buffer), "/proc/%d/uid_map", child); fd = open(buffer, O_CREAT|O_WRONLY|O_TRUNC, 0755); - sprintf(buffer, "0 %d 1\n", getuid()); + snprintf(buffer, sizeof(buffer), "0 %d 1\n", getuid()); write(fd, buffer, strlen(buffer)); close(fd); diff --git a/deps/cares/m4/cares-compilers.m4 b/deps/cares/m4/cares-compilers.m4 index a5b1e2b182b162..e11b35c33ef1bb 100644 --- a/deps/cares/m4/cares-compilers.m4 +++ b/deps/cares/m4/cares-compilers.m4 @@ -1,6 +1,6 @@ #*************************************************************************** # -# Copyright (C) 2009 - 2021 by Daniel Stenberg et al +# Copyright (C) Daniel Stenberg et al # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided @@ -12,6 +12,7 @@ # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # +# SPDX-License-Identifier: MIT #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. diff --git a/deps/cares/m4/cares-confopts.m4 b/deps/cares/m4/cares-confopts.m4 index 78af64bffe1b99..0c6f1484fb232a 100644 --- a/deps/cares/m4/cares-confopts.m4 +++ b/deps/cares/m4/cares-confopts.m4 @@ -1,6 +1,6 @@ #*************************************************************************** # -# Copyright (C) 2008 - 2013 by Daniel Stenberg et al +# Copyright (C) Daniel Stenberg et al # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided @@ -12,6 +12,7 @@ # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # +# SPDX-License-Identifier: MIT #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. diff --git a/deps/cares/m4/cares-functions.m4 b/deps/cares/m4/cares-functions.m4 index d4f4f994c6f22d..b12ab247257de9 100644 --- a/deps/cares/m4/cares-functions.m4 +++ b/deps/cares/m4/cares-functions.m4 @@ -1,6 +1,6 @@ #*************************************************************************** # -# Copyright (C) 2008 - 2012 by Daniel Stenberg et al +# Copyright (C) Daniel Stenberg et al # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided @@ -12,6 +12,7 @@ # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # +# SPDX-License-Identifier: MIT #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. @@ -186,6 +187,24 @@ cares_includes_stropts="\ ]) +dnl CARES_INCLUDES_SYS_RANDOM +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when sys/random.h is to be included. + +AC_DEFUN([CARES_INCLUDES_SYS_RANDOM], [ +cares_includes_sys_random="\ +/* includes start */ +#ifdef HAVE_SYS_RANDOM_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/random.h, + [], [], [$cares_includes_sys_random]) +]) + + dnl CARES_INCLUDES_SYS_SOCKET dnl ------------------------------------------------- dnl Set up variable with list of headers that must be @@ -1520,6 +1539,90 @@ AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ fi ]) +dnl CARES_CHECK_FUNC_GETRANDOM +dnl ------------------------------------------------- +dnl Verify if getrandom is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_getrandom, then +dnl HAVE_GETRANDOM will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETRANDOM], [ + AC_REQUIRE([CARES_INCLUDES_SYS_RANDOM])dnl + # + tst_links_getrandom="unknown" + tst_proto_getrandom="unknown" + tst_compi_getrandom="unknown" + tst_allow_getrandom="unknown" + # + AC_MSG_CHECKING([if getrandom can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getrandom]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getrandom="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getrandom="no" + ]) + # + if test "$tst_links_getrandom" = "yes"; then + AC_MSG_CHECKING([if getrandom is prototyped]) + AC_EGREP_CPP([getrandom],[ + $cares_includes_sys_random + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getrandom="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getrandom="no" + ]) + fi + # + if test "$tst_proto_getrandom" = "yes"; then + AC_MSG_CHECKING([if getrandom is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_random + ]],[[ + if(0 != getrandom(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getrandom="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getrandom="no" + ]) + fi + # + if test "$tst_compi_getrandom" = "yes"; then + AC_MSG_CHECKING([if getrandom usage allowed]) + if test "x$cares_disallow_getrandom" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getrandom="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getrandom="no" + fi + fi + # + AC_MSG_CHECKING([if getrandom might be used]) + if test "$tst_links_getrandom" = "yes" && + test "$tst_proto_getrandom" = "yes" && + test "$tst_compi_getrandom" = "yes" && + test "$tst_allow_getrandom" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETRANDOM, 1, + [Define to 1 if you have the getrandom function.]) + ac_cv_func_getrandom="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getrandom="no" + fi +]) + dnl CARES_CHECK_FUNC_GETSERVBYPORT_R dnl ------------------------------------------------- diff --git a/deps/cares/m4/cares-reentrant.m4 b/deps/cares/m4/cares-reentrant.m4 index 052326b3c0e425..2a16fb22117d3f 100644 --- a/deps/cares/m4/cares-reentrant.m4 +++ b/deps/cares/m4/cares-reentrant.m4 @@ -1,7 +1,5 @@ #*************************************************************************** -# $Id$ -# -# Copyright (C) 2008 - 2009 by Daniel Stenberg et al +# Copyright (C) Daniel Stenberg et al # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided @@ -13,6 +11,7 @@ # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # +# SPDX-License-Identifier: MIT #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. diff --git a/deps/cares/m4/xc-am-iface.m4 b/deps/cares/m4/xc-am-iface.m4 index 1571c211fb4e54..80c53b618225d9 100644 --- a/deps/cares/m4/xc-am-iface.m4 +++ b/deps/cares/m4/xc-am-iface.m4 @@ -2,7 +2,7 @@ # # xc-am-iface.m4 # -# Copyright (c) 2013 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # serial 1 diff --git a/deps/cares/m4/xc-cc-check.m4 b/deps/cares/m4/xc-cc-check.m4 index 777decf2983d11..cfa201ac9dce18 100644 --- a/deps/cares/m4/xc-cc-check.m4 +++ b/deps/cares/m4/xc-cc-check.m4 @@ -2,7 +2,7 @@ # # xc-cc-check.m4 # -# Copyright (c) 2013 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # serial 1 diff --git a/deps/cares/m4/xc-lt-iface.m4 b/deps/cares/m4/xc-lt-iface.m4 index 0b90d5f25f0252..f8a6c125ff8373 100644 --- a/deps/cares/m4/xc-lt-iface.m4 +++ b/deps/cares/m4/xc-lt-iface.m4 @@ -2,7 +2,7 @@ # # xc-lt-iface.m4 # -# Copyright (c) 2013 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,8 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # serial 1 diff --git a/deps/cares/m4/xc-translit.m4 b/deps/cares/m4/xc-translit.m4 index 1918f1684084eb..db8ca82137a20f 100644 --- a/deps/cares/m4/xc-translit.m4 +++ b/deps/cares/m4/xc-translit.m4 @@ -2,7 +2,7 @@ # # xc-translit.m4 # -# Copyright (c) 2011 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,8 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # File version for 'aclocal' use. Keep it a single number. diff --git a/deps/cares/m4/xc-val-flgs.m4 b/deps/cares/m4/xc-val-flgs.m4 index 81d1eac9e3bee4..c9e472e6ae9b0d 100644 --- a/deps/cares/m4/xc-val-flgs.m4 +++ b/deps/cares/m4/xc-val-flgs.m4 @@ -2,7 +2,7 @@ # # xc-val-flgs.m4 # -# Copyright (c) 2013 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,8 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # serial 1 diff --git a/deps/cares/m4/zz40-xc-ovr.m4 b/deps/cares/m4/zz40-xc-ovr.m4 index 0e3b1cba61e1cf..4183347924e12c 100644 --- a/deps/cares/m4/zz40-xc-ovr.m4 +++ b/deps/cares/m4/zz40-xc-ovr.m4 @@ -2,7 +2,7 @@ # # zz40-xc-ovr.m4 # -# Copyright (c) 2013 Daniel Stenberg +# Copyright (c) Daniel Stenberg # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -16,6 +16,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +# SPDX-License-Identifier: MIT #--------------------------------------------------------------------------- # serial 1 diff --git a/deps/cares/maketgz b/deps/cares/maketgz index ec1ecea540afb8..aa1241f96ef541 100755 --- a/deps/cares/maketgz +++ b/deps/cares/maketgz @@ -1,4 +1,6 @@ #!/usr/bin/env perl +# Copyright (C) Daniel Stenberg +# SPDX-License-Identifier: MIT $version = $ARGV[0]; diff --git a/deps/cares/msvc_ver.inc b/deps/cares/msvc_ver.inc index 595cbdf1dea747..61bdb59ae2c124 100644 --- a/deps/cares/msvc_ver.inc +++ b/deps/cares/msvc_ver.inc @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT # ----------------------------------------------- # Detect NMAKE version deducing old MSVC versions # ----------------------------------------------- diff --git a/deps/cares/src/CMakeLists.txt b/deps/cares/src/CMakeLists.txt index 6750c1780f6231..b8ea0a17740107 100644 --- a/deps/cares/src/CMakeLists.txt +++ b/deps/cares/src/CMakeLists.txt @@ -1,2 +1,4 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT ADD_SUBDIRECTORY (lib) ADD_SUBDIRECTORY (tools) diff --git a/deps/cares/src/Makefile.am b/deps/cares/src/Makefile.am index 2e97e422f73adf..896dd62e408011 100644 --- a/deps/cares/src/Makefile.am +++ b/deps/cares/src/Makefile.am @@ -1,2 +1,4 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT EXTRA_DIST=CMakeLists.txt SUBDIRS=lib tools diff --git a/deps/cares/src/Makefile.in b/deps/cares/src/Makefile.in index 6aa63b002ada82..af4e680b76afdb 100644 --- a/deps/cares/src/Makefile.in +++ b/deps/cares/src/Makefile.in @@ -347,6 +347,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT EXTRA_DIST = CMakeLists.txt SUBDIRS = lib tools all: all-recursive diff --git a/deps/cares/src/lib/CMakeLists.txt b/deps/cares/src/lib/CMakeLists.txt index 5cea0762827497..34dc9c3d68afed 100644 --- a/deps/cares/src/lib/CMakeLists.txt +++ b/deps/cares/src/lib/CMakeLists.txt @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT # Transform Makefile.inc transform_makefile_inc("Makefile.inc" "${PROJECT_BINARY_DIR}/src/lib/Makefile.inc.cmake") diff --git a/deps/cares/src/lib/Makefile.am b/deps/cares/src/lib/Makefile.am index 4813621ce23992..998996b1eef2a5 100644 --- a/deps/cares/src/lib/Makefile.am +++ b/deps/cares/src/lib/Makefile.am @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 ACLOCAL_AMFLAGS = -I m4 --install diff --git a/deps/cares/src/lib/Makefile.in b/deps/cares/src/lib/Makefile.in index f1ed8a0b0c588e..0dd3c19661cdb0 100644 --- a/deps/cares/src/lib/Makefile.in +++ b/deps/cares/src/lib/Makefile.in @@ -15,7 +15,10 @@ @SET_MAKE@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Mon May 22 13:34:17 CEST 2023 +# from AX_AM_MACROS_STATIC on Sat Oct 7 13:47:45 CEST 2023 + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT VPATH = @srcdir@ am__is_gnu_make = { \ @@ -164,10 +167,12 @@ libcares_la_LIBADD = am__objects_1 = libcares_la-ares__addrinfo2hostent.lo \ libcares_la-ares__addrinfo_localhost.lo \ libcares_la-ares__close_sockets.lo \ - libcares_la-ares__get_hostent.lo \ + libcares_la-ares__get_hostent.lo libcares_la-ares__htable.lo \ + libcares_la-ares__htable_asvp.lo \ + libcares_la-ares__htable_stvp.lo libcares_la-ares__llist.lo \ libcares_la-ares__parse_into_addrinfo.lo \ - libcares_la-ares__readaddrinfo.lo \ - libcares_la-ares__sortaddrinfo.lo \ + libcares_la-ares__buf.lo libcares_la-ares__readaddrinfo.lo \ + libcares_la-ares__slist.lo libcares_la-ares__sortaddrinfo.lo \ libcares_la-ares__read_line.lo libcares_la-ares__timeval.lo \ libcares_la-ares_android.lo libcares_la-ares_cancel.lo \ libcares_la-ares_data.lo libcares_la-ares_destroy.lo \ @@ -181,9 +186,9 @@ am__objects_1 = libcares_la-ares__addrinfo2hostent.lo \ libcares_la-ares_gethostbyname.lo \ libcares_la-ares_getnameinfo.lo libcares_la-ares_getsock.lo \ libcares_la-ares_init.lo libcares_la-ares_library_init.lo \ - libcares_la-ares_llist.lo libcares_la-ares_mkquery.lo \ - libcares_la-ares_create_query.lo libcares_la-ares_nowarn.lo \ - libcares_la-ares_options.lo libcares_la-ares_parse_a_reply.lo \ + libcares_la-ares_mkquery.lo libcares_la-ares_create_query.lo \ + libcares_la-ares_nowarn.lo libcares_la-ares_options.lo \ + libcares_la-ares_parse_a_reply.lo \ libcares_la-ares_parse_aaaa_reply.lo \ libcares_la-ares_parse_caa_reply.lo \ libcares_la-ares_parse_mx_reply.lo \ @@ -200,9 +205,8 @@ am__objects_1 = libcares_la-ares__addrinfo2hostent.lo \ libcares_la-ares_strcasecmp.lo libcares_la-ares_strdup.lo \ libcares_la-ares_strerror.lo libcares_la-ares_strsplit.lo \ libcares_la-ares_timeout.lo libcares_la-ares_version.lo \ - libcares_la-ares_writev.lo libcares_la-bitncmp.lo \ - libcares_la-inet_net_pton.lo libcares_la-inet_ntop.lo \ - libcares_la-windows_port.lo + libcares_la-bitncmp.lo libcares_la-inet_net_pton.lo \ + libcares_la-inet_ntop.lo libcares_la-windows_port.lo am__objects_2 = am_libcares_la_OBJECTS = $(am__objects_1) $(am__objects_2) libcares_la_OBJECTS = $(am_libcares_la_OBJECTS) @@ -231,11 +235,17 @@ am__maybe_remake_depfiles = depfiles am__depfiles_remade = \ ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo \ ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo \ + ./$(DEPDIR)/libcares_la-ares__buf.Plo \ ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo \ ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo \ + ./$(DEPDIR)/libcares_la-ares__htable.Plo \ + ./$(DEPDIR)/libcares_la-ares__htable_asvp.Plo \ + ./$(DEPDIR)/libcares_la-ares__htable_stvp.Plo \ + ./$(DEPDIR)/libcares_la-ares__llist.Plo \ ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo \ ./$(DEPDIR)/libcares_la-ares__read_line.Plo \ ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares__slist.Plo \ ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo \ ./$(DEPDIR)/libcares_la-ares__timeval.Plo \ ./$(DEPDIR)/libcares_la-ares_android.Plo \ @@ -257,7 +267,6 @@ am__depfiles_remade = \ ./$(DEPDIR)/libcares_la-ares_getsock.Plo \ ./$(DEPDIR)/libcares_la-ares_init.Plo \ ./$(DEPDIR)/libcares_la-ares_library_init.Plo \ - ./$(DEPDIR)/libcares_la-ares_llist.Plo \ ./$(DEPDIR)/libcares_la-ares_mkquery.Plo \ ./$(DEPDIR)/libcares_la-ares_nowarn.Plo \ ./$(DEPDIR)/libcares_la-ares_options.Plo \ @@ -284,7 +293,6 @@ am__depfiles_remade = \ ./$(DEPDIR)/libcares_la-ares_strsplit.Plo \ ./$(DEPDIR)/libcares_la-ares_timeout.Plo \ ./$(DEPDIR)/libcares_la-ares_version.Plo \ - ./$(DEPDIR)/libcares_la-ares_writev.Plo \ ./$(DEPDIR)/libcares_la-bitncmp.Plo \ ./$(DEPDIR)/libcares_la-inet_net_pton.Plo \ ./$(DEPDIR)/libcares_la-inet_ntop.Plo \ @@ -526,6 +534,9 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 ACLOCAL_AMFLAGS = -I m4 --install @@ -575,11 +586,17 @@ libcares_la_LIBS = $(CODE_COVERAGE_LIBS) libcares_la_CFLAGS = $(AM_CFLAGS) $(libcares_la_CFLAGS_EXTRA) libcares_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcares_la_CPPFLAGS_EXTRA) CSOURCES = ares__addrinfo2hostent.c \ - ares__addrinfo_localhost.c \ - ares__close_sockets.c \ + ares__addrinfo_localhost.c \ + ares__close_sockets.c \ ares__get_hostent.c \ + ares__htable.c \ + ares__htable_asvp.c \ + ares__htable_stvp.c \ + ares__llist.c \ ares__parse_into_addrinfo.c \ + ares__buf.c \ ares__readaddrinfo.c \ + ares__slist.c \ ares__sortaddrinfo.c \ ares__read_line.c \ ares__timeval.c \ @@ -601,7 +618,6 @@ CSOURCES = ares__addrinfo2hostent.c \ ares_getsock.c \ ares_init.c \ ares_library_init.c \ - ares_llist.c \ ares_mkquery.c \ ares_create_query.c \ ares_nowarn.c \ @@ -620,7 +636,7 @@ CSOURCES = ares__addrinfo2hostent.c \ ares_platform.c \ ares_process.c \ ares_query.c \ - ares_rand.c \ + ares_rand.c \ ares_search.c \ ares_send.c \ ares_strcasecmp.c \ @@ -629,26 +645,29 @@ CSOURCES = ares__addrinfo2hostent.c \ ares_strsplit.c \ ares_timeout.c \ ares_version.c \ - ares_writev.c \ bitncmp.c \ inet_net_pton.c \ inet_ntop.c \ windows_port.c -HHEADERS = ares_android.h \ +HHEADERS = ares__htable.h \ + ares__htable_asvp.h \ + ares__htable_stvp.h \ + ares__llist.h \ + ares__buf.h \ + ares__slist.h \ + ares_android.h \ ares_data.h \ ares_getenv.h \ ares_inet_net_pton.h \ ares_iphlpapi.h \ ares_ipv6.h \ - ares_llist.h \ ares_nowarn.h \ ares_platform.h \ ares_private.h \ ares_strcasecmp.h \ ares_strdup.h \ ares_strsplit.h \ - ares_writev.h \ bitncmp.h \ ares_setup.h \ setup_once.h @@ -753,11 +772,17 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__buf.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__close_sockets.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__get_hostent.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__htable.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__htable_asvp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__htable_stvp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__llist.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__read_line.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__slist.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__timeval.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_android.Plo@am__quote@ # am--include-marker @@ -779,7 +804,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_getsock.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_init.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_library_init.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_llist.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_mkquery.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_nowarn.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_options.Plo@am__quote@ # am--include-marker @@ -806,7 +830,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_strsplit.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_timeout.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_version.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_writev.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-bitncmp.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-inet_net_pton.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-inet_ntop.Plo@am__quote@ # am--include-marker @@ -870,6 +893,34 @@ libcares_la-ares__get_hostent.lo: ares__get_hostent.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__get_hostent.lo `test -f 'ares__get_hostent.c' || echo '$(srcdir)/'`ares__get_hostent.c +libcares_la-ares__htable.lo: ares__htable.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__htable.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__htable.Tpo -c -o libcares_la-ares__htable.lo `test -f 'ares__htable.c' || echo '$(srcdir)/'`ares__htable.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__htable.Tpo $(DEPDIR)/libcares_la-ares__htable.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__htable.c' object='libcares_la-ares__htable.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__htable.lo `test -f 'ares__htable.c' || echo '$(srcdir)/'`ares__htable.c + +libcares_la-ares__htable_asvp.lo: ares__htable_asvp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__htable_asvp.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__htable_asvp.Tpo -c -o libcares_la-ares__htable_asvp.lo `test -f 'ares__htable_asvp.c' || echo '$(srcdir)/'`ares__htable_asvp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__htable_asvp.Tpo $(DEPDIR)/libcares_la-ares__htable_asvp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__htable_asvp.c' object='libcares_la-ares__htable_asvp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__htable_asvp.lo `test -f 'ares__htable_asvp.c' || echo '$(srcdir)/'`ares__htable_asvp.c + +libcares_la-ares__htable_stvp.lo: ares__htable_stvp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__htable_stvp.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__htable_stvp.Tpo -c -o libcares_la-ares__htable_stvp.lo `test -f 'ares__htable_stvp.c' || echo '$(srcdir)/'`ares__htable_stvp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__htable_stvp.Tpo $(DEPDIR)/libcares_la-ares__htable_stvp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__htable_stvp.c' object='libcares_la-ares__htable_stvp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__htable_stvp.lo `test -f 'ares__htable_stvp.c' || echo '$(srcdir)/'`ares__htable_stvp.c + +libcares_la-ares__llist.lo: ares__llist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__llist.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__llist.Tpo -c -o libcares_la-ares__llist.lo `test -f 'ares__llist.c' || echo '$(srcdir)/'`ares__llist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__llist.Tpo $(DEPDIR)/libcares_la-ares__llist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__llist.c' object='libcares_la-ares__llist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__llist.lo `test -f 'ares__llist.c' || echo '$(srcdir)/'`ares__llist.c + libcares_la-ares__parse_into_addrinfo.lo: ares__parse_into_addrinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__parse_into_addrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Tpo -c -o libcares_la-ares__parse_into_addrinfo.lo `test -f 'ares__parse_into_addrinfo.c' || echo '$(srcdir)/'`ares__parse_into_addrinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Tpo $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo @@ -877,6 +928,13 @@ libcares_la-ares__parse_into_addrinfo.lo: ares__parse_into_addrinfo.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__parse_into_addrinfo.lo `test -f 'ares__parse_into_addrinfo.c' || echo '$(srcdir)/'`ares__parse_into_addrinfo.c +libcares_la-ares__buf.lo: ares__buf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__buf.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__buf.Tpo -c -o libcares_la-ares__buf.lo `test -f 'ares__buf.c' || echo '$(srcdir)/'`ares__buf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__buf.Tpo $(DEPDIR)/libcares_la-ares__buf.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__buf.c' object='libcares_la-ares__buf.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__buf.lo `test -f 'ares__buf.c' || echo '$(srcdir)/'`ares__buf.c + libcares_la-ares__readaddrinfo.lo: ares__readaddrinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__readaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__readaddrinfo.Tpo -c -o libcares_la-ares__readaddrinfo.lo `test -f 'ares__readaddrinfo.c' || echo '$(srcdir)/'`ares__readaddrinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__readaddrinfo.Tpo $(DEPDIR)/libcares_la-ares__readaddrinfo.Plo @@ -884,6 +942,13 @@ libcares_la-ares__readaddrinfo.lo: ares__readaddrinfo.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__readaddrinfo.lo `test -f 'ares__readaddrinfo.c' || echo '$(srcdir)/'`ares__readaddrinfo.c +libcares_la-ares__slist.lo: ares__slist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__slist.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__slist.Tpo -c -o libcares_la-ares__slist.lo `test -f 'ares__slist.c' || echo '$(srcdir)/'`ares__slist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__slist.Tpo $(DEPDIR)/libcares_la-ares__slist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__slist.c' object='libcares_la-ares__slist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__slist.lo `test -f 'ares__slist.c' || echo '$(srcdir)/'`ares__slist.c + libcares_la-ares__sortaddrinfo.lo: ares__sortaddrinfo.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__sortaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__sortaddrinfo.Tpo -c -o libcares_la-ares__sortaddrinfo.lo `test -f 'ares__sortaddrinfo.c' || echo '$(srcdir)/'`ares__sortaddrinfo.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__sortaddrinfo.Tpo $(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo @@ -1031,13 +1096,6 @@ libcares_la-ares_library_init.lo: ares_library_init.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_library_init.lo `test -f 'ares_library_init.c' || echo '$(srcdir)/'`ares_library_init.c -libcares_la-ares_llist.lo: ares_llist.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_llist.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_llist.Tpo -c -o libcares_la-ares_llist.lo `test -f 'ares_llist.c' || echo '$(srcdir)/'`ares_llist.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_llist.Tpo $(DEPDIR)/libcares_la-ares_llist.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_llist.c' object='libcares_la-ares_llist.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_llist.lo `test -f 'ares_llist.c' || echo '$(srcdir)/'`ares_llist.c - libcares_la-ares_mkquery.lo: ares_mkquery.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_mkquery.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_mkquery.Tpo -c -o libcares_la-ares_mkquery.lo `test -f 'ares_mkquery.c' || echo '$(srcdir)/'`ares_mkquery.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_mkquery.Tpo $(DEPDIR)/libcares_la-ares_mkquery.Plo @@ -1227,13 +1285,6 @@ libcares_la-ares_version.lo: ares_version.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_version.lo `test -f 'ares_version.c' || echo '$(srcdir)/'`ares_version.c -libcares_la-ares_writev.lo: ares_writev.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_writev.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_writev.Tpo -c -o libcares_la-ares_writev.lo `test -f 'ares_writev.c' || echo '$(srcdir)/'`ares_writev.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_writev.Tpo $(DEPDIR)/libcares_la-ares_writev.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_writev.c' object='libcares_la-ares_writev.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_writev.lo `test -f 'ares_writev.c' || echo '$(srcdir)/'`ares_writev.c - libcares_la-bitncmp.lo: bitncmp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-bitncmp.lo -MD -MP -MF $(DEPDIR)/libcares_la-bitncmp.Tpo -c -o libcares_la-bitncmp.lo `test -f 'bitncmp.c' || echo '$(srcdir)/'`bitncmp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-bitncmp.Tpo $(DEPDIR)/libcares_la-bitncmp.Plo @@ -1471,11 +1522,17 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__buf.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable_asvp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable_stvp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__llist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__read_line.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__slist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__timeval.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_android.Plo @@ -1497,7 +1554,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares_getsock.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_init.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_library_init.Plo - -rm -f ./$(DEPDIR)/libcares_la-ares_llist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_mkquery.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_nowarn.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_options.Plo @@ -1524,7 +1580,6 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares_strsplit.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_timeout.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_version.Plo - -rm -f ./$(DEPDIR)/libcares_la-ares_writev.Plo -rm -f ./$(DEPDIR)/libcares_la-bitncmp.Plo -rm -f ./$(DEPDIR)/libcares_la-inet_net_pton.Plo -rm -f ./$(DEPDIR)/libcares_la-inet_ntop.Plo @@ -1576,11 +1631,17 @@ installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__buf.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable_asvp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__htable_stvp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__llist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__read_line.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__slist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo -rm -f ./$(DEPDIR)/libcares_la-ares__timeval.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_android.Plo @@ -1602,7 +1663,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares_getsock.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_init.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_library_init.Plo - -rm -f ./$(DEPDIR)/libcares_la-ares_llist.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_mkquery.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_nowarn.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_options.Plo @@ -1629,7 +1689,6 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libcares_la-ares_strsplit.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_timeout.Plo -rm -f ./$(DEPDIR)/libcares_la-ares_version.Plo - -rm -f ./$(DEPDIR)/libcares_la-ares_writev.Plo -rm -f ./$(DEPDIR)/libcares_la-bitncmp.Plo -rm -f ./$(DEPDIR)/libcares_la-inet_net_pton.Plo -rm -f ./$(DEPDIR)/libcares_la-inet_ntop.Plo diff --git a/deps/cares/src/lib/Makefile.inc b/deps/cares/src/lib/Makefile.inc index 02d8d58a6d5f3a..ef0a8aca98104a 100644 --- a/deps/cares/src/lib/Makefile.inc +++ b/deps/cares/src/lib/Makefile.inc @@ -1,10 +1,18 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT CSOURCES = ares__addrinfo2hostent.c \ - ares__addrinfo_localhost.c \ - ares__close_sockets.c \ + ares__addrinfo_localhost.c \ + ares__close_sockets.c \ ares__get_hostent.c \ + ares__htable.c \ + ares__htable_asvp.c \ + ares__htable_stvp.c \ + ares__llist.c \ ares__parse_into_addrinfo.c \ + ares__buf.c \ ares__readaddrinfo.c \ + ares__slist.c \ ares__sortaddrinfo.c \ ares__read_line.c \ ares__timeval.c \ @@ -26,7 +34,6 @@ CSOURCES = ares__addrinfo2hostent.c \ ares_getsock.c \ ares_init.c \ ares_library_init.c \ - ares_llist.c \ ares_mkquery.c \ ares_create_query.c \ ares_nowarn.c \ @@ -54,26 +61,29 @@ CSOURCES = ares__addrinfo2hostent.c \ ares_strsplit.c \ ares_timeout.c \ ares_version.c \ - ares_writev.c \ bitncmp.c \ inet_net_pton.c \ inet_ntop.c \ windows_port.c -HHEADERS = ares_android.h \ +HHEADERS = ares__htable.h \ + ares__htable_asvp.h \ + ares__htable_stvp.h \ + ares__llist.h \ + ares__buf.h \ + ares__slist.h \ + ares_android.h \ ares_data.h \ ares_getenv.h \ ares_inet_net_pton.h \ ares_iphlpapi.h \ ares_ipv6.h \ - ares_llist.h \ ares_nowarn.h \ ares_platform.h \ ares_private.h \ ares_strcasecmp.h \ ares_strdup.h \ ares_strsplit.h \ - ares_writev.h \ bitncmp.h \ ares_setup.h \ setup_once.h diff --git a/deps/cares/src/lib/ares__addrinfo2hostent.c b/deps/cares/src/lib/ares__addrinfo2hostent.c index efb145cd11bcaf..1798fc69fa2abc 100644 --- a/deps/cares/src/lib/ares__addrinfo2hostent.c +++ b/deps/cares/src/lib/ares__addrinfo2hostent.c @@ -1,19 +1,30 @@ -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright 2005 Dominick Meglio - * Copyright (C) 2019 by Andrew Selivanov - * Copyright (C) 2021 by Brad House +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2005 Dominick Meglio + * Copyright (c) 2019 Andrew Selivanov + * Copyright (c) 2021 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares__addrinfo_localhost.c b/deps/cares/src/lib/ares__addrinfo_localhost.c index 5bc1e0bff08cdb..a086d3f12fd340 100644 --- a/deps/cares/src/lib/ares__addrinfo_localhost.c +++ b/deps/cares/src/lib/ares__addrinfo_localhost.c @@ -1,16 +1,28 @@ -/* Copyright (C) 2021 +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) Massachusetts Institute of Technology + * Copyright (c) Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares__buf.c b/deps/cares/src/lib/ares__buf.c new file mode 100644 index 00000000000000..777a5300c9942d --- /dev/null +++ b/deps/cares/src/lib/ares__buf.c @@ -0,0 +1,476 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__buf.h" +#include +#ifdef HAVE_STDINT_H +# include +#endif + +struct ares__buf { + const unsigned char *data; /*!< pointer to start of data buffer */ + size_t data_len; /*!< total size of data in buffer */ + + unsigned char *alloc_buf; /*!< Pointer to allocated data buffer, + * not used for const buffers */ + size_t alloc_buf_len; /*!< Size of allocated data buffer */ + + size_t offset; /*!< Current working offset in buffer */ + size_t tag_offset; /*!< Tagged offset in buffer. Uses + * SIZE_MAX if not set. */ +}; + +ares__buf_t *ares__buf_create(void) +{ + ares__buf_t *buf = ares_malloc(sizeof(*buf)); + if (buf == NULL) + return NULL; + + memset(buf, 0, sizeof(*buf)); + buf->tag_offset = SIZE_MAX; + return buf; +} + + +ares__buf_t *ares__buf_create_const(const unsigned char *data, size_t data_len) +{ + ares__buf_t *buf; + + if (data == NULL || data_len == 0) + return NULL; + + buf = ares__buf_create(); + if (buf == NULL) + return NULL; + + buf->data = data; + buf->data_len = data_len; + + return buf; +} + + +void ares__buf_destroy(ares__buf_t *buf) +{ + if (buf == NULL) + return; + ares_free(buf->alloc_buf); + ares_free(buf); +} + + +static int ares__buf_is_const(const ares__buf_t *buf) +{ + if (buf == NULL) + return 0; + + if (buf->data != NULL && buf->alloc_buf == NULL) + return 1; + + return 0; +} + + +static void ares__buf_reclaim(ares__buf_t *buf) +{ + size_t prefix_size; + size_t data_size; + + if (buf == NULL) + return; + + if (ares__buf_is_const(buf)) + return; + + if (buf->tag_offset != SIZE_MAX) { + prefix_size = buf->tag_offset; + } else { + prefix_size = buf->offset; + } + + if (prefix_size == 0) + return; + + data_size = buf->data_len - prefix_size; + + memmove(buf->alloc_buf, buf->alloc_buf + prefix_size, data_size); + buf->data = buf->alloc_buf; + buf->data_len = data_size; + buf->offset -= prefix_size; + if (buf->tag_offset != SIZE_MAX) + buf->tag_offset -= prefix_size; + + return; +} + + +static int ares__buf_ensure_space(ares__buf_t *buf, size_t needed_size) +{ + size_t remaining_size; + size_t alloc_size; + unsigned char *ptr; + + if (buf == NULL) + return ARES_EFORMERR; + + if (ares__buf_is_const(buf)) + return ARES_EFORMERR; + + /* When calling ares__buf_finish_str() we end up adding a null terminator, + * so we want to ensure the size is always sufficient for this as we don't + * want an ARES_ENOMEM at that point */ + needed_size++; + + /* No need to do an expensive move operation, we have enough to just append */ + remaining_size = buf->alloc_buf_len - buf->data_len; + if (remaining_size >= needed_size) + return ARES_SUCCESS; + + /* See if just moving consumed data frees up enough space */ + ares__buf_reclaim(buf); + + remaining_size = buf->alloc_buf_len - buf->data_len; + if (remaining_size >= needed_size) + return ARES_SUCCESS; + + alloc_size = buf->alloc_buf_len; + + /* Not yet started */ + if (alloc_size == 0) + alloc_size = 16; /* Always shifts 1, so ends up being 32 minimum */ + + /* Increase allocation by powers of 2 */ + do { + alloc_size <<= 1; + remaining_size = alloc_size - buf->data_len; + } while (remaining_size < needed_size); + + ptr = ares_realloc(buf->alloc_buf, alloc_size); + if (ptr == NULL) + return ARES_ENOMEM; + + buf->alloc_buf = ptr; + buf->alloc_buf_len = alloc_size; + buf->data = ptr; + + return ARES_SUCCESS; +} + + +int ares__buf_append(ares__buf_t *buf, const unsigned char *data, + size_t data_len) +{ + int status; + + if (data == NULL || data_len == 0) + return ARES_EFORMERR; + + status = ares__buf_ensure_space(buf, data_len); + if (status != ARES_SUCCESS) + return status; + + memcpy(buf->alloc_buf + buf->data_len, data, data_len); + buf->data_len += data_len; + return ARES_SUCCESS; +} + + +unsigned char *ares__buf_append_start(ares__buf_t *buf, size_t *len) +{ + int status; + + if (len == NULL || *len == 0) + return NULL; + + status = ares__buf_ensure_space(buf, *len); + if (status != ARES_SUCCESS) + return NULL; + + *len = buf->alloc_buf_len - buf->data_len; + return buf->alloc_buf + buf->data_len; +} + + +void ares__buf_append_finish(ares__buf_t *buf, size_t len) +{ + if (buf == NULL) + return; + + buf->data_len += len; +} + + +unsigned char *ares__buf_finish_bin(ares__buf_t *buf, size_t *len) +{ + unsigned char *ptr = NULL; + if (buf == NULL || len == NULL || ares__buf_is_const(buf)) + return NULL; + + ares__buf_reclaim(buf); + ptr = buf->alloc_buf; + *len = buf->data_len; + ares_free(buf); + return ptr; +} + + +char *ares__buf_finish_str(ares__buf_t *buf, size_t *len) +{ + char *ptr; + size_t mylen; + + ptr = (char *)ares__buf_finish_bin(buf, &mylen); + if (ptr == NULL) + return NULL; + + if (len != NULL) + *len = mylen; + + /* NOTE: ensured via ares__buf_ensure_space() that there is always at least + * 1 extra byte available for this specific use-case */ + ptr[mylen] = 0; + + return ptr; +} + + +void ares__buf_tag(ares__buf_t *buf) +{ + if (buf == NULL) + return; + + buf->tag_offset = buf->offset; +} + + +int ares__buf_tag_rollback(ares__buf_t *buf) +{ + if (buf == NULL || buf->tag_offset == SIZE_MAX) + return ARES_EFORMERR; + + buf->offset = buf->tag_offset; + buf->tag_offset = SIZE_MAX; + return ARES_SUCCESS; +} + + +int ares__buf_tag_clear(ares__buf_t *buf) +{ + if (buf == NULL || buf->tag_offset == SIZE_MAX) + return ARES_EFORMERR; + + buf->tag_offset = SIZE_MAX; + return ARES_SUCCESS; +} + + +const unsigned char *ares__buf_tag_fetch(const ares__buf_t *buf, size_t *len) +{ + if (buf == NULL || buf->tag_offset == SIZE_MAX || len == NULL) + return NULL; + + *len = buf->offset - buf->tag_offset; + return buf->data + buf->tag_offset; +} + + +static const unsigned char *ares__buf_fetch(const ares__buf_t *buf, size_t *len) +{ + if (len != NULL) + *len = 0; + + if (buf == NULL || len == NULL || buf->data == NULL) + return NULL; + + *len = buf->data_len - buf->offset; + return buf->data + buf->offset; +} + + +int ares__buf_consume(ares__buf_t *buf, size_t len) +{ + size_t remaining_len; + + ares__buf_fetch(buf, &remaining_len); + + if (remaining_len < len) + return ARES_EBADRESP; + + buf->offset += len; + return ARES_SUCCESS; +} + + +int ares__buf_fetch_be16(ares__buf_t *buf, unsigned short *u16) +{ + size_t remaining_len; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + + if (buf == NULL || u16 == NULL || remaining_len < sizeof(*u16)) + return ARES_EBADRESP; + + *u16 = (unsigned short)((unsigned short)(ptr[0]) << 8 | (unsigned short)ptr[1]); + + return ares__buf_consume(buf, sizeof(*u16)); +} + + +int ares__buf_fetch_bytes(ares__buf_t *buf, unsigned char *bytes, + size_t len) +{ + size_t remaining_len; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + + if (buf == NULL || bytes == NULL || len == 0 || remaining_len < len) + return ARES_EBADRESP; + + memcpy(bytes, ptr, len); + return ares__buf_consume(buf, len); +} + + +size_t ares__buf_consume_whitespace(ares__buf_t *buf, int include_linefeed) +{ + size_t remaining_len = 0; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + size_t i; + + if (ptr == NULL) + return 0; + + for (i=0; i 0) + ares__buf_consume(buf, i); + return i; +} + +size_t ares__buf_consume_nonwhitespace(ares__buf_t *buf) +{ + size_t remaining_len = 0; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + size_t i; + + if (ptr == NULL) + return 0; + + for (i=0; i 0) + ares__buf_consume(buf, i); + return i; +} + +size_t ares__buf_consume_line(ares__buf_t *buf, int include_linefeed) +{ + size_t remaining_len = 0; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + size_t i; + + if (ptr == NULL) + return 0; + + for (i=0; i 0) + ares__buf_consume(buf, i); + return i; +} + + +int ares__buf_begins_with(ares__buf_t *buf, const unsigned char *data, + size_t data_len) +{ + size_t remaining_len = 0; + const unsigned char *ptr = ares__buf_fetch(buf, &remaining_len); + + if (ptr == NULL || data == NULL || data_len == 0) + return ARES_EFORMERR; + + if (data_len > remaining_len) + return ARES_EBADRESP; + + if (memcmp(ptr, data, data_len) == 0) + return ARES_EBADRESP; + + return ARES_SUCCESS; +} + + +size_t ares__buf_len(const ares__buf_t *buf) +{ + size_t len = 0; + ares__buf_fetch(buf, &len); + return len; +} + + +const unsigned char *ares__buf_peek(const ares__buf_t *buf, size_t *len) +{ + return ares__buf_fetch(buf, len); +} + diff --git a/deps/cares/src/lib/ares__buf.h b/deps/cares/src/lib/ares__buf.h new file mode 100644 index 00000000000000..d81fc26f426993 --- /dev/null +++ b/deps/cares/src/lib/ares__buf.h @@ -0,0 +1,252 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__BUF_H +#define __ARES__BUF_H + +/*! \addtogroup ares__buf Safe Data Builder and buffer + * + * This is a buffer building and parsing framework with a focus on security over + * performance. All data to be read from the buffer will perform explicit length + * validation and return a success/fail result. There are also various helpers + * for writing data to the buffer which dynamically grows. + * + * The helpers for this object are meant to be added as needed. If you can't + * find it, write it! + * + * @{ + */ +struct ares__buf; + +/*! Opaque data type for generic hash table implementation */ +typedef struct ares__buf ares__buf_t; + +/*! Create a new buffer object that dynamically allocates buffers for data. + * + * \return initialized buffer object or NULL if out of memory. + */ +ares__buf_t *ares__buf_create(void); + +/*! Create a new buffer object that uses a user-provided data pointer. The + * data provided will not be manipulated, and cannot be appended to. This + * is strictly used for parsing. + * + * \param[in] data Data to provide to buffer, must not be NULL. + * \param[in] data_len Size of buffer provided, must be > 0 + * + * \return initialized buffer object or NULL if out of memory or misuse. + */ +ares__buf_t *ares__buf_create_const(const unsigned char *data, size_t data_len); + +/*! Destroy an initialized buffer object. + * + * \param[in] buf Initialized buf object + */ +void ares__buf_destroy(ares__buf_t *buf); + +/*! Append to a dynamic buffer object + * + * \param[in] buf Initialized buffer object + * \param[in] data Data to copy to buffer object + * \param[in] data_len Length of data to copy to buffer object. + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_append(ares__buf_t *buf, const unsigned char *data, + size_t data_len); + + +/*! Start a dynamic append operation that returns a buffer suitable for + * writing. A desired minimum length is passed in, and the actual allocated + * buffer size is returned which may be greater than the requested size. + * No operation other than ares__buf_append_finish() is allowed on the + * buffer after this request. + * + * \param[in] buf Initialized buffer object + * \param[in,out] len Desired non-zero length passed in, actual buffer size + * returned. + * \return Pointer to writable buffer or NULL on failure (usage, out of mem) + */ +unsigned char *ares__buf_append_start(ares__buf_t *buf, size_t *len); + +/*! Finish a dynamic append operation. Called after + * ares__buf_append_start() once desired data is written. + * + * \param[in] buf Initialized buffer object. + * \param[in] len Length of data written. May be zero to terminate + * operation. Must not be greater than returned from + * ares__buf_append_start(). + */ +void ares__buf_append_finish(ares__buf_t *buf, size_t len); + +/*! Clean up ares__buf_t and return allocated pointer to unprocessed data. It + * is the responsibility of the caller to ares_free() the returned buffer. + * The passed in buf parameter is invalidated by this call. + * + * \param[in] buf Initialized buffer object. Can not be a "const" buffer. + * \param[out] len Length of data returned + * \return pointer to unprocessed data or NULL on error. + */ +unsigned char *ares__buf_finish_bin(ares__buf_t *buf, size_t *len); + +/*! Clean up ares__buf_t and return allocated pointer to unprocessed data and + * return it as a string (null terminated). It is the responsibility of the + * caller to ares_free() the returned buffer. The passed in buf parameter is + * invalidated by this call. + * + * This function in no way validates the data in this buffer is actually + * a string, that characters are printable, or that there aren't multiple + * NULL terminators. It is assumed that the caller will either validate that + * themselves or has built this buffer with only a valid character set. + * + * \param[in] buf Initialized buffer object. Can not be a "const" buffer. + * \param[out] len Optional. Length of data returned, or NULL if not needed. + * \return pointer to unprocessed data or NULL on error. + */ +char *ares__buf_finish_str(ares__buf_t *buf, size_t *len); + +/*! Tag a position to save in the buffer in case parsing needs to rollback, + * such as if insufficient data is available, but more data may be added in + * the future. Only a single tag can be set per buffer object. Setting a + * tag will override any pre-existing tag. + * + * \param[in] buf Initialized buffer object + */ +void ares__buf_tag(ares__buf_t *buf); + +/*! Rollback to a tagged position. Will automatically clear the tag. + * + * \param[in] buf Initialized buffer object + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_tag_rollback(ares__buf_t *buf); + +/*! Clear the tagged position without rolling back. You should do this any + * time a tag is no longer needed as future append operations can reclaim + * buffer space. + * + * \param[in] buf Initialized buffer object + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_tag_clear(ares__buf_t *buf); + +/*! Fetch the buffer and length of data starting from the tagged position up + * to the _current_ position. It will not unset the tagged position. The + * data may be invalidated by any future ares__buf_*() calls. + * + * \param[in] buf Initialized buffer object + * \param[out] len Length between tag and current offset in buffer + * \return NULL on failure (such as no tag), otherwise pointer to start of + * buffer + */ +const unsigned char *ares__buf_tag_fetch(const ares__buf_t *buf, size_t *len); + +/*! Consume the given number of bytes without reading them. + * + * \param[in] buf Initialized buffer object + * \param[in] len Length to consume + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_consume(ares__buf_t *buf, size_t len); + +/*! Fetch a 16bit Big Endian number from the buffer. + * + * \param[in] buf Initialized buffer object + * \param[out] u16 Buffer to hold 16bit integer + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_fetch_be16(ares__buf_t *buf, unsigned short *u16); + +/*! Fetch the requested number of bytes into the provided buffer + * + * \param[in] buf Initialized buffer object + * \param[out] bytes Buffer to hold data + * \param[in] len Requested number of bytes (must be > 0) + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_fetch_bytes(ares__buf_t *buf, unsigned char *bytes, + size_t len); + +/*! Consume whitespace characters (0x09, 0x0B, 0x0C, 0x0D, 0x20, and optionally + * 0x0A). + * + * \param[in] buf Initialized buffer object + * \param[in] include_linefeed 1 to include consuming 0x0A, 0 otherwise. + * \return number of whitespace characters consumed + */ +size_t ares__buf_consume_whitespace(ares__buf_t *buf, int include_linefeed); + + +/*! Consume any non-whitespace character (anything other than 0x09, 0x0B, 0x0C, + * 0x0D, 0x20, and 0x0A). + * + * \param[in] buf Initialized buffer object + * \return number of characters consumed + */ +size_t ares__buf_consume_nonwhitespace(ares__buf_t *buf); + +/*! Consume from the current position until the end of the line, and optionally + * the end of line character (0x0A) itself. + * + * \param[in] buf Initialized buffer object + * \param[in] include_linefeed 1 to include consuming 0x0A, 0 otherwise. + * \return number of characters consumed + */ +size_t ares__buf_consume_line(ares__buf_t *buf, int include_linefeed); + + +/*! Check the unprocessed buffer to see if it begins with the sequence of + * characters provided. + * + * \param[in] buf Initialized buffer object + * \param[in] data Bytes of data to compare. + * \param[in] data_len Length of data to compare. + * \return ARES_SUCCESS or one of the c-ares error codes + */ +int ares__buf_begins_with(ares__buf_t *buf, const unsigned char *data, + size_t data_len); + + +/*! Size of unprocessed remaining data length + * + * \param[in] buf Initialized buffer object + * \return length remaining + */ +size_t ares__buf_len(const ares__buf_t *buf); + +/*! Retrieve a pointer to the currently unprocessed data. Generally this isn't + * recommended to be used in practice. The returned pointer may be invalidated + * by any future ares__buf_*() calls. + * + * \param[in] buf Initialized buffer object + * \param[out] len Length of available data + * \return Pointer to buffer of unprocessed data + */ +const unsigned char *ares__buf_peek(const ares__buf_t *buf, + size_t *len); + + +/*! @} */ + +#endif /* __ARES__BUF_H */ diff --git a/deps/cares/src/lib/ares__close_sockets.c b/deps/cares/src/lib/ares__close_sockets.c index 0477174e3e1187..fe64e54037d0b3 100644 --- a/deps/cares/src/lib/ares__close_sockets.c +++ b/deps/cares/src/lib/ares__close_sockets.c @@ -1,61 +1,104 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" #include "ares.h" #include "ares_private.h" +#include + -void ares__close_sockets(ares_channel channel, struct server_state *server) +void ares__close_connection(struct server_connection *conn) { - struct send_request *sendreq; - - /* Free all pending output buffers. */ - while (server->qhead) - { - /* Advance server->qhead; pull out query as we go. */ - sendreq = server->qhead; - server->qhead = sendreq->next; - if (sendreq->data_storage != NULL) - ares_free(sendreq->data_storage); - ares_free(sendreq); - } - server->qtail = NULL; - - /* Reset any existing input buffer. */ - if (server->tcp_buffer) - ares_free(server->tcp_buffer); - server->tcp_buffer = NULL; - server->tcp_lenbuf_pos = 0; - - /* Reset brokenness */ - server->is_broken = 0; - - /* Close the TCP and UDP sockets. */ - if (server->tcp_socket != ARES_SOCKET_BAD) - { - SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0); - ares__close_socket(channel, server->tcp_socket); - server->tcp_socket = ARES_SOCKET_BAD; - server->tcp_connection_generation = ++channel->tcp_connection_generation; - } - if (server->udp_socket != ARES_SOCKET_BAD) - { - SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0); - ares__close_socket(channel, server->udp_socket); - server->udp_socket = ARES_SOCKET_BAD; - } + struct server_state *server = conn->server; + ares_channel channel = server->channel; + + if (conn->is_tcp) { + /* Reset any existing input and output buffer. */ + ares__buf_consume(server->tcp_parser, ares__buf_len(server->tcp_parser)); + ares__buf_consume(server->tcp_send, ares__buf_len(server->tcp_send)); + server->tcp_connection_generation = ++channel->tcp_connection_generation; + server->tcp_conn = NULL; + } + + + SOCK_STATE_CALLBACK(channel, conn->fd, 0, 0); + ares__close_socket(channel, conn->fd); + ares__llist_node_claim( + ares__htable_asvp_get_direct(channel->connnode_by_socket, conn->fd) + ); + ares__htable_asvp_remove(channel->connnode_by_socket, conn->fd); + +#ifndef NDEBUG + assert(ares__llist_len(conn->queries_to_conn) == 0); +#endif + ares__llist_destroy(conn->queries_to_conn); + ares_free(conn); +} + +void ares__close_sockets(struct server_state *server) +{ + ares__llist_node_t *node; + + while ((node = ares__llist_node_first(server->connections)) != NULL) { + struct server_connection *conn = ares__llist_node_val(node); + ares__close_connection(conn); + } +} + +void ares__check_cleanup_conn(ares_channel channel, ares_socket_t fd) +{ + ares__llist_node_t *node; + struct server_connection *conn; + int do_cleanup = 0; + + node = ares__htable_asvp_get_direct(channel->connnode_by_socket, fd); + if (node == NULL) { + return; + } + + conn = ares__llist_node_val(node); + + if (ares__llist_len(conn->queries_to_conn)) { + return; + } + + /* If we are configured not to stay open, close it out */ + if (!(channel->flags & ARES_FLAG_STAYOPEN)) { + do_cleanup = 1; + } + + /* If the udp connection hit its max queries, always close it */ + if (!conn->is_tcp && channel->udp_max_queries > 0 && + conn->total_queries >= (size_t)channel->udp_max_queries) { + do_cleanup = 1; + } + + if (do_cleanup) { + ares__close_connection(conn); + } } diff --git a/deps/cares/src/lib/ares__get_hostent.c b/deps/cares/src/lib/ares__get_hostent.c index 367f39037b168c..8ac2425ed46106 100644 --- a/deps/cares/src/lib/ares__get_hostent.c +++ b/deps/cares/src/lib/ares__get_hostent.c @@ -1,17 +1,28 @@ - -/* Copyright 1998, 2011 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998, 2011 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares__htable.c b/deps/cares/src/lib/ares__htable.c new file mode 100644 index 00000000000000..3ea65642d98c68 --- /dev/null +++ b/deps/cares/src/lib/ares__htable.c @@ -0,0 +1,374 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__llist.h" +#include "ares__htable.h" + +#define ARES__HTABLE_MAX_BUCKETS (1U<<24) +#define ARES__HTABLE_MIN_BUCKETS (1U<<4) +#define ARES__HTABLE_EXPAND_PERCENT 75 + +struct ares__htable { + ares__htable_hashfunc_t hash; + ares__htable_bucket_key_t bucket_key; + ares__htable_bucket_free_t bucket_free; + ares__htable_key_eq_t key_eq; + unsigned int seed; + unsigned int size; + size_t num_keys; + /* NOTE: if we converted buckets into ares__slist_t we could guarantee on + * hash collisions we would have O(log n) worst case insert and search + * performance. (We'd also need to make key_eq into a key_cmp to + * support sort). That said, risk with a random hash seed is near zero, + * and ares__slist_t is heavier weight so I think using ares__llist_t is + * is an overall win. */ + ares__llist_t **buckets; +}; + + +static unsigned int ares__htable_generate_seed(ares__htable_t *htable) +{ + unsigned int seed = 0; + + /* Mix stack address, heap address, and time to generate a random seed, it + * doesn't have to be super secure, just quick. Likelihood of a hash + * collision attack is very low with a small amount of effort */ + seed |= (unsigned int)((size_t)htable & 0xFFFFFFFF); + seed |= (unsigned int)((size_t)&seed & 0xFFFFFFFF); + seed |= (unsigned int)time(NULL) & 0xFFFFFFFF; + return seed; +} + +static void ares__htable_buckets_destroy(ares__llist_t **buckets, + unsigned int size, + unsigned char destroy_vals) +{ + unsigned int i; + + if (buckets == NULL) + return; + + for (i=0; ibuckets, htable->size, 1); + ares_free(htable); +} + + +ares__htable_t *ares__htable_create(ares__htable_hashfunc_t hash_func, + ares__htable_bucket_key_t bucket_key, + ares__htable_bucket_free_t bucket_free, + ares__htable_key_eq_t key_eq) +{ + ares__htable_t *htable = NULL; + + if (hash_func == NULL || bucket_key == NULL || bucket_free == NULL || + key_eq == NULL) { + goto fail; + } + + htable = ares_malloc(sizeof(*htable)); + if (htable == NULL) + goto fail; + + memset(htable, 0, sizeof(*htable)); + + htable->hash = hash_func; + htable->bucket_key = bucket_key; + htable->bucket_free = bucket_free; + htable->key_eq = key_eq; + htable->seed = ares__htable_generate_seed(htable); + htable->size = ARES__HTABLE_MIN_BUCKETS; + htable->buckets = ares_malloc(sizeof(*htable->buckets) * htable->size); + + if (htable->buckets == NULL) + goto fail; + + memset(htable->buckets, 0, sizeof(*htable->buckets) * htable->size); + + return htable; + +fail: + ares__htable_destroy(htable); + return NULL; +} + + +/*! Grabs the Hashtable index from the key and length. The h index is + * the hash of the function reduced to the size of the bucket list. + * We are doing "hash & (size - 1)" since we are guaranteeing a power of + * 2 for size. This is equivalent to "hash % size", but should be more + * efficient */ +#define HASH_IDX(h, key) h->hash(key, h->seed) & (h->size - 1) + +static ares__llist_node_t *ares__htable_find(ares__htable_t *htable, + unsigned int idx, + const void *key) +{ + ares__llist_node_t *node = NULL; + + for (node = ares__llist_node_first(htable->buckets[idx]); + node != NULL; + node = ares__llist_node_next(node)) { + + if (htable->key_eq(key, htable->bucket_key(ares__llist_node_val(node)))) + break; + } + + return node; +} + + +static unsigned int ares__htable_expand(ares__htable_t *htable) +{ + ares__llist_t **buckets = NULL; + unsigned int old_size = htable->size; + size_t i; + + /* Not a failure, just won't expand */ + if (old_size == ARES__HTABLE_MAX_BUCKETS) + return 1; + + htable->size <<= 1; + + /* We must do this in 2 passes as we want it to be non-destructive in case + * there is a memory allocation failure. So we will actually use more + * memory doing it this way, but at least we might be able to gracefully + * recover */ + buckets = ares_malloc(sizeof(*buckets) * htable->size); + if (buckets == NULL) + goto fail; + + memset(buckets, 0, sizeof(*buckets) * htable->size); + + for (i=0; ibuckets[i]); + node != NULL; + node = ares__llist_node_next(node)) { + + void *val = ares__llist_node_val(node); + size_t idx = HASH_IDX(htable, htable->bucket_key(val)); + + if (buckets[idx] == NULL) { + buckets[idx] = ares__llist_create(htable->bucket_free); + if (buckets[idx] == NULL) + goto fail; + } + + if (ares__llist_insert_first(buckets[idx], val) == NULL) { + goto fail; + } + + } + } + + /* Swap out buckets */ + ares__htable_buckets_destroy(htable->buckets, old_size, 0); + htable->buckets = buckets; + return 1; + +fail: + ares__htable_buckets_destroy(buckets, htable->size, 0); + htable->size = old_size; + + return 0; +} + + +unsigned int ares__htable_insert(ares__htable_t *htable, void *bucket) +{ + unsigned int idx = 0; + ares__llist_node_t *node = NULL; + const void *key = NULL; + + if (htable == NULL || bucket == NULL) + return 0; + + + key = htable->bucket_key(bucket); + idx = HASH_IDX(htable, key); + + /* See if we have a matching bucket already, if so, replace it */ + node = ares__htable_find(htable, idx, key); + if (node != NULL) { + ares__llist_node_replace(node, bucket); + return 1; + } + + /* Check to see if we should rehash because likelihood of collisions has + * increased beyond our threshold */ + if (htable->num_keys+1 > (htable->size * ARES__HTABLE_EXPAND_PERCENT) / 100) { + if (!ares__htable_expand(htable)) { + return 0; + } + /* If we expanded, need to calculate a new index */ + idx = HASH_IDX(htable, key); + } + + /* We lazily allocate the linked list */ + if (htable->buckets[idx] == NULL) { + htable->buckets[idx] = ares__llist_create(htable->bucket_free); + if (htable->buckets[idx] == NULL) + return 0; + } + + node = ares__llist_insert_first(htable->buckets[idx], bucket); + if (node == NULL) + return 0; + + htable->num_keys++; + + return 1; +} + + +void *ares__htable_get(ares__htable_t *htable, const void *key) +{ + unsigned int idx; + + if (htable == NULL || key == NULL) + return NULL; + + idx = HASH_IDX(htable, key); + + return ares__llist_node_val(ares__htable_find(htable, idx, key)); +} + + +unsigned int ares__htable_remove(ares__htable_t *htable, const void *key) +{ + ares__llist_node_t *node; + unsigned int idx; + + if (htable == NULL || key == NULL) + return 0; + + idx = HASH_IDX(htable, key); + node = ares__htable_find(htable, idx, key); + if (node == NULL) + return 0; + + htable->num_keys--; + ares__llist_node_destroy(node); + return 1; +} + +size_t ares__htable_num_keys(ares__htable_t *htable) +{ + if (htable == NULL) + return 0; + return htable->num_keys; +} + +unsigned int ares__htable_hash_FNV1a(const unsigned char *key, size_t key_len, + unsigned int seed) +{ + /* recommended seed is 2166136261U, but we don't want collisions */ + unsigned int hv = seed; + size_t i; + + for (i = 0; i < key_len; i++) { + hv ^= (unsigned int)key[i]; + /* hv *= 0x01000193 */ + hv += (hv<<1) + (hv<<4) + (hv<<7) + (hv<<8) + (hv<<24); + } + + return hv; +} + +/* tolower() is locale-specific. Use a lookup table fast conversion that only + * operates on ASCII */ +static const unsigned char ares__tolower_lookup[] = { + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, + 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, + 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, + 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, + 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, + 0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67, + 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, + 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, + 0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F, + 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, + 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, + 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, + 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, + 0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, + 0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F, + 0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7, + 0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF, + 0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7, + 0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF, + 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, + 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, + 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, + 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, + 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, + 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, + 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, + 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF +}; + + +/* Case insensitive version, meant for ASCII strings */ +unsigned int ares__htable_hash_FNV1a_casecmp(const unsigned char *key, size_t key_len, + unsigned int seed) +{ + /* recommended seed is 2166136261U, but we don't want collisions */ + unsigned int hv = seed; + size_t i; + + for (i = 0; i < key_len; i++) { + hv ^= (unsigned int)ares__tolower_lookup[key[i]]; + /* hv *= 0x01000193 */ + hv += (hv<<1) + (hv<<4) + (hv<<7) + (hv<<8) + (hv<<24); + } + + return hv; +} diff --git a/deps/cares/src/lib/ares__htable.h b/deps/cares/src/lib/ares__htable.h new file mode 100644 index 00000000000000..bbd36f779b4623 --- /dev/null +++ b/deps/cares/src/lib/ares__htable.h @@ -0,0 +1,164 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__HTABLE_H +#define __ARES__HTABLE_H + + +/*! \addtogroup ares__htable Base HashTable Data Structure + * + * This is a basic hashtable data structure that is meant to be wrapped + * by a higher level implementation. This data structure is designed to + * be callback-based in order to facilitate wrapping without needing to + * worry about any underlying complexities of the hashtable implementation. + * + * This implementation supports automatic growing by powers of 2 when reaching + * 75% capacity. A rehash will be performed on the expanded bucket list. + * + * Average time complexity: + * - Insert: O(1) + * - Search: O(1) + * - Delete: O(1) + * + * @{ + */ + +struct ares__htable_t; + +/*! Opaque data type for generic hash table implementation */ +typedef struct ares__htable ares__htable_t; + +/*! Callback for generating a hash of the key. + * + * \param[in] key pointer to key to be hashed + * \param[in] seed randomly generated seed used by hash function. + * value is specific to the hashtable instance + * but otherwise will not change between calls. + * \return hash + */ +typedef unsigned int (*ares__htable_hashfunc_t)(const void *key, + unsigned int seed); + +/*! Callback to free the bucket + * + * \param[in] bucket user provided bucket + */ +typedef void (*ares__htable_bucket_free_t)(void *bucket); + +/*! Callback to extract the key from the user-provided bucket + * + * \param[in] bucket user provided bucket + * \return pointer to key held in bucket + */ +typedef const void *(*ares__htable_bucket_key_t)(const void *bucket); + +/*! Callback to compare two keys for equality + * + * \param[in] key1 first key + * \param[in] key2 second key + * \return 1 if equal, 0 if not + */ +typedef unsigned int (*ares__htable_key_eq_t)(const void *key1, + const void *key2); + + +/*! Destroy the initialized hashtable + * + * \param[in] initialized hashtable + */ +void ares__htable_destroy(ares__htable_t *htable); + +/*! Create a new hashtable + * + * \param[in] hash_func Required. Callback for Hash function. + * \param[in] bucket_key Required. Callback to extract key from bucket. + * \param[in] bucket_free Required. Callback to free bucket. + * \param[in] key_eq Required. Callback to check for key equality. + * \return initialized hashtable. NULL if out of memory or misuse. + */ +ares__htable_t *ares__htable_create(ares__htable_hashfunc_t hash_func, + ares__htable_bucket_key_t bucket_key, + ares__htable_bucket_free_t bucket_free, + ares__htable_key_eq_t key_eq); + +/*! Count of keys from initialized hashtable + * + * \param[in] htable Initialized hashtable. + * \return count of keys + */ +size_t ares__htable_num_keys(ares__htable_t *htable); + +/*! Insert bucket into hashtable + * + * \param[in] htable Initialized hashtable. + * \param[in] bucket User-provided bucket to insert. Takes "ownership". Not + * allowed to be NULL. + * \return 1 on success, 0 if out of memory + */ +unsigned int ares__htable_insert(ares__htable_t *htable, void *bucket); + +/*! Retrieve bucket from hashtable based on key. + * + * \param[in] htable Initialized hashtable + * \param[in] key Pointer to key to use for comparison. + * \return matching bucket, or NULL if not found. + */ +void *ares__htable_get(ares__htable_t *htable, const void *key); + +/*! Remove bucket from hashtable by key + * + * \param[in] htable Initialized hashtable + * \param[in] key Pointer to key to use for comparison + * \return 1 if found, 0 if not found + */ +unsigned int ares__htable_remove(ares__htable_t *htable, const void *key); + +/*! FNV1a hash algorithm. Can be used as underlying primitive for building + * a wrapper hashtable. + * + * \param[in] key pointer to key + * \param[in] key_len Length of key + * \param[in] seed Seed for generating hash + * \return hash value + */ +unsigned int ares__htable_hash_FNV1a(const unsigned char *key, size_t key_len, + unsigned int seed); + +/*! FNV1a hash algorithm, but converts all characters to lowercase before + * hashing to make the hash case-insensitive. Can be used as underlying + * primitive for building a wrapper hashtable. Used on string-based keys. + * + * \param[in] key pointer to key + * \param[in] key_len Length of key + * \param[in] seed Seed for generating hash + * \return hash value + */ +unsigned int ares__htable_hash_FNV1a_casecmp(const unsigned char *key, + size_t key_len, + unsigned int seed); + +/*! @} */ + +#endif /* __ARES__HTABLE_H */ diff --git a/deps/cares/src/lib/ares__htable_asvp.c b/deps/cares/src/lib/ares__htable_asvp.c new file mode 100644 index 00000000000000..70265241592c28 --- /dev/null +++ b/deps/cares/src/lib/ares__htable_asvp.c @@ -0,0 +1,195 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__htable.h" +#include "ares__htable_asvp.h" + + +struct ares__htable_asvp { + ares__htable_asvp_val_free_t free_val; + ares__htable_t *hash; +}; + + +typedef struct { + ares_socket_t key; + void *val; + ares__htable_asvp_t *parent; +} ares__htable_asvp_bucket_t; + + +void ares__htable_asvp_destroy(ares__htable_asvp_t *htable) +{ + if (htable == NULL) + return; + + ares__htable_destroy(htable->hash); + ares_free(htable); +} + + +static unsigned int hash_func(const void *key, unsigned int seed) +{ + const ares_socket_t *arg = key; + return ares__htable_hash_FNV1a((const unsigned char *)arg, sizeof(*arg), + seed); +} + + +static const void *bucket_key(const void *bucket) +{ + const ares__htable_asvp_bucket_t *arg = bucket; + return &arg->key; +} + + +static void bucket_free(void *bucket) +{ + ares__htable_asvp_bucket_t *arg = bucket; + + if (arg->parent->free_val) + arg->parent->free_val(arg->val); + + ares_free(arg); +} + + +static unsigned int key_eq(const void *key1, const void *key2) +{ + const ares_socket_t *k1 = key1; + const ares_socket_t *k2 = key2; + + if (*k1 == *k2) + return 1; + + return 0; +} + + +ares__htable_asvp_t *ares__htable_asvp_create( + ares__htable_asvp_val_free_t val_free) +{ + ares__htable_asvp_t *htable = ares_malloc(sizeof(*htable)); + if (htable == NULL) + goto fail; + + htable->hash = ares__htable_create(hash_func, + bucket_key, + bucket_free, + key_eq); + if (htable->hash == NULL) + goto fail; + + htable->free_val = val_free; + + return htable; + +fail: + if (htable) { + ares__htable_destroy(htable->hash); + ares_free(htable); + } + return NULL; +} + + +unsigned int ares__htable_asvp_insert(ares__htable_asvp_t *htable, + ares_socket_t key, void *val) +{ + ares__htable_asvp_bucket_t *bucket = NULL; + + if (htable == NULL) + goto fail; + + bucket = ares_malloc(sizeof(*bucket)); + if (bucket == NULL) + goto fail; + + bucket->parent = htable; + bucket->key = key; + bucket->val = val; + + if (!ares__htable_insert(htable->hash, bucket)) + goto fail; + + return 1; + +fail: + if (bucket) { + ares_free(bucket); + } + return 0; +} + + +unsigned int ares__htable_asvp_get(ares__htable_asvp_t *htable, + ares_socket_t key, void **val) +{ + ares__htable_asvp_bucket_t *bucket = NULL; + + if (val) + *val = NULL; + + if (htable == NULL) + return 0; + + bucket = ares__htable_get(htable->hash, &key); + if (bucket == NULL) + return 0; + + if (val) + *val = bucket->val; + return 1; +} + + +void *ares__htable_asvp_get_direct(ares__htable_asvp_t *htable, + ares_socket_t key) +{ + void *val = NULL; + ares__htable_asvp_get(htable, key, &val); + return val; +} + + +unsigned int ares__htable_asvp_remove(ares__htable_asvp_t *htable, + ares_socket_t key) +{ + if (htable == NULL) + return 0; + + return ares__htable_remove(htable->hash, &key); +} + + +size_t ares__htable_asvp_num_keys(ares__htable_asvp_t *htable) +{ + if (htable == NULL) + return 0; + return ares__htable_num_keys(htable->hash); +} diff --git a/deps/cares/src/lib/ares__htable_asvp.h b/deps/cares/src/lib/ares__htable_asvp.h new file mode 100644 index 00000000000000..f53b2775e02e1e --- /dev/null +++ b/deps/cares/src/lib/ares__htable_asvp.h @@ -0,0 +1,120 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__HTABLE_ASVP_H +#define __ARES__HTABLE_ASVP_H + +/*! \addtogroup ares__htable_asvp HashTable with ares_socket_t Key and + * void pointer Value + * + * This data structure wraps the base ares__htable data structure in order to + * split the key and value data types as ares_socket_t and void pointer, + * respectively. + * + * Average time complexity: + * - Insert: O(1) + * - Search: O(1) + * - Delete: O(1) + * + * @{ + */ + +struct ares__htable_asvp; + +/*! Opaque data type for ares_socket_t key, void pointer hash table + * implementation */ +typedef struct ares__htable_asvp ares__htable_asvp_t; + +/*! Callback to free value stored in hashtable + * + * \param[in] val user-supplied value + */ +typedef void (*ares__htable_asvp_val_free_t)(void *val); + +/*! Destroy hashtable + * + * \param[in] htable Initialized hashtable + */ +void ares__htable_asvp_destroy(ares__htable_asvp_t *htable); + +/*! Create size_t key, void pointer value hash table + * + * \param[in] val_free Optional. Call back to free user-supplied value. If + * NULL it is expected the caller will clean up any user + * supplied values. + */ +ares__htable_asvp_t *ares__htable_asvp_create( + ares__htable_asvp_val_free_t val_free); + +/*! Insert key/value into hash table + * + * \param[in] htable Initialized hash table + * \param[in] key key to associate with value + * \param[in] val value to store (takes ownership). May be NULL. + * \return 1 on success, 0 on out of memory or misuse + */ +unsigned int ares__htable_asvp_insert(ares__htable_asvp_t *htable, + ares_socket_t key, void *val); + +/*! Retrieve value from hashtable based on key + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \param[out] val Optional. Pointer to store value. + * \return 1 on success, 0 on failure + */ +unsigned int ares__htable_asvp_get(ares__htable_asvp_t *htable, + ares_socket_t key, void **val); + +/*! Retrieve value from hashtable directly as return value. Caveat to this + * function over ares__htable_asvp_get() is that if a NULL value is stored + * you cannot determine if the key is not found or the value is NULL. + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \return value associated with key in hashtable or NULL + */ +void *ares__htable_asvp_get_direct(ares__htable_asvp_t *htable, + ares_socket_t key); + +/*! Remove a value from the hashtable by key + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \return 1 if found, 0 if not + */ +unsigned int ares__htable_asvp_remove(ares__htable_asvp_t *htable, + ares_socket_t key); + +/*! Retrieve the number of keys stored in the hash table + * + * \param[in] htable Initialized hash table + * \return count + */ +size_t ares__htable_asvp_num_keys(ares__htable_asvp_t *htable); + +/*! @} */ + +#endif /* __ARES__HTABLE_ASVP_H */ diff --git a/deps/cares/src/lib/ares__htable_stvp.c b/deps/cares/src/lib/ares__htable_stvp.c new file mode 100644 index 00000000000000..7a4cd40a763573 --- /dev/null +++ b/deps/cares/src/lib/ares__htable_stvp.c @@ -0,0 +1,193 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__htable.h" +#include "ares__htable_stvp.h" + + +struct ares__htable_stvp { + ares__htable_stvp_val_free_t free_val; + ares__htable_t *hash; +}; + + +typedef struct { + size_t key; + void *val; + ares__htable_stvp_t *parent; +} ares__htable_stvp_bucket_t; + + +void ares__htable_stvp_destroy(ares__htable_stvp_t *htable) +{ + if (htable == NULL) + return; + + ares__htable_destroy(htable->hash); + ares_free(htable); +} + + +static unsigned int hash_func(const void *key, unsigned int seed) +{ + const size_t *arg = key; + return ares__htable_hash_FNV1a((const unsigned char *)arg, sizeof(*arg), + seed); +} + + +static const void *bucket_key(const void *bucket) +{ + const ares__htable_stvp_bucket_t *arg = bucket; + return &arg->key; +} + + +static void bucket_free(void *bucket) +{ + ares__htable_stvp_bucket_t *arg = bucket; + + if (arg->parent->free_val) + arg->parent->free_val(arg->val); + + ares_free(arg); +} + + +static unsigned int key_eq(const void *key1, const void *key2) +{ + const size_t *k1 = key1; + const size_t *k2 = key2; + + if (*k1 == *k2) + return 1; + + return 0; +} + + +ares__htable_stvp_t *ares__htable_stvp_create( + ares__htable_stvp_val_free_t val_free) +{ + ares__htable_stvp_t *htable = ares_malloc(sizeof(*htable)); + if (htable == NULL) + goto fail; + + htable->hash = ares__htable_create(hash_func, + bucket_key, + bucket_free, + key_eq); + if (htable->hash == NULL) + goto fail; + + htable->free_val = val_free; + + return htable; + +fail: + if (htable) { + ares__htable_destroy(htable->hash); + ares_free(htable); + } + return NULL; +} + + +unsigned int ares__htable_stvp_insert(ares__htable_stvp_t *htable, size_t key, + void *val) +{ + ares__htable_stvp_bucket_t *bucket = NULL; + + if (htable == NULL) + goto fail; + + bucket = ares_malloc(sizeof(*bucket)); + if (bucket == NULL) + goto fail; + + bucket->parent = htable; + bucket->key = key; + bucket->val = val; + + if (!ares__htable_insert(htable->hash, bucket)) + goto fail; + + return 1; + +fail: + if (bucket) { + ares_free(bucket); + } + return 0; +} + + +unsigned int ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key, + void **val) +{ + ares__htable_stvp_bucket_t *bucket = NULL; + + if (val) + *val = NULL; + + if (htable == NULL) + return 0; + + bucket = ares__htable_get(htable->hash, &key); + if (bucket == NULL) + return 0; + + if (val) + *val = bucket->val; + return 1; +} + + +void *ares__htable_stvp_get_direct(ares__htable_stvp_t *htable, size_t key) +{ + void *val = NULL; + ares__htable_stvp_get(htable, key, &val); + return val; +} + + +unsigned int ares__htable_stvp_remove(ares__htable_stvp_t *htable, size_t key) +{ + if (htable == NULL) + return 0; + + return ares__htable_remove(htable->hash, &key); +} + + +size_t ares__htable_stvp_num_keys(ares__htable_stvp_t *htable) +{ + if (htable == NULL) + return 0; + return ares__htable_num_keys(htable->hash); +} diff --git a/deps/cares/src/lib/ares__htable_stvp.h b/deps/cares/src/lib/ares__htable_stvp.h new file mode 100644 index 00000000000000..11d9d5ed4cfc1f --- /dev/null +++ b/deps/cares/src/lib/ares__htable_stvp.h @@ -0,0 +1,115 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__HTABLE_STVP_H +#define __ARES__HTABLE_STVP_H + +/*! \addtogroup ares__htable_stvp HashTable with size_t Key and void pointer Value + * + * This data structure wraps the base ares__htable data structure in order to + * split the key and value data types as size_t and void pointer, respectively. + * + * Average time complexity: + * - Insert: O(1) + * - Search: O(1) + * - Delete: O(1) + * + * @{ + */ + +struct ares__htable_stvp; + +/*! Opaque data type for size_t key, void pointer hash table implementation */ +typedef struct ares__htable_stvp ares__htable_stvp_t; + +/*! Callback to free value stored in hashtable + * + * \param[in] val user-supplied value + */ +typedef void (*ares__htable_stvp_val_free_t)(void *val); + +/*! Destroy hashtable + * + * \param[in] htable Initialized hashtable + */ +void ares__htable_stvp_destroy(ares__htable_stvp_t *htable); + +/*! Create size_t key, void pointer value hash table + * + * \param[in] val_free Optional. Call back to free user-supplied value. If + * NULL it is expected the caller will clean up any user + * supplied values. + */ +ares__htable_stvp_t *ares__htable_stvp_create( + ares__htable_stvp_val_free_t val_free); + +/*! Insert key/value into hash table + * + * \param[in] htable Initialized hash table + * \param[in] key key to associate with value + * \param[in] val value to store (takes ownership). May be NULL. + * \return 1 on success, 0 on out of memory or misuse + */ +unsigned int ares__htable_stvp_insert(ares__htable_stvp_t *htable, size_t key, + void *val); + +/*! Retrieve value from hashtable based on key + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \param[out] val Optional. Pointer to store value. + * \return 1 on success, 0 on failure + */ +unsigned int ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key, + void **val); + +/*! Retrieve value from hashtable directly as return value. Caveat to this + * function over ares__htable_stvp_get() is that if a NULL value is stored + * you cannot determine if the key is not found or the value is NULL. + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \return value associated with key in hashtable or NULL + */ +void *ares__htable_stvp_get_direct(ares__htable_stvp_t *htable, size_t key); + +/*! Remove a value from the hashtable by key + * + * \param[in] htable Initialized hash table + * \param[in] key key to use to search + * \return 1 if found, 0 if not + */ +unsigned int ares__htable_stvp_remove(ares__htable_stvp_t *htable, size_t key); + +/*! Retrieve the number of keys stored in the hash table + * + * \param[in] htable Initialized hash table + * \return count + */ +size_t ares__htable_stvp_num_keys(ares__htable_stvp_t *htable); + +/*! @} */ + +#endif /* __ARES__HTABLE_STVP_H */ diff --git a/deps/cares/src/lib/ares__llist.c b/deps/cares/src/lib/ares__llist.c new file mode 100644 index 00000000000000..9ccda81a6ad6b8 --- /dev/null +++ b/deps/cares/src/lib/ares__llist.c @@ -0,0 +1,316 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__llist.h" + +struct ares__llist { + ares__llist_node_t *head; + ares__llist_node_t *tail; + ares__llist_destructor_t destruct; + size_t cnt; +}; + + +struct ares__llist_node { + void *data; + ares__llist_node_t *prev; + ares__llist_node_t *next; + ares__llist_t *parent; +}; + + +ares__llist_t *ares__llist_create(ares__llist_destructor_t destruct) +{ + ares__llist_t *list = ares_malloc(sizeof(*list)); + + if (list == NULL) + return NULL; + + memset(list, 0, sizeof(*list)); + + list->destruct = destruct; + + return list; +} + + +void ares__llist_replace_destructor(ares__llist_t *list, + ares__llist_destructor_t destruct) +{ + if (list == NULL) + return; + + list->destruct = destruct; +} + + +typedef enum { + ARES__LLIST_INSERT_HEAD, + ARES__LLIST_INSERT_TAIL, + ARES__LLIST_INSERT_BEFORE +} ares__llist_insert_type_t; + + +static ares__llist_node_t *ares__llist_insert_at(ares__llist_t *list, + ares__llist_insert_type_t type, + ares__llist_node_t *at, + void *val) +{ + ares__llist_node_t *node = NULL; + + if (list == NULL || val == NULL) + return NULL; + + node = ares_malloc(sizeof(*node)); + + if (node == NULL) + return NULL; + + memset(node, 0, sizeof(*node)); + node->data = val; + node->parent = list; + + if (type == ARES__LLIST_INSERT_BEFORE && (at == list->head || at == NULL)) { + type = ARES__LLIST_INSERT_HEAD; + } + + switch (type) { + case ARES__LLIST_INSERT_HEAD: + node->next = list->head; + node->prev = NULL; + if (list->head) + list->head->prev = node; + list->head = node; + break; + case ARES__LLIST_INSERT_TAIL: + node->next = NULL; + node->prev = list->tail; + if (list->tail) + list->tail->next = node; + list->tail = node; + break; + case ARES__LLIST_INSERT_BEFORE: + node->next = at; + node->prev = at->prev; + at->prev = node; + break; + } + if (list->tail == NULL) + list->tail = node; + if (list->head == NULL) + list->head = node; + + list->cnt++; + + return node; +} + + +ares__llist_node_t *ares__llist_insert_first(ares__llist_t *list, void *val) +{ + return ares__llist_insert_at(list, ARES__LLIST_INSERT_HEAD, NULL, val); +} + + +ares__llist_node_t *ares__llist_insert_last(ares__llist_t *list, void *val) +{ + return ares__llist_insert_at(list, ARES__LLIST_INSERT_TAIL, NULL, val); +} + + +ares__llist_node_t *ares__llist_insert_before(ares__llist_node_t *node, + void *val) +{ + if (node == NULL) + return NULL; + + return ares__llist_insert_at(node->parent, ARES__LLIST_INSERT_BEFORE, node, + val); +} + + +ares__llist_node_t *ares__llist_insert_after(ares__llist_node_t *node, + void *val) +{ + if (node == NULL) + return NULL; + + if (node->next == NULL) + return ares__llist_insert_last(node->parent, val); + + return ares__llist_insert_at(node->parent, ARES__LLIST_INSERT_BEFORE, + node->next, val); +} + + +ares__llist_node_t *ares__llist_node_first(ares__llist_t *list) +{ + if (list == NULL) + return NULL; + return list->head; +} + + +ares__llist_node_t *ares__llist_node_last(ares__llist_t *list) +{ + if (list == NULL) + return NULL; + return list->tail; +} + + +ares__llist_node_t *ares__llist_node_next(ares__llist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->next; +} + + +ares__llist_node_t *ares__llist_node_prev(ares__llist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->prev; +} + + +void *ares__llist_node_val(ares__llist_node_t *node) +{ + if (node == NULL) + return NULL; + + return node->data; +} + + +size_t ares__llist_len(ares__llist_t *list) +{ + if (list == NULL) + return 0; + return list->cnt; +} + + +ares__llist_t *ares__llist_node_parent(ares__llist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->parent; +} + + +void *ares__llist_first_val(ares__llist_t *list) +{ + return ares__llist_node_val(ares__llist_node_first(list)); +} + + +void *ares__llist_last_val(ares__llist_t *list) +{ + return ares__llist_node_val(ares__llist_node_last(list)); +} + + +void *ares__llist_node_claim(ares__llist_node_t *node) +{ + void *val; + ares__llist_t *list; + + if (node == NULL) + return NULL; + + list = node->parent; + val = node->data; + + if (node->prev) { + node->prev->next = node->next; + } + + if (node->next) { + node->next->prev = node->prev; + } + + if (node == list->head) { + list->head = node->next; + } + + if (node == list->tail) { + list->tail = node->prev; + } + ares_free(node); + + list->cnt--; + + return val; +} + + +void ares__llist_node_destroy(ares__llist_node_t *node) +{ + ares__llist_destructor_t destruct; + void *val; + + if (node == NULL) + return; + + destruct = node->parent->destruct; + + val = ares__llist_node_claim(node); + if (val != NULL && destruct != NULL) + destruct(val); +} + + +void ares__llist_node_replace(ares__llist_node_t *node, void *val) +{ + ares__llist_destructor_t destruct; + + if (node == NULL) + return; + + destruct = node->parent->destruct; + if (destruct != NULL) + destruct(node->data); + + node->data = val; +} + + +void ares__llist_destroy(ares__llist_t *list) +{ + ares__llist_node_t *node; + + if (list == NULL) + return; + + while ((node = ares__llist_node_first(list)) != NULL) { + ares__llist_node_destroy(node); + } + ares_free(list); +} diff --git a/deps/cares/src/lib/ares__llist.h b/deps/cares/src/lib/ares__llist.h new file mode 100644 index 00000000000000..950c7ac1d0c5eb --- /dev/null +++ b/deps/cares/src/lib/ares__llist.h @@ -0,0 +1,203 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__LLIST_H +#define __ARES__LLIST_H + +/*! \addtogroup ares__llist LinkedList Data Structure + * + * This is a doubly-linked list data structure. + * + * Average time complexity: + * - Insert: O(1) -- head or tail + * - Search: O(n) + * - Delete: O(1) -- delete assumes you hold a node pointer + * + * @{ + */ + +struct ares__llist; + +/*! Opaque data structure for linked list */ +typedef struct ares__llist ares__llist_t; + +struct ares__llist_node; + +/*! Opaque data structure for a node in a linked list */ +typedef struct ares__llist_node ares__llist_node_t; + +/*! Callback to free user-defined node data + * + * \param[in] data user supplied data + */ +typedef void (*ares__llist_destructor_t)(void *data); + +/*! Create a linked list object + * + * \param[in] destruct Optional. Destructor to call on all removed nodes + * \return linked list object or NULL on out of memory + */ +ares__llist_t *ares__llist_create(ares__llist_destructor_t destruct); + +/*! Replace destructor for linked list nodes. Typically this is used + * when wanting to disable the destructor by using NULL. + * + * \param[in] list Initialized linked list object + * \param[in] destruct replacement destructor, NULL is allowed + */ +void ares__llist_replace_destructor(ares__llist_t *list, + ares__llist_destructor_t destruct); + +/*! Insert value as the first node in the linked list + * + * \param[in] list Initialized linked list object + * \param[in] val user-supplied value. + * \return node object referencing place in list, or null if out of memory or + * misuse + */ +ares__llist_node_t *ares__llist_insert_first(ares__llist_t *list, void *val); + +/*! Insert value as the last node in the linked list + * + * \param[in] list Initialized linked list object + * \param[in] val user-supplied value. + * \return node object referencing place in list, or null if out of memory or + * misuse + */ +ares__llist_node_t *ares__llist_insert_last(ares__llist_t *list, void *val); + +/*! Insert value before specified node in the linked list + * + * \param[in] node node referenced to insert before + * \param[in] val user-supplied value. + * \return node object referencing place in list, or null if out of memory or + * misuse + */ +ares__llist_node_t *ares__llist_insert_before(ares__llist_node_t *node, + void *val); + +/*! Insert value after specified node in the linked list + * + * \param[in] node node referenced to insert after + * \param[in] val user-supplied value. + * \return node object referencing place in list, or null if out of memory or + * misuse + */ +ares__llist_node_t *ares__llist_insert_after(ares__llist_node_t *node, + void *val); + +/*! Obtain first node in list + * + * \param[in] list Initialized list object + * \return first node in list or NULL if none + */ +ares__llist_node_t *ares__llist_node_first(ares__llist_t *list); + +/*! Obtain last node in list + * + * \param[in] list Initialized list object + * \return last node in list or NULL if none + */ +ares__llist_node_t *ares__llist_node_last(ares__llist_t *list); + +/*! Obtain next node in respect to specified node + * + * \param[in] node Node referenced + * \return node or NULL if none + */ +ares__llist_node_t *ares__llist_node_next(ares__llist_node_t *node); + +/*! Obtain previous node in respect to specified node + * + * \param[in] node Node referenced + * \return node or NULL if none + */ +ares__llist_node_t *ares__llist_node_prev(ares__llist_node_t *node); + +/*! Obtain value from node + * + * \param[in] node Node referenced + * \return user provided value from node + */ +void *ares__llist_node_val(ares__llist_node_t *node); + +/*! Obtain the number of entries in the list + * + * \param[in] list Initialized list object + * \return count + */ +size_t ares__llist_len(ares__llist_t *list); + +/*! Obtain list object from referenced node + * + * \param[in] node Node referenced + * \return list object node belongs to + */ +ares__llist_t *ares__llist_node_parent(ares__llist_node_t *node); + +/*! Obtain the first user-supplied value in the list + * + * \param[in] list Initialized list object + * \return first user supplied value or NULL if none + */ +void *ares__llist_first_val(ares__llist_t *list); + +/*! Obtain the last user-supplied value in the list + * + * \param[in] list Initialized list object + * \return last user supplied value or NULL if none + */ +void *ares__llist_last_val(ares__llist_t *list); + +/*! Take ownership of user-supplied value in list without calling destructor. + * Will unchain entry from list. + * + * \param[in] node Node referenced + * \return user supplied value + */ +void *ares__llist_node_claim(ares__llist_node_t *node); + +/*! Replace user-supplied value for node + * + * \param[in] node Node referenced + * \param[in] val new user-supplied value + */ +void ares__llist_node_replace(ares__llist_node_t *node, void *val); + +/*! Destroy the node, removing it from the list and calling destructor. + * + * \param[in] node Node referenced + */ +void ares__llist_node_destroy(ares__llist_node_t *node); + +/*! Destroy the list object and all nodes in the list. + * + * \param[in] list Initialized list object + */ +void ares__llist_destroy(ares__llist_t *list); + +/*! @} */ + +#endif /* __ARES__LLIST_H */ diff --git a/deps/cares/src/lib/ares__parse_into_addrinfo.c b/deps/cares/src/lib/ares__parse_into_addrinfo.c index 4393f04b961270..73a17ea0ed697d 100644 --- a/deps/cares/src/lib/ares__parse_into_addrinfo.c +++ b/deps/cares/src/lib/ares__parse_into_addrinfo.c @@ -1,18 +1,28 @@ -/* Copyright (C) 2019 by Andrew Selivanov +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ - #include "ares_setup.h" #ifdef HAVE_NETINET_IN_H diff --git a/deps/cares/src/lib/ares__read_line.c b/deps/cares/src/lib/ares__read_line.c index c62ad2a2b41f2c..38beda6fb06120 100644 --- a/deps/cares/src/lib/ares__read_line.c +++ b/deps/cares/src/lib/ares__read_line.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares__readaddrinfo.c b/deps/cares/src/lib/ares__readaddrinfo.c index 2315df94111570..fe999467828dd0 100644 --- a/deps/cares/src/lib/ares__readaddrinfo.c +++ b/deps/cares/src/lib/ares__readaddrinfo.c @@ -1,16 +1,27 @@ -/* Copyright (C) 2019 by Andrew Selivanov +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -197,10 +208,6 @@ int ares__readaddrinfo(FILE *fp, } } - if (status != ARES_SUCCESS) - /* Ignore line if invalid address string for the requested family. */ - continue; - if (want_cname) { for (i = 0; i < alias_count; ++i) diff --git a/deps/cares/src/lib/ares__slist.c b/deps/cares/src/lib/ares__slist.c new file mode 100644 index 00000000000000..9974bc045a357d --- /dev/null +++ b/deps/cares/src/lib/ares__slist.c @@ -0,0 +1,501 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#include "ares_setup.h" +#include "ares.h" +#include "ares_private.h" +#include "ares__slist.h" + +/* SkipList implementation */ + +#define ARES__SLIST_START_LEVELS 4 + + +struct ares__slist { + ares_rand_state *rand_state; + unsigned char rand_data[8]; + size_t rand_bits; + + ares__slist_node_t **head; + size_t levels; + ares__slist_node_t *tail; + + ares__slist_cmp_t cmp; + ares__slist_destructor_t destruct; + size_t cnt; +}; + + +struct ares__slist_node { + void *data; + ares__slist_node_t **prev; + ares__slist_node_t **next; + size_t levels; + ares__slist_t *parent; +}; + + +ares__slist_t *ares__slist_create(ares_rand_state *rand_state, + ares__slist_cmp_t cmp, + ares__slist_destructor_t destruct) +{ + ares__slist_t *list; + + if (rand_state == NULL || cmp == NULL) + return NULL; + + list = ares_malloc(sizeof(*list)); + + if (list == NULL) + return NULL; + + memset(list, 0, sizeof(*list)); + + list->rand_state = rand_state; + list->cmp = cmp; + list->destruct = destruct; + + list->levels = ARES__SLIST_START_LEVELS; + list->head = ares_malloc(sizeof(*list->head) * list->levels); + if (list->head == NULL) { + ares_free(list); + return NULL; + } + + memset(list->head, 0, sizeof(*list->head) * list->levels); + + return list; +} + + +static unsigned int ares__slist_coin_flip(ares__slist_t *list) +{ + size_t total_bits = sizeof(list->rand_data) * 8; + size_t bit; + + /* Refill random data used for coin flips. We pull this in 8 byte chunks. + * ares__rand_bytes() has some built-in caching of its own so we don't need + * to be excessive in caching ourselves. Prefer to require less memory per + * skiplist */ + if (list->rand_bits == 0) { + ares__rand_bytes(list->rand_state, list->rand_data, + sizeof(list->rand_data)); + list->rand_bits = total_bits; + } + + bit = total_bits - list->rand_bits; + list->rand_bits--; + + return (list->rand_data[bit / 8] & (1 << (bit % 8)))?1:0; +} + + +void ares__slist_replace_destructor(ares__slist_t *list, + ares__slist_destructor_t destruct) +{ + if (list == NULL) + return; + + list->destruct = destruct; +} + +/* Uses public domain code snipets from http://graphics.stanford.edu/~seander/bithacks.html */ + +static size_t ares__round_up_pow2(size_t n) +{ + n--; + n |= n >> 1; + n |= n >> 2; + n |= n >> 4; + n |= n >> 8; + n |= n >> 16; + if (sizeof(size_t) > 4) + n |= n >> 32; + n++; + return n; +} + + +static size_t ares__log2(size_t n) +{ + static const unsigned char tab32[32] = { + 0, 1, 28, 2, 29, 14, 24, 3, + 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, + 26, 12, 18, 6, 11, 5, 10, 9 + }; + static const unsigned char tab64[64] = { + 63, 0, 58, 1, 59, 47, 53, 2, + 60, 39, 48, 27, 54, 33, 42, 3, + 61, 51, 37, 40, 49, 18, 28, 20, + 55, 30, 34, 11, 43, 14, 22, 4, + 62, 57, 46, 52, 38, 26, 32, 41, + 50, 36, 17, 19, 29, 10, 13, 21, + 56, 45, 25, 31, 35, 16, 9, 12, + 44, 24, 15, 8, 23, 7, 6, 5 + }; + + if (sizeof(size_t) == 4) + return tab32[(size_t)(n*0x077CB531) >> 27]; + + return tab64[((size_t)(n*0x07EDD5E59A4E28C2)) >> 58]; +} + + +static size_t ares__slist_max_level(ares__slist_t *list) +{ + size_t max_level = 0; + + if (list->cnt+1 <= (1 << ARES__SLIST_START_LEVELS)) { + max_level = ARES__SLIST_START_LEVELS; + } else { + max_level = ares__log2(ares__round_up_pow2(list->cnt+1)); + } + + if (list->levels > max_level) + max_level = list->levels; + + return max_level; +} + + +static size_t ares__slist_calc_level(ares__slist_t *list) +{ + size_t max_level = ares__slist_max_level(list); + size_t level; + + for (level=1; ares__slist_coin_flip(list) && level < max_level; level++) + ; + + return level; +} + + +ares__slist_node_t *ares__slist_insert(ares__slist_t *list, void *val) +{ + ares__slist_node_t *node = NULL; + ares__slist_node_t *left = NULL; + size_t i; + + if (list == NULL || val == NULL) + return NULL; + + node = ares_malloc(sizeof(*node)); + + if (node == NULL) + goto fail; + + memset(node, 0, sizeof(*node)); + node->data = val; + node->parent = list; + + /* Randomly determine the number of levels we want to use */ + node->levels = ares__slist_calc_level(list); + + /* Allocate array of next and prev nodes for linking each level */ + node->next = ares_malloc(sizeof(*node->next) * node->levels); + if (node->next == NULL) + goto fail; + + memset(node->next, 0, sizeof(*node->next) * node->levels); + + node->prev = ares_malloc(sizeof(*node->prev) * node->levels); + if (node->prev == NULL) + goto fail; + + memset(node->prev, 0, sizeof(*node->prev) * node->levels); + + /* If the number of levels is greater than we currently support in the slist, + * increase the count */ + if (list->levels < node->levels) { + size_t zero_len = sizeof(*list->head) * (node->levels - list->levels); + size_t offset = sizeof(*list->head) * list->levels; + void *ptr = ares_realloc(list->head, sizeof(*list->head) * node->levels); + if (ptr == NULL) + goto fail; + + memset((unsigned char *)ptr + offset, 0, zero_len); + list->head = ptr; + list->levels = node->levels; + } + + + /* Scan from highest level in the slist, even if we're not using that number + * of levels for this entry as this is what makes it O(log n) */ + for (i=list->levels; i-- > 0; ) { + /* set left if left is NULL and the current node value is greater than the + * head at this level */ + if (left == NULL && + list->head[i] != NULL && + list->cmp(node->data, list->head[i]->data) > 0 + ) { + left = list->head[i]; + } + + if (left != NULL) { + /* scan forward to find our insertion point */ + while (left->next[i] != NULL && + list->cmp(node->data, left->next[i]->data) > 0) { + left = left->next[i]; + } + } + + /* search only as we didn't randomly select this number of levels */ + if (i >= node->levels) + continue; + + if (left == NULL) { + /* head insertion */ + node->next[i] = list->head[i]; + node->prev[i] = NULL; + list->head[i] = node; + } else { + /* Chain */ + node->next[i] = left->next[i]; + node->prev[i] = left; + left->next[i] = node; + } + + if (node->next[i] != NULL) { + /* chain prev */ + node->next[i]->prev[i] = node; + } else { + if (i == 0) { + /* update tail */ + list->tail = node; + } + } + } + + list->cnt++; + + return node; + +fail: + if (node) { + ares_free(node->prev); + ares_free(node->next); + ares_free(node); + } + return NULL; +} + + +ares__slist_node_t *ares__slist_node_find(ares__slist_t *list, const void *val) +{ + size_t i; + ares__slist_node_t *node = NULL; + int rv = -1; + + if (list == NULL || val == NULL) + return NULL; + + /* Scan nodes starting at the highest level. For each level scan forward + * until the value is between the prior and next node, or if equal quit + * as we found a match */ + for (i=list->levels; i-- > 0; ) { + if (node == NULL) + node = list->head[i]; + + if (node == NULL) + continue; + + do { + rv = list->cmp(val, node->data); + + if (rv < 0) { + /* back off, our value is greater than current node reference */ + node = node->prev[i]; + } else if (rv > 0) { + /* move forward and try again. if it goes past, it will loop again and + * go to previous entry */ + node = node->next[i]; + } + + /* rv == 0 will terminate loop */ + + } while (node != NULL && rv > 0); + + /* Found a match, no need to continue */ + if (rv == 0) { + break; + } + } + + /* no match */ + if (rv != 0) { + return NULL; + } + + /* The list may have multiple entries that match. They're guaranteed to be + * in order, but we're not guaranteed to have selected the _first_ matching + * node. Lets scan backwards to find the first match */ + while (node->prev[0] != NULL && list->cmp(node->prev[0]->data, val) == 0) { + node = node->prev[0]; + } + + return node; +} + + +ares__slist_node_t *ares__slist_node_first(ares__slist_t *list) +{ + if (list == NULL) + return NULL; + + return list->head[0]; +} + + +ares__slist_node_t *ares__slist_node_last(ares__slist_t *list) +{ + if (list == NULL) + return NULL; + return list->tail; +} + + +ares__slist_node_t *ares__slist_node_next(ares__slist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->next[0]; +} + + +ares__slist_node_t *ares__slist_node_prev(ares__slist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->prev[0]; +} + + +void *ares__slist_node_val(ares__slist_node_t *node) +{ + if (node == NULL) + return NULL; + + return node->data; +} + + +size_t ares__slist_len(ares__slist_t *list) +{ + if (list == NULL) + return 0; + return list->cnt; +} + + +ares__slist_t *ares__slist_node_parent(ares__slist_node_t *node) +{ + if (node == NULL) + return NULL; + return node->parent; +} + + +void *ares__slist_first_val(ares__slist_t *list) +{ + return ares__slist_node_val(ares__slist_node_first(list)); +} + + +void *ares__slist_last_val(ares__slist_t *list) +{ + return ares__slist_node_val(ares__slist_node_last(list)); +} + + +void *ares__slist_node_claim(ares__slist_node_t *node) +{ + void *val; + ares__slist_t *list; + size_t i; + + if (node == NULL) + return NULL; + + list = node->parent; + val = node->data; + + /* relink each node at each level */ + for (i=node->levels; i-- > 0; ) { + if (node->next[i] == NULL) { + if (i == 0) { + list->tail = node->prev[0]; + } + } else { + node->next[i]->prev[i] = node->prev[i]; + } + + if (node->prev[i] == NULL) { + list->head[i] = node->next[i]; + } else { + node->prev[i]->next[i] = node->next[i]; + } + } + + ares_free(node->next); + ares_free(node->prev); + ares_free(node); + + list->cnt--; + + return val; +} + + +void ares__slist_node_destroy(ares__slist_node_t *node) +{ + ares__slist_destructor_t destruct; + void *val; + + if (node == NULL) + return; + + destruct = node->parent->destruct; + val = ares__slist_node_claim(node); + + if (val != NULL && destruct != NULL) + destruct(val); +} + + +void ares__slist_destroy(ares__slist_t *list) +{ + ares__slist_node_t *node; + + if (list == NULL) + return; + + while ((node = ares__slist_node_first(list)) != NULL) { + ares__slist_node_destroy(node); + } + + ares_free(list->head); + ares_free(list); +} diff --git a/deps/cares/src/lib/ares__slist.h b/deps/cares/src/lib/ares__slist.h new file mode 100644 index 00000000000000..2cce2171647b95 --- /dev/null +++ b/deps/cares/src/lib/ares__slist.h @@ -0,0 +1,197 @@ +/* MIT License + * + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ +#ifndef __ARES__SLIST_H +#define __ARES__SLIST_H + + +/*! \addtogroup ares__slist SkipList Data Structure + * + * This data structure is known as a Skip List, which in essence is a sorted + * linked list with multiple levels of linkage to gain some algorithmic + * advantages. The usage symantecs are almost identical to what you'd expect + * with a linked list. + * + * Average time complexity: + * - Insert: O(log n) + * - Search: O(log n) + * - Delete: O(1) -- delete assumes you hold a node pointer + * + * It should be noted, however, that "effort" involved with an insert or + * remove operation is higher than a normal linked list. For very small + * lists this may be less efficient, but for any list with a moderate number + * of entries this will prove much more efficient. + * + * This data structure is often compared with a Binary Search Tree in + * functionality and usage. + * + * @{ + */ +struct ares__slist; + +/*! SkipList Object, opaque */ +typedef struct ares__slist ares__slist_t; + +struct ares__slist_node; + +/*! SkipList Node Object, opaque */ +typedef struct ares__slist_node ares__slist_node_t; + +/*! SkipList Node Value destructor callback + * + * \param[in] data User-defined data to destroy + */ +typedef void (*ares__slist_destructor_t)(void *data); + +/*! SkipList comparison function + * + * \param[in] data1 First user-defined data object + * \param[in] data2 Second user-defined data object + * \return < 0 if data1 < data1, > 0 if data1 > data2, 0 if data1 == data2 + */ +typedef int (*ares__slist_cmp_t)(const void *data1, const void *data2); + +/*! Create SkipList + * + * \param[in] rand_state Initialized ares random state. + * \param[in] cmp SkipList comparison function + * \param[in] destruct SkipList Node Value Destructor. Optional, use NULL. + * \return Initialized SkipList Object or NULL on misuse or ENOMEM + */ +ares__slist_t *ares__slist_create(ares_rand_state *rand_state, + ares__slist_cmp_t cmp, + ares__slist_destructor_t destruct); + +/*! Replace SkipList Node Value Destructor + * + * \param[in] list Initialized SkipList Object + * \param[in] destruct Replacement destructor. May be NULL. + */ +void ares__slist_replace_destructor(ares__slist_t *list, + ares__slist_destructor_t destruct); + +/*! Insert Value into SkipList + * + * \param[in] list Initialized SkipList Object + * \param[in] val Node Value. Must not be NULL. Function takes ownership + * and will have destructor called. + * \return SkipList Node Object or NULL on misuse or ENOMEM + */ +ares__slist_node_t *ares__slist_insert(ares__slist_t *list, void *val); + +/*! Fetch first node in SkipList + * + * \param[in] list Initialized SkipList Object + * \return SkipList Node Object or NULL if none + */ +ares__slist_node_t *ares__slist_node_first(ares__slist_t *list); + +/*! Fetch last node in SkipList + * + * \param[in] list Initialized SkipList Object + * \return SkipList Node Object or NULL if none + */ +ares__slist_node_t *ares__slist_node_last(ares__slist_t *list); + +/*! Fetch next node in SkipList + * + * \param[in] node SkipList Node Object + * \return SkipList Node Object or NULL if none + */ +ares__slist_node_t *ares__slist_node_next(ares__slist_node_t *node); + +/*! Fetch previous node in SkipList + * + * \param[in] node SkipList Node Object + * \return SkipList Node Object or NULL if none + */ +ares__slist_node_t *ares__slist_node_prev(ares__slist_node_t *node); + +/*! Fetch SkipList Node Object by Value + * + * \param[in] list Initialized SkipList Object + * \param[in] val Object to use for comparison + * \return SkipList Node Object or NULL if not found + */ +ares__slist_node_t *ares__slist_node_find(ares__slist_t *list, const void *val); + + +/*! Fetch Node Value + * + * \param[in] node SkipList Node Object + * \return user defined node value + */ +void *ares__slist_node_val(ares__slist_node_t *node); + +/*! Fetch number of entries in SkipList Object + * + * \param[in] list Initialized SkipList Object + * \return number of entries + */ +size_t ares__slist_len(ares__slist_t *list); + +/*! Fetch SkipList Object from SkipList Node + * + * \param[in] node SkipList Node Object + * \return SkipList Object + */ +ares__slist_t *ares__slist_node_parent(ares__slist_node_t *node); + +/*! Fetch first Node Value in SkipList + * + * \param[in] list Initialized SkipList Object + * \return user defined node value or NULL if none + */ +void *ares__slist_first_val(ares__slist_t *list); + +/*! Fetch last Node Value in SkipList + * + * \param[in] list Initialized SkipList Object + * \return user defined node value or NULL if none + */ +void *ares__slist_last_val(ares__slist_t *list); + +/*! Take back ownership of Node Value in SkipList, remove from SkipList. + * + * \param[in] node SkipList Node Object + * \return user defined node value + */ +void *ares__slist_node_claim(ares__slist_node_t *node); + +/*! Remove Node from SkipList, calling destructor for Node Value. + * + * \param[in] node SkipList Node Object + */ +void ares__slist_node_destroy(ares__slist_node_t *node); + +/*! Destroy SkipList Object. If there are any nodes, they will be destroyed. + * + * \param[in] list Initialized SkipList Object + */ +void ares__slist_destroy(ares__slist_t *list); + +/*! @} */ + +#endif /* __ARES__SLIST_H */ diff --git a/deps/cares/src/lib/ares__sortaddrinfo.c b/deps/cares/src/lib/ares__sortaddrinfo.c index 3f050cad00fbdd..78d8891614aa66 100644 --- a/deps/cares/src/lib/ares__sortaddrinfo.c +++ b/deps/cares/src/lib/ares__sortaddrinfo.c @@ -6,7 +6,7 @@ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * Copyright (C) 2018 The Android Open Source Project - * Copyright (C) 2019 by Andrew Selivanov + * Copyright (C) 2019 Andrew Selivanov * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,6 +32,8 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. + * + * SPDX-License-Identifier: BSD-3-Clause */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares__timeval.c b/deps/cares/src/lib/ares__timeval.c index 94efb7db1e92ae..5716c53e5021ef 100644 --- a/deps/cares/src/lib/ares__timeval.c +++ b/deps/cares/src/lib/ares__timeval.c @@ -1,15 +1,27 @@ - -/* Copyright (C) 2008 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2008 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_android.c b/deps/cares/src/lib/ares_android.c index 5b00b8065c56b9..ec0a33872d6ff3 100644 --- a/deps/cares/src/lib/ares_android.c +++ b/deps/cares/src/lib/ares_android.c @@ -1,16 +1,27 @@ -/* Copyright (C) 2017 by John Schember +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) John Schember + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #if defined(ANDROID) || defined(__ANDROID__) diff --git a/deps/cares/src/lib/ares_android.h b/deps/cares/src/lib/ares_android.h index 93fb75f585057e..73b8d8ee83ce96 100644 --- a/deps/cares/src/lib/ares_android.h +++ b/deps/cares/src/lib/ares_android.h @@ -1,16 +1,27 @@ -/* Copyright (C) 2017 by John Schember +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) John Schember + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #ifndef __ARES_ANDROID_H__ diff --git a/deps/cares/src/lib/ares_cancel.c b/deps/cares/src/lib/ares_cancel.c index 465cc9e95ee16d..353624a111693f 100644 --- a/deps/cares/src/lib/ares_cancel.c +++ b/deps/cares/src/lib/ares_cancel.c @@ -1,15 +1,27 @@ - -/* Copyright (C) 2004 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -25,39 +37,51 @@ */ void ares_cancel(ares_channel channel) { - struct query *query; - struct list_node list_head_copy; - struct list_node* list_head; - struct list_node* list_node; - int i; - - if (!ares__is_list_empty(&(channel->all_queries))) + if (ares__llist_len(channel->all_queries) > 0) { + ares__llist_node_t *node = NULL; + ares__llist_node_t *next = NULL; + /* Swap list heads, so that only those queries which were present on entry * into this function are cancelled. New queries added by callbacks of * queries being cancelled will not be cancelled themselves. */ - list_head = &(channel->all_queries); - list_head_copy.prev = list_head->prev; - list_head_copy.next = list_head->next; - list_head_copy.prev->next = &list_head_copy; - list_head_copy.next->prev = &list_head_copy; - list_head->prev = list_head; - list_head->next = list_head; - for (list_node = list_head_copy.next; list_node != &list_head_copy; ) - { - query = list_node->data; - list_node = list_node->next; /* since we're deleting the query */ + ares__llist_t *list_copy = channel->all_queries; + channel->all_queries = ares__llist_create(NULL); + + /* Out of memory, this function doesn't return a result code though so we + * can't report to caller */ + if (channel->all_queries == NULL) { + channel->all_queries = list_copy; + return; + } + + node = ares__llist_node_first(list_copy); + while (node != NULL) { + struct query *query; + ares_socket_t fd = ARES_SOCKET_BAD; + + /* Cache next since this node is being deleted */ + next = ares__llist_node_next(node); + + query = ares__llist_node_claim(node); + query->node_all_queries = NULL; + + /* Cache file descriptor for connection so we can clean it up possibly */ + if (query->conn) + fd = query->conn->fd; + + /* NOTE: its possible this may enqueue new queries */ query->callback(query->arg, ARES_ECANCELLED, 0, NULL, 0); ares__free_query(query); + + /* See if the connection should be cleaned up */ + if (fd != ARES_SOCKET_BAD) + ares__check_cleanup_conn(channel, fd); + + node = next; } - } - if (!(channel->flags & ARES_FLAG_STAYOPEN) && ares__is_list_empty(&(channel->all_queries))) - { - if (channel->servers) - { - for (i = 0; i < channel->nservers; i++) - ares__close_sockets(channel, &channel->servers[i]); - } + + ares__llist_destroy(list_copy); } } diff --git a/deps/cares/src/lib/ares_config.h.cmake b/deps/cares/src/lib/ares_config.h.cmake index 798820a3a68997..a33eb9caa6a32f 100644 --- a/deps/cares/src/lib/ares_config.h.cmake +++ b/deps/cares/src/lib/ares_config.h.cmake @@ -1,3 +1,7 @@ +/* Copyright (C) The c-ares project and its contributors + * SPDX-License-Identifier: MIT + */ + /* Generated from ares_config.h.cmake */ /* Define if building universal (internal helper macro) */ @@ -123,6 +127,9 @@ /* Define to 1 if you have the getnameinfo function. */ #cmakedefine HAVE_GETNAMEINFO +/* Define to 1 if you have the getrandom function. */ +#cmakedefine HAVE_GETRANDOM + /* Define to 1 if you have the getservbyport_r function. */ #cmakedefine HAVE_GETSERVBYPORT_R diff --git a/deps/cares/src/lib/ares_config.h.in b/deps/cares/src/lib/ares_config.h.in index 3f6954a74db124..2e4a60e627c48e 100644 --- a/deps/cares/src/lib/ares_config.h.in +++ b/deps/cares/src/lib/ares_config.h.in @@ -129,6 +129,9 @@ /* Define to 1 if you have the getnameinfo function. */ #undef HAVE_GETNAMEINFO +/* Define to 1 if you have the getrandom function. */ +#undef HAVE_GETRANDOM + /* Define to 1 if you have the getservbyport_r function. */ #undef HAVE_GETSERVBYPORT_R @@ -304,6 +307,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_RANDOM_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H diff --git a/deps/cares/src/lib/ares_create_query.c b/deps/cares/src/lib/ares_create_query.c index e3d874b4509dc4..21c6be08bddabe 100644 --- a/deps/cares/src/lib/ares_create_query.c +++ b/deps/cares/src/lib/ares_create_query.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_data.c b/deps/cares/src/lib/ares_data.c index 69dff06689ae24..9e22339327b407 100644 --- a/deps/cares/src/lib/ares_data.c +++ b/deps/cares/src/lib/ares_data.c @@ -1,17 +1,27 @@ - -/* Copyright (C) 2009-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ diff --git a/deps/cares/src/lib/ares_data.h b/deps/cares/src/lib/ares_data.h index a682ad54cb939d..6965cf2a73dd92 100644 --- a/deps/cares/src/lib/ares_data.h +++ b/deps/cares/src/lib/ares_data.h @@ -1,21 +1,30 @@ -#ifndef __ARES_DATA_H -#define __ARES_DATA_H - - -/* Copyright (C) 2009-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef __ARES_DATA_H +#define __ARES_DATA_H typedef enum { ARES_DATATYPE_UNKNOWN = 1, /* unknown data type - introduced in 1.7.0 */ diff --git a/deps/cares/src/lib/ares_destroy.c b/deps/cares/src/lib/ares_destroy.c index 62c899f82e01dd..560082fd0cccc0 100644 --- a/deps/cares/src/lib/ares_destroy.c +++ b/deps/cares/src/lib/ares_destroy.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2011 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -44,45 +54,52 @@ void ares_destroy_options(struct ares_options *options) void ares_destroy(ares_channel channel) { - int i; - struct query *query; - struct list_node* list_head; - struct list_node* list_node; + int i; + ares__llist_node_t *node = NULL; if (!channel) return; - list_head = &(channel->all_queries); - for (list_node = list_head->next; list_node != list_head; ) - { - query = list_node->data; - list_node = list_node->next; /* since we're deleting the query */ - query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0); - ares__free_query(query); - } + /* Destroy all queries */ + node = ares__llist_node_first(channel->all_queries); + while (node != NULL) { + ares__llist_node_t *next = ares__llist_node_next(node); + struct query *query = ares__llist_node_claim(node); + + query->node_all_queries = NULL; + query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0); + ares__free_query(query); + + node = next; + } + + #ifndef NDEBUG /* Freeing the query should remove it from all the lists in which it sits, * so all query lists should be empty now. */ - assert(ares__is_list_empty(&(channel->all_queries))); - for (i = 0; i < ARES_QID_TABLE_SIZE; i++) - { - assert(ares__is_list_empty(&(channel->queries_by_qid[i]))); - } - for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++) - { - assert(ares__is_list_empty(&(channel->queries_by_timeout[i]))); - } + assert(ares__llist_len(channel->all_queries) == 0); + assert(ares__htable_stvp_num_keys(channel->queries_by_qid) == 0); + assert(ares__slist_len(channel->queries_by_timeout) == 0); #endif ares__destroy_servers_state(channel); +#ifndef NDEBUG + assert(ares__htable_asvp_num_keys(channel->connnode_by_socket) == 0); +#endif + if (channel->domains) { for (i = 0; i < channel->ndomains; i++) ares_free(channel->domains[i]); ares_free(channel->domains); } + ares__llist_destroy(channel->all_queries); + ares__slist_destroy(channel->queries_by_timeout); + ares__htable_stvp_destroy(channel->queries_by_qid); + ares__htable_asvp_destroy(channel->connnode_by_socket); + if(channel->sortlist) ares_free(channel->sortlist); @@ -111,8 +128,10 @@ void ares__destroy_servers_state(ares_channel channel) for (i = 0; i < channel->nservers; i++) { server = &channel->servers[i]; - ares__close_sockets(channel, server); - assert(ares__is_list_empty(&server->queries_to_server)); + ares__close_sockets(server); + ares__llist_destroy(server->connections); + ares__buf_destroy(server->tcp_parser); + ares__buf_destroy(server->tcp_send); } ares_free(channel->servers); channel->servers = NULL; diff --git a/deps/cares/src/lib/ares_expand_name.c b/deps/cares/src/lib/ares_expand_name.c index ad1c97f9377cd6..21c4e93d85bd9c 100644 --- a/deps/cares/src/lib/ares_expand_name.c +++ b/deps/cares/src/lib/ares_expand_name.c @@ -1,17 +1,28 @@ - -/* Copyright 1998, 2011 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998, 2011 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_expand_string.c b/deps/cares/src/lib/ares_expand_string.c index 03e392997520d3..2d6daa1497508b 100644 --- a/deps/cares/src/lib/ares_expand_string.c +++ b/deps/cares/src/lib/ares_expand_string.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_fds.c b/deps/cares/src/lib/ares_fds.c index f405fc047c7b4c..5ee149f9046cc9 100644 --- a/deps/cares/src/lib/ares_fds.c +++ b/deps/cares/src/lib/ares_fds.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -27,33 +38,32 @@ int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds) int i; /* Are there any active queries? */ - int active_queries = !ares__is_list_empty(&(channel->all_queries)); + size_t active_queries = ares__llist_len(channel->all_queries); nfds = 0; - for (i = 0; i < channel->nservers; i++) - { - server = &channel->servers[i]; + for (i = 0; i < channel->nservers; i++) { + ares__llist_node_t *node; + server = &channel->servers[i]; + + for (node = ares__llist_node_first(server->connections); + node != NULL; + node = ares__llist_node_next(node)) { + struct server_connection *conn = ares__llist_node_val(node); + /* We only need to register interest in UDP sockets if we have * outstanding queries. */ - if (active_queries && server->udp_socket != ARES_SOCKET_BAD) - { - FD_SET(server->udp_socket, read_fds); - if (server->udp_socket >= nfds) - nfds = server->udp_socket + 1; - } - /* We always register for TCP events, because we want to know - * when the other side closes the connection, so we don't waste - * time trying to use a broken connection. - */ - if (server->tcp_socket != ARES_SOCKET_BAD) - { - FD_SET(server->tcp_socket, read_fds); - if (server->qhead) - FD_SET(server->tcp_socket, write_fds); - if (server->tcp_socket >= nfds) - nfds = server->tcp_socket + 1; - } + if (active_queries || conn->is_tcp) { + FD_SET(conn->fd, read_fds); + if (conn->fd >= nfds) + nfds = conn->fd + 1; + } + + if (conn->is_tcp && ares__buf_len(server->tcp_send)) { + FD_SET(conn->fd, write_fds); + } } + } + return (int)nfds; } diff --git a/deps/cares/src/lib/ares_free_hostent.c b/deps/cares/src/lib/ares_free_hostent.c index ea28ff0e2c193c..0d20673163aac8 100644 --- a/deps/cares/src/lib/ares_free_hostent.c +++ b/deps/cares/src/lib/ares_free_hostent.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_free_string.c b/deps/cares/src/lib/ares_free_string.c index 024992e1c208ce..39773067bd2d85 100644 --- a/deps/cares/src/lib/ares_free_string.c +++ b/deps/cares/src/lib/ares_free_string.c @@ -1,17 +1,28 @@ - -/* Copyright 2000 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 2000 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_freeaddrinfo.c b/deps/cares/src/lib/ares_freeaddrinfo.c index ab871363d510b0..fe458735ee5e19 100644 --- a/deps/cares/src/lib/ares_freeaddrinfo.c +++ b/deps/cares/src/lib/ares_freeaddrinfo.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2019 by Andrew Selivanov +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_getaddrinfo.c b/deps/cares/src/lib/ares_getaddrinfo.c index cb494242f2807a..a3a2add1a2f2c1 100644 --- a/deps/cares/src/lib/ares_getaddrinfo.c +++ b/deps/cares/src/lib/ares_getaddrinfo.c @@ -1,19 +1,29 @@ - -/* Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology. - * Copyright (C) 2017 - 2018 by Christian Ammer - * Copyright (C) 2019 by Andrew Selivanov +/* MIT License + * + * Copyright (c) 1998, 2011, 2013 Massachusetts Institute of Technology + * Copyright (c) 2017 Christian Ammer + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -49,6 +59,7 @@ #include "ares.h" #include "bitncmp.h" #include "ares_private.h" +#include "ares_dns.h" #ifdef WATT32 #undef WIN32 @@ -70,9 +81,12 @@ struct host_query const char *remaining_lookups; /* types of lookup we need to perform ("fb" by default, file and dns respectively) */ struct ares_addrinfo *ai; /* store results between lookups */ + unsigned short qid_a; /* qid for A request */ + unsigned short qid_aaaa; /* qid for AAAA request */ int remaining; /* number of DNS answers waiting for */ int next_domain; /* next search domain to try */ int nodata_cnt; /* Track nodata responses to possibly override final result */ + }; static const struct ares_addrinfo_hints default_hints = { @@ -113,7 +127,7 @@ static int as_is_first(const struct host_query *hquery); static int as_is_only(const struct host_query* hquery); static int next_dns_lookup(struct host_query *hquery); -struct ares_addrinfo_cname *ares__malloc_addrinfo_cname() +static struct ares_addrinfo_cname *ares__malloc_addrinfo_cname(void) { struct ares_addrinfo_cname *cname = ares_malloc(sizeof(struct ares_addrinfo_cname)); if (!cname) @@ -160,7 +174,7 @@ void ares__addrinfo_cat_cnames(struct ares_addrinfo_cname **head, last->next = tail; } -struct ares_addrinfo *ares__malloc_addrinfo() +static struct ares_addrinfo *ares__malloc_addrinfo(void) { struct ares_addrinfo *ai = ares_malloc(sizeof(struct ares_addrinfo)); if (!ai) @@ -170,10 +184,10 @@ struct ares_addrinfo *ares__malloc_addrinfo() return ai; } -struct ares_addrinfo_node *ares__malloc_addrinfo_node() +static struct ares_addrinfo_node *ares__malloc_addrinfo_node(void) { struct ares_addrinfo_node *node = - ares_malloc(sizeof(struct ares_addrinfo_node)); + ares_malloc(sizeof(*node)); if (!node) return NULL; @@ -375,6 +389,7 @@ static void end_hquery(struct host_query *hquery, int status) { struct ares_addrinfo_node sentinel; struct ares_addrinfo_node *next; + if (status == ARES_SUCCESS) { if (!(hquery->hints.ai_flags & ARES_AI_NOSORT) && hquery->ai->nodes) @@ -563,59 +578,68 @@ static void next_lookup(struct host_query *hquery, int status) } } + +static void terminate_retries(struct host_query *hquery, unsigned short qid) +{ + unsigned short term_qid = (qid == hquery->qid_a)?hquery->qid_aaaa:hquery->qid_a; + ares_channel channel = hquery->channel; + struct query *query = NULL; + + /* No other outstanding queries, nothing to do */ + if (!hquery->remaining) + return; + + query = ares__htable_stvp_get_direct(channel->queries_by_qid, term_qid); + if (query == NULL) + return; + + query->no_retries = 1; +} + + static void host_callback(void *arg, int status, int timeouts, unsigned char *abuf, int alen) { struct host_query *hquery = (struct host_query*)arg; int addinfostatus = ARES_SUCCESS; + unsigned short qid = 0; hquery->timeouts += timeouts; hquery->remaining--; - if (status == ARES_SUCCESS) - { - addinfostatus = ares__parse_into_addrinfo(abuf, alen, 1, hquery->port, hquery->ai); + if (status == ARES_SUCCESS) { + addinfostatus = ares__parse_into_addrinfo(abuf, alen, 1, hquery->port, + hquery->ai); + if (addinfostatus == ARES_SUCCESS && alen >= HFIXEDSZ) { + qid = DNS_HEADER_QID(abuf); /* Converts to host byte order */ + terminate_retries(hquery, qid); } + } - if (!hquery->remaining) - { - if (addinfostatus != ARES_SUCCESS && addinfostatus != ARES_ENODATA) - { - /* error in parsing result e.g. no memory */ - if (addinfostatus == ARES_EBADRESP && hquery->ai->nodes) - { - /* We got a bad response from server, but at least one query - * ended with ARES_SUCCESS */ - end_hquery(hquery, ARES_SUCCESS); - } - else - { - end_hquery(hquery, addinfostatus); - } - } - else if (hquery->ai->nodes) - { - /* at least one query ended with ARES_SUCCESS */ - end_hquery(hquery, ARES_SUCCESS); - } - else if (status == ARES_ENOTFOUND || status == ARES_ENODATA || - addinfostatus == ARES_ENODATA) - { - if (status == ARES_ENODATA || addinfostatus == ARES_ENODATA) - hquery->nodata_cnt++; - next_lookup(hquery, hquery->nodata_cnt?ARES_ENODATA:status); - } - else if (status == ARES_EDESTRUCTION) - { - /* NOTE: Could also be ARES_EDESTRUCTION. We need to only call this - * once all queries (there can be multiple for getaddrinfo) are - * terminated. */ - end_hquery(hquery, status); - } - else - { - end_hquery(hquery, status); - } + if (!hquery->remaining) { + if (addinfostatus != ARES_SUCCESS && addinfostatus != ARES_ENODATA) { + /* error in parsing result e.g. no memory */ + if (addinfostatus == ARES_EBADRESP && hquery->ai->nodes) { + /* We got a bad response from server, but at least one query + * ended with ARES_SUCCESS */ + end_hquery(hquery, ARES_SUCCESS); + } else { + end_hquery(hquery, addinfostatus); + } + } else if (hquery->ai->nodes) { + /* at least one query ended with ARES_SUCCESS */ + end_hquery(hquery, ARES_SUCCESS); + } else if (status == ARES_EDESTRUCTION || status == ARES_ECANCELLED) { + /* must make sure we don't do next_lookup() on destroy or cancel */ + end_hquery(hquery, status); + } else if (status == ARES_ENOTFOUND || status == ARES_ENODATA || + addinfostatus == ARES_ENODATA) { + if (status == ARES_ENODATA || addinfostatus == ARES_ENODATA) + hquery->nodata_cnt++; + next_lookup(hquery, hquery->nodata_cnt?ARES_ENODATA:status); + } else { + end_hquery(hquery, status); } + } /* at this point we keep on waiting for the next query to finish */ } @@ -715,7 +739,7 @@ void ares_getaddrinfo(ares_channel channel, } /* Allocate and fill in the host query structure. */ - hquery = ares_malloc(sizeof(struct host_query)); + hquery = ares_malloc(sizeof(*hquery)); if (!hquery) { ares_free(alias_name); @@ -723,7 +747,7 @@ void ares_getaddrinfo(ares_channel channel, callback(arg, ARES_ENOMEM, 0, NULL); return; } - + memset(hquery, 0, sizeof(*hquery)); hquery->name = ares_strdup(name); ares_free(alias_name); if (!hquery->name) @@ -741,11 +765,8 @@ void ares_getaddrinfo(ares_channel channel, hquery->callback = callback; hquery->arg = arg; hquery->remaining_lookups = channel->lookups; - hquery->timeouts = 0; hquery->ai = ai; hquery->next_domain = -1; - hquery->remaining = 0; - hquery->nodata_cnt = 0; /* Start performing lookups according to channel->lookups. */ next_lookup(hquery, ARES_ECONNREFUSED /* initial error code */); @@ -790,20 +811,26 @@ static int next_dns_lookup(struct host_query *hquery) if (s) { + /* NOTE: hquery may be invalidated during the call to ares_query_qid(), + * so should not be referenced after this point */ switch (hquery->hints.ai_family) { case AF_INET: hquery->remaining += 1; - ares_query(hquery->channel, s, C_IN, T_A, host_callback, hquery); + ares_query_qid(hquery->channel, s, C_IN, T_A, host_callback, hquery, + &hquery->qid_a); break; case AF_INET6: hquery->remaining += 1; - ares_query(hquery->channel, s, C_IN, T_AAAA, host_callback, hquery); + ares_query_qid(hquery->channel, s, C_IN, T_AAAA, host_callback, + hquery, &hquery->qid_aaaa); break; case AF_UNSPEC: hquery->remaining += 2; - ares_query(hquery->channel, s, C_IN, T_A, host_callback, hquery); - ares_query(hquery->channel, s, C_IN, T_AAAA, host_callback, hquery); + ares_query_qid(hquery->channel, s, C_IN, T_A, host_callback, + hquery, &hquery->qid_a); + ares_query_qid(hquery->channel, s, C_IN, T_AAAA, host_callback, + hquery, &hquery->qid_aaaa); break; default: break; } @@ -825,7 +852,7 @@ static int as_is_first(const struct host_query* hquery) char* p; int ndots = 0; size_t nname = hquery->name?strlen(hquery->name):0; - for (p = hquery->name; *p; p++) + for (p = hquery->name; p && *p; p++) { if (*p == '.') { diff --git a/deps/cares/src/lib/ares_getenv.c b/deps/cares/src/lib/ares_getenv.c index f6e4dc29526218..08601a61e54076 100644 --- a/deps/cares/src/lib/ares_getenv.c +++ b/deps/cares/src/lib/ares_getenv.c @@ -1,18 +1,28 @@ - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_getenv.h b/deps/cares/src/lib/ares_getenv.h index 6da6cc5081a7be..d8bd3a2195b417 100644 --- a/deps/cares/src/lib/ares_getenv.h +++ b/deps/cares/src/lib/ares_getenv.h @@ -1,21 +1,31 @@ -#ifndef HEADER_CARES_GETENV_H -#define HEADER_CARES_GETENV_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_GETENV_H +#define HEADER_CARES_GETENV_H #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_gethostbyaddr.c b/deps/cares/src/lib/ares_gethostbyaddr.c index c62d230d96e315..628813057b53bc 100644 --- a/deps/cares/src/lib/ares_gethostbyaddr.c +++ b/deps/cares/src/lib/ares_gethostbyaddr.c @@ -1,18 +1,30 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ + #include "ares_setup.h" #ifdef HAVE_NETINET_IN_H @@ -53,7 +65,7 @@ static void addr_callback(void *arg, int status, int timeouts, static void end_aquery(struct addr_query *aquery, int status, struct hostent *host); static int file_lookup(struct ares_addr *addr, struct hostent **host); -static void ptr_rr_name(char *name, const struct ares_addr *addr); +static void ptr_rr_name(char *name, int name_size, const struct ares_addr *addr); void ares_gethostbyaddr(ares_channel channel, const void *addr, int addrlen, int family, ares_host_callback callback, void *arg) @@ -105,7 +117,7 @@ static void next_lookup(struct addr_query *aquery) switch (*p) { case 'b': - ptr_rr_name(name, &aquery->addr); + ptr_rr_name(name, sizeof(name), &aquery->addr); aquery->remaining_lookups = p + 1; ares_query(aquery->channel, name, C_IN, T_PTR, addr_callback, aquery); @@ -255,7 +267,7 @@ static int file_lookup(struct ares_addr *addr, struct hostent **host) return status; } -static void ptr_rr_name(char *name, const struct ares_addr *addr) +static void ptr_rr_name(char *name, int name_size, const struct ares_addr *addr) { if (addr->family == AF_INET) { @@ -264,20 +276,20 @@ static void ptr_rr_name(char *name, const struct ares_addr *addr) unsigned long a2 = (laddr >> 16UL) & 0xFFUL; unsigned long a3 = (laddr >> 8UL) & 0xFFUL; unsigned long a4 = laddr & 0xFFUL; - sprintf(name, "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1); + snprintf(name, name_size, "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1); } else { unsigned char *bytes = (unsigned char *)&addr->addrV6; /* There are too many arguments to do this in one line using * minimally C89-compliant compilers */ - sprintf(name, + snprintf(name, name_size, "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.", bytes[15]&0xf, bytes[15] >> 4, bytes[14]&0xf, bytes[14] >> 4, bytes[13]&0xf, bytes[13] >> 4, bytes[12]&0xf, bytes[12] >> 4, bytes[11]&0xf, bytes[11] >> 4, bytes[10]&0xf, bytes[10] >> 4, bytes[9]&0xf, bytes[9] >> 4, bytes[8]&0xf, bytes[8] >> 4); - sprintf(name+strlen(name), + snprintf(name+strlen(name), name_size-strlen(name), "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa", bytes[7]&0xf, bytes[7] >> 4, bytes[6]&0xf, bytes[6] >> 4, bytes[5]&0xf, bytes[5] >> 4, bytes[4]&0xf, bytes[4] >> 4, diff --git a/deps/cares/src/lib/ares_gethostbyname.c b/deps/cares/src/lib/ares_gethostbyname.c index 8c71cc67f3c75a..343bd7b73328ad 100644 --- a/deps/cares/src/lib/ares_gethostbyname.c +++ b/deps/cares/src/lib/ares_gethostbyname.c @@ -1,16 +1,28 @@ -/* Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology. +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 1998, 2011, 2013 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_getnameinfo.c b/deps/cares/src/lib/ares_getnameinfo.c index 966919ac23245e..0d97a318bfd082 100644 --- a/deps/cares/src/lib/ares_getnameinfo.c +++ b/deps/cares/src/lib/ares_getnameinfo.c @@ -1,17 +1,27 @@ - -/* Copyright 2005 by Dominick Meglio +/* MIT License + * + * Copyright (c) 2005, 2013 Dominick Meglio + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -327,7 +337,7 @@ static char *lookup_service(unsigned short port, int flags, else { /* get port as a string */ - sprintf(tmpbuf, "%u", (unsigned int)ntohs(port)); + snprintf(tmpbuf, sizeof(tmpbuf), "%u", (unsigned int)ntohs(port)); name = tmpbuf; } name_len = strlen(name); @@ -364,11 +374,11 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags, { if (is_scope_long) { - sprintf(&tmpbuf[1], "%lu", (unsigned long)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%lu", (unsigned long)addr6->sin6_scope_id); } else { - sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%u", (unsigned int)addr6->sin6_scope_id); } } else @@ -377,22 +387,22 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags, { if (is_scope_long) { - sprintf(&tmpbuf[1], "%lu", (unsigned long)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%lu", (unsigned long)addr6->sin6_scope_id); } else { - sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%u", (unsigned int)addr6->sin6_scope_id); } } } #else if (is_scope_long) { - sprintf(&tmpbuf[1], "%lu", (unsigned long)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%lu", (unsigned long)addr6->sin6_scope_id); } else { - sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id); + snprintf(&tmpbuf[1], sizeof(tmpbuf)-1, "%u", (unsigned int)addr6->sin6_scope_id); } (void) flags; #endif diff --git a/deps/cares/src/lib/ares_getsock.c b/deps/cares/src/lib/ares_getsock.c index 22d344679faa60..48c9076a668e3e 100644 --- a/deps/cares/src/lib/ares_getsock.c +++ b/deps/cares/src/lib/ares_getsock.c @@ -1,15 +1,27 @@ - -/* Copyright (C) 2005 - 2010, Daniel Stenberg +/* MIT License + * + * Copyright (c) 2005 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -28,39 +40,40 @@ int ares_getsock(ares_channel channel, unsigned int setbits = 0xffffffff; /* Are there any active queries? */ - int active_queries = !ares__is_list_empty(&(channel->all_queries)); + size_t active_queries = ares__llist_len(channel->all_queries); + + for (i = 0; i < channel->nservers; i++) { + ares__llist_node_t *node; + server = &channel->servers[i]; + + for (node = ares__llist_node_first(server->connections); + node != NULL; + node = ares__llist_node_next(node)) { + + struct server_connection *conn = ares__llist_node_val(node); + + if (sockindex >= numsocks || sockindex >= ARES_GETSOCK_MAXNUM) + break; - for (i = 0; i < channel->nservers; i++) - { - server = &channel->servers[i]; /* We only need to register interest in UDP sockets if we have * outstanding queries. */ - if (active_queries && server->udp_socket != ARES_SOCKET_BAD) - { - if(sockindex >= numsocks || sockindex >= ARES_GETSOCK_MAXNUM) - break; - socks[sockindex] = server->udp_socket; - bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex); - sockindex++; - } - /* We always register for TCP events, because we want to know - * when the other side closes the connection, so we don't waste - * time trying to use a broken connection. - */ - if (server->tcp_socket != ARES_SOCKET_BAD) - { - if(sockindex >= numsocks || sockindex >= ARES_GETSOCK_MAXNUM) - break; - socks[sockindex] = server->tcp_socket; - bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex); + if (!active_queries && !conn->is_tcp) + continue; + + socks[sockindex] = conn->fd; + + if (active_queries || conn->is_tcp) { + bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex); + } - if (server->qhead && active_queries) - /* then the tcp socket is also writable! */ - bitmap |= ARES_GETSOCK_WRITABLE(setbits, sockindex); + if (conn->is_tcp && ares__buf_len(server->tcp_send)) { + /* then the tcp socket is also writable! */ + bitmap |= ARES_GETSOCK_WRITABLE(setbits, sockindex); + } - sockindex++; - } + sockindex++; } + } return bitmap; } diff --git a/deps/cares/src/lib/ares_inet_net_pton.h b/deps/cares/src/lib/ares_inet_net_pton.h index 90da2cc6514607..179d36d972efb7 100644 --- a/deps/cares/src/lib/ares_inet_net_pton.h +++ b/deps/cares/src/lib/ares_inet_net_pton.h @@ -1,20 +1,30 @@ -#ifndef HEADER_CARES_INET_NET_PTON_H -#define HEADER_CARES_INET_NET_PTON_H - -/* Copyright (C) 2005-2013 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2005 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_INET_NET_PTON_H +#define HEADER_CARES_INET_NET_PTON_H #ifdef HAVE_INET_NET_PTON #define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z) diff --git a/deps/cares/src/lib/ares_init.c b/deps/cares/src/lib/ares_init.c index 0519f43e561a65..4a671e6ae4ea1f 100644 --- a/deps/cares/src/lib/ares_init.c +++ b/deps/cares/src/lib/ares_init.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2007-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2007 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -71,7 +81,7 @@ static int init_by_defaults(ares_channel channel); #ifndef WATT32 static int config_nameserver(struct server_state **servers, int *nservers, - char *str); + const char *str); #endif static int set_search(ares_channel channel, const char *str); static int set_options(ares_channel channel, const char *str); @@ -103,24 +113,40 @@ int ares_init(ares_channel *channelptr) return ares_init_options(channelptr, NULL, 0); } +static int ares_query_timeout_cmp_cb(const void *arg1, const void *arg2) +{ + const struct query *q1 = arg1; + const struct query *q2 = arg2; + + if (q1->timeout.tv_sec > q2->timeout.tv_sec) + return 1; + if (q1->timeout.tv_sec < q2->timeout.tv_sec) + return -1; + + if (q1->timeout.tv_usec > q2->timeout.tv_usec) + return 1; + if (q1->timeout.tv_usec < q2->timeout.tv_usec) + return -1; + + return 0; +} + int ares_init_options(ares_channel *channelptr, struct ares_options *options, int optmask) { ares_channel channel; - int i; int status = ARES_SUCCESS; - struct timeval now; if (ares_library_initialized() != ARES_SUCCESS) return ARES_ENOTINITIALIZED; /* LCOV_EXCL_LINE: n/a on non-WinSock */ - channel = ares_malloc(sizeof(struct ares_channeldata)); + channel = ares_malloc(sizeof(*channel)); if (!channel) { *channelptr = NULL; return ARES_ENOMEM; } - now = ares__tvnow(); + memset(channel, 0, sizeof(*channel)); /* Set everything to distinguished values so we know they haven't * been set yet. @@ -138,40 +164,43 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, channel->nservers = -1; channel->ndomains = -1; channel->nsort = -1; - channel->tcp_connection_generation = 0; - channel->lookups = NULL; - channel->domains = NULL; - channel->sortlist = NULL; - channel->servers = NULL; - channel->sock_state_cb = NULL; - channel->sock_state_cb_data = NULL; - channel->sock_create_cb = NULL; - channel->sock_create_cb_data = NULL; - channel->sock_config_cb = NULL; - channel->sock_config_cb_data = NULL; - channel->sock_funcs = NULL; - channel->sock_func_cb_data = NULL; - channel->resolvconf_path = NULL; - channel->hosts_path = NULL; - channel->rand_state = NULL; - - channel->last_server = 0; - channel->last_timeout_processed = (time_t)now.tv_sec; - - memset(&channel->local_dev_name, 0, sizeof(channel->local_dev_name)); - channel->local_ip4 = 0; - memset(&channel->local_ip6, 0, sizeof(channel->local_ip6)); + + /* Generate random key */ + + channel->rand_state = ares__init_rand_state(); + if (channel->rand_state == NULL) { + status = ARES_ENOMEM; + DEBUGF(fprintf(stderr, "Error: init_id_key failed: %s\n", + ares_strerror(status))); + goto done; + } /* Initialize our lists of queries */ - ares__init_list_head(&(channel->all_queries)); - for (i = 0; i < ARES_QID_TABLE_SIZE; i++) - { - ares__init_list_head(&(channel->queries_by_qid[i])); - } - for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++) - { - ares__init_list_head(&(channel->queries_by_timeout[i])); - } + channel->all_queries = ares__llist_create(NULL); + if (channel->all_queries == NULL) { + status = ARES_ENOMEM; + goto done; + } + + channel->queries_by_qid = ares__htable_stvp_create(NULL); + if (channel->queries_by_qid == NULL) { + status = ARES_ENOMEM; + goto done; + } + + channel->queries_by_timeout = ares__slist_create(channel->rand_state, + ares_query_timeout_cmp_cb, + NULL); + if (channel->queries_by_timeout == NULL) { + status = ARES_ENOMEM; + goto done; + } + + channel->connnode_by_socket = ares__htable_asvp_create(NULL); + if (channel->connnode_by_socket == NULL) { + status = ARES_ENOMEM; + goto done; + } /* Initialize configuration by each of the four sources, from highest * precedence to lowest. @@ -204,27 +233,22 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n", ares_strerror(status))); - /* Generate random key */ - - if (status == ARES_SUCCESS) { - channel->rand_state = ares__init_rand_state(); - if (channel->rand_state == NULL) { - status = ARES_ENOMEM; - } + /* Trim to one server if ARES_FLAG_PRIMARY is set. */ + if ((channel->flags & ARES_FLAG_PRIMARY) && channel->nservers > 1) + channel->nservers = 1; - if (status == ARES_SUCCESS) - channel->next_id = ares__generate_new_id(channel->rand_state); - else - DEBUGF(fprintf(stderr, "Error: init_id_key failed: %s\n", - ares_strerror(status))); + status = ares__init_servers_state(channel); + if (status != ARES_SUCCESS) { + goto done; } done: if (status != ARES_SUCCESS) { /* Something failed; clean up memory we may have allocated. */ - if (channel->servers) + if (channel->servers) { ares_free(channel->servers); + } if (channel->ndomains != -1) ares__strsplit_free(channel->domains, channel->ndomains); if (channel->sortlist) @@ -237,16 +261,15 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, ares_free(channel->hosts_path); if (channel->rand_state) ares__destroy_rand_state(channel->rand_state); + + ares__htable_stvp_destroy(channel->queries_by_qid); + ares__llist_destroy(channel->all_queries); + ares__slist_destroy(channel->queries_by_timeout); + ares__htable_asvp_destroy(channel->connnode_by_socket); ares_free(channel); return status; } - /* Trim to one server if ARES_FLAG_PRIMARY is set. */ - if ((channel->flags & ARES_FLAG_PRIMARY) && channel->nservers > 1) - channel->nservers = 1; - - ares__init_servers_state(channel); - *channelptr = channel; return ARES_SUCCESS; } @@ -377,6 +400,7 @@ int ares_save_options(ares_channel channel, struct ares_options *options, options->servers = ares_malloc(ipv4_nservers * sizeof(struct in_addr)); if (!options->servers) return ARES_ENOMEM; + for (i = j = 0; i < channel->nservers; i++) { if ((channel->servers[i].addr.family == AF_INET) && @@ -437,6 +461,11 @@ int ares_save_options(ares_channel channel, struct ares_options *options, return ARES_ENOMEM; } + if (channel->udp_max_queries > 0) { + (*optmask) |= ARES_OPT_UDP_MAX_QUERIES; + options->udp_max_queries = channel->udp_max_queries; + } + return ARES_SUCCESS; } @@ -487,9 +516,10 @@ static int init_by_options(ares_channel channel, if (options->nservers > 0) { channel->servers = - ares_malloc(options->nservers * sizeof(struct server_state)); + ares_malloc(options->nservers * sizeof(*channel->servers)); if (!channel->servers) return ARES_ENOMEM; + memset(channel->servers, 0, options->nservers * sizeof(*channel->servers)); for (i = 0; i < options->nservers; i++) { channel->servers[i].addr.family = AF_INET; @@ -561,6 +591,9 @@ static int init_by_options(ares_channel channel, return ARES_ENOMEM; } + if (optmask & ARES_OPT_UDP_MAX_QUERIES) + channel->udp_max_queries = options->udp_max_queries; + channel->optmask = optmask; return ARES_SUCCESS; @@ -683,7 +716,7 @@ typedef struct /* Room enough for the string form of any IPv4 or IPv6 address that * ares_inet_ntop() will create. Based on the existing c-ares practice. */ - char text[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; + char text[INET6_ADDRSTRLEN + 8]; /* [%s]:NNNNN */ } Address; /* Sort Address values \a left and \a right by metric, returning the usual @@ -880,6 +913,7 @@ static int get_DNS_Windows(char **outptr) ipaDNSAddr; ipaDNSAddr = ipaDNSAddr->Next) { + char ipaddr[INET6_ADDRSTRLEN] = ""; namesrvr.sa = ipaDNSAddr->Address.lpSockaddr; if (namesrvr.sa->sa_family == AF_INET) @@ -909,10 +943,14 @@ static int get_DNS_Windows(char **outptr) addresses[addressesIndex].orig_idx = addressesIndex; if (!ares_inet_ntop(AF_INET, &namesrvr.sa4->sin_addr, - addresses[addressesIndex].text, - sizeof(addresses[0].text))) { + ipaddr, sizeof(ipaddr))) { continue; } + snprintf(addresses[addressesIndex].text, + sizeof(addresses[addressesIndex].text), + "[%s]:%u", + ipaddr, + ntohs(namesrvr.sa4->sin_port)); ++addressesIndex; } else if (namesrvr.sa->sa_family == AF_INET6) @@ -942,10 +980,14 @@ static int get_DNS_Windows(char **outptr) addresses[addressesIndex].orig_idx = addressesIndex; if (!ares_inet_ntop(AF_INET6, &namesrvr.sa6->sin6_addr, - addresses[addressesIndex].text, - sizeof(addresses[0].text))) { + ipaddr, sizeof(ipaddr))) { continue; } + snprintf(addresses[addressesIndex].text, + sizeof(addresses[addressesIndex].text), + "[%s]:%u", + ipaddr, + ntohs(namesrvr.sa6->sin6_port)); ++addressesIndex; } else { @@ -1159,11 +1201,11 @@ static int init_by_resolv_conf(ares_channel channel) } nservers = count4 + count6; - servers = ares_malloc(nservers * sizeof(struct server_state)); + servers = ares_malloc(nservers * sizeof(*servers)); if (!servers) return ARES_ENOMEM; - memset(servers, 0, nservers * sizeof(struct server_state)); + memset(servers, 0, nservers * sizeof(*servers)); pserver = servers; for (int i = 0; i < count4; ++i, ++pserver) { @@ -1225,10 +1267,10 @@ static int init_by_resolv_conf(ares_channel channel) return ARES_SUCCESS; /* use localhost DNS server */ nservers = i; - servers = ares_malloc(sizeof(struct server_state)); + servers = ares_malloc(sizeof(*servers)); if (!servers) return ARES_ENOMEM; - memset(servers, 0, sizeof(struct server_state)); + memset(servers, 0, sizeof(*servers)); for (i = 0; def_nameservers[i]; i++) { @@ -1301,8 +1343,9 @@ static int init_by_resolv_conf(ares_channel channel) # endif /* HAVE___SYSTEM_PROPERTY_GET */ #elif defined(CARES_USE_LIBRESOLV) struct __res_state res; + int result; memset(&res, 0, sizeof(res)); - int result = res_ninit(&res); + result = res_ninit(&res); if (result == 0 && (res.options & RES_INIT)) { status = ARES_EOF; @@ -1311,18 +1354,28 @@ static int init_by_resolv_conf(ares_channel channel) int nscount = res_getservers(&res, addr, MAXNS); int i; for (i = 0; i < nscount; ++i) { - char str[INET6_ADDRSTRLEN]; + char ipaddr[INET6_ADDRSTRLEN] = ""; + char ipaddr_port[INET6_ADDRSTRLEN + 8]; /* [%s]:NNNNN */ + unsigned short port = 0; int config_status; sa_family_t family = addr[i].sin.sin_family; if (family == AF_INET) { - ares_inet_ntop(family, &addr[i].sin.sin_addr, str, sizeof(str)); + ares_inet_ntop(family, &addr[i].sin.sin_addr, ipaddr, sizeof(ipaddr)); + port = ntohs(addr[i].sin.sin_port); } else if (family == AF_INET6) { - ares_inet_ntop(family, &addr[i].sin6.sin6_addr, str, sizeof(str)); + ares_inet_ntop(family, &addr[i].sin6.sin6_addr, ipaddr, sizeof(ipaddr)); + port = ntohs(addr[i].sin6.sin6_port); } else { continue; } - config_status = config_nameserver(&servers, &nservers, str); + if (port) { + snprintf(ipaddr_port, sizeof(ipaddr_port), "[%s]:%u", ipaddr, port); + } else { + snprintf(ipaddr_port, sizeof(ipaddr_port), "%s", ipaddr); + } + + config_status = config_nameserver(&servers, &nservers, ipaddr_port); if (config_status != ARES_SUCCESS) { status = config_status; break; @@ -1578,11 +1631,12 @@ static int init_by_defaults(ares_channel channel) if (channel->nservers == -1) { /* If nobody specified servers, try a local named. */ - channel->servers = ares_malloc(sizeof(struct server_state)); + channel->servers = ares_malloc(sizeof(*channel->servers)); if (!channel->servers) { rc = ARES_ENOMEM; goto error; } + memset(channel->servers, 0, sizeof(*channel->servers)); channel->servers[0].addr.family = AF_INET; channel->servers[0].addr.addrV4.s_addr = htonl(INADDR_LOOPBACK); channel->servers[0].addr.udp_port = 0; @@ -1676,6 +1730,7 @@ static int init_by_defaults(ares_channel channel) ares_free(channel->servers); channel->servers = NULL; } + channel->nservers = 0; if(channel->domains && channel->domains[0]) ares_free(channel->domains[0]); @@ -1829,8 +1884,112 @@ static int ares_ipv6_server_blacklisted(const unsigned char ipaddr[16]) return 0; } -/* Add the IPv4 or IPv6 nameservers in str (separated by commas) to the - * servers list, updating servers and nservers as required. +/* Parse address and port in these formats, either ipv4 or ipv6 addresses + * are allowed: + * ipaddr + * [ipaddr] + * [ipaddr]:port + * + * If a port is not specified, will set port to 0. + * + * Will fail if an IPv6 nameserver as detected by + * ares_ipv6_server_blacklisted() + * + * Returns an error code on failure, else ARES_SUCCESS + */ +static int parse_dnsaddrport(const char *str, size_t len, + struct ares_addr *host, unsigned short *port) +{ + char ipaddr[INET6_ADDRSTRLEN] = ""; + char ipport[6] = ""; + size_t mylen; + const char *addr_start = NULL; + const char *addr_end = NULL; + const char *port_start = NULL; + const char *port_end = NULL; + + /* Must start with [, hex digit or : */ + if (len == 0 || (*str != '[' && !isxdigit(*str) && *str != ':')) { + return ARES_EBADSTR; + } + + /* If it starts with a bracket, must end with a bracket */ + if (*str == '[') { + const char *ptr; + addr_start = str+1; + ptr = memchr(addr_start, ']', len-1); + if (ptr == NULL) { + return ARES_EBADSTR; + } + addr_end = ptr-1; + + /* Try to pull off port */ + if ((size_t)(ptr - str) < len) { + ptr++; + if (*ptr != ':') { + return ARES_EBADSTR; + } + + /* Missing port number */ + if ((size_t)(ptr - str) == len) { + return ARES_EBADSTR; + } + + port_start = ptr+1; + port_end = str+(len-1); + } + } else { + addr_start = str; + addr_end = str+(len-1); + } + + mylen = (addr_end-addr_start)+1; + /* Larger than buffer with null term */ + if (mylen+1 > sizeof(ipaddr)) { + return ARES_EBADSTR; + } + + memset(ipaddr, 0, sizeof(ipaddr)); + memcpy(ipaddr, addr_start, mylen); + + if (port_start) { + mylen = (port_end-port_start)+1; + /* Larger than buffer with null term */ + if (mylen+1 > sizeof(ipport)) { + return ARES_EBADSTR; + } + memset(ipport, 0, sizeof(ipport)); + memcpy(ipport, port_start, mylen); + } else { + snprintf(ipport, sizeof(ipport), "0"); + } + + /* Convert textual address to binary format. */ + if (ares_inet_pton(AF_INET, ipaddr, &host->addrV4) == 1) { + host->family = AF_INET; + } else if (ares_inet_pton(AF_INET6, ipaddr, &host->addrV6) == 1 + /* Silently skip blacklisted IPv6 servers. */ + && !ares_ipv6_server_blacklisted( + (const unsigned char *)&host->addrV6)) { + host->family = AF_INET6; + } else { + return ARES_EBADSTR; + } + + *port = (unsigned short)atoi(ipport); + return ARES_SUCCESS; +} + +/* Add the IPv4 or IPv6 nameservers in str (separated by commas or spaces) to + * the servers list, updating servers and nservers as required. + * + * If a nameserver is encapsulated in [ ] it may optionally include a port + * suffix, e.g.: + * [127.0.0.1]:59591 + * + * The extended format is required to support OpenBSD's resolv.conf format: + * https://man.openbsd.org/OpenBSD-5.1/resolv.conf.5 + * As well as MacOS libresolv that may include a non-default port number. * * This will silently ignore blacklisted IPv6 nameservers as detected by * ares_ipv6_server_blacklisted(). @@ -1838,16 +1997,18 @@ static int ares_ipv6_server_blacklisted(const unsigned char ipaddr[16]) * Returns an error code on failure, else ARES_SUCCESS. */ static int config_nameserver(struct server_state **servers, int *nservers, - char *str) + const char *str) { struct ares_addr host; struct server_state *newserv; - char *p, *txtaddr; + const char *p, *txtaddr; /* On Windows, there may be more than one nameserver specified in the same * registry key, so we parse input as a space or comma seperated list. */ for (p = str; p;) { + unsigned short port; + /* Skip whitespace and commas. */ while (*p && (ISSPACE(*p) || (*p == ','))) p++; @@ -1861,34 +2022,24 @@ static int config_nameserver(struct server_state **servers, int *nservers, /* Advance past this address. */ while (*p && !ISSPACE(*p) && (*p != ',')) p++; - if (*p) - /* Null terminate this address. */ - *p++ = '\0'; - else - /* Reached end of input, done when this address is processed. */ - p = NULL; - /* Convert textual address to binary format. */ - if (ares_inet_pton(AF_INET, txtaddr, &host.addrV4) == 1) - host.family = AF_INET; - else if (ares_inet_pton(AF_INET6, txtaddr, &host.addrV6) == 1 - /* Silently skip blacklisted IPv6 servers. */ - && !ares_ipv6_server_blacklisted( - (const unsigned char *)&host.addrV6)) - host.family = AF_INET6; - else + if (parse_dnsaddrport(txtaddr, p-txtaddr, &host, &port) != + ARES_SUCCESS) { continue; + } /* Resize servers state array. */ newserv = ares_realloc(*servers, (*nservers + 1) * - sizeof(struct server_state)); + sizeof(*newserv)); if (!newserv) return ARES_ENOMEM; + memset(((unsigned char *)newserv) + ((*nservers) * sizeof(*newserv)), 0, sizeof(*newserv)); + /* Store address data. */ newserv[*nservers].addr.family = host.family; - newserv[*nservers].addr.udp_port = 0; - newserv[*nservers].addr.tcp_port = 0; + newserv[*nservers].addr.udp_port = htons(port); + newserv[*nservers].addr.tcp_port = htons(port); if (host.family == AF_INET) memcpy(&newserv[*nservers].addr.addrV4, &host.addrV4, sizeof(host.addrV4)); @@ -2242,25 +2393,36 @@ int ares_set_sortlist(ares_channel channel, const char *sortstr) return status; } -void ares__init_servers_state(ares_channel channel) +int ares__init_servers_state(ares_channel channel) { struct server_state *server; int i; - for (i = 0; i < channel->nservers; i++) - { - server = &channel->servers[i]; - server->udp_socket = ARES_SOCKET_BAD; - server->tcp_socket = ARES_SOCKET_BAD; - server->tcp_connection_generation = ++channel->tcp_connection_generation; - server->tcp_lenbuf_pos = 0; - server->tcp_buffer_pos = 0; - server->tcp_buffer = NULL; - server->tcp_length = 0; - server->qhead = NULL; - server->qtail = NULL; - ares__init_list_head(&server->queries_to_server); - server->channel = channel; - server->is_broken = 0; + for (i = 0; i < channel->nservers; i++) { + server = &channel->servers[i]; + + /* NOTE: Can't use memset() here because the server addresses have been + * filled in already */ + server->tcp_parser = ares__buf_create(); + if (server->tcp_parser == NULL) + return ARES_ENOMEM; + + server->tcp_send = ares__buf_create(); + if (server->tcp_send == NULL) { + ares__buf_destroy(server->tcp_parser); + return ARES_ENOMEM; } + + server->idx = i; + server->connections = ares__llist_create(NULL); + if (server->connections == NULL) { + ares__buf_destroy(server->tcp_parser); + ares__buf_destroy(server->tcp_send); + return ARES_ENOMEM; + } + + server->tcp_connection_generation = ++channel->tcp_connection_generation; + server->channel = channel; + } + return ARES_SUCCESS; } diff --git a/deps/cares/src/lib/ares_iphlpapi.h b/deps/cares/src/lib/ares_iphlpapi.h index 343aee3ffbdc9b..31db7d3829a9aa 100644 --- a/deps/cares/src/lib/ares_iphlpapi.h +++ b/deps/cares/src/lib/ares_iphlpapi.h @@ -1,21 +1,31 @@ -#ifndef HEADER_CARES_IPHLPAPI_H -#define HEADER_CARES_IPHLPAPI_H - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004 - 2011 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_IPHLPAPI_H +#define HEADER_CARES_IPHLPAPI_H #if defined(USE_WINSOCK) diff --git a/deps/cares/src/lib/ares_ipv6.h b/deps/cares/src/lib/ares_ipv6.h index fdbc21fe8f9fa5..edb305324bcac4 100644 --- a/deps/cares/src/lib/ares_ipv6.h +++ b/deps/cares/src/lib/ares_ipv6.h @@ -1,17 +1,27 @@ - -/* Copyright (C) 2005 by Dominick Meglio +/* MIT License + * + * Copyright (c) 2005 Dominick Meglio + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #ifndef ARES_IPV6_H diff --git a/deps/cares/src/lib/ares_library_init.c b/deps/cares/src/lib/ares_library_init.c index bbfcbeec178b22..1cf30f0b0fe55c 100644 --- a/deps/cares/src/lib/ares_library_init.c +++ b/deps/cares/src/lib/ares_library_init.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2009 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_llist.c b/deps/cares/src/lib/ares_llist.c deleted file mode 100644 index 36ca84c43e4665..00000000000000 --- a/deps/cares/src/lib/ares_llist.c +++ /dev/null @@ -1,63 +0,0 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - -#include "ares_setup.h" - -#include "ares.h" -#include "ares_private.h" - -/* Routines for managing doubly-linked circular linked lists with a - * dummy head. - */ - -/* Initialize a new head node */ -void ares__init_list_head(struct list_node* head) { - head->prev = head; - head->next = head; - head->data = NULL; -} - -/* Initialize a list node */ -void ares__init_list_node(struct list_node* node, void* d) { - node->prev = NULL; - node->next = NULL; - node->data = d; -} - -/* Returns true iff the given list is empty */ -int ares__is_list_empty(struct list_node* head) { - return ((head->next == head) && (head->prev == head)); -} - -/* Inserts new_node before old_node */ -void ares__insert_in_list(struct list_node* new_node, - struct list_node* old_node) { - new_node->next = old_node; - new_node->prev = old_node->prev; - old_node->prev->next = new_node; - old_node->prev = new_node; -} - -/* Removes the node from the list it's in, if any */ -void ares__remove_from_list(struct list_node* node) { - if (node->next != NULL) { - node->prev->next = node->next; - node->next->prev = node->prev; - node->prev = NULL; - node->next = NULL; - } -} - diff --git a/deps/cares/src/lib/ares_llist.h b/deps/cares/src/lib/ares_llist.h deleted file mode 100644 index 20f4d1ce4266c8..00000000000000 --- a/deps/cares/src/lib/ares_llist.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __ARES_LLIST_H -#define __ARES_LLIST_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - - -/* Node definition for circular, doubly-linked list */ -struct list_node { - struct list_node *prev; - struct list_node *next; - void* data; -}; - -void ares__init_list_head(struct list_node* head); - -void ares__init_list_node(struct list_node* node, void* d); - -int ares__is_list_empty(struct list_node* head); - -void ares__insert_in_list(struct list_node* new_node, - struct list_node* old_node); - -void ares__remove_from_list(struct list_node* node); - -#endif /* __ARES_LLIST_H */ diff --git a/deps/cares/src/lib/ares_mkquery.c b/deps/cares/src/lib/ares_mkquery.c index 5aea914bd0ed8f..da1898e74cd951 100644 --- a/deps/cares/src/lib/ares_mkquery.c +++ b/deps/cares/src/lib/ares_mkquery.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_nowarn.c b/deps/cares/src/lib/ares_nowarn.c index f63d9135ecc8d0..65cabb37b29a52 100644 --- a/deps/cares/src/lib/ares_nowarn.c +++ b/deps/cares/src/lib/ares_nowarn.c @@ -1,20 +1,29 @@ - -/* Copyright (C) 2010-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 2010 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ - #include "ares_setup.h" #ifdef HAVE_ASSERT_H diff --git a/deps/cares/src/lib/ares_nowarn.h b/deps/cares/src/lib/ares_nowarn.h index 505e62209810f0..3f5612dbb91ffa 100644 --- a/deps/cares/src/lib/ares_nowarn.h +++ b/deps/cares/src/lib/ares_nowarn.h @@ -1,21 +1,30 @@ -#ifndef HEADER_CARES_NOWARN_H -#define HEADER_CARES_NOWARN_H - - -/* Copyright (C) 2010-2012 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 2010 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_NOWARN_H +#define HEADER_CARES_NOWARN_H long aresx_uztosl(size_t uznum); int aresx_uztosi(size_t uznum); diff --git a/deps/cares/src/lib/ares_options.c b/deps/cares/src/lib/ares_options.c index de49de4625996f..78e16bb5d2f405 100644 --- a/deps/cares/src/lib/ares_options.c +++ b/deps/cares/src/lib/ares_options.c @@ -1,21 +1,30 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2008-2013 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2008 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ - #include "ares_setup.h" #ifdef HAVE_ARPA_INET_H @@ -153,7 +162,7 @@ int ares_set_servers(ares_channel channel, if (!channel) return ARES_ENODATA; - if (!ares__is_list_empty(&channel->all_queries)) + if (ares__llist_len(channel->all_queries) != 0) return ARES_ENOTIMP; ares__destroy_servers_state(channel); @@ -166,11 +175,12 @@ int ares_set_servers(ares_channel channel, if (num_srvrs > 0) { /* Allocate storage for servers state */ - channel->servers = ares_malloc(num_srvrs * sizeof(struct server_state)); + channel->servers = ares_malloc(num_srvrs * sizeof(*channel->servers)); if (!channel->servers) { return ARES_ENOMEM; } + memset(channel->servers, 0, num_srvrs * sizeof(*channel->servers)); channel->nservers = num_srvrs; /* Fill servers state address data */ for (i = 0, srvr = servers; srvr; i++, srvr = srvr->next) @@ -205,7 +215,7 @@ int ares_set_servers_ports(ares_channel channel, if (!channel) return ARES_ENODATA; - if (!ares__is_list_empty(&channel->all_queries)) + if (ares__llist_len(channel->all_queries) != 0) return ARES_ENOTIMP; ares__destroy_servers_state(channel); @@ -218,11 +228,12 @@ int ares_set_servers_ports(ares_channel channel, if (num_srvrs > 0) { /* Allocate storage for servers state */ - channel->servers = ares_malloc(num_srvrs * sizeof(struct server_state)); + channel->servers = ares_malloc(num_srvrs * sizeof(*channel->servers)); if (!channel->servers) { return ARES_ENOMEM; } + memset(channel->servers, 0, num_srvrs * sizeof(*channel->servers)); channel->nservers = num_srvrs; /* Fill servers state address data */ for (i = 0, srvr = servers; srvr; i++, srvr = srvr->next) diff --git a/deps/cares/src/lib/ares_parse_a_reply.c b/deps/cares/src/lib/ares_parse_a_reply.c index ee903c7510e122..b50dea3884cfbb 100644 --- a/deps/cares/src/lib/ares_parse_a_reply.c +++ b/deps/cares/src/lib/ares_parse_a_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2019 by Andrew Selivanov +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_aaaa_reply.c b/deps/cares/src/lib/ares_parse_aaaa_reply.c index 091065d31761a4..7a839829eb57c5 100644 --- a/deps/cares/src/lib/ares_parse_aaaa_reply.c +++ b/deps/cares/src/lib/ares_parse_aaaa_reply.c @@ -1,19 +1,29 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright 2005 Dominick Meglio - * Copyright (C) 2019 by Andrew Selivanov +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2005 Dominick Meglio + * Copyright (c) 2019 Andrew Selivanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_caa_reply.c b/deps/cares/src/lib/ares_parse_caa_reply.c index f6d4d3c61f4bbb..f4581c124a2049 100644 --- a/deps/cares/src/lib/ares_parse_caa_reply.c +++ b/deps/cares/src/lib/ares_parse_caa_reply.c @@ -1,5 +1,37 @@ +/* MIT License + * + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ -/* Copyright 2020 by +/* ============================================================================= + * NOTE: The below copyright is preserved from the original author. In + * October 2023, there were attempts made to contact the author in order + * gain approval for relicensing to the modern MIT license from the + * below 1989 variant, but all contact information for the author is + * no longer valid. + * + * Copyright (c) 2020 * * Permission to use, copy, modify, and distribute this * software and its documentation for any purpose and without @@ -12,6 +44,8 @@ * M.I.T. makes no representations about the suitability of * this software for any purpose. It is provided "as is" * without express or implied warranty. + * + * ============================================================================= */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_mx_reply.c b/deps/cares/src/lib/ares_parse_mx_reply.c index a497f558738c83..36dfe3d933b4ac 100644 --- a/deps/cares/src/lib/ares_parse_mx_reply.c +++ b/deps/cares/src/lib/ares_parse_mx_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2010 Jeremy Lal +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2010 Jeremy Lal + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_naptr_reply.c b/deps/cares/src/lib/ares_parse_naptr_reply.c index dd984c0fea8afc..81dfb02a2af9eb 100644 --- a/deps/cares/src/lib/ares_parse_naptr_reply.c +++ b/deps/cares/src/lib/ares_parse_naptr_reply.c @@ -1,20 +1,29 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2009 by Jakub Hrozek +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2009 Jakub Hrozek + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ - #include "ares_setup.h" #ifdef HAVE_NETINET_IN_H diff --git a/deps/cares/src/lib/ares_parse_ns_reply.c b/deps/cares/src/lib/ares_parse_ns_reply.c index 47d12994c9690d..28083d44c11202 100644 --- a/deps/cares/src/lib/ares_parse_ns_reply.c +++ b/deps/cares/src/lib/ares_parse_ns_reply.c @@ -1,16 +1,28 @@ -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ /* diff --git a/deps/cares/src/lib/ares_parse_ptr_reply.c b/deps/cares/src/lib/ares_parse_ptr_reply.c index ae78edf19515b2..0606d35f1e8254 100644 --- a/deps/cares/src/lib/ares_parse_ptr_reply.c +++ b/deps/cares/src/lib/ares_parse_ptr_reply.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_soa_reply.c b/deps/cares/src/lib/ares_parse_soa_reply.c index 3935eec9db4392..f37ba191733d44 100644 --- a/deps/cares/src/lib/ares_parse_soa_reply.c +++ b/deps/cares/src/lib/ares_parse_soa_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2012 Marko Kreen +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2012 Marko Kreen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_srv_reply.c b/deps/cares/src/lib/ares_parse_srv_reply.c index 0d8f4d2098bcc5..0125092c02d10c 100644 --- a/deps/cares/src/lib/ares_parse_srv_reply.c +++ b/deps/cares/src/lib/ares_parse_srv_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2009 by Jakub Hrozek +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2009 Jakub Hrozek + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_txt_reply.c b/deps/cares/src/lib/ares_parse_txt_reply.c index 6848a092bbc81a..083cbf4dff7b3b 100644 --- a/deps/cares/src/lib/ares_parse_txt_reply.c +++ b/deps/cares/src/lib/ares_parse_txt_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2009 by Jakub Hrozek +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2009 Jakub Hrozek + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_parse_uri_reply.c b/deps/cares/src/lib/ares_parse_uri_reply.c index d79b5c4d85ce5b..d5bb7ee45d7660 100644 --- a/deps/cares/src/lib/ares_parse_uri_reply.c +++ b/deps/cares/src/lib/ares_parse_uri_reply.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2009 by Jakub Hrozek +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2009 Jakub Hrozek + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -151,9 +161,6 @@ ares_parse_uri_reply (const unsigned char *abuf, int alen, uri_curr->uri = strncpy(uri_curr->uri, (const char *)vptr, rr_len-4); uri_curr->uri[rr_len-4]='\0'; uri_curr->ttl = rr_ttl; - - if (status != ARES_SUCCESS) - break; } /* Don't lose memory in the next iteration */ diff --git a/deps/cares/src/lib/ares_platform.c b/deps/cares/src/lib/ares_platform.c index 6c749dccb24a12..6fcbd49bb8f664 100644 --- a/deps/cares/src/lib/ares_platform.c +++ b/deps/cares/src/lib/ares_platform.c @@ -1,19 +1,28 @@ - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004 - 2011 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_platform.h b/deps/cares/src/lib/ares_platform.h index e6885ae546155a..44b2c036443c52 100644 --- a/deps/cares/src/lib/ares_platform.h +++ b/deps/cares/src/lib/ares_platform.h @@ -1,22 +1,31 @@ -#ifndef HEADER_CARES_PLATFORM_H -#define HEADER_CARES_PLATFORM_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004 - 2011 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2004 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_PLATFORM_H +#define HEADER_CARES_PLATFORM_H #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_private.h b/deps/cares/src/lib/ares_private.h index b6eab8a7d9bf2b..8bd12fc1182d79 100644 --- a/deps/cares/src/lib/ares_private.h +++ b/deps/cares/src/lib/ares_private.h @@ -1,22 +1,31 @@ -#ifndef __ARES_PRIVATE_H -#define __ARES_PRIVATE_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2010 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2010 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ +#ifndef __ARES_PRIVATE_H +#define __ARES_PRIVATE_H /* * Define WIN32 when build target is Win32 API @@ -33,12 +42,10 @@ #ifdef WATT32 #include #include -#define writev(s,v,c) writev_s(s,v,c) -#define HAVE_WRITEV 1 #endif -#define DEFAULT_TIMEOUT 5000 /* milliseconds */ -#define DEFAULT_TRIES 4 +#define DEFAULT_TIMEOUT 2000 /* milliseconds */ +#define DEFAULT_TRIES 3 #ifndef INADDR_NONE #define INADDR_NONE 0xffffffff #endif @@ -102,7 +109,15 @@ W32_FUNC const char *_w32_GetHostsFile (void); #endif #include "ares_ipv6.h" -#include "ares_llist.h" + +struct ares_rand_state; +typedef struct ares_rand_state ares_rand_state; + +#include "ares__llist.h" +#include "ares__slist.h" +#include "ares__htable_stvp.h" +#include "ares__htable_asvp.h" +#include "ares__buf.h" #ifndef HAVE_GETENV # include "ares_getenv.h" @@ -122,11 +137,6 @@ W32_FUNC const char *_w32_GetHostsFile (void); # define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n) #endif -#ifndef HAVE_WRITEV -# include "ares_writev.h" -# define writev(s,ptr,cnt) ares_writev(s,ptr,cnt) -#endif - /********* EDNS defines section ******/ #define EDNSPACKETSZ 1280 /* Reasonable UDP payload size, as suggested in RFC2671 */ @@ -148,37 +158,31 @@ struct ares_addr { struct query; -struct send_request { - /* Remaining data to send */ - const unsigned char *data; - size_t len; +struct server_state; - /* The query for which we're sending this data */ - struct query* owner_query; - /* The buffer we're using, if we have our own copy of the packet */ - unsigned char *data_storage; - - /* Next request in queue */ - struct send_request *next; +struct server_connection { + struct server_state *server; + ares_socket_t fd; + int is_tcp; + /* total number of queries run on this connection since it was established */ + size_t total_queries; + /* list of outstanding queries to this connection */ + ares__llist_t *queries_to_conn; }; struct server_state { + size_t idx; /* index for server in ares_channel */ struct ares_addr addr; - ares_socket_t udp_socket; - ares_socket_t tcp_socket; - /* Mini-buffer for reading the length word */ - unsigned char tcp_lenbuf[2]; - int tcp_lenbuf_pos; - int tcp_length; + ares__llist_t *connections; + struct server_connection *tcp_conn; - /* Buffer for reading actual TCP data */ - unsigned char *tcp_buffer; - int tcp_buffer_pos; + /* TCP buffer since multiple responses can come back in one read, or partial + * in a read */ + ares__buf_t *tcp_parser; /* TCP output queue */ - struct send_request *qhead; - struct send_request *qtail; + ares__buf_t *tcp_send; /* Which incarnation of this connection is this? We don't want to * retransmit requests into the very same socket, but if the server @@ -186,34 +190,27 @@ struct server_state { * re-send. */ int tcp_connection_generation; - /* Circular, doubly-linked list of outstanding queries to this server */ - struct list_node queries_to_server; - /* Link back to owning channel */ ares_channel channel; - - /* Is this server broken? We mark connections as broken when a - * request that is queued for sending times out. - */ - int is_broken; }; /* State to represent a DNS query */ struct query { /* Query ID from qbuf, for faster lookup, and current timeout */ - unsigned short qid; + unsigned short qid; /* host byte order */ struct timeval timeout; + ares_channel channel; /* - * Links for the doubly-linked lists in which we insert a query. - * These circular, doubly-linked lists that are hash-bucketed based - * the attributes we care about, help making most important - * operations O(1). + * Node object for each list entry the query belongs to in order to + * make removal operations O(1). */ - struct list_node queries_by_qid; /* hopefully in same cache line as qid */ - struct list_node queries_by_timeout; - struct list_node queries_to_server; - struct list_node all_queries; + ares__slist_node_t *node_queries_by_timeout; + ares__llist_node_t *node_queries_to_conn; + ares__llist_node_t *node_all_queries; + + /* connection handle for validation purposes */ + const struct server_connection *conn; /* Query buf with length at beginning, for TCP transmission */ unsigned char *tcpbuf; @@ -232,6 +229,8 @@ struct query { int using_tcp; int error_status; int timeouts; /* number of timeouts we saw for this request */ + int no_retries; /* do not perform any additional retries, this is set when + * a query is to be canceled */ }; /* Per-server state for a query */ @@ -260,9 +259,6 @@ struct apattern { unsigned short type; }; -struct ares_rand_state; -typedef struct ares_rand_state ares_rand_state; - struct ares_channeldata { /* Configuration data */ int flags; @@ -294,30 +290,28 @@ struct ares_channeldata { struct server_state *servers; int nservers; - /* ID to use for next query */ - unsigned short next_id; /* random state to use when generating new ids */ ares_rand_state *rand_state; /* Generation number to use for the next TCP socket open/close */ int tcp_connection_generation; - /* The time at which we last called process_timeouts(). Uses integer seconds - just to draw the line somewhere. */ - time_t last_timeout_processed; - /* Last server we sent a query to. */ int last_server; - /* Circular, doubly-linked list of queries, bucketed various ways.... */ - /* All active queries in a single list: */ - struct list_node all_queries; + /* All active queries in a single list */ + ares__llist_t *all_queries; /* Queries bucketed by qid, for quickly dispatching DNS responses: */ -#define ARES_QID_TABLE_SIZE 2048 - struct list_node queries_by_qid[ARES_QID_TABLE_SIZE]; + ares__htable_stvp_t *queries_by_qid; + /* Queries bucketed by timeout, for quickly handling timeouts: */ -#define ARES_TIMEOUT_TABLE_SIZE 1024 - struct list_node queries_by_timeout[ARES_TIMEOUT_TABLE_SIZE]; + ares__slist_t *queries_by_timeout; + + /* Map linked list node member for connection to file descriptor. We use + * the node instead of the connection object itself so we can quickly look + * up a connection and remove it if necessary (as otherwise we'd have to + * scan all connections) */ + ares__htable_asvp_t *connnode_by_socket; ares_sock_state_cb sock_state_cb; void *sock_state_cb_data; @@ -336,6 +330,9 @@ struct ares_channeldata { /* Path for hosts file, configurable via ares_options */ char *hosts_path; + + /* Maximum UDP queries per connection allowed */ + int udp_max_queries; }; /* Does the domain end in ".onion" or ".onion."? Case-insensitive. */ @@ -350,15 +347,31 @@ extern void (*ares_free)(void *ptr); int ares__timedout(struct timeval *now, struct timeval *check); -void ares__send_query(ares_channel channel, struct query *query, - struct timeval *now); -void ares__close_sockets(ares_channel channel, struct server_state *server); +/* Returns one of the normal ares status codes like ARES_SUCCESS */ +int ares__send_query(ares_channel channel, struct query *query, + struct timeval *now); + +/* Identical to ares_query, but returns a normal ares return code like + * ARES_SUCCESS, and can be passed the qid by reference which will be + * filled in on ARES_SUCCESS */ +int ares_query_qid(ares_channel channel, const char *name, + int dnsclass, int type, ares_callback callback, + void *arg, unsigned short *qid); +/* Identical to ares_send() except returns normal ares return codes like + * ARES_SUCCESS */ +int ares_send_ex(ares_channel channel, const unsigned char *qbuf, int qlen, + ares_callback callback, void *arg); +void ares__close_connection(struct server_connection *conn); +void ares__close_sockets(struct server_state *server); +void ares__check_cleanup_conn(ares_channel channel, ares_socket_t fd); int ares__get_hostent(FILE *fp, int family, struct hostent **host); int ares__read_line(FILE *fp, char **buf, size_t *bufsize); void ares__free_query(struct query *query); ares_rand_state *ares__init_rand_state(void); void ares__destroy_rand_state(ares_rand_state *state); +void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t len); + unsigned short ares__generate_new_id(ares_rand_state *state); struct timeval ares__tvnow(void); int ares__expand_name_validated(const unsigned char *encoded, @@ -368,7 +381,7 @@ int ares__expand_name_validated(const unsigned char *encoded, int ares__expand_name_for_response(const unsigned char *encoded, const unsigned char *abuf, int alen, char **s, long *enclen, int is_hostname); -void ares__init_servers_state(ares_channel channel); +int ares__init_servers_state(ares_channel channel); void ares__destroy_servers_state(ares_channel channel); int ares__parse_qtype_reply(const unsigned char* abuf, int alen, int* qtype); int ares__single_domain(ares_channel channel, const char *name, char **s); @@ -378,16 +391,12 @@ int ares__readaddrinfo(FILE *fp, const char *name, unsigned short port, const struct ares_addrinfo_hints *hints, struct ares_addrinfo *ai); -struct ares_addrinfo *ares__malloc_addrinfo(void); - -struct ares_addrinfo_node *ares__malloc_addrinfo_node(void); void ares__freeaddrinfo_nodes(struct ares_addrinfo_node *ai_node); struct ares_addrinfo_node *ares__append_addrinfo_node(struct ares_addrinfo_node **ai_node); void ares__addrinfo_cat_nodes(struct ares_addrinfo_node **head, struct ares_addrinfo_node *tail); -struct ares_addrinfo_cname *ares__malloc_addrinfo_cname(void); void ares__freeaddrinfo_cnames(struct ares_addrinfo_cname *ai_cname); struct ares_addrinfo_cname *ares__append_addrinfo_cname(struct ares_addrinfo_cname **ai_cname); diff --git a/deps/cares/src/lib/ares_process.c b/deps/cares/src/lib/ares_process.c index 6cac0a99fdf90d..2b951a73fc0925 100644 --- a/deps/cares/src/lib/ares_process.c +++ b/deps/cares/src/lib/ares_process.c @@ -1,18 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2004-2017 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) 2010 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -58,32 +68,27 @@ static int try_again(int errnum); static void write_tcp_data(ares_channel channel, fd_set *write_fds, ares_socket_t write_fd, struct timeval *now); -static void read_tcp_data(ares_channel channel, fd_set *read_fds, - ares_socket_t read_fd, struct timeval *now); -static void read_udp_packets(ares_channel channel, fd_set *read_fds, - ares_socket_t read_fd, struct timeval *now); -static void advance_tcp_send_queue(ares_channel channel, int whichserver, - ares_ssize_t num_bytes); +static void read_packets(ares_channel channel, fd_set *read_fds, + ares_socket_t read_fd, struct timeval *now); static void process_timeouts(ares_channel channel, struct timeval *now); -static void process_broken_connections(ares_channel channel, - struct timeval *now); -static void process_answer(ares_channel channel, unsigned char *abuf, - int alen, int whichserver, int tcp, +static void process_answer(ares_channel channel, const unsigned char *abuf, + int alen, struct server_connection *conn, int tcp, struct timeval *now); -static void handle_error(ares_channel channel, int whichserver, - struct timeval *now); +static void handle_error(struct server_connection *conn, struct timeval *now); static void skip_server(ares_channel channel, struct query *query, - int whichserver); -static void next_server(ares_channel channel, struct query *query, + struct server_state *server); +static int next_server(ares_channel channel, struct query *query, struct timeval *now); -static int open_tcp_socket(ares_channel channel, struct server_state *server); -static int open_udp_socket(ares_channel channel, struct server_state *server); +static int open_socket(ares_channel channel, struct server_state *server, + int is_tcp); static int same_questions(const unsigned char *qbuf, int qlen, const unsigned char *abuf, int alen); static int same_address(struct sockaddr *sa, struct ares_addr *aa); static int has_opt_rr(const unsigned char *abuf, int alen); static void end_query(ares_channel channel, struct query *query, int status, - unsigned char *abuf, int alen); + const unsigned char *abuf, int alen); +static ares_ssize_t ares__socket_write(ares_channel channel, ares_socket_t s, + const void * data, size_t len); /* return true if now is exactly check time or later */ int ares__timedout(struct timeval *now, @@ -122,10 +127,8 @@ static void processfds(ares_channel channel, struct timeval now = ares__tvnow(); write_tcp_data(channel, write_fds, write_fd, &now); - read_tcp_data(channel, read_fds, read_fd, &now); - read_udp_packets(channel, read_fds, read_fd, &now); + read_packets(channel, read_fds, read_fd, &now); process_timeouts(channel, &now); - process_broken_connections(channel, &now); } /* Something interesting happened on the wire, or there was a timeout. @@ -174,25 +177,6 @@ static int try_again(int errnum) return 0; } -static ares_ssize_t socket_writev(ares_channel channel, ares_socket_t s, const struct iovec * vec, int len) -{ - if (channel->sock_funcs) - return channel->sock_funcs->asendv(s, vec, len, channel->sock_func_cb_data); - - return writev(s, vec, len); -} - -static ares_ssize_t socket_write(ares_channel channel, ares_socket_t s, const void * data, size_t len) -{ - if (channel->sock_funcs) - { - struct iovec vec; - vec.iov_base = (void*)data; - vec.iov_len = len; - return channel->sock_funcs->asendv(s, &vec, 1, channel->sock_func_cb_data); - } - return swrite(s, data, len); -} /* If any TCP sockets select true for writing, write out queued data * we have for them. @@ -203,134 +187,60 @@ static void write_tcp_data(ares_channel channel, struct timeval *now) { struct server_state *server; - struct send_request *sendreq; - struct iovec *vec; int i; - ares_ssize_t scount; - ares_ssize_t wcount; - size_t n; - /* From writev manpage: An implementation can advertise its limit by defining - IOV_MAX in or at run time via the return value from - sysconf(_SC_IOV_MAX). On modern Linux systems, the limit is 1024. Back in - Linux 2.0 days, this limit was 16. */ -#if defined(IOV_MAX) - const size_t maxn = IOV_MAX; /* FreeBSD */ -#elif defined(_SC_IOV_MAX) - const size_t maxn = sysconf(_SC_IOV_MAX); /* Linux */ -#else - const size_t maxn = 16; /* Safe default */ -#endif if(!write_fds && (write_fd == ARES_SOCKET_BAD)) /* no possible action */ return; - for (i = 0; i < channel->nservers; i++) - { - /* Make sure server has data to send and is selected in write_fds or - write_fd. */ - server = &channel->servers[i]; - if (!server->qhead || server->tcp_socket == ARES_SOCKET_BAD || - server->is_broken) - continue; - - if(write_fds) { - if(!FD_ISSET(server->tcp_socket, write_fds)) - continue; - } - else { - if(server->tcp_socket != write_fd) - continue; - } - - if(write_fds) - /* If there's an error and we close this socket, then open - * another with the same fd to talk to another server, then we - * don't want to think that it was the new socket that was - * ready. This is not disastrous, but is likely to result in - * extra system calls and confusion. */ - FD_CLR(server->tcp_socket, write_fds); - - /* Count the number of send queue items. */ - n = 0; - for (sendreq = server->qhead; sendreq; sendreq = sendreq->next) - n++; - - /* Allocate iovecs so we can send all our data at once. */ - vec = ares_malloc(n * sizeof(struct iovec)); - if (vec) - { - /* Fill in the iovecs and send. */ - n = 0; - for (sendreq = server->qhead; sendreq; sendreq = sendreq->next) - { - vec[n].iov_base = (char *) sendreq->data; - vec[n].iov_len = sendreq->len; - n++; - if(n >= maxn) - break; - } - wcount = socket_writev(channel, server->tcp_socket, vec, (int)n); - ares_free(vec); - if (wcount < 0) - { - if (!try_again(SOCKERRNO)) - handle_error(channel, i, now); - continue; - } + for (i = 0; i < channel->nservers; i++) { + const unsigned char *data; + size_t data_len; + ares_ssize_t count; - /* Advance the send queue by as many bytes as we sent. */ - advance_tcp_send_queue(channel, i, wcount); - } - else - { - /* Can't allocate iovecs; just send the first request. */ - sendreq = server->qhead; + /* Make sure server has data to send and is selected in write_fds or + write_fd. */ + server = &channel->servers[i]; + if (ares__buf_len(server->tcp_send) == 0 || server->tcp_conn == NULL) + continue; - scount = socket_write(channel, server->tcp_socket, sendreq->data, sendreq->len); - if (scount < 0) - { - if (!try_again(SOCKERRNO)) - handle_error(channel, i, now); - continue; - } + if (write_fds) { + if (!FD_ISSET(server->tcp_conn->fd, write_fds)) + continue; + } else { + if (server->tcp_conn->fd != write_fd) + continue; + } - /* Advance the send queue by as many bytes as we sent. */ - advance_tcp_send_queue(channel, i, scount); - } + if (write_fds) { + /* If there's an error and we close this socket, then open + * another with the same fd to talk to another server, then we + * don't want to think that it was the new socket that was + * ready. This is not disastrous, but is likely to result in + * extra system calls and confusion. */ + FD_CLR(server->tcp_conn->fd, write_fds); } -} -/* Consume the given number of bytes from the head of the TCP send queue. */ -static void advance_tcp_send_queue(ares_channel channel, int whichserver, - ares_ssize_t num_bytes) -{ - struct send_request *sendreq; - struct server_state *server = &channel->servers[whichserver]; - while (num_bytes > 0) { - sendreq = server->qhead; - if ((size_t)num_bytes >= sendreq->len) { - num_bytes -= sendreq->len; - server->qhead = sendreq->next; - if (sendreq->data_storage) - ares_free(sendreq->data_storage); - ares_free(sendreq); - if (server->qhead == NULL) { - SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 0); - server->qtail = NULL; - - /* qhead is NULL so we cannot continue this loop */ - break; + data = ares__buf_peek(server->tcp_send, &data_len); + count = ares__socket_write(channel, server->tcp_conn->fd, data, data_len); + if (count <= 0) { + if (!try_again(SOCKERRNO)) { + handle_error(server->tcp_conn, now); } + continue; } - else { - sendreq->data += num_bytes; - sendreq->len -= num_bytes; - num_bytes = 0; + + /* Strip data written from the buffer */ + ares__buf_consume(server->tcp_send, count); + + /* Notify state callback all data is written */ + if (ares__buf_len(server->tcp_send) == 0) { + SOCK_STATE_CALLBACK(channel, server->tcp_conn->fd, 1, 0); } } } + static ares_ssize_t socket_recvfrom(ares_channel channel, ares_socket_t s, void * data, @@ -339,7 +249,7 @@ static ares_ssize_t socket_recvfrom(ares_channel channel, struct sockaddr *from, ares_socklen_t *from_len) { - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->arecvfrom) return channel->sock_funcs->arecvfrom(s, data, data_len, flags, from, from_len, channel->sock_func_cb_data); @@ -356,122 +266,150 @@ static ares_ssize_t socket_recv(ares_channel channel, void * data, size_t data_len) { - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->arecvfrom) return channel->sock_funcs->arecvfrom(s, data, data_len, 0, 0, 0, channel->sock_func_cb_data); return sread(s, data, data_len); } + /* If any TCP socket selects true for reading, read some data, * allocate a buffer if we finish reading the length word, and process * a packet if we finish reading one. */ -static void read_tcp_data(ares_channel channel, fd_set *read_fds, - ares_socket_t read_fd, struct timeval *now) +static void read_tcp_data(ares_channel channel, struct server_connection *conn, + struct timeval *now) { - struct server_state *server; - int i; - ares_ssize_t count; + ares_ssize_t count; + struct server_state *server = conn->server; + + /* Fetch buffer to store data we are reading */ + size_t ptr_len = 512; + unsigned char *ptr = ares__buf_append_start(server->tcp_parser, + &ptr_len); + + if (ptr == NULL) { + handle_error(conn, now); + return; /* bail out on malloc failure. TODO: make this + function return error codes */ + } - if(!read_fds && (read_fd == ARES_SOCKET_BAD)) - /* no possible action */ + /* Read from socket */ + count = socket_recv(channel, conn->fd, ptr, ptr_len); + if (count <= 0) { + ares__buf_append_finish(server->tcp_parser, 0); + if (!(count == -1 && try_again(SOCKERRNO))) + handle_error(conn, now); return; + } - for (i = 0; i < channel->nservers; i++) - { - /* Make sure the server has a socket and is selected in read_fds. */ - server = &channel->servers[i]; - if (server->tcp_socket == ARES_SOCKET_BAD || server->is_broken) - continue; + /* Record amount of data read */ + ares__buf_append_finish(server->tcp_parser, count); - if(read_fds) { - if(!FD_ISSET(server->tcp_socket, read_fds)) - continue; - } - else { - if(server->tcp_socket != read_fd) - continue; - } + /* Process all queued answers */ + while (1) { + unsigned short dns_len = 0; + const unsigned char *data = NULL; + size_t data_len = 0; - if(read_fds) - /* If there's an error and we close this socket, then open another - * with the same fd to talk to another server, then we don't want to - * think that it was the new socket that was ready. This is not - * disastrous, but is likely to result in extra system calls and - * confusion. */ - FD_CLR(server->tcp_socket, read_fds); + /* Tag so we can roll back */ + ares__buf_tag(server->tcp_parser); - if (server->tcp_lenbuf_pos != 2) - { - /* We haven't yet read a length word, so read that (or - * what's left to read of it). - */ - count = socket_recv(channel, server->tcp_socket, - server->tcp_lenbuf + server->tcp_lenbuf_pos, - 2 - server->tcp_lenbuf_pos); - if (count <= 0) - { - if (!(count == -1 && try_again(SOCKERRNO))) - handle_error(channel, i, now); - continue; - } + /* Read length indicator */ + if (ares__buf_fetch_be16(server->tcp_parser, &dns_len) != ARES_SUCCESS) { + ares__buf_tag_rollback(server->tcp_parser); + return; + } - server->tcp_lenbuf_pos += (int)count; - if (server->tcp_lenbuf_pos == 2) - { - /* We finished reading the length word. Decode the - * length and allocate a buffer for the data. - */ - server->tcp_length = server->tcp_lenbuf[0] << 8 - | server->tcp_lenbuf[1]; - server->tcp_buffer = ares_malloc(server->tcp_length); - if (!server->tcp_buffer) { - handle_error(channel, i, now); - return; /* bail out on malloc failure. TODO: make this - function return error codes */ - } - server->tcp_buffer_pos = 0; - } - } - else - { - /* Read data into the allocated buffer. */ - count = socket_recv(channel, server->tcp_socket, - server->tcp_buffer + server->tcp_buffer_pos, - server->tcp_length - server->tcp_buffer_pos); - if (count <= 0) - { - if (!(count == -1 && try_again(SOCKERRNO))) - handle_error(channel, i, now); - continue; - } + /* Not enough data for a full response yet */ + if (ares__buf_consume(server->tcp_parser, dns_len) != ARES_SUCCESS) { + ares__buf_tag_rollback(server->tcp_parser); + return; + } - server->tcp_buffer_pos += (int)count; - if (server->tcp_buffer_pos == server->tcp_length) - { - /* We finished reading this answer; process it and - * prepare to read another length word. - */ - process_answer(channel, server->tcp_buffer, server->tcp_length, - i, 1, now); - ares_free(server->tcp_buffer); - server->tcp_buffer = NULL; - server->tcp_lenbuf_pos = 0; - server->tcp_buffer_pos = 0; - } - } + /* Can't fail except for misuse */ + data = ares__buf_tag_fetch(server->tcp_parser, &data_len); + if (data == NULL) { + ares__buf_tag_clear(server->tcp_parser); + return; } + + /* Strip off 2 bytes length */ + data += 2; + data_len -= 2; + + /* We finished reading this answer; process it */ + process_answer(channel, data, (int)data_len, conn, 1, now); + + /* Since we processed the answer, clear the tag so space can be reclaimed */ + ares__buf_tag_clear(server->tcp_parser); + } +} + + +static int socket_list_append(ares_socket_t **socketlist, ares_socket_t fd, + size_t *alloc_cnt, size_t *num) +{ + if (*num >= *alloc_cnt) { + /* Grow by powers of 2 */ + size_t new_alloc = (*alloc_cnt) << 1; + ares_socket_t *new_list = ares_realloc(socketlist, + new_alloc * sizeof(*new_list)); + if (new_list == NULL) + return 0; + *alloc_cnt = new_alloc; + *socketlist = new_list; + } + + (*socketlist)[(*num)++] = fd; + return 1; +} + + +static ares_socket_t *channel_socket_list(ares_channel channel, size_t *num) +{ + size_t alloc_cnt = 1 << 4; + int i; + ares_socket_t *out = ares_malloc(alloc_cnt * sizeof(*out)); + + *num = 0; + + if (out == NULL) + return NULL; + + for (i=0; inservers; i++) { + ares__llist_node_t *node; + for (node = ares__llist_node_first(channel->servers[i].connections); + node != NULL; + node = ares__llist_node_next(node)) { + struct server_connection *conn = ares__llist_node_val(node); + + if (conn->fd == ARES_SOCKET_BAD) + continue; + + if (!socket_list_append(&out, conn->fd, &alloc_cnt, num)) + goto fail; + } + } + + return out; + +fail: + ares_free(out); + *num = 0; + return NULL; } /* If any UDP sockets select true for reading, process them. */ -static void read_udp_packets(ares_channel channel, fd_set *read_fds, - ares_socket_t read_fd, struct timeval *now) +static void read_udp_packets_fd(ares_channel channel, + struct server_connection *conn, + struct timeval *now) { - struct server_state *server; - int i; ares_ssize_t read_len; unsigned char buf[MAXENDSSZ + 1]; + ares_socket_t fd = conn->fd; /* Cache for validation */ + #ifdef HAVE_RECVFROM ares_socklen_t fromlen; union { @@ -481,148 +419,188 @@ static void read_udp_packets(ares_channel channel, fd_set *read_fds, } from; #endif - if(!read_fds && (read_fd == ARES_SOCKET_BAD)) + /* To reduce event loop overhead, read and process as many + * packets as we can. */ + do { + if (conn->fd == ARES_SOCKET_BAD) { + read_len = -1; + } else { + if (conn->server->addr.family == AF_INET) { + fromlen = sizeof(from.sa4); + } else { + fromlen = sizeof(from.sa6); + } + read_len = socket_recvfrom(channel, conn->fd, (void *)buf, + sizeof(buf), 0, &from.sa, &fromlen); + } + + if (read_len == 0) { + /* UDP is connectionless, so result code of 0 is a 0-length UDP + * packet, and not an indication the connection is closed like on + * tcp */ + continue; + } else if (read_len < 0) { + if (try_again(SOCKERRNO)) + continue; + + handle_error(conn, now); + +#ifdef HAVE_RECVFROM + } else if (!same_address(&from.sa, &conn->server->addr)) { + /* The address the response comes from does not match the address we + * sent the request to. Someone may be attempting to perform a cache + * poisoning attack. */ + continue; +#endif + + } else { + process_answer(channel, buf, (int)read_len, conn, 0, now); + } + /* process_answer may invalidate "conn" and close the file descriptor, so + * check to see if file descriptor is still valid before looping! */ + } while (read_len >= 0 && + ares__htable_asvp_get_direct(channel->connnode_by_socket, fd) != NULL); + +} + + +static void read_packets(ares_channel channel, fd_set *read_fds, + ares_socket_t read_fd, struct timeval *now) +{ + size_t i; + ares_socket_t *socketlist = NULL; + size_t num_sockets = 0; + struct server_connection *conn = NULL; + ares__llist_node_t *node = NULL; + + if (!read_fds && (read_fd == ARES_SOCKET_BAD)) /* no possible action */ return; - for (i = 0; i < channel->nservers; i++) - { - /* Make sure the server has a socket and is selected in read_fds. */ - server = &channel->servers[i]; + /* Single socket specified */ + if (!read_fds) { + node = ares__htable_asvp_get_direct(channel->connnode_by_socket, read_fd); + if (node == NULL) + return; - if (server->udp_socket == ARES_SOCKET_BAD || server->is_broken) - continue; + conn = ares__llist_node_val(node); - if(read_fds) { - if(!FD_ISSET(server->udp_socket, read_fds)) - continue; - } - else { - if(server->udp_socket != read_fd) - continue; - } + if (conn->is_tcp) { + read_tcp_data(channel, conn, now); + } else { + read_udp_packets_fd(channel, conn, now); + } - if(read_fds) - /* If there's an error and we close this socket, then open - * another with the same fd to talk to another server, then we - * don't want to think that it was the new socket that was - * ready. This is not disastrous, but is likely to result in - * extra system calls and confusion. */ - FD_CLR(server->udp_socket, read_fds); - - /* To reduce event loop overhead, read and process as many - * packets as we can. */ - do { - if (server->udp_socket == ARES_SOCKET_BAD) { - read_len = -1; - } else { - if (server->addr.family == AF_INET) { - fromlen = sizeof(from.sa4); - } else { - fromlen = sizeof(from.sa6); - } - read_len = socket_recvfrom(channel, server->udp_socket, (void *)buf, - sizeof(buf), 0, &from.sa, &fromlen); - } + return; + } - if (read_len == 0) { - /* UDP is connectionless, so result code of 0 is a 0-length UDP - * packet, and not an indication the connection is closed like on - * tcp */ - continue; - } else if (read_len < 0) { - if (try_again(SOCKERRNO)) - continue; + /* There is no good way to iterate across an fd_set, instead we must pull a list + * of all known fds, and iterate across that checking against the fd_set. */ + socketlist = channel_socket_list(channel, &num_sockets); - handle_error(channel, i, now); + for (i=0; iaddr)) { - /* The address the response comes from does not match the address we - * sent the request to. Someone may be attempting to perform a cache - * poisoning attack. */ - continue; -#endif + /* If there's an error and we close this socket, then open + * another with the same fd to talk to another server, then we + * don't want to think that it was the new socket that was + * ready. This is not disastrous, but is likely to result in + * extra system calls and confusion. */ + FD_CLR(socketlist[i], read_fds); - } else { - process_answer(channel, buf, (int)read_len, i, 0, now); - } - } while (read_len >= 0); + node = ares__htable_asvp_get_direct(channel->connnode_by_socket, + socketlist[i]); + if (node == NULL) + return; + + conn = ares__llist_node_val(node); + + if (conn->is_tcp) { + read_tcp_data(channel, conn, now); + } else { + read_udp_packets_fd(channel, conn, now); } + } + + ares_free(socketlist); } + /* If any queries have timed out, note the timeout and move them on. */ static void process_timeouts(ares_channel channel, struct timeval *now) { - time_t t; /* the time of the timeouts we're processing */ - struct query *query; - struct list_node* list_head; - struct list_node* list_node; + ares__slist_node_t *node = ares__slist_node_first(channel->queries_by_timeout); + while (node != NULL) { + struct query *query = ares__slist_node_val(node); + /* Node might be removed, cache next */ + ares__slist_node_t *next = ares__slist_node_next(node); + ares_socket_t fd; + + /* Since this is sorted, as soon as we hit a query that isn't timed out, break */ + if (!ares__timedout(now, &query->timeout)) { + break; + } - /* Process all the timeouts that have fired since the last time we processed - * timeouts. If things are going well, then we'll have hundreds/thousands of - * queries that fall into future buckets, and only a handful of requests - * that fall into the "now" bucket, so this should be quite quick. - */ - for (t = channel->last_timeout_processed; t <= now->tv_sec; t++) - { - list_head = &(channel->queries_by_timeout[t % ARES_TIMEOUT_TABLE_SIZE]); - for (list_node = list_head->next; list_node != list_head; ) - { - query = list_node->data; - list_node = list_node->next; /* in case the query gets deleted */ - if (query->timeout.tv_sec && ares__timedout(now, &query->timeout)) - { - query->error_status = ARES_ETIMEOUT; - ++query->timeouts; - next_server(channel, query, now); - } - } - } - channel->last_timeout_processed = now->tv_sec; + query->error_status = ARES_ETIMEOUT; + query->timeouts++; + + + fd = query->conn->fd; + next_server(channel, query, now); + /* A timeout is a special case where we need to possibly cleanup a + * a connection */ + ares__check_cleanup_conn(channel, fd); + + node = next; + } } + /* Handle an answer from a server. */ -static void process_answer(ares_channel channel, unsigned char *abuf, - int alen, int whichserver, int tcp, +static void process_answer(ares_channel channel, const unsigned char *abuf, + int alen, struct server_connection *conn, int tcp, struct timeval *now) { int tc, rcode, packetsz; unsigned short id; struct query *query; - struct list_node* list_head; - struct list_node* list_node; + /* Cache these as once ares__send_query() gets called, it may end up + * invalidating the connection all-together */ + struct server_state *server = conn->server; + ares_socket_t fd = conn->fd; /* If there's no room in the answer for a header, we can't do much * with it. */ - if (alen < HFIXEDSZ) + if (alen < HFIXEDSZ) { return; + } /* Grab the query ID, truncate bit, and response code from the packet. */ - id = DNS_HEADER_QID(abuf); + id = DNS_HEADER_QID(abuf); /* Converts to host byte order */ tc = DNS_HEADER_TC(abuf); rcode = DNS_HEADER_RCODE(abuf); /* Find the query corresponding to this packet. The queries are - * hashed/bucketed by query id, so this lookup should be quick. Note that - * both the query id and the questions must be the same; when the query id - * wraps around we can have multiple outstanding queries with the same query - * id, so we need to check both the id and question. + * hashed/bucketed by query id, so this lookup should be quick. */ - query = NULL; - list_head = &(channel->queries_by_qid[id % ARES_QID_TABLE_SIZE]); - for (list_node = list_head->next; list_node != list_head; - list_node = list_node->next) - { - struct query *q = list_node->data; - if ((q->qid == id) && same_questions(q->qbuf, q->qlen, abuf, alen)) - { - query = q; - break; - } - } - if (!query) + query = ares__htable_stvp_get_direct(channel->queries_by_qid, id); + if (!query) { + return; + } + + /* Both the query id and the questions must be the same. We will drop any + * replies that aren't for the same query as this is considered invalid. */ + if (!same_questions(query->qbuf, query->qlen, abuf, alen)) { return; + } + + /* At this point we know we've received an answer for this query, so we should + * remove it from the connection's queue so we can possibly invalidate the + * connection. Delay cleaning up the connection though as we may enqueue + * something new. */ + ares__llist_node_destroy(query->node_queries_to_conn); + query->node_queries_to_conn = NULL; packetsz = PACKETSZ; /* If we use EDNS and server answers with FORMERR without an OPT RR, the protocol @@ -643,6 +621,7 @@ static void process_answer(ares_channel channel, unsigned char *abuf, query->tcpbuf = ares_realloc(query->tcpbuf, query->tcplen); query->qbuf = query->tcpbuf + 2; ares__send_query(channel, query, now); + ares__check_cleanup_conn(channel, fd); return; } } @@ -658,6 +637,7 @@ static void process_answer(ares_channel channel, unsigned char *abuf, query->using_tcp = 1; ares__send_query(channel, query, now); } + ares__check_cleanup_conn(channel, fd); return; } @@ -674,93 +654,61 @@ static void process_answer(ares_channel channel, unsigned char *abuf, { if (rcode == SERVFAIL || rcode == NOTIMP || rcode == REFUSED) { - skip_server(channel, query, whichserver); - if (query->server == whichserver) + switch (rcode) { + case SERVFAIL: + query->error_status = ARES_ESERVFAIL; + break; + case NOTIMP: + query->error_status = ARES_ENOTIMP; + break; + case REFUSED: + query->error_status = ARES_EREFUSED; + break; + } + skip_server(channel, query, server); + if (query->server == (int)server->idx) /* Is this ever not true? */ next_server(channel, query, now); + ares__check_cleanup_conn(channel, fd); return; } } end_query(channel, query, ARES_SUCCESS, abuf, alen); -} -/* Close all the connections that are no longer usable. */ -static void process_broken_connections(ares_channel channel, - struct timeval *now) -{ - int i; - for (i = 0; i < channel->nservers; i++) - { - struct server_state *server = &channel->servers[i]; - if (server->is_broken) - { - handle_error(channel, i, now); - } - } + ares__check_cleanup_conn(channel, fd); } -/* Swap the contents of two lists */ -static void swap_lists(struct list_node* head_a, - struct list_node* head_b) -{ - int is_a_empty = ares__is_list_empty(head_a); - int is_b_empty = ares__is_list_empty(head_b); - struct list_node old_a = *head_a; - struct list_node old_b = *head_b; - - if (is_a_empty) { - ares__init_list_head(head_b); - } else { - *head_b = old_a; - old_a.next->prev = head_b; - old_a.prev->next = head_b; - } - if (is_b_empty) { - ares__init_list_head(head_a); - } else { - *head_a = old_b; - old_b.next->prev = head_a; - old_b.prev->next = head_a; - } -} -static void handle_error(ares_channel channel, int whichserver, +static void handle_error(struct server_connection *conn, struct timeval *now) { - struct server_state *server; - struct query *query; - struct list_node list_head; - struct list_node* list_node; - - server = &channel->servers[whichserver]; - - /* Reset communications with this server. */ - ares__close_sockets(channel, server); + ares_channel channel = conn->server->channel; + ares__llist_t *list_copy; + ares__llist_node_t *node; + + /* We steal the list from the connection then close the connection, then + * iterate across the list to requeue any inflight queries with the broken + * connection. Destroying the connection prior to requeuing ensures requests + * won't go back to the broken connection */ + list_copy = conn->queries_to_conn; + conn->queries_to_conn = NULL; + ares__close_connection(conn); + + while ((node = ares__llist_node_first(list_copy)) != NULL) { + struct query *query = ares__llist_node_val(node); + + assert(query->server == (int)conn->server->idx); + skip_server(channel, query, conn->server); + /* next_server will remove the current node from the list */ + next_server(channel, query, now); + } - /* Tell all queries talking to this server to move on and not try this - * server again. We steal the current list of queries that were in-flight to - * this server, since when we call next_server this can cause the queries to - * be re-sent to this server, which will re-insert these queries in that - * same server->queries_to_server list. - */ - ares__init_list_head(&list_head); - swap_lists(&list_head, &(server->queries_to_server)); - for (list_node = list_head.next; list_node != &list_head; ) - { - query = list_node->data; - list_node = list_node->next; /* in case the query gets deleted */ - assert(query->server == whichserver); - skip_server(channel, query, whichserver); - next_server(channel, query, now); - } - /* Each query should have removed itself from our temporary list as - * it re-sent itself or finished up... - */ - assert(ares__is_list_empty(&list_head)); + ares__llist_destroy(list_copy); } + static void skip_server(ares_channel channel, struct query *query, - int whichserver) + struct server_state *server) { /* The given server gave us problems with this query, so if we have the * luxury of using other servers, then let's skip the potentially broken @@ -772,165 +720,195 @@ static void skip_server(ares_channel channel, struct query *query, */ if (channel->nservers > 1) { - query->server_info[whichserver].skip_server = 1; + query->server_info[server->idx].skip_server = 1; } } -static void next_server(ares_channel channel, struct query *query, +static int next_server(ares_channel channel, struct query *query, struct timeval *now) { + int status; /* We need to try each server channel->tries times. We have channel->nservers * servers to try. In total, we need to do channel->nservers * channel->tries * attempts. Use query->try to remember how many times we already attempted - * this query. Use modular arithmetic to find the next server to try. */ - while (++(query->try_count) < (channel->nservers * channel->tries)) - { - struct server_state *server; - - /* Move on to the next server. */ - query->server = (query->server + 1) % channel->nservers; - server = &channel->servers[query->server]; - - /* We don't want to use this server if (1) we decided this connection is - * broken, and thus about to be closed, (2) we've decided to skip this - * server because of earlier errors we encountered, or (3) we already - * sent this query over this exact connection. - */ - if (!server->is_broken && - !query->server_info[query->server].skip_server && - !(query->using_tcp && - (query->server_info[query->server].tcp_connection_generation == - server->tcp_connection_generation))) - { - ares__send_query(channel, query, now); - return; - } - - /* You might think that with TCP we only need one try. However, even - * when using TCP, servers can time-out our connection just as we're - * sending a request, or close our connection because they die, or never - * send us a reply because they get wedged or tickle a bug that drops - * our request. - */ + * this query. Use modular arithmetic to find the next server to try. + * A query can be requested be terminated at the next interval by setting + * query->no_retries */ + while (++(query->try_count) < (channel->nservers * channel->tries) && + !query->no_retries) { + struct server_state *server; + + /* Move on to the next server. */ + query->server = (query->server + 1) % channel->nservers; + server = &channel->servers[query->server]; + + /* We don't want to use this server if (1) we've decided to skip this + * server because of earlier errors we encountered, or (2) we already + * sent this query over this exact connection. + */ + if (!query->server_info[query->server].skip_server && + !(query->using_tcp && + (query->server_info[query->server].tcp_connection_generation == + server->tcp_connection_generation))) { + return ares__send_query(channel, query, now); } + /* You might think that with TCP we only need one try. However, even + * when using TCP, servers can time-out our connection just as we're + * sending a request, or close our connection because they die, or never + * send us a reply because they get wedged or tickle a bug that drops + * our request. + */ + } + /* If we are here, all attempts to perform query failed. */ + status = query->error_status; end_query(channel, query, query->error_status, NULL, 0); + return status; } -void ares__send_query(ares_channel channel, struct query *query, +int ares__send_query(ares_channel channel, struct query *query, struct timeval *now) { - struct send_request *sendreq; struct server_state *server; + struct server_connection *conn; int timeplus; + int status; server = &channel->servers[query->server]; - if (query->using_tcp) - { - /* Make sure the TCP socket for this server is set up and queue - * a send request. - */ - if (server->tcp_socket == ARES_SOCKET_BAD) - { - if (open_tcp_socket(channel, server) == -1) - { - skip_server(channel, query, query->server); - next_server(channel, query, now); - return; - } - } - sendreq = ares_malloc(sizeof(struct send_request)); - if (!sendreq) - { - end_query(channel, query, ARES_ENOMEM, NULL, 0); - return; - } - memset(sendreq, 0, sizeof(struct send_request)); - /* To make the common case fast, we avoid copies by using the query's - * tcpbuf for as long as the query is alive. In the rare case where the - * query ends while it's queued for transmission, then we give the - * sendreq its own copy of the request packet and put it in - * sendreq->data_storage. - */ - sendreq->data_storage = NULL; - sendreq->data = query->tcpbuf; - sendreq->len = query->tcplen; - sendreq->owner_query = query; - sendreq->next = NULL; - if (server->qtail) - server->qtail->next = sendreq; - else - { - SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 1); - server->qhead = sendreq; - } - server->qtail = sendreq; - query->server_info[query->server].tcp_connection_generation = - server->tcp_connection_generation; + if (query->using_tcp) { + size_t prior_len = 0; + /* Make sure the TCP socket for this server is set up and queue + * a send request. + */ + if (server->tcp_conn == NULL) { + int err = open_socket(channel, server, 1); + switch (err) { + /* Good result, continue on */ + case ARES_SUCCESS: + break; + + /* These conditions are retryable as they are server-specific + * error codes */ + case ARES_ECONNREFUSED: + case ARES_EBADFAMILY: + skip_server(channel, query, server); + return next_server(channel, query, now); + + /* Anything else is not retryable, likely ENOMEM */ + default: + end_query(channel, query, err, NULL, 0); + return err; + } } - else - { - if (server->udp_socket == ARES_SOCKET_BAD) - { - if (open_udp_socket(channel, server) == -1) - { - skip_server(channel, query, query->server); - next_server(channel, query, now); - return; - } - } - if (socket_write(channel, server->udp_socket, query->qbuf, query->qlen) == -1) - { - /* FIXME: Handle EAGAIN here since it likely can happen. */ - skip_server(channel, query, query->server); - next_server(channel, query, now); - return; - } + + conn = server->tcp_conn; + + prior_len = ares__buf_len(server->tcp_send); + + status = ares__buf_append(server->tcp_send, query->tcpbuf, query->tcplen); + if (status != ARES_SUCCESS) { + end_query(channel, query, status, NULL, 0); + return ARES_ENOMEM; } - /* For each trip through the entire server list, double the channel's - * assigned timeout, avoiding overflow. If channel->timeout is negative, - * leave it as-is, even though that should be impossible here. - */ - timeplus = channel->timeout; - { - /* How many times do we want to double it? Presume sane values here. */ - const int shift = query->try_count / channel->nservers; - - /* Is there enough room to shift timeplus left that many times? - * - * To find out, confirm that all of the bits we'll shift away are zero. - * Stop considering a shift if we get to the point where we could shift - * a 1 into the sign bit (i.e. when shift is within two of the bit - * count). - * - * This has the side benefit of leaving negative numbers unchanged. - */ - if(shift <= (int)(sizeof(int) * CHAR_BIT - 1) - && (timeplus >> (sizeof(int) * CHAR_BIT - 1 - shift)) == 0) - { - timeplus <<= shift; + if (prior_len == 0) { + SOCK_STATE_CALLBACK(channel, conn->fd, 1, 1); + } + + query->server_info[query->server].tcp_connection_generation = + server->tcp_connection_generation; + } else { + ares__llist_node_t *node = ares__llist_node_first(server->connections); + + /* Don't use the found connection if we've gone over the maximum number + * of queries. Also, skip over the TCP connection if it is the first in + * the list */ + if (node != NULL) { + conn = ares__llist_node_val(node); + if (conn->is_tcp) { + node = NULL; + } else if (channel->udp_max_queries > 0 && + conn->total_queries >= (size_t)channel->udp_max_queries) { + node = NULL; } } - query->timeout = *now; - timeadd(&query->timeout, timeplus); - /* Keep track of queries bucketed by timeout, so we can process - * timeout events quickly. - */ - ares__remove_from_list(&(query->queries_by_timeout)); - ares__insert_in_list( - &(query->queries_by_timeout), - &(channel->queries_by_timeout[query->timeout.tv_sec % - ARES_TIMEOUT_TABLE_SIZE])); - - /* Keep track of queries bucketed by server, so we can process server - * errors quickly. + if (node == NULL) { + int err = open_socket(channel, server, 0); + switch (err) { + /* Good result, continue on */ + case ARES_SUCCESS: + break; + + /* These conditions are retryable as they are server-specific + * error codes */ + case ARES_ECONNREFUSED: + case ARES_EBADFAMILY: + skip_server(channel, query, server); + return next_server(channel, query, now); + + /* Anything else is not retryable, likely ENOMEM */ + default: + end_query(channel, query, err, NULL, 0); + return err; + } + node = ares__llist_node_first(server->connections); + } + + conn = ares__llist_node_val(node); + if (ares__socket_write(channel, conn->fd, query->qbuf, query->qlen) == -1) { + /* FIXME: Handle EAGAIN here since it likely can happen. */ + skip_server(channel, query, server); + return next_server(channel, query, now); + } + } + + /* For each trip through the entire server list, double the channel's + * assigned timeout, avoiding overflow. If channel->timeout is negative, + * leave it as-is, even though that should be impossible here. + */ + timeplus = channel->timeout; + { + /* How many times do we want to double it? Presume sane values here. */ + const int shift = query->try_count / channel->nservers; + + /* Is there enough room to shift timeplus left that many times? + * + * To find out, confirm that all of the bits we'll shift away are zero. + * Stop considering a shift if we get to the point where we could shift + * a 1 into the sign bit (i.e. when shift is within two of the bit + * count). + * + * This has the side benefit of leaving negative numbers unchanged. */ - ares__remove_from_list(&(query->queries_to_server)); - ares__insert_in_list(&(query->queries_to_server), - &(server->queries_to_server)); + if(shift <= (int)(sizeof(int) * CHAR_BIT - 1) + && (timeplus >> (sizeof(int) * CHAR_BIT - 1 - shift)) == 0) + { + timeplus <<= shift; + } + } + + /* Keep track of queries bucketed by timeout, so we can process + * timeout events quickly. + */ + ares__slist_node_destroy(query->node_queries_by_timeout); + query->timeout = *now; + timeadd(&query->timeout, timeplus); + query->node_queries_by_timeout = ares__slist_insert(channel->queries_by_timeout, query); + if (!query->node_queries_by_timeout) { + end_query(channel, query, ARES_ENOMEM, NULL, 0); + return ARES_ENOMEM; + } + + /* Keep track of queries bucketed by connection, so we can process errors + * quickly. */ + ares__llist_node_destroy(query->node_queries_to_conn); + query->node_queries_to_conn = + ares__llist_insert_last(conn->queries_to_conn, query); + query->conn = conn; + conn->total_queries++; + return ARES_SUCCESS; } /* @@ -1013,7 +991,7 @@ static int configure_socket(ares_socket_t s, int family, ares_channel channel) } local; /* do not set options for user-managed sockets */ - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->asocket) return 0; (void)setsocknonblock(s, TRUE); @@ -1072,7 +1050,8 @@ static int configure_socket(ares_socket_t s, int family, ares_channel channel) return 0; } -static int open_tcp_socket(ares_channel channel, struct server_state *server) +static int open_socket(ares_channel channel, struct server_state *server, + int is_tcp) { ares_socket_t s; int opt; @@ -1082,204 +1061,152 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server) struct sockaddr_in6 sa6; } saddr; struct sockaddr *sa; + unsigned short port; + struct server_connection *conn; + ares__llist_node_t *node; - switch (server->addr.family) - { - case AF_INET: - sa = (void *)&saddr.sa4; - salen = sizeof(saddr.sa4); - memset(sa, 0, salen); - saddr.sa4.sin_family = AF_INET; - if (server->addr.tcp_port) { - saddr.sa4.sin_port = aresx_sitous(server->addr.tcp_port); - } else { - saddr.sa4.sin_port = aresx_sitous(channel->tcp_port); - } - memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4, - sizeof(server->addr.addrV4)); - break; - case AF_INET6: - sa = (void *)&saddr.sa6; - salen = sizeof(saddr.sa6); - memset(sa, 0, salen); - saddr.sa6.sin6_family = AF_INET6; - if (server->addr.tcp_port) { - saddr.sa6.sin6_port = aresx_sitous(server->addr.tcp_port); - } else { - saddr.sa6.sin6_port = aresx_sitous(channel->tcp_port); - } - memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6, - sizeof(server->addr.addrV6)); - break; - default: - return -1; /* LCOV_EXCL_LINE */ - } + if (is_tcp) { + port = aresx_sitous(server->addr.tcp_port? + server->addr.tcp_port:channel->tcp_port); + } else { + port = aresx_sitous(server->addr.udp_port? + server->addr.udp_port:channel->udp_port); + } + + switch (server->addr.family) { + case AF_INET: + sa = (void *)&saddr.sa4; + salen = sizeof(saddr.sa4); + memset(sa, 0, salen); + saddr.sa4.sin_family = AF_INET; + saddr.sa4.sin_port = port; + memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4, + sizeof(server->addr.addrV4)); + break; + case AF_INET6: + sa = (void *)&saddr.sa6; + salen = sizeof(saddr.sa6); + memset(sa, 0, salen); + saddr.sa6.sin6_family = AF_INET6; + saddr.sa6.sin6_port = port; + memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6, + sizeof(server->addr.addrV6)); + break; + default: + return ARES_EBADFAMILY; /* LCOV_EXCL_LINE */ + } /* Acquire a socket. */ - s = ares__open_socket(channel, server->addr.family, SOCK_STREAM, 0); + s = ares__open_socket(channel, server->addr.family, + is_tcp?SOCK_STREAM:SOCK_DGRAM, 0); if (s == ARES_SOCKET_BAD) - return -1; + return ARES_ECONNREFUSED; /* Configure it. */ - if (configure_socket(s, server->addr.family, channel) < 0) - { - ares__close_socket(channel, s); - return -1; - } + if (configure_socket(s, server->addr.family, channel) < 0) { + ares__close_socket(channel, s); + return ARES_ECONNREFUSED; + } #ifdef TCP_NODELAY - /* - * Disable the Nagle algorithm (only relevant for TCP sockets, and thus not - * in configure_socket). In general, in DNS lookups we're pretty much - * interested in firing off a single request and then waiting for a reply, - * so batching isn't very interesting. - */ - opt = 1; - if (channel->sock_funcs == 0 - && - setsockopt(s, IPPROTO_TCP, TCP_NODELAY, - (void *)&opt, sizeof(opt)) == -1) - { - ares__close_socket(channel, s); - return -1; + if (is_tcp) { + /* + * Disable the Nagle algorithm (only relevant for TCP sockets, and thus not + * in configure_socket). In general, in DNS lookups we're pretty much + * interested in firing off a single request and then waiting for a reply, + * so batching isn't very interesting. + */ + opt = 1; + if (!channel->sock_funcs || !channel->sock_funcs->asocket) { + if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)) + == -1) { + ares__close_socket(channel, s); + return ARES_ECONNREFUSED; + } } + } #endif - if (channel->sock_config_cb) - { - int err = channel->sock_config_cb(s, SOCK_STREAM, - channel->sock_config_cb_data); - if (err < 0) - { - ares__close_socket(channel, s); - return err; - } + if (channel->sock_config_cb) { + int err = channel->sock_config_cb(s, SOCK_STREAM, + channel->sock_config_cb_data); + if (err < 0) { + ares__close_socket(channel, s); + return ARES_ECONNREFUSED; } + } /* Connect to the server. */ - if (ares__connect_socket(channel, s, sa, salen) == -1) - { - int err = SOCKERRNO; - - if (err != EINPROGRESS && err != EWOULDBLOCK) - { - ares__close_socket(channel, s); - return -1; - } - } + if (ares__connect_socket(channel, s, sa, salen) == -1) { + int err = SOCKERRNO; - if (channel->sock_create_cb) - { - int err = channel->sock_create_cb(s, SOCK_STREAM, - channel->sock_create_cb_data); - if (err < 0) - { - ares__close_socket(channel, s); - return err; - } - } - - SOCK_STATE_CALLBACK(channel, s, 1, 0); - server->tcp_buffer_pos = 0; - server->tcp_socket = s; - server->tcp_connection_generation = ++channel->tcp_connection_generation; - return 0; -} - -static int open_udp_socket(ares_channel channel, struct server_state *server) -{ - ares_socket_t s; - ares_socklen_t salen; - union { - struct sockaddr_in sa4; - struct sockaddr_in6 sa6; - } saddr; - struct sockaddr *sa; - - switch (server->addr.family) - { - case AF_INET: - sa = (void *)&saddr.sa4; - salen = sizeof(saddr.sa4); - memset(sa, 0, salen); - saddr.sa4.sin_family = AF_INET; - if (server->addr.udp_port) { - saddr.sa4.sin_port = aresx_sitous(server->addr.udp_port); - } else { - saddr.sa4.sin_port = aresx_sitous(channel->udp_port); - } - memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4, - sizeof(server->addr.addrV4)); - break; - case AF_INET6: - sa = (void *)&saddr.sa6; - salen = sizeof(saddr.sa6); - memset(sa, 0, salen); - saddr.sa6.sin6_family = AF_INET6; - if (server->addr.udp_port) { - saddr.sa6.sin6_port = aresx_sitous(server->addr.udp_port); - } else { - saddr.sa6.sin6_port = aresx_sitous(channel->udp_port); - } - memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6, - sizeof(server->addr.addrV6)); - break; - default: - return -1; /* LCOV_EXCL_LINE */ - } - - /* Acquire a socket. */ - s = ares__open_socket(channel, server->addr.family, SOCK_DGRAM, 0); - if (s == ARES_SOCKET_BAD) - return -1; - - /* Set the socket non-blocking. */ - if (configure_socket(s, server->addr.family, channel) < 0) - { - ares__close_socket(channel, s); - return -1; + if (err != EINPROGRESS && err != EWOULDBLOCK) { + ares__close_socket(channel, s); + return ARES_ECONNREFUSED; } + } - if (channel->sock_config_cb) - { - int err = channel->sock_config_cb(s, SOCK_DGRAM, - channel->sock_config_cb_data); - if (err < 0) - { - ares__close_socket(channel, s); - return err; - } + if (channel->sock_create_cb) { + int err = channel->sock_create_cb(s, SOCK_STREAM, + channel->sock_create_cb_data); + if (err < 0) { + ares__close_socket(channel, s); + return ARES_ECONNREFUSED; } + } - /* Connect to the server. */ - if (ares__connect_socket(channel, s, sa, salen) == -1) - { - int err = SOCKERRNO; + conn = ares_malloc(sizeof(*conn)); + if (conn == NULL) { + ares__close_socket(channel, s); + return ARES_ENOMEM; + } + memset(conn, 0, sizeof(*conn)); + conn->fd = s; + conn->server = server; + conn->queries_to_conn = ares__llist_create(NULL); + conn->is_tcp = is_tcp; + if (conn->queries_to_conn == NULL) { + ares__close_socket(channel, s); + ares_free(conn); + return ARES_ENOMEM; + } - if (err != EINPROGRESS && err != EWOULDBLOCK) - { - ares__close_socket(channel, s); - return -1; - } - } + /* TCP connections are thrown to the end as we don't spawn multiple TCP + * connections. UDP connections are put on front where the newest connection + * can be quickly pulled */ + if (is_tcp) { + node = ares__llist_insert_last(server->connections, conn); + } else { + node = ares__llist_insert_first(server->connections, conn); + } + if (node == NULL) { + ares__close_socket(channel, s); + ares__llist_destroy(conn->queries_to_conn); + ares_free(conn); + return ARES_ENOMEM; + } - if (channel->sock_create_cb) - { - int err = channel->sock_create_cb(s, SOCK_DGRAM, - channel->sock_create_cb_data); - if (err < 0) - { - ares__close_socket(channel, s); - return err; - } - } + /* Register globally to quickly map event on file descriptor to connection + * node object */ + if (!ares__htable_asvp_insert(channel->connnode_by_socket, s, node)) { + ares__close_socket(channel, s); + ares__llist_destroy(conn->queries_to_conn); + ares__llist_node_claim(node); + ares_free(conn); + return ARES_ENOMEM; + } SOCK_STATE_CALLBACK(channel, s, 1, 0); - server->udp_socket = s; - return 0; + if (is_tcp) { + server->tcp_connection_generation = ++channel->tcp_connection_generation; + server->tcp_conn = conn; + } + + return ARES_SUCCESS; } + static int same_questions(const unsigned char *qbuf, int qlen, const unsigned char *abuf, int alen) { @@ -1466,83 +1393,37 @@ static int has_opt_rr(const unsigned char *abuf, int alen) return 0; } -static void end_query (ares_channel channel, struct query *query, int status, - unsigned char *abuf, int alen) +static void ares_detach_query(struct query *query) { - int i; + /* Remove the query from all the lists in which it is linked */ + ares__htable_stvp_remove(query->channel->queries_by_qid, query->qid); + ares__slist_node_destroy(query->node_queries_by_timeout); + ares__llist_node_destroy(query->node_queries_to_conn); + ares__llist_node_destroy(query->node_all_queries); + query->node_queries_by_timeout = NULL; + query->node_queries_to_conn = NULL; + query->node_all_queries = NULL; +} - /* First we check to see if this query ended while one of our send - * queues still has pointers to it. - */ - for (i = 0; i < channel->nservers; i++) - { - struct server_state *server = &channel->servers[i]; - struct send_request *sendreq; - for (sendreq = server->qhead; sendreq; sendreq = sendreq->next) - if (sendreq->owner_query == query) - { - sendreq->owner_query = NULL; - assert(sendreq->data_storage == NULL); - if (status == ARES_SUCCESS) - { - /* We got a reply for this query, but this queued sendreq - * points into this soon-to-be-gone query's tcpbuf. Probably - * this means we timed out and queued the query for - * retransmission, then received a response before actually - * retransmitting. This is perfectly fine, so we want to keep - * the connection running smoothly if we can. But in the worst - * case we may have sent only some prefix of the query, with - * some suffix of the query left to send. Also, the buffer may - * be queued on multiple queues. To prevent dangling pointers - * to the query's tcpbuf and handle these cases, we just give - * such sendreqs their own copy of the query packet. - */ - sendreq->data_storage = ares_malloc(sendreq->len); - if (sendreq->data_storage != NULL) - { - memcpy(sendreq->data_storage, sendreq->data, sendreq->len); - sendreq->data = sendreq->data_storage; - } - } - if ((status != ARES_SUCCESS) || (sendreq->data_storage == NULL)) - { - /* We encountered an error (probably a timeout, suggesting the - * DNS server we're talking to is probably unreachable, - * wedged, or severely overloaded) or we couldn't copy the - * request, so mark the connection as broken. When we get to - * process_broken_connections() we'll close the connection and - * try to re-send requests to another server. - */ - server->is_broken = 1; - /* Just to be paranoid, zero out this sendreq... */ - sendreq->data = NULL; - sendreq->len = 0; - } - } - } +static void end_query(ares_channel channel, struct query *query, int status, + const unsigned char *abuf, int alen) +{ + (void)channel; - /* Invoke the callback */ - query->callback(query->arg, status, query->timeouts, abuf, alen); - ares__free_query(query); + ares_detach_query(query); - /* Simple cleanup policy: if no queries are remaining, close all network - * sockets unless STAYOPEN is set. - */ - if (!(channel->flags & ARES_FLAG_STAYOPEN) && - ares__is_list_empty(&(channel->all_queries))) - { - for (i = 0; i < channel->nservers; i++) - ares__close_sockets(channel, &channel->servers[i]); - } + /* Invoke the callback. */ + query->callback(query->arg, status, query->timeouts, + /* due to prior design flaws, abuf isn't meant to be modified, + * but bad prototypes, ugh. Lets cast off constfor compat. */ + (unsigned char *)((void *)((size_t)abuf)), + alen); + ares__free_query(query); } void ares__free_query(struct query *query) { - /* Remove the query from all the lists in which it is linked */ - ares__remove_from_list(&(query->queries_by_qid)); - ares__remove_from_list(&(query->queries_by_timeout)); - ares__remove_from_list(&(query->queries_to_server)); - ares__remove_from_list(&(query->all_queries)); + ares_detach_query(query); /* Zero out some important stuff, to help catch bugs */ query->callback = NULL; query->arg = NULL; @@ -1555,13 +1436,14 @@ void ares__free_query(struct query *query) ares_socket_t ares__open_socket(ares_channel channel, int af, int type, int protocol) { - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->asocket) { return channel->sock_funcs->asocket(af, type, protocol, channel->sock_func_cb_data); - else - return socket(af, type, protocol); + } + + return socket(af, type, protocol); } int ares__connect_socket(ares_channel channel, @@ -1569,19 +1451,41 @@ int ares__connect_socket(ares_channel channel, const struct sockaddr *addr, ares_socklen_t addrlen) { - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->aconnect) { return channel->sock_funcs->aconnect(sockfd, addr, addrlen, channel->sock_func_cb_data); - else - return connect(sockfd, addr, addrlen); + } + + return connect(sockfd, addr, addrlen); } void ares__close_socket(ares_channel channel, ares_socket_t s) { - if (channel->sock_funcs) + if (channel->sock_funcs && channel->sock_funcs->aclose) { channel->sock_funcs->aclose(s, channel->sock_func_cb_data); - else + } else { sclose(s); + } +} + +#ifndef HAVE_WRITEV +/* Structure for scatter/gather I/O. */ +struct iovec +{ + void *iov_base; /* Pointer to data. */ + size_t iov_len; /* Length of data. */ +}; +#endif + +static ares_ssize_t ares__socket_write(ares_channel channel, ares_socket_t s, const void * data, size_t len) +{ + if (channel->sock_funcs && channel->sock_funcs->asendv) { + struct iovec vec; + vec.iov_base = (void*)data; + vec.iov_len = len; + return channel->sock_funcs->asendv(s, &vec, 1, channel->sock_func_cb_data); + } + return swrite(s, data, len); } diff --git a/deps/cares/src/lib/ares_query.c b/deps/cares/src/lib/ares_query.c index 42323bec55308a..04521d1c850f0c 100644 --- a/deps/cares/src/lib/ares_query.c +++ b/deps/cares/src/lib/ares_query.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -33,24 +44,6 @@ struct qquery { static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen); -static struct query* find_query_by_id(ares_channel channel, unsigned short id) -{ - unsigned short qid; - struct list_node* list_head; - struct list_node* list_node; - DNS_HEADER_SET_QID(((unsigned char*)&qid), id); - - /* Find the query corresponding to this packet. */ - list_head = &(channel->queries_by_qid[qid % ARES_QID_TABLE_SIZE]); - for (list_node = list_head->next; list_node != list_head; - list_node = list_node->next) - { - struct query *q = list_node->data; - if (q->qid == qid) - return q; - } - return NULL; -} /* a unique query id is generated using an rc4 key. Since the id may already be used by a running query (as infrequent as it may be), a lookup is @@ -63,47 +56,59 @@ static unsigned short generate_unique_id(ares_channel channel) do { id = ares__generate_new_id(channel->rand_state); - } while (find_query_by_id(channel, id)); + } while (ares__htable_stvp_get(channel->queries_by_qid, id, NULL)); return (unsigned short)id; } -void ares_query(ares_channel channel, const char *name, int dnsclass, - int type, ares_callback callback, void *arg) +int ares_query_qid(ares_channel channel, const char *name, + int dnsclass, int type, ares_callback callback, + void *arg, unsigned short *qid) { struct qquery *qquery; unsigned char *qbuf; int qlen, rd, status; + unsigned short id = generate_unique_id(channel); /* Compose the query. */ rd = !(channel->flags & ARES_FLAG_NORECURSE); - status = ares_create_query(name, dnsclass, type, channel->next_id, rd, &qbuf, + status = ares_create_query(name, dnsclass, type, id, rd, &qbuf, &qlen, (channel->flags & ARES_FLAG_EDNS) ? channel->ednspsz : 0); if (status != ARES_SUCCESS) { if (qbuf != NULL) ares_free(qbuf); callback(arg, status, 0, NULL, 0); - return; + return status; } - channel->next_id = generate_unique_id(channel); - /* Allocate and fill in the query structure. */ qquery = ares_malloc(sizeof(struct qquery)); if (!qquery) { ares_free_string(qbuf); callback(arg, ARES_ENOMEM, 0, NULL, 0); - return; + return ARES_ENOMEM; } qquery->callback = callback; qquery->arg = arg; /* Send it off. qcallback will be called when we get an answer. */ - ares_send(channel, qbuf, qlen, qcallback, qquery); + status = ares_send_ex(channel, qbuf, qlen, qcallback, qquery); ares_free_string(qbuf); + + if (status == ARES_SUCCESS && qid) + *qid = id; + + return status; +} + +void ares_query(ares_channel channel, const char *name, int dnsclass, + int type, ares_callback callback, void *arg) +{ + ares_query_qid(channel, name, dnsclass, type, callback, arg, NULL); } + static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen) { struct qquery *qquery = (struct qquery *) arg; diff --git a/deps/cares/src/lib/ares_rand.c b/deps/cares/src/lib/ares_rand.c index 766c1e6ea9bda1..99a5a04cff4ba2 100644 --- a/deps/cares/src/lib/ares_rand.c +++ b/deps/cares/src/lib/ares_rand.c @@ -1,17 +1,27 @@ -/* Copyright 1998 by the Massachusetts Institute of Technology. - * Copyright (C) 2007-2013 by Daniel Stenberg +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 2023 Brad House + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -20,12 +30,24 @@ #include "ares_nowarn.h" #include +#if !defined(HAVE_ARC4RANDOM_BUF) && !defined(HAVE_GETRANDOM) && !defined(_WIN32) +# define ARES_NEEDS_RC4 1 +#endif + typedef enum { ARES_RAND_OS = 1, /* OS-provided such as RtlGenRandom or arc4random */ ARES_RAND_FILE = 2, /* OS file-backed random number generator */ +#ifdef ARES_NEEDS_RC4 ARES_RAND_RC4 = 3 /* Internal RC4 based PRNG */ +#endif } ares_rand_backend; + +/* Don't build RC4 code if it goes unused as it will generate dead code + * warnings */ +#ifdef ARES_NEEDS_RC4 +# define ARES_RC4_KEY_LEN 32 /* 256 bits */ + typedef struct ares_rand_rc4 { unsigned char S[256]; @@ -33,30 +55,6 @@ typedef struct ares_rand_rc4 size_t j; } ares_rand_rc4; -struct ares_rand_state -{ - ares_rand_backend type; - union { - FILE *rand_file; - ares_rand_rc4 rc4; - } state; -}; - - -/* Define RtlGenRandom = SystemFunction036. This is in advapi32.dll. There is - * no need to dynamically load this, other software used widely does not. - * http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx - * https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom - */ -#ifdef _WIN32 -BOOLEAN WINAPI SystemFunction036(PVOID RandomBuffer, ULONG RandomBufferLength); -# ifndef RtlGenRandom -# define RtlGenRandom(a,b) SystemFunction036(a,b) -# endif -#endif - - -#define ARES_RC4_KEY_LEN 32 /* 256 bits */ #ifdef _MSC_VER typedef unsigned __int64 cares_u64; @@ -64,6 +62,7 @@ typedef unsigned __int64 cares_u64; typedef unsigned long long cares_u64; #endif + static unsigned int ares_u32_from_ptr(void *addr) { if (sizeof(void *) == 8) { @@ -130,6 +129,7 @@ static void ares_rc4_init(ares_rand_rc4 *rc4_state) rc4_state->j = 0; } + /* Just outputs the key schedule, no need to XOR with any data since we have none */ static void ares_rc4_prng(ares_rand_rc4 *rc4_state, unsigned char *buf, size_t len) { @@ -150,12 +150,47 @@ static void ares_rc4_prng(ares_rand_rc4 *rc4_state, unsigned char *buf, size_t l rc4_state->j = j; } +#endif /* ARES_NEEDS_RC4 */ + + +struct ares_rand_state +{ + ares_rand_backend type; + union { + FILE *rand_file; +#ifdef ARES_NEEDS_RC4 + ares_rand_rc4 rc4; +#endif + } state; + + /* Since except for RC4, random data will likely result in a syscall, lets + * pre-pull 256 bytes at a time. Every query will pull 2 bytes off this so + * that means we should only need a syscall every 128 queries. 256bytes + * appears to be a sweet spot that may be able to be served without + * interruption */ + unsigned char cache[256]; + size_t cache_remaining; +}; + + +/* Define RtlGenRandom = SystemFunction036. This is in advapi32.dll. There is + * no need to dynamically load this, other software used widely does not. + * http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx + * https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom + */ +#ifdef _WIN32 +BOOLEAN WINAPI SystemFunction036(PVOID RandomBuffer, ULONG RandomBufferLength); +# ifndef RtlGenRandom +# define RtlGenRandom(a,b) SystemFunction036(a,b) +# endif +#endif + static int ares__init_rand_engine(ares_rand_state *state) { memset(state, 0, sizeof(*state)); -#if defined(HAVE_ARC4RANDOM_BUF) || defined(_WIN32) +#if defined(HAVE_ARC4RANDOM_BUF) || defined(HAVE_GETRANDOM) || defined(_WIN32) state->type = ARES_RAND_OS; return 1; #elif defined(CARES_RANDOM_FILE) @@ -168,15 +203,17 @@ static int ares__init_rand_engine(ares_rand_state *state) /* Fall-Thru on failure to RC4 */ #endif +#ifdef ARES_NEEDS_RC4 state->type = ARES_RAND_RC4; ares_rc4_init(&state->state.rc4); /* Currently cannot fail */ return 1; +#endif } -ares_rand_state *ares__init_rand_state() +ares_rand_state *ares__init_rand_state(void) { ares_rand_state *state = NULL; @@ -204,8 +241,10 @@ static void ares__clear_rand_state(ares_rand_state *state) case ARES_RAND_FILE: fclose(state->state.rand_file); break; +#ifdef ARES_NEEDS_RC4 case ARES_RAND_RC4: break; +#endif } } @@ -227,7 +266,8 @@ void ares__destroy_rand_state(ares_rand_state *state) } -static void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t len) +static void ares__rand_bytes_fetch(ares_rand_state *state, unsigned char *buf, + size_t len) { while (1) { @@ -241,6 +281,21 @@ static void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t #elif defined(HAVE_ARC4RANDOM_BUF) arc4random_buf(buf, len); return; +#elif defined(HAVE_GETRANDOM) + while (1) { + size_t n = len - bytes_read; + /* getrandom() on Linux always succeeds and is never + * interrupted by a signal when requesting <= 256 bytes. + */ + ssize_t rv = getrandom(buf + bytes_read, n > 256 ? 256 : n, 0); + if (rv <= 0) + continue; /* Just retry. */ + + bytes_read += rv; + if (bytes_read == len) + return; + } + break; #else /* Shouldn't be possible to be here */ break; @@ -258,9 +313,11 @@ static void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t } break; +#ifdef ARES_NEEDS_RC4 case ARES_RAND_RC4: ares_rc4_prng(&state->state.rc4, buf, len); return; +#endif } /* If we didn't return before we got here, that means we had a critical rand @@ -269,6 +326,30 @@ static void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t } } + +void ares__rand_bytes(ares_rand_state *state, unsigned char *buf, size_t len) +{ + /* See if we need to refill the cache to serve the request, but if len is + * excessive, we're not going to update our cache or serve from cache */ + if (len > state->cache_remaining && len < sizeof(state->cache)) { + size_t fetch_size = sizeof(state->cache) - state->cache_remaining; + ares__rand_bytes_fetch(state, state->cache, fetch_size); + state->cache_remaining = sizeof(state->cache); + } + + /* Serve from cache */ + if (len <= state->cache_remaining) { + size_t offset = sizeof(state->cache) - state->cache_remaining; + memcpy(buf, state->cache + offset, len); + state->cache_remaining -= len; + return; + } + + /* Serve direct due to excess size of request */ + ares__rand_bytes_fetch(state, buf, len); +} + + unsigned short ares__generate_new_id(ares_rand_state *state) { unsigned short r=0; diff --git a/deps/cares/src/lib/ares_search.c b/deps/cares/src/lib/ares_search.c index c4b0424f5bab75..d72b4c444e3a2b 100644 --- a/deps/cares/src/lib/ares_search.c +++ b/deps/cares/src/lib/ares_search.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -221,6 +232,11 @@ int ares__cat_domain(const char *name, const char *domain, char **s) return ARES_ENOMEM; memcpy(*s, name, nlen); (*s)[nlen] = '.'; + if (strcmp(domain, ".") == 0) { + /* Avoid appending the root domain to the separator, which would set *s to + an ill-formed value (ending in two consequtive dots). */ + dlen = 0; + } memcpy(*s + nlen + 1, domain, dlen); (*s)[nlen + 1 + dlen] = 0; return ARES_SUCCESS; diff --git a/deps/cares/src/lib/ares_send.c b/deps/cares/src/lib/ares_send.c index 542cf45f11a6a3..95077967205fbd 100644 --- a/deps/cares/src/lib/ares_send.c +++ b/deps/cares/src/lib/ares_send.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -26,8 +37,8 @@ #include "ares_dns.h" #include "ares_private.h" -void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen, - ares_callback callback, void *arg) +int ares_send_ex(ares_channel channel, const unsigned char *qbuf, int qlen, + ares_callback callback, void *arg) { struct query *query; int i, packetsz; @@ -37,26 +48,28 @@ void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen, if (qlen < HFIXEDSZ || qlen >= (1 << 16)) { callback(arg, ARES_EBADQUERY, 0, NULL, 0); - return; + return ARES_EBADQUERY; } if (channel->nservers < 1) { callback(arg, ARES_ESERVFAIL, 0, NULL, 0); - return; + return ARES_ESERVFAIL; } /* Allocate space for query and allocated fields. */ query = ares_malloc(sizeof(struct query)); if (!query) { callback(arg, ARES_ENOMEM, 0, NULL, 0); - return; + return ARES_ENOMEM; } + memset(query, 0, sizeof(*query)); + query->channel = channel; query->tcpbuf = ares_malloc(qlen + 2); if (!query->tcpbuf) { ares_free(query); callback(arg, ARES_ENOMEM, 0, NULL, 0); - return; + return ARES_ENOMEM; } query->server_info = ares_malloc(channel->nservers * sizeof(query->server_info[0])); @@ -65,7 +78,7 @@ void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen, ares_free(query->tcpbuf); ares_free(query); callback(arg, ARES_ENOMEM, 0, NULL, 0); - return; + return ARES_ENOMEM; } /* Compute the query ID. Start with no timeout. */ @@ -109,21 +122,33 @@ void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen, query->timeouts = 0; /* Initialize our list nodes. */ - ares__init_list_node(&(query->queries_by_qid), query); - ares__init_list_node(&(query->queries_by_timeout), query); - ares__init_list_node(&(query->queries_to_server), query); - ares__init_list_node(&(query->all_queries), query); + query->node_queries_by_timeout = NULL; + query->node_queries_to_conn = NULL; /* Chain the query into the list of all queries. */ - ares__insert_in_list(&(query->all_queries), &(channel->all_queries)); + query->node_all_queries = ares__llist_insert_last(channel->all_queries, query); + if (query->node_all_queries == NULL) { + callback(arg, ARES_ENOMEM, 0, NULL, 0); + ares__free_query(query); + return ARES_ENOMEM; + } + /* Keep track of queries bucketed by qid, so we can process DNS * responses quickly. */ - ares__insert_in_list( - &(query->queries_by_qid), - &(channel->queries_by_qid[query->qid % ARES_QID_TABLE_SIZE])); + if (!ares__htable_stvp_insert(channel->queries_by_qid, query->qid, query)) { + callback(arg, ARES_ENOMEM, 0, NULL, 0); + ares__free_query(query); + return ARES_ENOMEM; + } /* Perform the first query action. */ now = ares__tvnow(); - ares__send_query(channel, query, &now); + return ares__send_query(channel, query, &now); +} + +void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen, + ares_callback callback, void *arg) +{ + ares_send_ex(channel, qbuf, qlen, callback, arg); } diff --git a/deps/cares/src/lib/ares_setup.h b/deps/cares/src/lib/ares_setup.h index 6ad2cee6a8c377..b3cf80885078c0 100644 --- a/deps/cares/src/lib/ares_setup.h +++ b/deps/cares/src/lib/ares_setup.h @@ -1,19 +1,30 @@ -#ifndef HEADER_CARES_SETUP_H -#define HEADER_CARES_SETUP_H - - -/* Copyright (C) 2004 - 2012 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2004 Daniel Stenberg * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_SETUP_H +#define HEADER_CARES_SETUP_H /* * Define WIN32 when build target is Win32 API diff --git a/deps/cares/src/lib/ares_strcasecmp.c b/deps/cares/src/lib/ares_strcasecmp.c index f9c85e209666c5..e7fd52740458ef 100644 --- a/deps/cares/src/lib/ares_strcasecmp.c +++ b/deps/cares/src/lib/ares_strcasecmp.c @@ -1,18 +1,28 @@ - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_strcasecmp.h b/deps/cares/src/lib/ares_strcasecmp.h index 57d86f963429ce..31a66be7179d4e 100644 --- a/deps/cares/src/lib/ares_strcasecmp.h +++ b/deps/cares/src/lib/ares_strcasecmp.h @@ -1,21 +1,31 @@ -#ifndef HEADER_CARES_STRCASECMP_H -#define HEADER_CARES_STRCASECMP_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_STRCASECMP_H +#define HEADER_CARES_STRCASECMP_H #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_strdup.c b/deps/cares/src/lib/ares_strdup.c index 39fc8692e75ea0..db5dd1d84b7212 100644 --- a/deps/cares/src/lib/ares_strdup.c +++ b/deps/cares/src/lib/ares_strdup.c @@ -1,18 +1,28 @@ - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_strdup.h b/deps/cares/src/lib/ares_strdup.h index 67f2a74f5f1506..06e8cdccb5f5a4 100644 --- a/deps/cares/src/lib/ares_strdup.h +++ b/deps/cares/src/lib/ares_strdup.h @@ -1,21 +1,31 @@ -#ifndef HEADER_CARES_STRDUP_H -#define HEADER_CARES_STRDUP_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_STRDUP_H +#define HEADER_CARES_STRDUP_H #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_strerror.c b/deps/cares/src/lib/ares_strerror.c index c3ecbd7b43c0e7..7e301ff94f8620 100644 --- a/deps/cares/src/lib/ares_strerror.c +++ b/deps/cares/src/lib/ares_strerror.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/ares_strsplit.c b/deps/cares/src/lib/ares_strsplit.c index d3e90c4a8f6515..985a02dbbf9c7b 100644 --- a/deps/cares/src/lib/ares_strsplit.c +++ b/deps/cares/src/lib/ares_strsplit.c @@ -1,16 +1,27 @@ -/* Copyright (C) 2018 by John Schember +/* MIT License * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Copyright (c) 2018 John Schember + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #if defined(__MVS__) diff --git a/deps/cares/src/lib/ares_strsplit.h b/deps/cares/src/lib/ares_strsplit.h index 009ee51b7b30a4..d3c258fec0d74f 100644 --- a/deps/cares/src/lib/ares_strsplit.h +++ b/deps/cares/src/lib/ares_strsplit.h @@ -1,21 +1,31 @@ +/* MIT License + * + * Copyright (c) 2018 John Schember + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ #ifndef HEADER_CARES_STRSPLIT_H #define HEADER_CARES_STRSPLIT_H -/* Copyright (C) 2018 by John Schember - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - #include "ares_setup.h" /* Split a string on delms skipping empty or duplicate elements. diff --git a/deps/cares/src/lib/ares_timeout.c b/deps/cares/src/lib/ares_timeout.c index 293e4af02161e8..7390ef92635994 100644 --- a/deps/cares/src/lib/ares_timeout.c +++ b/deps/cares/src/lib/ares_timeout.c @@ -1,17 +1,28 @@ - -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -30,59 +41,47 @@ static long timeoffset(struct timeval *now, struct timeval *check) (check->tv_usec - now->tv_usec)/1000; } -/* WARNING: Beware that this is linear in the number of outstanding - * requests! You are probably far better off just calling ares_process() - * once per second, rather than calling ares_timeout() to figure out - * when to next call ares_process(). - */ struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv, struct timeval *tvbuf) { - struct query *query; - struct list_node* list_head; - struct list_node* list_node; - struct timeval now; - struct timeval nextstop; - long offset, min_offset; + struct query *query; + ares__slist_node_t *node; + struct timeval now; + long offset; - /* No queries, no timeout (and no fetch of the current time). */ - if (ares__is_list_empty(&(channel->all_queries))) - return maxtv; + /* The minimum timeout of all queries is always the first entry in + * channel->queries_by_timeout */ + node = ares__slist_node_first(channel->queries_by_timeout); + /* no queries/timeout */ + if (node == NULL) { + return maxtv; /* <-- maxtv can be null though, hrm */ + } + + query = ares__slist_node_val(node); - /* Find the minimum timeout for the current set of queries. */ now = ares__tvnow(); - min_offset = -1; - list_head = &(channel->all_queries); - for (list_node = list_head->next; list_node != list_head; - list_node = list_node->next) - { - query = list_node->data; - if (query->timeout.tv_sec == 0) - continue; - offset = timeoffset(&now, &query->timeout); - if (offset < 0) - offset = 0; - if (min_offset == -1 || offset < min_offset) - min_offset = offset; - } + offset = timeoffset(&now, &query->timeout); + if (offset < 0) + offset = 0; + if (offset > (long)INT_MAX) + offset = INT_MAX; + + tvbuf->tv_sec = offset / 1000; + tvbuf->tv_usec = (offset % 1000) * 1000; - /* If we found a minimum timeout and it's sooner than the one specified in - * maxtv (if any), return it. Otherwise go with maxtv. - */ - if (min_offset != -1) - { - int ioffset = (min_offset > (long)INT_MAX) ? INT_MAX : (int)min_offset; + if (maxtv == NULL) + return tvbuf; - nextstop.tv_sec = ioffset/1000; - nextstop.tv_usec = (ioffset%1000)*1000; + /* Return the minimum time between maxtv and tvbuf */ - if (!maxtv || ares__timedout(maxtv, &nextstop)) - { - *tvbuf = nextstop; - return tvbuf; - } - } + if (tvbuf->tv_sec > maxtv->tv_sec) + return maxtv; + if (tvbuf->tv_sec < maxtv->tv_sec) + return tvbuf; + + if (tvbuf->tv_usec > maxtv->tv_usec) + return maxtv; - return maxtv; + return tvbuf; } diff --git a/deps/cares/src/lib/ares_version.c b/deps/cares/src/lib/ares_version.c index 4f8c42f2c9a34d..b6a62da86d575c 100644 --- a/deps/cares/src/lib/ares_version.c +++ b/deps/cares/src/lib/ares_version.c @@ -1,4 +1,29 @@ - +/* MIT License + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT + */ #include "ares_setup.h" #include "ares.h" diff --git a/deps/cares/src/lib/ares_writev.c b/deps/cares/src/lib/ares_writev.c deleted file mode 100644 index e812c09e1c5ced..00000000000000 --- a/deps/cares/src/lib/ares_writev.c +++ /dev/null @@ -1,79 +0,0 @@ - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - -#include "ares_setup.h" - -#ifdef HAVE_LIMITS_H -# include -#endif - -#include "ares.h" -#include "ares_private.h" - -#ifndef HAVE_WRITEV -ares_ssize_t ares_writev(ares_socket_t s, const struct iovec *iov, int iovcnt) -{ - char *buffer, *bp; - int i; - size_t bytes = 0; - ares_ssize_t result; - - /* Validate iovcnt */ - if (iovcnt <= 0) - { - SET_ERRNO(EINVAL); - return (-1); - } - - /* Validate and find the sum of the iov_len values in the iov array */ - for (i = 0; i < iovcnt; i++) - { - if (iov[i].iov_len > INT_MAX - bytes) - { - SET_ERRNO(EINVAL); - return (-1); - } - bytes += iov[i].iov_len; - } - - if (bytes == 0) - return (0); - - /* Allocate a temporary buffer to hold the data */ - buffer = ares_malloc(bytes); - if (!buffer) - { - SET_ERRNO(ENOMEM); - return (-1); - } - - /* Copy the data into buffer */ - for (bp = buffer, i = 0; i < iovcnt; ++i) - { - memcpy (bp, iov[i].iov_base, iov[i].iov_len); - bp += iov[i].iov_len; - } - - /* Send buffer contents */ - result = swrite(s, buffer, bytes); - - ares_free(buffer); - - return (result); -} -#endif - diff --git a/deps/cares/src/lib/ares_writev.h b/deps/cares/src/lib/ares_writev.h deleted file mode 100644 index 65cea8708fc3db..00000000000000 --- a/deps/cares/src/lib/ares_writev.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef HEADER_CARES_WRITEV_H -#define HEADER_CARES_WRITEV_H - - -/* Copyright 1998 by the Massachusetts Institute of Technology. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - -#include "ares_setup.h" -#include "ares.h" - -#ifndef HAVE_WRITEV - -/* Structure for scatter/gather I/O. */ -struct iovec -{ - void *iov_base; /* Pointer to data. */ - size_t iov_len; /* Length of data. */ -}; - -extern ares_ssize_t ares_writev(ares_socket_t s, const struct iovec *iov, int iovcnt); - -#endif - -#endif /* HEADER_CARES_WRITEV_H */ diff --git a/deps/cares/src/lib/bitncmp.c b/deps/cares/src/lib/bitncmp.c index 1468d4923a5762..5a5a07f8ac020e 100644 --- a/deps/cares/src/lib/bitncmp.c +++ b/deps/cares/src/lib/bitncmp.c @@ -1,4 +1,3 @@ - /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -14,6 +13,8 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #ifndef HAVE_BITNCMP diff --git a/deps/cares/src/lib/bitncmp.h b/deps/cares/src/lib/bitncmp.h index 7b8d66c16629ee..8e39eb510c3943 100644 --- a/deps/cares/src/lib/bitncmp.h +++ b/deps/cares/src/lib/bitncmp.h @@ -1,21 +1,30 @@ -#ifndef __ARES_BITNCMP_H -#define __ARES_BITNCMP_H - - -/* Copyright (C) 2005, 2013 by Dominick Meglio +/* MIT License + * + * Copyright (c) 2005 Dominick Meglio * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef __ARES_BITNCMP_H +#define __ARES_BITNCMP_H #ifndef HAVE_BITNCMP int ares__bitncmp(const void *l, const void *r, int n); diff --git a/deps/cares/src/lib/cares.rc b/deps/cares/src/lib/cares.rc index 6360834deafd86..9275b0796bf4d5 100644 --- a/deps/cares/src/lib/cares.rc +++ b/deps/cares/src/lib/cares.rc @@ -1,17 +1,27 @@ - -/* Copyright (C) 2009-2021 by Daniel Stenberg +/* MIT License + * + * Copyright (c) 2009 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * SPDX-License-Identifier: MIT */ #include diff --git a/deps/cares/src/lib/config-dos.h b/deps/cares/src/lib/config-dos.h index b241d69a5c6660..50b039f5312a73 100644 --- a/deps/cares/src/lib/config-dos.h +++ b/deps/cares/src/lib/config-dos.h @@ -2,9 +2,12 @@ #define HEADER_CONFIG_DOS_H -/* ================================================================ */ -/* ares/config-dos.h - Hand crafted config file for DOS */ -/* ================================================================ */ +/* ================================================================ + * ares/config-dos.h - Hand crafted config file for DOS + * + * Copyright (C) The c-ares project and its contributors + * SPDX-License-Identifier: MIT + * ================================================================ */ #define PACKAGE "c-ares" diff --git a/deps/cares/src/lib/config-win32.h b/deps/cares/src/lib/config-win32.h index cc8e4430a49d23..fb13fed4c78bc7 100644 --- a/deps/cares/src/lib/config-win32.h +++ b/deps/cares/src/lib/config-win32.h @@ -1,18 +1,30 @@ -#ifndef HEADER_CARES_CONFIG_WIN32_H -#define HEADER_CARES_CONFIG_WIN32_H - -/* Copyright (C) 2004 - 2011 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef HEADER_CARES_CONFIG_WIN32_H +#define HEADER_CARES_CONFIG_WIN32_H /* ================================================================ */ /* c-ares/config-win32.h - Hand crafted config file for Windows */ diff --git a/deps/cares/src/lib/inet_net_pton.c b/deps/cares/src/lib/inet_net_pton.c index 7130f0f1e22dd7..d3924c3767ec2a 100644 --- a/deps/cares/src/lib/inet_net_pton.c +++ b/deps/cares/src/lib/inet_net_pton.c @@ -1,4 +1,3 @@ - /* * Copyright (c) 2012 by Gilles Chehade * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -15,6 +14,8 @@ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/lib/inet_ntop.c b/deps/cares/src/lib/inet_ntop.c index 6645c0a46797f7..246d630647b9eb 100644 --- a/deps/cares/src/lib/inet_ntop.c +++ b/deps/cares/src/lib/inet_ntop.c @@ -13,6 +13,8 @@ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" @@ -84,7 +86,7 @@ inet_ntop4(const unsigned char *src, char *dst, size_t size) static const char fmt[] = "%u.%u.%u.%u"; char tmp[sizeof("255.255.255.255")]; - if ((size_t)sprintf(tmp, fmt, src[0], src[1], src[2], src[3]) >= size) { + if ((size_t)snprintf(tmp, sizeof(tmp), fmt, src[0], src[1], src[2], src[3]) >= size) { SET_ERRNO(ENOSPC); return (NULL); } @@ -171,7 +173,7 @@ inet_ntop6(const unsigned char *src, char *dst, size_t size) tp += strlen(tp); break; } - tp += sprintf(tp, "%x", words[i]); + tp += snprintf(tp, sizeof(tmp)-(tp-tmp), "%x", words[i]); } /* Was it a trailing run of 0x00's? */ if (best.base != -1 && (best.base + best.len) == (NS_IN6ADDRSZ / NS_INT16SZ)) diff --git a/deps/cares/src/lib/setup_once.h b/deps/cares/src/lib/setup_once.h index a8cfe6beccddb7..f576797de353b7 100644 --- a/deps/cares/src/lib/setup_once.h +++ b/deps/cares/src/lib/setup_once.h @@ -1,19 +1,30 @@ -#ifndef __SETUP_ONCE_H -#define __SETUP_ONCE_H - - -/* Copyright (C) 2004 - 2013 by Daniel Stenberg et al +/* MIT License + * + * Copyright (c) 2004 Daniel Stenberg + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. M.I.T. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ +#ifndef __SETUP_ONCE_H +#define __SETUP_ONCE_H /******************************************************************** @@ -91,6 +102,10 @@ # endif #endif +#ifdef HAVE_SYS_RANDOM_H +#include +#endif + #ifdef HAVE_SYS_SOCKET_H #include #endif diff --git a/deps/cares/src/lib/windows_port.c b/deps/cares/src/lib/windows_port.c index 03acd1c1e2b701..5977b8493ea843 100644 --- a/deps/cares/src/lib/windows_port.c +++ b/deps/cares/src/lib/windows_port.c @@ -1,3 +1,11 @@ +/********************************************************************** + * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (C) Daniel Stenberg + * + * SPDX-License-Identifier: MIT + * + */ #include "ares_setup.h" diff --git a/deps/cares/src/tools/CMakeLists.txt b/deps/cares/src/tools/CMakeLists.txt index 0c44216fcc4efb..9ee01b4745680c 100644 --- a/deps/cares/src/tools/CMakeLists.txt +++ b/deps/cares/src/tools/CMakeLists.txt @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT IF (CARES_BUILD_TOOLS) # Transform Makefile.inc transform_makefile_inc("Makefile.inc" "${PROJECT_BINARY_DIR}/src/tools/Makefile.inc.cmake") @@ -35,21 +37,4 @@ IF (CARES_BUILD_TOOLS) IF (CARES_INSTALL) INSTALL (TARGETS adig COMPONENT Tools ${TARGETS_INST_DEST}) ENDIF () - - - # Build acountry - ADD_EXECUTABLE (acountry acountry.c ${SAMPLESOURCES}) - TARGET_INCLUDE_DIRECTORIES (acountry - PUBLIC "$" - "$" - "$" - "$" - "$" - PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" - ) - TARGET_COMPILE_DEFINITIONS (acountry PRIVATE HAVE_CONFIG_H=1) - TARGET_LINK_LIBRARIES (acountry PRIVATE ${PROJECT_NAME}) - IF (CARES_INSTALL) - INSTALL (TARGETS acountry COMPONENT Tools ${TARGETS_INST_DEST}) - ENDIF () ENDIF () diff --git a/deps/cares/src/tools/Makefile.am b/deps/cares/src/tools/Makefile.am index 2ea6376f6a5f9e..8ca33a93e01559 100644 --- a/deps/cares/src/tools/Makefile.am +++ b/deps/cares/src/tools/Makefile.am @@ -1,5 +1,7 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 -PROGS = ahost adig acountry +PROGS = ahost adig EXTRA_DIST = CMakeLists.txt Makefile.inc @@ -32,7 +34,3 @@ ahost_CPPFLAGS = $(AM_CPPFLAGS) adig_SOURCES = adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) adig_CFLAGS = $(AM_CFLAGS) adig_CPPFLAGS = $(AM_CPPFLAGS) - -acountry_SOURCES = acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) -acountry_CFLAGS = $(AM_CFLAGS) -acountry_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/deps/cares/src/tools/Makefile.in b/deps/cares/src/tools/Makefile.in index 9e64462d5912ce..048b1e8b0c11cd 100644 --- a/deps/cares/src/tools/Makefile.in +++ b/deps/cares/src/tools/Makefile.in @@ -124,43 +124,31 @@ CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h \ $(top_builddir)/include/ares_build.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -am__EXEEXT_1 = ahost$(EXEEXT) adig$(EXEEXT) acountry$(EXEEXT) +am__EXEEXT_1 = ahost$(EXEEXT) adig$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp -am__objects_1 = acountry-ares_getopt.$(OBJEXT) \ - ../lib/acountry-ares_nowarn.$(OBJEXT) \ - ../lib/acountry-ares_strcasecmp.$(OBJEXT) +am__objects_1 = adig-ares_getopt.$(OBJEXT) \ + ../lib/adig-ares_nowarn.$(OBJEXT) \ + ../lib/adig-ares_strcasecmp.$(OBJEXT) am__objects_2 = -am_acountry_OBJECTS = acountry-acountry.$(OBJEXT) $(am__objects_1) \ +am_adig_OBJECTS = adig-adig.$(OBJEXT) $(am__objects_1) \ $(am__objects_2) -acountry_OBJECTS = $(am_acountry_OBJECTS) -acountry_LDADD = $(LDADD) +adig_OBJECTS = $(am_adig_OBJECTS) +adig_LDADD = $(LDADD) am__DEPENDENCIES_1 = -acountry_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la \ +adig_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -acountry_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(acountry_CFLAGS) \ - $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_3 = adig-ares_getopt.$(OBJEXT) \ - ../lib/adig-ares_nowarn.$(OBJEXT) \ - ../lib/adig-ares_strcasecmp.$(OBJEXT) -am_adig_OBJECTS = adig-adig.$(OBJEXT) $(am__objects_3) \ - $(am__objects_2) -adig_OBJECTS = $(am_adig_OBJECTS) -adig_LDADD = $(LDADD) -adig_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la \ - $(am__DEPENDENCIES_1) adig_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(adig_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -am__objects_4 = ahost-ares_getopt.$(OBJEXT) \ +am__objects_3 = ahost-ares_getopt.$(OBJEXT) \ ../lib/ahost-ares_nowarn.$(OBJEXT) \ ../lib/ahost-ares_strcasecmp.$(OBJEXT) -am_ahost_OBJECTS = ahost-ahost.$(OBJEXT) $(am__objects_4) \ +am_ahost_OBJECTS = ahost-ahost.$(OBJEXT) $(am__objects_3) \ $(am__objects_2) ahost_OBJECTS = $(am_ahost_OBJECTS) ahost_LDADD = $(LDADD) @@ -184,16 +172,12 @@ am__v_at_1 = DEFAULT_INCLUDES = depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../lib/$(DEPDIR)/acountry-ares_nowarn.Po \ - ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po \ - ../lib/$(DEPDIR)/adig-ares_nowarn.Po \ +am__depfiles_remade = ../lib/$(DEPDIR)/adig-ares_nowarn.Po \ ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po \ ../lib/$(DEPDIR)/ahost-ares_nowarn.Po \ ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po \ - ./$(DEPDIR)/acountry-acountry.Po \ - ./$(DEPDIR)/acountry-ares_getopt.Po ./$(DEPDIR)/adig-adig.Po \ - ./$(DEPDIR)/adig-ares_getopt.Po ./$(DEPDIR)/ahost-ahost.Po \ - ./$(DEPDIR)/ahost-ares_getopt.Po + ./$(DEPDIR)/adig-adig.Po ./$(DEPDIR)/adig-ares_getopt.Po \ + ./$(DEPDIR)/ahost-ahost.Po ./$(DEPDIR)/ahost-ares_getopt.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -213,8 +197,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(acountry_SOURCES) $(adig_SOURCES) $(ahost_SOURCES) -DIST_SOURCES = $(acountry_SOURCES) $(adig_SOURCES) $(ahost_SOURCES) +SOURCES = $(adig_SOURCES) $(ahost_SOURCES) +DIST_SOURCES = $(adig_SOURCES) $(ahost_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -386,8 +370,11 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 -PROGS = ahost adig acountry +PROGS = ahost adig EXTRA_DIST = CMakeLists.txt Makefile.inc # Specify our include paths here, and do it relative to $(top_srcdir) and @@ -397,6 +384,9 @@ EXTRA_DIST = CMakeLists.txt Makefile.inc AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_builddir)/src/lib \ -I$(top_srcdir)/include -I$(top_srcdir)/src/lib \ $(am__append_1) + +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT SAMPLESOURCES = ares_getopt.c \ ../lib/ares_nowarn.c \ ../lib/ares_strcasecmp.c @@ -415,9 +405,6 @@ ahost_CPPFLAGS = $(AM_CPPFLAGS) adig_SOURCES = adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) adig_CFLAGS = $(AM_CFLAGS) adig_CPPFLAGS = $(AM_CPPFLAGS) -acountry_SOURCES = acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) -acountry_CFLAGS = $(AM_CFLAGS) -acountry_CPPFLAGS = $(AM_CPPFLAGS) all: all-am .SUFFIXES: @@ -467,14 +454,6 @@ clean-noinstPROGRAMS: ../lib/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) ../lib/$(DEPDIR) @: > ../lib/$(DEPDIR)/$(am__dirstamp) -../lib/acountry-ares_nowarn.$(OBJEXT): ../lib/$(am__dirstamp) \ - ../lib/$(DEPDIR)/$(am__dirstamp) -../lib/acountry-ares_strcasecmp.$(OBJEXT): ../lib/$(am__dirstamp) \ - ../lib/$(DEPDIR)/$(am__dirstamp) - -acountry$(EXEEXT): $(acountry_OBJECTS) $(acountry_DEPENDENCIES) $(EXTRA_acountry_DEPENDENCIES) - @rm -f acountry$(EXEEXT) - $(AM_V_CCLD)$(acountry_LINK) $(acountry_OBJECTS) $(acountry_LDADD) $(LIBS) ../lib/adig-ares_nowarn.$(OBJEXT): ../lib/$(am__dirstamp) \ ../lib/$(DEPDIR)/$(am__dirstamp) ../lib/adig-ares_strcasecmp.$(OBJEXT): ../lib/$(am__dirstamp) \ @@ -499,14 +478,10 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/acountry-ares_nowarn.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/adig-ares_nowarn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/adig-ares_strcasecmp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/ahost-ares_nowarn.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acountry-acountry.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acountry-ares_getopt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adig-adig.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adig-ares_getopt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ahost-ahost.Po@am__quote@ # am--include-marker @@ -542,62 +517,6 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< -acountry-acountry.o: acountry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-acountry.o -MD -MP -MF $(DEPDIR)/acountry-acountry.Tpo -c -o acountry-acountry.o `test -f 'acountry.c' || echo '$(srcdir)/'`acountry.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-acountry.Tpo $(DEPDIR)/acountry-acountry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acountry.c' object='acountry-acountry.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-acountry.o `test -f 'acountry.c' || echo '$(srcdir)/'`acountry.c - -acountry-acountry.obj: acountry.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-acountry.obj -MD -MP -MF $(DEPDIR)/acountry-acountry.Tpo -c -o acountry-acountry.obj `if test -f 'acountry.c'; then $(CYGPATH_W) 'acountry.c'; else $(CYGPATH_W) '$(srcdir)/acountry.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-acountry.Tpo $(DEPDIR)/acountry-acountry.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acountry.c' object='acountry-acountry.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-acountry.obj `if test -f 'acountry.c'; then $(CYGPATH_W) 'acountry.c'; else $(CYGPATH_W) '$(srcdir)/acountry.c'; fi` - -acountry-ares_getopt.o: ares_getopt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-ares_getopt.o -MD -MP -MF $(DEPDIR)/acountry-ares_getopt.Tpo -c -o acountry-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-ares_getopt.Tpo $(DEPDIR)/acountry-ares_getopt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='acountry-ares_getopt.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c - -acountry-ares_getopt.obj: ares_getopt.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-ares_getopt.obj -MD -MP -MF $(DEPDIR)/acountry-ares_getopt.Tpo -c -o acountry-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-ares_getopt.Tpo $(DEPDIR)/acountry-ares_getopt.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='acountry-ares_getopt.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` - -../lib/acountry-ares_nowarn.o: ../lib/ares_nowarn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_nowarn.o -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo -c -o ../lib/acountry-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo ../lib/$(DEPDIR)/acountry-ares_nowarn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/acountry-ares_nowarn.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c - -../lib/acountry-ares_nowarn.obj: ../lib/ares_nowarn.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_nowarn.obj -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo -c -o ../lib/acountry-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo ../lib/$(DEPDIR)/acountry-ares_nowarn.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/acountry-ares_nowarn.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` - -../lib/acountry-ares_strcasecmp.o: ../lib/ares_strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_strcasecmp.o -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo -c -o ../lib/acountry-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/acountry-ares_strcasecmp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c - -../lib/acountry-ares_strcasecmp.obj: ../lib/ares_strcasecmp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_strcasecmp.obj -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo -c -o ../lib/acountry-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/acountry-ares_strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` - adig-adig.o: adig.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT adig-adig.o -MD -MP -MF $(DEPDIR)/adig-adig.Tpo -c -o adig-adig.o `test -f 'adig.c' || echo '$(srcdir)/'`adig.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adig-adig.Tpo $(DEPDIR)/adig-adig.Po @@ -842,14 +761,10 @@ clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am - -rm -f ../lib/$(DEPDIR)/acountry-ares_nowarn.Po - -rm -f ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po - -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po -rm -f ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po -rm -f ../lib/$(DEPDIR)/ahost-ares_nowarn.Po -rm -f ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po - -rm -f ./$(DEPDIR)/acountry-acountry.Po - -rm -f ./$(DEPDIR)/acountry-ares_getopt.Po -rm -f ./$(DEPDIR)/adig-adig.Po -rm -f ./$(DEPDIR)/adig-ares_getopt.Po -rm -f ./$(DEPDIR)/ahost-ahost.Po @@ -899,14 +814,10 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ../lib/$(DEPDIR)/acountry-ares_nowarn.Po - -rm -f ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po - -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po -rm -f ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po -rm -f ../lib/$(DEPDIR)/ahost-ares_nowarn.Po -rm -f ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po - -rm -f ./$(DEPDIR)/acountry-acountry.Po - -rm -f ./$(DEPDIR)/acountry-ares_getopt.Po -rm -f ./$(DEPDIR)/adig-adig.Po -rm -f ./$(DEPDIR)/adig-ares_getopt.Po -rm -f ./$(DEPDIR)/ahost-ahost.Po diff --git a/deps/cares/src/tools/Makefile.inc b/deps/cares/src/tools/Makefile.inc index 7aea8e5f259eea..4e3850e0e7dc5f 100644 --- a/deps/cares/src/tools/Makefile.inc +++ b/deps/cares/src/tools/Makefile.inc @@ -1,3 +1,5 @@ +# Copyright (C) The c-ares project and its contributors +# SPDX-License-Identifier: MIT SAMPLESOURCES = ares_getopt.c \ ../lib/ares_nowarn.c \ ../lib/ares_strcasecmp.c diff --git a/deps/cares/src/tools/acountry.c b/deps/cares/src/tools/acountry.c deleted file mode 100644 index 00a6e67e138394..00000000000000 --- a/deps/cares/src/tools/acountry.c +++ /dev/null @@ -1,655 +0,0 @@ -/* - * - * IP-address/hostname to country converter. - * - * Problem; you want to know where IP a.b.c.d is located. - * - * Use ares_gethostbyname ("d.c.b.a.zz.countries.nerd.dk") - * and get the CNAME (host->h_name). Result will be: - * CNAME = zz.countries.nerd.dk with address 127.0.x.y (ver 1) or - * CNAME = .zz.countries.nerd.dk with address 127.0.x.y (ver 2) - * - * The 2 letter country code is in and the ISO-3166 country - * number is in x.y (number = x*256 + y). Version 2 of the protocol is missing - * the number. - * - * Ref: http://countries.nerd.dk/more.html - * - * Written by G. Vanem 2006, 2007 - * - * NB! This program may not be big-endian aware. - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. - */ - -#include "ares_setup.h" - -#ifdef HAVE_STRINGS_H -#include -#endif - -#if defined(WIN32) && !defined(WATT32) - #include -#else - #include - #include - #include -#endif - -#include "ares.h" -#include "ares_getopt.h" -#include "ares_nowarn.h" - -#ifndef HAVE_STRDUP -# include "ares_strdup.h" -# define strdup(ptr) ares_strdup(ptr) -#endif - -#ifndef HAVE_STRCASECMP -# include "ares_strcasecmp.h" -# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2) -#endif - -#ifndef HAVE_STRNCASECMP -# include "ares_strcasecmp.h" -# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n) -#endif - -#ifndef INADDR_NONE -#define INADDR_NONE 0xffffffff -#endif - -/* By using a double cast, we can get rid of the bogus warning of - * warning: cast from 'const struct sockaddr *' to 'const struct sockaddr_in6 *' increases required alignment from 1 to 4 [-Wcast-align] - */ -#define CARES_INADDR_CAST(type, var) ((type)((void *)var)) - -static const char *usage = "acountry [-?hdv] {host|addr} ...\n"; -static const char nerd_fmt[] = "%u.%u.%u.%u.zz.countries.nerd.dk"; -static const char *nerd_ver1 = nerd_fmt + 14; /* .countries.nerd.dk */ -static const char *nerd_ver2 = nerd_fmt + 11; /* .zz.countries.nerd.dk */ -static int verbose = 0; - -#define TRACE(fmt) do { \ - if (verbose > 0) \ - printf fmt ; \ - } WHILE_FALSE - -static void wait_ares(ares_channel channel); -static void callback(void *arg, int status, int timeouts, struct hostent *host); -static void callback2(void *arg, int status, int timeouts, struct hostent *host); -static void find_country_from_cname(const char *cname, struct in_addr addr); -static void print_help_info_acountry(void); - -static void Abort(const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - vfprintf(stderr, fmt, args); - va_end(args); - exit(1); -} - -int main(int argc, char **argv) -{ - ares_channel channel; - int ch, status; - -#if defined(WIN32) && !defined(WATT32) - WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); - WSADATA wsaData; - WSAStartup(wVersionRequested, &wsaData); -#endif - - status = ares_library_init(ARES_LIB_INIT_ALL); - if (status != ARES_SUCCESS) - { - fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status)); - return 1; - } - - while ((ch = ares_getopt(argc, argv, "dvh?")) != -1) - switch (ch) - { - case 'd': -#ifdef WATT32 - dbug_init(); -#endif - break; - case 'v': - verbose++; - break; - case 'h': - print_help_info_acountry(); - break; - case '?': - print_help_info_acountry(); - break; - default: - Abort(usage); - } - - argc -= optind; - argv += optind; - if (argc < 1) - Abort(usage); - - status = ares_init(&channel); - if (status != ARES_SUCCESS) - { - fprintf(stderr, "ares_init: %s\n", ares_strerror(status)); - return 1; - } - - /* Initiate the queries, one per command-line argument. */ - for ( ; *argv; argv++) - { - struct in_addr addr; - char *buf; - - /* If this fails, assume '*argv' is a host-name that - * must be resolved first - */ - if (ares_inet_pton(AF_INET, *argv, &addr) != 1) - { - ares_gethostbyname(channel, *argv, AF_INET, callback2, &addr); - wait_ares(channel); - if (addr.s_addr == INADDR_NONE) - { - printf("Failed to lookup %s\n", *argv); - continue; - } - } - - buf = malloc(100); - sprintf(buf, nerd_fmt, - (unsigned int)(addr.s_addr >> 24), - (unsigned int)((addr.s_addr >> 16) & 255), - (unsigned int)((addr.s_addr >> 8) & 255), - (unsigned int)(addr.s_addr & 255)); - TRACE(("Looking up %s...", buf)); - fflush(stdout); - ares_gethostbyname(channel, buf, AF_INET, callback, buf); - } - - wait_ares(channel); - ares_destroy(channel); - - ares_library_cleanup(); - -#if defined(WIN32) && !defined(WATT32) - WSACleanup(); -#endif - - return 0; -} - -/* - * Wait for the queries to complete. - */ -static void wait_ares(ares_channel channel) -{ - for (;;) - { - struct timeval *tvp, tv; - fd_set read_fds, write_fds; - int nfds; - - FD_ZERO(&read_fds); - FD_ZERO(&write_fds); - nfds = ares_fds(channel, &read_fds, &write_fds); - if (nfds == 0) - break; - tvp = ares_timeout(channel, NULL, &tv); - nfds = select(nfds, &read_fds, &write_fds, NULL, tvp); - if (nfds < 0) - continue; - ares_process(channel, &read_fds, &write_fds); - } -} - -/* - * This is the callback used when we have the IP-address of interest. - * Extract the CNAME and figure out the country-code from it. - */ -static void callback(void *arg, int status, int timeouts, struct hostent *host) -{ - const char *name = (const char*)arg; - const char *cname; - char buf[20]; - - (void)timeouts; - - if (!host || status != ARES_SUCCESS) - { - printf("Failed to lookup %s: %s\n", name, ares_strerror(status)); - free(arg); - return; - } - - TRACE(("\nFound address %s, name %s\n", - ares_inet_ntop(AF_INET,(const char*)host->h_addr,buf,sizeof(buf)), - host->h_name)); - - cname = host->h_name; /* CNAME gets put here */ - if (!cname) - printf("Failed to get CNAME for %s\n", name); - else - find_country_from_cname(cname, *(CARES_INADDR_CAST(struct in_addr *, host->h_addr))); - free(arg); -} - -/* - * This is the callback used to obtain the IP-address of the host of interest. - */ -static void callback2(void *arg, int status, int timeouts, struct hostent *host) -{ - struct in_addr *addr = (struct in_addr*) arg; - - (void)timeouts; - if (!host || status != ARES_SUCCESS) - memset(addr, INADDR_NONE, sizeof(*addr)); - else - memcpy(addr, host->h_addr, sizeof(*addr)); -} - -struct search_list { - int country_number; /* ISO-3166 country number */ - char short_name[3]; /* A2 short country code */ - const char *long_name; /* normal country name */ - }; - -static const struct search_list *list_lookup(int number, const struct search_list *list, int num) -{ - while (num > 0 && list->long_name) - { - if (list->country_number == number) - return (list); - num--; - list++; - } - return (NULL); -} - -/* - * Ref: https://en.wikipedia.org/wiki/ISO_3166-1 - */ -static const struct search_list country_list[] = { - { 4, "af", "Afghanistan" }, - { 248, "ax", "Åland Island" }, - { 8, "al", "Albania" }, - { 12, "dz", "Algeria" }, - { 16, "as", "American Samoa" }, - { 20, "ad", "Andorra" }, - { 24, "ao", "Angola" }, - { 660, "ai", "Anguilla" }, - { 10, "aq", "Antarctica" }, - { 28, "ag", "Antigua & Barbuda" }, - { 32, "ar", "Argentina" }, - { 51, "am", "Armenia" }, - { 533, "aw", "Aruba" }, - { 36, "au", "Australia" }, - { 40, "at", "Austria" }, - { 31, "az", "Azerbaijan" }, - { 44, "bs", "Bahamas" }, - { 48, "bh", "Bahrain" }, - { 50, "bd", "Bangladesh" }, - { 52, "bb", "Barbados" }, - { 112, "by", "Belarus" }, - { 56, "be", "Belgium" }, - { 84, "bz", "Belize" }, - { 204, "bj", "Benin" }, - { 60, "bm", "Bermuda" }, - { 64, "bt", "Bhutan" }, - { 68, "bo", "Bolivia" }, - { 535, "bq", "Bonaire, Sint Eustatius and Saba" }, /* Formerly 'Bonaire' / 'Netherlands Antilles' */ - { 70, "ba", "Bosnia & Herzegovina" }, - { 72, "bw", "Botswana" }, - { 74, "bv", "Bouvet Island" }, - { 76, "br", "Brazil" }, - { 86, "io", "British Indian Ocean Territory" }, - { 96, "bn", "Brunei Darussalam" }, - { 100, "bg", "Bulgaria" }, - { 854, "bf", "Burkina Faso" }, - { 108, "bi", "Burundi" }, - { 116, "kh", "Cambodia" }, - { 120, "cm", "Cameroon" }, - { 124, "ca", "Canada" }, - { 132, "cv", "Cape Verde" }, - { 136, "ky", "Cayman Islands" }, - { 140, "cf", "Central African Republic" }, - { 148, "td", "Chad" }, - { 152, "cl", "Chile" }, - { 156, "cn", "China" }, - { 162, "cx", "Christmas Island" }, - { 166, "cc", "Cocos Islands" }, - { 170, "co", "Colombia" }, - { 174, "km", "Comoros" }, - { 178, "cg", "Congo" }, - { 180, "cd", "Congo" }, - { 184, "ck", "Cook Islands" }, - { 188, "cr", "Costa Rica" }, - { 384, "ci", "Cote d'Ivoire" }, - { 191, "hr", "Croatia" }, - { 192, "cu", "Cuba" }, - { 531, "cw", "Curaçao" }, - { 196, "cy", "Cyprus" }, - { 203, "cz", "Czech Republic" }, - { 208, "dk", "Denmark" }, - { 262, "dj", "Djibouti" }, - { 212, "dm", "Dominica" }, - { 214, "do", "Dominican Republic" }, - { 218, "ec", "Ecuador" }, - { 818, "eg", "Egypt" }, - { 222, "sv", "El Salvador" }, - { 226, "gq", "Equatorial Guinea" }, - { 232, "er", "Eritrea" }, - { 233, "ee", "Estonia" }, - { 748, "sz", "Eswatini" }, /* Formerly Swaziland */ - { 231, "et", "Ethiopia" }, - { 65281, "eu", "European Union" }, /* 127.0.255.1 */ - { 238, "fk", "Falkland Islands" }, - { 234, "fo", "Faroe Islands" }, - { 242, "fj", "Fiji" }, - { 246, "fi", "Finland" }, - { 250, "fr", "France" }, - { 249, "fx", "France, Metropolitan" }, - { 254, "gf", "French Guiana" }, - { 258, "pf", "French Polynesia" }, - { 260, "tf", "French Southern Territories" }, - { 266, "ga", "Gabon" }, - { 270, "gm", "Gambia" }, - { 268, "ge", "Georgia" }, - { 276, "de", "Germany" }, - { 288, "gh", "Ghana" }, - { 292, "gi", "Gibraltar" }, - { 300, "gr", "Greece" }, - { 304, "gl", "Greenland" }, - { 308, "gd", "Grenada" }, - { 312, "gp", "Guadeloupe" }, - { 316, "gu", "Guam" }, - { 320, "gt", "Guatemala" }, - { 831, "gg", "Guernsey" }, - { 324, "gn", "Guinea" }, - { 624, "gw", "Guinea-Bissau" }, - { 328, "gy", "Guyana" }, - { 332, "ht", "Haiti" }, - { 334, "hm", "Heard & Mc Donald Islands" }, - { 336, "va", "Holy See" }, /* Vatican City */ - { 340, "hn", "Honduras" }, - { 344, "hk", "Hong kong" }, - { 348, "hu", "Hungary" }, - { 352, "is", "Iceland" }, - { 356, "in", "India" }, - { 360, "id", "Indonesia" }, - { 364, "ir", "Iran" }, - { 368, "iq", "Iraq" }, - { 372, "ie", "Ireland" }, - { 833, "im", "Isle of Man" }, - { 376, "il", "Israel" }, - { 380, "it", "Italy" }, - { 388, "jm", "Jamaica" }, - { 392, "jp", "Japan" }, - { 832, "je", "Jersey" }, - { 400, "jo", "Jordan" }, - { 398, "kz", "Kazakhstan" }, - { 404, "ke", "Kenya" }, - { 296, "ki", "Kiribati" }, - { 408, "kp", "Korea (north)" }, - { 410, "kr", "Korea (south)" }, - { 0, "xk", "Kosovo" }, /* https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 */ - { 414, "kw", "Kuwait" }, - { 417, "kg", "Kyrgyzstan" }, - { 418, "la", "Laos" }, - { 428, "lv", "Latvia" }, - { 422, "lb", "Lebanon" }, - { 426, "ls", "Lesotho" }, - { 430, "lr", "Liberia" }, - { 434, "ly", "Libya" }, - { 438, "li", "Liechtenstein" }, - { 440, "lt", "Lithuania" }, - { 442, "lu", "Luxembourg" }, - { 446, "mo", "Macao" }, - { 450, "mg", "Madagascar" }, - { 454, "mw", "Malawi" }, - { 458, "my", "Malaysia" }, - { 462, "mv", "Maldives" }, - { 466, "ml", "Mali" }, - { 470, "mt", "Malta" }, - { 584, "mh", "Marshall Islands" }, - { 474, "mq", "Martinique" }, - { 478, "mr", "Mauritania" }, - { 480, "mu", "Mauritius" }, - { 175, "yt", "Mayotte" }, - { 484, "mx", "Mexico" }, - { 583, "fm", "Micronesia" }, - { 498, "md", "Moldova" }, - { 492, "mc", "Monaco" }, - { 496, "mn", "Mongolia" }, - { 499, "me", "Montenegro" }, - { 500, "ms", "Montserrat" }, - { 504, "ma", "Morocco" }, - { 508, "mz", "Mozambique" }, - { 104, "mm", "Myanmar" }, - { 516, "na", "Namibia" }, - { 520, "nr", "Nauru" }, - { 524, "np", "Nepal" }, - { 528, "nl", "Netherlands" }, - { 540, "nc", "New Caledonia" }, - { 554, "nz", "New Zealand" }, - { 558, "ni", "Nicaragua" }, - { 562, "ne", "Niger" }, - { 566, "ng", "Nigeria" }, - { 570, "nu", "Niue" }, - { 574, "nf", "Norfolk Island" }, - { 807, "mk", "North Macedonia" }, /* 'Macedonia' until February 2019 */ - { 580, "mp", "Northern Mariana Islands" }, - { 578, "no", "Norway" }, - { 512, "om", "Oman" }, - { 586, "pk", "Pakistan" }, - { 585, "pw", "Palau" }, - { 275, "ps", "Palestinian Territory" }, - { 591, "pa", "Panama" }, - { 598, "pg", "Papua New Guinea" }, - { 600, "py", "Paraguay" }, - { 604, "pe", "Peru" }, - { 608, "ph", "Philippines" }, - { 612, "pn", "Pitcairn" }, - { 616, "pl", "Poland" }, - { 620, "pt", "Portugal" }, - { 630, "pr", "Puerto Rico" }, - { 634, "qa", "Qatar" }, - { 638, "re", "Reunion" }, - { 642, "ro", "Romania" }, - { 643, "ru", "Russian Federation" }, - { 646, "rw", "Rwanda" }, - { 0, "bl", "Saint Barthélemy" }, /* https://en.wikipedia.org/wiki/ISO_3166-2:BL */ - { 659, "kn", "Saint Kitts & Nevis" }, - { 662, "lc", "Saint Lucia" }, - { 663, "mf", "Saint Martin" }, - { 670, "vc", "Saint Vincent" }, - { 882, "ws", "Samoa" }, - { 674, "sm", "San Marino" }, - { 678, "st", "Sao Tome & Principe" }, - { 682, "sa", "Saudi Arabia" }, - { 686, "sn", "Senegal" }, - { 688, "rs", "Serbia" }, - { 690, "sc", "Seychelles" }, - { 694, "sl", "Sierra Leone" }, - { 702, "sg", "Singapore" }, - { 534, "sx", "Sint Maarten" }, - { 703, "sk", "Slovakia" }, - { 705, "si", "Slovenia" }, - { 90, "sb", "Solomon Islands" }, - { 706, "so", "Somalia" }, - { 710, "za", "South Africa" }, - { 239, "gs", "South Georgia & South Sandwich Is." }, - { 728, "ss", "South Sudan" }, - { 724, "es", "Spain" }, - { 144, "lk", "Sri Lanka" }, - { 654, "sh", "St. Helena" }, - { 666, "pm", "St. Pierre & Miquelon" }, - { 736, "sd", "Sudan" }, - { 740, "sr", "Suriname" }, - { 744, "sj", "Svalbard & Jan Mayen Islands" }, - { 752, "se", "Sweden" }, - { 756, "ch", "Switzerland" }, - { 760, "sy", "Syrian Arab Republic" }, - { 158, "tw", "Taiwan" }, - { 762, "tj", "Tajikistan" }, - { 834, "tz", "Tanzania" }, - { 764, "th", "Thailand" }, - { 626, "tl", "Timor-Leste" }, - { 768, "tg", "Togo" }, - { 772, "tk", "Tokelau" }, - { 776, "to", "Tonga" }, - { 780, "tt", "Trinidad & Tobago" }, - { 788, "tn", "Tunisia" }, - { 792, "tr", "Turkey" }, - { 795, "tm", "Turkmenistan" }, - { 796, "tc", "Turks & Caicos Islands" }, - { 798, "tv", "Tuvalu" }, - { 800, "ug", "Uganda" }, - { 804, "ua", "Ukraine" }, - { 784, "ae", "United Arab Emirates" }, - { 826, "gb", "United Kingdom" }, - { 840, "us", "United States" }, - { 581, "um", "United States Minor Outlying Islands" }, - { 858, "uy", "Uruguay" }, - { 860, "uz", "Uzbekistan" }, - { 548, "vu", "Vanuatu" }, - { 862, "ve", "Venezuela" }, - { 704, "vn", "Vietnam" }, - { 92, "vg", "Virgin Islands (British)" }, - { 850, "vi", "Virgin Islands (US)" }, - { 876, "wf", "Wallis & Futuna Islands" }, - { 732, "eh", "Western Sahara" }, - { 887, "ye", "Yemen" }, - { 894, "zm", "Zambia" }, - { 716, "zw", "Zimbabwe" } - }; - -/* - * Check if start of 'str' is simply an IPv4 address. - */ -#define BYTE_OK(x) ((x) >= 0 && (x) <= 255) - -static int is_addr(char *str, char **end) -{ - int a0, a1, a2, a3, num, rc = 0, length = 0; - - num = sscanf(str,"%3d.%3d.%3d.%3d%n",&a0,&a1,&a2,&a3,&length); - if( (num == 4) && - BYTE_OK(a0) && BYTE_OK(a1) && BYTE_OK(a2) && BYTE_OK(a3) && - length >= (3+4)) - { - rc = 1; - *end = str + length; - } - return rc; -} - -/* - * Find the country-code and name from the CNAME. E.g.: - * version 1: CNAME = zzno.countries.nerd.dk with address 127.0.2.66 - * yields ccode_A" = "no" and cnumber 578 (2.66). - * version 2: CNAME = .zz.countries.nerd.dk with address 127.0.2.66 - * yields cnumber 578 (2.66). ccode_A is ""; - */ -static void find_country_from_cname(const char *cname, struct in_addr addr) -{ - const struct search_list *country; - char ccode_A2[3], *ccopy, *dot_4; - int cnumber, z0, z1, ver_1, ver_2; - unsigned long ip; - - ip = ntohl(addr.s_addr); - z0 = TOLOWER(cname[0]); - z1 = TOLOWER(cname[1]); - ccopy = strdup(cname); - dot_4 = NULL; - - ver_1 = (z0 == 'z' && z1 == 'z' && !strcasecmp(cname+4,nerd_ver1)); - ver_2 = (is_addr(ccopy,&dot_4) && !strcasecmp(dot_4,nerd_ver2)); - - if (ver_1) - { - const char *dot = strchr(cname, '.'); - if (dot != cname+4) - { - printf("Unexpected CNAME %s (ver_1)\n", cname); - free(ccopy); - return; - } - } - else if (ver_2) - { - z0 = TOLOWER(dot_4[1]); - z1 = TOLOWER(dot_4[2]); - if (z0 != 'z' && z1 != 'z') - { - printf("Unexpected CNAME %s (ver_2)\n", cname); - free(ccopy); - return; - } - } - else - { - printf("Unexpected CNAME %s (ver?)\n", cname); - free(ccopy); - return; - } - - if (ver_1) - { - ccode_A2[0] = (char)TOLOWER(cname[2]); - ccode_A2[1] = (char)TOLOWER(cname[3]); - ccode_A2[2] = '\0'; - } - else - ccode_A2[0] = '\0'; - - cnumber = ip & 0xFFFF; - - TRACE(("Found country-code `%s', number %d\n", - ver_1 ? ccode_A2 : "", cnumber)); - - country = list_lookup(cnumber, country_list, - sizeof(country_list) / sizeof(country_list[0])); - if (!country) - printf("Name for country-number %d not found.\n", cnumber); - else - { - if (ver_1) - { - if ((country->short_name[0] != ccode_A2[0]) || - (country->short_name[1] != ccode_A2[1]) || - (country->short_name[2] != ccode_A2[2])) - printf("short-name mismatch; %s vs %s\n", - country->short_name, ccode_A2); - } - printf("%s (%s), number %d.\n", - country->long_name, country->short_name, cnumber); - } - free(ccopy); -} - -/* Information from the man page. Formatting taken from man -h */ -static void print_help_info_acountry(void) { - printf("acountry, version %s\n\n", ARES_VERSION_STR); - printf("usage: acountry [-hdv] host|addr ...\n\n" - " h : Display this help and exit.\n" - " d : Print some extra debugging output.\n" - " v : Be more verbose. Print extra information.\n\n"); - exit(0); -} diff --git a/deps/cares/src/tools/adig.c b/deps/cares/src/tools/adig.c index cf5bd4d3f2ffd3..28d55ac351e5d9 100644 --- a/deps/cares/src/tools/adig.c +++ b/deps/cares/src/tools/adig.c @@ -1,17 +1,28 @@ -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/tools/ahost.c b/deps/cares/src/tools/ahost.c index 8ac2106698bff5..f8a39eb4630e55 100644 --- a/deps/cares/src/tools/ahost.c +++ b/deps/cares/src/tools/ahost.c @@ -1,17 +1,28 @@ -/* Copyright 1998 by the Massachusetts Institute of Technology. +/* MIT License * + * Copyright (c) 1998 Massachusetts Institute of Technology + * Copyright (c) The c-ares project and its contributors * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies and that both that copyright - * notice and this permission notice appear in supporting - * documentation, and that the name of M.I.T. not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * M.I.T. makes no representations about the suitability of - * this software for any purpose. It is provided "as is" - * without express or implied warranty. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * SPDX-License-Identifier: MIT */ #include "ares_setup.h" diff --git a/deps/cares/src/tools/ares_getopt.c b/deps/cares/src/tools/ares_getopt.c index 1e02d086866ed8..f7154398aeae1a 100644 --- a/deps/cares/src/tools/ares_getopt.c +++ b/deps/cares/src/tools/ares_getopt.c @@ -36,6 +36,8 @@ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * SPDX-License-Identifier: BSD-3-Clause */ /* #if !defined(lint) diff --git a/deps/cares/src/tools/ares_getopt.h b/deps/cares/src/tools/ares_getopt.h index 63acb3b42323d7..7f06e7e09a88fe 100644 --- a/deps/cares/src/tools/ares_getopt.h +++ b/deps/cares/src/tools/ares_getopt.h @@ -28,6 +28,8 @@ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. + * + * SPDX-License-Identifier: BSD-3-Clause */ diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index ca0c4498f283ac..7667cc82449cd6 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -12,7 +12,7 @@ This a list of all the dependencies: * [ada 2.6.10][] * [base64 0.5.0][] * [brotli 1.0.9][] -* [c-ares 1.19.0][] +* [c-ares 1.20.0][] * [cjs-module-lexer 1.2.2][] * [corepack][] * [googletest 2dd1c13][] @@ -167,7 +167,7 @@ length-delimited strings. The [brotli](https://github.com/google/brotli) dependency is used for the homonym generic-purpose lossless compression algorithm. -### c-ares 1.19.0 +### c-ares 1.20.0 The [c-ares](https://github.com/c-ares/c-ares) is a C library for asynchronous DNS requests. @@ -322,7 +322,7 @@ performance improvements not currently available in standard zlib. [ada 2.6.10]: #ada-2610 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 -[c-ares 1.19.0]: #c-ares-1190 +[c-ares 1.20.0]: #c-ares-1200 [cjs-module-lexer 1.2.2]: #cjs-module-lexer-122 [corepack]: #corepack [dependency-update-action]: ../../../.github/workflows/tools.yml From f5924f174ce5d8c5538c5085260b2563e4ba4211 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Wed, 11 Oct 2023 17:02:58 +0000 Subject: [PATCH 197/232] deps: update c-ares to 1.20.1 PR-URL: https://github.com/nodejs/node/pull/50082 Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli --- deps/cares/CHANGES | 69 +++++++++++-------- deps/cares/CMakeLists.txt | 6 +- deps/cares/README.md | 4 +- deps/cares/RELEASE-NOTES | 16 ++++- deps/cares/aminclude_static.am | 2 +- deps/cares/configure | 22 +++--- deps/cares/configure.ac | 4 +- deps/cares/include/ares_version.h | 4 +- deps/cares/src/lib/ares_process.c | 13 ++-- .../maintaining/maintaining-dependencies.md | 6 +- 10 files changed, 85 insertions(+), 61 deletions(-) diff --git a/deps/cares/CHANGES b/deps/cares/CHANGES index 82caeb70cdc4b4..6523436d3af31d 100644 --- a/deps/cares/CHANGES +++ b/deps/cares/CHANGES @@ -1,5 +1,45 @@ Changelog for the c-ares project. Generated with git2changes.pl +Version 1.20.1 (8 Oct 2023) + +GitHub (8 Oct 2023) +- [Daniel Stenberg brought this change] + + ares-test: silence warning (#564) + + warning: comparison of integer expressions of different signedness + + Fix By: Daniel Stenberg (@bagder) + +Brad House (8 Oct 2023) +- fix README.md + +GitHub (8 Oct 2023) +- [Brad House brought this change] + + 1.20.1 release (#563) + +- [Brad House brought this change] + + fix reference to freed memory (#562) + + Issue #561 shows free'd memory could be accessed in some error conditions. + + Fixes Issue #561 + Fix By: Brad House (@bradh352) + +Brad House (8 Oct 2023) +- reported build/test systems may timeout on intensive tests. reduce test case to still be relevant but to reduce false positive errors + +GitHub (8 Oct 2023) +- [Gregor Jasny brought this change] + + Regression: Fix typo in fuzzcheck target name (#559) + + This seems to be a vim'esque typo introduced with c1b00c41. + + Fix By: Gregor Jasny (@gjasny) + Version 1.20.0 (6 Oct 2023) Brad House (6 Oct 2023) @@ -5665,32 +5705,3 @@ Ben Greear (30 Jul 2010) - ipv6: Fix some build issues related to the local-bind feature. Signed-off-by: Ben Greear - -Guenter Knauf (29 Jul 2010) -- Replaced uint32_t with unsigned int to fix broken builds on a couple of platforms. - -Daniel Stenberg (18 Jul 2010) -- [Ben Greear brought this change] - - local-bind: Support binding to local interface/IPs - - Add 3 new functions to set the local binding for the out-going - socket connection, and add ares_set_servers_csv() to set a - list of servers at once as a comma-separated string. - - Signed-off-by: Ben Greear - -- version: now start on 1.7.4 - -- [Andrew C. Morrow brought this change] - - fix memory leak in ares_getnameinfo - -Version 1.7.3 (11 Jun 2010) - -Daniel Stenberg (11 Jun 2010) -- changelogs: updated for 1.7.3 - -- [BogDan Vatra brought this change] - - init: allow c-ares to work on Android OS diff --git a/deps/cares/CMakeLists.txt b/deps/cares/CMakeLists.txt index 9a855503fc95ce..bd901733626678 100644 --- a/deps/cares/CMakeLists.txt +++ b/deps/cares/CMakeLists.txt @@ -10,10 +10,10 @@ INCLUDE (CheckCSourceCompiles) INCLUDE (CheckStructHasMember) INCLUDE (CheckLibraryExists) -PROJECT (c-ares LANGUAGES C VERSION "1.20.0" ) +PROJECT (c-ares LANGUAGES C VERSION "1.20.1" ) # Set this version before release -SET (CARES_VERSION "1.20.0") +SET (CARES_VERSION "1.20.1") INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are wrong. @@ -28,7 +28,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w # For example, a version of 4:0:2 would generate output such as: # libname.so -> libname.so.2 # libname.so.2 -> libname.so.2.2.0 -SET (CARES_LIB_VERSIONINFO "9:0:7") +SET (CARES_LIB_VERSIONINFO "9:1:7") OPTION (CARES_STATIC "Build as a static library" OFF) diff --git a/deps/cares/README.md b/deps/cares/README.md index b507a5c288eb8c..40d3c08114eaaa 100644 --- a/deps/cares/README.md +++ b/deps/cares/README.md @@ -6,7 +6,6 @@ c-ares [![Coverage Status](https://coveralls.io/repos/github/c-ares/c-ares/badge.svg)](https://coveralls.io/github/c-ares/c-ares) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/291/badge)](https://bestpractices.coreinfrastructure.org/projects/291) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/c-ares.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:c-ares) -[![Releases](https://coderelease.io/badge/c-ares/c-ares)](https://coderelease.io/github/repository/c-ares/c-ares) This is c-ares, an asynchronous resolver library. It is intended for applications which need to perform DNS queries without blocking, or need to @@ -22,8 +21,7 @@ If you find bugs, correct flaws, have questions or have comments in general in regard to c-ares (or by all means the original ares too), get in touch with us on the c-ares mailing list: https://lists.haxx.se/listinfo/c-ares -c-ares is of course distributed under the same MIT-style license as the -original ares. +c-ares is distributed the MIT license. You'll find all c-ares details and news here: https://c-ares.org/ diff --git a/deps/cares/RELEASE-NOTES b/deps/cares/RELEASE-NOTES index 062f7a73e22c7e..169a39fcb33b4e 100644 --- a/deps/cares/RELEASE-NOTES +++ b/deps/cares/RELEASE-NOTES @@ -1,4 +1,16 @@ -c-ares version 1.20.0 +c-ares version 1.20.1 + +This release resolves a significant issue in the 1.20.0 release. + +Bug fixes: + o Resolve use-after-free issue when TCP connection is terminated before a + response is returned [17] + o Reduce number of queries for a load test case to prevent overloading some + build systems + o Fix fuzz test build target [18] + + +c-ares 1.20.0 notes below: This is a feature and bugfix release with some significant internal changes. @@ -58,3 +70,5 @@ References to bug reports and discussions on issues: [14] = https://github.com/c-ares/c-ares/pull/526 [15] = https://github.com/c-ares/c-ares/pull/525 [16] = https://github.com/c-ares/c-ares/pull/524 + [17] = https://github.com/c-ares/c-ares/pull/562 + [18] = https://github.com/c-ares/c-ares/pull/559 diff --git a/deps/cares/aminclude_static.am b/deps/cares/aminclude_static.am index 01a565d77106c1..d35c73b8f4bf68 100644 --- a/deps/cares/aminclude_static.am +++ b/deps/cares/aminclude_static.am @@ -1,6 +1,6 @@ # aminclude_static.am generated automatically by Autoconf -# from AX_AM_MACROS_STATIC on Sat Oct 7 13:50:28 CEST 2023 +# from AX_AM_MACROS_STATIC on Sun Oct 8 23:23:39 CEST 2023 # Code coverage diff --git a/deps/cares/configure b/deps/cares/configure index 63c917a937e60c..ebaa43c2df287f 100755 --- a/deps/cares/configure +++ b/deps/cares/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for c-ares 1.20.0. +# Generated by GNU Autoconf 2.71 for c-ares 1.20.1. # # Report bugs to . # @@ -855,8 +855,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='c-ares' PACKAGE_TARNAME='c-ares' -PACKAGE_VERSION='1.20.0' -PACKAGE_STRING='c-ares 1.20.0' +PACKAGE_VERSION='1.20.1' +PACKAGE_STRING='c-ares 1.20.1' PACKAGE_BUGREPORT='c-ares mailing list: http://lists.haxx.se/listinfo/c-ares' PACKAGE_URL='' @@ -1650,7 +1650,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures c-ares 1.20.0 to adapt to many kinds of systems. +\`configure' configures c-ares 1.20.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1721,7 +1721,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of c-ares 1.20.0:";; + short | recursive ) echo "Configuration of c-ares 1.20.1:";; esac cat <<\_ACEOF @@ -1861,7 +1861,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -c-ares configure 1.20.0 +c-ares configure 1.20.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2453,7 +2453,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by c-ares $as_me 1.20.0, which was +It was created by c-ares $as_me 1.20.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3426,7 +3426,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -CARES_VERSION_INFO="9:0:7" +CARES_VERSION_INFO="9:1:7" @@ -7060,7 +7060,7 @@ fi # Define the identity of the package. PACKAGE='c-ares' - VERSION='1.20.0' + VERSION='1.20.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -35354,7 +35354,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by c-ares $as_me 1.20.0, which was +This file was extended by c-ares $as_me 1.20.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -35422,7 +35422,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -c-ares config.status 1.20.0 +c-ares config.status 1.20.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/deps/cares/configure.ac b/deps/cares/configure.ac index 9f0b5a87097391..e3b73faa124f21 100644 --- a/deps/cares/configure.ac +++ b/deps/cares/configure.ac @@ -20,10 +20,10 @@ ############################################################# AC_PREREQ([2.60]) -AC_INIT([c-ares], [1.20.0], +AC_INIT([c-ares], [1.20.1], [c-ares mailing list: http://lists.haxx.se/listinfo/c-ares]) -CARES_VERSION_INFO="9:0:7" +CARES_VERSION_INFO="9:1:7" dnl This flag accepts an argument of the form current[:revision[:age]]. So, dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to dnl 1. diff --git a/deps/cares/include/ares_version.h b/deps/cares/include/ares_version.h index fa83494fd4efd6..34784e2ed44731 100644 --- a/deps/cares/include/ares_version.h +++ b/deps/cares/include/ares_version.h @@ -32,11 +32,11 @@ #define ARES_VERSION_MAJOR 1 #define ARES_VERSION_MINOR 20 -#define ARES_VERSION_PATCH 0 +#define ARES_VERSION_PATCH 1 #define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\ (ARES_VERSION_MINOR<<8)|\ (ARES_VERSION_PATCH)) -#define ARES_VERSION_STR "1.20.0" +#define ARES_VERSION_STR "1.20.1" #if (ARES_VERSION >= 0x010700) # define CARES_HAVE_ARES_LIBRARY_INIT 1 diff --git a/deps/cares/src/lib/ares_process.c b/deps/cares/src/lib/ares_process.c index 2b951a73fc0925..06e712160192c3 100644 --- a/deps/cares/src/lib/ares_process.c +++ b/deps/cares/src/lib/ares_process.c @@ -444,7 +444,7 @@ static void read_udp_packets_fd(ares_channel channel, continue; handle_error(conn, now); - + return; #ifdef HAVE_RECVFROM } else if (!same_address(&from.sa, &conn->server->addr)) { /* The address the response comes from does not match the address we @@ -682,9 +682,10 @@ static void process_answer(ares_channel channel, const unsigned char *abuf, static void handle_error(struct server_connection *conn, struct timeval *now) { - ares_channel channel = conn->server->channel; - ares__llist_t *list_copy; - ares__llist_node_t *node; + ares_channel channel = conn->server->channel; + struct server_state *server = conn->server; + ares__llist_t *list_copy; + ares__llist_node_t *node; /* We steal the list from the connection then close the connection, then * iterate across the list to requeue any inflight queries with the broken @@ -697,8 +698,8 @@ static void handle_error(struct server_connection *conn, while ((node = ares__llist_node_first(list_copy)) != NULL) { struct query *query = ares__llist_node_val(node); - assert(query->server == (int)conn->server->idx); - skip_server(channel, query, conn->server); + assert(query->server == (int)server->idx); + skip_server(channel, query, server); /* next_server will remove the current node from the list */ next_server(channel, query, now); } diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index 7667cc82449cd6..f350a52c931a37 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -12,7 +12,7 @@ This a list of all the dependencies: * [ada 2.6.10][] * [base64 0.5.0][] * [brotli 1.0.9][] -* [c-ares 1.20.0][] +* [c-ares 1.20.1][] * [cjs-module-lexer 1.2.2][] * [corepack][] * [googletest 2dd1c13][] @@ -167,7 +167,7 @@ length-delimited strings. The [brotli](https://github.com/google/brotli) dependency is used for the homonym generic-purpose lossless compression algorithm. -### c-ares 1.20.0 +### c-ares 1.20.1 The [c-ares](https://github.com/c-ares/c-ares) is a C library for asynchronous DNS requests. @@ -322,7 +322,7 @@ performance improvements not currently available in standard zlib. [ada 2.6.10]: #ada-2610 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 -[c-ares 1.20.0]: #c-ares-1200 +[c-ares 1.20.1]: #c-ares-1201 [cjs-module-lexer 1.2.2]: #cjs-module-lexer-122 [corepack]: #corepack [dependency-update-action]: ../../../.github/workflows/tools.yml From e49ebf8f9afbc3d30a1eaaf52aa9fe25b90cffd2 Mon Sep 17 00:00:00 2001 From: Jungku Lee Date: Sat, 21 Oct 2023 11:00:00 +0900 Subject: [PATCH 198/232] fs: improve error performance for `readSync` PR-URL: https://github.com/nodejs/node/pull/50033 Refs: https://github.com/nodejs/performance/issues/106 Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung --- benchmark/fs/bench-readSync.js | 57 +++++++++++++++++++++++++++++++++ lib/fs.js | 6 +--- src/node_file.cc | 19 +++++++---- typings/internalBinding/fs.d.ts | 2 +- 4 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 benchmark/fs/bench-readSync.js diff --git a/benchmark/fs/bench-readSync.js b/benchmark/fs/bench-readSync.js new file mode 100644 index 00000000000000..a75d1750002f94 --- /dev/null +++ b/benchmark/fs/bench-readSync.js @@ -0,0 +1,57 @@ +'use strict'; + +const common = require('../common'); +const fs = require('fs'); +const tmpdir = require('../../test/common/tmpdir'); +tmpdir.refresh(); + +const bufferSize = 1024; +const sectorSize = 512; + +const bench = common.createBenchmark(main, { + type: ['existing', 'non-existing'], + n: [1e4], +}); + +function main({ n, type }) { + let fd; + + const tmpfile = { name: tmpdir.resolve(`.existing-file-${process.pid}`), + len: bufferSize * n }; + + + tmpfile.contents = Buffer.allocUnsafe(tmpfile.len); + + for (let offset = 0; offset < tmpfile.len; offset += sectorSize) { + const fillByte = 256 * Math.random(); + const nBytesToFill = Math.min(sectorSize, tmpfile.len - offset); + tmpfile.contents.fill(fillByte, offset, offset + nBytesToFill); + } + + fs.writeFileSync(tmpfile.name, tmpfile.contents); + + switch (type) { + case 'existing': + fd = fs.openSync(tmpfile.name, 'r', 0o666); + break; + case 'non-existing': + fd = 1 << 30; + break; + default: + new Error('Invalid type'); + } + + const buffer = Buffer.alloc(bufferSize); + + bench.start(); + for (let i = 0; i < n; i++) { + try { + fs.readSync(fd, buffer); + } catch { + // Continue regardless of error. + } + } + bench.end(n); + + if (type === 'existing') fs.closeSync(fd); +} diff --git a/lib/fs.js b/lib/fs.js index 418441a1d0c819..e3917187eeb818 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -749,11 +749,7 @@ function readSync(fd, buffer, offsetOrOptions, length, position) { validatePosition(position, 'position'); - const ctx = {}; - const result = binding.read(fd, buffer, offset, length, position, - undefined, ctx); - handleErrorFromBinding(ctx); - return result; + return binding.read(fd, buffer, offset, length, position); } /** diff --git a/src/node_file.cc b/src/node_file.cc index 02f4ee00de735a..078c075e8e9665 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -2376,18 +2376,23 @@ static void Read(const FunctionCallbackInfo& args) { char* buf = buffer_data + off; uv_buf_t uvbuf = uv_buf_init(buf, len); - FSReqBase* req_wrap_async = GetReqWrap(args, 5); - if (req_wrap_async != nullptr) { // read(fd, buffer, offset, len, pos, req) + if (argc > 5) { // read(fd, buffer, offset, len, pos, req) + FSReqBase* req_wrap_async = GetReqWrap(args, 5); + CHECK_NOT_NULL(req_wrap_async); FS_ASYNC_TRACE_BEGIN0(UV_FS_READ, req_wrap_async) AsyncCall(env, req_wrap_async, args, "read", UTF8, AfterInteger, uv_fs_read, fd, &uvbuf, 1, pos); - } else { // read(fd, buffer, offset, len, pos, undefined, ctx) - CHECK_EQ(argc, 7); - FSReqWrapSync req_wrap_sync; + } else { // read(fd, buffer, offset, len, pos) + FSReqWrapSync req_wrap_sync("read"); FS_SYNC_TRACE_BEGIN(read); - const int bytesRead = SyncCall(env, args[6], &req_wrap_sync, "read", - uv_fs_read, fd, &uvbuf, 1, pos); + const int bytesRead = SyncCallAndThrowOnError( + env, &req_wrap_sync, uv_fs_read, fd, &uvbuf, 1, pos); FS_SYNC_TRACE_END(read, "bytesRead", bytesRead); + + if (is_uv_error(bytesRead)) { + return; + } + args.GetReturnValue().Set(bytesRead); } } diff --git a/typings/internalBinding/fs.d.ts b/typings/internalBinding/fs.d.ts index e3b74c9ab671a2..77f20e9550e30a 100644 --- a/typings/internalBinding/fs.d.ts +++ b/typings/internalBinding/fs.d.ts @@ -159,8 +159,8 @@ declare namespace InternalFSBinding { function openFileHandle(path: StringOrBuffer, flags: number, mode: number, usePromises: typeof kUsePromises): Promise; function read(fd: number, buffer: ArrayBufferView, offset: number, length: number, position: number, req: FSReqCallback): void; - function read(fd: number, buffer: ArrayBufferView, offset: number, length: number, position: number, req: undefined, ctx: FSSyncContext): number; function read(fd: number, buffer: ArrayBufferView, offset: number, length: number, position: number, usePromises: typeof kUsePromises): Promise; + function read(fd: number, buffer: ArrayBufferView, offset: number, length: number, position: number): number; function readBuffers(fd: number, buffers: ArrayBufferView[], position: number, req: FSReqCallback): void; function readBuffers(fd: number, buffers: ArrayBufferView[], position: number, req: undefined, ctx: FSSyncContext): number; From bf5b2115a0b4b8f0594a1f326653a1cbbdf9dbfe Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Sat, 21 Oct 2023 04:12:44 +0200 Subject: [PATCH 199/232] util: remove internal mime fns from benchmarks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50201 Reviewed-By: Yagiz Nizipli Reviewed-By: Rafael Gonzaga Reviewed-By: Vinícius Lourenço Claro Cardoso --- benchmark/mime/parse-type-and-subtype.js | 53 ----------------------- benchmark/mime/to-ascii-lower.js | 54 ------------------------ lib/internal/mime.js | 2 - test/parallel/test-mime-api.js | 7 --- 4 files changed, 116 deletions(-) delete mode 100644 benchmark/mime/parse-type-and-subtype.js delete mode 100644 benchmark/mime/to-ascii-lower.js diff --git a/benchmark/mime/parse-type-and-subtype.js b/benchmark/mime/parse-type-and-subtype.js deleted file mode 100644 index 4b91dc1db6ab24..00000000000000 --- a/benchmark/mime/parse-type-and-subtype.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -const bench = common.createBenchmark(main, { - n: [1e7], - value: [ - 'application/ecmascript; ', - 'text/html;charset=gbk', - // eslint-disable-next-line max-len - 'text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk', - ], -}, { - flags: ['--expose-internals'], -}); - -function main({ n, value }) { - - const parseTypeAndSubtype = require('internal/mime').parseTypeAndSubtype; - // Warm up. - const length = 1024; - const array = []; - let errCase = false; - - for (let i = 0; i < length; ++i) { - try { - array.push(parseTypeAndSubtype(value)); - } catch (e) { - errCase = true; - array.push(e); - } - } - - // console.log(`errCase: ${errCase}`); - bench.start(); - for (let i = 0; i < n; ++i) { - const index = i % length; - try { - array[index] = parseTypeAndSubtype(value); - } catch (e) { - array[index] = e; - } - } - - bench.end(n); - - // Verify the entries to prevent dead code elimination from making - // the benchmark invalid. - for (let i = 0; i < length; ++i) { - assert.strictEqual(typeof array[i], errCase ? 'object' : 'object'); - } -} diff --git a/benchmark/mime/to-ascii-lower.js b/benchmark/mime/to-ascii-lower.js deleted file mode 100644 index 93a4a14dc6d96b..00000000000000 --- a/benchmark/mime/to-ascii-lower.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -const common = require('../common'); -const assert = require('assert'); - -const bench = common.createBenchmark(main, { - n: [1e7], - value: [ - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', - 'UPPERCASE', - 'lowercase', - 'mixedCase', - ], -}, { - flags: ['--expose-internals'], -}); - -function main({ n, value }) { - - const toASCIILower = require('internal/mime').toASCIILower; - // Warm up. - const length = 1024; - const array = []; - let errCase = false; - - for (let i = 0; i < length; ++i) { - try { - array.push(toASCIILower(value)); - } catch (e) { - errCase = true; - array.push(e); - } - } - - // console.log(`errCase: ${errCase}`); - bench.start(); - - for (let i = 0; i < n; ++i) { - const index = i % length; - try { - array[index] = toASCIILower(value); - } catch (e) { - array[index] = e; - } - } - - bench.end(n); - - // Verify the entries to prevent dead code elimination from making - // the benchmark invalid. - for (let i = 0; i < length; ++i) { - assert.strictEqual(typeof array[i], errCase ? 'object' : 'string'); - } -} diff --git a/lib/internal/mime.js b/lib/internal/mime.js index 332ed8b5368c84..0a1d8e7e67916b 100644 --- a/lib/internal/mime.js +++ b/lib/internal/mime.js @@ -384,8 +384,6 @@ ObjectDefineProperty(MIMEType.prototype, 'toJSON', { }); module.exports = { - toASCIILower, - parseTypeAndSubtype, MIMEParams, MIMEType, }; diff --git a/test/parallel/test-mime-api.js b/test/parallel/test-mime-api.js index 0fabd1a4cce35f..30272e5aa64df5 100644 --- a/test/parallel/test-mime-api.js +++ b/test/parallel/test-mime-api.js @@ -4,8 +4,6 @@ require('../common'); const assert = require('assert'); const { MIMEType, MIMEParams } = require('util'); -const { toASCIILower } = require('internal/mime'); - const WHITESPACES = '\t\n\f\r '; const NOT_HTTP_TOKEN_CODE_POINT = ','; @@ -160,8 +158,3 @@ assert.throws(() => params.set(`x${NOT_HTTP_TOKEN_CODE_POINT}`, 'x'), /parameter assert.throws(() => params.set('x', `${NOT_HTTP_QUOTED_STRING_CODE_POINT};`), /parameter value/i); assert.throws(() => params.set('x', `${NOT_HTTP_QUOTED_STRING_CODE_POINT}x`), /parameter value/i); assert.throws(() => params.set('x', `x${NOT_HTTP_QUOTED_STRING_CODE_POINT}`), /parameter value/i); - -assert.strictEqual(toASCIILower('someThing'), 'something'); -assert.strictEqual(toASCIILower('SomeThing'), 'something'); -assert.strictEqual(toASCIILower('SomeThing3'), 'something3'); -assert.strictEqual(toASCIILower('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'abcdefghijklmnopqrstuvwxyz'); From 8c15281d06c526579f2cc2aba34be2aaf7c3fa2f Mon Sep 17 00:00:00 2001 From: Niya Shiyas <98641481+niyashiyas@users.noreply.github.com> Date: Sat, 21 Oct 2023 10:29:05 +0530 Subject: [PATCH 200/232] test: replace forEach with for..of in test-http2-client-destroy.js PR-URL: https://github.com/nodejs/node/pull/49820 Reviewed-By: Luigi Pinca --- test/parallel/test-http2-client-destroy.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http2-client-destroy.js b/test/parallel/test-http2-client-destroy.js index 6973cfa1df1e61..d7609fc33391ac 100644 --- a/test/parallel/test-http2-client-destroy.js +++ b/test/parallel/test-http2-client-destroy.js @@ -22,7 +22,7 @@ const { getEventListeners } = require('events'); server.close(); }); - destroyCallbacks.forEach((destroyCallback) => { + for (const destroyCallback of destroyCallbacks) { const client = h2.connect(`http://localhost:${server.address().port}`); client.on('connect', common.mustCall(() => { const socket = client[kSocket]; @@ -45,7 +45,7 @@ const { getEventListeners } = require('events'); countdown.dec(); })); - }); + } })); } From 0134af3eeb55232345a7dce1f7358a9c80b6e5fe Mon Sep 17 00:00:00 2001 From: Niya Shiyas Date: Sat, 23 Sep 2023 13:53:37 +0530 Subject: [PATCH 201/232] test: replace forEach with for..of in test-http2-server PR-URL: https://github.com/nodejs/node/pull/49819 Reviewed-By: Luigi Pinca --- test/parallel/test-http2-server-shutdown-options-errors.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http2-server-shutdown-options-errors.js b/test/parallel/test-http2-server-shutdown-options-errors.js index e6a69b54627e00..5a2ca62a6c8e31 100644 --- a/test/parallel/test-http2-server-shutdown-options-errors.js +++ b/test/parallel/test-http2-server-shutdown-options-errors.js @@ -19,7 +19,7 @@ const types = [ server.on('stream', common.mustCall((stream) => { const session = stream.session; - types.forEach((input) => { + for (const input of types) { const received = common.invalidArgTypeHelper(input); assert.throws( () => session.goaway(input), @@ -48,7 +48,7 @@ server.on('stream', common.mustCall((stream) => { `TypedArray, or DataView.${received}` } ); - }); + } stream.session.destroy(); })); From b55fcd75daa6592f1d236455f86481f0d3f01dfe Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 21 Oct 2023 11:25:11 +0200 Subject: [PATCH 202/232] test: deflake `test-esm-loader-resolve-type` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50273 Fixes: https://github.com/nodejs/node/issues/50040 Reviewed-By: Michaël Zasso Reviewed-By: Michael Dawson Reviewed-By: Marco Ippolito Reviewed-By: Richard Lau --- .../hook-resolve-type-loader.mjs | 19 +++++++---- .../es-module-loaders/hook-resolve-type.mjs | 32 ++++++------------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/test/fixtures/es-module-loaders/hook-resolve-type-loader.mjs b/test/fixtures/es-module-loaders/hook-resolve-type-loader.mjs index f2dc0aba5ca80e..c410401876e448 100644 --- a/test/fixtures/es-module-loaders/hook-resolve-type-loader.mjs +++ b/test/fixtures/es-module-loaders/hook-resolve-type-loader.mjs @@ -1,7 +1,14 @@ -/** @type {MessagePort} */ -let port; -export function initialize(data) { - port = data.port; +/** @type {Uint8Array} */ +let data; +/** @type {number} */ +let ESM_MODULE_INDEX; +/** @type {number} */ +let CJS_MODULE_INDEX; + +export function initialize({ sab, ESM_MODULE_INDEX:e, CJS_MODULE_INDEX:c }) { + data = new Uint8Array(sab); + ESM_MODULE_INDEX = e; + CJS_MODULE_INDEX = c; } export async function resolve(specifier, context, next) { @@ -9,9 +16,9 @@ export async function resolve(specifier, context, next) { const { format } = nextResult; if (format === 'module' || specifier.endsWith('.mjs')) { - port.postMessage({ type: 'module' }); + Atomics.add(data, ESM_MODULE_INDEX, 1); } else if (format == null || format === 'commonjs') { - port.postMessage({ type: 'commonjs' }); + Atomics.add(data, CJS_MODULE_INDEX, 1); } return nextResult; diff --git a/test/fixtures/es-module-loaders/hook-resolve-type.mjs b/test/fixtures/es-module-loaders/hook-resolve-type.mjs index 6fa7a553b8e83f..7324a08e84b6c0 100644 --- a/test/fixtures/es-module-loaders/hook-resolve-type.mjs +++ b/test/fixtures/es-module-loaders/hook-resolve-type.mjs @@ -1,30 +1,18 @@ import * as fixtures from '../../common/fixtures.mjs'; import { register } from 'node:module'; -import { MessageChannel } from 'node:worker_threads'; -let importedESM = 0; -let importedCJS = 0; +const sab = new SharedArrayBuffer(2); +const data = new Uint8Array(sab); + +const ESM_MODULE_INDEX = 0 +const CJS_MODULE_INDEX = 1 + export function getModuleTypeStats() { + const importedESM = Atomics.load(data, ESM_MODULE_INDEX); + const importedCJS = Atomics.load(data, CJS_MODULE_INDEX); return { importedESM, importedCJS }; -}; - -const { port1, port2 } = new MessageChannel(); +} register(fixtures.fileURL('es-module-loaders/hook-resolve-type-loader.mjs'), { - data: { port: port2 }, - transferList: [port2], + data: { sab, ESM_MODULE_INDEX, CJS_MODULE_INDEX }, }); - -port1.on('message', ({ type }) => { - switch (type) { - case 'module': - importedESM++; - break; - case 'commonjs': - importedCJS++; - break; - } -}); - -port1.unref(); -port2.unref(); From 379a7255e85be80872eec03726c06e4445976163 Mon Sep 17 00:00:00 2001 From: Niya Shiyas <98641481+niyashiyas@users.noreply.github.com> Date: Sat, 21 Oct 2023 18:02:43 +0530 Subject: [PATCH 203/232] test: replace forEach with for..of in test-net-isipv4.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49822 Reviewed-By: Luigi Pinca Reviewed-By: Tobias Nießen --- test/parallel/test-net-isipv4.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/parallel/test-net-isipv4.js b/test/parallel/test-net-isipv4.js index 8f5c30569ce988..2c478e6ac678b7 100644 --- a/test/parallel/test-net-isipv4.js +++ b/test/parallel/test-net-isipv4.js @@ -37,10 +37,10 @@ const v4not = [ '192.168.0.2000000000', ]; -v4.forEach((ip) => { +for (const ip of v4) { assert.strictEqual(net.isIPv4(ip), true); -}); +} -v4not.forEach((ip) => { +for (const ip of v4not) { assert.strictEqual(net.isIPv4(ip), false); -}); +} From 72626f9a35a123068d2a6525fd9f127684ab6e7c Mon Sep 17 00:00:00 2001 From: Niya Shiyas Date: Sat, 23 Sep 2023 13:48:39 +0530 Subject: [PATCH 204/232] test: replace forEach with for..of in test-http-perf_hooks.js PR-URL: https://github.com/nodejs/node/pull/49818 Reviewed-By: Antoine du Hamel Reviewed-By: Luigi Pinca --- test/parallel/test-http-perf_hooks.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http-perf_hooks.js b/test/parallel/test-http-perf_hooks.js index de6ed0295a1152..2ed1a736fa8841 100644 --- a/test/parallel/test-http-perf_hooks.js +++ b/test/parallel/test-http-perf_hooks.js @@ -57,7 +57,7 @@ server.listen(0, common.mustCall(async () => { process.on('exit', () => { let numberOfHttpClients = 0; let numberOfHttpRequests = 0; - entries.forEach((entry) => { + for (const entry of entries) { assert.strictEqual(entry.entryType, 'http'); assert.strictEqual(typeof entry.startTime, 'number'); assert.strictEqual(typeof entry.duration, 'number'); @@ -72,7 +72,7 @@ process.on('exit', () => { assert.strictEqual(typeof entry.detail.res.statusCode, 'number'); assert.strictEqual(typeof entry.detail.res.statusMessage, 'string'); assert.strictEqual(typeof entry.detail.res.headers, 'object'); - }); + } assert.strictEqual(numberOfHttpClients, 2); assert.strictEqual(numberOfHttpRequests, 2); }); From 3d9130bc2e9a14e511114e829b1f45f0e3319809 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sat, 21 Oct 2023 17:54:28 +0200 Subject: [PATCH 205/232] Revert "test: set `test-esm-loader-resolve-type` as flaky" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2e4bb3c017bac7c0366cf977a92271b0242d4656. PR-URL: https://github.com/nodejs/node/pull/50315 Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli Reviewed-By: Filip Skokan Reviewed-By: Vinícius Lourenço Claro Cardoso --- test/es-module/es-module.status | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/es-module/es-module.status b/test/es-module/es-module.status index 97cc23ab2d1cbd..58a422dc152258 100644 --- a/test/es-module/es-module.status +++ b/test/es-module/es-module.status @@ -5,8 +5,6 @@ prefix es-module # sample-test : PASS,FLAKY [true] # This section applies to all platforms -# https://github.com/nodejs/node/issues/50040 -test-esm-loader-resolve-type: PASS, FLAKY [$system==linux || $system==freebsd] # https://github.com/nodejs/node/issues/47836 From 00c12b7a20096d5e0282791862af5dc8ad2dea51 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Sat, 21 Oct 2023 18:38:09 +0100 Subject: [PATCH 206/232] doc: update release process LTS step MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A recent refactor of `nodejs-latest-linker` has moved the mapping between Node.js versions and codenames to a different file. Refs: https://github.com/nodejs/nodejs-latest-linker/pull/12 PR-URL: https://github.com/nodejs/node/pull/50299 Reviewed-By: Moshe Atlow Reviewed-By: Yagiz Nizipli Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca --- doc/contributing/releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index 740cab058262e0..39d6d0d66f5b84 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -1129,7 +1129,7 @@ In order to make sure a download URL (e.g: ) will be available for the new LTS release line you need to submit a PR to and add a new entry for the -new LTS codename in its `ltsNames` map located in the `./latest-linker.js` +new LTS codename in its `ltsNames` map located in the `./common.js` file. Make sure to reach out to the Build WG in order to validate that the new URL is From ea28738336bbe0b39736119b0b3ccb9cfb8ecc19 Mon Sep 17 00:00:00 2001 From: Shi Pujin Date: Sun, 22 Oct 2023 18:07:13 +0800 Subject: [PATCH 207/232] doc: add loong64 info into platform list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50086 Reviewed-By: Ben Noordhuis Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau Reviewed-By: Michaël Zasso --- BUILDING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BUILDING.md b/BUILDING.md index fb2eed1376e3f9..45d062f285ec99 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -110,6 +110,7 @@ platforms. This is true regardless of entries in the table below. | GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | | GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 | | GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 | +| GNU/Linux | loong64 | kernel >= 5.19, glibc >= 2.36 | Experimental | | | Windows | x64, x86 (WoW64) | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] | | Windows | x86 (native) | >= Windows 10/Server 2016 | Tier 1 (running) / Experimental (compiling)[^4] | | | Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | | From f2f993a32fdb15d4e171f186608c30e81515b3e9 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Sun, 22 Oct 2023 18:43:18 +0200 Subject: [PATCH 208/232] stream: simplify prefinish PR-URL: https://github.com/nodejs/node/pull/50204 Reviewed-By: Matteo Collina Reviewed-By: Yagiz Nizipli Reviewed-By: Benjamin Gruenbaum --- lib/internal/streams/writable.js | 73 +++++++++++++++----------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index b8f8b72ce8d113..f75d2ac5dc7015 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -865,52 +865,45 @@ function needFinish(state) { )) === (kEnding | kConstructed) && state.length === 0); } -function callFinal(stream, state) { - let called = false; - - function onFinish(err) { - if (called) { - errorOrDestroy(stream, err ?? ERR_MULTIPLE_CALLBACK()); - return; - } - called = true; - - state.pendingcb--; - if (err) { - callFinishedCallbacks(state, err); - errorOrDestroy(stream, err, (state[kState] & kSync) !== 0); - } else if (needFinish(state)) { - state[kState] |= kPrefinished; - stream.emit('prefinish'); - // Backwards compat. Don't check state.sync here. - // Some streams assume 'finish' will be emitted - // asynchronously relative to _final callback. - state.pendingcb++; - process.nextTick(finish, stream, state); - } +function onFinish(stream, state, err) { + if ((state[kState] & kPrefinished) !== 0) { + errorOrDestroy(stream, err ?? ERR_MULTIPLE_CALLBACK()); + return; } - - state[kState] |= kSync; - state.pendingcb++; - - try { - stream._final(onFinish); - } catch (err) { - onFinish(err); + state.pendingcb--; + if (err) { + callFinishedCallbacks(state, err); + errorOrDestroy(stream, err, (state[kState] & kSync) !== 0); + } else if (needFinish(state)) { + state[kState] |= kPrefinished; + stream.emit('prefinish'); + // Backwards compat. Don't check state.sync here. + // Some streams assume 'finish' will be emitted + // asynchronously relative to _final callback. + state.pendingcb++; + process.nextTick(finish, stream, state); } - - state[kState] &= ~kSync; } function prefinish(stream, state) { - if ((state[kState] & (kPrefinished | kFinalCalled)) === 0) { - if (typeof stream._final === 'function' && (state[kState] & kDestroyed) === 0) { - state[kState] |= kFinalCalled; - callFinal(stream, state); - } else { - state[kState] |= kPrefinished; - stream.emit('prefinish'); + if ((state[kState] & (kPrefinished | kFinalCalled)) !== 0) { + return; + } + + if (typeof stream._final === 'function' && (state[kState] & kDestroyed) === 0) { + state[kState] |= kFinalCalled | kSync; + state.pendingcb++; + + try { + stream._final((err) => onFinish(stream, state, err)); + } catch (err) { + onFinish(stream, state, err); } + + state[kState] &= ~kSync; + } else { + state[kState] |= kFinalCalled | kPrefinished; + stream.emit('prefinish'); } } From baa04b79cab792f8168157a40a3b97161a76b8ec Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Sun, 22 Oct 2023 16:10:41 -0400 Subject: [PATCH 209/232] test: set `test-watch-mode-inspect` as flaky MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50259 Refs: https://github.com/nodejs/node/issues/49933 Reviewed-By: Moshe Atlow Reviewed-By: Geoffrey Booth Reviewed-By: Michael Dawson Reviewed-By: Vinícius Lourenço Claro Cardoso --- test/sequential/sequential.status | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index 0e70b5b5bbf618..6d89fa0a4d2127 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -40,6 +40,8 @@ test-tls-psk-client: PASS, FLAKY test-tls-securepair-client: PASS, FLAKY [$arch==arm] +# https://github.com/nodejs/node/issues/49933 +test-watch-mode-inspect: PASS, FLAKY [$arch==s390x] # https://github.com/nodejs/node/issues/41286 From 251ae1dd72bd5060f2d1f32b289db802fca7e553 Mon Sep 17 00:00:00 2001 From: Aras Abbasi Date: Sun, 22 Oct 2023 23:12:38 +0200 Subject: [PATCH 210/232] lib: improve performance of validateStringArray and validateBooleanArray PR-URL: https://github.com/nodejs/node/pull/49756 Reviewed-By: Yagiz Nizipli Reviewed-By: Trivikram Kamat --- benchmark/validators/parse-file-mode.js | 61 ++++++++++++++++++ benchmark/validators/validate-array.js | 68 ++++++++++++++++++++ benchmark/validators/validate-boolean.js | 55 ++++++++++++++++ benchmark/validators/validate-encoding.js | 59 ++++++++++++++++++ benchmark/validators/validate-one-of.js | 69 +++++++++++++++++++++ benchmark/validators/validate-x-array.js | 66 ++++++++++++++++++++ lib/internal/validators.js | 16 +++-- test/benchmark/test-benchmark-validators.js | 1 - 8 files changed, 390 insertions(+), 5 deletions(-) create mode 100644 benchmark/validators/parse-file-mode.js create mode 100644 benchmark/validators/validate-array.js create mode 100644 benchmark/validators/validate-boolean.js create mode 100644 benchmark/validators/validate-encoding.js create mode 100644 benchmark/validators/validate-one-of.js create mode 100644 benchmark/validators/validate-x-array.js diff --git a/benchmark/validators/parse-file-mode.js b/benchmark/validators/parse-file-mode.js new file mode 100644 index 00000000000000..5e3819fc4229a9 --- /dev/null +++ b/benchmark/validators/parse-file-mode.js @@ -0,0 +1,61 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e7], + value: [ + "'777'", + '0o777', + ], +}, { + flags: ['--expose-internals'], +}); + +function getParseFactory() { + const { + parseFileMode, + } = require('internal/validators'); + + return (n) => parseFileMode(n, 'n'); +} + +function main({ n, value }) { + const parse = getParseFactory(); + + value = value === "'777'" ? '777' : 0o777; + + // Warm up. + const length = 1024; + const array = []; + let errCase = false; + + for (let i = 0; i < length; ++i) { + try { + array.push(parse(value)); + } catch (e) { + errCase = true; + array.push(e); + } + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + try { + array[index] = parse(value); + } catch (e) { + array[index] = e; + } + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], errCase ? 'object' : 'number'); + } +} diff --git a/benchmark/validators/validate-array.js b/benchmark/validators/validate-array.js new file mode 100644 index 00000000000000..28f7b42102d198 --- /dev/null +++ b/benchmark/validators/validate-array.js @@ -0,0 +1,68 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e7], + value: [ + '[]', + '[1,2,3]', + ], +}, { + flags: ['--expose-internals'], +}); + +function getValidateFactory() { + const { + validateArray, + } = require('internal/validators'); + + return (n) => validateArray(n, 'n'); +} + +function main({ n, value }) { + const validate = getValidateFactory(); + + switch (value) { + case '[]': + value = []; + break; + case '[1,2,3]': + value = [1, 2, 3]; + break; + } + + // Warm up. + const length = 1024; + const array = []; + let errCase = false; + + for (let i = 0; i < length; ++i) { + try { + array.push(validate(value)); + } catch (e) { + errCase = true; + array.push(e); + } + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + try { + array[index] = validate(value); + } catch (e) { + array[index] = e; + } + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], errCase ? 'object' : 'undefined'); + } +} diff --git a/benchmark/validators/validate-boolean.js b/benchmark/validators/validate-boolean.js new file mode 100644 index 00000000000000..24c2202b4fb743 --- /dev/null +++ b/benchmark/validators/validate-boolean.js @@ -0,0 +1,55 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e8], + code: [ + 'validateBoolean', + ], + value: [ + 'true', + 'false', + ], +}, { + flags: ['--expose-internals'], +}); + +function getValidateFactory(code) { + const { + validateBoolean, + } = require('internal/validators'); + + switch (code) { + case 'validateBoolean': + return (n) => validateBoolean(n, 'n'); + } +} + +function main({ n, code, value }) { + const validate = getValidateFactory(code); + const v = value === 'true'; + + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(validate(v)); + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = validate(v); + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'undefined'); + } +} diff --git a/benchmark/validators/validate-encoding.js b/benchmark/validators/validate-encoding.js new file mode 100644 index 00000000000000..7bb6d8b0cba969 --- /dev/null +++ b/benchmark/validators/validate-encoding.js @@ -0,0 +1,59 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e8], + encoding: [ + 'ascii', + 'utf8', + 'utf-8', + 'utf16le', + 'ucs2', + 'ucs-2', + 'base64', + 'latin1', + 'binary', + 'hex', + ], + value: [ + 'test', + ], +}, { + flags: ['--expose-internals'], +}); + +function getValidateFactory(encoding) { + const { + validateEncoding, + } = require('internal/validators'); + + return (n) => validateEncoding(n, encoding); +} + +function main({ n, encoding, value }) { + const validate = getValidateFactory(encoding); + + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(validate(value)); + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = validate(value); + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'undefined'); + } +} diff --git a/benchmark/validators/validate-one-of.js b/benchmark/validators/validate-one-of.js new file mode 100644 index 00000000000000..4812cb233e239b --- /dev/null +++ b/benchmark/validators/validate-one-of.js @@ -0,0 +1,69 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e7], + code: [ + 'validateOneOf', + ], + value: [ + 'fifo', + 'lifo', + 'lilo', + ], + validLength: [ + 1, + 2, + 3, + ], +}, { + flags: ['--expose-internals'], +}); + +const validValues = [ + 'fifo', + 'lifo', + 'lilo', + 'filo', +]; + +function getValidateFactory(code, validLength) { + const { + validateOneOf, + } = require('internal/validators'); + + switch (code) { + case 'validateOneOf': + return (n) => validateOneOf(n, 'n', validValues.slice(0, validLength)); + } +} + +function main({ n, code, validLength }) { + const validate = getValidateFactory(code, validLength); + + // Warm up. + const length = 1024; + const array = []; + + const value = validValues[validLength - 1]; + + for (let i = 0; i < length; ++i) { + array.push(validate(value)); + } + + bench.start(); + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = validate(value); + } + bench.end(n); + + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'undefined'); + } +} diff --git a/benchmark/validators/validate-x-array.js b/benchmark/validators/validate-x-array.js new file mode 100644 index 00000000000000..aaef9119f35ae1 --- /dev/null +++ b/benchmark/validators/validate-x-array.js @@ -0,0 +1,66 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +const bench = common.createBenchmark(main, { + n: [1e8], + type: [ + 'validateStringArray', + 'validateBooleanArray', + ], + arrayLength: [ + 0, + 1, + 10, + 100, + ], +}, { + flags: ['--expose-internals'], +}); + +function getValidateFactory(type, arrayLength) { + const { + validateBooleanArray, + validateStringArray, + } = require('internal/validators'); + + switch (type) { + case 'validateBooleanArray': + return [ + (n) => validateBooleanArray(n, 'n'), + Array.from({ length: arrayLength }, (v, i) => ((i & 1) === 0)), + ]; + case 'validateStringArray': + return [ + (n) => validateStringArray(n, 'n'), + Array.from({ length: arrayLength }, (v, i) => `foo${i}`), + ]; + } +} + +function main({ n, type, arrayLength }) { + const [validate, value] = getValidateFactory(type, arrayLength); + + // Warm up. + const length = 1024; + const array = []; + for (let i = 0; i < length; ++i) { + array.push(validate(value)); + } + + bench.start(); + + for (let i = 0; i < n; ++i) { + const index = i % length; + array[index] = validate(value); + } + + bench.end(n); + + // Verify the entries to prevent dead code elimination from making + // the benchmark invalid. + for (let i = 0; i < length; ++i) { + assert.strictEqual(typeof array[i], 'undefined'); + } +} diff --git a/lib/internal/validators.js b/lib/internal/validators.js index 088a0a668ba8b2..77b67a4a37ff91 100644 --- a/lib/internal/validators.js +++ b/lib/internal/validators.js @@ -311,8 +311,12 @@ const validateArray = hideStackFrames((value, name, minLength = 0) => { /** @type {validateStringArray} */ function validateStringArray(value, name) { validateArray(value, name); - for (let i = 0; i < value.length; i++) { - validateString(value[i], `${name}[${i}]`); + for (let i = 0; i < value.length; ++i) { + // Don't use validateString here for performance reasons, as + // we would generate intermediate strings for the name. + if (typeof value[i] !== 'string') { + throw new ERR_INVALID_ARG_TYPE(`${name}[${i}]`, 'string', value[i]); + } } } @@ -326,8 +330,12 @@ function validateStringArray(value, name) { /** @type {validateBooleanArray} */ function validateBooleanArray(value, name) { validateArray(value, name); - for (let i = 0; i < value.length; i++) { - validateBoolean(value[i], `${name}[${i}]`); + for (let i = 0; i < value.length; ++i) { + // Don't use validateBoolean here for performance reasons, as + // we would generate intermediate strings for the name. + if (value[i] !== true && value[i] !== false) { + throw new ERR_INVALID_ARG_TYPE(`${name}[${i}]`, 'boolean', value[i]); + } } } diff --git a/test/benchmark/test-benchmark-validators.js b/test/benchmark/test-benchmark-validators.js index 3a6caba9b0bb20..37250f56588f51 100644 --- a/test/benchmark/test-benchmark-validators.js +++ b/test/benchmark/test-benchmark-validators.js @@ -4,7 +4,6 @@ require('../common'); // Minimal test for assert benchmarks. This makes sure the benchmarks aren't // completely broken but nothing more than that. - const runBenchmark = require('../common/benchmark'); runBenchmark('validators'); From b4d149b4d650baf030658db4a60b639ed39e830a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Jos=C3=A9?= Date: Sun, 22 Oct 2023 23:20:52 +0200 Subject: [PATCH 211/232] worker: handle detached `MessagePort` from a different context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When `worker.moveMessagePortToContext` is used, the async handle associated with the port, will be triggered more than needed (at least one more time) and with null data. That can be avoided by simply checking that the data is present and the port is not detached. Fixes: https://github.com/nodejs/node/issues/49075 Signed-off-by: Juan José Arboleda PR-URL: https://github.com/nodejs/node/pull/49150 Reviewed-By: Anna Henningsen Reviewed-By: Yagiz Nizipli --- src/node_messaging.cc | 7 +++++ .../test-worker-workerdata-messageport.js | 30 +++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 503a58bd4f6391..0a45234d55b837 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -779,6 +779,13 @@ MaybeLocal MessagePort::ReceiveMessage(Local context, void MessagePort::OnMessage(MessageProcessingMode mode) { Debug(this, "Running MessagePort::OnMessage()"); + // Maybe the async handle was triggered empty or more than needed. + // The data_ could be freed or, the handle has been/is being closed. + // A possible case for this, is transfer the MessagePort to another + // context, it will call the constructor and trigger the async handle empty. + // Because all data was sent from the preivous context. + if (IsDetached()) return; + HandleScope handle_scope(env()->isolate()); Local context = object(env()->isolate())->GetCreationContext().ToLocalChecked(); diff --git a/test/parallel/test-worker-workerdata-messageport.js b/test/parallel/test-worker-workerdata-messageport.js index 18f05731e8f635..0df48465a071b1 100644 --- a/test/parallel/test-worker-workerdata-messageport.js +++ b/test/parallel/test-worker-workerdata-messageport.js @@ -1,11 +1,11 @@ 'use strict'; require('../common'); -const assert = require('assert'); +const assert = require('node:assert'); const { Worker, MessageChannel -} = require('worker_threads'); +} = require('node:worker_threads'); const channel = new MessageChannel(); const workerData = { mesage: channel.port1 }; @@ -59,3 +59,29 @@ const meowScript = () => 'meow'; 'listed in transferList' }); } + +{ + // Should not crash when MessagePort is transferred to another context. + // https://github.com/nodejs/node/issues/49075 + const channel = new MessageChannel(); + new Worker(` + const { runInContext, createContext } = require('node:vm') + const { workerData } = require('worker_threads'); + const context = createContext(Object.create(null)); + context.messagePort = workerData.messagePort; + runInContext( + \`messagePort.postMessage("Meow")\`, + context, + { displayErrors: true } + ); + `, { + eval: true, + workerData: { messagePort: channel.port2 }, + transferList: [channel.port2] + }); + channel.port1.on( + 'message', + (message) => + assert.strictEqual(message, 'Meow') + ); +} From 1aecf0c17bef06207fd4fb9683841020484cb30d Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 24 Oct 2023 01:40:44 +0100 Subject: [PATCH 212/232] deps: update corepack to 0.22.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50325 Reviewed-By: Antoine du Hamel Reviewed-By: Vinícius Lourenço Claro Cardoso --- deps/corepack/CHANGELOG.md | 8 + deps/corepack/dist/lib/corepack.cjs | 5046 ++++++++++++++++++++++----- deps/corepack/package.json | 14 +- 3 files changed, 4132 insertions(+), 936 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 4c94877b3e6a97..ea49ba71e3eab0 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [0.22.0](https://github.com/nodejs/corepack/compare/v0.21.0...v0.22.0) (2023-10-21) + + +### Features + +* allow fallback to application/json for custom registries ([#314](https://github.com/nodejs/corepack/issues/314)) ([92f8e71](https://github.com/nodejs/corepack/commit/92f8e71f8c97c44f404ce9b7df8787a4292e6830)) +* update package manager versions ([#318](https://github.com/nodejs/corepack/issues/318)) ([0bd2577](https://github.com/nodejs/corepack/commit/0bd2577bb4c6c3a5a33ecdb3b6ca2ff244c54f28)) + ## [0.21.0](https://github.com/nodejs/corepack/compare/v0.20.0...v0.21.0) (2023-10-08) diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index b3c0aae570d24b..716b997cf06c62 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -5,7 +5,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; -var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __esm = (fn2, res) => function __init() { return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; }; @@ -33,12 +32,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); -var __publicField = (obj, key, value) => { - __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); - return value; -}; -// .yarn/cache/typanion-npm-3.12.1-788497c54f-90cf558a34.zip/node_modules/typanion/lib/index.mjs +// .yarn/cache/typanion-npm-3.14.0-8af344c436-8b03b19844.zip/node_modules/typanion/lib/index.mjs var lib_exports = {}; __export(lib_exports, { KeyRelationship: () => KeyRelationship, @@ -83,6 +78,7 @@ __export(lib_exports, { isOneOf: () => isOneOf, isOptional: () => isOptional, isPartial: () => isPartial, + isPayload: () => isPayload, isPositive: () => isPositive, isRecord: () => isRecord, isSet: () => isSet, @@ -257,6 +253,30 @@ function isNumber() { } }); } +function isPayload(spec) { + return makeValidator({ + test: (value, state) => { + var _a; + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) === `undefined`) + return pushError(state, `The isPayload predicate can only be used with coercion enabled`); + if (typeof state.coercion === `undefined`) + return pushError(state, `Unbound coercion result`); + if (typeof value !== `string`) + return pushError(state, `Expected a string (got ${getPrintable(value)})`); + let inner; + try { + inner = JSON.parse(value); + } catch (_b) { + return pushError(state, `Expected a JSON string (got ${getPrintable(value)})`); + } + const wrapper = { value: inner }; + if (!spec(inner, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(wrapper, `value`) }))) + return false; + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, wrapper.value)]); + return true; + } + }); +} function isDate() { return makeValidator({ test: (value, state) => { @@ -902,19 +922,21 @@ function hasMutuallyExclusiveKeys(exclusiveKeys, options) { } }); } -function hasKeyRelationship(subject, relationship, others, { ignore = [] } = {}) { - const skipped = new Set(ignore); +function hasKeyRelationship(subject, relationship, others, options) { + var _a, _b; + const skipped = new Set((_a = options === null || options === void 0 ? void 0 : options.ignore) !== null && _a !== void 0 ? _a : []); + const check = checks[(_b = options === null || options === void 0 ? void 0 : options.missingIf) !== null && _b !== void 0 ? _b : "missing"]; const otherSet = new Set(others); const spec = keyRelationships[relationship]; const conjunction = relationship === KeyRelationship.Forbids ? `or` : `and`; return makeValidator({ test: (value, state) => { const keys = new Set(Object.keys(value)); - if (!keys.has(subject) || skipped.has(value[subject])) + if (!check(keys, subject, value) || skipped.has(value[subject])) return true; const problems = []; for (const key of otherSet) - if ((keys.has(key) && !skipped.has(value[key])) !== spec.expect) + if ((check(keys, key, value) && !skipped.has(value[key])) !== spec.expect) problems.push(key); if (problems.length >= 1) return pushError(state, `Property "${subject}" ${spec.message} ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, conjunction)}`); @@ -924,7 +946,7 @@ function hasKeyRelationship(subject, relationship, others, { ignore = [] } = {}) } var simpleKeyRegExp, colorStringRegExp, colorStringAlphaRegExp, base64RegExp, uuid4RegExp, iso8601RegExp, BOOLEAN_COERCIONS, isInstanceOf, isOneOf, TypeAssertionError, checks, KeyRelationship, keyRelationships; var init_lib = __esm({ - ".yarn/cache/typanion-npm-3.12.1-788497c54f-90cf558a34.zip/node_modules/typanion/lib/index.mjs"() { + ".yarn/cache/typanion-npm-3.14.0-8af344c436-8b03b19844.zip/node_modules/typanion/lib/index.mjs"() { simpleKeyRegExp = /^[a-zA-Z_][a-zA-Z0-9_]*$/; colorStringRegExp = /^#[0-9a-f]{6}$/i; colorStringAlphaRegExp = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i; @@ -1015,9 +1037,9 @@ var init_lib = __esm({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/constants.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/constants.js var require_constants = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/constants.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/constants.js"(exports, module2) { var SEMVER_SPEC_VERSION = "2.0.0"; var MAX_LENGTH = 256; var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ @@ -1046,19 +1068,23 @@ var require_constants = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/debug.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/debug.js var require_debug = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/debug.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/debug.js"(exports, module2) { var debug2 = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { }; module2.exports = debug2; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/re.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/re.js var require_re = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/re.js"(exports, module2) { - var { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH } = require_constants(); + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/re.js"(exports, module2) { + var { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH + } = require_constants(); var debug2 = require_debug(); exports = module2.exports = {}; var re = exports.re = []; @@ -1069,7 +1095,7 @@ var require_re = __commonJS({ var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; var safeRegexReplacements = [ ["\\s", 1], - ["\\d", MAX_SAFE_COMPONENT_LENGTH], + ["\\d", MAX_LENGTH], [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] ]; var makeSafeRegex = (value) => { @@ -1133,9 +1159,9 @@ var require_re = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/parse-options.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/parse-options.js var require_parse_options = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/parse-options.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/parse-options.js"(exports, module2) { var looseOption = Object.freeze({ loose: true }); var emptyOpts = Object.freeze({}); var parseOptions = (options) => { @@ -1151,9 +1177,9 @@ var require_parse_options = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/identifiers.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/identifiers.js var require_identifiers = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/internal/identifiers.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/internal/identifiers.js"(exports, module2) { var numeric = /^[0-9]+$/; var compareIdentifiers = (a, b) => { const anum = numeric.test(a); @@ -1172,18 +1198,18 @@ var require_identifiers = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/semver.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/semver.js var require_semver = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/semver.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/semver.js"(exports, module2) { var debug2 = require_debug(); var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); var { safeRe: re, t } = require_re(); var parseOptions = require_parse_options(); var { compareIdentifiers } = require_identifiers(); - var SemVer = class { + var SemVer = class _SemVer { constructor(version2, options) { options = parseOptions(options); - if (version2 instanceof SemVer) { + if (version2 instanceof _SemVer) { if (version2.loose === !!options.loose && version2.includePrerelease === !!options.includePrerelease) { return version2; } else { @@ -1246,11 +1272,11 @@ var require_semver = __commonJS({ } compare(other) { debug2("SemVer.compare", this.version, this.options, other); - if (!(other instanceof SemVer)) { + if (!(other instanceof _SemVer)) { if (typeof other === "string" && other === this.version) { return 0; } - other = new SemVer(other, this.options); + other = new _SemVer(other, this.options); } if (other.version === this.version) { return 0; @@ -1258,14 +1284,14 @@ var require_semver = __commonJS({ return this.compareMain(other) || this.comparePre(other); } compareMain(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); } comparePre(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); } if (this.prerelease.length && !other.prerelease.length) { return -1; @@ -1293,8 +1319,8 @@ var require_semver = __commonJS({ } while (++i); } compareBuild(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); } let i = 0; do { @@ -1414,9 +1440,9 @@ var require_semver = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/parse.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/parse.js var require_parse = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/parse.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/parse.js"(exports, module2) { var SemVer = require_semver(); var parse = (version2, options, throwErrors = false) => { if (version2 instanceof SemVer) { @@ -1435,9 +1461,9 @@ var require_parse = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/valid.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/valid.js var require_valid = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/valid.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/valid.js"(exports, module2) { var parse = require_parse(); var valid = (version2, options) => { const v = parse(version2, options); @@ -1447,9 +1473,9 @@ var require_valid = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/clean.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/clean.js var require_clean = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/clean.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/clean.js"(exports, module2) { var parse = require_parse(); var clean = (version2, options) => { const s = parse(version2.trim().replace(/^[=v]+/, ""), options); @@ -1459,9 +1485,9 @@ var require_clean = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/inc.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/inc.js var require_inc = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/inc.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/inc.js"(exports, module2) { var SemVer = require_semver(); var inc = (version2, release, options, identifier, identifierBase) => { if (typeof options === "string") { @@ -1482,9 +1508,9 @@ var require_inc = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/diff.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/diff.js var require_diff = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/diff.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/diff.js"(exports, module2) { var parse = require_parse(); var diff = (version1, version2) => { const v1 = parse(version1, null, true); @@ -1526,36 +1552,36 @@ var require_diff = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/major.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/major.js var require_major = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/major.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/major.js"(exports, module2) { var SemVer = require_semver(); var major = (a, loose) => new SemVer(a, loose).major; module2.exports = major; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/minor.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/minor.js var require_minor = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/minor.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/minor.js"(exports, module2) { var SemVer = require_semver(); var minor = (a, loose) => new SemVer(a, loose).minor; module2.exports = minor; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/patch.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/patch.js var require_patch = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/patch.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/patch.js"(exports, module2) { var SemVer = require_semver(); var patch = (a, loose) => new SemVer(a, loose).patch; module2.exports = patch; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/prerelease.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/prerelease.js var require_prerelease = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/prerelease.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/prerelease.js"(exports, module2) { var parse = require_parse(); var prerelease = (version2, options) => { const parsed = parse(version2, options); @@ -1565,36 +1591,36 @@ var require_prerelease = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare.js var require_compare = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare.js"(exports, module2) { var SemVer = require_semver(); var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); module2.exports = compare; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rcompare.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/rcompare.js var require_rcompare = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rcompare.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/rcompare.js"(exports, module2) { var compare = require_compare(); var rcompare = (a, b, loose) => compare(b, a, loose); module2.exports = rcompare; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-loose.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare-loose.js var require_compare_loose = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-loose.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare-loose.js"(exports, module2) { var compare = require_compare(); var compareLoose = (a, b) => compare(a, b, true); module2.exports = compareLoose; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-build.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare-build.js var require_compare_build = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/compare-build.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/compare-build.js"(exports, module2) { var SemVer = require_semver(); var compareBuild = (a, b, loose) => { const versionA = new SemVer(a, loose); @@ -1605,81 +1631,81 @@ var require_compare_build = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/sort.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/sort.js var require_sort = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/sort.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/sort.js"(exports, module2) { var compareBuild = require_compare_build(); var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); module2.exports = sort; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rsort.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/rsort.js var require_rsort = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/rsort.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/rsort.js"(exports, module2) { var compareBuild = require_compare_build(); var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); module2.exports = rsort; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gt.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/gt.js var require_gt = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gt.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/gt.js"(exports, module2) { var compare = require_compare(); var gt = (a, b, loose) => compare(a, b, loose) > 0; module2.exports = gt; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lt.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/lt.js var require_lt = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lt.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/lt.js"(exports, module2) { var compare = require_compare(); var lt = (a, b, loose) => compare(a, b, loose) < 0; module2.exports = lt; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/eq.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/eq.js var require_eq = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/eq.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/eq.js"(exports, module2) { var compare = require_compare(); var eq = (a, b, loose) => compare(a, b, loose) === 0; module2.exports = eq; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/neq.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/neq.js var require_neq = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/neq.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/neq.js"(exports, module2) { var compare = require_compare(); var neq = (a, b, loose) => compare(a, b, loose) !== 0; module2.exports = neq; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gte.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/gte.js var require_gte = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/gte.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/gte.js"(exports, module2) { var compare = require_compare(); var gte = (a, b, loose) => compare(a, b, loose) >= 0; module2.exports = gte; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lte.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/lte.js var require_lte = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/lte.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/lte.js"(exports, module2) { var compare = require_compare(); var lte = (a, b, loose) => compare(a, b, loose) <= 0; module2.exports = lte; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/cmp.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/cmp.js var require_cmp = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/cmp.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/cmp.js"(exports, module2) { var eq = require_eq(); var neq = require_neq(); var gt = require_gt(); @@ -1726,9 +1752,9 @@ var require_cmp = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/coerce.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/coerce.js var require_coerce = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/coerce.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/coerce.js"(exports, module2) { var SemVer = require_semver(); var parse = require_parse(); var { safeRe: re, t } = require_re(); @@ -2418,17 +2444,17 @@ var require_lru_cache = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/range.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/range.js var require_range = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/range.js"(exports, module2) { - var Range = class { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/range.js"(exports, module2) { + var Range = class _Range { constructor(range, options) { options = parseOptions(options); - if (range instanceof Range) { + if (range instanceof _Range) { if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { return range; } else { - return new Range(range.raw, options); + return new _Range(range.raw, options); } } if (range instanceof Comparator) { @@ -2441,7 +2467,7 @@ var require_range = __commonJS({ this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; this.raw = range.trim().split(/\s+/).join(" "); - this.set = this.raw.split("||").map((r) => this.parseRange(r)).filter((c) => c.length); + this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); if (!this.set.length) { throw new TypeError(`Invalid SemVer Range: ${this.raw}`); } @@ -2509,7 +2535,7 @@ var require_range = __commonJS({ return result; } intersects(range, options) { - if (!(range instanceof Range)) { + if (!(range instanceof _Range)) { throw new TypeError("a Range is required"); } return this.set.some((thisComparators) => { @@ -2775,17 +2801,17 @@ var require_range = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/comparator.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/comparator.js var require_comparator = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/classes/comparator.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/classes/comparator.js"(exports, module2) { var ANY = Symbol("SemVer ANY"); - var Comparator = class { + var Comparator = class _Comparator { static get ANY() { return ANY; } constructor(comp, options) { options = parseOptions(options); - if (comp instanceof Comparator) { + if (comp instanceof _Comparator) { if (comp.loose === !!options.loose) { return comp; } else { @@ -2838,7 +2864,7 @@ var require_comparator = __commonJS({ return cmp(version2, this.operator, this.semver, this.options); } intersects(comp, options) { - if (!(comp instanceof Comparator)) { + if (!(comp instanceof _Comparator)) { throw new TypeError("a Comparator is required"); } if (this.operator === "") { @@ -2887,9 +2913,9 @@ var require_comparator = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/satisfies.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/satisfies.js var require_satisfies = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/functions/satisfies.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/functions/satisfies.js"(exports, module2) { var Range = require_range(); var satisfies = (version2, range, options) => { try { @@ -2903,18 +2929,18 @@ var require_satisfies = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/to-comparators.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/to-comparators.js var require_to_comparators = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/to-comparators.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/to-comparators.js"(exports, module2) { var Range = require_range(); var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); module2.exports = toComparators; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/max-satisfying.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/max-satisfying.js var require_max_satisfying = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/max-satisfying.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/max-satisfying.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var maxSatisfying = (versions, range, options) => { @@ -2940,9 +2966,9 @@ var require_max_satisfying = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-satisfying.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/min-satisfying.js var require_min_satisfying = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-satisfying.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/min-satisfying.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var minSatisfying = (versions, range, options) => { @@ -2968,9 +2994,9 @@ var require_min_satisfying = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-version.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/min-version.js var require_min_version = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/min-version.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/min-version.js"(exports, module2) { var SemVer = require_semver(); var Range = require_range(); var gt = require_gt(); @@ -3024,9 +3050,9 @@ var require_min_version = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/valid.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/valid.js var require_valid2 = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/valid.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/valid.js"(exports, module2) { var Range = require_range(); var validRange = (range, options) => { try { @@ -3039,9 +3065,9 @@ var require_valid2 = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/outside.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/outside.js var require_outside = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/outside.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/outside.js"(exports, module2) { var SemVer = require_semver(); var Comparator = require_comparator(); var { ANY } = Comparator; @@ -3107,27 +3133,27 @@ var require_outside = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/gtr.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/gtr.js var require_gtr = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/gtr.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/gtr.js"(exports, module2) { var outside = require_outside(); var gtr = (version2, range, options) => outside(version2, range, ">", options); module2.exports = gtr; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/ltr.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/ltr.js var require_ltr = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/ltr.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/ltr.js"(exports, module2) { var outside = require_outside(); var ltr = (version2, range, options) => outside(version2, range, "<", options); module2.exports = ltr; } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/intersects.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/intersects.js var require_intersects = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/intersects.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/intersects.js"(exports, module2) { var Range = require_range(); var intersects = (r1, r2, options) => { r1 = new Range(r1, options); @@ -3138,9 +3164,9 @@ var require_intersects = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/simplify.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/simplify.js var require_simplify = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/simplify.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/simplify.js"(exports, module2) { var satisfies = require_satisfies(); var compare = require_compare(); module2.exports = (versions, range, options) => { @@ -3187,9 +3213,9 @@ var require_simplify = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/subset.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/subset.js var require_subset = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/ranges/subset.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/ranges/subset.js"(exports, module2) { var Range = require_range(); var Comparator = require_comparator(); var { ANY } = Comparator; @@ -3349,9 +3375,9 @@ var require_subset = __commonJS({ } }); -// .yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/index.js +// .yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/index.js var require_semver2 = __commonJS({ - ".yarn/cache/semver-npm-7.5.3-275095dbf3-4cf3bab7e8.zip/node_modules/semver/index.js"(exports, module2) { + ".yarn/cache/semver-npm-7.5.4-c4ad957fcd-5160b06975.zip/node_modules/semver/index.js"(exports, module2) { var internalRe = require_re(); var constants = require_constants(); var SemVer = require_semver(); @@ -3891,7 +3917,7 @@ var require_browser = __commonJS({ } }); -// .yarn/cache/supports-color-npm-9.3.1-08866b3304-cf142b72de.zip/node_modules/supports-color/index.js +// .yarn/cache/supports-color-npm-9.4.0-a415f39758-6c24e6b2b6.zip/node_modules/supports-color/index.js var supports_color_exports = {}; __export(supports_color_exports, { createSupportsColor: () => createSupportsColor, @@ -3960,7 +3986,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { return 1; } if ("CI" in env) { - if ("GITHUB_ACTIONS" in env) { + if ("GITHUB_ACTIONS" in env || "GITEA_ACTIONS" in env) { return 3; } if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { @@ -4008,7 +4034,7 @@ function createSupportsColor(stream, options = {}) { } var import_node_process, import_node_os, import_node_tty, env, flagForceColor, supportsColor, supports_color_default; var init_supports_color = __esm({ - ".yarn/cache/supports-color-npm-9.3.1-08866b3304-cf142b72de.zip/node_modules/supports-color/index.js"() { + ".yarn/cache/supports-color-npm-9.4.0-a415f39758-6c24e6b2b6.zip/node_modules/supports-color/index.js"() { import_node_process = __toESM(require("node:process"), 1); import_node_os = __toESM(require("node:os"), 1); import_node_tty = __toESM(require("node:tty"), 1); @@ -4313,7 +4339,7 @@ var require_lru_cache2 = __commonJS({ return this.heap[--this.length]; } }; - var LRUCache = class { + var LRUCache = class _LRUCache { constructor(options = {}) { const { max = 0, @@ -4338,7 +4364,7 @@ var require_lru_cache2 = __commonJS({ allowStaleOnFetchAbort, ignoreFetchAbort } = options; - const { length, maxAge, stale } = options instanceof LRUCache ? {} : options; + const { length, maxAge, stale } = options instanceof _LRUCache ? {} : options; if (max !== 0 && !isPosInt(max)) { throw new TypeError("max option must be a nonnegative integer"); } @@ -4438,7 +4464,7 @@ var require_lru_cache2 = __commonJS({ if (shouldWarn(code)) { warned.add(code); const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption."; - emitWarning(msg, "UnboundedCacheWarning", code, LRUCache); + emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache); } } if (stale) { @@ -5413,9 +5439,9 @@ var require_dist = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js +// .yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js var require_common2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/common.js"(exports, module2) { function setup(env2) { createDebug.debug = createDebug; createDebug.default = createDebug; @@ -5576,9 +5602,9 @@ var require_common2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js +// .yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js var require_browser2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/browser.js"(exports, module2) { exports.formatArgs = formatArgs; exports.save = save; exports.load = load; @@ -5745,9 +5771,9 @@ var require_browser2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js +// .yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js var require_node2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/node.js"(exports, module2) { var tty3 = require("tty"); var util = require("util"); exports.init = init; @@ -5919,9 +5945,9 @@ var require_node2 = __commonJS({ } }); -// .yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js +// .yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js var require_src2 = __commonJS({ - ".yarn/__virtual__/debug-virtual-2eaddcf3b9/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js"(exports, module2) { + ".yarn/__virtual__/debug-virtual-a84ae92427/0/cache/debug-npm-4.3.4-4513954577-cedbec4529.zip/node_modules/debug/src/index.js"(exports, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser2(); } else { @@ -6134,9 +6160,9 @@ var require_dist2 = __commonJS({ } }); -// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js +// .yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-7735eb9007.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js var require_parse_proxy_response = __commonJS({ - ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) { + ".yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-7735eb9007.zip/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -6230,9 +6256,9 @@ var require_parse_proxy_response = __commonJS({ } }); -// .yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/index.js +// .yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-7735eb9007.zip/node_modules/https-proxy-agent/dist/index.js var require_dist3 = __commonJS({ - ".yarn/cache/https-proxy-agent-npm-7.0.1-a2d5d93ee0-f08f646809.zip/node_modules/https-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/https-proxy-agent-npm-7.0.2-83ea6a5d42-7735eb9007.zip/node_modules/https-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -6307,7 +6333,11 @@ var require_dist3 = __commonJS({ let socket; if (proxy.protocol === "https:") { debug2("Creating `tls.Socket`: %o", this.connectOpts); - socket = tls.connect(this.connectOpts); + const servername = this.connectOpts.servername || this.connectOpts.host; + socket = tls.connect({ + ...this.connectOpts, + servername: servername && net.isIP(servername) ? void 0 : servername + }); } else { debug2("Creating `net.Socket`: %o", this.connectOpts); socket = net.connect(this.connectOpts); @@ -6757,7 +6787,7 @@ var require_smartbuffer = __commonJS({ var utils_1 = require_utils(); var DEFAULT_SMARTBUFFER_SIZE = 4096; var DEFAULT_SMARTBUFFER_ENCODING = "utf8"; - var SmartBuffer = class { + var SmartBuffer = class _SmartBuffer { /** * Creates a new SmartBuffer instance. * @@ -6768,7 +6798,7 @@ var require_smartbuffer = __commonJS({ this._encoding = DEFAULT_SMARTBUFFER_ENCODING; this._writeOffset = 0; this._readOffset = 0; - if (SmartBuffer.isSmartBufferOptions(options)) { + if (_SmartBuffer.isSmartBufferOptions(options)) { if (options.encoding) { utils_1.checkEncoding(options.encoding); this._encoding = options.encoding; @@ -8221,7 +8251,7 @@ var require_socksclient = __commonJS({ Object.defineProperty(exports, "SocksClientError", { enumerable: true, get: function() { return util_1.SocksClientError; } }); - var SocksClient = class extends events_1.EventEmitter { + var SocksClient = class _SocksClient extends events_1.EventEmitter { constructor(options) { super(); this.options = Object.assign({}, options); @@ -8248,7 +8278,7 @@ var require_socksclient = __commonJS({ return reject(err); } } - const client = new SocksClient(options); + const client = new _SocksClient(options); client.connect(options.existing_socket); client.once("established", (info) => { client.removeAllListeners(); @@ -8302,7 +8332,7 @@ var require_socksclient = __commonJS({ host: options.proxies[i + 1].host || options.proxies[i + 1].ipaddress, port: options.proxies[i + 1].port }; - const result = yield SocksClient.createConnection({ + const result = yield _SocksClient.createConnection({ command: "connect", proxy: nextProxy, destination: nextDestination, @@ -8885,9 +8915,9 @@ var require_build = __commonJS({ } }); -// .yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-3971e6af57.zip/node_modules/socks-proxy-agent/dist/index.js +// .yarn/cache/socks-proxy-agent-npm-8.0.2-df165543cf-a842402fc9.zip/node_modules/socks-proxy-agent/dist/index.js var require_dist4 = __commonJS({ - ".yarn/cache/socks-proxy-agent-npm-8.0.1-646f00d0a1-3971e6af57.zip/node_modules/socks-proxy-agent/dist/index.js"(exports) { + ".yarn/cache/socks-proxy-agent-npm-8.0.2-df165543cf-a842402fc9.zip/node_modules/socks-proxy-agent/dist/index.js"(exports) { "use strict"; var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { if (k2 === void 0) @@ -8932,6 +8962,7 @@ var require_dist4 = __commonJS({ var dns = __importStar2(require("dns")); var net = __importStar2(require("net")); var tls = __importStar2(require("tls")); + var url_1 = require("url"); var debug2 = (0, debug_1.default)("socks-proxy-agent"); function parseSocksURL(url) { let lookup = false; @@ -8981,7 +9012,7 @@ var require_dist4 = __commonJS({ var SocksProxyAgent = class extends agent_base_1.Agent { constructor(uri, opts) { super(opts); - const url = typeof uri === "string" ? new URL(uri) : uri; + const url = typeof uri === "string" ? new url_1.URL(uri) : uri; const { proxy, lookup } = parseSocksURL(url); this.shouldLookup = lookup; this.proxy = proxy; @@ -9069,13 +9100,44 @@ var require_dist4 = __commonJS({ } }); -// .yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-08ad2f2cd5.zip/node_modules/data-uri-to-buffer/dist/index.js +// .yarn/cache/data-uri-to-buffer-npm-6.0.1-327e9c6acb-d8631b4be9.zip/node_modules/data-uri-to-buffer/dist/index.js var require_dist5 = __commonJS({ - ".yarn/cache/data-uri-to-buffer-npm-5.0.1-a40e5ac026-08ad2f2cd5.zip/node_modules/data-uri-to-buffer/dist/index.js"(exports) { + ".yarn/cache/data-uri-to-buffer-npm-6.0.1-327e9c6acb-d8631b4be9.zip/node_modules/data-uri-to-buffer/dist/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dataUriToBuffer = void 0; + function base64ToArrayBuffer(base64) { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + const bytes = []; + for (let i = 0; i < base64.length; i += 4) { + const idx0 = chars.indexOf(base64.charAt(i)); + const idx1 = chars.indexOf(base64.charAt(i + 1)); + const idx2 = base64.charAt(i + 2) === "=" ? 0 : chars.indexOf(base64.charAt(i + 2)); + const idx3 = base64.charAt(i + 3) === "=" ? 0 : chars.indexOf(base64.charAt(i + 3)); + const bin0 = idx0 << 2 | idx1 >> 4; + const bin1 = (idx1 & 15) << 4 | idx2 >> 2; + const bin2 = (idx2 & 3) << 6 | idx3; + bytes.push(bin0); + if (base64.charAt(i + 2) !== "=") + bytes.push(bin1); + if (base64.charAt(i + 3) !== "=") + bytes.push(bin2); + } + const buffer = new ArrayBuffer(bytes.length); + const view = new Uint8Array(buffer); + view.set(bytes); + return buffer; + } + function stringToBuffer(str) { + const buffer = new ArrayBuffer(str.length); + const view = new Uint8Array(buffer); + for (let i = 0; i < str.length; i++) { + view[i] = str.charCodeAt(i); + } + return buffer; + } function dataUriToBuffer(uri) { + uri = String(uri); if (!/^data:/i.test(uri)) { throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")'); } @@ -9103,22 +9165,22 @@ var require_dist5 = __commonJS({ typeFull += ";charset=US-ASCII"; charset = "US-ASCII"; } - const encoding = base64 ? "base64" : "ascii"; const data = unescape(uri.substring(firstComma + 1)); - const buffer = Buffer.from(data, encoding); - buffer.type = type; - buffer.typeFull = typeFull; - buffer.charset = charset; - return buffer; + const buffer = base64 ? base64ToArrayBuffer(data) : stringToBuffer(data); + return { + type, + typeFull, + charset, + buffer + }; } exports.dataUriToBuffer = dataUriToBuffer; - exports.default = dataUriToBuffer; } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notmodified.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/notmodified.js var require_notmodified = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notmodified.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/notmodified.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var NotModifiedError = class extends Error { @@ -9131,9 +9193,9 @@ var require_notmodified = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/data.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/data.js var require_data = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/data.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/data.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -9143,7 +9205,7 @@ var require_data = __commonJS({ var debug_1 = __importDefault2(require_src2()); var stream_1 = require("stream"); var crypto_1 = require("crypto"); - var data_uri_to_buffer_1 = __importDefault2(require_dist5()); + var data_uri_to_buffer_1 = require_dist5(); var notmodified_1 = __importDefault2(require_notmodified()); var debug2 = (0, debug_1.default)("get-uri:data"); var DataReadable = class extends stream_1.Readable { @@ -9164,8 +9226,8 @@ var require_data = __commonJS({ throw new notmodified_1.default(); } else { debug2('creating Readable stream from "data:" URI buffer'); - const buf = (0, data_uri_to_buffer_1.default)(uri); - return new DataReadable(hash, buf); + const { buffer } = (0, data_uri_to_buffer_1.dataUriToBuffer)(uri); + return new DataReadable(hash, Buffer.from(buffer)); } }; exports.data = data; @@ -11980,9 +12042,9 @@ var require_lib = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notfound.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/notfound.js var require_notfound = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/notfound.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/notfound.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var NotFoundError = class extends Error { @@ -11995,9 +12057,9 @@ var require_notfound = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/file.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/file.js var require_file2 = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/file.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/file.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14001,9 +14063,9 @@ var require_dist6 = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/ftp.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/ftp.js var require_ftp = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/ftp.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/ftp.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14082,9 +14144,9 @@ var require_ftp = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http-error.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/http-error.js var require_http_error = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http-error.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/http-error.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var http_1 = require("http"); @@ -14099,9 +14161,9 @@ var require_http_error = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/http.js var require_http = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/http.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/http.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14252,9 +14314,9 @@ var require_http = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/https.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/https.js var require_https = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/https.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/https.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14270,9 +14332,9 @@ var require_https = __commonJS({ } }); -// .yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/index.js +// .yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/index.js var require_dist7 = __commonJS({ - ".yarn/cache/get-uri-npm-6.0.1-d4f0bb7365-dde1cd2fa7.zip/node_modules/get-uri/dist/index.js"(exports) { + ".yarn/cache/get-uri-npm-6.0.2-b89b919843-50ef3e0b76.zip/node_modules/get-uri/dist/index.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -14315,55 +14377,9 @@ var require_dist7 = __commonJS({ } }); -// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/package.json -var require_package = __commonJS({ - ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/package.json"(exports, module2) { - module2.exports = { - name: "estraverse", - description: "ECMAScript JS AST traversal functions", - homepage: "https://github.com/estools/estraverse", - main: "estraverse.js", - version: "4.3.0", - engines: { - node: ">=4.0" - }, - maintainers: [ - { - name: "Yusuke Suzuki", - email: "utatane.tea@gmail.com", - web: "http://github.com/Constellation" - } - ], - repository: { - type: "git", - url: "http://github.com/estools/estraverse.git" - }, - devDependencies: { - "babel-preset-env": "^1.6.1", - "babel-register": "^6.3.13", - chai: "^2.1.1", - espree: "^1.11.0", - gulp: "^3.8.10", - "gulp-bump": "^0.2.2", - "gulp-filter": "^2.0.0", - "gulp-git": "^1.0.1", - "gulp-tag-version": "^1.3.0", - jshint: "^2.5.6", - mocha: "^2.1.0" - }, - license: "BSD-2-Clause", - scripts: { - test: "npm run-script lint && npm run-script unit-test", - lint: "jshint estraverse.js", - "unit-test": "mocha --compilers js:babel-register" - } - }; - } -}); - -// .yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/estraverse.js +// .yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip/node_modules/estraverse/estraverse.js var require_estraverse = __commonJS({ - ".yarn/cache/estraverse-npm-4.3.0-920a32f3c6-9cb46463ef.zip/node_modules/estraverse/estraverse.js"(exports) { + ".yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip/node_modules/estraverse/estraverse.js"(exports) { (function clone(exports2) { "use strict"; var Syntax, VisitorOption, VisitorKeys, BREAK, SKIP, REMOVE; @@ -14410,6 +14426,7 @@ var require_estraverse = __commonJS({ BreakStatement: "BreakStatement", CallExpression: "CallExpression", CatchClause: "CatchClause", + ChainExpression: "ChainExpression", ClassBody: "ClassBody", ClassDeclaration: "ClassDeclaration", ClassExpression: "ClassExpression", @@ -14452,8 +14469,10 @@ var require_estraverse = __commonJS({ NewExpression: "NewExpression", ObjectExpression: "ObjectExpression", ObjectPattern: "ObjectPattern", + PrivateIdentifier: "PrivateIdentifier", Program: "Program", Property: "Property", + PropertyDefinition: "PropertyDefinition", RestElement: "RestElement", ReturnStatement: "ReturnStatement", SequenceExpression: "SequenceExpression", @@ -14488,6 +14507,7 @@ var require_estraverse = __commonJS({ BreakStatement: ["label"], CallExpression: ["callee", "arguments"], CatchClause: ["param", "body"], + ChainExpression: ["expression"], ClassBody: ["body"], ClassDeclaration: ["id", "superClass", "body"], ClassExpression: ["id", "superClass", "body"], @@ -14530,8 +14550,10 @@ var require_estraverse = __commonJS({ NewExpression: ["callee", "arguments"], ObjectExpression: ["properties"], ObjectPattern: ["properties"], + PrivateIdentifier: [], Program: ["body"], Property: ["key", "value"], + PropertyDefinition: ["key", "value"], RestElement: ["argument"], ReturnStatement: ["argument"], SequenceExpression: ["expressions"], @@ -14673,6 +14695,14 @@ var require_estraverse = __commonJS({ function isProperty(nodeType, key) { return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && "properties" === key; } + function candidateExistsInLeaveList(leavelist, candidate) { + for (var i = leavelist.length - 1; i >= 0; --i) { + if (leavelist[i].node === candidate) { + return true; + } + } + return false; + } Controller.prototype.traverse = function traverse2(root, visitor) { var worklist, leavelist, element, node, nodeType, ret, key, current, current2, candidates, candidate, sentinel; this.__initialize(root, visitor); @@ -14724,6 +14754,9 @@ var require_estraverse = __commonJS({ if (!candidate[current2]) { continue; } + if (candidateExistsInLeaveList(leavelist, candidate[current2])) { + continue; + } if (isProperty(nodeType, candidates[current])) { element = new Element(candidate[current2], [key, current2], "Property", null); } else if (isNode(candidate[current2])) { @@ -14734,6 +14767,9 @@ var require_estraverse = __commonJS({ worklist.push(element); } } else if (isNode(candidate)) { + if (candidateExistsInLeaveList(leavelist, candidate)) { + continue; + } worklist.push(new Element(candidate, key, null, null)); } } @@ -14942,7 +14978,6 @@ var require_estraverse = __commonJS({ }); return tree; } - exports2.version = require_package().version; exports2.Syntax = Syntax; exports2.traverse = traverse; exports2.replace = replace; @@ -17067,9 +17102,9 @@ var require_source_map = __commonJS({ } }); -// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/package.json -var require_package2 = __commonJS({ - ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/package.json"(exports, module2) { +// .yarn/cache/escodegen-npm-2.1.0-e0bf940745-e1450a1f75.zip/node_modules/escodegen/package.json +var require_package = __commonJS({ + ".yarn/cache/escodegen-npm-2.1.0-e0bf940745-e1450a1f75.zip/node_modules/escodegen/package.json"(exports, module2) { module2.exports = { name: "escodegen", description: "ECMAScript code generator", @@ -17086,9 +17121,9 @@ var require_package2 = __commonJS({ "escodegen.js", "package.json" ], - version: "1.14.3", + version: "2.1.0", engines: { - node: ">=4.0" + node: ">=6.0" }, maintainers: [ { @@ -17102,24 +17137,26 @@ var require_package2 = __commonJS({ url: "http://github.com/estools/escodegen.git" }, dependencies: { - estraverse: "^4.2.0", + estraverse: "^5.2.0", esutils: "^2.0.2", - esprima: "^4.0.1", - optionator: "^0.8.1" + esprima: "^4.0.1" }, optionalDependencies: { "source-map": "~0.6.1" }, devDependencies: { - acorn: "^7.1.0", + acorn: "^8.0.4", bluebird: "^3.4.7", "bower-registry-client": "^1.0.0", - chai: "^3.5.0", + chai: "^4.2.0", + "chai-exclude": "^2.0.2", "commonjs-everywhere": "^0.9.7", - gulp: "^3.8.10", - "gulp-eslint": "^3.0.1", - "gulp-mocha": "^3.0.1", - semver: "^5.1.0" + gulp: "^4.0.2", + "gulp-eslint": "^6.0.0", + "gulp-mocha": "^7.0.2", + minimist: "^1.2.5", + optionator: "^0.9.1", + semver: "^7.3.4" }, license: "BSD-2-Clause", scripts: { @@ -17134,9 +17171,9 @@ var require_package2 = __commonJS({ } }); -// .yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/escodegen.js +// .yarn/cache/escodegen-npm-2.1.0-e0bf940745-e1450a1f75.zip/node_modules/escodegen/escodegen.js var require_escodegen = __commonJS({ - ".yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-30d337803e.zip/node_modules/escodegen/escodegen.js"(exports) { + ".yarn/cache/escodegen-npm-2.1.0-e0bf940745-e1450a1f75.zip/node_modules/escodegen/escodegen.js"(exports) { (function() { "use strict"; var Syntax, Precedence, BinaryPrecedence, SourceNode, estraverse, esutils, base, indent, json, renumber, hexadecimal, quotes, escapeless, newline, space, parentheses, semicolons, safeConcatenation, directive, extra, parse, sourceMap, sourceCode, preserveBlankLines, FORMAT_MINIFY, FORMAT_DEFAULTS; @@ -17155,27 +17192,30 @@ var require_escodegen = __commonJS({ Assignment: 1, Conditional: 2, ArrowFunction: 2, - LogicalOR: 3, - LogicalAND: 4, - BitwiseOR: 5, - BitwiseXOR: 6, - BitwiseAND: 7, - Equality: 8, - Relational: 9, - BitwiseSHIFT: 10, - Additive: 11, - Multiplicative: 12, - Exponentiation: 13, - Await: 14, - Unary: 14, - Postfix: 15, - Call: 16, - New: 17, - TaggedTemplate: 18, - Member: 19, - Primary: 20 + Coalesce: 3, + LogicalOR: 4, + LogicalAND: 5, + BitwiseOR: 6, + BitwiseXOR: 7, + BitwiseAND: 8, + Equality: 9, + Relational: 10, + BitwiseSHIFT: 11, + Additive: 12, + Multiplicative: 13, + Exponentiation: 14, + Await: 15, + Unary: 15, + Postfix: 16, + OptionalChaining: 17, + Call: 18, + New: 19, + TaggedTemplate: 20, + Member: 21, + Primary: 22 }; BinaryPrecedence = { + "??": Precedence.Coalesce, "||": Precedence.LogicalOR, "&&": Precedence.LogicalAND, "|": Precedence.BitwiseOR, @@ -17203,7 +17243,7 @@ var require_escodegen = __commonJS({ "/": Precedence.Multiplicative, "**": Precedence.Exponentiation }; - var F_ALLOW_IN = 1, F_ALLOW_CALL = 1 << 1, F_ALLOW_UNPARATH_NEW = 1 << 2, F_FUNC_BODY = 1 << 3, F_DIRECTIVE_CTX = 1 << 4, F_SEMICOLON_OPT = 1 << 5; + var F_ALLOW_IN = 1, F_ALLOW_CALL = 1 << 1, F_ALLOW_UNPARATH_NEW = 1 << 2, F_FUNC_BODY = 1 << 3, F_DIRECTIVE_CTX = 1 << 4, F_SEMICOLON_OPT = 1 << 5, F_FOUND_COALESCE = 1 << 6; var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW, E_TTF = F_ALLOW_IN | F_ALLOW_CALL, E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW, E_TFF = F_ALLOW_IN, E_FFT = F_ALLOW_UNPARATH_NEW, E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW; var S_TFFF = F_ALLOW_IN, S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT, S_FFFF = 0, S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX, S_TTFF = F_ALLOW_IN | F_FUNC_BODY; function getDefaultOptions() { @@ -18540,7 +18580,7 @@ var require_escodegen = __commonJS({ } return parenthesize( [ - this.generateExpression(expr.test, Precedence.LogicalOR, flags), + this.generateExpression(expr.test, Precedence.Coalesce, flags), space + "?" + space, this.generateExpression(expr.consequent, Precedence.Assignment, flags), space + ":" + space, @@ -18551,6 +18591,9 @@ var require_escodegen = __commonJS({ ); }, LogicalExpression: function(expr, precedence, flags) { + if (expr.operator === "??") { + flags |= F_FOUND_COALESCE; + } return this.BinaryExpression(expr, precedence, flags); }, BinaryExpression: function(expr, precedence, flags) { @@ -18578,11 +18621,17 @@ var require_escodegen = __commonJS({ if (expr.operator === "in" && !(flags & F_ALLOW_IN)) { return ["(", result, ")"]; } + if ((expr.operator === "||" || expr.operator === "&&") && flags & F_FOUND_COALESCE) { + return ["(", result, ")"]; + } return parenthesize(result, currentPrecedence, precedence); }, CallExpression: function(expr, precedence, flags) { var result, i, iz; result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)]; + if (expr.optional) { + result.push("?."); + } result.push("("); for (i = 0, iz = expr["arguments"].length; i < iz; ++i) { result.push(this.generateExpression(expr["arguments"][i], Precedence.Assignment, E_TTT)); @@ -18596,6 +18645,13 @@ var require_escodegen = __commonJS({ } return parenthesize(result, Precedence.Call, precedence); }, + ChainExpression: function(expr, precedence, flags) { + if (Precedence.OptionalChaining < precedence) { + flags |= F_ALLOW_CALL; + } + var result = this.generateExpression(expr.expression, Precedence.OptionalChaining, flags); + return parenthesize(result, Precedence.OptionalChaining, precedence); + }, NewExpression: function(expr, precedence, flags) { var result, length, i, iz, itemFlags; length = expr["arguments"].length; @@ -18620,17 +18676,20 @@ var require_escodegen = __commonJS({ var result, fragment; result = [this.generateExpression(expr.object, Precedence.Call, flags & F_ALLOW_CALL ? E_TTF : E_TFF)]; if (expr.computed) { + if (expr.optional) { + result.push("?."); + } result.push("["); result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT)); result.push("]"); } else { - if (expr.object.type === Syntax.Literal && typeof expr.object.value === "number") { + if (!expr.optional && expr.object.type === Syntax.Literal && typeof expr.object.value === "number") { fragment = toSourceNodeWhenNeeded(result).toString(); if (fragment.indexOf(".") < 0 && !/[eExX]/.test(fragment) && esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) && !(fragment.length >= 2 && fragment.charCodeAt(0) === 48)) { result.push(" "); } } - result.push("."); + result.push(expr.optional ? "?." : "."); result.push(generateIdentifier(expr.property)); } return parenthesize(result, Precedence.Member, precedence); @@ -18954,6 +19013,12 @@ var require_escodegen = __commonJS({ if (expr.regex) { return "/" + expr.regex.pattern + "/" + expr.regex.flags; } + if (typeof expr.value === "bigint") { + return expr.value.toString() + "n"; + } + if (expr.bigint) { + return expr.bigint + "n"; + } if (expr.value === null) { return "null"; } @@ -19179,7 +19244,7 @@ var require_escodegen = __commonJS({ semicolons: false }; FORMAT_DEFAULTS = getDefaultOptions().format; - exports.version = require_package2().version; + exports.version = require_package().version; exports.generate = generate; exports.attachComments = estraverse.attachComments; exports.Precedence = updateDeeply({}, Precedence); @@ -25426,7 +25491,7 @@ var require_esprima = __commonJS({ } }); -// .yarn/cache/tslib-npm-2.6.0-4d336a6824-8d18020a8b.zip/node_modules/tslib/tslib.es6.mjs +// .yarn/cache/tslib-npm-2.6.2-4fc8c068d9-e03a8a4271.zip/node_modules/tslib/tslib.es6.mjs var tslib_es6_exports = {}; __export(tslib_es6_exports, { __addDisposableResource: () => __addDisposableResource, @@ -25846,7 +25911,7 @@ function __classPrivateFieldIn(state, receiver) { } function __addDisposableResource(env2, value, async) { if (value !== null && value !== void 0) { - if (typeof value !== "object") + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); var dispose; if (async) { @@ -25893,7 +25958,7 @@ function __disposeResources(env2) { } var extendStatics, __assign, __createBinding, __setModuleDefault, _SuppressedError, tslib_es6_default; var init_tslib_es6 = __esm({ - ".yarn/cache/tslib-npm-2.6.0-4d336a6824-8d18020a8b.zip/node_modules/tslib/tslib.es6.mjs"() { + ".yarn/cache/tslib-npm-2.6.2-4fc8c068d9-e03a8a4271.zip/node_modules/tslib/tslib.es6.mjs"() { extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; @@ -28967,7 +29032,7 @@ var require_namedTypes = __commonJS({ Object.defineProperty(exports, "__esModule", { value: true }); exports.namedTypes = void 0; var namedTypes; - (function(namedTypes2) { + /* @__PURE__ */ (function(namedTypes2) { })(namedTypes = exports.namedTypes || (exports.namedTypes = {})); } }); @@ -29049,30 +29114,16 @@ var require_main = __commonJS({ } }); -// vm2/index.js -var require_vm2 = __commonJS({ - "vm2/index.js"(exports, module2) { - "use strict"; - module2.exports = { - VM() { - }, - VMScript() { - } - }; - } -}); - -// .yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-c859071a75.zip/node_modules/degenerator/dist/index.js -var require_dist8 = __commonJS({ - ".yarn/cache/degenerator-npm-4.0.4-1f9c4b67eb-c859071a75.zip/node_modules/degenerator/dist/index.js"(exports) { +// .yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/degenerator.js +var require_degenerator = __commonJS({ + ".yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/degenerator.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); - exports.compile = exports.degenerator = void 0; + exports.degenerator = void 0; var util_1 = require("util"); var escodegen_1 = require_escodegen(); var esprima_1 = require_esprima(); var ast_types_1 = require_main(); - var vm2_1 = require_vm2(); function degenerator(code, _names) { if (!Array.isArray(_names)) { throw new TypeError('an array of async function "names" is required'); @@ -29141,34 +29192,6 @@ var require_dist8 = __commonJS({ return (0, escodegen_1.generate)(ast); } exports.degenerator = degenerator; - function compile(code, returnName, names, options = {}) { - const compiled = degenerator(code, names); - const vm = new vm2_1.VM(options); - const script = new vm2_1.VMScript(`${compiled};${returnName}`, { - filename: options.filename - }); - const fn2 = vm.run(script); - if (typeof fn2 !== "function") { - throw new Error(`Expected a "function" to be returned for \`${returnName}\`, but got "${typeof fn2}"`); - } - const r = function(...args) { - try { - const p = fn2.apply(this, args); - if (typeof p?.then === "function") { - return p; - } - return Promise.resolve(p); - } catch (err) { - return Promise.reject(err); - } - }; - Object.defineProperty(r, "toString", { - value: fn2.toString.bind(fn2), - enumerable: false - }); - return r; - } - exports.compile = compile; function checkNames({ callee }, names) { let name; if (ast_types_1.namedTypes.Identifier.check(callee)) { @@ -29206,9 +29229,134 @@ var require_dist8 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dateRange.js +// .yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/compile.js +var require_compile = __commonJS({ + ".yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/compile.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.compile = void 0; + var util_1 = require("util"); + var degenerator_1 = require_degenerator(); + function compile(qjs, code, returnName, options = {}) { + const compiled = (0, degenerator_1.degenerator)(code, options.names ?? []); + const vm = qjs.newContext(); + if (options.sandbox) { + for (const [name, value] of Object.entries(options.sandbox)) { + if (typeof value !== "function") { + throw new Error(`Expected a "function" for sandbox property \`${name}\`, but got "${typeof value}"`); + } + const fnHandle = vm.newFunction(name, (...args) => { + const result = value(...args.map((arg) => quickJSHandleToHost(vm, arg))); + vm.runtime.executePendingJobs(); + return hostToQuickJSHandle(vm, result); + }); + fnHandle.consume((handle) => vm.setProp(vm.global, name, handle)); + } + } + const fnResult = vm.evalCode(`${compiled};${returnName}`, options.filename); + const fn2 = vm.unwrapResult(fnResult); + const t = vm.typeof(fn2); + if (t !== "function") { + throw new Error(`Expected a "function" named \`${returnName}\` to be defined, but got "${t}"`); + } + const r = async function(...args) { + let promiseHandle; + let resolvedHandle; + try { + const result = vm.callFunction(fn2, vm.undefined, ...args.map((arg) => hostToQuickJSHandle(vm, arg))); + promiseHandle = vm.unwrapResult(result); + const resolvedResultP = vm.resolvePromise(promiseHandle); + vm.runtime.executePendingJobs(); + const resolvedResult = await resolvedResultP; + resolvedHandle = vm.unwrapResult(resolvedResult); + return quickJSHandleToHost(vm, resolvedHandle); + } catch (err) { + if (err && typeof err === "object" && "cause" in err && err.cause) { + if (typeof err.cause === "object" && "stack" in err.cause && "name" in err.cause && "message" in err.cause && typeof err.cause.stack === "string" && typeof err.cause.name === "string" && typeof err.cause.message === "string") { + err.cause.stack = `${err.cause.name}: ${err.cause.message} +${err.cause.stack}`; + } + throw err.cause; + } + throw err; + } finally { + promiseHandle?.dispose(); + resolvedHandle?.dispose(); + } + }; + Object.defineProperty(r, "toString", { + value: () => compiled, + enumerable: false + }); + return r; + } + exports.compile = compile; + function quickJSHandleToHost(vm, val) { + return vm.dump(val); + } + function hostToQuickJSHandle(vm, val) { + if (typeof val === "undefined") { + return vm.undefined; + } else if (val === null) { + return vm.null; + } else if (typeof val === "string") { + return vm.newString(val); + } else if (typeof val === "number") { + return vm.newNumber(val); + } else if (typeof val === "bigint") { + return vm.newBigInt(val); + } else if (typeof val === "boolean") { + return val ? vm.true : vm.false; + } else if (util_1.types.isPromise(val)) { + const promise = vm.newPromise(); + promise.settled.then(vm.runtime.executePendingJobs); + val.then((r) => { + promise.resolve(hostToQuickJSHandle(vm, r)); + }, (err) => { + promise.reject(hostToQuickJSHandle(vm, err)); + }); + return promise.handle; + } else if (util_1.types.isNativeError(val)) { + return vm.newError(val); + } + throw new Error(`Unsupported value: ${val}`); + } + } +}); + +// .yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/index.js +var require_dist8 = __commonJS({ + ".yarn/cache/degenerator-npm-5.0.1-97c678cdaf-e48d8a651e.zip/node_modules/degenerator/dist/index.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar2 = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) + __createBinding2(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar2(require_degenerator(), exports); + __exportStar2(require_compile(), exports); + } +}); + +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dateRange.js var require_dateRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dateRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dateRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dateRange() { @@ -29218,9 +29366,9 @@ var require_dateRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainIs.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsDomainIs.js var require_dnsDomainIs = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainIs.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsDomainIs.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dnsDomainIs(host, domain) { @@ -29232,9 +29380,9 @@ var require_dnsDomainIs = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js var require_dnsDomainLevels = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsDomainLevels.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function dnsDomainLevels(host) { @@ -29249,9 +29397,9 @@ var require_dnsDomainLevels = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/util.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/util.js var require_util3 = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/util.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/util.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isGMT = exports.dnsLookup = void 0; @@ -29275,9 +29423,9 @@ var require_util3 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsResolve.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsResolve.js var require_dnsResolve = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/dnsResolve.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/dnsResolve.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -29300,7 +29448,7 @@ var require_dnsResolve = __commonJS({ var require_netmask = __commonJS({ ".yarn/cache/netmask-npm-2.0.2-2299510a4d-cafd28388e.zip/node_modules/netmask/lib/netmask.js"(exports) { (function() { - var Netmask, atob, chr, chr0, chrA, chra, ip2long, long2ip; + var Netmask, atob2, chr, chr0, chrA, chra, ip2long, long2ip; long2ip = function(long) { var a, b, c, d; a = (long & 255 << 24) >>> 24; @@ -29322,7 +29470,7 @@ var require_netmask = __commonJS({ } ip = ip.substring(1); } - ref = atob(ip), n = ref[0], c = ref[1]; + ref = atob2(ip), n = ref[0], c = ref[1]; ip = ip.substring(c); b.push(n); } @@ -29360,7 +29508,7 @@ var require_netmask = __commonJS({ chr0 = chr("0"); chra = chr("a"); chrA = chr("A"); - atob = function(s) { + atob2 = function(s) { var base, dmax, i, n, start; n = 0; base = 10; @@ -29491,9 +29639,9 @@ var require_netmask = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isInNet.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isInNet.js var require_isInNet = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isInNet.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isInNet.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var netmask_1 = require_netmask(); @@ -29514,9 +29662,9 @@ var require_isInNet = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isPlainHostName.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isPlainHostName.js var require_isPlainHostName = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isPlainHostName.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isPlainHostName.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function isPlainHostName(host) { @@ -29526,9 +29674,9 @@ var require_isPlainHostName = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isResolvable.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isResolvable.js var require_isResolvable = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/isResolvable.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/isResolvable.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -29546,9 +29694,9 @@ var require_isResolvable = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js var require_localHostOrDomainIs = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/localHostOrDomainIs.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function localHostOrDomainIs(host, hostdom) { @@ -29873,9 +30021,9 @@ var require_ip2 = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/myIpAddress.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/myIpAddress.js var require_myIpAddress = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/myIpAddress.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/myIpAddress.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -29908,9 +30056,9 @@ var require_myIpAddress = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/shExpMatch.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/shExpMatch.js var require_shExpMatch = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/shExpMatch.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/shExpMatch.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function shExpMatch(str, shexp) { @@ -29925,9 +30073,9 @@ var require_shExpMatch = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/timeRange.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/timeRange.js var require_timeRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/timeRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/timeRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function timeRange() { @@ -29972,9 +30120,9 @@ var require_timeRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/weekdayRange.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/weekdayRange.js var require_weekdayRange = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/weekdayRange.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/weekdayRange.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var util_1 = require_util3(); @@ -30020,9 +30168,9 @@ var require_weekdayRange = __commonJS({ } }); -// .yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/index.js +// .yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/index.js var require_dist9 = __commonJS({ - ".yarn/cache/pac-resolver-npm-6.0.2-9e9298321a-7032496b35.zip/node_modules/pac-resolver/dist/index.js"(exports) { + ".yarn/cache/pac-resolver-npm-7.0.0-904b294260-a5ac1bf1f3.zip/node_modules/pac-resolver/dist/index.js"(exports) { "use strict"; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; @@ -30042,19 +30190,20 @@ var require_dist9 = __commonJS({ var shExpMatch_1 = __importDefault2(require_shExpMatch()); var timeRange_1 = __importDefault2(require_timeRange()); var weekdayRange_1 = __importDefault2(require_weekdayRange()); - function createPacResolver(_str, _opts = {}) { + function createPacResolver(qjs, _str, _opts = {}) { const str = Buffer.isBuffer(_str) ? _str.toString("utf8") : _str; const context = { ...exports.sandbox, ..._opts.sandbox }; + const names = Object.keys(context).filter((k) => isAsyncFunction(context[k])); const opts = { filename: "proxy.pac", + names, ..._opts, sandbox: context }; - const names = Object.keys(context).filter((k) => isAsyncFunction(context[k])); - const resolver = (0, degenerator_1.compile)(str, "FindProxyForURL", names, opts); + const resolver = (0, degenerator_1.compile)(qjs, str, "FindProxyForURL", opts); function FindProxyForURL(url, _host) { const urlObj = typeof url === "string" ? new URL(url) : url; const host = _host || urlObj.hostname; @@ -30097,270 +30246,3239 @@ var require_dist9 = __commonJS({ } }); -// .yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-810aaaac1b.zip/node_modules/pac-proxy-agent/dist/index.js -var require_dist10 = __commonJS({ - ".yarn/cache/pac-proxy-agent-npm-6.0.4-fab524db53-810aaaac1b.zip/node_modules/pac-proxy-agent/dist/index.js"(exports) { +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/esmHelpers.js +var require_esmHelpers = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/esmHelpers.js"(exports) { "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.unwrapJavascript = exports.unwrapTypescript = void 0; + function fakeUnwrapDefault(mod) { + return mod.default; + } + function actualUnwrapDefault(mod) { + const maybeUnwrap = mod.default; + return maybeUnwrap ?? mod; + } + exports.unwrapTypescript = actualUnwrapDefault; + exports.unwrapJavascript = fakeUnwrapDefault; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/debug.js +var require_debug2 = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/debug.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.debugLog = exports.QTS_DEBUG = void 0; + exports.QTS_DEBUG = Boolean(typeof process === "object" && process.env.QTS_DEBUG); + exports.debugLog = exports.QTS_DEBUG ? console.log.bind(console) : () => { + }; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/errors.js +var require_errors = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/errors.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSMemoryLeakDetected = exports.QuickJSAsyncifySuspended = exports.QuickJSAsyncifyError = exports.QuickJSNotImplemented = exports.QuickJSUseAfterFree = exports.QuickJSWrongOwner = exports.QuickJSUnwrapError = void 0; + var QuickJSUnwrapError = class extends Error { + constructor(cause, context) { + super(String(cause)); + this.cause = cause; + this.context = context; + this.name = "QuickJSUnwrapError"; } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); + }; + exports.QuickJSUnwrapError = QuickJSUnwrapError; + var QuickJSWrongOwner = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSWrongOwner"; } - __setModuleDefault2(result, mod); - return result; }; - var __importDefault2 = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; + exports.QuickJSWrongOwner = QuickJSWrongOwner; + var QuickJSUseAfterFree = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSUseAfterFree"; + } + }; + exports.QuickJSUseAfterFree = QuickJSUseAfterFree; + var QuickJSNotImplemented = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSNotImplemented"; + } + }; + exports.QuickJSNotImplemented = QuickJSNotImplemented; + var QuickJSAsyncifyError = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSAsyncifyError"; + } }; + exports.QuickJSAsyncifyError = QuickJSAsyncifyError; + var QuickJSAsyncifySuspended = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSAsyncifySuspended"; + } + }; + exports.QuickJSAsyncifySuspended = QuickJSAsyncifySuspended; + var QuickJSMemoryLeakDetected = class extends Error { + constructor() { + super(...arguments); + this.name = "QuickJSMemoryLeakDetected"; + } + }; + exports.QuickJSMemoryLeakDetected = QuickJSMemoryLeakDetected; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/asyncify-helpers.js +var require_asyncify_helpers = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/asyncify-helpers.js"(exports) { + "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); - exports.PacProxyAgent = void 0; - var net = __importStar2(require("net")); - var tls = __importStar2(require("tls")); - var crypto = __importStar2(require("crypto")); - var events_1 = require("events"); - var debug_1 = __importDefault2(require_src2()); - var url_1 = require("url"); - var agent_base_1 = require_dist(); - var http_proxy_agent_1 = require_dist2(); - var https_proxy_agent_1 = require_dist3(); - var socks_proxy_agent_1 = require_dist4(); - var get_uri_1 = require_dist7(); - var pac_resolver_1 = require_dist9(); - var debug2 = (0, debug_1.default)("pac-proxy-agent"); - var PacProxyAgent = class extends agent_base_1.Agent { - constructor(uri, opts) { - super(opts); - this.clearResolverPromise = () => { - this.resolverPromise = void 0; - }; - const uriStr = typeof uri === "string" ? uri : uri.href; - this.uri = new URL(uriStr.replace(/^pac\+/i, "")); - debug2("Creating PacProxyAgent with URI %o", this.uri.href); - this.opts = { ...opts }; - this.cache = void 0; - this.resolver = void 0; - this.resolverHash = ""; - this.resolverPromise = void 0; - if (!this.opts.filename) { - this.opts.filename = this.uri.href; + exports.awaitEachYieldedPromise = exports.maybeAsync = exports.maybeAsyncFn = void 0; + function* awaitYield(value) { + return yield value; + } + function awaitYieldOf(generator) { + return awaitYield(awaitEachYieldedPromise(generator)); + } + var AwaitYield = awaitYield; + AwaitYield.of = awaitYieldOf; + function maybeAsyncFn(that, fn2) { + return (...args) => { + const generator = fn2.call(that, AwaitYield, ...args); + return awaitEachYieldedPromise(generator); + }; + } + exports.maybeAsyncFn = maybeAsyncFn; + function maybeAsync(that, startGenerator) { + const generator = startGenerator.call(that, AwaitYield); + return awaitEachYieldedPromise(generator); + } + exports.maybeAsync = maybeAsync; + function awaitEachYieldedPromise(gen) { + function handleNextStep(step) { + if (step.done) { + return step.value; } + if (step.value instanceof Promise) { + return step.value.then((value) => handleNextStep(gen.next(value)), (error) => handleNextStep(gen.throw(error))); + } + return handleNextStep(gen.next(step.value)); + } + return handleNextStep(gen.next()); + } + exports.awaitEachYieldedPromise = awaitEachYieldedPromise; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/lifetime.js +var require_lifetime = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/lifetime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Scope = exports.WeakLifetime = exports.StaticLifetime = exports.Lifetime = void 0; + var asyncify_helpers_1 = require_asyncify_helpers(); + var debug_1 = require_debug2(); + var errors_1 = require_errors(); + var Lifetime = class _Lifetime { + /** + * When the Lifetime is disposed, it will call `disposer(_value)`. Use the + * disposer function to implement whatever cleanup needs to happen at the end + * of `value`'s lifetime. + * + * `_owner` is not used or controlled by the lifetime. It's just metadata for + * the creator. + */ + constructor(_value, copier, disposer, _owner) { + this._value = _value; + this.copier = copier; + this.disposer = disposer; + this._owner = _owner; + this._alive = true; + this._constructorStack = debug_1.QTS_DEBUG ? new Error("Lifetime constructed").stack : void 0; + } + get alive() { + return this._alive; } /** - * Loads the PAC proxy file from the source if necessary, and returns - * a generated `FindProxyForURL()` resolver function to use. + * The value this Lifetime protects. You must never retain the value - it + * may become invalid, leading to memory errors. * - * @api private + * @throws If the lifetime has been [[dispose]]d already. */ - getResolver() { - if (!this.resolverPromise) { - this.resolverPromise = this.loadResolver(); - this.resolverPromise.then(this.clearResolverPromise, this.clearResolverPromise); + get value() { + this.assertAlive(); + return this._value; + } + get owner() { + return this._owner; + } + get dupable() { + return !!this.copier; + } + /** + * Create a new handle pointing to the same [[value]]. + */ + dup() { + this.assertAlive(); + if (!this.copier) { + throw new Error("Non-dupable lifetime"); } - return this.resolverPromise; + return new _Lifetime(this.copier(this._value), this.copier, this.disposer, this._owner); } - async loadResolver() { - try { - const code = await this.loadPacFile(); - const hash = crypto.createHash("sha1").update(code).digest("hex"); - if (this.resolver && this.resolverHash === hash) { - debug2("Same sha1 hash for code - contents have not changed, reusing previous proxy resolver"); - return this.resolver; - } - debug2("Creating new proxy resolver instance"); - this.resolver = (0, pac_resolver_1.createPacResolver)(code, this.opts); - this.resolverHash = hash; - return this.resolver; - } catch (err) { - if (this.resolver && err.code === "ENOTMODIFIED") { - debug2("Got ENOTMODIFIED response, reusing previous proxy resolver"); - return this.resolver; + consume(map) { + this.assertAlive(); + const result = map(this); + this.dispose(); + return result; + } + /** + * Dispose of [[value]] and perform cleanup. + */ + dispose() { + this.assertAlive(); + if (this.disposer) { + this.disposer(this._value); + } + this._alive = false; + } + assertAlive() { + if (!this.alive) { + if (this._constructorStack) { + throw new errors_1.QuickJSUseAfterFree(`Lifetime not alive +${this._constructorStack} +Lifetime used`); } - throw err; + throw new errors_1.QuickJSUseAfterFree("Lifetime not alive"); } } + }; + exports.Lifetime = Lifetime; + var StaticLifetime = class extends Lifetime { + constructor(value, owner) { + super(value, void 0, void 0, owner); + } + // Static lifetime doesn't need a copier to be copiable + get dupable() { + return true; + } + // Copy returns the same instance. + dup() { + return this; + } + // Dispose does nothing. + dispose() { + } + }; + exports.StaticLifetime = StaticLifetime; + var WeakLifetime = class extends Lifetime { + constructor(value, copier, disposer, owner) { + super(value, copier, disposer, owner); + } + dispose() { + this._alive = false; + } + }; + exports.WeakLifetime = WeakLifetime; + function scopeFinally(scope, blockError) { + let disposeError; + try { + scope.dispose(); + } catch (error) { + disposeError = error; + } + if (blockError && disposeError) { + Object.assign(blockError, { + message: `${blockError.message} + Then, failed to dispose scope: ${disposeError.message}`, + disposeError + }); + throw blockError; + } + if (blockError || disposeError) { + throw blockError || disposeError; + } + } + var Scope = class _Scope { + constructor() { + this._disposables = new Lifetime(/* @__PURE__ */ new Set()); + } /** - * Loads the contents of the PAC proxy file. + * Run `block` with a new Scope instance that will be disposed after the block returns. + * Inside `block`, call `scope.manage` on each lifetime you create to have the lifetime + * automatically disposed after the block returns. * - * @api private + * @warning Do not use with async functions. Instead, use [[withScopeAsync]]. */ - async loadPacFile() { - debug2("Loading PAC file: %o", this.uri); - const rs = await (0, get_uri_1.getUri)(this.uri, { ...this.opts, cache: this.cache }); - debug2("Got `Readable` instance for URI"); - this.cache = rs; - const buf = await (0, agent_base_1.toBuffer)(rs); - debug2("Read %o byte PAC file from URI", buf.length); - return buf.toString("utf8"); + static withScope(block) { + const scope = new _Scope(); + let blockError; + try { + return block(scope); + } catch (error) { + blockError = error; + throw error; + } finally { + scopeFinally(scope, blockError); + } + } + static withScopeMaybeAsync(_this, block) { + return (0, asyncify_helpers_1.maybeAsync)(void 0, function* (awaited) { + const scope = new _Scope(); + let blockError; + try { + return yield* awaited.of(block.call(_this, awaited, scope)); + } catch (error) { + blockError = error; + throw error; + } finally { + scopeFinally(scope, blockError); + } + }); } /** - * Called when the node-core HTTP client library is creating a new HTTP request. + * Run `block` with a new Scope instance that will be disposed after the + * block's returned promise settles. Inside `block`, call `scope.manage` on each + * lifetime you create to have the lifetime automatically disposed after the + * block returns. */ - async connect(req, opts) { - const { secureEndpoint } = opts; - const resolver = await this.getResolver(); - const defaultPort = secureEndpoint ? 443 : 80; - let path10 = req.path; - let search = null; - const firstQuestion = path10.indexOf("?"); - if (firstQuestion !== -1) { - search = path10.substring(firstQuestion); - path10 = path10.substring(0, firstQuestion); - } - const urlOpts = { - ...opts, - protocol: secureEndpoint ? "https:" : "http:", - pathname: path10, - search, - // need to use `hostname` instead of `host` otherwise `port` is ignored - hostname: opts.host, - host: null, - href: null, - // set `port` to null when it is the protocol default port (80 / 443) - port: defaultPort === opts.port ? null : opts.port - }; - const url = (0, url_1.format)(urlOpts); - debug2("url: %o", url); - let result = await resolver(url); - if (!result) { - result = "DIRECT"; + static async withScopeAsync(block) { + const scope = new _Scope(); + let blockError; + try { + return await block(scope); + } catch (error) { + blockError = error; + throw error; + } finally { + scopeFinally(scope, blockError); } - const proxies = String(result).trim().split(/\s*;\s*/g).filter(Boolean); - if (this.opts.fallbackToDirect && !proxies.includes("DIRECT")) { - proxies.push("DIRECT"); + } + /** + * Track `lifetime` so that it is disposed when this scope is disposed. + */ + manage(lifetime) { + this._disposables.value.add(lifetime); + return lifetime; + } + get alive() { + return this._disposables.alive; + } + dispose() { + const lifetimes = Array.from(this._disposables.value.values()).reverse(); + for (const lifetime of lifetimes) { + if (lifetime.alive) { + lifetime.dispose(); + } } - for (const proxy of proxies) { - let agent = null; - let socket = null; - const [type, target] = proxy.split(/\s+/); - debug2("Attempting to use proxy: %o", proxy); - if (type === "DIRECT") { - if (secureEndpoint) { - const servername = opts.servername || opts.host; - socket = tls.connect({ - ...opts, - servername: !servername || net.isIP(servername) ? void 0 : servername - }); - } else { - socket = net.connect(opts); - } - } else if (type === "SOCKS" || type === "SOCKS5") { - agent = new socks_proxy_agent_1.SocksProxyAgent(`socks://${target}`, this.opts); - } else if (type === "SOCKS4") { - agent = new socks_proxy_agent_1.SocksProxyAgent(`socks4a://${target}`, this.opts); - } else if (type === "PROXY" || type === "HTTP" || type === "HTTPS") { - const proxyURL = `${type === "HTTPS" ? "https" : "http"}://${target}`; - if (secureEndpoint) { - agent = new https_proxy_agent_1.HttpsProxyAgent(proxyURL, this.opts); - } else { - agent = new http_proxy_agent_1.HttpProxyAgent(proxyURL, this.opts); - } + this._disposables.dispose(); + } + }; + exports.Scope = Scope; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/deferred-promise.js +var require_deferred_promise = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/deferred-promise.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSDeferredPromise = void 0; + var QuickJSDeferredPromise = class { + /** + * Use [[QuickJSContext.newPromise]] to create a new promise instead of calling + * this constructor directly. + * @unstable + */ + constructor(args) { + this.resolve = (value) => { + if (!this.resolveHandle.alive) { + return; } - try { - if (socket) { - await (0, events_1.once)(socket, "connect"); - req.emit("proxy", { proxy, socket }); - return socket; - } - if (agent) { - const s = await agent.connect(req, opts); - if (!(s instanceof net.Socket)) { - throw new Error("Expected a `net.Socket` to be returned from agent"); - } - req.emit("proxy", { proxy, socket: s }); - return s; - } - throw new Error(`Could not determine proxy type for: ${proxy}`); - } catch (err) { - debug2("Got error for proxy %o: %o", proxy, err); - req.emit("proxy", { proxy, error: err }); + this.context.unwrapResult(this.context.callFunction(this.resolveHandle, this.context.undefined, value || this.context.undefined)).dispose(); + this.disposeResolvers(); + this.onSettled(); + }; + this.reject = (value) => { + if (!this.rejectHandle.alive) { + return; } + this.context.unwrapResult(this.context.callFunction(this.rejectHandle, this.context.undefined, value || this.context.undefined)).dispose(); + this.disposeResolvers(); + this.onSettled(); + }; + this.dispose = () => { + if (this.handle.alive) { + this.handle.dispose(); + } + this.disposeResolvers(); + }; + this.context = args.context; + this.owner = args.context.runtime; + this.handle = args.promiseHandle; + this.settled = new Promise((resolve) => { + this.onSettled = resolve; + }); + this.resolveHandle = args.resolveHandle; + this.rejectHandle = args.rejectHandle; + } + get alive() { + return this.handle.alive || this.resolveHandle.alive || this.rejectHandle.alive; + } + disposeResolvers() { + if (this.resolveHandle.alive) { + this.resolveHandle.dispose(); + } + if (this.rejectHandle.alive) { + this.rejectHandle.dispose(); } - throw new Error(`Failed to establish a socket connection to proxies: ${JSON.stringify(proxies)}`); } }; - PacProxyAgent.protocols = [ - "pac+data", - "pac+file", - "pac+ftp", - "pac+http", - "pac+https" - ]; - exports.PacProxyAgent = PacProxyAgent; + exports.QuickJSDeferredPromise = QuickJSDeferredPromise; } }); -// .yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-51121cb190.zip/node_modules/proxy-agent/dist/index.js -var require_dist11 = __commonJS({ - ".yarn/cache/proxy-agent-npm-6.2.2-678133ab7b-51121cb190.zip/node_modules/proxy-agent/dist/index.js"(exports) { +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/memory.js +var require_memory = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/memory.js"(exports) { "use strict"; - var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.ModuleMemory = void 0; + var lifetime_1 = require_lifetime(); + var ModuleMemory = class { + constructor(module3) { + this.module = module3; + } + toPointerArray(handleArray) { + const typedArray = new Int32Array(handleArray.map((handle) => handle.value)); + const numBytes = typedArray.length * typedArray.BYTES_PER_ELEMENT; + const ptr = this.module._malloc(numBytes); + var heapBytes = new Uint8Array(this.module.HEAPU8.buffer, ptr, numBytes); + heapBytes.set(new Uint8Array(typedArray.buffer)); + return new lifetime_1.Lifetime(ptr, void 0, (ptr2) => this.module._free(ptr2)); + } + newMutablePointerArray(length) { + const zeros = new Int32Array(new Array(length).fill(0)); + const numBytes = zeros.length * zeros.BYTES_PER_ELEMENT; + const ptr = this.module._malloc(numBytes); + const typedArray = new Int32Array(this.module.HEAPU8.buffer, ptr, length); + typedArray.set(zeros); + return new lifetime_1.Lifetime({ typedArray, ptr }, void 0, (value) => this.module._free(value.ptr)); + } + newHeapCharPointer(string) { + const numBytes = this.module.lengthBytesUTF8(string) + 1; + const ptr = this.module._malloc(numBytes); + this.module.stringToUTF8(string, ptr, numBytes); + return new lifetime_1.Lifetime(ptr, void 0, (value) => this.module._free(value)); + } + consumeHeapCharPointer(ptr) { + const str = this.module.UTF8ToString(ptr); + this.module._free(ptr); + return str; + } + }; + exports.ModuleMemory = ModuleMemory; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/types-ffi.js +var require_types_ffi = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/types-ffi.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.EvalFlags = exports.assertSync = void 0; + function assertSync(fn2) { + return function mustBeSync(...args) { + const result = fn2(...args); + if (result && typeof result === "object" && result instanceof Promise) { + throw new Error("Function unexpectedly returned a Promise"); + } + return result; + }; + } + exports.assertSync = assertSync; + exports.EvalFlags = { + /** global code (default) */ + JS_EVAL_TYPE_GLOBAL: 0 << 0, + /** module code */ + JS_EVAL_TYPE_MODULE: 1 << 0, + /** direct call (internal use) */ + JS_EVAL_TYPE_DIRECT: 2 << 0, + /** indirect call (internal use) */ + JS_EVAL_TYPE_INDIRECT: 3 << 0, + JS_EVAL_TYPE_MASK: 3 << 0, + /** force 'strict' mode */ + JS_EVAL_FLAG_STRICT: 1 << 3, + /** force 'strip' mode */ + JS_EVAL_FLAG_STRIP: 1 << 4, + /** + * compile but do not run. The result is an object with a + * JS_TAG_FUNCTION_BYTECODE or JS_TAG_MODULE tag. It can be executed + * with JS_EvalFunction(). + */ + JS_EVAL_FLAG_COMPILE_ONLY: 1 << 5, + /** don't include the stack frames before this eval in the Error() backtraces */ + JS_EVAL_FLAG_BACKTRACE_BARRIER: 1 << 6 + }; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/types.js +var require_types2 = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/types.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.concat = exports.evalOptionsToFlags = exports.DefaultIntrinsics = void 0; + var types_ffi_1 = require_types_ffi(); + var UnstableSymbol = Symbol("Unstable"); + exports.DefaultIntrinsics = Symbol("DefaultIntrinsics"); + function evalOptionsToFlags(evalOptions) { + if (typeof evalOptions === "number") { + return evalOptions; + } + if (evalOptions === void 0) { + return 0; } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === void 0) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar2 = exports && exports.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding2(result, mod, k); + const { type, strict, strip, compileOnly, backtraceBarrier } = evalOptions; + let flags = 0; + if (type === "global") + flags |= types_ffi_1.EvalFlags.JS_EVAL_TYPE_GLOBAL; + if (type === "module") + flags |= types_ffi_1.EvalFlags.JS_EVAL_TYPE_MODULE; + if (strict) + flags |= types_ffi_1.EvalFlags.JS_EVAL_FLAG_STRICT; + if (strip) + flags |= types_ffi_1.EvalFlags.JS_EVAL_FLAG_STRIP; + if (compileOnly) + flags |= types_ffi_1.EvalFlags.JS_EVAL_FLAG_COMPILE_ONLY; + if (backtraceBarrier) + flags |= types_ffi_1.EvalFlags.JS_EVAL_FLAG_BACKTRACE_BARRIER; + return flags; + } + exports.evalOptionsToFlags = evalOptionsToFlags; + function concat(...values) { + let result = []; + for (const value of values) { + if (value !== void 0) { + result = result.concat(value); + } } - __setModuleDefault2(result, mod); return result; - }; - var __importDefault2 = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; + } + exports.concat = concat; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/context.js +var require_context = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/context.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSContext = void 0; + var debug_1 = require_debug2(); + var deferred_promise_1 = require_deferred_promise(); + var errors_1 = require_errors(); + var lifetime_1 = require_lifetime(); + var memory_1 = require_memory(); + var types_1 = require_types2(); + var ContextMemory = class extends memory_1.ModuleMemory { + /** @private */ + constructor(args) { + super(args.module); + this.scope = new lifetime_1.Scope(); + this.copyJSValue = (ptr) => { + return this.ffi.QTS_DupValuePointer(this.ctx.value, ptr); + }; + this.freeJSValue = (ptr) => { + this.ffi.QTS_FreeValuePointer(this.ctx.value, ptr); + }; + args.ownedLifetimes?.forEach((lifetime) => this.scope.manage(lifetime)); + this.owner = args.owner; + this.module = args.module; + this.ffi = args.ffi; + this.rt = args.rt; + this.ctx = this.scope.manage(args.ctx); + } + get alive() { + return this.scope.alive; + } + dispose() { + return this.scope.dispose(); + } + /** + * Track `lifetime` so that it is disposed when this scope is disposed. + */ + manage(lifetime) { + return this.scope.manage(lifetime); + } + consumeJSCharPointer(ptr) { + const str = this.module.UTF8ToString(ptr); + this.ffi.QTS_FreeCString(this.ctx.value, ptr); + return str; + } + heapValueHandle(ptr) { + return new lifetime_1.Lifetime(ptr, this.copyJSValue, this.freeJSValue, this.owner); + } + }; + var QuickJSContext = class { + /** + * Use {@link QuickJS.createVm} to create a QuickJSContext instance. + */ + constructor(args) { + this._undefined = void 0; + this._null = void 0; + this._false = void 0; + this._true = void 0; + this._global = void 0; + this._BigInt = void 0; + this.fnNextId = -32768; + this.fnMaps = /* @__PURE__ */ new Map(); + this.cToHostCallbacks = { + callFunction: (ctx, this_ptr, argc, argv, fn_id) => { + if (ctx !== this.ctx.value) { + throw new Error("QuickJSContext instance received C -> JS call with mismatched ctx"); + } + const fn2 = this.getFunction(fn_id); + if (!fn2) { + throw new Error(`QuickJSContext had no callback with id ${fn_id}`); + } + return lifetime_1.Scope.withScopeMaybeAsync(this, function* (awaited, scope) { + const thisHandle = scope.manage(new lifetime_1.WeakLifetime(this_ptr, this.memory.copyJSValue, this.memory.freeJSValue, this.runtime)); + const argHandles = new Array(argc); + for (let i = 0; i < argc; i++) { + const ptr = this.ffi.QTS_ArgvGetJSValueConstPointer(argv, i); + argHandles[i] = scope.manage(new lifetime_1.WeakLifetime(ptr, this.memory.copyJSValue, this.memory.freeJSValue, this.runtime)); + } + try { + const result = yield* awaited(fn2.apply(thisHandle, argHandles)); + if (result) { + if ("error" in result && result.error) { + (0, debug_1.debugLog)("throw error", result.error); + throw result.error; + } + const handle = scope.manage(result instanceof lifetime_1.Lifetime ? result : result.value); + return this.ffi.QTS_DupValuePointer(this.ctx.value, handle.value); + } + return 0; + } catch (error) { + return this.errorToHandle(error).consume((errorHandle) => this.ffi.QTS_Throw(this.ctx.value, errorHandle.value)); + } + }); + } + }; + this.runtime = args.runtime; + this.module = args.module; + this.ffi = args.ffi; + this.rt = args.rt; + this.ctx = args.ctx; + this.memory = new ContextMemory({ + ...args, + owner: this.runtime + }); + args.callbacks.setContextCallbacks(this.ctx.value, this.cToHostCallbacks); + this.dump = this.dump.bind(this); + this.getString = this.getString.bind(this); + this.getNumber = this.getNumber.bind(this); + this.resolvePromise = this.resolvePromise.bind(this); + } + // @implement Disposable ---------------------------------------------------- + get alive() { + return this.memory.alive; + } + /** + * Dispose of this VM's underlying resources. + * + * @throws Calling this method without disposing of all created handles + * will result in an error. + */ + dispose() { + this.memory.dispose(); + } + // Globals ------------------------------------------------------------------ + /** + * [`undefined`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined). + */ + get undefined() { + if (this._undefined) { + return this._undefined; + } + const ptr = this.ffi.QTS_GetUndefined(); + return this._undefined = new lifetime_1.StaticLifetime(ptr); + } + /** + * [`null`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null). + */ + get null() { + if (this._null) { + return this._null; + } + const ptr = this.ffi.QTS_GetNull(); + return this._null = new lifetime_1.StaticLifetime(ptr); + } + /** + * [`true`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/true). + */ + get true() { + if (this._true) { + return this._true; + } + const ptr = this.ffi.QTS_GetTrue(); + return this._true = new lifetime_1.StaticLifetime(ptr); + } + /** + * [`false`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/false). + */ + get false() { + if (this._false) { + return this._false; + } + const ptr = this.ffi.QTS_GetFalse(); + return this._false = new lifetime_1.StaticLifetime(ptr); + } + /** + * [`global`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects). + * A handle to the global object inside the interpreter. + * You can set properties to create global variables. + */ + get global() { + if (this._global) { + return this._global; + } + const ptr = this.ffi.QTS_GetGlobalObject(this.ctx.value); + this.memory.manage(this.memory.heapValueHandle(ptr)); + this._global = new lifetime_1.StaticLifetime(ptr, this.runtime); + return this._global; + } + // New values --------------------------------------------------------------- + /** + * Converts a Javascript number into a QuickJS value. + */ + newNumber(num) { + return this.memory.heapValueHandle(this.ffi.QTS_NewFloat64(this.ctx.value, num)); + } + /** + * Create a QuickJS [string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String) value. + */ + newString(str) { + const ptr = this.memory.newHeapCharPointer(str).consume((charHandle) => this.ffi.QTS_NewString(this.ctx.value, charHandle.value)); + return this.memory.heapValueHandle(ptr); + } + /** + * Create a QuickJS [symbol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) value. + * No two symbols created with this function will be the same value. + */ + newUniqueSymbol(description) { + const key = (typeof description === "symbol" ? description.description : description) ?? ""; + const ptr = this.memory.newHeapCharPointer(key).consume((charHandle) => this.ffi.QTS_NewSymbol(this.ctx.value, charHandle.value, 0)); + return this.memory.heapValueHandle(ptr); + } + /** + * Get a symbol from the [global registry](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#shared_symbols_in_the_global_symbol_registry) for the given key. + * All symbols created with the same key will be the same value. + */ + newSymbolFor(key) { + const description = (typeof key === "symbol" ? key.description : key) ?? ""; + const ptr = this.memory.newHeapCharPointer(description).consume((charHandle) => this.ffi.QTS_NewSymbol(this.ctx.value, charHandle.value, 1)); + return this.memory.heapValueHandle(ptr); + } + /** + * Create a QuickJS [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) value. + */ + newBigInt(num) { + if (!this._BigInt) { + const bigIntHandle2 = this.getProp(this.global, "BigInt"); + this.memory.manage(bigIntHandle2); + this._BigInt = new lifetime_1.StaticLifetime(bigIntHandle2.value, this.runtime); + } + const bigIntHandle = this._BigInt; + const asString = String(num); + return this.newString(asString).consume((handle) => this.unwrapResult(this.callFunction(bigIntHandle, this.undefined, handle))); + } + /** + * `{}`. + * Create a new QuickJS [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer). + * + * @param prototype - Like [`Object.create`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create). + */ + newObject(prototype) { + if (prototype) { + this.runtime.assertOwned(prototype); + } + const ptr = prototype ? this.ffi.QTS_NewObjectProto(this.ctx.value, prototype.value) : this.ffi.QTS_NewObject(this.ctx.value); + return this.memory.heapValueHandle(ptr); + } + /** + * `[]`. + * Create a new QuickJS [array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array). + */ + newArray() { + const ptr = this.ffi.QTS_NewArray(this.ctx.value); + return this.memory.heapValueHandle(ptr); + } + newPromise(value) { + const deferredPromise = lifetime_1.Scope.withScope((scope) => { + const mutablePointerArray = scope.manage(this.memory.newMutablePointerArray(2)); + const promisePtr = this.ffi.QTS_NewPromiseCapability(this.ctx.value, mutablePointerArray.value.ptr); + const promiseHandle = this.memory.heapValueHandle(promisePtr); + const [resolveHandle, rejectHandle] = Array.from(mutablePointerArray.value.typedArray).map((jsvaluePtr) => this.memory.heapValueHandle(jsvaluePtr)); + return new deferred_promise_1.QuickJSDeferredPromise({ + context: this, + promiseHandle, + resolveHandle, + rejectHandle + }); + }); + if (value && typeof value === "function") { + value = new Promise(value); + } + if (value) { + Promise.resolve(value).then(deferredPromise.resolve, (error) => error instanceof lifetime_1.Lifetime ? deferredPromise.reject(error) : this.newError(error).consume(deferredPromise.reject)); + } + return deferredPromise; + } + /** + * Convert a Javascript function into a QuickJS function value. + * See [[VmFunctionImplementation]] for more details. + * + * A [[VmFunctionImplementation]] should not free its arguments or its return + * value. A VmFunctionImplementation should also not retain any references to + * its return value. + * + * To implement an async function, create a promise with [[newPromise]], then + * return the deferred promise handle from `deferred.handle` from your + * function implementation: + * + * ``` + * const deferred = vm.newPromise() + * someNativeAsyncFunction().then(deferred.resolve) + * return deferred.handle + * ``` + */ + newFunction(name, fn2) { + const fnId = ++this.fnNextId; + this.setFunction(fnId, fn2); + return this.memory.heapValueHandle(this.ffi.QTS_NewFunction(this.ctx.value, fnId, name)); + } + newError(error) { + const errorHandle = this.memory.heapValueHandle(this.ffi.QTS_NewError(this.ctx.value)); + if (error && typeof error === "object") { + if (error.name !== void 0) { + this.newString(error.name).consume((handle) => this.setProp(errorHandle, "name", handle)); + } + if (error.message !== void 0) { + this.newString(error.message).consume((handle) => this.setProp(errorHandle, "message", handle)); + } + } else if (typeof error === "string") { + this.newString(error).consume((handle) => this.setProp(errorHandle, "message", handle)); + } else if (error !== void 0) { + this.newString(String(error)).consume((handle) => this.setProp(errorHandle, "message", handle)); + } + return errorHandle; + } + // Read values -------------------------------------------------------------- + /** + * `typeof` operator. **Not** [standards compliant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof). + * + * @remarks + * Does not support BigInt values correctly. + */ + typeof(handle) { + this.runtime.assertOwned(handle); + return this.memory.consumeHeapCharPointer(this.ffi.QTS_Typeof(this.ctx.value, handle.value)); + } + /** + * Converts `handle` into a Javascript number. + * @returns `NaN` on error, otherwise a `number`. + */ + getNumber(handle) { + this.runtime.assertOwned(handle); + return this.ffi.QTS_GetFloat64(this.ctx.value, handle.value); + } + /** + * Converts `handle` to a Javascript string. + */ + getString(handle) { + this.runtime.assertOwned(handle); + return this.memory.consumeJSCharPointer(this.ffi.QTS_GetString(this.ctx.value, handle.value)); + } + /** + * Converts `handle` into a Javascript symbol. If the symbol is in the global + * registry in the guest, it will be created with Symbol.for on the host. + */ + getSymbol(handle) { + this.runtime.assertOwned(handle); + const key = this.memory.consumeJSCharPointer(this.ffi.QTS_GetSymbolDescriptionOrKey(this.ctx.value, handle.value)); + const isGlobal = this.ffi.QTS_IsGlobalSymbol(this.ctx.value, handle.value); + return isGlobal ? Symbol.for(key) : Symbol(key); + } + /** + * Converts `handle` to a Javascript bigint. + */ + getBigInt(handle) { + this.runtime.assertOwned(handle); + const asString = this.getString(handle); + return BigInt(asString); + } + /** + * `Promise.resolve(value)`. + * Convert a handle containing a Promise-like value inside the VM into an + * actual promise on the host. + * + * @remarks + * You may need to call [[executePendingJobs]] to ensure that the promise is resolved. + * + * @param promiseLikeHandle - A handle to a Promise-like value with a `.then(onSuccess, onError)` method. + */ + resolvePromise(promiseLikeHandle) { + this.runtime.assertOwned(promiseLikeHandle); + const vmResolveResult = lifetime_1.Scope.withScope((scope) => { + const vmPromise = scope.manage(this.getProp(this.global, "Promise")); + const vmPromiseResolve = scope.manage(this.getProp(vmPromise, "resolve")); + return this.callFunction(vmPromiseResolve, vmPromise, promiseLikeHandle); + }); + if (vmResolveResult.error) { + return Promise.resolve(vmResolveResult); + } + return new Promise((resolve) => { + lifetime_1.Scope.withScope((scope) => { + const resolveHandle = scope.manage(this.newFunction("resolve", (value) => { + resolve({ value: value && value.dup() }); + })); + const rejectHandle = scope.manage(this.newFunction("reject", (error) => { + resolve({ error: error && error.dup() }); + })); + const promiseHandle = scope.manage(vmResolveResult.value); + const promiseThenHandle = scope.manage(this.getProp(promiseHandle, "then")); + this.unwrapResult(this.callFunction(promiseThenHandle, promiseHandle, resolveHandle, rejectHandle)).dispose(); + }); + }); + } + // Properties --------------------------------------------------------------- + /** + * `handle[key]`. + * Get a property from a JSValue. + * + * @param key - The property may be specified as a JSValue handle, or as a + * Javascript string (which will be converted automatically). + */ + getProp(handle, key) { + this.runtime.assertOwned(handle); + const ptr = this.borrowPropertyKey(key).consume((quickJSKey) => this.ffi.QTS_GetProp(this.ctx.value, handle.value, quickJSKey.value)); + const result = this.memory.heapValueHandle(ptr); + return result; + } + /** + * `handle[key] = value`. + * Set a property on a JSValue. + * + * @remarks + * Note that the QuickJS authors recommend using [[defineProp]] to define new + * properties. + * + * @param key - The property may be specified as a JSValue handle, or as a + * Javascript string or number (which will be converted automatically to a JSValue). + */ + setProp(handle, key, value) { + this.runtime.assertOwned(handle); + this.borrowPropertyKey(key).consume((quickJSKey) => this.ffi.QTS_SetProp(this.ctx.value, handle.value, quickJSKey.value, value.value)); + } + /** + * [`Object.defineProperty(handle, key, descriptor)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty). + * + * @param key - The property may be specified as a JSValue handle, or as a + * Javascript string or number (which will be converted automatically to a JSValue). + */ + defineProp(handle, key, descriptor) { + this.runtime.assertOwned(handle); + lifetime_1.Scope.withScope((scope) => { + const quickJSKey = scope.manage(this.borrowPropertyKey(key)); + const value = descriptor.value || this.undefined; + const configurable = Boolean(descriptor.configurable); + const enumerable = Boolean(descriptor.enumerable); + const hasValue = Boolean(descriptor.value); + const get = descriptor.get ? scope.manage(this.newFunction(descriptor.get.name, descriptor.get)) : this.undefined; + const set = descriptor.set ? scope.manage(this.newFunction(descriptor.set.name, descriptor.set)) : this.undefined; + this.ffi.QTS_DefineProp(this.ctx.value, handle.value, quickJSKey.value, value.value, get.value, set.value, configurable, enumerable, hasValue); + }); + } + // Evaluation --------------------------------------------------------------- + /** + * [`func.call(thisVal, ...args)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call). + * Call a JSValue as a function. + * + * See [[unwrapResult]], which will throw if the function returned an error, or + * return the result handle directly. If evaluation returned a handle containing + * a promise, use [[resolvePromise]] to convert it to a native promise and + * [[executePendingJobs]] to finish evaluating the promise. + * + * @returns A result. If the function threw synchronously, `result.error` be a + * handle to the exception. Otherwise `result.value` will be a handle to the + * value. + */ + callFunction(func, thisVal, ...args) { + this.runtime.assertOwned(func); + const resultPtr = this.memory.toPointerArray(args).consume((argsArrayPtr) => this.ffi.QTS_Call(this.ctx.value, func.value, thisVal.value, args.length, argsArrayPtr.value)); + const errorPtr = this.ffi.QTS_ResolveException(this.ctx.value, resultPtr); + if (errorPtr) { + this.ffi.QTS_FreeValuePointer(this.ctx.value, resultPtr); + return { error: this.memory.heapValueHandle(errorPtr) }; + } + return { value: this.memory.heapValueHandle(resultPtr) }; + } + /** + * Like [`eval(code)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Description). + * Evaluates the Javascript source `code` in the global scope of this VM. + * When working with async code, you many need to call [[executePendingJobs]] + * to execute callbacks pending after synchronous evaluation returns. + * + * See [[unwrapResult]], which will throw if the function returned an error, or + * return the result handle directly. If evaluation returned a handle containing + * a promise, use [[resolvePromise]] to convert it to a native promise and + * [[executePendingJobs]] to finish evaluating the promise. + * + * *Note*: to protect against infinite loops, provide an interrupt handler to + * [[setInterruptHandler]]. You can use [[shouldInterruptAfterDeadline]] to + * create a time-based deadline. + * + * @returns The last statement's value. If the code threw synchronously, + * `result.error` will be a handle to the exception. If execution was + * interrupted, the error will have name `InternalError` and message + * `interrupted`. + */ + evalCode(code, filename = "eval.js", options) { + const detectModule = options === void 0 ? 1 : 0; + const flags = (0, types_1.evalOptionsToFlags)(options); + const resultPtr = this.memory.newHeapCharPointer(code).consume((charHandle) => this.ffi.QTS_Eval(this.ctx.value, charHandle.value, filename, detectModule, flags)); + const errorPtr = this.ffi.QTS_ResolveException(this.ctx.value, resultPtr); + if (errorPtr) { + this.ffi.QTS_FreeValuePointer(this.ctx.value, resultPtr); + return { error: this.memory.heapValueHandle(errorPtr) }; + } + return { value: this.memory.heapValueHandle(resultPtr) }; + } + /** + * Throw an error in the VM, interrupted whatever current execution is in progress when execution resumes. + * @experimental + */ + throw(error) { + return this.errorToHandle(error).consume((handle) => this.ffi.QTS_Throw(this.ctx.value, handle.value)); + } + /** + * @private + */ + borrowPropertyKey(key) { + if (typeof key === "number") { + return this.newNumber(key); + } + if (typeof key === "string") { + return this.newString(key); + } + return new lifetime_1.StaticLifetime(key.value, this.runtime); + } + /** + * @private + */ + getMemory(rt) { + if (rt === this.rt.value) { + return this.memory; + } else { + throw new Error("Private API. Cannot get memory from a different runtime"); + } + } + // Utilities ---------------------------------------------------------------- + /** + * Dump a JSValue to Javascript in a best-effort fashion. + * Returns `handle.toString()` if it cannot be serialized to JSON. + */ + dump(handle) { + this.runtime.assertOwned(handle); + const type = this.typeof(handle); + if (type === "string") { + return this.getString(handle); + } else if (type === "number") { + return this.getNumber(handle); + } else if (type === "bigint") { + return this.getBigInt(handle); + } else if (type === "undefined") { + return void 0; + } else if (type === "symbol") { + return this.getSymbol(handle); + } + const str = this.memory.consumeJSCharPointer(this.ffi.QTS_Dump(this.ctx.value, handle.value)); + try { + return JSON.parse(str); + } catch (err) { + return str; + } + } + /** + * Unwrap a SuccessOrFail result such as a [[VmCallResult]] or a + * [[ExecutePendingJobsResult]], where the fail branch contains a handle to a QuickJS error value. + * If the result is a success, returns the value. + * If the result is an error, converts the error to a native object and throws the error. + */ + unwrapResult(result) { + if (result.error) { + const context = "context" in result.error ? result.error.context : this; + const cause = result.error.consume((error) => this.dump(error)); + if (cause && typeof cause === "object" && typeof cause.message === "string") { + const { message, name, stack } = cause; + const exception = new errors_1.QuickJSUnwrapError(""); + const hostStack = exception.stack; + if (typeof name === "string") { + exception.name = cause.name; + } + if (typeof stack === "string") { + exception.stack = `${name}: ${message} +${cause.stack}Host: ${hostStack}`; + } + Object.assign(exception, { cause, context, message }); + throw exception; + } + throw new errors_1.QuickJSUnwrapError(cause, context); + } + return result.value; + } + /** @private */ + getFunction(fn_id) { + const map_id = fn_id >> 8; + const fnMap = this.fnMaps.get(map_id); + if (!fnMap) { + return void 0; + } + return fnMap.get(fn_id); + } + /** @private */ + setFunction(fn_id, handle) { + const map_id = fn_id >> 8; + let fnMap = this.fnMaps.get(map_id); + if (!fnMap) { + fnMap = /* @__PURE__ */ new Map(); + this.fnMaps.set(map_id, fnMap); + } + return fnMap.set(fn_id, handle); + } + errorToHandle(error) { + if (error instanceof lifetime_1.Lifetime) { + return error; + } + return this.newError(error); + } + }; + exports.QuickJSContext = QuickJSContext; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/runtime.js +var require_runtime = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/runtime.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSRuntime = void 0; + var asyncify_helpers_1 = require_asyncify_helpers(); + var context_1 = require_context(); + var debug_1 = require_debug2(); + var errors_1 = require_errors(); + var lifetime_1 = require_lifetime(); + var memory_1 = require_memory(); + var types_1 = require_types2(); + var QuickJSRuntime = class { + /** @private */ + constructor(args) { + this.scope = new lifetime_1.Scope(); + this.contextMap = /* @__PURE__ */ new Map(); + this.cToHostCallbacks = { + shouldInterrupt: (rt) => { + if (rt !== this.rt.value) { + throw new Error("QuickJSContext instance received C -> JS interrupt with mismatched rt"); + } + const fn2 = this.interruptHandler; + if (!fn2) { + throw new Error("QuickJSContext had no interrupt handler"); + } + return fn2(this) ? 1 : 0; + }, + loadModuleSource: (0, asyncify_helpers_1.maybeAsyncFn)(this, function* (awaited, rt, ctx, moduleName) { + const moduleLoader = this.moduleLoader; + if (!moduleLoader) { + throw new Error("Runtime has no module loader"); + } + if (rt !== this.rt.value) { + throw new Error("Runtime pointer mismatch"); + } + const context = this.contextMap.get(ctx) ?? this.newContext({ + contextPointer: ctx + }); + try { + const result = yield* awaited(moduleLoader(moduleName, context)); + if (typeof result === "object" && "error" in result && result.error) { + (0, debug_1.debugLog)("cToHostLoadModule: loader returned error", result.error); + throw result.error; + } + const moduleSource = typeof result === "string" ? result : "value" in result ? result.value : result; + return this.memory.newHeapCharPointer(moduleSource).value; + } catch (error) { + (0, debug_1.debugLog)("cToHostLoadModule: caught error", error); + context.throw(error); + return 0; + } + }), + normalizeModule: (0, asyncify_helpers_1.maybeAsyncFn)(this, function* (awaited, rt, ctx, baseModuleName, moduleNameRequest) { + const moduleNormalizer = this.moduleNormalizer; + if (!moduleNormalizer) { + throw new Error("Runtime has no module normalizer"); + } + if (rt !== this.rt.value) { + throw new Error("Runtime pointer mismatch"); + } + const context = this.contextMap.get(ctx) ?? this.newContext({ + /* TODO: Does this happen? Are we responsible for disposing? I don't think so */ + contextPointer: ctx + }); + try { + const result = yield* awaited(moduleNormalizer(baseModuleName, moduleNameRequest, context)); + if (typeof result === "object" && "error" in result && result.error) { + (0, debug_1.debugLog)("cToHostNormalizeModule: normalizer returned error", result.error); + throw result.error; + } + const name = typeof result === "string" ? result : result.value; + return context.getMemory(this.rt.value).newHeapCharPointer(name).value; + } catch (error) { + (0, debug_1.debugLog)("normalizeModule: caught error", error); + context.throw(error); + return 0; + } + }) + }; + args.ownedLifetimes?.forEach((lifetime) => this.scope.manage(lifetime)); + this.module = args.module; + this.memory = new memory_1.ModuleMemory(this.module); + this.ffi = args.ffi; + this.rt = args.rt; + this.callbacks = args.callbacks; + this.scope.manage(this.rt); + this.callbacks.setRuntimeCallbacks(this.rt.value, this.cToHostCallbacks); + this.executePendingJobs = this.executePendingJobs.bind(this); + } + get alive() { + return this.scope.alive; + } + dispose() { + return this.scope.dispose(); + } + newContext(options = {}) { + if (options.intrinsics && options.intrinsics !== types_1.DefaultIntrinsics) { + throw new Error("TODO: Custom intrinsics are not supported yet"); + } + const ctx = new lifetime_1.Lifetime(options.contextPointer || this.ffi.QTS_NewContext(this.rt.value), void 0, (ctx_ptr) => { + this.contextMap.delete(ctx_ptr); + this.callbacks.deleteContext(ctx_ptr); + this.ffi.QTS_FreeContext(ctx_ptr); + }); + const context = new context_1.QuickJSContext({ + module: this.module, + ctx, + ffi: this.ffi, + rt: this.rt, + ownedLifetimes: options.ownedLifetimes, + runtime: this, + callbacks: this.callbacks + }); + this.contextMap.set(ctx.value, context); + return context; + } + /** + * Set the loader for EcmaScript modules requested by any context in this + * runtime. + * + * The loader can be removed with [[removeModuleLoader]]. + */ + setModuleLoader(moduleLoader, moduleNormalizer) { + this.moduleLoader = moduleLoader; + this.moduleNormalizer = moduleNormalizer; + this.ffi.QTS_RuntimeEnableModuleLoader(this.rt.value, this.moduleNormalizer ? 1 : 0); + } + /** + * Remove the the loader set by [[setModuleLoader]]. This disables module loading. + */ + removeModuleLoader() { + this.moduleLoader = void 0; + this.ffi.QTS_RuntimeDisableModuleLoader(this.rt.value); + } + // Runtime management ------------------------------------------------------- + /** + * In QuickJS, promises and async functions create pendingJobs. These do not execute + * immediately and need to be run by calling [[executePendingJobs]]. + * + * @return true if there is at least one pendingJob queued up. + */ + hasPendingJob() { + return Boolean(this.ffi.QTS_IsJobPending(this.rt.value)); + } + /** + * Set a callback which is regularly called by the QuickJS engine when it is + * executing code. This callback can be used to implement an execution + * timeout. + * + * The interrupt handler can be removed with [[removeInterruptHandler]]. + */ + setInterruptHandler(cb) { + const prevInterruptHandler = this.interruptHandler; + this.interruptHandler = cb; + if (!prevInterruptHandler) { + this.ffi.QTS_RuntimeEnableInterruptHandler(this.rt.value); + } + } + /** + * Remove the interrupt handler, if any. + * See [[setInterruptHandler]]. + */ + removeInterruptHandler() { + if (this.interruptHandler) { + this.ffi.QTS_RuntimeDisableInterruptHandler(this.rt.value); + this.interruptHandler = void 0; + } + } + /** + * Execute pendingJobs on the runtime until `maxJobsToExecute` jobs are + * executed (default all pendingJobs), the queue is exhausted, or the runtime + * encounters an exception. + * + * In QuickJS, promises and async functions *inside the runtime* create + * pendingJobs. These do not execute immediately and need to triggered to run. + * + * @param maxJobsToExecute - When negative, run all pending jobs. Otherwise execute + * at most `maxJobsToExecute` before returning. + * + * @return On success, the number of executed jobs. On error, the exception + * that stopped execution, and the context it occurred in. Note that + * executePendingJobs will not normally return errors thrown inside async + * functions or rejected promises. Those errors are available by calling + * [[resolvePromise]] on the promise handle returned by the async function. + */ + executePendingJobs(maxJobsToExecute = -1) { + const ctxPtrOut = this.memory.newMutablePointerArray(1); + const valuePtr = this.ffi.QTS_ExecutePendingJob(this.rt.value, maxJobsToExecute ?? -1, ctxPtrOut.value.ptr); + const ctxPtr = ctxPtrOut.value.typedArray[0]; + ctxPtrOut.dispose(); + if (ctxPtr === 0) { + this.ffi.QTS_FreeValuePointerRuntime(this.rt.value, valuePtr); + return { value: 0 }; + } + const context = this.contextMap.get(ctxPtr) ?? this.newContext({ + contextPointer: ctxPtr + }); + const resultValue = context.getMemory(this.rt.value).heapValueHandle(valuePtr); + const typeOfRet = context.typeof(resultValue); + if (typeOfRet === "number") { + const executedJobs = context.getNumber(resultValue); + resultValue.dispose(); + return { value: executedJobs }; + } else { + const error = Object.assign(resultValue, { context }); + return { + error + }; + } + } + /** + * Set the max memory this runtime can allocate. + * To remove the limit, set to `-1`. + */ + setMemoryLimit(limitBytes) { + if (limitBytes < 0 && limitBytes !== -1) { + throw new Error("Cannot set memory limit to negative number. To unset, pass -1"); + } + this.ffi.QTS_RuntimeSetMemoryLimit(this.rt.value, limitBytes); + } + /** + * Compute memory usage for this runtime. Returns the result as a handle to a + * JSValue object. Use [[QuickJSContext.dump]] to convert to a native object. + * Calling this method will allocate more memory inside the runtime. The information + * is accurate as of just before the call to `computeMemoryUsage`. + * For a human-digestible representation, see [[dumpMemoryUsage]]. + */ + computeMemoryUsage() { + const serviceContextMemory = this.getSystemContext().getMemory(this.rt.value); + return serviceContextMemory.heapValueHandle(this.ffi.QTS_RuntimeComputeMemoryUsage(this.rt.value, serviceContextMemory.ctx.value)); + } + /** + * @returns a human-readable description of memory usage in this runtime. + * For programmatic access to this information, see [[computeMemoryUsage]]. + */ + dumpMemoryUsage() { + return this.memory.consumeHeapCharPointer(this.ffi.QTS_RuntimeDumpMemoryUsage(this.rt.value)); + } + /** + * Set the max stack size for this runtime, in bytes. + * To remove the limit, set to `0`. + */ + setMaxStackSize(stackSize) { + if (stackSize < 0) { + throw new Error("Cannot set memory limit to negative number. To unset, pass 0."); + } + this.ffi.QTS_RuntimeSetMaxStackSize(this.rt.value, stackSize); + } + /** + * Assert that `handle` is owned by this runtime. + * @throws QuickJSWrongOwner if owned by a different runtime. + */ + assertOwned(handle) { + if (handle.owner && handle.owner.rt !== this.rt) { + throw new errors_1.QuickJSWrongOwner(`Handle is not owned by this runtime: ${handle.owner.rt.value} != ${this.rt.value}`); + } + } + getSystemContext() { + if (!this.context) { + this.context = this.scope.manage(this.newContext()); + } + return this.context; + } + }; + exports.QuickJSRuntime = QuickJSRuntime; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module.js +var require_module = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSWASMModule = exports.applyModuleEvalRuntimeOptions = exports.applyBaseRuntimeOptions = exports.QuickJSModuleCallbacks = void 0; + var debug_1 = require_debug2(); + var errors_1 = require_errors(); + var lifetime_1 = require_lifetime(); + var runtime_1 = require_runtime(); + var types_1 = require_types2(); + var QuickJSEmscriptenModuleCallbacks = class { + constructor(args) { + this.callFunction = args.callFunction; + this.shouldInterrupt = args.shouldInterrupt; + this.loadModuleSource = args.loadModuleSource; + this.normalizeModule = args.normalizeModule; + } + }; + var QuickJSModuleCallbacks = class { + constructor(module3) { + this.contextCallbacks = /* @__PURE__ */ new Map(); + this.runtimeCallbacks = /* @__PURE__ */ new Map(); + this.suspendedCount = 0; + this.cToHostCallbacks = new QuickJSEmscriptenModuleCallbacks({ + callFunction: (asyncify, ctx, this_ptr, argc, argv, fn_id) => this.handleAsyncify(asyncify, () => { + try { + const vm = this.contextCallbacks.get(ctx); + if (!vm) { + throw new Error(`QuickJSContext(ctx = ${ctx}) not found for C function call "${fn_id}"`); + } + return vm.callFunction(ctx, this_ptr, argc, argv, fn_id); + } catch (error) { + console.error("[C to host error: returning null]", error); + return 0; + } + }), + shouldInterrupt: (asyncify, rt) => this.handleAsyncify(asyncify, () => { + try { + const vm = this.runtimeCallbacks.get(rt); + if (!vm) { + throw new Error(`QuickJSRuntime(rt = ${rt}) not found for C interrupt`); + } + return vm.shouldInterrupt(rt); + } catch (error) { + console.error("[C to host interrupt: returning error]", error); + return 1; + } + }), + loadModuleSource: (asyncify, rt, ctx, moduleName) => this.handleAsyncify(asyncify, () => { + try { + const runtimeCallbacks = this.runtimeCallbacks.get(rt); + if (!runtimeCallbacks) { + throw new Error(`QuickJSRuntime(rt = ${rt}) not found for C module loader`); + } + const loadModule = runtimeCallbacks.loadModuleSource; + if (!loadModule) { + throw new Error(`QuickJSRuntime(rt = ${rt}) does not support module loading`); + } + return loadModule(rt, ctx, moduleName); + } catch (error) { + console.error("[C to host module loader error: returning null]", error); + return 0; + } + }), + normalizeModule: (asyncify, rt, ctx, moduleBaseName, moduleName) => this.handleAsyncify(asyncify, () => { + try { + const runtimeCallbacks = this.runtimeCallbacks.get(rt); + if (!runtimeCallbacks) { + throw new Error(`QuickJSRuntime(rt = ${rt}) not found for C module loader`); + } + const normalizeModule = runtimeCallbacks.normalizeModule; + if (!normalizeModule) { + throw new Error(`QuickJSRuntime(rt = ${rt}) does not support module loading`); + } + return normalizeModule(rt, ctx, moduleBaseName, moduleName); + } catch (error) { + console.error("[C to host module loader error: returning null]", error); + return 0; + } + }) + }); + this.module = module3; + this.module.callbacks = this.cToHostCallbacks; + } + setRuntimeCallbacks(rt, callbacks) { + this.runtimeCallbacks.set(rt, callbacks); + } + deleteRuntime(rt) { + this.runtimeCallbacks.delete(rt); + } + setContextCallbacks(ctx, callbacks) { + this.contextCallbacks.set(ctx, callbacks); + } + deleteContext(ctx) { + this.contextCallbacks.delete(ctx); + } + handleAsyncify(asyncify, fn2) { + if (asyncify) { + return asyncify.handleSleep((done) => { + try { + const result = fn2(); + if (!(result instanceof Promise)) { + (0, debug_1.debugLog)("asyncify.handleSleep: not suspending:", result); + done(result); + return; + } + if (this.suspended) { + throw new errors_1.QuickJSAsyncifyError(`Already suspended at: ${this.suspended.stack} +Attempted to suspend at:`); + } else { + this.suspended = new errors_1.QuickJSAsyncifySuspended(`(${this.suspendedCount++})`); + (0, debug_1.debugLog)("asyncify.handleSleep: suspending:", this.suspended); + } + result.then((resolvedResult) => { + this.suspended = void 0; + (0, debug_1.debugLog)("asyncify.handleSleep: resolved:", resolvedResult); + done(resolvedResult); + }, (error) => { + (0, debug_1.debugLog)("asyncify.handleSleep: rejected:", error); + console.error("QuickJS: cannot handle error in suspended function", error); + this.suspended = void 0; + }); + } catch (error) { + (0, debug_1.debugLog)("asyncify.handleSleep: error:", error); + this.suspended = void 0; + throw error; + } + }); + } + const value = fn2(); + if (value instanceof Promise) { + throw new Error("Promise return value not supported in non-asyncify context."); + } + return value; + } + }; + exports.QuickJSModuleCallbacks = QuickJSModuleCallbacks; + function applyBaseRuntimeOptions(runtime, options) { + if (options.interruptHandler) { + runtime.setInterruptHandler(options.interruptHandler); + } + if (options.maxStackSizeBytes !== void 0) { + runtime.setMaxStackSize(options.maxStackSizeBytes); + } + if (options.memoryLimitBytes !== void 0) { + runtime.setMemoryLimit(options.memoryLimitBytes); + } + } + exports.applyBaseRuntimeOptions = applyBaseRuntimeOptions; + function applyModuleEvalRuntimeOptions(runtime, options) { + if (options.moduleLoader) { + runtime.setModuleLoader(options.moduleLoader); + } + if (options.shouldInterrupt) { + runtime.setInterruptHandler(options.shouldInterrupt); + } + if (options.memoryLimitBytes !== void 0) { + runtime.setMemoryLimit(options.memoryLimitBytes); + } + if (options.maxStackSizeBytes !== void 0) { + runtime.setMaxStackSize(options.maxStackSizeBytes); + } + } + exports.applyModuleEvalRuntimeOptions = applyModuleEvalRuntimeOptions; + var QuickJSWASMModule = class { + /** @private */ + constructor(module3, ffi) { + this.module = module3; + this.ffi = ffi; + this.callbacks = new QuickJSModuleCallbacks(module3); + } + /** + * Create a runtime. + * Use the runtime to set limits on CPU and memory usage and configure module + * loading for one or more [[QuickJSContext]]s inside the runtime. + */ + newRuntime(options = {}) { + const rt = new lifetime_1.Lifetime(this.ffi.QTS_NewRuntime(), void 0, (rt_ptr) => { + this.callbacks.deleteRuntime(rt_ptr); + this.ffi.QTS_FreeRuntime(rt_ptr); + }); + const runtime = new runtime_1.QuickJSRuntime({ + module: this.module, + callbacks: this.callbacks, + ffi: this.ffi, + rt + }); + applyBaseRuntimeOptions(runtime, options); + if (options.moduleLoader) { + runtime.setModuleLoader(options.moduleLoader); + } + return runtime; + } + /** + * A simplified API to create a new [[QuickJSRuntime]] and a + * [[QuickJSContext]] inside that runtime at the same time. The runtime will + * be disposed when the context is disposed. + */ + newContext(options = {}) { + const runtime = this.newRuntime(); + const context = runtime.newContext({ + ...options, + ownedLifetimes: (0, types_1.concat)(runtime, options.ownedLifetimes) + }); + runtime.context = context; + return context; + } + /** + * One-off evaluate code without needing to create a [[QuickJSRuntime]] or + * [[QuickJSContext]] explicitly. + * + * To protect against infinite loops, use the `shouldInterrupt` option. The + * [[shouldInterruptAfterDeadline]] function will create a time-based deadline. + * + * If you need more control over how the code executes, create a + * [[QuickJSRuntime]] (with [[newRuntime]]) or a [[QuickJSContext]] (with + * [[newContext]] or [[QuickJSRuntime.newContext]]), and use its + * [[QuickJSContext.evalCode]] method. + * + * Asynchronous callbacks may not run during the first call to `evalCode`. If + * you need to work with async code inside QuickJS, create a runtime and use + * [[QuickJSRuntime.executePendingJobs]]. + * + * @returns The result is coerced to a native Javascript value using JSON + * serialization, so properties and values unsupported by JSON will be dropped. + * + * @throws If `code` throws during evaluation, the exception will be + * converted into a native Javascript value and thrown. + * + * @throws if `options.shouldInterrupt` interrupted execution, will throw a Error + * with name `"InternalError"` and message `"interrupted"`. + */ + evalCode(code, options = {}) { + return lifetime_1.Scope.withScope((scope) => { + const vm = scope.manage(this.newContext()); + applyModuleEvalRuntimeOptions(vm.runtime, options); + const result = vm.evalCode(code, "eval.js"); + if (options.memoryLimitBytes !== void 0) { + vm.runtime.setMemoryLimit(-1); + } + if (result.error) { + const error = vm.dump(scope.manage(result.error)); + throw error; + } + const value = vm.dump(scope.manage(result.value)); + return value; + }); + } + /** + * Get a low-level interface to the QuickJS functions in this WebAssembly + * module. + * @experimental + * @unstable No warranty is provided with this API. It could change at any time. + * @private + */ + getFFI() { + return this.ffi; + } + }; + exports.QuickJSWASMModule = QuickJSWASMModule; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/context-asyncify.js +var require_context_asyncify = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/context-asyncify.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSAsyncContext = void 0; + var context_1 = require_context(); + var debug_1 = require_debug2(); + var types_1 = require_types2(); + var QuickJSAsyncContext = class extends context_1.QuickJSContext { + /** + * Asyncified version of [[evalCode]]. + */ + async evalCodeAsync(code, filename = "eval.js", options) { + const detectModule = options === void 0 ? 1 : 0; + const flags = (0, types_1.evalOptionsToFlags)(options); + let resultPtr = 0; + try { + resultPtr = await this.memory.newHeapCharPointer(code).consume((charHandle) => this.ffi.QTS_Eval_MaybeAsync(this.ctx.value, charHandle.value, filename, detectModule, flags)); + } catch (error) { + (0, debug_1.debugLog)("QTS_Eval_MaybeAsync threw", error); + throw error; + } + const errorPtr = this.ffi.QTS_ResolveException(this.ctx.value, resultPtr); + if (errorPtr) { + this.ffi.QTS_FreeValuePointer(this.ctx.value, resultPtr); + return { error: this.memory.heapValueHandle(errorPtr) }; + } + return { value: this.memory.heapValueHandle(resultPtr) }; + } + /** + * Similar to [[newFunction]]. + * Convert an async host Javascript function into a synchronous QuickJS function value. + * + * Whenever QuickJS calls this function, the VM's stack will be unwound while + * waiting the async function to complete, and then restored when the returned + * promise resolves. + * + * Asyncified functions must never call other asyncified functions or + * `import`, even indirectly, because the stack cannot be unwound twice. + * + * See [Emscripten's docs on Asyncify](https://emscripten.org/docs/porting/asyncify.html). + */ + newAsyncifiedFunction(name, fn2) { + return this.newFunction(name, fn2); + } + }; + exports.QuickJSAsyncContext = QuickJSAsyncContext; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/runtime-asyncify.js +var require_runtime_asyncify = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/runtime-asyncify.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSAsyncRuntime = void 0; + var _1 = require_dist10(); + var context_asyncify_1 = require_context_asyncify(); + var runtime_1 = require_runtime(); + var types_1 = require_types2(); + var QuickJSAsyncRuntime = class extends runtime_1.QuickJSRuntime { + /** @private */ + constructor(args) { + super(args); + } + newContext(options = {}) { + if (options.intrinsics && options.intrinsics !== types_1.DefaultIntrinsics) { + throw new Error("TODO: Custom intrinsics are not supported yet"); + } + const ctx = new _1.Lifetime(this.ffi.QTS_NewContext(this.rt.value), void 0, (ctx_ptr) => { + this.contextMap.delete(ctx_ptr); + this.callbacks.deleteContext(ctx_ptr); + this.ffi.QTS_FreeContext(ctx_ptr); + }); + const context = new context_asyncify_1.QuickJSAsyncContext({ + module: this.module, + ctx, + ffi: this.ffi, + rt: this.rt, + ownedLifetimes: [], + runtime: this, + callbacks: this.callbacks + }); + this.contextMap.set(ctx.value, context); + return context; + } + setModuleLoader(moduleLoader, moduleNormalizer) { + super.setModuleLoader(moduleLoader, moduleNormalizer); + } + /** + * Set the max stack size for this runtime in bytes. + * To remove the limit, set to `0`. + * + * Setting this limit also adjusts the global `ASYNCIFY_STACK_SIZE` for the entire {@link QuickJSAsyncWASMModule}. + * See the [pull request](https://github.com/justjake/quickjs-emscripten/pull/114) for more details. + */ + setMaxStackSize(stackSize) { + return super.setMaxStackSize(stackSize); + } + }; + exports.QuickJSAsyncRuntime = QuickJSAsyncRuntime; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module-asyncify.js +var require_module_asyncify = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module-asyncify.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSAsyncWASMModule = void 0; + var errors_1 = require_errors(); + var lifetime_1 = require_lifetime(); + var module_1 = require_module(); + var runtime_asyncify_1 = require_runtime_asyncify(); + var QuickJSAsyncWASMModule = class extends module_1.QuickJSWASMModule { + /** @private */ + constructor(module3, ffi) { + super(module3, ffi); + this.ffi = ffi; + this.module = module3; + } + /** + * Create a new async runtime inside this WebAssembly module. All runtimes inside a + * module are limited to a single async call at a time. For multiple + * concurrent async actions, create multiple WebAssembly modules. + */ + newRuntime(options = {}) { + const rt = new lifetime_1.Lifetime(this.ffi.QTS_NewRuntime(), void 0, (rt_ptr) => { + this.callbacks.deleteRuntime(rt_ptr); + this.ffi.QTS_FreeRuntime(rt_ptr); + }); + const runtime = new runtime_asyncify_1.QuickJSAsyncRuntime({ + module: this.module, + ffi: this.ffi, + rt, + callbacks: this.callbacks + }); + (0, module_1.applyBaseRuntimeOptions)(runtime, options); + if (options.moduleLoader) { + runtime.setModuleLoader(options.moduleLoader); + } + return runtime; + } + /** + * A simplified API to create a new [[QuickJSRuntime]] and a + * [[QuickJSContext]] inside that runtime at the same time. The runtime will + * be disposed when the context is disposed. + */ + newContext(options = {}) { + const runtime = this.newRuntime(); + const lifetimes = options.ownedLifetimes ? options.ownedLifetimes.concat([runtime]) : [runtime]; + const context = runtime.newContext({ ...options, ownedLifetimes: lifetimes }); + runtime.context = context; + return context; + } + /** Synchronous evalCode is not supported. */ + evalCode() { + throw new errors_1.QuickJSNotImplemented("QuickJSWASMModuleAsyncify.evalCode: use evalCodeAsync instead"); + } + /** + * One-off evaluate code without needing to create a [[QuickJSRuntimeAsync]] or + * [[QuickJSContextSync]] explicitly. + * + * This version allows for asynchronous Ecmascript module loading. + * + * Note that only a single async action can occur at a time inside the entire WebAssembly module. + * **Multiple concurrent async actions is an error.** + * + * See the documentation for [[QuickJSWASMModule.evalCode]] for more details. + */ + evalCodeAsync(code, options) { + return lifetime_1.Scope.withScopeAsync(async (scope) => { + const vm = scope.manage(this.newContext()); + (0, module_1.applyModuleEvalRuntimeOptions)(vm.runtime, options); + const result = await vm.evalCodeAsync(code, "eval.js"); + if (options.memoryLimitBytes !== void 0) { + vm.runtime.setMemoryLimit(-1); + } + if (result.error) { + const error = vm.dump(scope.manage(result.error)); + throw error; + } + const value = vm.dump(scope.manage(result.value)); + return value; + }); + } + }; + exports.QuickJSAsyncWASMModule = QuickJSAsyncWASMModule; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/generated/ffi.WASM_RELEASE_SYNC.js +var require_ffi_WASM_RELEASE_SYNC = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/generated/ffi.WASM_RELEASE_SYNC.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuickJSFFI = void 0; + var QuickJSFFI = class { + constructor(module3) { + this.module = module3; + this.DEBUG = false; + this.QTS_Throw = this.module.cwrap("QTS_Throw", "number", ["number", "number"]); + this.QTS_NewError = this.module.cwrap("QTS_NewError", "number", ["number"]); + this.QTS_RuntimeSetMemoryLimit = this.module.cwrap("QTS_RuntimeSetMemoryLimit", null, ["number", "number"]); + this.QTS_RuntimeComputeMemoryUsage = this.module.cwrap("QTS_RuntimeComputeMemoryUsage", "number", ["number", "number"]); + this.QTS_RuntimeDumpMemoryUsage = this.module.cwrap("QTS_RuntimeDumpMemoryUsage", "number", ["number"]); + this.QTS_RecoverableLeakCheck = this.module.cwrap("QTS_RecoverableLeakCheck", "number", []); + this.QTS_BuildIsSanitizeLeak = this.module.cwrap("QTS_BuildIsSanitizeLeak", "number", []); + this.QTS_RuntimeSetMaxStackSize = this.module.cwrap("QTS_RuntimeSetMaxStackSize", null, ["number", "number"]); + this.QTS_GetUndefined = this.module.cwrap("QTS_GetUndefined", "number", []); + this.QTS_GetNull = this.module.cwrap("QTS_GetNull", "number", []); + this.QTS_GetFalse = this.module.cwrap("QTS_GetFalse", "number", []); + this.QTS_GetTrue = this.module.cwrap("QTS_GetTrue", "number", []); + this.QTS_NewRuntime = this.module.cwrap("QTS_NewRuntime", "number", []); + this.QTS_FreeRuntime = this.module.cwrap("QTS_FreeRuntime", null, ["number"]); + this.QTS_NewContext = this.module.cwrap("QTS_NewContext", "number", ["number"]); + this.QTS_FreeContext = this.module.cwrap("QTS_FreeContext", null, ["number"]); + this.QTS_FreeValuePointer = this.module.cwrap("QTS_FreeValuePointer", null, ["number", "number"]); + this.QTS_FreeValuePointerRuntime = this.module.cwrap("QTS_FreeValuePointerRuntime", null, ["number", "number"]); + this.QTS_FreeVoidPointer = this.module.cwrap("QTS_FreeVoidPointer", null, ["number", "number"]); + this.QTS_FreeCString = this.module.cwrap("QTS_FreeCString", null, ["number", "number"]); + this.QTS_DupValuePointer = this.module.cwrap("QTS_DupValuePointer", "number", ["number", "number"]); + this.QTS_NewObject = this.module.cwrap("QTS_NewObject", "number", ["number"]); + this.QTS_NewObjectProto = this.module.cwrap("QTS_NewObjectProto", "number", ["number", "number"]); + this.QTS_NewArray = this.module.cwrap("QTS_NewArray", "number", ["number"]); + this.QTS_NewFloat64 = this.module.cwrap("QTS_NewFloat64", "number", ["number", "number"]); + this.QTS_GetFloat64 = this.module.cwrap("QTS_GetFloat64", "number", ["number", "number"]); + this.QTS_NewString = this.module.cwrap("QTS_NewString", "number", ["number", "number"]); + this.QTS_GetString = this.module.cwrap("QTS_GetString", "number", ["number", "number"]); + this.QTS_NewSymbol = this.module.cwrap("QTS_NewSymbol", "number", ["number", "number", "number"]); + this.QTS_GetSymbolDescriptionOrKey = this.module.cwrap("QTS_GetSymbolDescriptionOrKey", "number", ["number", "number"]); + this.QTS_IsGlobalSymbol = this.module.cwrap("QTS_IsGlobalSymbol", "number", ["number", "number"]); + this.QTS_IsJobPending = this.module.cwrap("QTS_IsJobPending", "number", ["number"]); + this.QTS_ExecutePendingJob = this.module.cwrap("QTS_ExecutePendingJob", "number", ["number", "number", "number"]); + this.QTS_GetProp = this.module.cwrap("QTS_GetProp", "number", ["number", "number", "number"]); + this.QTS_SetProp = this.module.cwrap("QTS_SetProp", null, ["number", "number", "number", "number"]); + this.QTS_DefineProp = this.module.cwrap("QTS_DefineProp", null, ["number", "number", "number", "number", "number", "number", "boolean", "boolean", "boolean"]); + this.QTS_Call = this.module.cwrap("QTS_Call", "number", ["number", "number", "number", "number", "number"]); + this.QTS_ResolveException = this.module.cwrap("QTS_ResolveException", "number", ["number", "number"]); + this.QTS_Dump = this.module.cwrap("QTS_Dump", "number", ["number", "number"]); + this.QTS_Eval = this.module.cwrap("QTS_Eval", "number", ["number", "number", "string", "number", "number"]); + this.QTS_Typeof = this.module.cwrap("QTS_Typeof", "number", ["number", "number"]); + this.QTS_GetGlobalObject = this.module.cwrap("QTS_GetGlobalObject", "number", ["number"]); + this.QTS_NewPromiseCapability = this.module.cwrap("QTS_NewPromiseCapability", "number", ["number", "number"]); + this.QTS_TestStringArg = this.module.cwrap("QTS_TestStringArg", null, ["string"]); + this.QTS_BuildIsDebug = this.module.cwrap("QTS_BuildIsDebug", "number", []); + this.QTS_BuildIsAsyncify = this.module.cwrap("QTS_BuildIsAsyncify", "number", []); + this.QTS_NewFunction = this.module.cwrap("QTS_NewFunction", "number", ["number", "number", "string"]); + this.QTS_ArgvGetJSValueConstPointer = this.module.cwrap("QTS_ArgvGetJSValueConstPointer", "number", ["number", "number"]); + this.QTS_RuntimeEnableInterruptHandler = this.module.cwrap("QTS_RuntimeEnableInterruptHandler", null, ["number"]); + this.QTS_RuntimeDisableInterruptHandler = this.module.cwrap("QTS_RuntimeDisableInterruptHandler", null, ["number"]); + this.QTS_RuntimeEnableModuleLoader = this.module.cwrap("QTS_RuntimeEnableModuleLoader", null, ["number", "number"]); + this.QTS_RuntimeDisableModuleLoader = this.module.cwrap("QTS_RuntimeDisableModuleLoader", null, ["number"]); + } + }; + exports.QuickJSFFI = QuickJSFFI; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/generated/emscripten-module.WASM_RELEASE_SYNC.js +var require_emscripten_module_WASM_RELEASE_SYNC = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/generated/emscripten-module.WASM_RELEASE_SYNC.js"(exports, module2) { + "use strict"; + var QuickJSRaw = (() => { + var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0; + if (typeof __filename !== "undefined") + _scriptDir = _scriptDir || __filename; + return function(QuickJSRaw2 = {}) { + var a; + a || (a = typeof QuickJSRaw2 !== "undefined" ? QuickJSRaw2 : {}); + var m, n; + a.ready = new Promise(function(b, c) { + m = b; + n = c; + }); + var p = Object.assign({}, a), t = "./this.program", u = "object" == typeof window, v = "function" == typeof importScripts, w = "object" == typeof process && "object" == typeof process.versions && "string" == typeof process.versions.node, x = "", y, z, A; + if (w) { + var fs8 = require("fs"), B = require("path"); + x = v ? B.dirname(x) + "/" : __dirname + "/"; + y = (b, c) => { + var d = C(b); + if (d) + return c ? d : d.toString(); + b = b.startsWith("file://") ? new URL(b) : B.normalize(b); + return fs8.readFileSync(b, c ? void 0 : "utf8"); + }; + A = (b) => { + b = y(b, true); + b.buffer || (b = new Uint8Array(b)); + return b; + }; + z = (b, c, d) => { + var e = C(b); + e && c(e); + b = b.startsWith("file://") ? new URL(b) : B.normalize(b); + fs8.readFile(b, function(f, g) { + f ? d(f) : c(g.buffer); + }); + }; + !a.thisProgram && 1 < process.argv.length && (t = process.argv[1].replace(/\\/g, "/")); + process.argv.slice(2); + a.inspect = function() { + return "[Emscripten Module object]"; + }; + } else if (u || v) + v ? x = self.location.href : "undefined" != typeof document && document.currentScript && (x = document.currentScript.src), _scriptDir && (x = _scriptDir), 0 !== x.indexOf("blob:") ? x = x.substr(0, x.replace(/[?#].*/, "").lastIndexOf("/") + 1) : x = "", y = (b) => { + try { + var c = new XMLHttpRequest(); + c.open("GET", b, false); + c.send(null); + return c.responseText; + } catch (f) { + if (b = C(b)) { + c = []; + for (var d = 0; d < b.length; d++) { + var e = b[d]; + 255 < e && (e &= 255); + c.push(String.fromCharCode(e)); + } + return c.join(""); + } + throw f; + } + }, v && (A = (b) => { + try { + var c = new XMLHttpRequest(); + c.open("GET", b, false); + c.responseType = "arraybuffer"; + c.send(null); + return new Uint8Array(c.response); + } catch (d) { + if (b = C(b)) + return b; + throw d; + } + }), z = (b, c, d) => { + var e = new XMLHttpRequest(); + e.open("GET", b, true); + e.responseType = "arraybuffer"; + e.onload = () => { + if (200 == e.status || 0 == e.status && e.response) + c(e.response); + else { + var f = C(b); + f ? c(f.buffer) : d(); + } + }; + e.onerror = d; + e.send(null); + }; + var aa = a.print || console.log.bind(console), D = a.printErr || console.warn.bind(console); + Object.assign(a, p); + p = null; + a.thisProgram && (t = a.thisProgram); + var E; + a.wasmBinary && (E = a.wasmBinary); + var noExitRuntime = a.noExitRuntime || true; + "object" != typeof WebAssembly && F("no native wasm support detected"); + var G, H = false, I, J, K, L; + function M() { + var b = G.buffer; + a.HEAP8 = I = new Int8Array(b); + a.HEAP16 = new Int16Array(b); + a.HEAP32 = K = new Int32Array(b); + a.HEAPU8 = J = new Uint8Array(b); + a.HEAPU16 = new Uint16Array(b); + a.HEAPU32 = L = new Uint32Array(b); + a.HEAPF32 = new Float32Array(b); + a.HEAPF64 = new Float64Array(b); + } + var ba = [], ca = [], da = []; + function ea() { + var b = a.preRun.shift(); + ba.unshift(b); + } + var N = 0, O = null, P = null; + function F(b) { + if (a.onAbort) + a.onAbort(b); + b = "Aborted(" + b + ")"; + D(b); + H = true; + b = new WebAssembly.RuntimeError(b + ". Build with -sASSERTIONS for more info."); + n(b); + throw b; + } + var Q = "data:application/octet-stream;base64,", R; + R = "data:application/octet-stream;base64,AGFzbQEAAAAB9QZxYAJ/fwBgA39/fwF/YAR/fn9/AX5gAn9/AX9gAX8Bf2AFf35/f38BfmADf39/AGAEf39/fwF/YAJ/fgF+YAF/AGAFf39/f38Bf2ABfAF8YAJ/fgBgAn9/AX5gAn9+AX9gA39/fgF/YAN/fn8BfmADf35/AGAGf35/f39/AX5gBn9/f39/fwF/YAR/f39/AGADf35/AX9gBn9+fn9/fwF+YAR/f35/AX9gA39+fgF+YAN/f38BfmAFf39/fn4Bf2AEf39/fgF/YAR/f35+AX9gBX9+fn5+AGABfwF+YAN/fn4Bf2AEf39/fwF+YAd/f39/f39/AX9gBX9/f39/AX5gAnx8AXxgAAF/YAV/f39/fwBgBX9+f35/AX9gBX9+fn9/AX5gAX4Bf2AEf35+fwBgB39+f35+fn8Bf2AIf39/f39/f38Bf2AFf35+fn8Bf2AGf35/fn5/AX9gBH9+f34BfmAEf35/fwBgBH9+f34AYAZ/f39/f38BfmAEf35+fwF/YAl/f39/f39/f38Bf2AEf35+fwF+YAR/fn9/AX9gA39+fgBgA35/fwF/YAV/fn5/fwBgA39/fgF+YAd/fn9/f39/AX5gAABgA39/fgBgBH9+f34Bf2AFf39+f38Bf2AEf35+fgF/YAd/f39/f39/AGACfH8BfGABfAF/YAN8fH8BfGACf38BfGAEf39+fwBgBH9+fn4BfmABfgF+YAJ/fAF/YAZ/fH9/f38Bf2AAAXxgBX9+f35/AX5gBn9/fn5+fgF/YAJ+fwBgAn98AGAEf39+fwF+YAV/f39/fgF+YAd/fn5+f39/AX5gBH5+fn4Bf2AHf39/f39/fgF+YAp/f39/f39/f39/AX9gB39/fn5/f38Bf2AFf3x/f38BfmACfn8Bf2AGfH9/f39/AGAFf35/f38AYAV/f35/fwBgBn9+fn5+fwF/YAV/f35+fwF/YAZ/fn9/f38Bf2ADf3x/AX9gBX9+f39/AX9gBX9/fn5+AX5gBX9+fn5+AX9gBn9/fn5/fwF/YAd/f39+fn5/AX9gBH9/f34BfmACfH8Bf2AGf39/f39/AGAIf39/f39/f38AYAN/fnwBfmAAAX5gAnx8AX9gAn5+AXxgAX8BfGADfn5+AX9gA39/fABgCH9+fn5+f35+AX5gCX9/f39/f39/fwACWw8B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rgitCKcIqAimCKUIpAj0B44JjQmKCYgJjAnwB/EH7gfrB+QH4gfhB9MHwQeaB/EEvAmbCZoJmQmYCZcJlgmVCZQJkwmSCZEJiwntCOwInQicCJsImgiZCKAFmAiXCJYIlQiUCJMIkQiQCI8IjgiNCIwIiwiKCIkIiAiHCIYI6QOFCOkDhAiDCIIIgQieCKEIoAifCKII2QP/B/4HkQeQB5kHmAeWB5UHlAeTB5IH4AffB94H6QPdB6AF3AfbB9oH2AerCKoIqQj/BooHiQeIB4cHhgeFB4QHgweCB4EHgAfoB4sHjweOB5sHpAehB6MHogefB54HnQecB6UH5wfmB+UH/gHsB+kH7QfvB/IH9QbPBPQG8wbyBvEGyATwBu8G9wbRBPYG9gf1B/sH+gf5B/gH/QeoCeMGpwnmBqYJpQmkCaMJ4QbfBsYEogmhCaAJsQafCZ4JnQmwBrIJsQmwCa8JrgmtCawJqwmqCbgJnQO3CbYJtQm0CbMJxgnJB8gHxQnECcMJwgnWA8EJwAn3BPgEvwm+CbsJugm5CckJyAnHCdAJzwm9BLwEzgnNCcwJywnKCbQG1AnTCdIJ0Qm4BrcGtga1BroGuQa9BrwGuwbSBtEG0AbPBs4GzQbMBssGygbJBsgGxwbGBsUGxAbDBsEGwAa/Br4G0wbcBoAJ+gj7CNsGgwmECYEJnQT+CPkI6wPMAtoG9QjxCO8I2Qb4CPQI8AiCCf8I/QiXAqcD1gnyCPwI2AbXBtYG1QbUBugG5wblBuQG4gbgBt4G3QbrBuoG6QbtBuwG7gapB6cHpgfPB4EF1weABc4HzQfMB8sHxwfGB8UHxAfDB8IHwAe/B9IH0AfWB9QHtAezB7EHsAevB64HrQesB6sHqge+B70HvAe7B7oHuQe4B7cHtge1B4cJhQmGCdgD8wgK15YXyAk1AQF/AkAgAUIgiKdBdUkNACABpyICIAIoAgAiAkEBazYCACACQQFKDQAgACgCECABEJYECwtNAQJ/IAAoAkAiAkGAAmohAyACKAKcAiAAKAIERwRAIANBwgEQESADIAAoAgQQHSACIAAoAgQ2ApwCCyACIAIoAoQCNgKYAiADIAEQEQsmAQF/IwBBEGsiAiQAIAIgAToADyAAIAJBD2pBARByIAJBEGokAAv/FwIGfwJ+IwBBEGsiAiQAAn8CQCAAKAIA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NwMgIABBgH82AhAMAwsgACACQQxqIAJBCGogBkEAEOoEIgFFDQAgACABNgIgIAIoAgghBSAAQQA2AiggACAFNgIkAkAgAUElSQ0AIAFBLU0EQCAAKAJAIgMtAG5BAXENASABQS1HDQMgAy8BbCIGQQFxDQEgBkGA/gNxQYAGRw0DIAMoAmQNAyADKAIEIgNFDQMgAy0AbEEBcQ0BDAMLIAFBLkcNAiAAKAJEDQAgACgCQCIDLwFsIgZBAnENACAGQYD+A3FBgAZHDQIgAygCZA0CIAMoAgQiA0UNAiADLQBsQQJxRQ0CCyAFBEAgAEGDfzYCECAAQQE2AigMAwsgBCABQdQAazYCAAwCCyAEQap/NgIADAULIARBg382AgALIAAgAigCDDYCOEEADAQLIABBATYCMCAAIANBAWo2AggLIAIoAgwhAQwACwALQX8LIQEgAkEQaiQAIAELFQAgAUHeAU4EQCAAKAIQIAEQ6AULC7oHAgZ/AX4jAEEgayIHJABCgICAgOAAIQsCQAJAAkACQAJAAkACQAJAAkACQCABQiCIpyIGQQFqDggDBQUAAQUFCQILIAAgAkGH1AAQjwEMBgsgACACQff4ABCPAQwFCyAGQXlGDQEMAgsgAachBgwCCyABpyEGIAJBAEgEQCACQf////8HcSIFIAYpAgQiC6dB/////wdxTw0BIAZBEGohAiAAAn8gC0KAgICACINQRQRAIAIgBUEBdGovAQAMAQsgAiAFai0AAAtB//8DcRCfAyELDAULIAJBMEcNACAGKQIEQv////8HgyELDAQLIAAgARCNBKciBkUNAgsgAkH/////B3EhCQNAIAYoAhAiBUEwaiEKIAUgBSgCGCACcUF/c0ECdGooAgAhBQJAA0AgBUUNASACIAogBUEBa0EDdCIFaiIIKAIERwRAIAgoAgBB////H3EhBQwBCwsgBigCFCAFaiEFAkACQAJAAkAgCCgCAEEedkEBaw4DAAECAwsgBSgCACICRQ0GIAIgAigCAEEBajYCACAAIAKtQoCAgIBwhCADQQBBABAvIQsMBwsgBSgCACgCECkDACILQoCAgIBwg0KAgICAwABRBEAgACACENkBDAULIAtCIIinQXVJDQYgC6ciACAAKAIAQQFqNgIADAYLIAAgBiACIAUgCBDIAkUNAgwDCyAFKQMAIgtCIIinQXVJDQQgC6ciACAAKAIAQQFqNgIADAQLAkAgBi0ABSIFQQRxRQ0AIAVBCHEEQCACQQBIBEAgBigCKCAJSwRAIAAgBq1CgICAgHCEIAkQsAEhCwwHCyAGLwEGQSBrQf//A3FB9f8DTw0FDAILIAYvAQZBFWtB//8DcUEKSw0BIAAgAhCeAyIFRQ0BQoCAgIDgAEKAgICAMCAFQQBIGyELDAULIAAoAhAoAkQgBi8BBkEYbGooAhQiBUUNACAFKAIUIggEQCAGIAYoAgBBAWo2AgAgACAGrUKAgICAcIQiASACIAMgCBEuACELIAAgARAPDAULIAUoAgAiBUUNACAGIAYoAgBBAWo2AgAgACAHIAatQoCAgIBwhCIBIAIgBREXACEFIAAgARAPIAVBAEgNAiAFRQ0AIActAABBEHEEQCAAIAcpAxgQDyAAIAcpAxAgA0EAQQAQLyELDAULIAcpAwghCwwECyAGKAIQKAIsIgYNAAtCgICAgDAhCyAERQ0CIAAgAhDHAgtCgICAgOAAIQsMAQtCgICAgDAhCwsgB0EgaiQAIAsLDQAgACABIAJBBBDOAgtfAQN/IwBBEGsiBCQAIAAoAgAhAyAEIAI2AgwgA0EDIAEgAkEAEPAFIAMgAygCECkDgAEgACgCDCAAKAIIIAAoAkAiAQR/IAEoAmhBAEdBAXQFQQALEMoCIARBEGokAAsMACAAQYACaiABECoLKwAgAUHeAU4EQCAAKAIQKAI4IAFBAnRqKAIAIgAgACgCAEEBajYCAAsgAQspACAAIAEgAiADQoCAgIAwQoCAgIAwIARBgM4AchBtIQIgACADEA8gAgsZACAAKAIAIAEQGCEBIABBQGsoAgAgARA5Cy0BAX8CQCAAKAIAIgFFDQAgACgCECIARQ0AIAEoAgAgAEEAIAEoAgQRAQAaCwtcAQF/IABBQGsoAgAiAxDmAkUEQEF/DwsgAkEASARAIAMQMiECCyAAIAFB/wFxEBAgAEFAayIAKAIAIAIQOSAAKAIAKAKkAiACQRRsaiIAIAAoAgBBAWo2AgAgAgsmAQF/IwBBEGsiAiQAIAIgATYCDCAAIAJBDGpBBBByIAJBEGokAAs5ACABQQBOBEAgAEG2ARAQIABBQGsiACgCACABEDkgACgCACIAKAKkAiABQRRsaiAAKAKEAjYCBAsLMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAACxgBAX4gASkDACEDIAEgAjcDACAAIAMQDwsXACAAIAEgAkKAgICAMCADIARBAhDYAQvABQICfgZ/IwBB4ABrIgkkACADQQAgA0EAShshCwNAIAogC0ZFBEAgACACIApBBHRqIgMoAgAQtAUhBiADLQAEIQdCgICAgDAhBAJAAkACQAJAAkACQAJAAkACQAJAIAMtAAUOCgECAgUHAwQIBQAGCyAAIAMoAggQtAUhCAJ+AkACQAJAIAMoAgxBAWoOAwIAAQkLIAAgACkDwAEiBCAIIARBABAUDAILIAAgACgCKCkDECIEIAggBEEAEBQMAQsgACABIAggAUEAEBQLIQQgACAIEBMgBkHQAUYEQEEBIQcMCAsgBkHZAUcNB0EAIQcMBwsCQCAGQdABRgRAQQEhBwwBCyAGQdkBRw0AQQAhBwsgACABIAZBAiADIAcQlQMaDAcLQoCAgIAwIQUgAygCCARAIAkgAygCADYCECAJQSBqIghBwABBzDwgCUEQahBOGiAAIAMoAgggCEEAQQpBCCADLQAFQQJGGyADLgEGEIIBIQULIAMoAgwEQCAJIAMoAgA2AgAgCUEgaiIIQcAAQcU8IAkQThogACADKAIMIAhBAUELQQkgAy0ABUECRhsgAy4BBhCCASEECyAAIAEgBkKAgICAMCAFIAQgB0GAOnIQbRogACAFEA8gACAEEA8MBgsgAykDCCIEQoCAgIAIfEL/////D1gEQCAEQv////8PgyEEDAULQoCAgIDAfiAEub0iBEKAgICAwIGA/P8AfSAEQv///////////wCDQoCAgICAgID4/wBWGyEEDAQLQoCAgIDAfiADKQMIIgRCgICAgMCBgPz/AH0gBEL///////////8Ag0KAgICAgICA+P8AVhshBAwDCyAAIAEgBkECIAMgBxCVAxoMAwsQAQALIAM1AgghBAsgACABIAYgBCAHEBkaCyAAIAYQEyAKQQFqIQoMAQsLIAlB4ABqJAALMgEBfwJAIAFCIIinQXVJDQAgAaciAiACKAIAIgJBAWs2AgAgAkEBSg0AIAAgARCWBAsLCwAgAEGAMUEAEBULogICAn4BfwJAAkACQAJAAkACQAJAAkACQAJAAkBBByABQiCIpyIEIARBB2tBbkkbQQtqDhMEAgMIBgAAAAAAAQUHAAAAAAEFAAsgAEGVMEEAEBVCgICAgOAADwsgBEF1SQ0IIAGnIgAgACgCAEEBajYCAAwICyAAQSEQdiECDAYLIABBIhB2IQIMBQsgAEEkEHYhAgwECyAAQQQQdiECDAMLIAAgAEEFEHYiAkEwIAGnKQIEQv////8Hg0EAEBkaDAILIABBBhB2IQIMAQsgAEEHEHYhAgtCgICAgOAAIQMgAkKAgICAcINCgICAgOAAUgR+IARBdU8EQCABpyIEIAQoAgBBAWo2AgALIAAgAiABENsBIAIFQoCAgIDgAAsPCyABC9kBAgJ/AX5BfyECAkACQAJAAkACQAJAAkACQCABQiCIpyIDQQtqDhIHBwcFAgUFBQUFBAABAQEFBQYFCyABp0EARw8LIAGnDwsgAacpAgQhBCAAIAEQDyAEQv////8Hg0IAUg8LAAsgAacsAAUhAiAAIAEQDyACQQBODwsgA0EHa0FtTQRAIAFCgICAgMCBgPz/AHxC////////////AINCAX1CgICAgICAgPj/AFQPCyAAIAEQD0EBIQILIAIPCyABpygCDCECIAAgARAPIAJB/////wdqQX5JC6gEAQt/IAAoAgAhBSMAQRBrIgggAjYCDEF/IQkCQANAAkAgCCACIgNBBGoiAjYCDCADKAIAIgdBf0YNACAAKAIEIQoDQCABIgQgCk4NAyAEIAQgBWoiDC0AACIGQQJ0Ig1BgLgBai0AAGoiASAKSg0DIAZBwgFGBEAgDCgAASEJDAELCyAGIAdHBEAgBiAHQf8BcUYgBiAHQQh2Qf8BcUZyIAYgB0EQdkH/AXFGckUgB0EYdiAGR3EgBkUgB0GAAklycg0DIAAgBjYCEAsgBEEBaiEEAkACQAJAAkACQAJAAkACQCANQYO4AWotAABBBWsOGAAJAAkJAQkJAQkJAQEBAgICAgQFBgcJAwkLIAQgBWotAAAhBCAIIANBCGoiAjYCDCADKAIEIgNBf0YEQCAAIAQ2AhQMCQsgAyAERg0IDAkLIAQgBWovAAAhBCAIIANBCGoiAjYCDCADKAIEIgNBf0YEQCAAIAQ2AhQMCAsgAyAERg0HDAgLIAAgBCAFaigAADYCGAwGCyAAIAQgBWoiAygAADYCGCAAIAMvAAQ2AhwMBQsgACAEIAVqKAAANgIgDAQLIAAgBCAFaiIDKAAANgIgIAAgAy0ABDYCHAwDCyAAIAQgBWoiAygAADYCICAAIAMvAAQ2AhwMAgsgACAEIAVqIgMoAAA2AiAgACADKAAENgIYIAAgAy0ACDYCHAwBCwsgACAJNgIMIAAgATYCCEEBIQsLIAsLCwAgACABQQAQjgQLJAEBfyAAKAIQIgJBEGogASACKAIAEQMAIgFFBEAgABB8CyABCyYBAX8jAEEQayICJAAgAiABOwEOIAAgAkEOakECEHIgAkEQaiQACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACz8BAX8jAEEQayICJAACfyABIAAoAhBHBEAgAiABNgIAIABBoJgBIAIQFkF/DAELIAAQEgshACACQRBqJAAgAAsLACAAIAFBARDmBQvDCgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4QhAkIAIQEgAlAEQEKAgICAgIDg//8AIQoMAwsgCkKAgICAgIDA//8AhCEKDAILIAEgC4RQBEBCACEBDAILIAIgA4RQBEBCACEBDAILIAtC////////P1gEQCAFQdAAaiABIA0gASANIA1QIgYbeSAGQQZ0rXynIgZBD2sQZ0EQIAZrIQYgBSkDWCINQiCIIQ4gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAwgAyAMIAxQIggbeSAIQQZ0rXynIghBD2sQZyAGIAhrQRBqIQYgBSkDSCEMIAUpA0AhAwsgA0IPhiILQoCA/v8PgyICIAFCIIgiBH4iECALQiCIIhMgAUL/////D4MiAX58Ig9CIIYiESABIAJ+fCILIBFUrSACIA1C/////w+DIg1+IhUgBCATfnwiESAMQg+GIhIgA0IxiIRC/////w+DIgMgAX58IhQgDyAQVK1CIIYgD0IgiIR8Ig8gAiAOQoCABIQiDH4iFiANIBN+fCIOIBJCIIhCgICAgAiEIgIgAX58IhAgAyAEfnwiEkIghnwiF3whASAHIAlqIAZqQf//AGshBgJAIAIgBH4iGCAMIBN+fCIEIBhUrSAEIAQgAyANfnwiBFatfCACIAx+fCAEIAQgESAVVK0gESAUVq18fCIEVq18IAMgDH4iAyACIA1+fCICIANUrUIghiACQiCIhHwgBCACQiCGfCICIARUrXwgAiACIBAgElatIA4gFlStIA4gEFatfHxCIIYgEkIgiIR8IgJWrXwgAiACIA8gFFStIA8gF1atfHwiAlatfCIEQoCAgICAgMAAg1BFBEAgBkEBaiEGDAELIAtCP4ghAyAEQgGGIAJCP4iEIQQgAkIBhiABQj+IhCECIAtCAYYhCyADIAFCAYaEIQELIAZB//8BTgRAIApCgICAgICAwP//AIQhCkIAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogCyABIAZB/wBqIgYQZyAFQSBqIAIgBCAGEGcgBUEQaiALIAEgBxCOAiAFIAIgBCAHEI4CIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQsgBSkDKCAFKQMYhCEBIAUpAwAhAiAFKQMIDAILQgAhAQwCCyAEQv///////z+DIAatQjCGhAsgCoQhCiALUCABQgBZIAFCgICAgICAgICAf1EbRQRAIAogAkIBfCIBUK18IQoMAQsgCyABQoCAgICAgICAgH+FhFBFBEAgAiEBDAELIAogAiACQgGDfCIBIAJUrXwhCgsgACABNwMAIAAgCjcDCCAFQeAAaiQACyEAIAAgASACQoCAgIAwIAMgBEECENgBIQIgACABEA8gAgumAQEEfyAAQQA2AgQgAVAEQCAAQYCAgIB4NgIIIABBABBBGkEADwsCQCABQv////8PWARAIABBARBBDQEgACgCECABIAGnZyICrYY+AgAg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IAMQ2QEMAgtBACEEIAItAAUiBUEEcUUNACAFQQhxBEAgA0EATg0BIANB/////wdxIgMgAigCKCIFSSEEIAFFIAMgBU9yDQEgAUKAgICAMDcDGCABQoCAgIAwNwMQIAFBBzYCACABIAAgAq1CgICAgHCEIAMQsAE3AwgMAwsgACgCECgCRCACLwEGQRhsaigCFCIFRQ0AIAUoAgAiBUUNACAAIAEgAq1CgICAgHCEIAMgBREXACEECyAEDwtBfw8LQQELoQQBAn8CQAJAIAFCgICAgHBUIAJC/////w9Wcg0AIAKnIgQgAaciAygCKE8NAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAy8BBkECaw4eAAsLCwsLAAsLCwsLCwsLCwsLCwIBAgMEBQYHCAkKCwsgAygCJCAEQQN0aikDACIBQiCIp0F1SQ0LIAGnIgAgACgCAEEBajYCACABDwsgAygCJCAEajAAAEL/////D4MPCyADKAIkIARqMQAADwsgAygCJCAEQQF0ajIBAEL/////D4MPCyADKAIkIARBAXRqMwEADwsgAygCJCAEQQJ0ajUCAA8LIAMoAiQgBEECdGooAgAiAEEATgRAIACtDwtCgICAgMB+IAC4vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbDwsgACADKAIkIARBA3RqKQMAEIcCDwsgACADKAIkIARBA3RqKQMAEPsDDwtCgICAgMB+IAMoAiQgBEECdGoqAgC7vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbDwtCgICAgMB+IAMoAiQgBEEDdGopAwAiAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGw8LIAAgAhAxIQMgACACEA8gA0UEQEKAgICA4AAPCyAAIAEgAyABQQAQFCEBIAAgAxATCyABCyoBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQywIhACAEQRBqJAAgAAuMAQECfyABKAJ8IgRBgIAETgRAIABBjTpBABBGQX8PC0F/IQMgACABQfQAakEQIAFB+ABqIARBAWoQeAR/QX8FIAEgASgCfCIDQQFqNgJ8IAEoAnQgA0EEdGoiA0IANwIAIANCADcCCCADIAAgAhAYNgIAIAMgAygCDEGA////B3I2AgwgASgCfEEBawsLDQAgACABIAJBARDOAgurAgEEfwJAIAIgA08NACADIAJrIQUgAUEQaiEEIAEtAAdBgAFxBEBBACEDIAVBACAFQQBKGyEGIAQgAkEBdGohAUEAIQIDQCACIAZGRQRAIAMgASACQQF0ai8BAHIhAyACQQFqIQIMAQsLAkAgACgCCCAFaiICIAAoAgwiB0oEQEF/IQQgACACIAMQtwJFDQEMAwsgACgCECADQYACSHINAEF/IQQgACAHEPUDDQILAkAgACgCEEUEQEEAIQIDQCACIAZGDQIgACgCBCAAKAIIIAJqaiABIAJBAXRqLQAAOgAQIAJBAWohAgwACwALIAAoAgQgACgCCEEBdGpBEGogASAFQQF0EB8aCyAAIAAoAgggBWo2AghBAA8LIAAgAiAEaiAFEIgCIQQLIAQLRwEBfyABQiCIp0F1TwRAIAGnIgMgAygCAEEBajYCAAsgAkIgiKdBdU8EQCACpyIDIAMoAgBBAWo2AgALIAAgASACQQEQvAELFwEBf0EIELEBIgEEQCABIAA3AwALIAELGQAgAQRAIAAgAUEQa61CgICAgJB/hBAPCwuCAwIEfwJ+AkAgACkDcCIFUEUgBSAAKQN4IAAoAgQiASAAKAIsIgJrrHwiBldxRQRAIwBBEGsiAiQAQX8hAQJAAn8gACAAKAJIIgNBAWsgA3I2AkggACgCFCAAKAIcRwRAIABBAEEAIAAoAiQRAQAaCyAAQQA2AhwgAEIANwMQIAAoAgAiA0EEcQRAIAAgA0EgcjYCAEF/DAELIAAgACgCLCAAKAIwaiIENgIIIAAgBDYCBCADQRt0QR91Cw0AIAAgAkEPakEBIAAoAiARAQBBAUcNACACLQAPIQELIAJBEGokACABIgNBAE4NASAAKAIEIQEgACgCLCECCyAAQn83A3AgACABNgJoIAAgBiACIAFrrHw3A3hBfw8LIAZCAXwhBiAAKAIEIQEgACgCCCECAkAgACkDcCIFUA0AIAUgBn0iBSACIAFrrFkNACABIAWnaiECCyAAIAI2AmggACAGIAAoAiwiACABa6x8NwN4IAAgAU8EQCABQQFrIAM6AAALIAMLCQAgAEEBELYBC2MBAX8gAkIgiKdBdU8EQCACpyIFIAUoAgBBAWo2AgALAkAgACABIAIQiwUiBQ0AAkAgASgCACIAQQBIBEAgACAEaiIAQQAgAEEAShshAwwBCyAAIANMDQELIAEgAzYCAAsgBQvRAQEGfyAAQQFqIQUCQAJAIAAtAAAiA8AiB0EATgRAIAUhAQwBC0F/IQQgB0FAa0H/AXEiA0E9Sw0BIANBAnRB5J8EaigCACIGIAFODQEgBkEBayEIIAAgBmpBAWohASAHIAZBwp8Eai0AAHEhA0EAIQADQCAAIAZHBEAgBSwAACIEQb9/SgRAQX8PBSAEQT9xIANBBnRyIQMgAEEBaiEAIAVBAWohBQwCCwALC0F/IQQgAyAIQQJ0QdCfBGooAgBJDQELIAIgATYCACADIQQLIAQLLQAgAUKAgICAYINCgICAgCBRBEAgAEG70QBBABAVQoCAgIDgAA8LIAAgARAoC0EBAX8gAQRAA0AgAiADRkUEQCAAIAEgA0EDdGooAgQQEyADQQFqIQMMAQsLIAAoAhAiAEEQaiABIAAoAgQRAAALCxgAIAAtAABBIHFFBEAgASACIAAQugQaCwsLACAAIAFBABDmBQuuAgACQAJAAkACQCACQQNMBEACQAJAAkACQAJAAkACQAJAAkAgAUHYAGsOCQABAgMEBQYHCAoLIAAgAkE7a0H/AXEQEQ8LIAAgAkE3a0H/AXEQEQ8LIAAgAkEza0H/AXEQEQ8LIAAgAkEva0H/AXEQEQ8LIAAgAkEra0H/AXEQEQ8LIAAgAkEna0H/AXEQEQ8LIAAgAkEja0H/AXEQEQ8LIAAgAkEfa0H/AXEQEQ8LIAAgAkEba0H/AXEQEQ8LIAJB/wFLDQECQAJAAkAgAUHYAGsOAwABAgQLIABBwgEQEQwFCyAAQcMBEBEMBAsgAEHEARARDAMLIAFBIkYNAQsgACABQf8BcRARIAAgAkH//wNxECoPCyAAIAJBEmtB/wFxEBEPCyAAIAJB/wFxEBELIQAgASACRgRAIAEQGw8LIAAgAUEEa61CgICAgPB+hBAPCywBAX8gACgCECICQRBqIAEgAigCABEDACICBEAgAkEAIAEQKw8LIAAQfCACCxwBAX8gACABEDgEf0EABSAAQZvMAEEAEBVBfwsLQwEDfwJAIAJFDQADQCAALQAAIgQgAS0AACIFRgRAIAFBAWohASAAQQFqIQAgAkEBayICDQEMAgsLIAQgBWshAwsgAwsNACAAIAEgARA/EJMCC20BAX8jAEGAAmsiBSQAIARBgMAEcSACIANMckUEQCAFIAFB/wFxIAIgA2siA0GAAiADQYACSSIBGxArGiABRQRAA0AgACAFQYACEFsgA0GAAmsiA0H/AUsNAAsLIAAgBSADEFsLIAVBgAJqJAALDAAgAEGAAmogARARC74BAgF+AX8CQAJAIAFCgICAgHCDQoCAgIAwUQRAIAAoAiggAkEDdGopAwAiA0IgiKdBdEsNAQwCCyAAIAFBOyABQQAQFCIDQoCAgIBwg0KAgICA4ABRBEAgAw8LIANC/////29WDQEgACADEA8gACABEIADIgRFBEBCgICAgOAADwsgBCgCKCACQQN0aikDACIDQiCIp0F1SQ0BCyADpyIEIAQoAgBBAWo2AgALIAAgAyACEEkhASAAIAMQDyABC3UBAX4gACABIAR+IAIgA358IANCIIgiAiABQiCIIgR+fCADQv////8PgyIDIAFC/////w+DIgF+IgVCIIggAyAEfnwiA0IgiHwgASACfiADQv////8Pg3wiAUIgiHw3AwggACAFQv////8PgyABQiCGhDcDAAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtVAQN/IAEgAkEFdSIESwRAIAAgBEECdGooAgAhAwsgAkEfcSICBH8gASAEQQFqIgRLBH8gACAEQQJ0aigCAAVBAAtBAXQgAkEfc3QgAyACdnIFIAMLC2QAAkACQCABQQBIDQAgACgCrAIgAUwNACAAKAKkAiABQRRsaiIAIAAoAgAgAmoiADYCACAAQQBIDQEgAA8LQYUpQa78AEHIqAFBlNUAEAAAC0GmjgFBrvwAQcuoAUGU1QAQAAALYAAgACABIAJCgICAgAh8Qv////8PWAR+IAJC/////w+DBUKAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLIANBh4ABEL0BCwwAIABBhvsAQQAQFQsLACAAIAFBARDBBQvSEAIMfwF+IwBBEGsiCiQAAkACQCABQv////9vWARAIAAQJAwBCyAGQYAwcSIORSAGIAZBCHYiEHEgEEF/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A6ciAiACKAIAQQFqNgIACyAAIAkgAyAGEMsFIQILIAZBggRxQYAERgRAIAogCSgCECIGQTBqNgIMQX8hByAAIAkgCkEMaiAGKAIwQRp2QT1xEJEDDQULIAIhBwwECyAMBEAgACAIKQMAEA8gA0IgiKdBdU8EQCADpyICIAIoAgBBAWo2AgALIAggAzcDAAsgBkGABHFFDQBBfyEHIAAgCSAKQQxqIAooAgwoAgBBGnZBPXEgBkECcXIQkQMNAwtBf0EBIAAgCSAKQQxqIBBBBXEiAEF/cyAKKAIMKAIAQRp2cSAAIAZxchCRAxshBwwCCyAAIAZB4ekAEG8hBwwBC0F/IQcLIApBEGokACAHC/8BAgJ/AXwjAEEQayIEJAACQCACQiCIpyIDQQJNBEAgASACp7c5AwBBACEADAELIANBB2tBbU0EQCABIAJCgICAgMCBgPz/AHw3AwBBACEADAELAn8gACACEI0BIgJCgICAgHCDQoCAgIDgAFEEQEQAAAAAAAD4fyEFQX8MAQsCfAJAAkBBByACQiCIpyIDIANBB2tBbkkbIgNBCmpBAk8EQCADQQdGDQIgAw0BIAKntwwDCyACp0EEaiAEQQhqELUFIAAgAhAPIAQrAwghBUEADAMLEAEACyACQoCAgIDAgYD8/wB8vwshBUEACyEAIAEgBTkDAAsgBEEQaiQAIAALXQECfyMAQRBrIgMkAAJAIAFBgIABcUUEQCABQYCAAnFFDQEgACgCECgCjAEiAUUNASABLQAoQQFxRQ0BCyADQQA2AgwgAEEEIAJBABCSBEF/IQQLIANBEGokACAEC8YJAgR/BX4jAEHwAGsiBiQAIARC////////////AIMhCQJAAkAgAVAiBSACQv///////////wCDIgpCgICAgICAwP//AH1CgICAgICAwICAf1QgClAbRQRAIANCAFIgCUKAgICAgIDA//8AfSILQoCAgICAgMCAgH9WIAtCgICAgICAwICAf1EbDQELIAUgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgCkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACAC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IAAgAaciAkEAIAIoAgRB/////wdxEFEhAiAAKAIAIAEQDyACC7UCAQd/IwBBEGsiBSQAAkAgAEFAaygCACIBRQRADAELAkAgAQJ/IAEoAsgBIgQgASgCxAEiAkgEQCABKALMASEDIAQMAQsgBEEBaiIDIAJBA2xBAm0iAiACIANIGyIGQQN0IQIgACgCACEDAkAgASgCzAEiByABQdABakYEQCADQQAgAiAFQQxqEKgBIgNFDQMgAyABKALMASABKALIAUEDdBAfGgwBCyADIAcgAiAFQQxqEKgBIgNFDQILIAUoAgwhAiABIAM2AswBIAEgAkEDdiAGajYCxAEgASgCyAELQQFqNgLIASADIARBA3RqIgIgASgCvAE2AgAgAiABKALAATYCBCAAQbQBEBAgAEFAaygCACAEQf//A3EQFyABIAQ2ArwBDAELQX8hBAsgBUEQaiQAIAQLoQECA38BfiMAIQYCQCACQoCAgIBwVA0AIAKnIgUvAQZBMEcNACAFKAIgIQQLAn8gBiAAKAIQKAJ4SQRAIAAQ6QFBAAwBCyAELQARBEAgABC2AkEADAELQQAgACAEKQMIIgIgAyACQQAQFCIHQoCAgIBwgyICQoCAgIDgAFENABogAUKAgICAMCAHIAJCgICAgCBRGzcDACAECyEFIAYkACAFCxYAIAAgASACIAMgBCAFIAApAzAQ8QELKQEBfyMAQRBrIgIkACACIAA2AgwgAkEMaiABEJMEIQAgAkEQaiQAIAALngICA38BfiACIAEpAgQiB6dB/////wdxIANHckUEQCABIAEoAgBBAWo2AgAgAa1CgICAgJB/hA8LIAFBEGohBSAHQoCAgIAIg1AgAyACayIEQQBMckUEQCADIAIgAiADSBshBkEAIQMgAiEBA0AgASAGRkUEQCAFIAFBAXRqLwEAIANyIQMgAUEBaiEBDAELCyADQf//A3FBgAJPBEAgACAFIAJBAXRqIAQQ7gMPC0EAIQEgACAEQQAQ6gEiAEUEQEKAgICA4AAPCyAAQRBqIQMDQCABIARGRQRAIAEgA2ogBSABIAJqQQF0ai0AADoAACABQQFqIQEMAQsLIAMgBGpBADoAACAArUKAgICAkH+EDwsgACACIAVqIAQQhAMLugEBAn8CQAJAIAJC/////wdYBEAgACABIAKnQYCAgIB4chBx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IANBCGogAhDiA0UEQEEAIQQgASADKQMIIgJCgICAgICAgBBaBH4gAEGAIEEAEFBBfyEEQgAFIAILNwMACyADQRBqJAAgBAsRACAAIAEgASACIANBAhCKBAtTAQF/IAAoAhAiBEEQaiABIAIgBCgCCBEBACIBIAJFckUEQCAAEHwgAQ8LIAMEQCADIAEgACgCECgCDBEEACIAIAJrIgJBACAAIAJPGzYCAAsgAQvAAQAgAAJ/IAEoAggiAEH+////B04EQEEAIAJBAXENARpB/////wcgAEH+////B0cNARogASgCBEH/////B2oMAQtBACAAQQBMDQAaIABBH00EQEEAIAEoAhAgASgCDEECdGpBBGsoAgBBICAAa3YiAmsgAiABKAIEGwwBCyACQQFxRQRAQYCAgIB4Qf////8HIAEoAgQbDAELQQAgASgCECABKAIMIgIgAkEFdCAAaxBoIgJrIAIgASgCBBsLNgIACw0AIAAgASABED8QhQML+QECA34CfyMAQRBrIgUkAAJ+IAG9IgNC////////////AIMiAkKAgICAgICACH1C/////////+//AFgEQCACQjyGIQQgAkIEiEKAgICAgICAgDx8DAELIAJCgICAgICAgPj/AFoEQCADQjyGIQQgA0IEiEKAgICAgIDA//8AhAwBCyACUARAQgAMAQsgBSACQgAgA6dnQSBqIAJCIIinZyACQoCAgIAQVBsiBkExahBnIAUpAwAhBCAFKQMIQoCAgICAgMAAhUGM+AAgBmutQjCGhAshAiAAIAQ3AwAgACACIANCgICAgICAgICAf4OENwMIIAVBEGokAAu2AQEBfyMAQRBrIgMkAAJAAkAgAkEASARAIAEgAkH/////B3E2AgBBASECDAELIAAoAhAiACgCLCACTQ0BAn8CQCAAKAI4IAJBAnRqKAIAIgApAgRCgICAgICAgIBAg0KAgICAgICAgMAAUg0AIANBDGogABC9BUUNAEEBIAMoAgwiAEF/Rw0BGgtBACEAQQALIQIgASAANgIACyADQRBqJAAgAg8LQe/fAEGu/ABBvxhBryAQAAAL1QECAn8DfgJ/IAJFBEBCgICAgDAhBUEADAELIAAoAhAiAykDgAEhBSADQoCAgIAgNwOAAUF/CyEDAkAgACABQQYgAUEAEBQiB0KAgICAcIMiBkKA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BUEgahBGQX8MAQsCQCABKAIEIARODQAgASAENgIEIARB//8DSA0AIAUgAjYCBCAFIAM2AgAgAEGjkwEgBRBGQX8MAQsgASgCCCACQQF0aiIDLwEAIgZB//8DRwRAQQAgBCAGRg0BGiAFIAI2AhggBSAENgIUIAUgBjYCECAAQdSSASAFQRBqEEZBfwwBCyADIAQ7AQBBfyAAIAFBDGpBBCABQRRqIAEoAhBBAWoQeA0AGiABIAEoAhAiAEEBajYCECABKAIMIABBAnRqIAI2AgBBAAshAyAFQTBqJAAgAwsTACAAIAEgAiADIARBAEEAEPgBCzkAIABB/wBNBEAgAEEDdkH8////AXFBoIECaigCACAAdkEBcQ8LIABBfnFBjMAARiAAENIEQQBHcgtmAQF/An9BACAAKAIIIgIgAU8NABpBfyAAKAIMDQAaIAAoAhQgACgCACACQQNsQQF2IgIgASABIAJJGyIBIAAoAhARAQAiAkUEQCAAQQE2AgxBfw8LIAAgATYCCCAAIAI2AgBBAAsLrAECAX8BfiAAKQIEIgSnQf////8HcSEDAkACQCAEQoCAgIAIg1BFBEAgAiADIAIgA0obIQMgAEEQaiEAA0AgAiADRg0CIAAgAkEBdGovAQAgAUYNAyACQQFqIQIMAAsACyABQf8BSw0AIAIgAyACIANKGyEDIABBEGohACABQf8BcSEBA0AgAiADRg0BIAAgAmotAAAgAUYNAiACQQFqIQIMAAsAC0F/IQILIAILpgEBAX8jAEEQayIDJAAgAyACNwMIAkAgACABQYYBIAFBABAUIgJCgICAgHCDQoCAgIDgAFENACAAIAIQOARAIAAgAiABQQEgA0EIahAvIgJC/////29WIAJCgICAgLB/g0KAgICAIFFyDQEgACACEA8gAEGK0wBBABAVQoCAgIDgACECDAELIAAgAhAPIAAgASADIANBCGoQ8QQhAgsgA0EQaiQAIAILowECA38BfiAAQRBqIQIgASgCACIEQQFqIQMCQCAAKQIEIgVCgICAgAiDUEUEQCACIARBAXRqLwEAIgBBgPgDcUGAsANHIAMgBadB/////wdxTnINASACIANBAXRqLwEAIgJBgPgDcUGAuANHDQEgAEEKdEGA+D9xIAJB/wdxckGAgARqIQAgBEECaiEDDAELIAIgBGotAAAhAAsgASADNgIAIAALUQEDfwJAA0AgAUKAgICAcFQNASABpyICLwEGIgRBMEYEQCACKAIgIgJFDQIgAi0AEQRAIAAQtgJBfw8LIAIpAwAhAQwBCwsgBEECRiEDCyADCxIAIAAgASACIAMgBEHKABCkBAtOAQF/IAAoAgwiBEUEQEEADwsgACAAKAIIQf////8DQYGAgIB8IAEgAUGBgICAfEwbIgEgAUH/////A04bajYCCCAAIAIgAyAEQQAQqgMLJQAgACABIAAoAhAoAowBIgAEfyAAKAIoQQJ2QQFxBUEACxCWBQsfAQF/IAAoAgwiA0UEQEEADwsgACABIAIgA0EAEKoDC90BAgJ/An4CQCAAIAApAzBBDxBJIghCgICAgHCDQoCAgIDgAFENACAAIARBA3RBCGoQKSIGRQRAIAAgCBAPDAELIAYgAzsBBiAGIAQ6AAUgBiACOgAEIAYgATYCAEEAIQMgBEEAIARBAEobIQEDQCABIANHBEAgBSADQQN0IgRqKQMAIglCIIinQXVPBEAgCaciByAHKAIAQQFqNgIACyAEIAZqIAk3AwggA0EBaiEDDAELCyAIQoCAgIBwWgRAIAinIAY2AiALIAAgCEEvIAIQlgMgCA8LQoCAgIDgAAuDCwIHfwF+IwBBIGsiCSQAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAIAFCIIinQQFqDgUDAgIAAQILIAAgAxAPIAAgAkHm0wAQjwFBfyEFDAoLIAAgAxAPIAAgAkHR+AAQjwFBfyEFDAkLIAAgARCNBKchBgwBCyABpyEGAkADQCAGKAIQIgdBMGohCCAHIAcoAhggAnFBf3NBAnRqKAIAIQUDQCAFRQRAIAYhB0EADAULIAIgCCAFQQFrQQN0IgdqIgUoAgRHBEAgBSgCAEH///8fcSEFDAELCyAGKAIUIAdqIQcgBSgCACIIQYCAgMB+cUGAgIDAAEYEQCAAIAcgAxAgDAULAkAgCEGAgICAAnEEQCAGLwEGQQJHDQEgAkEwRw0DIAAgBiADIAQQywUhBQwLCyAIQRp2QTBxIghBMEcEQCAIQSBHBEAgCEEQRw0IIAAgBygCBCABIAMgBBCLAyEFDAwLIAYvAQZBC0YNByAAIAcoAgAoAhAgAxAgDAYLIAAgBiACIAcgBRDIAkUNAQwJCwtB2YABQa78AEGPwgBBuNYAEAAAC0HK2ABBrvwAQZDCAEG41gAQAAALQQELIQUDQAJAAkAgBUUEQAJAIAYtAAUiBUEEcUUNAAJAIAVBCHEEQCACQQBIBEAgAkH/////B3EiBSAGKAIoTw0CIAYgB0cNBSAAIAEgBa0gAyAEENcBIQUMDQsgBi8BBkEVa0H//wNxQQpLDQIgACACEJ4DIghFDQJBfyEFIAhBAE4NCQwKCyAAKAIQKAJEIAYvAQZBGGxqKAIUIgVFDQEgBSgCGCIIBEAgBiAGKAIAQQFqNgIAIAAgBq1CgICAgHCEIgwgAiADIAEgBCAIES0AIQUgACAMEA8MCgsgBSgCACIFRQ0BIAYgBigCAEEBajYCACAAIAkgBq1CgICAgHCEIgwgAiAFERcAIQUgACAMEA8gBUEASA0JIAVFDQEgCS0AAEEQcQRAIAAgCSkDGCIMp0EAIAxCgICAgHCDQoCAgIAwUhsgASADIAQQiwMhBSAAIAkpAxAQDyAAIAkpAxgQDwwMCyAAIAkpAwgQDyAJLQAAQQJxRQ0HIAYgB0cNAyAAIAEgAiADQoCAgIAwQoCAgIAwQYDAABBtIQUMCQsgBi8BBkEVa0H//wNxQQtJDQcLIAYoAhAoAiwhBkEBIQUMAwsgBkUNAANAIAYoAhAiBUEwaiEKIAUgBSgCGCACcUF/c0ECdGooAgAhBQNAIAVFDQMgAiAKIAVBAWtBA3QiBWoiCCgCBEcEQCAIKAIAQf///x9xIQUMAQsLIAYoAhQgBWohCgJAIAgoAgAiBUEadkEwcSILQTBHBEAgC0EQRw0BIAAgCigCBCABIAMgBBCLAyEFDAsLQX8hBSAAIAYgAiAKIAgQyAJFDQEMCgsLIAVBgICAwABxDQEMBAsgBEGAgARxBEAgACADEA8gACACEMcCQX8hBQwICyAHRQRAIAAgAxAPIAAgBEGAMRBvIQUMCAsgBy0ABSIGQQFxRQRAIAAgAxAPIAAgBEH36AAQbyEFDAgLIAZBBHEEQAJAIAJBAE4NACAGQQhxRSAHLwEGQQJHcg0AIAcoAiggAkH/////B3FHDQAgACAHIAMgBBD9AyEFDAkLIAAgByACIANCgICAgDBCgICAgDAgBEGHzgByEIEEIQUMBgsgACAHIAJBBxB6IgJFDQYgAiADNwMADAILQQAhBQwACwALQQEhBQwECyAAIAMQDyAAIAQgAhDAAiEFDAMLIAAgACADEI0BIgEQD0F/IQUgAUKAgICAcINCgICAgOAAUQ0CIAAgBEGUIBBvIQUMAgsgACADEA8MAQsgACADEA9BfyEFCyAJQSBqJAAgBQsOACAAQQAgAUEQchDOAQthACAAIAEgAkKAgICACHxC/////w9YBH4gAkL/////D4MFQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsgAyAEQQdyEL0BC6sBAQh/IAAoAggiAyABKAIIIgJHBEBBf0EBIAIgA0obDwsgASgCDCIFIAAoAgwiBiAFIAUgBkgbIgJrIQggBiACayEJAn8DQEEAIAJBAWsiAkEASA0BGkEAIQNBACEEIAIgCWoiByAGSQRAIAAoAhAgB0ECdGooAgAhBAsgAiAIaiIHIAVJBEAgASgCECAHQQJ0aigCACEDCyADIARGDQALQX9BASADIARLGwsLigEBAn8gASgCECIDLQAQRQRAQQAPCwJAIAMoAgBBAUcEQCACBH8gAigCACADa0Ewa0EDdQVBAAshBCAAIAMQzgUiA0UEQEF/DwsgACgCECABKAIQEJECIAEgAzYCECACRQ0BIAIgAyAEQQN0akEwajYCAEEADwsgACgCECADEJAEIANBADoAEAtBAAt7AQF/QX8hBAJAIAAgARAlIgFCgICAgHCDQoCAgIDgAFENACAAIAGnIAIQ+QMhBCAAIAEQDyAEDQAgA0GAgAFxRQRAQQAhBCADQYCAAnFFDQEgACgCECgCjAEiAkUNASACLQAoQQFxRQ0BCyAAQawbQQAQFUF/IQQLIAQLNQAgACACQTAgAkEAEBQiAkKAgICAcINCgICAgOAAUQRAIAFBADYCAEF/DwsgACABIAIQmAELxAUBBH8jAEEgayIIJAACQAJAAkACQAJAIAFCgICAgHBUIAJC/////w9Wcg0AIAKnIQYCQAJAAkACQAJAAkACQAJAAkACQCABpyIFLwEGQQJrDh4ACgoKCgoJCgoKCgoKCgoKCgoKBwYGBQUEBAMDAgEKCyAFKAIoIgcgBksNCyAGIAdHDQkgBS0ABUEJcUEJRw0JIAUoAhAhBgNAAkAgBigCLCIHBEAgBygCECEGAkAgBy8BBkEBaw4CAAINCyAGLQARRQ0CDAwLIAAgBSADIAQQ/QMhBwwPCyAHLQAFQQhxDQALDAkLQX8hByAAIAhBGGogAxBuDQwgBSgCKCAGTQ0GIAUoAiQgBkEDdGogCCsDGDkDAAwLC0F/IQcgACAIQRhqIAMQbg0LIAUoAiggBk0NBSAFKAIkIAZBAnRqIAgrAxi2OAIADAoLIAAgCEEIaiADEMUFDQcgBSgCKCAGTQ0EIAUoAiQgBkEDdGogCCkDCDcDAAwJC0F/IQcgACAIQRRqIAMQmAENCSAFKAIoIAZNDQMgBSgCJCAGQQJ0aiAIKAIUNgIADAgLQX8hByAAIAhBFGogAxCYAQ0IIAUoAiggBk0NAkEBIQcgBSgCJCAGQQF0aiAIKAIUOwEADAgLQX8hByAAIAhBFGogAxCYAQ0HIAUoAiggBk0NASAFKAIkIAZqIAgoAhQ6AAAMBgtBfyEHIAAgCEEUaiADEMQFDQYgBSgCKCAGTQ0AIAUoAiQgBmogCCgCFDoAAAwFCyAAIARBlCAQbyEHDAULIAUoAiggBk0NACAAIAUoAiQgBkEDdGogAxAgDAMLIAAgAhAxIQUgACACEA8gBUUEQCAAIAMQDwwBCyAAIAEgBSADIAQQ0AEhByAAIAUQEwwDC0F/IQcMAgsgACAFKAIkIAZBA3RqIAMQIAtBASEHCyAIQSBqJAAgBwuuyAEDJn8HfgN8IwBBoAFrIgghDiAIJAAgACgCECEWQoCAgIDgACEuAkAgABB7DQACfwJAAkACQAJAAkAgAUL/////b1gEQCAGQQRxRQ0BIAGnIgcoAjwhCCAHKAIYIhooAiQhFCAaKAIgIhMoAjAhBiATLwEqIQ0gB0EANgI8IAcgFigCjAE2AhAgBygCICEVIAcoAjAhCiAHKAIkIREgFiAHQRBqIhI2AowBIBEgDUEDdGohHCAVIRcgCiENIAcoAgxFDQQMBQsgAaciGi8BBiIHQQ1GDQIgFigCRCAHQRhsaigCECIIDQELIABBm8wAQQAQFQwFCyAAIAEgAiAEIAUgBiAIERYAIS4MBAsgFigCeCAOIBooAiAiEy8BLiATLwEqIgtqIBMvASgiByAHQQAgBCAHSBsgBkECcUEBdhsiBmpBA3QiFWtLBEAgABDpAQwECyATLQAQIQogDiAOQcgAaiIXNgJMIA4gBDYCVCAOIAo2AlggDiAXNgJIIA4gATcDOCAaKAIkIRQgCCAVQQ9qQfD//wFxayIXJAAgBSEVIAYEQCAHIAQgByAEIAdIGyIIQQAgCEEAShsiCGsiFUEAIAcgFU8bIREDQAJAIAggCUYEQANAIAggEUYNAiAXIAhBA3RqQoCAgIAwNwMAIAhBAWohCAwACwALIAUgCUEDdCIVaikDACIBQiCIp0F1TwRAIAGnIgogCigCAEEBajYCAAsgFSAXaiABNwMAIBFBAWohESAJQQFqIQkMAQsLIA4gBzYCVCAXIRULIA4gFTYCQCAOIBcgBkEDdGoiETYCREEAIQgDQCAIIAtHBEAgESAIQQN0akKAgICAMDcDACAIQQFqIQgMAQsLIBMoAhQhCiAOIBYoAowBNgIwIBYgDkEwaiISNgKMASATKAIwIQYgESALQQN0aiIIIRwLQQAMAQtBAQshBwNAAkACQAJAAkAgB0UEQCAEQQN0IScgA0KAgICAcIMhMyARQQhqIR0gEUEQaiEeIBFBGGohHyAVQQhqISAgFUEQaiEhIBVBGGohIiASQRhqISggBkHIAWohGyAcQRhqISkgBkHAAWohGSACQiCIpyIkQX5xISogA0IgiKchKyAErSEyIAOnISUgDkEwaiEsIA5B6ABqISYgCCEHAkADQAJAIApBAWohDUIBIS5CgICAgDAhAQJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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ajYCAAsgCCABNwMIIAhBCGspAwAiAUIgiKdBdU8EQCABpyIHIAcoAgBBAWo2AgALIAggATcDECAIQRhqIQcM2wELIAggCEEIayIHKQMANwMAIAhBEGspAwAiAUIgiKdBdU8EQCABpyIKIAooAgBBAWo2AgALIAcgATcDACAIQQhqIQcM2gELIAggCEEIayIHKQMAIgE3AwAgByAIQRBrIgcpAwA3AwAgAUIgiKdBdU8EQCABpyIKIAooAgBBAWo2AgALIAcgATcDACAIQQhqIQcM2QELIAggCEEIayIHKQMAIgE3AwAgCEEQayIKKQMAIS0gCiAIQRhrIgopAwA3AwAgByAtNwMAIAFCIIinQXVPBEAgAaciByAHKAIAQQFqNgIACyAKIAE3AwAgCEEIaiEHDNgBCyAIIAhBCGsiBykDACIBNwMAIAhBEGsiCikDACEtIAogCEEYayIKKQMANwMAIAcgLTcDACAKIAhBIGsiBykDADcDACABQiCIp0F1TwRAIAGnIgogCigCAEEBajYCAAsgByABNwMAIAhBCGohBwzXAQsgCEEQayIHKQMAIQEgByAIQRhrIgcpAwA3AwAgByABNwMADNABCyAIQRhrIgcpAwAhASAHIAhBEGsiBykDADcDACAIQQhrIgopAwAhLSAKIAE3AwAgByAtNwMADM8BCyAIQSBrIgcpAwAhASAHIAhBGGsiBykDADcDACAIQRBrIgopAwAhLSAKIAhBCGsiCikDADcDACAHIC03AwAgCiABNwMADM4BCyAIQShrIgcpAwAhASAHIAhBIGsiBykDADcDACAIQRhrIgopAwAhLSAKIAhBEGsiCikDADcDACAHIC03AwAgCiAIQQhrIgcpAwA3AwAgByABNwMADM0BCyAIQQhrIgcpAwAhASAHIAhBEGsiBykDADcDACAIQRhrIgopAwAhLSAKIAE3AwAgByAtNwMADMwBCyAIQRBrIgcpAwAhASAHIAhBGGsiBykDADcDACAIQSBrIgopAwAhLSAKIAE3AwAgByAtNwMADMsBCyAIQRBrIgcpAwAhASAHIAhBGGsiBykDADcDACAIQSBrIgopAwAhLSAKIAhBKGsiCikDADcDACAHIC03AwAgCiABNwMADMoBCyAIQQhrIgcpAwAhASAHIAhBEGsiBykDADcDACAHIAE3AwAMyQEL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ayIHKQMAIgFC/////z9YBEAgAacMAQsgBiABECYLBH8gCQUgDSgAACAJakEEawshDSAGEHtFDXUMJwsgCkECaiEJAn8gCEEIayIHKQMAIgFC/////z9YBEAgAacMAQsgBiABECYLBH8gDSwAACAJakEBawUgCQshDSAGEHtFDXQMJgsgCkECaiEJAn8gCEEIayIHKQMAIgFC/////z9YBEAgAacMAQsgBiABECYLBH8gCQUgDSwAACAJakEBawshDSAGEHtFDXMMJQsgCCANIAooAAFqIBMoAhRrrUKAgICA0ACENwMAIApBBWohDSAIQQhqIQcMcgsgCigAASEHIAggCiATKAIUa0EFaq03AwAgByANaiENIAhBCGohBwxxCwJAIAhBCGsiBykDACIBQv////8PVg0AIAGnIgkgEygCGE8NACATKAIUIAlqIQ0McQsgBkH14QBBABBGDHQLIAhBCGsiDykDACItQiCIpyIHQQFqIglBBE1BAEEBIAl0QRlxG0UEQCAGIC0Q3AUhLQsCQCAGQRgQKSIJBEAgBkKAgICAIEEREEkiLkKAgICAcINCgICAgOAAUg0BIAYoAhAiB0EQaiAJIAcoAgQRAAALIC0hLgxlCyAJQQA2AhAgCSAtNwMAIAlBADYCCCAupyAJNgIgIAdBfnFBAkYNZSAtIgFCIIinIgdBdU8EQCAtpyILIAsoAgBBAWo2AgALA0AgBiABEIwCIgFCgICAgHCDIi9CgICAgCBSBEAgL0KAgICA4ABRDWYgBiAOQeAAaiAOQYABaiABp0EREI4BDWUgBiAOKAJgIA4oAoABIgsQWiALBEAgBiABEA8gB0F1SQ1lIC2nIgcgBygCAEEBajYCAAxlCyAGEHtFDQEMZQsLAkACQCAtpyIMLQAFQQhxRQ0AQQAhByAMKAIQIgsoAiAiEEEAIBBBAEobIRAgC0EwaiELA0AgByAQRg0CIAstAANBEHENASALQQhqIQsgB0EBaiEHDAALAAsgBiAOQeAAaiAOQYABaiAMQREQjgENZUEAIQcgDigCYCEKIA4oAoABIQkDQCAHIAlHBEAgBiAuIAogB0EDdGooAgRCgICAgCBBABDQARogB0EBaiEHDAELCyAGIAogCRBaDGYLIAlBATYCCCAJIAwoAig2AgwMZQtCgYCAgBAhLgJAIAhBCGspAwAi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/wB8v6G9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhs3AwAMSAsCfCAIQQhrIgcpAwAiLUIgiKciDCAIQRBrIgspAwAiLkIgiKciD3JFBEAgLcQgLsR+IgFCgICAgAh8QoCAgIAQWgRAIBItAChBBHFBACABQoCAgICAgIAQfUKBgICAgICAYFQbDQUgAbkMAgtEAAAAAAAAAIAgLSAuhEKAgICACINQIAFCAFJyRQ0BGiALIAFC/////w+DNwMADEkLIA9BB2tBbUsgDEEHa0FtS3INAyASLQAoQQRxDQMgLkKAgICAwIGA/P8AfL8gLUKAgICAwIGA/P8AfL+iCyE0IAtCgICAgMB+IDS9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhs3AwAMRwsgCEEIayIHKQMAIgEgCEEQayILKQMAIi2EQv////8PVg0BIBItAChBBHENASALAn4gLae3IAGnt6MiNL0iAQJ/IDSZRAAAAAAAAOBBYwRAIDSqDAELQYCAgIB4CyIIt71RBEAgCK0MAQtCgICAgMB+IAFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLNwMADEYLIAhBCGsiBykDACIBIAhBEGsiCykDACIthEL/////D1YNACAtpyIMQQBIDQAgAaciD0EATA0AIAsgDCAPcK03AwAMRQsjAEEgayIHJAACfwJAAkACQAJAAn4CQAJAAkACQAJAAkACQEEHIAhBEGsiCykDACIBQiCIpyIMIAxBB2tBbkkbIgxBB0dBByAIQQhrIiMpAwAiLkIgiKciDyAPQQdrQW5JGyIPQQdHckUEQCAHIC5CgICAgMCBgPz/AHw3AwggByABQoCAgIDAgYD8/wB8NwMQDAELAkAgDEF/RiAPQX5xQQJHcUUgDEF+cUECRiAPQX9HcnENACAGIAdBGGogASAuIAlBAUEAEIUCIgxFDQAgBiABEA8gBiAuEA8gDEEASA0MIAsgBykDGDcDAAwJCyAGIAEQbCIBQoCAgIBwg0KAgICA4ABRDQogBiAuEGwiLkKAgICAcINCgICAgOAAUQRAIAYgARAPDAwLQQcgAUIgiKciDCAMQQdrQW5JGyIMQQcgLkIgiKciDyAPQQdrQW5JGyIPckUEQCAupyEMIAGnIQ8CQAJAAkACQAJAAkAgCUGaAWsOBgABAgkFAwQLIC7EIAHEfiEtAkAgBigCECIQKAKMASIYRQ0AIBgtAChBBHFFDQAgLUKAgICAgICAEH1CgYCAgICAgGBUDQgLQgAhASAtQgBSDQogDCAPckEATg0LIAtCgICAgMD+/wM3AwAMDgsgBigCECIQKAKMASIYBEAgGC0AKEEEcQ0HCyALQoCAgIDAfiAPtyAMt6O9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhs3AwAMDQsgDEEASiAPQQBOcUUEQCALAn4gD7cgDLcQjgMiNL0iAQJ/IDSZRAAAAAAAAOBBYwRAIDSqDAELQYCAgIB4CyIJt71RBEAgCa0MAQtCgICAgMB+IAFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLNwMADA0LIA8gDHCtIS0MCAsgBigCECIQKAKMASIYBEAgGC0AKEEEcQ0FCyAPtyE0IAsCfgJ8IAy3IjW9QoCAgICAgID4/wCDQoCAgICAgID4/wBRBEBEAAAAAAAA+H8gNJlEAAAAAAAA8D9hDQEaCyA0IDUQjwMLIjS9IgECfyA0mUQAAAAAAADgQWMEQCA0qgwBC0GAgICAeAsiCbe9UQRAIAmtDAELQoCAgIDAfiABQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbCzcDAAwLCyAJQbIBRg0FDAQLIAHEIC7EfSEtDAULIAxBdUcgD0F1R3FFBEAgBiAJIAsgASAuIAYoAhAoAtgCERoADQwMCQsgDEF3RyAPQXdHcUUEQCAGIAkgCyABIC4gBigCECgCvAIRGgBFDQkMDAsgDEF2RyAPQXZHcUUEQCAGKAIQIRAMAgsgBiAHQRBqIAEQbg0KIAYgB0EIaiAuEG4NCwsCQCAGKAIQIhAoAowBIgxFDQAgDC0AKEEEcUUNACAHKwMQEL0CRQ0AIAcrAwgQvQINAQsCQAJAAkACQAJAAkACQCAJQZoBaw4GAAECCAUEAwsgBysDECAHKwMIoiE0DAULIAcrAxAgBysDCKMhNAwECyAHKwMQIAcrAwgQjgMhNAwDCyAJQbIBRw0EIAcrAxAgBysDCJkiNRCOAyI0RAAAAAAAAAAAY0UNAiA1IDSgITQMAgsgBysDECE1IAcrAwgiNr1CgICAgICAgPj/AINCgICAgICAgPj/AFEEQEQAAAAAAAD4fyE0IDWZRAAAAAAAAPA/YQ0CCyA1IDYQjwMhNAwBCyAHKwMQIAcrAwihITQLIAtCgICAgMB+IDS9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhs3AwAMBwsgBiAJIAsgASAuIBAoAqACERoARQ0GDAkLEAEACyAMRQ0FIAHEIC7EIgGBIi1CAFkNACAMQQBIBEAgLSABfSEtDAELIAEgLXwhLQsgLUKAgICACHxC/////w9WDQEgLSEBCyABQv////8PgwwBC0KAgICAwH4gLbm9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLIQEgCyABNwMAC0EADAMLIAZBAhCEAgwBCyAGIC4QDwsgC0KAgICAMDcDACAjQoCAgIAwNwMAQX8LIQkgB0EgaiQAIAkNSCAIQQhrIQcMRAsgCEEEaygCACIHRSAHQQdrQW5Jcg09IAghByAGIAhBjQEQ5gFFDUMMRwsCQAJ8IAhBCGsiBykDACIBQiCIpyIJRQRARAAAAAAAAACAIAGnIgpFDQEaRAAAAAAAAOBBIApBgICAgHhGDQEaIAdCACABfUL/////D4M3AwAMPwsgCUEHa0FtSw0BIAFCgICAgMD+/wN9vwshNCAHQoCAgIDAfiA0vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbNwMADD0LIAghByAGIAhBjAEQ5gFFDUIMRgsgCEEIayIHKQMAIgFC/////w9WIAFC/////w+DQv////8HUXJFBEAgByABQgF8Qv////8PgzcDAAw8CyAIIQcgBiAIQY8BEOYBRQ1BDEULIAhBCGsiBykDACIBQv////8PViABQv////8Pg0KAgICACFFyRQRAIAcgAUIBfUL/////D4M3AwAMOwsgCCEHIAYgCEGOARDmAUUNQAxECyAGIAhBCGsiBykDABBsIgFCgICAgHCDQoCAgIDgAFEEQCAHQoCAgIAwNwMADEQLIAcgATcDACABQiCIp0F1TwRAIAGnIgcgBygCAEEBajYCAAsgCCABNwMAIAYgCEEIaiIHIAlBAmsQ5gFFDT8MQwsgCkECaiENIBEgCi0AAUEDdGoiBykDACIBQv////8PViABQv////8Pg0L/////B1FyRQRAIAcgAUIBfEL/////D4M3AwAMOQsgAUIgiKdBdU8EQCABpyIJIAkoAgBBAWo2AgALIA4gATcDYCAGICZBjwEQ5gENQiAGIAcgDikDYBAgDDgLIApBAmohDSARIAotAAFBA3RqIgcpAwAiAUL/////D1YgAUL/////D4NCgICAgAhRckUEQCAHIAFCAX1C/////w+DNwMADDgLIAFCIIinQXVPBEAgAaciCSAJKAIAQQFqNgIACyAOIAE3A2AgBiAmQY4BEOYBDUEgBiAHIA4pA2AQIAw3CyAIQQhrIgcpAwAiAUL/////D1gEQCAHIAFC/////w+FNwMADDcLIAghByMAQRBrIgkkAAJ/AkACQAJAIAhBCGsiCykDACIBQoCAgIBwVA0AIAYgCUEIaiABQZUBEMIFIgxBAEgNASAMRQ0AIAYgARAPIAsgCSkDCDcDAAwCCwJAIAYgARBsIgFCgICAgHCDIi1CgICAgOAAUQ0AIAYoAhAiDCgCjAEiDwR/IA8tAChBBHFBAnYFQQALRSAtQoCAgIDgflJxRQRAIAYgC0GVASABIAwoApwCERsADQEMAwsgBiAJQQRqIAEQmAENACALIAk1AgRC/////w+FNwMADAILIAtCgICAgDA3AwALQX8MAQtBAAshCyAJQRBqJAAgC0UNPAxACwJAAkACQCAIQQhrIgcpAwAiASAIQRBrIgspAwAiLYRC/////w9WDQAgAachCSASLQAoQQRxRQ0BIAlBH0sNACAtIAGGQoCAgIAIfEKAgICAEFQNAgsgBiAIQaABEMMCRQ09DEELIAlBH3EhCQsgCyAtpyAJdK03AwAMOwsgCEEIayIHKQMAIgEgCEEQayIJKQMAIi2EQv////8PWARAIAkCfiAtpyABp3YiCEEATgRAIAitDAELQoCAgIDAfiAIuL0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGws3AwAMOwsjAEEQayIJJAAgCEEIayIMKQMAIS0CfwJAAkAgBiAIQRBrIgspAwAQbCIBQoCAgIBwgyIuQoCAgIDgAFEEQCAGIC0QDwwBCyAGIC0QbCItQoCAgIBw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gICAgOAAIQEgACACKQMAEOgBIgZCgICAgHCDQoCAgIDgAFEEQCAAIAUQDwwGCyAAIAYQDyAGpyAFp0YNBAsgACAFEA8gAEGE5ABBABAVC0KAgICA4AAhAQwDCyACKAIQKAIsIgBFBEBCgICAgCAhAQwDCyAAIAAoAgBBAWo2AgAgAK1CgICAgHCEIQEMAgsgACABEI0EIgFCIIinQXVJDQEgAaciACAAKAIAQQFqNgIADAELIAUhAQsgA0EQaiQAIAELCwAgAEGNIkEAEEYLGgAgACgCECABIAIQ7wQiAUUEQCAAEHwLIAELgAEBAn8CQAJAIAFFDQAgASgCACICQQBMDQEgASACQQFrIgI2AgAgAg0AIAEtAAVBAXEEQCAAIAEpAxgQIwsgASgCCCICIAEoAgwiAzYCBCADIAI2AgAgAUIANwIIIABBEGogASAAKAIEEQAACw8LQdaNAUGu/ABB9ChB6t0AEAAACxIAIAFB3gFOBEAgACABEOgFCwvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEBBfyEEIAAgAlQgASADUyABIANRGw0BIAAgAoUgASADhYRCAFIPC0F/IQQgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAECy0BAX9BASEBAkACQAJAIABBDWsOBAIBAQIACyAAQTRGDQELIABBOEYhAQsgAQsfACAAIAEgACACEKoBIgIgAyAEEBkhBCAAIAIQEyAEC0QBAX9BfyEDIAAgACgCBCACahDGAQR/QX8FIAAoAgAgAWoiAyACaiADIAAoAgQgAWsQnAEgACAAKAIEIAJqNgIEQQALC44BAQF/IAAgBkEMEEkiBkKAgICAcINCgICAgOAAUgRAIAAgACgCAEEBajYCACAGpyIHIAU7ASogByAEOgApIAcgAzoAKCAHIAE2AiQgByAANgIgIAcgBy0ABUHvAXEgBEECa0EESUEEdHI6AAUgACAGIAAgAkHMngEgAhsQqgEiASADEJYDIAAgARATCyAGCykBAX9B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IAAgD0ElEEsiCEUNACAAIANB3QEgA0EAEBQiDkKAgICAcIMiDUKAgICA4ABRDQAgDUKAgICAMFEEQCAAIA8QD0EADAILIAAgDkElEEsiC0UNAAJAIAgoAgRFDQAgCygCBEUNACAAIA8QDyAAIA4QD0EADAILIAQQ9wMhBwJ/IAgoAgAiCiALKAIAIgxGBEAgCCAHQQJ0aigCCAwBCyAKIAxLBEAgCEHUAGogDCAHELgFDAELIAtB3ABqIAogBxC4BQsiCkUEQCAJIAdBAnRBwMABajYCACAAQZL6ACAJEBUMAQsCQCAIKAIEBEACfiAFBEAgACACELkCDAELIAAgAiAGEJACCyICQoCAgIBwg0KAgICA4ABSDQEMAgsgAkIgiKdBdUkNACACpyIIIAgoAgBBAWo2AgALAkAgCygCBARAAn4gBQRAIAAgAxC5AgwBCyAAIAMgBhCQAgsiA0KAgICAcINCgICAgOAAUg0BIAAgAhAPDAILIANCIIinQXVJDQAgA6ciBSAFKAIAQQFqNgIACyAKIAooAgBBAWo2AgAgCSACIAMgBEF+cUGkAUYgB0ENRnEiBRs3AxggCSADIAIgBRs3AxAgACAKrUKAgICAcIRCgICAgDBBAiAJQRBqEC8hDSAAIAIQDyAAIAMQDyANQoCAgIBwgyICQoCAgIDgAFENAAJ+IAdBDEYEQCAAIA0QJiAEQaoBRketQoCAgIAQhAwBCyANIAdBDUcNABpCgICAgBAgAkKAgICAMFENABogACANECYgBEF9cUGkAUZHrUKAgICAEIQLIQMgACAPEA8gACAOEA8gASADNwMAQQEMAQsgACAPEA8gACAOEA8gAUKAgICAMDcDAEF/CyEHIAlBIGokACAHC2MCAX8BfiMAQRBrIgIkACAAAn4gAUUEQEIADAELIAIgAa1CACABZyIBQdEAahBnIAIpAwhCgICAgICAwACFQZ6AASABa61CMIZ8IQMgAikDAAs3AwAgACADNwMIIAJBEGokAAvHAQIBfgF/AkAgACgCECgCjAEiA0UgAUL/////////D3xC/v///////x9Wcg0AIAMoAihBBHFFDQAgAUKAgICACHxC/////w9YBEAgAUL/////D4MPC0KAgICAwH4gAbm9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsPCyAAEJcBIgJCgICAgHCDQoCAgIDgAFIEQCACp0EEaiABELoCRQRAIAIPCyAAIAIQDyAAEHwLQoCAgIDgAAuTAQECfwJ/IAAoAgggAmoiBCAAKAIMSgRAQX8gACAEQQAQtwINARoLAkAgACgCEARAIAJBACACQQBKGyEEA0AgAyAERg0CIAAoAgQgACgCCCADakEBdGogASADai0AADsBECADQQFqIQMMAAsACyAAKAIEIAAoAghqQRBqIAEgAhAfGgsgACAAKAIIIAJqNgIIQQALCyoBAX8gACgCECIDQRBqIAEgAiADKAIIEQEAIgEgAkVyRQRAIAAQfAsgAQtEAQJ/AkAgAEKAgICAcFQNACAApyIDLwEGQQJHDQAgAy0ABUEIcUUNACACIAMoAig2AgAgASADKAIkNgIAQQEhBAsgBAugBAIFfwF+IwBBIGsiBiQAAkACQAJAAkAgAwRAIAFCgICAgGCDQoCAgIAgUg0BDAILIAFCgICAgHBUDQELQQEhBAJAAkAgAkIgiKciCEEBag4EAAICAQILIAKnIQULIAFC/////29YQQAgAxsNAgJAIAGnIgcvAQZBMEYEQCAAIAZBGGogAUHgABCBASIFRQ0DIAUpAwAhCSAGKQMYIgFCgICAgHCDQoCAgIAwUQRAIAAgCSACIAMQiwIhBAwFCyAGIAI3AwggBiAJNwMAIAAgASAFKQMIQQIgBhAvIgFCgICAgHCDQoCAgIDgAFENAyAAIAEQJkUEQCADRQ0CIABBouQAQQAQFQwECyAAIAUpAwAQmQEiA0EASA0DIAMNBCAAIAUpAwAQ6AEiAUKAgICAcINCgICAgOAAUQ0DIAAgARAPIAKnIAGnRg0EIABBhOQAQQAQFQwDCyAHKAIQKAIsIAVGDQMgBy0ABUEBcUUEQCADRQ0BIABB9+gAQQAQFQwDCwJAIAVFDQAgBSEEA0AgBCAHRgRAIANFDQMgAEGu0ABBABAVDAULIAQoAhAoAiwiBA0ACyAIQXVJDQAgAqciAyADKAIAQQFqNgIAC0F/IQQgACAHQQAQ1AENAyAHKAIQIgQoAiwiAwRAIAAgA61CgICAgHCEEA8LIAQgBTYCLEEBIQQMAwtBACEEDAILIAAQJAtBfyEECyAGQSBqJAAgBAsVAQF+IAAgARDoASECIAAgARAPIAILCgAgACABpxDBAgtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAvRCwIEfwR+IwBBoANrIgUkAAJAIAG9IglCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAJQv///////////wCDQoGAgICAgID4/wBaBEAgBUHOwrkCNgKgAgwCCyAFQaACaiEDIAFEAAAAAAAAAABjBEAgBUEtOgCgAiAFQaACakEBciEDCyADQf0cLQAAOgAIIANB9RwpAAA3AAAMAQsCQAJAAkAgBEUEQAJ+IAGZRAAAAAAAAOBDYwRAIAGwDAELQoCAgICAgICAgH8LIgpCgICAgICAgBB9QoGAgICAgIBgVCAKuSABYnINASAFQQA6AOUBIAogCkI/hyIJhSAJfSEJIAKtIQsgBUHlAWohAwNAIAMiAkEBayIDQTBB1wAgCSAJIAuAIgwgC359pyIEQQpIGyAEajoAACAJIAtaIQQgDCEJIAQNAAsgCkIAUwRAIAJBAmsiA0EtOgAACyAFQaACaiADEOUFDAQLRAAAAAAAAAAAIAEgAUQAAAAAAAAAAGEbIQEgBEECRgRAAkAgBUGgAmogASADQQFqIgIQoAMgBWotAJ8CQTVHDQAgBUGgAmogASACEKADIgQgBUGgAWogASACEKADRw0AIAVBoAJqIAVBoAFqIAQQYQ0AIAUtAKACGgsgBUGgAmogASADEKADGgwECyAEQQNxQQFGDQELQREhBkEBIQcDQCAGIAdNBEBBFSEDDAMLIAEgBiAHakEBdiIDIAVBHGogBUEgaiAFQaABaiAFQaACaiICEMkCIAIQ5AUgAWEEQEEBIAMgA0EAShshBgNAIAMiAkECSA0CIAJBAWsiAyAFQaABamotAABBMEYNAAsgAiEGBSADQQFqIQcLDAALAAsgASADQQFqIgIgBUEcaiAFQRhqIAVBoAFqIgYgBUGgAmoQyQICQCADIAZqLQAAQTVHDQAgASACIAVBHGogBUEYaiAFQaABaiIGIAVBoAJqIgcQyQIgASACIAVBFGogBUEQaiAFQSBqIgggBxDJAiAGIAggAhBhDQAgBSgCHCAFKAIURw0AIAUoAhgaCyADIQYLIAEgBiAFQRxqIAVBIGogBUGgAWogBUGgAmoQyQIgBSgCIAR/IAVBLToAoAIgBUGgAmpBAXIFIAVBoAJqCyECIAUoAhwhBwJAIARBBHENACADIAdIIAdBAExyRQRAIAYgB0wEQEEAIQMgByAGayIEQQAgBEEAShshBCACIAVBoAFqIAYQHyAGaiECA0AgAyAERwRAIAJBMDoAACADQQFqIQMgAkEBaiECDAELCyACQQA6AAAMAwsgAiAFQaABaiAHEB8gB2oiAkEuOgAAQQAhAyAGIAdrIgRBACAEQQBKGyEEA0AgAkEBaiECIAMgBEcEQCACIAVBoAFqIAMgB2pqLQAAOgAAIANBAWohAwwBCwsgAkEAOgAADAILIAdBBWpBBUsNACACQbDcADsAAEEAIQNBACAHayEEIAJBAmohAgNAIAMgBEcEQCACQTA6AAAgA0EBaiEDIAJBAWohAgwBCwsgAiAFQaABaiAGEB8gBmpBADoAAAwBCyACIAUtAKABOgAAAkAgBkECSARAIAJBAWohAgwBCyACQS46AAEgAkECaiECQQEhAwNAIAMgBkYNASACIAVBoAFqIANqLQAAOgAAIANBAWohAyACQQFqIQIMAAsACyACQeUAOgAAIAdBAWshAyAHQQBMBH8gAkEBagUgAkErOgABIAJBAmoLIQIgBSADNgIAIwBBEGsiBCQAIAQgBTYCDCMAQZABayIDJAAgA0HAxQRBkAEQHyIDIAI2AiwgAyACNgIUIANB/////wdBfiACayIGIAZB/////wdPGyIGNgIwIAMgAiAGaiICNgIcIAMgAjYCECADQfT7ACAFEJsEIAYEQCADKAIUIgIgAiADKAIQRmtBADoAAAsgA0GQAWokACAEQRBqJAALIAAgBUGgAmoQYiEJIAVBoANqJAAgCQspAQF/IAFCIIinQXVPBEAgAaciAyADKAIAQQFqNgIACyAAIAEgAhCaAQvMAQECfyABIAEoAgAiAkEBayIDNgIAAkAgAkEBTARAIAMNASABLQAQBEAgACABEJAECyABKAIsIgIEQCAAIAKtQoCAgIBwhBAjCyABQTBqIQJBACEDA0AgAyABKAIgT0UEQCAAIAIoAgQQ7AEgA0EBaiEDIAJBCGohAgwBCwsgASgCCCICIAEoAgwiAzYCBCADIAI2AgAgAUIANwIIIABBEGogASABKAIYQX9zQQJ0aiAAKAIEEQAACw8LQY6PAUGu/ABBwyJBq40BEAAAC4QBAQN/IwBBkAFrIgMkACADIAI2AowBAkAgA0GAASABIAIQywIiBEH/AE0EQCAAIAMgBBByDAELIAAgBCAAKAIEakEBahDGAQ0AIAMgAjYCjAEgACgCBCIFIAAoAgBqIAAoAgggBWsgASACEMsCGiAAIAAoAgQgBGo2AgQLIANBkAFqJAALoAMCBH8BfiMAQSBrIgQkACABIAJqIQUgASEDA0ACQCADIAVPDQAgAywAAEEASA0AIANBAWohAwwBCwsCfgJAIAMgAWsiBkGAgICABE8EQCAAQcDaAEEAEEYMAQsgAyAFRgRAIAAgASACEIQDDAILIAAgBEEEaiACED1FBEAgBEEEaiABIAYQiAIaA0AgAyAFSQRAIAMsAAAiAEEATgRAIARBBGogAEH/AXEQOxogA0EBaiEDDAIFAkAgAyAFIANrIARBHGoQWCIBQf//A00EQCAEKAIcIQMMAQsgAUH//8MATQRAIAQoAhwhAyAEQQRqIAFBgIAEa0EKdkGAsANqEIsBGiABQf8HcUGAuANyIQEMAQsDQEH9/wMhASADIAVPDQEgAywAAEFASARAIANBAWohAwwBCwsDQCAFIANBAWoiA00EQCAFIQMMAgsgAywAAEFASA0ACwsgBEEEaiABEIsBGgwCCwALCyAEQQRqEDYMAgsgBCgCBCgCECIAQRBqIAQoAgggACgCBBEAAAtCgICAgOAACyEHIARBIGokACAHC04BA39B0MYEKAIAIgIgAEEHakF4cSIDaiEBQX8hAAJAIANBACABIAJNGw0AIAE/AEEQdEsEQCABEAlFDQELQdDGBCABNgIAIAIhAAsgAAuFAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgAEIKgCIFQvYBfiAAfKdBMHI6AAAgAEL/////nwFWIQIgBSEAIAINAAsLIAWnIgIEQANAIAFBAWsiASACQQpuIgNB9gFsIAJqQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQtWAQF/IAJCIIinQXVPBEAgAqciBSAFKAIAQQFqNgIACyAAIAFBOyACIAMQGRogAUIgiKdBdU8EQCABpyIDIAMoAgBBAWo2AgALIAAgAkE8IAEgBBAZGgvlBQMEfAF/AX4CQAJAAkACfAJAIAC9IgZCIIinQf////8HcSIFQfrQjYIETwRAIAC9Qv///////////wCDQoCAgICAgID4/wBWDQUgBkIAUwRARAAAAAAAAPC/DwsgAETvOfr+Qi6GQGRFDQEgAEQAAAAAAADgf6IPCyAFQcPc2P4DSQ0CIAVBscXC/wNLDQAgBkIAWQRAQQEhBUR2PHk17znqPSEBIABEAADg/kIu5r+gDAILQX8hBUR2PHk17znqvSEBIABEAADg/kIu5j+gDAELAn8gAET+gitlRxX3P6JEAAAAAAAA4D8gAKagIgGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIFtyICRHY8eTXvOeo9oiEBIAAgAkQAAOD+Qi7mv6KgCyIAIAAgAaEiAKEgAaEhAQwBCyAFQYCAwOQDSQ0BQQAhBQsgACAARAAAAAAAAOA/oiIDoiICIAIgAiACIAIgAkQtwwlut/2KvqJEOVLmhsrP0D6gokS326qeGc4Uv6CiRIVV/hmgAVo/oKJE9BARERERob+gokQAAAAAAADwP6AiBEQAAAAAAAAIQCAEIAOioSIDoUQAAAAAAAAYQCAAIAOioaOiIQMgBUUEQCAAIAAgA6IgAqGhDwsgACADIAGhoiABoSACoSEBAkACQAJAIAVBAWoOAwACAQILIAAgAaFEAAAAAAAA4D+iRAAAAAAAAOC/oA8LIABEAAAAAAAA0L9jBEAgASAARAAAAAAAAOA/oKFEAAAAAAAAAMCiDwsgACABoSIAIACgRAAAAAAAAPA/oA8LIAVB/wdqrUI0hr8hAiAFQTlPBEAgACABoUQAAAAAAADwP6AiACAAoEQAAAAAAADgf6IgACACoiAFQYAIRhtEAAAAAAAA8L+gDwtEAAAAAAAA8D9B/wcgBWutQjSGvyIDoSAAIAGhoCAAIAEgA6ChRAAAAAAAAPA/oCAFQRNNGyACoiEACyAAC18BBX8gA0EAIANBAEobIQZBACEDA0AgAyAGRkUEQCAAIANBAnQiBWogASAFaigCACIHIAIgBWooAgAiBWsiCCAEazYCACAFIAdLIAQgCEtyIQQgA0EBaiEDDAELCyAECy8BAX8CQCACQQBIDQAgASACQQV1IgFNDQAgACABQQJ0aigCACACdkEBcSEDCyADC5wBAQR/IwBBEGsiAiQAIAJBJToACkEBIQMgAUGAAk4EQCACQfUAOgALIAIgAUEIdkEPcUGFhgFqLQAAOgANIAIgAUEMdkEPcUGFhgFqLQAAOgAMQQQhAwsgAkEKaiIEIANqIgUgAUEPcUGFhgFqLQAAOgABIAUgAUEEdkEPcUGFhgFqLQAAOgAAIAAgBCADQQJyEIgCGiACQRBqJAALTQEBfwJAIAJCgICAgHBUDQAgAqciAy8BBkEKRw0AIAMpAyAiAkIgiKciA0EAIANBC2pBEkkbDQAgACABIAIQQg8LIABBrTFBABAVQX8LZwICfwF+IABBEGohAyABKAIAIQIDQAJAIAIgACkCBCIEp0H/////B3FODQACfyAEQoCAgIAIg1BFBEAgAyACQQF0ai8BAAwBCyACIANqLQAAC0EgRw0AIAEgAkEBaiICNgIADAELCwu3AQICfgV/QX8hBQJAIAEoAgAiBiAAKQIEIgOnQf////8HcSIHTg0AIABBEGohCCADQoCAgIAIgyEEQgAhAyAGIQADQAJAAkAgACAHRgRAIAchAAwBCwJ/IARQRQRAIAggAEEBdGovAQAMAQsgACAIai0AAAsiCUEwa0EKSQ0BIAAgBkYNAwsgAiADNwMAIAEgADYCAEEAIQUMAgsgAEEBaiEAIAmtIANCCn58QjB9IQMMAAsACyAFC7sDAQV/IAFFBEAgACACQQRxQQhyEN8BDwtBfyEDAkACQCAAIAFBAWsiBCACEJ4CDQAgAkF7cSEFIAJBAXEhBiABQQFrIQcDQCAAKAIQIQECQAJAAkACQAJAAkACQAJAAkACQCAHDgcAAQIDBAUGBwsgAUElRwRAQZoBIQIgAUEqRg0JIAFBL0cNDEGbASECDAkLQbJ/QZx/IAAoAkAtAG5BBHEbIQIMCAtBnQEhAkEAIQMCQCABQStrDgMICgAKC0GeASECDAcLIAFB6QBqIgFBA08NCSABQeAAayECDAYLQQAhAwJAAkACQAJAIAFB5QBqDgMBCwIACwJAIAFBxwBqDgIIAwALQaMBIQICQCABQTxrDgMJCwALC0GlASECDAgLQaQBIQIMBwtBpgEhAgwGC0GnASECDAULIAFB4gBqIgFBBE8NB0Gp16rleiABQQN0diECDAQLQa0BIQIgAUEmRw0GDAMLQa4BIQIgAUHeAEcNBQwCC0GvASECIAFB/ABHDQQMAQtBqAEhAiAGRQ0CC0F/IQMgABASDQEgACAEIAUQngINASAAIAJB/wFxEBAMAAsACyADDwtBAAtCAQF/IABBQGshAwNAIAEgAkxFBEAgAEG1ARAQIAMoAgAgAUH//wNxEBcgAygCACgCzAEgAUEDdGooAgAhAQwBCwsLCQAgAEEAEOEBC9oBAQF/IAAgACgCQCIDIAECfwJAAkACQAJAAkAgAUEnRg0AIAFBzQBGIAFBOkZyRQRAIAFBxQBGDQEgAUEtRw0CIAMtAGxBAUcNAiAAQY3FAEEAEBZBfw8LIAMtAG5BAXEEQCAAQfDrAEEAEBZBfw8LIAFBxQBHDQELIAJBs39GDQMgAkFFRg0BIAJBU0cgAkFLR3ENAiAAQeznAEEAEBZBfw8LIAJBs39GDQIgAkFFRg0AQQEgAkFTRg0DGiACQUtHDQFBAgwDC0EFDAILEAEAC0EGCxCgAUEfdQtTAQR/IAAoAvQBIgJBACACQQBKGyEEQQAhAgJAA0AgAiAERg0BIAEgACgC/AEiBSACQQR0aigCDEcEQCACQQFqIQIMAQsLIAUgAkEEdGohAwsgAwsJACAAQQIQuwML7wEBBH8DQAJAIAIgA0wNACABIANqIgUtAAAiBkECdCIHQYC4AWotAAAhCAJAAkAgBkG2AUcEQCAGQcIBRw0BIAQgBSgAATYCAAwCCyAAIAUoAAEiBUEAEGkNAiAAKAKkAiAFQRRsaigCEEUNAUGrgwFBrvwAQYjwAUHO7QAQAAALIAdBg7gBai0AACIGQRxLDQBBASAGdCIGQYCAgBxxRQRAIAZBgICA4ABxRQRAIAZBgICAggFxRQ0CIAAgBSgAAUF/EGkaDAILIAAgBSgABUF/EGkaCyAAKAIAIAUoAAEQEwsgAyAIaiEDDAELCyADCxoAIABB3gBB2AAgARsQESAAIAJB//8DcRAqC/wBAQd/IwBBEGsiBCQAAkAgBEEMaiAAQbDKA0EbEKQGIgFBAEgNACABQZDLA2ohAiAEKAIMIQEDQCABIQUgAi0AACIBwCIHQQBOAn8gAkEBaiABQT9xIgFBMEkNABogAUEIdCEGIAFBN00EQCAGIAItAAFqQdDfAGshASACQQJqDAELIAItAAIgBkGA8ABrIAItAAFBCHRyakGwEGohASACQQNqC2ohAiABIAVqQQFqIgEgAE0NAAsCQAJAAkAgB0HAAXFBBnYOAwABAwILIAJBAWstAAAhAwwCCyACQQFrLQAAIAAgBWtqIQMMAQtB5gEhAwsgBEEQaiQAIAMLqQcCCX8BfgJAAkACQAJ/IAJBAkwEQCACIAEpAgQiDEI+iKdGBEAgACABEMECIgRB3QFKDQUgASABKAIAQQFrNgIAIAQPCyAAKAI0IAAoAiRBAWsgASACELAFQf////8DcSIHcSIKQQJ0aiEDIAynQf////8HcSEFA0AgAiADKAIAIgRFDQIaAkAgACgCOCAEQQJ0aigCACIDKQIEIgxCIIinQf////8DcSAHRyAMQj6IpyACR3IgDKdB/////wdxIAVHcg0AIAMgASAFELsFDQAgBEHeAUgNBCADIAMoAgBBAWo2AgAMBAsgA0EMaiEDDAALAAsgAkEDRyEHQQMLIQUCQCAAKAI8DQBBACEEIABBEGoiCyAAKAI4QdMBIAAoAixBA2xBAm0iAiACQdMBTBsiAkECdCAAKAIIEQEAIghFDQEgACgCLCIJIQMgCUUEQCALQRAgACgCABEDACIGRQRAIAsgCCAAKAIEEQAADAMLIAZCgICAgICAgIBANwIEIAZBATYCACAGQQA2AAwgCCAGNgIAIAAgACgCKEEBajYCKEEBIQMLIAAgAzYCPCAAIAg2AjggACACNgIsIAkgAiACIAlJGyEEIAJBAWshBgNAIAMgBEYNASAAKAI4IANBAnRqQQEgA0EBaiICQQF0QQFyIAMgBkYbNgIAIAIhAwwACwALAkAgAQRAIAEpAgQiDEL//////////z9YBEAgASAMIAWtQj6GhDcCBAwCCyAAQRBqIAynIgJBH3UgAkH/////B3EgAkEfdnRqQRFqIAAoAgARAwAiAkUEQEEAIQQMBAsgAkEBNgIAIAIgAikCBEL/////d4MgASkCBEKAgICACIOEIgw3AgQgAiAMQoCAgIB4gyABKQIEQv////8Hg4Q3AgQgAkEQaiABQRBqIAEoAgQiA0H/////B3EgA0EfdnQgA0F/c0EfdmoQHxogACABEPYDIAIhAQwBCyAAQRBqQRAgACgCABEDACIBRQRAQQAPCyABQoGAgICAgICAgH83AgALIAAgACgCOCAAKAI8IgRBAnRqIgIoAgBBAXY2AjwgAiABNgIAIAEgBDYCDCABIAE1AgQgB61CIIaEIAWtQj6GhDcCBCAAIAAoAihBAWo2AiggBUEDRg0CIAEgACgCNCAKQQJ0aiIBKAIANgIMIAEgBDYCACAAKAIoIAAoAjBIDQIgACAAKAIkQQF0EPIEGgwCCyABRQ0BCyAAIAEQ9gMgBA8LIAQLCwAgAEH+HEEAEDoLFgAgACABQf8BcRARIAAgAkH/AXEQEQuOBAIIfwN+IwBBMGsiBCQAQoCAgIDgACENIAAgARAlIgxCgICAgHCDQoCAgIDgAFIEQAJAIAACfkKAgICAMCAAIARBLGogBEEoaiAMpyIIIAJBb3EQjgENABpCgICAgOAAIAAQPiINQoCAgIBwg0KAgICA4ABRDQAaIAJBEHEhCSAEKAIsIQUgBCgCKCEGIANBAWshCkEAIQICQANAIAIgBkYNAyAFIAJBA3RqKAIEIQMCQAJAIAkEQCAAIARBCGogCCADEEwiC0EASA0EIAtFDQEgACAEQQhqEEggBCgCCEEEcUUNAQsCQAJAAkACQCAKDgIBAgALIAAgAxBcIgFCgICAgHCDQoCAgIDgAFINAgwGCyAAIAwgAyAMQQAQFCIBQoCAgIBwg0KAgICA4ABSDQEMBQsgABA+IgFCgICAgHCDQoCAgIDgAFENBCAAIAMQXCIOQoCAgIBwg0KAgICA4ABRDQIgACABQgAgDkGHgAEQvQFBAEgNAiAAIAwgAyAMQQAQFCIOQoCAgIBwg0KAgICA4ABRDQIgACABQgEgDkGHgAEQvQFBAEgNAgsgACANIAetIAFBABDSAUEASA0DIAdBAWohBwsgAkEBaiECDAELCyAAIAEQDwsgDQsQD0KAgICA4AAhDSAEKAIoIQYgBCgCLCEFCyAAIAUgBhBaIAAgDBAPCyAEQTBqJAAgDQvQAgECfyMAQRBrIgMkACADIAI3AwgCQAJAIAAgARDKASIEQQBIDQAgBEUEQCAAQoCAgIAwQQEgA0EIahCuAyEBDAILIAAgAUE8IAFBABAUIgJCgICAgHCDIgFCgICAgOAAUQRAIAIhAQwCCwJAAkAgAkKAgICAcFoEfgJAIAKnLQAFQRBxRQ0AIAAgAhCAAyIERQRAIAAgAhAPDAULIAAgBEYNACAAIAIgBCkDQBBSRQ0AIAAgAhAPDAILIAAgAkHaASACQQAQFCEBIAAgAhAPIAFCgICAgHCDIgJCgICAgOAAUQ0EQoCAgIAwIAEgAkKAgICAIFEbIgJCgICAgHCDBSABC0KAgICAMFINAQsgAEKAgICAMEEBIANBCGoQrgMhAQwCCyAAIAJBASADQQhqEKcBIQEgACACEA8MAQtCgICAgOAAIQELIANBEGokACABCzMBAX4gACABIAIgAUEAEBQiBUKAgICAcINCgICAgOAAUgR+IAAgBSABIAMgBBAvBSAFCwsbAQF+IAAgASACIAMgBBCsAiEFIAAgARAPIAULLAAgACABKQMIECMgACABKQMQECMgACABKQMYECMgAEEQaiABIAAoAgQRAAAL0gQCB38BfiMAQTBrIgUkAAJ/QQAgAUKAgICAcFQNABpBACABpyIELwEGQTFHDQAaIAQoAiALIQcgBUIANwIoAkADQCAGQQJHBEBBACEEIABBIBBfIghFBEBBfyEEIAZBAUcNAyAAKAIQIAUoAigQrgIMAwsDQCAEQQJHBEAgAyAEQQN0IglqKQMAIgtCIIinQXVPBEAgC6ciCiAKKAIAQQFqNgIACyAIIAlqIAs3AwggBEEBaiEEDAELCyACIAZBA3RqKQMAIgtCgICAgDAgACALEDgbIgtCIIinQXVPBEAgC6ciBCAEKAIAQQFqNgIACyAIIAs3AxggBUEoaiAGQQJ0aiAINgIAIAZBAWohBgwBCwsCQCAHKAIAIgRFBEBBACEEA0AgBEECRg0CIAcgBEEDdGoiAkEEaiIDKAIAIgYgBUEoaiAEQQJ0aigCACIANgIEIAAgAzYCBCAAIAY2AgAgAiAANgIEIARBAWohBAwACwALAkAgBEECRw0AQQIhBCAHKAIUDQAgACgCECICKAKYASIDRQ0AIAAgASAHKQMYQQEgAigCnAEgAxE4ACAHKAIAIQQLIAUgBUEoaiAEQQFrIgNBAnRqKAIAIgIpAwg3AwAgBSACKQMQNwMIIAUgAikDGDcDEEEAIQQgBSADQQBHrUKAgICAEIQ3AxggBSAHKQMYNwMgIABBywBBBSAFEJoDA0AgBEECRg0BIAAoAhAgBUEoaiAEQQJ0aigCABCuAiAEQQFqIQQMAAsACyAHQQE2AhRBACEECyAFQTBqJAAgBAsJACAAvUI0iKcLTAEEfyAAKAIMIQIDQAJAIAEgAkcEfyAAKAIQIAFBAnRqKAIAIgRFDQEgACgCCCAEaCABIAJrQQV0cmoFQQALDwsgAUEBaiEBDAALAAsMACAAIAEQiANBH3YLvgEBB38gACgCDCIFIQMCQANAIAMiBEUNASAAKAIQIgkgBEEBayIDQQJ0aiIGKAIARQ0ACyAAIAAoAgggBCAFa0EFdGo2AgggBigCAGciBwRAQSAgB2shBUEAIQMDQCADIARGRQRAIAkgA0ECdGoiBiAIIAV2IAYoAgAiCCAHdHI2AgAgA0EBaiEDDAELCyAAIAAoAgggB2s2AggLIAAgASACIARBABCqAw8LIABBgICAgHg2AgggAEEAEEEaQQALTgIBfwF+An4jACICIAAoAhAoAnhJBEAgABDpAUKAgICA4AAMAQsgACABrSABKQMAQoCAgIAwIAEoAgggASgCIEEEENgBCyEDIAIkACADCwwAIABB+swAQQAQFQsLACAAQcMaQQAQFQvVAQEDfyMAQRBrIgUkAEF/IQMCQCAAKAIUDQACQAJAIAFBgICAgAROBEAgACgCAEHA2gBBABBGDAELIAEgACgCDEEDbEECbSIEIAEgBEobIQEgACgCECIEIAJBgAJIckUEQCAAIAEQ9QMhAwwDCyAAKAIAIAAoAgQgASAEdCAEa0ERaiAFQQxqEKgBIgINAQsgABCDAwwBCyAFKAIMIQMgACACNgIEIABB/////wMgAyAAKAIQdiABaiIAIABB/////wNOGzYCDEEAIQMLIAVBEGokACADCxEAIAAgASACIAMgBEEAELcFCyYBAX8gAUIgiKdBdU8EQCABpyICIAIoAgBBAWo2AgALIAAgARBsCycBAX8gAUIAUwRAIABCACABfRAwIQIgAEEBNgIEIAIPCyAAIAEQMAvsAQEBfwJAAkACQAJAAkACQAJAQQcgAkIgiKciAyADQQdrQW5JGyIDDggAAAAEBAQEAQMLIAAoAtgBIQAgAUIANwIMIAFCgICAgICAgICAfzcCBCABIAA2AgAgASACxBC6Ag0BDAQLIAAoAtgBIQAgAUIANwIMIAFCgICAgICAgICAfzcCBCABIAA2AgAgASACQoCAgIDAgYD8/wB8vxC6BUUNAwsgARAbQQAPCyADQQpqQQJJDQILIAAoAtgBIQAgAUIANwIMIAFCgICAgICAgICAfzcCBCABIAA2AgAgARA1CyABDwsgAqdBBGoL5AEBBH8jAEEQayICJAAgACACQQhqIAEQ5QEhAyAAIAEQDwJAIANFBEBC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IAMoAgAgAygCBHEMBAsgAygCACADKAIEcgwDCyADKAIAIAMoAgRzDAILEAEACyADKAIEIAMoAgB0C603AwAMAQsgAUKAgICAMDcDACAGQoCAgIAwNwMAQX8MAQtBAAshACADQRBqJAAgAAuGBQIHfwJ+AkAgAUKAgICAcINCgICAgJB/UgRAQoCAgIDgACEKIAAgARA3IgFCgICAgHCDQoCAgIDgAFENAQsCQCACQoCAgIBwg0KAgICAkH9RDQBCgICAgOAAIQogACACEDciAkKAgICAcINCgICAgOAAUg0AIAEhAgwBCwJAIAKnIgUpAgQiCkL/////B4NQDQAgAaciAykCBCELAkAgAygCAEEBRyAKIAuFQoCAgIAIg0IAUnINACADIAAoAhAoAgwRBAAgBSkCBCIKpyIEQf////8HcSIHIAMpAgQiC6ciBkH/////B3EiCGogBEEfdnQgBkEfdiIJQRFzakkNACAFQRBqIQYgA0EQaiEEIAkEQCAEIAhBAXRqIAYgB0EBdBAfGiADIAMpAgQiCiAFKQIEfEL/////B4MgCkKAgICAeIOENwIEDAILIAQgCGogBiAHEB8aIAMgAykCBCIKIAUpAgR8Qv////8HgyILIApCgICAgHiDhDcCBCAEIAunakEAOgAADAELAn4CQAJAIAunQf////8HcSAKp0H/////B3FqIgdBgICAgARPBEAgAEHA2gBBABBGDAELIAAgByAKIAuEpyIGQR92EOoBIggNAQtCgICAgOAADAELIAhBEGohBAJAIAZBAE4EQCAEIANBEGogAygCBEH/////B3EQHyIEIAMoAgRB/////wdxaiAFQRBqIAUoAgRB/////wdxEB8aIAQgB2pBADoAAAwBCyAEIAMgAygCBEH/////B3EQwwUgBCADKAIEQQF0aiAFIAUoAgRB/////wdxEMMFCyAIrUKAgICAkH+ECyEKIAAgARAPDAELIAEhCgsgACACEA8gCgtAACAAAn8CfyADBEAgASgCJCACQQN0akEEagwBC0EAIAEoAiAiA0UNARogAyABLwEoIAJqQQR0agsoAgALENkBCw0AIAAgASACQQIQzgILNQEBfyMAQdAAayICJAAgAiAAKAIQIAJBEGogARCQATYCACAAQef5ACACEMYCIAJB0ABqJAALowECAX8BfiMAQRBr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AiAAKAIQQf0ARw0ACyAAEPMBC0F/QQAgABASGyEBCyABC2gAIAAgASACEE8iAEEATgRAIAEoAnQgAEEEdGoiAiACKAIMQYd/cSADQQN0QfgAcXI2AgwgAiABKAK8ASIDNgIEIAIgASgCwAE2AgggASgCzAEgA0EDdGogADYCBCABIAA2AsABCyAAC20BAX8gACABQfwBakEQIAFB+AFqIAEoAvQBQQFqEHhFBEAgASABKAL0ASIDQQFqNgL0ASABKAL8ASADQQR0aiIDQX82AgAgAyADLQAEQfgBcToABCADIAEoArwBNgIIIAMgACACEBg2AgwLIAMLxgMBBH8gAEFAayIFKAIAQbACaiEDA0BBACECAkADQCADKAIAIgNFDQEgAygCHARAIAFFBEAgAEEGEBALIABBhAEQEEGDASECIAAgBSgCAC0AbEEDRgR/IABBDhAQIABBDhAQIABBwgAQECAAQQYQGiAAQREQECAAQbABEBAgAEHqAEF/EBwhASAAQSQQECAFKAIAQQAQFyAAQYEBEBAgAEGLARAQIABB6wBBfxAcIQQgACABEB4gAEEOEBAgACAEEB5BDgVBgwELEBBBfSECQQEhAQsgAygCECACaiECIAMoAhRBf0YNAAtBD0EOIAEbIQQDQCACBEAgACAEEBAgAkEBayECDAELCyABRQRAIABBBhAQCyAAQe0AIAMoAhQQHBpBASEBDAELCwJAIABBQGsoAgAiAigCYARAAkAgAUUEQEF/IQIMAQsgAEEqEBAgAEHpAEF/EBwhAiAAQQ4QEAsgAEG4ARAQIABBCBAaIABBQGsoAgBBABAXIAAgAhAeQSghAgwBCyACLQBsIgMEQCABRQRAIABBBhAQQS4hAgwCC0EuIQIgA0EDRw0BIABBiwEQEAwBC0EoQSkgARshAgsgACACEBALXQECfwJAAkAgACgCmAIiAUEASA0AIAAoAoACIAFqLQAAIgBBI2siAUENTUEAQQEgAXRB5fAAcRsNAQJAIABB6wBrDgQCAQECAAsgAEHsAWtBAkkNAQtBASECCyACCy8AIAAgASACIAMQ4wIiAEEATgRAIAEoAnQgAEEEdGoiASABKAIMQQNyNgIMCyAACy4AIABBDBApIgAEQCAAIAM2AgggACACNgIEIAAgASgCEDYCACABIAA2AhALIAALawEBfwJA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CyAAKAIQIgJBEGogAyACKAIEEQAAQQAhAgNAIAEoAvwBIQMgAiABKAL0AU5FBEAgACADIAJBBHRqKAIMEBMgAkEBaiECDAELCyAAKAIQIgJBEGogAyACKAIEEQAAQQAhAgNAIAEoAsgCIQMgAiABKALAAk5FBEAgACADIAJBA3RqKAIEEBMgAkEBaiECDAELCyAAKAIQIgJBEGogAyACKAIEEQAAIAEoAswBIgIgAUHQAWpHBEAgACgCECIDQRBqIAIgAygCBBEAAAsgACABKALsAhATIAFB9AJqEPYBIAAoAhAiAkEQaiABKAKMAyACKAIEEQAAIAEoAgQEQCABKAIYIgIgASgCHCIDNgIEIAMgAjYCACABQgA3AhgLIAAoAhAiAEEQaiABIAAoAgQRAAALggEBAn8gACABQRBqEM8FAkAgASgCICICBEAgASgCPCIDRQ0BA0AgAiADT0UEQCAAIAIpAwAQIyACQQhqIQIgASgCPCEDDAELCyAAQRBqIAEoAiAgACgCBBEAAAsgACABKQMYECMgACABKQMAECMPC0GEhAFBrvwAQYmUAUHC6wAQAAALaAEBfgJAAkAgABA0IgNCgICAgHCDQoCAgIDgAFEEQCABIQMMAQsgACADQcAAIAFBBxAZQQBIDQAgACADQekAIAJBAEetQoCAgIAQhEEHEBlBAE4NAQsgACADEA9CgICAgOAAIQMLIAMLjAEBAn8CQANAIAFCgICAgHBUDQECQAJAAkACQAJAAkAgAaciAi8BBiIDQQxrDgUFAQMHAQALIANBMEYNASADQTRrDgUABgYGAAYLIAIoAiAoAjAPCyACKAIgIgJFDQQgAi0AEUUNASAAELYCQQAPCyACKAIgIQILIAIpAwAhAQwBCwsgAigCICEACyAACyIAIAAgAkEBahApIgAEQCAAIAEgAhAfIAJqQQA6AAALIAALjQMCA34EfwJAIAEoAggiBkH+////B04EQEEBIQcgAkEBcQ0BQv///////////wAhAyAGQf7///8HRw0BIAE0AgRC////////////AHwhAwwBCyAGQQBMBEAMAQsgBkE/TQRAIAEoAhAiCSABKAIMIgJBAnRqQQRrKAIAIQhCACAGQSBNBH4gCEEgIAZrdq0FIAJBAk8EfiACQQJ0IAlqQQhrNQIABUIACyAIrUIghoRBwAAg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LQAFQf4BcToABSABIAs3A0ALIAtCIIinQXVPBEAgC6ciACAAKAIAQQFqNgIACyALIQwLIANBIGokACAMC4kEAgR+An8CQAJAIAG9IgRCAYYiA1ANACABvSECIAC9IgVCNIinQf8PcSIGQf8PRg0AIAJC////////////AINCgYCAgICAgPj/AFQNAQsgACABoiIAIACjDwsgAyAFQgGGIgJaBEAgAEQAAAAAAAAAAKIgACACIANRGw8LIARCNIinQf8PcSEHAn4gBkUEQEEAIQYgBUIMhiICQgBZBEADQCAGQQFrIQYgAkIBhiICQgBZDQALCyAFQQEgBmuthgwBCyAFQv////////8Hg0KAgICAgICACIQLIQICfiAHRQRAQQAhByAEQgyGIgNCAFkEQANAIAdBAWshByADQgGGIgNCAFkNAAsLIARBASAHa62GDAELIARC/////////weDQoCAgICAgIAIhAshBCAGIAdKBEADQAJAIAIgBH0iA0IAUw0AIAMiAkIAUg0AIABEAAAAAAAAAACiDwsgAkIBhiECIAZBAWsiBiAHSg0ACyAHIQYLAkAgAiAEfSIDQgBTDQAgAyICQgBSDQAgAEQAAAAAAAAAAKIPCwJAIAJC/////////wdWBEAgAiEDDAELA0AgBkEBayEGIAJCgICAgICAgARUIQcgAkIBhiIDIQIgBw0ACwsgBUKAgICAgICAgIB/gyADQoCAgICAgIAIfSAGrUI0hoQgA0EBIAZrrYggBkEAShuEvwvoDwMHfAh/An5EAAAAAAAA8D8hAwJAAkACQCABvSIRQiCIpyIPQf////8HcSIJIBGnIgxyRQ0AIAC9IhJCIIinIQogEqciEEUgCkGAgMD/A0ZxDQAgCkH/////B3EiC0GAgMD/B0sgC0GAgMD/B0YgEEEAR3FyIAlBgIDA/wdLckUgDEUgCUGAgMD/B0dycUUEQCAAIAGgDwsCQAJAAkACQAJAAn9BACASQgBZDQAaQQIgCUH///+ZBEsNABpBACAJQYCAwP8DSQ0AGiAJQRR2IQ0gCUGAgICKBEkNAUEAIAxBswggDWsiDnYiDSAOdCAMRw0AGkECIA1BAXFrCyEOIAwNAiAJQYCAwP8HRw0BIAtBgIDA/wNrIBByRQ0FIAtBgIDA/wNJDQMgAUQAAAAAAAAAACARQgBZGw8L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A38jAEFAaiIGJAACQCAEIANrIghBAUYEQAJAIANFBEAgAUIDEDAaDAELIAEgA60QMBogAUEBNgIECyACIANBAXRBAXKtEDAaIAIgAigCCEECajYCCCAAIAEQRBoMAQsgACgCACEHIAAgASACIAMgCEEBdiADaiIDQQEQoAQgBkIANwI4IAZCgICAgICAgICAfzcCMCAGIAc2AiwgBkIANwIkIAZCgICAgICAgICAfzcCHCAGIAc2AhggBkIANwIQIAZCgICAgICAgICAfzcCCCAGIAc2AgQgBkEsaiIHIAZBGGogBkEEaiIIIAMgBCAFEKAEIAAgACAIQf////8DQQEQQxogByAHIAFB/////wNBARBDGiAAIAAgB0H/////A0EBEMsBGiAFBEAgASABIAZBGGpB/////wNBARBDGgsgAiACIAZBBGoiAEH/////A0EBEEMaIAZBLGoQGyAGQRhqEBsgABAbCyAGQUBrJAALzgUCB38DfiMAQTBrIggkAAJ/AkACQAJAAkACQCADDgMAAQIDC0HcjAFB1PwAQbUaQZb8ABAAAAsgASACKAIQIAIoAgwiACAAQQV0IAIoAghrEGg2AgAMAgsgAigCECIDIAIoAgwiACAAQQV0IAIoAghrIgJBIGoQaK1CIIYgAyAAIAIQaK2EIQ8gBkGAlOvcA0YEQCABIA9CgJTr3AOAIhA+AgQgASAQQoDslKMMfiAPfD4CAAwCCyABIA8gBq0iEIAiET4CBCABIA8gECARfn0+AgAMAQsgAigCACEKIAhCADcCKCAIQoCAgICAgICAgH83AiAgCCAKNgIcIAhCADcCFCAIQoCAgICAgICAgH83AgwgCCAKNgIIIAMgBUEBdCAEQQFqIgt2QQFqQQF2IgprIQwgACAEQQF0QQFyQRRsaiENQQAhAyAAIARBKGxqIgQoAgxFBEAgBCAGIApB/////wNBARD8AiAIQQhqIglCARAwciANIAkgBCAKQQFqIAdsQQJqQQAQlQFyIQkLAkACQCAIQRxqIg4gAiANIAcgDGxBABBDIAlyIA5BARDRAXIgCEEIaiIJIA4gBEH/////A0EBEENyIAkgAiAJQf////8DQQEQ5AFyQSBxDQADQAJAIAgoAgxFDQAgCCgCFEUNACAIQQhqIgIgAiAEQf////8DQQEQywENAiADQQFrIQMM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3gQBCX8jAEEQayIGJAAgACAAKQOAARAjIABBEGohAyAAQaABaiEEIAAoAqQBIQEDQCABIARGRQRAIAEoAgQhBUEAIQIDQCACIAEoAhBORQRAIAAgASACQQN0aikDGBAjIAJBAWohAgwBCwsgAyABIAAoAgQRAAAgBSEBDAELCyAAIAQ2AqQBIAAgAEGgAWo2AqABIAAQogUgACgCVCAAQdAAakYEQEEAIQIDQAJAIAAoAkQhASACIAAoAkBODQAgASACQRhsaiIBKAIABEAgACABKAIEEOwBCyACQQFqIQIMAQsLIAMgASAAKAIEEQAAIAAoApACIgQEQEEAIQEDQEEAIQUgAUEFRkUEQANAQQAhAiAFQQJGRQRAA0AgAkEURwRAIAQgAUGgAWxqIAVB0ABsaiACQQJ0akGoDWoiBygCACIIBEAgBCgCACIJKAIAIAhBACAJKAIEEQEAGiAHQQA2AgALIAJBAWohAgwBCwsgBUEBaiEFDAELCyABQQFqIQEMAQsLIAAoAtgBIARBACAAKALcAREBABogAEEANgKQAgsgAEHgAWoQoQUgAEH4AWoQoQVBACECA0ACQCAAKAI4IQEgAiAAKAIsTg0AIAEgAkECdGooAgAiAUEBcUUEQCADIAEgACgCBBEAAAsgAkEBaiECDAELCyADIAEgACgCBBEAACADIAAoAjQgACgCBBEAACADIAAoAtQBIAAoAgQRAAAgBiADKQIINwMIIAYgAykCADcDACAGIAAgACgCBBEAACAGQRBqJAAPC0GNkQFBrvwAQb8PQaTlABAAAAtDAQJ/IAAoAogBIQJBfyEDAkADQCACQQBMDQEgACgCgAEgAkEBayICQQR0aigCACABRw0ACyACQYCAgIACciEDCyADC8YBAgR/AX4jAEEQayIDJAAgACABEC0iB0KAgICAcINCgICAgOAAUgRAAkAgACADQQxqIAcQ5QEiBkUEQAwBCwJAIAAgAhA/IgEgAygCDGpBAWoQKSIERQRAQQAhBAwBCyAEIAYgAygCDBAfIgUgAygCDGogAiABEB8aIAUgAygCDCABampBADoAACAAIAUgAygCDCABahCFAyEEIAAoAhAiAUEQaiAFIAEoAgQRAAALIAAgBhBUCyAAIAcQDwsgA0EQaiQAIAQLvwEBAX8gASADai0AAEE8RgRAIAAgBEH/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BEAgCygCJCIEIAJBA3RqIAQgAadBA3QQnAFBAAwBCyABpwshDUEAIQQgAkEAIAJBAEobIQIDQCACIARHBEAgAyAEQQN0aikDACIBQiCIp0F1TwRAIAGnIg4gDigCAEEBajYCAAsgCygCJCAEIA1qQQN0aiABNwMAIARBAWohBAwBCwsgCyAFPgIoIAsoAhQgBUL/////D4M3AwAgBUKAgICACHwhAQwBCyAAIAxBCGogBhA8DQEgDCkDCCIBIAKsIgh8IgVCgICAgICAgBBZBEAgAEHQ2gBBABAVDAILAkAgBEUgAkEATHJFBEBCACEHIAAgBiAIQgAgAUF/EPQCDQMMAQsgASEHCyACQQAgAkEAShutIQlCACEBA0AgASAJUgRAIAMgAadBA3RqKQMAIghCIIinQXVPBEAgCKciAiACKAIAQQFqNgIACyABIAd8IQogAUIBfCEBIAAgBiAKIAgQhgFBAE4NAQwDCwsgACAGQTAgBUKAgICACHwiAUL/////D1gEfiAFQv////8PgwVCgICAgMB+IAW5vSIHQoCAgIDAgYD8/wB9IAdC////////////AINCgICAgICAgPj/AFYbCxBFQQBIDQELIAAgBhAPIAVC/////w+DIAFC/////w9YDQEaQoCAgIDAfiAFub0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwwBCyAAIAYQD0KAgICA4AALIQEgDEEQaiQAIAEL0gMCB38DfiMAQSBrIgQkACAEQQA2AgwgBEEANgIIAkACQCAEIAAoAhAoAnhJBEAgABDpAQwBCyAAIAEgAiABQQAQFCILQoCAgIBwg0KAgICA4ABRBEAgCyEBDAILAkACQCALQoCAgIBwVA0AIAAgCxDKASIKQQBIDQECQCAKBEAgACAEQQxqIAsQ1gFFDQEMAwsgACAEQQhqIARBDGogC6dBERCOASEJIAQoAgghBSAJQQBIDQILIAQoAgwhCANAIAcgCEYNAQJAIAoEQCAAIAcQqQUiBkUNBAwBCyAAIAUgB0EDdGooAgQQGCEGCwJ/AkAgACALIAYgAxD5BCINQoCAgIBwgyIMQoCAgIAwUgRAIAxCgICAgOAAUg0BIAAgBhATDAULIAAgCyAGQQAQ1QEMAQsgACALIAYgDUEHEBkLIQkgACAGEBMgB0EBaiEHIAlBAE4NAAsMAQsgACAFIAgQWkEAIQUgACACEFwiDEKAgICAcINCgICAgOAAUQ0AIAQgCzcDGCAEIAw3AxAgACADIAFBAiAEQRBqECEhASAAIAwQDyAAIAsQDwwCCyAAIAUgBCgCDBBaIAAgCxAPC0KAgICA4AAhAQsgBEEgaiQAIAELPwEBfyABQQAgAUEAShshAQNAAkAgASADRgRAQX8hAwwBCyAAIANBA3RqKAIEIAJGDQAgA0EBaiEDDAELCyADC/8EAgJ/BH4CQCACQv////9vWARAIAAQJAwBCwJAIAAgAkE9EHEEf0KAgICAMCEFQoCAgIAwIQZCgICAgDAhCCAAIAJBPSACQQAQFCIHQoCAgIBwg0KAgICA4ABRDQFBgQJBgAIgACAHECYbBUEACyEDIAAgAkE+EHEEQEKAgICAMCEFQoCAgIAwIQZCgICAgDAhCCAAIAJBPiACQQAQFCIHQoCAgIBwg0KAgICA4ABRDQFBggRBgAQgACAHECYbIANyIQMLIAAgAkE/EHEEQEKAgICAMCEFQoCAgIAwIQZCgICAgDAhCCAAIAJBPyACQQAQFCIHQoCAgIBwg0KAgICA4ABRDQFBhAhBgAggACAHECYbIANyIQMLQoCAgIAwIQYCQCAAIAJBwAAQcUUEQEKAgICAMCEIDAELQoCAgIAwIQUgACACQcAAIAJBABAUIghCgICAgHCDQoCAgIDgAFEEQAwCCyADQYDAAHIhAwsCQAJAIAAgAkHBABBxRQ0AQoCAgIAwIQUgA0GAEHIhAyAAIAJBwQAgAkEAEBQiBkKAgICAcIMiB0KAgICAMFENAEHDwgAhBCAHQoCAgIDgAFENASAAIAYQOEUNAQsCQCAAIAJBwgAQcUUEQEKAgICAMCEFDAELIANBgCByIQMgACACQcIAIAJBABAUIgVCgICAgHCDIgJCgICAgDBRDQBBtMIAIQQgAkKAgICA4ABRDQEgACAFEDhFDQELIANBgDBxBEBBsekAIQQgA0GAxABxDQELIAEgBTcDGCABIAY3AxAgASAINwMIIAEgAzYCAEEADwsgACAEQQAQFQsgACAIEA8gACAGEA8gACAFEA8LQX8LwgEBAn8gAigCBEUEQCACKAIYIgMgAigCHCIENgIEIAQgAzYCACACQgA3AhgCQCABKAIABEAgAhCfBQwBCyAAIAIpAyAQIwsgACACKQMoECMgAiACKAIAQQFrIgM2AgACQCADRQRAIAIoAhAiAyACKAIUIgQ2AgQgBCADNgIAIAJCADcCECAAQRBqIAIgACgCBBEAAAwBCyACQoCAgIAwNwMoIAJCgICAgDA3AyAgAkEBNgIECyABIAEoAgxBAWs2AgwLC5UBAQN+IAG9IgJC////////////AIMhAyAAvSIEQv///////////wCDQoGAgICAgID4/wBaBEAgA0KBgICAgICA+P8AVA8LAn9BfyADQoCAgICAgID4/wBWIAAgAWNyDQAaQQEgACABZA0AGkEAIABEAAAAAAAAAABiDQAaIARCAFMEQCACQj+Hp0F/cw8LIAJCP4inCwswACABQoCAgIAQhEKAgICAcINCgICAgDBRBEAgACABEDcPCyAAIAFBOEEAQQAQrQILKQEBfyACQiCIp0F1TwRAIAKnIgMgAygCAEEBajYCAAsgACABIAIQxQULUgIBfwF+QoCAgIDgACEEIAAgASACEJMBIgMEfiADKAIgIgMoAgwoAiAtAAQEQCACRQRAQgAPCyAAEGtCgICAgOAADwsgAzUCEAVCgICAgOAACws4ACAAIAEgAhCTASIARQRAQoCAgIDgAA8LIAAoAiAoAgwiACAAKAIAQQFqNgIAIACtQoCAgIBwhAtRAgF+AX8gACAAKQOQAUEDEEkiAkKAgICAcINCgICAgOAAUgRAIAFCIIinQXVPBEAgAaciAyADKAIAQQFqNgIACyAAIAJBNCABQQMQGRoLIAILlQEBA38jAEEQayIEJAAgBCACNwMIIAEoAgAiBSABKAIEIgY2AgQgBiAFNgIAIAFCADcCACAAIAAgAUEgaiADQQN0aikDAEKAgICAMEEBIARBCGoQIRAPIAAgASkDEBAPIAAgASkDGBAPIAAgASkDIBAPIAAgASkDKBAPIAAoAhAiAEEQaiABIAAoAgQRAAAgBEEQaiQAC40BAQN/IwBBEGsiBCQAIAQgATcDCCADQQF0IQZBACEDA0ACQAJAIANBAkYNACAAQcwAQQEgAyAGakEBIARBCGoQzwEiAUKAgICAcINCgICAgOAAUg0BQX8hBSADQQFHDQAgACACKQMAEA8LIARBEGokACAFDwsgAiADQQN0aiABNwMAIANBAWohAwwACwALyAYC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IARuDAILIARBACABQQJPGyADbAwBCyAAQX9zQR92IQQgAUECayEBIAQCfiACBEAgA60iBiABQQN0IgFB5KEEajUCAH5CIIggAUHgoQRqNQIAIAZ+fEIfiAwBCyABQQJ0QYCkBGo1AgAgA61+Qh2IC6dqCyIBayABIABBAEgbC0gBAn8jAEEQayICJABBfyEDAkAgACACQQxqIAEQugENACACKAIMIgNBJWtBXEsNACAAQdmJAUEAEFBBfyEDCyACQRBqJAAgAwt1AQF/AkAgAUKAgICAcINCgICAgOB+UQRADAELAkAgAUKAgICAcFQNACABpyICLwEGQSFHDQAgAikDICIBQoCAgIBwg0KAgICA4H5SDQAMAQsgAEGiLEEAEBVCgICAgOAADwsgAaciACAAKAIAQQFqNgIAIAELrgICAXwBfwJAA0ACQAJAAkACQAJAQQcgAkIgiKciBCAEQQdrQW5JG0EJag4RAgMDAwMDAwMDAAAAAAMDBAEDCyABIALENwMADAULIAJCgICAgMCBgPz/AHwiAkL///////////8Ag0KBgICAgICA+P8AWgRAIAFCADcDAAwFCyACvyIDRAAAAAAAAODDYwRAIAFCgICAgICAgICAfzcDAAwFCyADRAAAAAAAAOBDZARAIAFC////////////ADcDAAwFCyABAn4gA5lEAAAAAAAA4ENjBEAgA7AMAQtCgICAgICAgICAfws3AwAMBAsgASACp0EEakEAEIIDGiAAIAIQDwwDCyAAIAIQjQEiAkKAgICAcINCgICAgOAAUg0BCwsgAUIANwMAQX8PC0EAC7ECAQJ/IwBBIGsiBCQAAkACQAJAIAIoAgxFBEACQAJAAkACQCACKAIIQf7///8Haw4CAQACCyAAEDUMAgsgAigCBA0DCyAAIAIQRBoLQQAhAiABRQ0DIAFCABAwGgwDCyACKAIERQ0BCyAAEDVBASECIAFFDQEgAUIAEDAaDAELIAAgAiACKAIIQQFqQQJtQQEQkQYgAEEBENEBGiABIgNFBEAgACgCACEDIARCADcCGCAEQoCAgICAgICAgH83AhAgBCADNgIMIARBDGohAwsgAyAAIABB/////wNBARBDGiADIAMoAgRBAXM2AgQgAyADIAJB/////wNBARDLARpBICECIAMoAghB/////wdHBEAgAygC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AkEAEI0FIQVBECEEA0AgA0E0aiILIAJBACAEIAVqIglBAWoiB0HgDxD8AiALIAsgA0EgaiAHQeAPEENyIgdBIHENAyAHQRBxRQ0CIANBNGogAygCPEEBIAkQ4QMNAiAEQQJtIARqIQQMAAsACyADQTRqIANBIGoQRA0BDAMLIANBNGpBARDRAUEgcUUNAgsgA0E0ahAbDAQLIANByABqIANBNGogAiAFIAUQjAUMAQsgAygCTCEFIANByABqIANBNGogAiAIIAgQjAUgAygCTCIJIAVBAWoiAiACIAlJG0EBayEIIAMoAkghByAFIQQDQAJAIAkgBCICQQFqIgRNBEAgCCECDAELIAIgB2otAABBMEcNACAEIAdqLQAAQS5HDQELCyACIAVNDQAgBSAHaiACIAdqIAkgAmsQnAEgAyAFIAJrIAlqNgJMCyADQTRqEBsLIANByABqQQAQESADKAJUDQAgAygCSAwBC0EAIAMoAkgiAkUNABogCigCACACQQAgCigCBBEBABpBAAshBCAGIAw2AgQgACAGIANBDGoQXiAERQRAIAAQfAwBCyAAIAQQYiENIAAoAtgBIgAoAgAgBEEAIAAoAgQRAQAaCyADQeAAaiQAIA0Lw3UCEn8BfiMAQaAGayIDJAAgASgCyAEiBEEAIARBAEobIQYDQCACIAZGRQRAIAEoAswBIAJBA3RqQX82AgQgAkEBaiECDAELCyABKAI8BEAgASgCzAFBfjYCDAtBACECIAEoAnwiBkEAIAZBAEobIQYCfgJAAkADQCACIAZGBEACQEECIQJBAiAEIARBAkwbIQgDQAJAIAIgCEYEQEEAIQIDQCACIAZGDQICQCABKAJ0IAJBBHRqIgQoAghBAE4NACAEKAIEIghBAkgNACAEIAEoAswBIgQgBCAIQQN0aigCAEEDdGooAgQ2AggLIAJBAWohAgwACwALIAEoAswBIgcgAkEDdGoiBCgCBEEASARAIAQgByAEKAIAQQN0aigCBDYCBAsgAkEBaiECDAELCwJAIAEoAkRFDQACQCABKAIgDQAgAS0AbkEBcQ0AIAEgACABQdIAEE82ApABIAEoAjxFDQAgASAAIAFB0wAQTzYClAELAkAgASgCTCIIRQ0AIAEoAqgBQQBIBEAgASAAIAEQygM2AqgBCyABKAKsAUEASARAIAEgACAB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KAIAEB0gAkHAABARIAIgACAJKAIMEBgQHSACIBEQEQsgACAJKAIMEBMgBEEBaiEEDAALAAtBhSlBrvwAQYzyAUH7ORAAAAtBmoIBQa78AEHY6wFB3/QAEAAAC0GuhAFBrvwAQZvrAUHf9AAQAAALA0AgAiAOTkUEQCADQYAGaiACIA1qIgQgBC0AAEECdEGAuAFqLQAAIgQQciACIARqIQIMAQsLIAwQ9gEgDCADKQOQBjcCECAMIAMpA4gGNwIIIAwgAykDgAY3AgAMDAsgDBD2ASAMIAMpA5AGNwIQIAwgAykDiAY3AgggDCADKQOABjcCAAJAIAEoAowCDQAgASgCpAIhDSADIAEoAvACNgKYBiADIAEoAoACIgk2AtwFIAMgASgChAIiCzYC4AUgACgCECECIANCADcDiAYgA0IANwOABiADIAI2ApQGIANBOzYCkAYgASgC0AIiAgRAIAEgASgCACACQQR0EF8iAjYCzAIgAkUNDQsCQCABKALcAiICRQ0AIAEtAG5BAnENACABIAEoAgAgAkEDdBBfIgI2AtgCIAJFDQ0gAUEANgLoAiABIAEoAvACNgLkAgsgASgCtAFBAE4EQCADQYAGaiICQQwQESACQQQQESACQdkAIAEoArQBEF0LIAEoArABQQBOBEAgA0GABmoiAkEMEBEgAkECEBEgAkHZACABKAKwARBdCyABKAKsAUEATgRAIANBgAZqIgJBDBARIAJBAxARIAJB2QAgASgCrAEQXQsCQCABKAKoAUEASA0AIAEoAmAEQCADQYAGaiICQeEAEBEgAiABLwGoARAqDAELIANBgAZqIgJBCBARIAJB2QAgASgCqAEQXQsgASgCmAFBAE4EQEEAIQIgAS0AbkEBcUUEQCABKAI4QQBHIQILIANBgAZqIgRBDBARIAQgAhARIAEoApwBIgJBAE4EQCADQYAGakHaACACEF0LIANBgAZqQdkAIAEoApgBEF0LIAEoAqABQQBOBEAgA0GABmoiAkEMEBEgAkECEBEgAkHZACABKAKgARBdCyABKAKQAUEATgRAIANBgAZqIgJBDBARIAJBBRARIAJB2QAgASgCkAEQXQsgASgClAFBAE4EQCADQYAGaiICQQwQESACQQUQESACQdkAIAEoApQBEF0LQQAhAgJAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAiALTgRAQQAhAiABKAKsAiIEQQAgBEEAShshBANAIAIgBEYNAiACQRRsIQYgAkEBaiECIAYgDWooAhBFDQALQdWDAUGu/ABB/foBQZQ4EAAACyACIAIgCWoiBi0AACIFQQJ0QYC4AWotAAAiB2ohBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUHYAGsOIBASGhESGhESGhoaGhoaGhoaBAQBAwIaGgwMBQUFBQUFAAsCQCAFQQFrDhUJCgoLGg0HGggIGhoaBhoaDxoaGg4ACyAFQSJrIghBH0sNGEEBIAh0IgpBwOEBcQ0SIApBBXFFBEAgCEEfRw0ZIAYoAAFBMEcNGiABIAMoAoQGIAMoApgGEDMgA0GABmpB6QEQESAEIQIMIwsgBi8AASECIANCqICAgHA3A1AgA0HcBWogBCADQdAAahAnBEACQCADKALoBSIEQQBIBEAgAygCmAYhBAwBCyADIAQ2ApgGCyABIAMoAoQGIAQQMyADQYAGaiAFQQFqIAIQXSABIAkgCyADKALkBSADQZgGahCkAiECDCMLIAEgAygChAYgAygCmAYQMyADQYAGaiAFIAIQXSAEIQIMIgsgBigAASEFIAQhBgwWCyAGKAABIQdB7QAhBQwUCyAGKAABIQdB7AAhBQwTCyABIAYoAAEgA0GcBmpBABDHAyEHIAMoAtwFIAMoAuAFIAQgBxDGAwRAIAEgB0F/EGkaIANBgAZqQQ4QESAEIQIMHwsgA0LrgICAcDcDYCADQdwFaiAEIANB4ABqECdFDRIgAygC6AUhCCADKALcBSADKALgBSADKALkBSIGIAcQxgNFDRIgCEEATgRAIAMgCDYCmAYLIAEgB0F/EGkaIAVBA3MhBSADKAL0BSEHDBwLIAYtAAkhCCAGKAABIQcgASAGKAAFIANBnAZqQQAQxwMiAkEASA0PIAIgASgCrAJODQ8gASADKAKEBiADKAKYBhAzIAEgASgC1AIiBkEBajYC1AIgASgCzAIgBkEEdGoiBkEENgIEIAYgBTYCACADKAKEBiEKIAYgAjYCDCAGIApBBWo2AgggA0GABmoiBiAFEBEgBiAHEB0gBiANIAJBFGxqIgIoAgwgAygChAZrEB0gAigCDEF/RgRAIAAgAiADKAKEBkEEa0EEEOgCRQ0dCyADQYAGaiAIEBEgBCECDB0LIANCqYCAgHA3A3AgA0HcBWogBCADQfAAahAnRQ0TIAQhAiADKALoBSIEQQBIDRwgAyAENgKYBgwcCyADQquBgIBwNwOgASADQdwFaiAEIANBoAFqECcEQAJAIAMoAugFIgJBAEgEQCADKAKYBiECDAELIAMgAjYCmAYLIAEgAygChAYgAhAzIANBgAZqQfMBEBEMGAsgA0F/NgKYASADQqyBgICQzRo3A5ABIANB3AVqIAQgA0GQAWoQJ0UNAAJAIAMoAugFIgVBAEgEQCADKAKYBiEFDAELIAMgBTYCmAYLIAEgAygChAYgBRAzIANBgAZqQfMBEBEgAygC7AVBA3MhBQwYCyADQunUgYBwNwOAASADQdwFaiAEIANBgAFqECdFDREgBUEKRiEKDA0LAkAgBigAASIGQYCAgIB4ckGAgICAeEYNACADQoyBgIBwNwPgASADQdwFaiAEIANB4AFqECdFDQAgAygC6AUiAkEATgRAIAMgAjYCmAYLIANCjoCAgHA3A9ABIANB3AVqIAMoAuQFIANB0AFqECcEQCADKALoBSICQQBIDRcgAyACNgKYBgwXCyABIAMoAoQGIAMoApgGEDMgA0GABmpBACAGaxDFAwwWCyADQo6AgIBwNwPAASADQdwFaiAEIANBwAFqECcEQCADKALoBSICQQBIDRYgAyACNgKYBgwWCyADQunUgYBwNwOwASADQdwFaiAEIANBsAFqECcEQCAGQQBHIQoMDQsgASADKAKEBiADKAKYBhAzIANBgAZqIAYQxQMgBCECDBkLIAYoAAEiAkH/AUoNDyABIAMoAoQGIAMoApgGEDMgA0GABmoiBiAFQcMAa0H/AXEQESAGIAJB/wFxEBEgBCECDBgLIAYoAAEhAiADQo6AgIBwNwPwASADQdwFaiAEIANB8AFqECcEQCAAIAIQEyADKALoBSICQQBIDRQgAyACNgKYBgwUCyACQS9HDQ4gASADKAKEBiADKAKYBhAzIANBgAZqQcEBEBEgBCECDBcLIANCyYCAgHA3A6gCIANC2Lb5gnA3A6ACIANB3AVqIAQiAiADQaACahAnDRYgA0F/NgKYAiADQoGEkICQCTcDkAIgA0HcBWogAiADQZACahAnDRYgA0F/NgKIAiADQoaO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DQMgAyAGKAABNgKYBiAEIQIMDAsgBigAASICQQBIDQMgAiABKAKsAk4NAyANIAJBFGxqIggoAgxBf0cNBCAIIAMoAoQGNgIMIAgoAhAhBwNAIAciAgRAIAgoAgwgAigCBCIFayEGIAIoAgAhBwJAAkACQAJAIAIoAghBAWsOBAIBAwADCyADKAKABiAFaiAGNgAADAILIAZBgIACakGAgARPDQkgAygCgAYgBWogBjsAAAwBCyAGQYABakGAAk8NCSADKAKABiAFaiAGOgAACyAAKAIQIgZBEGogAiAGKAIEEQAADAELCyAIQQA2AhAgBCECDAsLIANCjoCAgHA3A6gFIANC2bj9gnA3A6AFIANB3AVqIAQgA0GgBWoQJwRAIAMoAugFIgJBAE4EQCADIAI2ApgGCyADIAMoAvAFIgY2ApQFIANBfzYCmAUgAyADKALsBSIEQQFrNgKQBSADQdwFaiADKALkBSICIANBkAVqECcEQCADKALoBSICQQBOBEAgAyACNgKYBgsgBEEBaiEEIAMoAuQFIQILIAEgAygChAYgAygCmAYQMyADQYAGaiIHIAVBAmtB/wFxEBEgByAEIAYQXQwLCyADQo6AgIBwNwOIBSADQpiAgICw6A43A4AFIANB3AVqIAQgA0GABWoQJwRAAkAgAygC6AUiAkEASARAIAMoApgGIQIMAQsgAyACNgKYBgsgASADKAKEBiACEDMgA0GABmoiAiAFQQJrQf8BcRARIAIgAy0A7AUQESACIAMoAvwFEB0MBwsgA0KOgICAcDcD+AQgA0KZgICAkAk3A/AEIANB3AVqIAQgA0HwBGoQJ0UNAQJAIAMoAugFIgJBAEgEQCADKAKYBiECDAELIAMgAjYCmAYLIAEgAygChAYgAhAzIANBgAZqIgIgBUECa0H/AXEQESACQckAEBEMBgsgA0F/NgLIBSADQoSAgICwlevUqn83A8AFIANB3AVqIAQgA0HABWoQJ0UNACADKALoBSIIQQBOBEAgAyAINgKYBgsgAygC7AUhCCADKAL8BSIFQcUARgR/QfQBBSAFQRtHDQFB9QELIQogCEF9cUGpAUYEQCABIAMoAoQGIAMoApgGEDMgA0GABmogChARIAAgAygC/AUQEwwGCyADQumAgIBwNwOwBSADQdwFaiADKALkBSADQbAFahAnRQ0A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DAELIAEgAzYCACACIAY2AgBBACEECyAHQRBqJAAgBAvCAwEJfyABKAIIIgZBACAGQQBKGyEFAkACQANAIAQgBUYNASAEQQJ0IQcgBEEBaiEEIAcgASgCAGooAgAgAkcNAAtBACEFDAELQX8hBSAAIAFBBCABQQRqIAZBAWoQeA0AIAEgASgCCCIEQQFqNgIIIAEoAgAgBEECdGogAjYCACABQRBqIQkgAUEMaiEHQQAhBQNAAkAgAigCICAFTARAQQAhBUEAIQQDQCAEIAIoAixODQQgBEECdCEDIARBAWohBCAAIAEgAigCECADIAIoAihqKAIAQQN0aigCBEEBEK8FRQ0ACwwBCwJAIANBACACKAIcIAVBFGxqIgYoAhAiCkEWRhsNAEEAIQQgASgCFCIIQQAgCEEAShshCwJAAkADQCAEIAtGDQEgCiAHKAIAIARBDGxqIgwoAgBHBEAgBEEBaiEEDAELCyAEQQBODQELIAAgB0EMIAkgCEEBahB4DQIgASABKAIUIgRBAWo2AhQgASgCDCAEQQxsaiIEIAYoAhA2AgACQCADRQRAIAYoAghFDQELIARBADYCCAwCCyAEIAY2AggMAQsgDEEANgIICyAFQQFqIQUMAQsLQX8PCyAFC2gCAn8BfiAAQRBqIQIgACkCBCIEp0H/////B3EhAwJAIARCgICAgAiDUEUEQEEAIQADQCAAIANGDQIgAiAAQQF0ai8BACABQYcCbGohASAAQQFqIQAMAAsACyACIAMgARCyBSEBCyABCxIAIAAgASACIANBgIABENABGgssAQF/A0AgASADRkUEQCAAIANqLQAAIAJBhwJsaiECIANBAWohAwwBCwsgAgvOAQIDfwF+IAEgAkEBELIFIgNB/////wNxIQUgACgCNCAAKAIkQQFrIANxQQJ0aiEDA0AgAygCACIERQRAQQAPCwJAIAAoAjggBEECdGooAgAiAykCBCIGQiCIp0H/////A3EgBUcgBkKAgICAgICAgECDQoCAgICAgICAwABSciAGp0H/////B3EgAkcgBkKAgICACINCAFJycg0AIANBEGogASACEGENACAEQd4BTgRAIAMgAygCAEEBajYCAAsgBA8LIANBDGohAwwACwALfwEEfyABLQAAQdsARgRAIAFBAWoiAxA/QQFrIQIgACgCECgCOCEEQdABIQEDQCABQd4BRwRAAkAgBCABQQJ0aigCACIFKAIEQf////8HcSACRw0AIAVBEGogAyACEGENACAAIAEQGA8LIAFBAWohAQwBCwsQAQALIAAgARCqAQusAgMCfwJ+AXwjAEEgayICJABEAAAAAAAA+H8hBiAAKAIIQf////8HRwRAIAAoAgAhAyACQgA3AhggAkKAgICAgICAgIB/NwIQIAIgAzYCDCACQQxqIAAQRBoCfiACKAIUIgBB/f///wdMBEAgAkEMakE1QcgEEM4BGiACKAIUIQALQoCAgICAgID4/wAgAEH+////B0YNABogAEGAgICAeEYEQEIADAELIAIoAhwhAwJ+IAIoAhhBAkYEQCADKQIADAELIAM1AgBCIIYLIQQgAEGCeEwEQCAEQY54IABrrYghBEIADAELIARCC4hC/////////weDIQQgAEH+B2qtQjSGCyEFIAQgBYQgAjUCEEI/hoS/IQYgAkEMahAbCyABIAY5AwAgAkEgaiQACw4AIABCgICAgPB+EIAGC+4PAwt/A34BfCMAQUBqIhAkAEHfAEGAAiAEQSBxGyEJIARBgANxIQsCQAJAAkACfwJAAkACQAJAAkACQAJAAkACQCABLQAAIgZBK2sOAwEDAAMLQQEhDiABQQFqIQEMAQsgAUEBaiEBCyAEQYAIcUUNASABLQAAIQYLIAZB/wFxQTBHDQACQAJAAkAgAS0AASIHQfgARwRAIAdB7wBGDQIgB0HYAEcNAQsgA0FvcQ0FIAFBAmohB0EQIQMMCQsgAyAHQc8AR3INAQwFCyADRQ0EDAMLAkACQCAHQeIARwRAIANFIAdBwgBGcQ0BIAMgB0Ewa0H/AXFBCUtyDQQgBEEQcQ0CDAcLIAMNBAsgBEEEcUUNBUECIQMgAUECaiEHDAcLIAFBAWohB0EBIQYDQCABIAZqIQMgBkEBaiEGIAMtAAAiCEH4AXFBMEYNAAtBCCEDQYACIQlBASEKIAhB/gFxQThGDQQMBgsgBEEBcSALQYACckGAAkdyDQAgAUEIaiEHQfUcIQYgASEIA0AgBkH9HEcEQCAILQAAIAYtAABHDQIgBkEBaiEGIAhBAWohCAwBCwsgC0GAAkYEQCAAELYFIhFCgICAgHCDQoCAgIDgAFEEQEKAgICA4AAhEQwJCyARp0EEaiAOEIwBDAgLRAAAAAAAAPD/RAAAAAAAAPB/IA4bIhS9IhECfyAUmUQAAAAAAADgQWMEQCAUqgwBC0GAgICAeAsiBre9UQRAIAatIREMCAtCgICAgMB+IBFCgICAgMCBgPz/AH0gEUL///////////8Ag0KAgICAgICA+P8AVhshEQwHCyABIgcgA0UNAxoMBQsgASEHDAQLIARBBHFFDQAgAUECaiEHQQghAwwCCyABCyEHQQohAwwBC0KAgICAwH4hESAHLQAAEJYBIANPDQELQQAhBiADQQpHIQwgByEBA0ACQCAGIAdqIg0tAAAiCMAhDyAIEJYBIANOBEAgCSAPRw0BAkAgDCAGQQFHcg0AIA1BAWstAABBMEcNAEEBIQYMAgsgDS0AARCWASADTg0BCyAHIAZBAWoiBmohAQwBCwtBACEMAkACQCAEQQFxDQACQCAIQS5HDQAgDS0AASEIIAZFBEAgCBCWASADTg0BCyANQQFqIQFCgICAgMB+IREgCSAIwEYNAgNAAkAgCEH/AXEQlgEgA0gEQCABLQABIQgMAQtBASEMIAkgCMBHDQIgAS0AASIIEJYBIANODQILIAFBAWohAQwACwALIAEgB00NAAJAIAEtAAAiBkHlAEcEQCADQQpGIAZBxQBGcQ0BIAZBIHJB8ABHIANBEEtyDQJBASADdEGEggRxDQEMAgsgA0EKRw0BC0EBIQwgAUEBaiEGAkACQAJAIAEtAAFBK2sOAwACAQILIAFBAmohBgwBCyABQQJqIQYLIAYtAABBOmtBdkkNACAGIQEDQCABIgZBAWohASAGLQABIgjAIQ0gCEE6a0F1Sw0AIAkgDUcNASAGLQACQTprQXVLDQALCyABIAdGBEBCgICAgMB+IREMAQsgECEJAkAgASAHayINQQJqIg9BwQBPBEAgACgCECIGQRBqIA8gBigCABEDACIJRQ0BC0EAIQZBACEIIA4EQCAJQS06AABBASEICyANQQAgDUEAShshDgNAIAYgDkZFBEAgBiAHai0AACINQd8ARwRAIAggCWogDToAACAIQQFqIQgLIAZBAWohBgwBCwsgCCAJakEAOgAAAn4CQAJAIARBwABxBEACQAJAAkACQCABLQAAQewAaw4DAQIAAwsgAUEBaiEBQYABIQsMBQsgAUEBaiEBQYACIQsMBAsgAUEBaiEBQYADIQsMAwsgBEGABHEEQEKAgICAwH4gCg0EGiALQYABIAwbIQsMAwsgA0EKRw0BDAILIAsNASAEQYAEcQRAQoCAgIDAfiAKDQMaIAxFQQd0IQsMAgtBACELIANBCkYNAQtCgICAgMB+IAwNARoLAkACQAJAAkACQAJAIAtBGXcOBAABAgMECwJ8IAwgA0EKRnFFBEAgCSAJLQAAIgRBLUZqIQcDQCAHIgZBAWohByAGLQAAIghBMEYNAAtCmLPmzJmz5swZIRIgA0EKRwRAQQAgA2usIAOsgCESCyADrSETQQAhB0IAIREDQAJAIAhB/wFxIgVFDQAgBRCWASIFIANODQAgESAFrSARIBN+fCARIBJWIgUbIREgBSAHaiEHIAYtAAEhCCAGQQFqIQYMAQsLIBG6IRQgBwRAIAO3IAe3EI8DIBSiIRQLIBSaIBQgBEEtRhsMAQsgCRDkBQsiFL0hESARAn8gFJlEAAAAAAAA4EFjBEAgFKoMAQtBgICAgHgLIga3vVINBCAGrQwFC0KAgICAwH4gCiAMcg0EGiAAIAkgAyAEQQAgACgCECgCmAIRIgAMBAtCgICAgMB+IAoNAxogACAJIAMgBCAFIAAoAhAoArQCESIADAMLQoCAgIDAfiADQQpHDQIaIAAgCUEKIARBACAAKAIQKALQAhEiAAwCCxABAAtCgICAgMB+IBFCgICAgMCBgPz/AH0gEUL///////////8Ag0KAgICAgICA+P8AVhsLIREgD0HBAEkNASAAKAIQIgBBEGogCSAAKAIEEQAADAELIAAQfEKAgICA4AAhEQsgASEHCyACBEAgAiAHNgIACyAQQUBrJAAgEQtbAQR/IAAoAgAiA0EAIANBAEobIQVBACEDA0ACQCADIAVHBH8gACgCBCIGIANBPGxqKAIAIAFHDQEgBiADQTxsaiACQQJ0aigCBAVBAAsPCyADQQFqIQMMAAsAC0gBA38gAkEAIAJBAEobIQIDQCACIANGBEBBAA8LIAEgA2ohBCADQQF0IQUgA0EBaiEDIAAgBWovAQAgBC0AAGsiBEUNAAsgBAu/AQICfgJ/IAG9IgNC/////////weDIQIgA0I/iKchBAJAAkAgA0I0iKdB/w9xIgUEQCAFQf8PRw0BIAJQRQRAIAAQNUEADwsgACAEEIwBQQAPCyACUARAIAAgBBCJAUEADwsgAkIMhiICIAJ5IgOGIQJBACADp2shBQwBCyACQguGQoCAgICAgICAgH+EIQILIAAgBUH+B2s2AgggAEECEEFFBEAgACgCECACNwIAIAAgBDYCBEEADwsgABA1QSALqwECAX4CfyABKQIEQoCAgIAIgyEDIAAtAAdBgAFxRQRAIANQBEAgAEEQaiABQRBqIAIQYQ8LQQAgAUEQaiAAQRBqIAIQuQVrDwsgAUEQaiEEIABBEGohACADUARAIAAgBCACELkFDwsgAkEAIAJBAEobIQVBACEBA0AgASAFRgRAQQAPCyABQQF0IQIgAUEBaiEBIAAgAmovAQAgAiAEai8BAGsiAkUNAAsgAgvTBAEIfyADIAEoAgAiBCgCHEEDbEECbSIFIAMgBUobIQgCQCACBEAgACACKAIUIAhBA3QQiQIiA0UNASACIAM2AhQLIAQoAhgiBkEBaiIFIQMDQCADIgJBAXQhAyACIAhJDQALAkAgAiAFRwRAIAAgAkECdCIHIAhBA3RqQTBqECkiCkUNAiAEKAIIIgMgBCgCDCIFNgIEIAUgAzYCACAEQgA3AgggByAKaiIGIAQgBCgCIEEDdEEwahAfIQUgACgCECIDKAJQIgkgBUEIaiILNgIEIAUgA0HQAGo2AgwgBSAJNgIIIAMgCzYCUCAFIAJBAWsiCTYCGEEAIQMgCkEAIAcQKxogBUEwaiECA0AgAyAFKAIgT0UEQAJAIAIoAgQiB0UEQCADQQFqIQMMAQsgAiACKAIAQYCAgGBxIAUgByAJcUF/c0ECdGoiBygCAEH///8fcXI2AgAgByADQQFqIgM2AgALIAJBCGohAgwBCwsgACgCECIAQRBqIAQgBCgCGEF/c0ECdGogACgCBBEAAAwBCyAEKAIIIgIgBCgCDCIDNgIEIAMgAjYCACAEQgA3AgggACAEIAZBf3NBAnRqIAVBAnQiAiAIQQN0akEwahCJAiIDRQRAIAAoAhAiACgCUCIBIARBCGoiAjYCBCAEIABB0ABqNgIMIAQgATYCCCAAIAI2AlBBfw8LIAAoAhAiACgCUCIEIAIgA2oiBkEIaiICNgIEIAYgAEHQAGo2AgwgBiAENgIIIAAgAjYCUAsgASAGNgIAIAYgCDYCHEEADwtBfwvTAQIFfwF+AkAgASkCBCIHp0H/////B3EiBEELa0F2SQ0AIAFBEGohAgJ/IAdCgICAgAiDUCIFRQRAIAIvAQAMAQsgAi0AAAsiAUEwayIDQQlLDQACfwJAIAFBMEcEQEEBIQEDQCABIARGDQICfyAFRQRAIAIgAUEBdGovAQAMAQsgASACai0AAAtBMGsiBkEJSw0EIAFBAWohASAGrSADrUIKfnwiB6chAyAHQoCAgIAQVA0ACwwDC0EAIgMgBEEBRw0BGgsgACADNgIAQQELDwtBAAupAgIDfwF+AkAgACACEDhFDQAgAqciBC8BBkEORgRAIAAgASAEKAIgKQMAENAFDwsgAUKAgICAcFQNAAJAIAAgAkE7IAJBABAUIgJC/////29YBEBBfyEDIAJCgICAgHCDQoCAgIDgAFENASAAQcYwQQAQFQwBCyABpyEEIAKnIQUCQANAAkAgBCgCECgCLCIDRQRAQQAhAyAELwEGQTBHDQQgBCAEKAIAQQFqNgIAIAStQoCAgIBwhCEBA0AgACABEIwCIgFCgICAgHCDIgZCgICAgCBRDQRBfyEDIAZCgICAgOAAUQ0FIAGnIAVGBEAgACABEA8MAwsgABB7RQ0ACyAAIAEQDwwECyADIgQgBUcNAQsLQQEhAwwBC0EAIQMLIAAgAhAPCyADC9IDAgJ+An8jAEEgayIEJAACQCABQv///////////wCDIgNCgICAgICAwIA8fSADQoCAgICAgMD/wwB9VARAIAFCBIYgAEI8iIQhAyAAQv//////////D4MiAEKBgICAgICAgAhaBEAgA0KBgICAgICAgMAAfCECDAILIANCgICAgICAgIBAfSECIABCgICAgICAgIAIUg0BIAIgA0IBg3whAgwBCyAAUCADQoCAgICAgMD//wBUIANCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQIMAQtCgICAgICAgPj/ACECIANC////////v//DAFYNAEIAIQIgA0IwiKciBUGR9wBJDQAgBEEQaiAAIAFC////////P4NCgICAgICAwACEIgIgBUGB9wBrEGcgBCAAIAJBgfgAIAVrEI4CIAQpAwhCBIYgBCkDACIAQjyIhCECIAQpAxAgBCkDGIRCAFKtIABC//////////8Pg4QiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICA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cINCgICAgJB/UXFFBEAgAEGN9wBBABAVDAELIAAgAUESEGUiAUKAgICAcINCgICAgOAAUQ0AIAGnIgQgAz4CJCAEIAI+AiAgACABQdUAQgBBAhAZGiABDwsgACADEA8gACACEA9CgICAgOAACw0AIAAgAUHOlQEQ/wMLZwEBfwJAIAFBAE4EQCAAKAIQIgIoAiwgAU0NASACKAI4IAFBAnRqKAIAIgEgASgCAEEBajYCACAAIAFBBBCABA8LQfKRAUGu/ABBzhdBmdIAEAAAC0HZ3wBBrvwAQc8XQZnSABAAAAtEAQF/IABB+AFqIQIgAEH0AWohAAN/IAAgAigCACICRgRAQQAPCyABIAJBBGsoAgBGBH8gAkEIawUgAkEEaiECDAELCwtSAgJ/AX4CQCAAKAIQKAKMASIBRQ0AIAEpAwgiA0KAgICAcFQNACADpyIBLwEGEO4BRQ0AIAEoAiAiAS0AEkEEcUUNACAAIAEoAkAQGCECCyACC6oPAgV/D34jAEHQAmsiBSQAIARC////////P4MhCyACQv///////z+DIQogAiAEhUKAgICAgICAgIB/gyENIARCMIinQf//AXEhCAJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAhB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiDEKAgICAgIDA//8AVCAMQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQ0MAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhDSADIQEMAgsgASAMQoCAgICAgMD//wCFhFAEQCADIAJCgICAgICAwP//AIWEUARAQgAhAUKAgICAgIDg//8AIQ0MAwsgDUKAgICAgIDA//8AhCENQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAQgAhAQwCCyABIAyEUARAQoCAgICAgOD//wAgDSACIAOEUBshDUIAIQEMAgsgAiADhFAEQCANQoCAgICAgMD//wCEIQ1CACEBDAILIAxC////////P1gEQCAFQcACaiABIAogASAKIApQIgYbeSAGQQZ0rXynIgZBD2sQZ0EQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIHG3kgB0EGdK18pyIHQQ9rEGcgBiAHakEQayEGIAUpA7gCIQsgBSkDsAIhAwsgBUGgAmogC0KAgICAgIDAAIQiEkIPhiADQjGIhCICQgBCgICAgLDmvIL1ACACfSIEQgAQZiAFQZACakIAIAUpA6gCfUIAIARCABBmIAVBgAJqIAUpA5gCQgGGIAUpA5ACQj+IhCIEQgAgAkIAEGYgBUHwAWogBEIAQgAgBSkDiAJ9QgAQZiAFQeABaiAFKQP4AUIBhiAFKQPwAUI/iIQiBEIAIAJCABBmIAVB0AFqIARCAEIAIAUpA+gBfUIAEGYgBUHAAWogBSkD2AFCAYYgBSkD0AFCP4iEIgRCACACQgAQZiAFQbABaiAEQgBCACAFKQPIAX1CABBmIAVBoAFqIAJCACAFKQO4AUIBhiAFKQOwAUI/iIRCAX0iAkIAEGYgBUGQAWogA0IPhkIAIAJCABBmIAVB8ABqIAJCAEIAIAUpA6gBIAUpA6ABIgwgBSkDmAF8IgQgDFStfCAEQgFWrXx9QgAQZiAFQYABakIBIAR9QgAgAkIAEGYgBiAJIAhraiEGAn8gBSkDcCITQgGGIg4gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIMQiCIIgsgECAUVq0gDiAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig4gEVStIA4gDiATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig5WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCAOIA4gD0IghnwiDlatfCAOIA4gFEL/////D4MiFCAKfiIRIAIgC358Ig8gEVStIA8gDyATIAxC/v///w+DIhF+fCIPVq18fCIOVq18IA4gBCAUfiIYIBAgEX58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA5UrXwgBCAPIAIgEX4iAiALIBR+fCILQiCIIAIgC1atQiCGhHwiAiAPVK0gAiAQQiCGfCACVK18fCICIARUrXwiBEL/////////AFgEQCAWIBeEIRUgBUHQAGogAiAEIAMgEhBmIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hCkIAIAF9IQsgBkH+/wBqDAELIAVB4ABqIARCP4YgAkIBiIQiAiAEQgGIIgQgAyASEGYgAUIwhiAFKQNofSAFKQNgIgxCAFKtfSEKQgAgDH0hCyABIQwgBkH//wBqCyIGQf//AU4EQCANQoCAgICAgMD//wCEIQ1CACEBDAELAn4gBkEASgRAIApCAYYgC0I/iIQhCiAEQv///////z+DIAatQjCGhCEMIAtCAYYMAQsgBkGPf0wEQEIAIQEMAgsgBUFAayACIARBASAGaxCOAiAFQTBqIAwgFSAGQfAAahBnIAVBIGogAyASIAUpA0AiAiAFKQNIIgwQZiAFKQM4IAUpAyhCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiAVStfSEKIAQgAX0LIQQgBUEQaiADIBJCA0IAEGYgBSADIBJCBUIAEGYgDCACIAIgAyACQgGDIgEgBHwiA1QgCiABIANWrXwiASASViABIBJRG618IgJWrXwiBCACIAIgBEKAgICAgIDA//8AVCADIAUpAxBWIAEgBSkDGCIEViABIARRG3GtfCICVq18IgQgAiAEQoCAgICAgMD//wBUIAMgBSkDAFYgASAFKQMIIgNWIAEgA1Ebca18IgEgAlStfCANhCENCyAAIAE3AwAgACANNwMIIAVB0AJqJAALyDIDEX8HfgF8IwBBEGsiECQAIwBBoAFrIg8kACAPIAA2AjwgDyAANgIUIA9BfzYCGCAPQRBqIgIQmgQjAEEwayIOJAADQAJ/IAIoAgQiACACKAJoRwRAIAIgAEEBajYCBCAALQAADAELIAIQVQsiBRCOBg0AC0EBIQMCQAJAIAVBK2sOAwABAAELQX9BASAFQS1GGyEDIAIoAgQiACACKAJoRwRAIAIgAEEBajYCBCAALQAAIQUMAQsgAhBVIQULAkACQAJAA0AgBkHsHGosAAAgBUEgckYEQAJAIAZBBksNACACKAIEIgAgAigCaEcEQCACIABBAWo2AgQgAC0AACEFDAELIAIQVSEFCyAGQQFqIgZBCEcNAQwCCwsgBkEDRwRAIAZBCEYNASAGQQRJDQIgBkEIRg0BCyACKQNwIhJCAFkEQCACIAIoAgRBAWs2AgQLIAZBBEkNACASQgBTIQADQCAARQRAIAIgAigCBEEBazYCBAsgBkEBayIGQQNLDQALC0IAIRIjAEEQayIFJAACfiADskMAAIB/lLwiA0H/////B3EiAEGAgIAEa0H////3B00EQCAArUIZhkKAgICAgICAwD98DAELIAOtQhmGQoCAgICAgMD//wCEIABBgICA/AdPDQAaQgAgAEUNABogBSAArUIAIABnIgBB0QBqEGcgBSkDACESIAUpAwhCgICAgICAwACFQYn/ACAAa61CMIaECyETIA4gEjcDACAOIBMgA0GAgICAeHGtQiCGhDcDCCAFQRBqJAAgDikDCCESIA4pAwAhEwwBCwJAAkAgBg0AQQAhBgNAIAZB4NEAaiwAACAFQSByRw0BAkAgBkEBSw0AIAIoAgQiACACKAJoRwRAIAIgAEEBajYCBCAALQAAIQUMAQsgAhBVIQULIAZBAWoiBkEDRw0ACwwBCwJAAkAgBg4EAAEBAgELAkAgBUEwRw0AAn8gAigCBCIAIAIoAmhHBEAgAiAAQQFqNgIEIAAtAAAMAQsgAhBVC0FfcUHYAEYEQCADIQBBACEDIwBBsANrIgQkAAJ/AkAgAigCBCIFIAIoAmhHBEAgAiAFQQFqNgIEIAUtAAAhAwwBC0EADAELQQELIQYDQAJAAkACQAJAAn4CQAJAAn8gBkUEQCACEFUMAQsgA0EwRwRAQoCAgICAgMD/PyETIANBLkYNA0IADAQLIAIoAgQiBSACKAJoRg0BQQEhCyACIAVBAWo2AgQgBS0AAAshA0EBIQYMBwtBASELDAQLAn8gAigCBCIDIAIoAmhHBEAgAiADQQFqNgIEIAMtAAAMAQsgAhBVCyIDQTBGDQFBASEMQgALIRYMAQsDQCAVQgF9IRVBASEMAn8gAigCBCIDIAIoAmhHBEAgAiADQQFqNgIEIAMtAAAMAQsgAhBVCyIDQTBGDQALQQEhCwsDQCADQSByIQoCQAJAIANBMGsiBUEKSQ0AIANBLkYgCkHhAGtBBklyRQRAIAMhBgwFC0EuIQYgA0EuRw0AIAwNBEEBIQwgEiEVDAELIApB1wBrIAUgA0E5ShshAwJAIBJCB1cEQCADIAdBBHRqIQcMAQsgEkIcWARAIARBMGogAxB5IARBIGogFyATQgBCgICAgICAwP0/EC4gBEEQaiAEKQMwIAQpAzggBCkDICIXIAQpAygiExAuIAQgBCkDECAEKQMYIBQgFhBwIAQpAwghFiAEKQMAIRQMAQsgA0UgCHINACAEQdAAaiAXIBNCAEKAgICAgICA/z8QLiAEQUBrIAQpA1AgBCkDWCAUIBYQcCAEKQNIIRZBASEIIAQpA0AhFAsgEkIBfCESQQEhCwsgAigCBCIDIAIoAmhHBH8gAiADQQFqNgIEIAMtAAAFIAIQVQshAwwACwALQQAhBgwBCwsCfiALRQRAAkAgAikDcEIAUw0AIAIgAigCBCIDQQJrNgIEIAxFDQAgAiADQQNrNgIECyAEQeAAaiAAt0QAAAAAAAAAAKIQqwEgBCkDYCEUIAQpA2gMAQsgEkIHVwRAIBIhEwNAIAdBBHQhByATQgF8IhNCCFINAAsLAkACQAJAIAZBX3FB0ABGBEAgAhCHBiITQoCAgICAgICAgH9SDQMgAikDcEIAWQ0BDAILQgAhEyACKQNwQgBTDQILIAIgAigCBEEBazYCBAtCACETCyAHRQRAIARB8ABqIAC3RAAAAAAAAAAAohCrASAEKQNwIRQgBCkDeAwBCyAVIBIgDBtCAoYgE3xCIH0iEkKzCFkEQEGg1ARBxAA2AgAgBEGgAWogABB5IARBkAFqIAQpA6ABIAQpA6gBQn9C////////v///ABAuIARBgAFqIAQpA5ABIAQpA5gBQn9C////////v///ABAuIAQpA4ABIRQgBCkDiAEMAQsgEkLsdVkEQCAHQQBOBEADQCAEQaADaiAUIBZCAEKAgICAgIDA/79/EHAgFCAWQoCAgICAgID/PxDpBSEDIARBkANqIBQgFiAEKQOgAyAUIANBAE4iAxsgBCkDqAMgFiADGxBwIBJCAX0hEiAEKQOYAyEWIAQpA5ADIRQgB0EBdCADciIHQQBODQALCwJ+QTUgEkLSCHwiE6ciA0EAIANBAEobIBNCNVkbIgNB8QBPBEAgBEGAA2ogABB5IAQpA4gDIRUgBCkDgAMhF0IADAELIARB4AJqRAAAAAAAAPA/QZABIANrENoBEKsBIARB0AJqIAAQeSAEQfACaiAEKQPgAiAEKQPoAiAEKQPQAiIXIAQpA9gCIhUQiQYgBCkD+AIhGCAEKQPwAgshEyAEQcACaiAHIAdBAXFFIBQgFkIAQgAQ7QFBAEcgA0EgSXFxIgBqEIYCIARBsAJqIBcgFSAEKQPAAiAEKQPIAhAuIARBkAJqIAQpA7ACIAQpA7gCIBMgGBBwIARBoAJqIBcgFUIAIBQgABtCACAWIAAbEC4gBEGAAmogBCkDoAIgBCkDqAIgBCkDkAIgBCkDmAIQcCAEQfABaiAEKQOAAiAEKQOIAiATIBgQggQgBCkD8AEiFSAEKQP4ASITQgBCABDtAUUEQEGg1ARBxAA2AgALIARB4AFqIBUgEyASpxCIBiAEKQPgASEUIAQpA+gBDAELQaDUBEHEADYCACAEQdABaiAAEHkgBEHAAWogBCkD0AEgBCkD2AFCAEKAgICAgIDAABAuIARBsAFqIAQpA8ABIAQpA8gBQgBCgICAgICAwAAQLiAEKQOwASEUIAQpA7gBCyESIA4gFDcDECAOIBI3AxggBEGwA2okACAOKQMYIRIgDikDECETDAQLIAIpA3BCAFMNACACIAIoAgRBAWs2AgQLIAUhACADIQZBACEDIwBBkMYAayIBJAACQAJ/A0AgAEEwRwRAAkAgAEEuRw0EIAIoAgQiACACKAJoRg0AIAIgAEEBajYCBCAALQAADAMLBSACKAIEIgAgAigCaEcEf0EBIQMgAiAAQQFqNgIEIAAtAAAFQQEhAyACEFULIQAMAQsLIAIQVQshAEEBIQggAEEwRw0AA0AgEkIBfSESAn8gAigCBCIAIAIoAmhHBEAgAiAAQQFqNgIEIAAtAAAMAQsgAhBVCyIAQTBGDQALQQEhAwsgAUEANgKQBiAOAn4CQAJAAkAgAEEuRiIFIABBMGsiDUEJTXIEQANAAkAgBUEBcQRAIAhFBEAgEyESQQEhCAwCCyADRSEFDAQLIBNCAXwhEyAHQfwPTARAIAsgE6cgAEEwRhshCyABQZAGaiAHQQJ0aiIDIAoEfyAAIAMoAgBBCmxqQTBrBSANCzYCAEEBIQNBACAKQQFqIgAgAEEJRiIAGyEKIAAgB2ohBwwBCyAAQTBGDQAgASABKAKARkEBcjYCgEZB3I8BIQsLAn8gAigCBCIAIAIoAmhHBEAgAiAAQQFqNgIEIAAtAAAMAQsgAhBVCyIAQS5GIgUgAEEwayINQQpJcg0ACwsgEiATIAgbIRIgA0UgAEFfcUHFAEdyRQRAAkAgAhCHBiIUQoCAgICAgICAgH9SDQBCACEUIAIpA3BCAFMNACACIAIoAgRBAWs2AgQLIBIgFHwhEgwDCyADRSEFIABBAEgNAQsgAikDcEIAUw0AIAIgAigCBEEBazYCBAsgBUUNAEGg1ARBHDYCACACEJoEQgAhE0IADAELIAEoApAGIgBFBEAgASAGt0QAAAAAAAAAAKIQqwEgASkDACETIAEpAwgMAQsgEiATUiATQglVckUEQCABQTBqIAYQeSABQSBqIAAQhgIgAUEQaiABKQMwIAEpAzggASkDICABKQMoEC4gASkDECETIAEpAxgMAQsgEkKaBFkEQEGg1ARBxAA2AgAgAUHgAGogBhB5IAFB0ABqIAEpA2AgASkDaEJ/Qv///////7///wAQLiABQUBrIAEpA1AgASkDWEJ/Qv///////7///wAQLiABKQNAIRMgASkDSAwBCyASQut1VwRAQaDUBEHEADYCACABQZABaiAGEHkgAUGAAWogASkDkAEgASkDmAFCAEKAgICAgIDAABAuIAFB8ABqIAEpA4ABIAEpA4gBQgBCgICAgICAwAAQLiABKQNwIRMgASkDeAwBCyAKBEAgCkEITARAIAFBkAZqIAdBAnRqIgAoAgAhCQNAIAlBCmwhCSAKQQFqIgpBCUcNAAsgACAJNgIACyAHQQFqIQcLAkAgCyASpyIISiALQQhKciAIQRFKcg0AIAhBCUYEQCABQcABaiAGEHkgAUGwAWogASgCkAYQhgIgAUGgAWogASkDwAEgASkDyAEgASkDsAEgASkDuAEQLiABKQOgASETIAEpA6gBDAILIAhBCEwEQCABQZACaiAGEHkgAUGAAmogASgCkAYQhgIgAUHwAWogASkDkAIgASkDmAIgASkDgAIgASkDiAIQLiABQeABakEAIAhrQQJ0QeDBBGooAgAQeSABQdABaiABKQPwASABKQP4ASABKQPgASABKQPoARDjBSABKQPQASETIAEpA9gBDAILIAhBEU5BACABKAKQBiIAIAhBfWxB0ABqdhsNACABQeACaiAGEHkgAUHQAmogABCGAiABQcACaiABKQPgAiABKQPoAiABKQPQAiABKQPYAhAuIAFBsAJqIAhBAnRBmMEEaigCABB5IAFBoAJqIAEpA8ACIAEpA8gCIAEpA7ACIAEpA7gCEC4gASkDoAIhEyABKQOoAgwBCwNAIAFBkAZqIAciAEEBayIHQQJ0aigCAEUNAAsCQCAI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AAEiAjoAASAAQQFqIQAgAUEBaiEBIAINAAsLC/UBAgF/AX4jAEHQAGsiAyQAAkACfiABQQBIBEAgAyABQf////8HcTYCACADQRBqIgFBwABB3CIgAxBOGiAAIAEQYgwBCyAAKAIQIgAoAiwgAU0NAQJAAkAgACgCOCIAIAFBAnRqKAIAIgEpAgQiBEKAgICAgICAgECDQoCAgICAgICAwABRDQAgAkUNASAEp0GAgICAeEcNACAAKAK8ASEBCyABIAEoAgBBAWo2AgAgAa1CgICAgJB/hAwBCyABIAEoAgBBAWo2AgAgAa1CgICAgIB/hAshBCADQdAAaiQAIAQPC0Hv3wBBrvwAQZgYQYfiABAAAAvrAgECfyAAIAEoAgQQEwNAIAEoAhAhAyACIAEoAhRORQRAIAAgAyACQQN0aigCABATIAJBAWohAgwBCwsgACgCECICQRBqIAMgAigCBBEAAEEAIQIDQAJAIAEoAhwhAyACIAEoAiBODQAgAyACQRRsaiIDKAIIRQRAIAAoAhAgAygCBBDrAQsgACADKAIQEBMgACADKAIMEBMgAkEBaiECDAELCyAAKAIQIgJBEGogAyACKAIEEQAAIAAoAhAiAkEQaiABKAIoIAIoAgQRAABBACECA0AgASgCNCEDIAIgASgCOE5FBEAgACADIAJBDGxqKAIEEBMgAkEBaiECDAELCyAAKAIQIgJBEGogAyACKAIEEQAAIAAgASkDQBAPIAAgASkDSBAPIAAgASkDYBAPIAAgASkDaBAPIAEoAggiAiABKAIMIgM2AgQgAyACNgIAIAFCADcCCCAAKAIQIgBBEGogASAAKAIEEQAACzABAX8gACgCOCABQQJ0aigCACIBIAEoAgAiAkEBazYCACACQQFMBEAgACABEKIDCwvAAQIBfwJ+QX8hAwJAIABCAFIgAUL///////////8AgyIEQoCAgICAgMD//wBWIARCgICAgICAwP//AFEbDQAgAkL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFJxDQAgACAEIAWEhFAEQEEADwsgASACg0IAWQRAIAEgAlIgASACU3ENASAAIAEgAoWEQgBSDwsgAEIAUiABIAJVIAEgAlEbDQAgACABIAKFhEIAUiEDCyADCwoAIABBfHEQpAMLZQEEfwNA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sgEhAyAAIAIQDyAAIAAgA0HdwAAQsgEiAiADQQEgARAhIQQgACACEA8gACADEA8gBAsMACAAIAEpAwAQswELygYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABDtAUUNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiBkH//wFHBEBBBCAGDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALCyEGIAJCMIinIghB//8BcSIHQf//AUYNACAGDQELIAVBEGogASACIAMgBBAuIAUgBSkDECICIAUpAxgiASACIAEQ4wUgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRDtAUEATARAIAEgCiADIAkQ7QEEQCABIQQMAgsgBUHwAGogASACQgBCABAuIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEGIAcEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEC4gBSkDaCIKQjCIp0H4AGshByAFKQNgCyEEIAZFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABAuIAUpA1giCUIwiKdB+ABrIQYgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSARAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABAuIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAHQQFrIgcgBkoNAAsgBiEHCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEC4gBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIQEgB0EBayEHIARCAYYhBCABIAlCAYaEIglCgICAgICAwABUDQALCyAIQYCAAnEhBiAHQQBMBEAgBUFAayAEIAlC////////P4MgB0H4AGogBnKtQjCGhEIAQoCAgICAgMDDPxAuIAUpA0ghAiAFKQNAIQQMAQsgCUL///////8/gyAGIAdyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAF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QCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAAALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC14BBH8gACgCACECA0AgAiwAACIDENECBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFQX8LIQEMAQsLIAEL3BICEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRICQAJAAkACQANAIAEhDCAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCAMIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByAMayIHIA5B/////wdzIhhKDQcgAARAIAAgDCAHEFsLIAcNBiAIIAE2AkwgAUEBaiEHQX8hDwJAIAEsAAEiChDRAkUNACABLQACQSRHDQAgAUEDaiEHIApBMGshD0EBIRMLIAggBzYCTEEAIQ0CQCAHLAAAIglBIGsiAUEfSwRAIAchCgwBCyAHIQpBASABdCIBQYnRBHFFDQADQCAIIAdBAWoiCjYCTCABIA1yIQ0gBywAASIJQSBrIgFBIE8NASAKIQdBASABdCIBQYnRBHENAAsLAkAgCUEqRgRAAn8CQCAKLAABIgEQ0QJFDQAgCi0AAkEkRw0AIAFBAnQgBGpBwAFrQQo2AgAgCkEDaiEJQQEhEyAKLAABQQN0IANqQYADaygCAAwBCyATDQYgCkEBaiEJIABFBEAgCCAJNgJMQQAhE0EAIRAMAwsgAiACKAIAIgFBBGo2AgBBACETIAEoAgALIRAgCCAJNgJMIBBBAE4NAUEAIBBrIRAgDUGAwAByIQ0MAQsgCEHMAGoQgwYiEEEASA0IIAgoAkwhCQtBACEHQX8hCwJ/IAktAABBLkcEQCAJIQFBAAwBCyAJLQABQSpGBEACfwJAIAksAAIiARDRAkUNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgEw0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIMGIQsgCCgCTCEBQQELIRQDQCAHIRVBHCEKIAEiESwAACIHQfsAa0FGSQ0JIBFBAWohASAHIBVBOmxqQZ/BBGotAAAiB0EBa0EISQ0ACyAIIAE2AkwCQAJAIAdBG0cEQCAHRQ0LIA9BAE4EQCAEIA9BAnRqIAc2AgAgCCADIA9BA3RqKQMANwNADAILIABFDQggCEFAayAHIAIgBhCCBgwCCyAPQQBODQoLQQAhByAARQ0HCyANQf//e3EiCSANIA1BgMAAcRshDUEAIQ9BrCEhFiASIQoCQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCARLAAAIgdBX3EgByAHQQ9xQQNGGyAHIBUbIgdB2ABrDiEEFBQUFBQUFBQOFA8GDg4OFAYUFBQUAgUDFBQJFAEUFAQACwJAIAdBwQBrDgcOFAsUDg4OAAsgB0HTAEYNCQwTCyAIKQNAIRlBrCEMBQtBACEHAkACQAJAAkACQAJAAkAgFUH/AXEOCAABAgMEGgUGGgsgCCgCQCAONgIADBkLIAgoAkAgDjYCAAwYCyAIKAJAIA6sNwMADBcLIAgoAkAgDjsBAAwWCyAIKAJAIA46AAAMFQsgCCgCQCAONgIADBQLIAgoAkAgDqw3AwAMEwtBCCALIAtBCE0bIQsgDUEIciENQfgAIQcLIBIhDCAHQSBxIREgCCkDQCIZUEUEQANAIAxBAWsiDCAZp0EPcUGwxQRqLQAAIBFyOgAAIBlCD1YhCSAZQgSIIRkgCQ0ACwsgDUEIcUUgCCkDQFByDQMgB0EEdkGsIWohFkECIQ8MAwsgEiEHIAgpA0AiGVBFBEADQCAHQQFrIgcgGadBB3FBMHI6AAAgGUIHViEMIBlCA4ghGSAMDQALCyAHIQwgDUEIcUUNAiALIBIgDGsiB0EBaiAHIAtIGyELDAILIAgpA0AiGUIAUwRAIAhCACAZfSIZNwNAQQEhD0GsIQwBCyANQYAQcQRAQQEhD0GtIQwBC0GuIUGsISANQQFxIg8bCyEWIBkgEhCVAiEMCyAUQQAgC0EASBsNDiANQf//e3EgDSAUGyENIAgpA0AiGUIAUiALckUEQCASIQxBACELDAwLIAsgGVAgEiAMa2oiByAHIAtIGyELDAsLIAgoAkAiB0GgkgEgBxsiDEEAQf////8HIAsgC0H/////B08bIgoQ+wEiByAMayAKIAcbIgcgDGohCiALQQBOBEAgCSENIAchCwwLCyAJIQ0gByELIAotAAANDQwKCyALBEAgCCgCQAwCC0EAIQcgAEEgIBBBACANEGMMAgsgCEEANgIMIAggCCkDQD4CCCAIIAhBCGoiBzYCQEF/IQsgBwshCUEAIQcCQANAIAkoAgAiDEUNASAIQQRqIAwQgQYiCkEASCIMIAogCyAHa0tyRQRAIAlBBGohCSALIAcgCmoiB0sNAQwCCwsgDA0NC0E9IQogB0EASA0LIABBICAQIAcgDRBjIAdFBEBBACEHDAELQQAhCiAIKAJAIQkDQCAJKAIAIgxFDQEgCEEEaiAMEIEGIgwgCmoiCiAHSw0BIAAgCEEEaiAMEFsgCUEEaiEJIAcgCksNAAsLIABBICAQIAcgDUGAwABzEGMgECAHIAcgEEgbIQcMCAsgFEEAIAtBAEgbDQhBPSEKIAAgCCsDQCAQIAsgDSAHIAURSQAiB0EATg0HDAkLIAggCCkDQDwAN0EBIQsgFyEMIAkhDQwECyAHLQABIQkgB0EBaiEHDAALAAsgAA0HIBNFDQJBASEHA0AgBCAHQQJ0aigCACIABEAgAyAHQQN0aiAAIAIgBhCCBkEBIQ4gB0EBaiIHQQpHDQEMCQsLQQEhDiAHQQpPDQcDQCAEIAdBAnRqKAIADQEgB0EBaiIHQQpHDQALDAcLQRwhCgwECyALIAogDGsiESALIBFKGyIJIA9B/////wdzSg0CQT0hCiAQIAkgD2oiCyALIBBIGyIHIBhKDQMgAEEgIAcgCyANEGMgACAWIA8QWyAAQTAgByALIA1BgIAEcxBjIABBMCAJIBFBABBjIAAgDCAREFsgAEEgIAcgCyANQYDAAHMQYwwBCwtBACEODAMLQT0hCgtBoNQEIAo2AgALQX8hDgsgCEHQAGokACAOC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEIUGIQAgASgCAEFAags2AgAgAA8LIAEgAkH+B2s2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsLqAMDAnwDfwF+IAC9IghCIIinIgVB+P///wdxQaiolv8DSSIGRQRARBgtRFT7Iek/IAAgAJogCEIAWSIHG6FEB1wUMyamgTwgASABmiAHG6GgIQAgBUEfdiEFRAAAAAAAAAAAIQELIAAgACAAIACiIgSiIgNEY1VVVVVV1T+iIAQgAyAEIASiIgMgAyADIAMgA0RzU2Dby3XzvqJEppI3oIh+FD+gokQBZfLy2ERDP6CiRCgDVskibW0/oKJEN9YGhPRklj+gokR6/hARERHBP6AgBCADIAMgAyADIANE1Hq/dHAq+z6iROmn8DIPuBI/oKJEaBCNGvcmMD+gokQVg+D+yNtXP6CiRJOEbunjJoI/oKJE/kGzG7qhqz+goqCiIAGgoiABoKAiA6AhASAGRQRAQQEgAkEBdGu3IgQgACADIAEgAaIgASAEoKOhoCIAIACgoSIAmiAAIAUbDwsgAgR8RAAAAAAAAPC/IAGjIgQgBL1CgICAgHCDvyIEIAMgAb1CgICAgHCDvyIBIAChoaIgBCABokQAAAAAAADwP6CgoiAEoAUgAQsL9wMCBH8BfgJAAkACQAJAAkACQAJAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABBVCyICQStrDgMAAQABCwJ/IAAoAgQiASAAKAJoRwRAIAAgAUEBajYCBCABLQAADAELIAAQVQsiAUE6a0F1SwRAIAJBLUYhBCABIQIMAgsgACkDcEIAWQ0CDAULIAJBOmtBdkkNAgsgAkEwayIDQQpJBEBBACEBA0AgAiABQQpsaiEBIAFBMGsiAUHMmbPmAEgCfyAAKAIEIgIgACgCaEcEQCAAIAJBAWo2AgQgAi0AAAwBCyAAEFULIgJBMGsiA0EJTXENAAsgAawhBQsCQCADQQpPDQADQCACrSAFQgp+fEIwfSEFAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABBVCyICQTBrIgNBCUsNASAFQq6PhdfHwuujAVMNAAsLIANBCkkEQANAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABBVC0Ewa0EKSQ0ACwsgACkDcEIAWQRAIAAgACgCBEEBazYCBAtCACAFfSAFIAQbDwsgACAAKAIEQQFrNgIEDAELIAApA3BCAFMNAQsgACAAKAIEQQFrNgIEC0KAgICAgICAgIB/C78CAQF/IwBB0ABrIgQkAAJAIANBgIABTgRAIARBIGogASACQgBCgICAgICAgP//ABAuIAQpAyghAiAEKQMgIQEgA0H//wFJBEAgA0H//wBrIQMMAgsgBEEQaiABIAJCAEKAgICAgICA//8AEC5B/f8CIAMgA0H9/wJOG0H+/wFrIQMgBCkDGCECIAQpAxAhAQwBCyADQYGAf0oNACAEQUBrIAEgAkIAQoCAgICAgIA5EC4gBCkDSCECIAQpA0AhASADQfSAfksEQCADQY3/AGohAwwBCyAEQTBqIAEgAkIAQoCAgICAgIA5EC5B6IF9IAMgA0HogX1MG0Ga/gFqIQMgBCkDOCECIAQpAzAhAQsgBCABIAJCACADQf//AGqtQjCGEC4gACAEKQMINwMIIAAgBCkDADcDACAEQdAAaiQACzUAIAAgATcDACAAIAJC////////P4MgBEIwiKdBgIACcSACQjCIp0H//wFxcq1CMIaENwMIC0UBAnwgACACIAKiIgQ5AwAgASACIAJEAAAAAgAAoEGiIgMgAiADoaAiAqEiAyADoiACIAKgIAOiIAIgAqIgBKGgoDkDAAvaAQEEfyAAKAJUIQMCQCAAKAIUIgYgACgCHCIFRwRAIAAgBTYCFCAAIAUgBiAFayIFEIsGIAVJDQELAkAgAygCEEHhAEcEQCADKAIAIQQMAQsgAyADKAIEIgQ2AgALIAMoAgwgBGogASADKAIIIARrIgEgAiABIAJJGyIEEB8aIAMgAygCACAEaiIBNgIAIAEgAygCBE0NACADIAE2AgQCfyADKAIIIgIgAUsEQCADKAIMIAFqDAELIAAtAABBBHFFIAJFcg0BIAIgAygCDGpBAWsLQQA6AAALIAQLGAEBfyMAQRBrIgEgADkDCCABKwMIIACiCygAIAFEAAAAAAAAwH+iIABEi90aFWYglsCgEOsDokQAAAAAAADAf6ILEAAgAEEgRiAAQQlrQQVJcgsWACAARQRAQQAPC0Gg1AQgADYCAEF/CyMAAkACQAJAIAIOAgABAgsgACABcg8LIAAgAXMPCyAAIAFxC44EAQp/IwBBIGsiCSQAIAAgAUcEQAJAAkACQCABKAIMRQRAAkACQCABKAIIQf7///8Haw4CAAMBCyABKAIEDQILIAAgARBEGgwDCyABKAIEDQAgASgCACEFIAAgAkEBdEHDAGoiDEEGdiIIEEENACAFKAIAQQAgCEEDdCIEIAUoAgQRAQAiBkUNACAEIAZBACAIQQF0IgcgByABKAIMIgQgBCAHShsiC2tBAnQQKyIGaiALQQJ0IgRrIAEoAhAgASgCDEECdGogBGsgBBAfGiABLQAIQQFxBEAgBiAGIAdBABCSBiEKCyAAKAIQIQ0gCSEEAkAgDEGACE8EQCAFKAIAQQAgB0H8//8/cUEEaiAFKAIEEQEAIgRFDQELIAUgDSAGIAggBCAGIAhBAnRqEJMGIQcgBCAJRwRAIAUoAgAgBEEAIAUoAgQRAQAaCyAHRQ0CCyAFKAIAIAZBACAFKAIEEQEAGgsgABA1DAELAkACQCAKRQRAIAYgCEEBahCoAyEEIAUoAgAgBkEAIAUoAgQRAQAaIAQNASABKAIQIAEoAgwgC2sQqAMNAQwCCyAFKAIAIAZBACAFKAIEEQEAGgsgACgCECIEIAQoAgBBAXI2AgALIABBADYCBCAAIAEoAghBAWpBAXU2AgggACACIAMQzgEaCyAJQSBqJAAPC0HY/QBB1PwAQdMQQY4nEAAACzwBAX8DQCACQQBMRQRAIAAgAkEBayICQQJ0IgRqIANBH3QgASAEaigCACIDQQF2cjYCAAwBCwsgA0EBcQueBAIMfwJ+IwBBEGsiCCQAAkACQCADQQFGBEAgAigCACEAIAhBDGogAigCBBCUBiEDIABB//8Dca0gAEEQdq0gCDUCDEIQhoQiEiASIANBAXStIhOAIhIgE359QhCGhCETIANBEHQhACASpyIDQYCABE8EfiATQoCAgIAQfQUgEyASIBJ+Qv3///8Pg30LIRIgACADaiEGIBJCAFMEQCASIAZBAWsiBq1CAYZ8QgF8IRILIAEgBjYCACACIBI+AgAgEkIgiKchBgwBC0F/IQ0gACABIANBAXYiB0ECdGoiCSACIANBfnEiD0ECdGoiDCADIAdrIgogBCAIQQhqEJMGDQEgCCgCCCILBEAgDCAMIAkgChCYAhoLIAAgBCACIAdBAnQiBmoiDiADIAkgChClBA0BIAQgBmooAgAhEEEAIQYDQCAGIAdGRQRAIAEgBkECdCIRaiAEIBFqKAIANgIAIAZBAWohBgwBCwsgCyAQaiILQQF2IQYgASABIAcgC0EBcRCSBgR/IA4gDiAJIAoQqgQFQQALIQQgCSAGIAoQqQMaIAQgDCALQQFNBH8gACACIANBAnRqIgAgASAHIAEgBxDXAg0CIAIgAiAAIA8QmAIFIAYLIANBAXEQ2AJrIgZBAE4NACABQQEgAxDYAhogAiABIANBAhCcBiAGaiACQQEgAxCpA2ohBgsgBSAGNgIAQQAhDQsgCEEQaiQAIA0LmAEBAn8gACABQf8BcSABQQh2Qf8BcSABQRd2Qf4DcUHgpARqLwEAIgBBAXQiAkF/c0EAIAFBEHYgACAAbGsiASACSyICGyABakEIdHIiASAAIAJqIgJBAXQiA24iACAAbGsgASAAIANsa0EIdGoiAUEfdSACQQh0IABqIgBBAWsiAkEBdEEBcnEgAWo2AgAgAiAAIAFBAEgbCzkBAX8jAEEQayIBJAAgAAR/IAFBDGogACAAZyIAQR5xdBCUBiAAQQF2dgVBAAshACABQRBqJAAgAAveCAEQfyACIAEgASACENMBIglBAEgiBxshCAJAIAkgAigCBCAFcyIFIAEoAgQiBnMiDkVyDQAgCCgCCEH9////B0oNACAAIARBB3FBAkYQiQFBAA8LIAUgBiAHGyEFIAEgAiAHGyEJAkACQAJAIAgoAgwiBgRAIAkoAgwiCw0BCyAIKAIIIgFB/v///wdOBEAgAUH/////B0YEQCAAEDVBAA8LIA5FIAkoAghB/v///wdHckUEQCAAEDVBAQ8LIAAgBRCMAUEADwsgACAIEEQaIAAgBTYCBAwBCyAAIAU2AgQgACAIKAIINgIIIAgoAggiASAJKAIIIgdrIQoCQCAORQRAQQAhBQwBC0EBIQUgCkEBSg0AIAZBBXRBAWshAiALIAZrQQV0IAFqIAdrQR9rIQ8gCSgCECEQQQAhBQNAQQAhASACQQV1IgcgBkkEQCAIKAIQIAdBAnRqKAIAIQELIBAgCyACIA9qEGgiByABRgRAIAJBIGshAiAFQSBqIQUMAQsLIAEgB3MiDWciEUEBaiEMAkAgDUECSQRAIAUgDGohBQwBCyAFIAFBf0EfIBFrIg10QX9zIgVxZyIBIAUgB0F/c3FnIgUgASAFSBsiAWohBSABIAxrIA1HDQELA0AgBSEHQQAhASACQSBrIgJBBXUiBSAGSQRAIAgoAhAgBUECdGooAgAhAQsgECALIAIgD2oQaCEMIAFFBEAgB0EgaiEFIAxBf0YNAQsLIAFnIgEgDEF/c2ciAiABIAJIGyAHaiEFCyAAIAMgBWpBIWpBBXYiAiAGIApBH2pBIG0gC2oiASABIAZIGyIBIAEgAkobIgcQQQ0BQQAgCCgCDCITIAdrIg9rIgJBH3UgAnEhFCAHIAFrIQJBACAOayEQIAkoAgwiDEEFdCENQQAgDCAHa0EFdCAKaiIRa0EFdSESIA4hAUEAIQsDQCACQQBOBEACQEEAIQIDQCACIAdGDQFBACEFIAAoAhAgAkECdGogASACIA9qIgYgCCgCDEkEfyAIKAIQIAZBAnRqKAIABUEACyAJKAIQIAkoAgwgAkEFdCARahBoIBBzIgVqIgFqIgY2AgAgASAFSSABIAZLciEBIAJBAWohAgwACwALBSACQQV0IBFqIQYCQAJ/AkAgAiAPaiIKQQBOIAogE0lxRQRAIAZBYUgiFUUEQEEAIQUgBiANSA0CCyAKQR91IBRxIgIgEiACIBJIGyACIBUbIQJBACEFQQAhCgwDCyAIKAIQIApBAnRqKAIAIQVBACAGQWFIIAYgDU5yDQEaCyAJKAIQIAwgBhBoCyEKIAJBAWohAgsgCiAQcyIGIAVqIgUgBkkgBSABIAVqIgVLciEBIAUgC3IhCwwBCwsgACgCECICIAIoAgAgC0EAR3I2AgAgDiABRXINACAAIAdBAWoQQQ0BIAAoAhAgB0ECdGpBATYCACAAIAAoAghBIGo2AggLIAAgAyAEELMCDwsgABA1QSAL2gEBAn4CQAJAIAJFBEAgAUKAgICAcIMhBSAAQS8QLSEEDAELAn4gAUKAgICAcIMiBUKAgICAMFIgAykDACIEQoCAgIBwg0KAgICAgH9SckUEQCAAQbuUASAAIAAoAhAgBKcQwQIQLUGtlAEQvgEMAQsgACAEECgLIgRCgICAgHCDQoCAgIDgAFENAQsgBUKAgICAMFENACAAIAFBBRBlIgFCgICAgHCDQoCAgIDgAFIEQCAAIAEgBBDbASAAIAFBMCAEpykCBEL/////B4NBABAZGgsgASEECyAEC1UBAX4gACADrSAErSABIAJBH3UiAGutfiAAIANxIAJqrXxCIIinIAFqIgCtQn+FfiACrSABrUIghoR8IgVCIIinIgEgA3EgBadqNgIAIAAgAWpBAWoLtgUBC38CQAJAAkACQAJAAkAgA0ECTQRAIAAoAgBBACADQQF0IgdBAXIiCEECdCAAKAIEEQEAIQYgACgCAEEAIANBAnRBCGogACgCBBEBACIFRSAGRXINAgNAIAQgB0ZFBEAgBiAEQQJ0akEANgIAIARBAWohBAwBCwsgBiAHQQJ0akEBNgIAIAAgBSAGIAggAiADEKUEDQIgA0EBaiECQQAhBANAIAIgBEZFBEAgASAEQQJ0IgdqIAUgB2ooAgA2AgAgBEEBaiEEDAELCyAGIAMQqAMNASABQQEgAhDYAhoMAQsgACgCAEEAIAMgA0EBa0EBdiIHayIIIANqIgRBAWoiDEECdCAAKAIEEQEAIgVFIAAoAgBBACAIQQxsQQhqIAAoAgQRAQAiBkVyDQEgACABIAdBAnQiCWoiCiACIAlqIAgQmQYNAiAAIAUgAiADIAogCEEBaiIJENcCDQIgBSADQQJ0aiELIAUgBEECdGohDQNAIA0oAgAEQCAKQQEgCRDYAhogCyAFIAUgAiADEJgCIAkQ2AIaDAELCyAMQQAgDEEAShshA0EAIQJBACEEA0AgAyAERkUEQCAFIARBAnRqIgtBACALKAIAIgtrIg4gAms2AgAgC0EARyACIA5LciECIARBAWohBAwBCwsgDSANKAIAQQFqNgIAIAAgBiAFIAdBAnRqIAwgB2sgCiAJENcCDQIgCEEBdCICIAdrIQNBACEEA0AgBCAHRkUEQCABIARBAnRqIAYgAyAEakECdGooAgA2AgAgBEEBaiEEDAELCyAKIAogBiACQQJ0aiAIEKoEGgtBACEEIAAoAgAgBUEAIAAoAgQRAQAaDAMLIAVFDQELIAAoAgAgBUEAIAAoAgQRAQAaC0F/IQQgBkUNAQsgACgCACAGQQAgACgCBBEBABoLIAQLbwIDfwF+IAKtQiCGIAOtgEL/////D4MhCEEBIQUDQCABIAZGRQRAIAAgBkECdGoiByAHKAIAIAUgAyAEENYCNgIAIAIgBWwgCCAFrX5CIIinIANsayIFIANBACADIAVNG2shBSAGQQFqIQYMAQsLC18BAn8gAkEfcSEEIAEgAkEFdSICSwRAIAAgAkECdGoiBSAFKAIAIAMgBHRyNgIACwJAIARFDQAgASACQQFqIgFNDQAgACABQQJ0aiIAIAAoAgAgA0EgIARrdnI2AgALC1QCA38CfiADrSEHQQAhAwNAIAIgA0ZFBEAgACADQQJ0IgVqIgYgBjUCACAErSABIAVqNQIAIAd+fHwiCD4CACAIQiCIpyEEIANBAWohAwwBCwsgBAvVAgIJfwF+QX8hBgJAIAAgASADQRMgA0EBdiIHIAdBE08bIANBFEgbIgcgAyAHayIIQQEgB3QiCUEBIAh0IgxBACAFEKcEDQAgACACIAcgCCAJIAxBACAFEKcEDQACQCADIAdHBEBBACEGA0AgBiAJRg0CIAAgASAGIAh0QQJ0IgNqIAIgA2ogCCAEIAUQnQYaIAZBAWohBgwACwALIAAgBUGoAWxqIARBA3RqIgRBzBNqNQIAIQ8gBEHIE2ooAgAhDSAFQQJ0IgZBkKkEaigCACEEIAAgBmooAgQhDkEAIQYDQCAGIAN2DQEgASAGQQJ0IgpqIgsgCygCACILIARBACAEIAtNG2sgAiAKaigCACAEIA4Q1gIiCiANbCAEIAqtIA9+QiCIp2xrNgIAIAZBAWohBgwACwALQX9BACAAIAEgByAIIAkgDEEBIAUQpwQbIQYLIAYLoQECA38CfiADNQIAIQgDQCACIAVGRQRAIAAgBUECdCIHaiAGrSABIAdqNQIAIAh+fCIJPgIAIAVBAWohBSAJQiCIpyEGDAELCyAAIAJBAnRqIAY2AgBBASAEIARBAU0bIQRBASEFA0AgBCAFRkUEQCAAIAIgBWpBAnRqIAAgBUECdCIGaiABIAIgAyAGaigCABCcBjYCACAFQQFqIQUMAQsLC5USAhp/An4CQCAAKAI4IgoNACAAKAIAQQBBuBogACgCBBEBACIKRQRAQX8PCyAKQQRqQQBBtBoQKxogACAKNgI4IAogADYCAANAIAlBBUYEQEEAIQdBACEIA0AgB0EERg0DIAdBAWoiByEAA0AgAEEFRg0BIAogCEECdCINakGQGmogDUHgqQRqNQIAQiCGIABBAnRBkKkEajUCAIA+AgAgAEEBaiEAIAhBAWohCAwACwALAAsgCiAJQQJ0IgtqQoCAgICAgICAICALQZCpBGooAgAiDa0iIYCnIg42AgRBASEIIA1BAWpBAXYhDEEAIQdBACEAA0AgAEEVRwRAIAogCUGoAWxqIABBA3RqIhBBzBNqIAitQiCGICGAPgIAIBBByBNqIAg2AgAgAEEBaiEAIAggDCANIA4Q1gIhCAwBCwsDQAJAIAdBAkcEQCAHQRRsIAtqQbCpBGooAgAhAEEAIQgDQCAIQRRGDQIgCiAJQagBbGogB0HUAGxqQRQgCGtBAnRqIgwgAK1CIIYgIYA+AuAGIAwgADYCGCAIQQFqIQggACAAIA0gDhDWAiEADAALAAsgCUEBaiEJDAILIAdBAWohBwwACwALAAsgAyAFaiIQQQV0IQ9BBCELQQMhCUEAIQdBACEOQX8hDQNAIAlBBkcEQEHcAEEAIAlrQQJ0QdSlBGooAgAiEUEEa0ECbSIAIABB3ABOGyEAA0ACQEEgIABBAWsiCCAPaiAAbiIMQQFrZ2tBACAMQQJPGyIMQRRLDQAgESAMIABBAXRqTgRAIAxBAWogDHQgCWwiCCANTw0BIAAhByAMIQ4gCSELIAghDQwBCyAIIgANAQsLIAlBAWohCQwBCwsgBwRAAkACQAJAIAZBA3FFBEAgBkEEcQ0BIAFBABBBGgwBCyAGQQJxDQELIAUhDCAEIQ0MAQsgAyEMIAIhDSAFIQMgBCECCyAKKAIAIgAoAgBBACALQQQgDnQiCGwiESAAKAIEEQEAIgQEfyAKIARBASAOdCIFIAIgA0E9IAdBPSAOdCAPTxsgByAHQT1KGyICQQUgC2siByALEKkEIAZBB3FBAUYEQCABQQAQQRoLIAZBBHEhAyAKKAIAIgAoAgAhBiAAKAIEIQkCQAJAAkACQCAOQQ1NBEBBACEAIAZBACARIAkRAQAiCUUNAiAKIAkgBSANIAwgAiAHIAsQqQQgAw0BIAFBABBBGgwBC0EAIQAgBkEAIAggCREBACIJRQ0BCyALQQAgC0EAShshByAOQQ5JIQ8CQANAIAAgB0YNAQJ/IA9FBEAgCiAJIAUgDSAMIAIgACALa0EFaiIIQQEQqQQgACAOdCEGIAkMAQsgACALa0EFaiEIIAkgACAOdCIGQQJ0agshESAAQQFqIQAgCiAEIAZBAnRqIBEgDiAOIAgQnQZFDQALIAkhAAwBCyADDQFBACEAIAFBABBBGiAKIAkQ1QIgASAQEEFFDQILIAooAgAiASgCACAEQQAgASgCBBEBABogCiAAENUCQX8PCyAKIAkQ1QILIAEoAhAhAyAQIQUgBCEJQQAhAEEAIRAjAEHgAGsiByQAIAIiBkEfcSEIQX8gAnRBf3MhBCALQQFrIgEgC2xBfm1BCmohFANAIABBBUYEQAJAIAZBAWshAkEAIAtrIQ9BACEAA0AgAEEFRwRAIAdBIGogAEECdGpBADYCACAAQQFqIQAMAQsLIANBACAFQQJ0ECshEUEBIA50IgAgAiAFQQV0aiAGbiIDIAAgA0gbIgBBACAAQQBKGyEVIARBfyAIGyEWIAJBBXYiAyABIAEgA0gbIRcgAUEAIAFBAEobIRggC0EAIAtBAEobIRkgC0ECayEMIANBAWohDSAPQQJ0QaSpBGohDyAUQQJ0IgBB4KkEaiEUIAAgCmpBkBpqIRogAUECdCIAIAdBIGoiAmohGyAHQUBrIABqIRwgA0ECdCACaiEdIAcgASADa0ECdGohHiAIQR9zIR8DQEEAIQAgECAVRg0BA0AgACAZRgRAQQAhAEEAIQEDQCAAIBhHBEAgB0FAayAAQQJ0aiESIABBAWoiAiEAA0AgACALTgRAIAIhAAwDBSAAQQJ0IgQgB0FAa2oiEyAEIA9qKAIAIgQgEygCACASKAIAa2oiEyAUIAFBAnQiIGooAgBsIAQgGiAgajUCACATrX5CIIinbGsiEyAEQQAgBCATTRtrNgIAIABBAWohACABQQFqIQEMAQsACwALCyAHIBwoAgA2AiBBASEBIAwhBANAIARBAEoEQCAPIARBAnQiAGo1AgAhISAHQUBrIABqKAIAIQJBACEAA0AgACABRwRAIAdBIGogAEECdGoiEiACrSAhIBI1AgB+fCIiPgIAIABBAWohACAiQiCIpyECDAELCyAHQSBqIAFBAnRqIAI2AgAgBEEBayEEIAFBAWohAQwBCwsgDyAEQQJ0ajUCACEhQQAhACAHKAJAIQIDQCAAIAFJBEAgAEECdCIEIAdBIGpqIhIgBCAHajUCACACrSAhIBI1AgB+fHwiIj4CACAiQiCIpyECIABBAWohAAwBCwsgAUECdCIAIAdBIGpqIAAgB2ooAgAgAmo2AgAgBiAQbCECQQAhAANAIAAgA0cEQCARIAUgAiAHQSBqIABBAnRqKAIAEJsGIABBAWohACACQSBqIQIMAQsLIBEgBSACIB0oAgAiASAWcRCbBiANIQIgAyEAAkAgCEUEQANAIAIgC04NAiAHIAIgDWtBAnRqIAdBIGogAkECdGooAgA2AgAgAkEBaiECDAALAAsDQCAAIBdHBEAgByAAIANrQQJ0aiAHQSBqIABBAWoiAEECdGooAgAiAkEBdCAfdCABIAh2cjYCACACIQEMAQsLIB4gGygCACAIdjYCAAsgEEEBaiEQDAIFIABBAnQiASAHQUBraiAJIAAgDnQgEGpBAnRqKAIAIgIgASAPaigCACIBQQAgASACTRtrNgIAIABBAWohAAwBCwALAAsACwUgByAAQQJ0akEANgIAIABBAWohAAwBCwsgB0HgAGokACAKKAIAIgAoAgAgCUEAIAAoAgQRAQAaQQAFQX8LDwsQAQALSwECfyAAIAFHBEAgACgCECICBEAgACgCACIDKAIAIAJBACADKAIEEQEAGgsgACABKQIANwIAIAAgASgCEDYCECAAIAEpAgg3AggLC6QCAQl/IAFBBnEhBiABQQJ2QQFxIQpB4OADIQMCQANAIANBrv4DTw0BIAIhBCADLQAAIgJBH3EhBQJ/IANBAWogAkEFdiICQQdHDQAaIAMsAAEiCEH/AXEhAiAIQQBOBEAgAkEHaiECIANBAmoMAQsgAy0AAiEJIAhBv39NBEAgAkEIdCAJckH5/gFrIQIgA0EDagwBCyADLQADIAJBEHRyIAlBCHRyQfn+/gVrIQIgA0EEagshAyACIARqQQFqIQICQAJAIAVBH0YEQCAGRQ0DIAZBBkYNASAEIApqIQQDQCACIARNDQQgACAEIARBAWoQfiEFIARBAmohBCAFRQ0ACwwCCyABIAV2QQFxRQ0CCyAAIAQgAhB+RQ0BCwtBfyEHCyAHC7UBAQd/IAAoAgAhBSAAKAIIIQIDQCABQQFqIgMgBU5FBEACQCACIAFBAnRqKAIAIgcgAiADQQJ0aigCAEYEQCABIQMMAQsDQAJAIAEiA0EBaiEGIAFBA2ogBU4NACACIAZBAnRqKAIAIAIgA0ECaiIBQQJ0aigCAEYNAQsLIAIgBEECdGoiASAHNgIAIAEgAiAGQQJ0aigCADYCBCAEQQJqIQQLIANBAmohAQwBCwsgACAENgIACzMAIAECfyACKAJMQQBIBEAgACABIAIQugQMAQsgACABIAIQugQLIgBGBEAPCyAAIAFuGgvPAQEDfyABIAIvAAAgAi0AAkEQdEGAgPwAcXJJBEAgAEEANgIAQQAPC0F/IQUgASACIANBAWsiBEEDbGoiAy8AACADLQACQRB0ckkEf0EAIQMDQCAEIANrQQJIRQRAIAMgBGpBAm0iBSAEIAIgBUEDbGoiBC8AACAELQACQRB0QYCA/ABxciABSyIGGyEEIAMgBSAGGyEDDAELCyAAIAIgA0EDbGoiAC8AACAALQACIgBBEHRBgID8AHFyNgIAIANBBXQgAEEFdnJBIGoFQX8LC9oaAQp/IAAoAgQhDSAAKAIIIQwDQCAFIQcgBEEBaiEIAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAIAQtAAAiCUEBaw4cAgEICQYHBRUVAAoKCw4MDREREhIaGQQEDxAYFxYLQQEhCSAGRQ0fIAcPC0EFIQogCCgAAAwBC0EDIQogCC8AAAshCCAHIA1PDRsCQCAMRQRAIAdBAWohBSAHLQAAIQkMAQsgBy8BACIJQYD4A3FBgLADRyAMQQJHciANIAdBAmoiBU1yDQAgBS8BACILQYD4A3FBgLgDRw0AIAlBCnRBgPg/cSALQf8HcXJBgIAEaiEJIAdBBGohBQsgBCAKaiEEIAAoAhgEfyAJIAAoAhwQ3QEFIAkLIAhGDSAMGwsgACABIAIgAyAEKAABIARBBWoiBGogByAJQRZrQQAQrgRBAE4NHwwZCyAIKAAAIAhqQQRqIQQMFwsgCCEEIAUgACgCACIHRg0dIAAoAhRFDRgCQCAMRQRAIAVBAWstAAAhCgwBCyAFQQJrLwEAIgpBgPgDcUGAuANHIAxBAkdyDQAgByAFQQRrIgdLDQAgBy8BACIHQYD4A3FBgLADRw0AIApB/wdxIAdB/wdxQQp0ckGAgARqIQoLIAoQrQQNHQwYCyAIIQQgByANIgVGDRwgACgCFEUNFwJAIAxFBEAgBy0AACEJDAELIAcvAQAiCUGA+ANxQYCwA0cgDEECR3IgB0ECaiANT3INACAHLwECIgVBgPgDcUGAuANHDQAgCUEKdEGA+D9xIAVB/wdxckGAgARqIQkLIAchBSAJEK0EDRwMFwsgByANRg0WAkAgDEUEQCAHQQFqIQUgBy0AACEJDAELIAcvAQAiCUGA+ANxQYCwA0cgDEECR3IgDSAHQQJqIgVNcg0AIAUvAQAiBEGA+ANxQYC4A0cNACAJQQp0QYD4P3EgBEH/B3FyQYCABGohCSAHQQRqIQULIAghBCAJEK0ERQ0bDBYLIAcgDUYNFSAMRQRAIAdBAWohBSAIIQQMGwsgB0ECaiEFIAghBCAHLwEAQYD4A3FBgLADRyAMQQJHcg0aIAUgDU8NGiAHQQRqIAUgBy8BAkGA+ANxQYC4A0YbIQUMGgsgCC0AACIFIAAoAgxPDQkgCSAFQQF0akECdCABakEsayAHNgIAIARBAmohBAwSCyAELQACIgkgACgCDE8NByAEQQNqIQQgCC0AACEFA0AgBSAJSw0SIAEgBUEDdGpCADcCACAFQQFqIQUMAAsACyACIANBAnRqIAQoAAE2AgAgA0EBaiEDIARBBWohBAwQCyADQQFrIQMMDgsgBCgAASEFIANBAnQgAmpBBGsiCCAIKAIAQQFrIgg2AgAgBCAFQQAgCBtqQQVqIQQMDgsgAiADQQJ0aiAHNgIAIANBAWohAwwMCyAEIAQoAAFBACACIANBAWsiA0ECdGooAgAgB0cbakEFaiEEDAwLQQAhC0EAIQogACgCACIEIAdHBEACQCAMRQRAIAdBAWstAAAhBQwBCyAHQQJrLwEAIgVBgPgDcUGAuANHIAxBAkdyDQAgBCAHQQRrIgRLDQAgBC8BACIEQYD4A3FBgLADRw0AIAVB/wdxIARB/wdxQQp0ckGAgARqIQULIAUQrwMhCgsgByANSQRAAkAgDEUEQCAHLQAAIQUMAQsgBy8BACIFQYD4A3FBgLADRyAMQQJHciAHQQJqIA1Pcg0AIAcvAQIiBEGA+ANxQYC4A0cNACAFQQp0QYD4P3EgBEH/B3FyQYCABGohBQsgBRCvAyELCyAHIQUgCCEEQRIgCWsgCiALc0YNEgwNCyAELQABIgggACgCDE8NDCAEQQJqIQQgASAIQQN0aiIHKAIAIghFDREgBygCBCIKRQ0RIAlBE0YNCANAIAggCk8NEiAFIAAoAgAiDkYNDQJAAkACQCAMBEAgCkECayIHLwEAIglBgPgDcUGAuANHIAxBAkdyIAcgCE1yDQEgCkEEayIKLwEAIgtBgPgDcUGAsANHDQEgCUH/B3EgC0H/B3FBCnRyQYCABGohCQwCCyAFQQFrIgUtAAAhCyAKQQFrIgotAAAhCQwCCyAHIQoLAkAgBUECayIHLwEAIgtBgPgDcUGAuANHIAxBAkdyIAcgDk1yDQAgBUEEayIFLwEAIg5BgPgDcUGAsANHDQAgC0H/B3EgDkH/B3FBCnRyQYCABGohCwwBCyAHIQULIAAoAhgEfyAJIAAoAhwiBxDdASEJIAsgBxDdAQUgCwsgCUYNAAsMDAtB7ilBwPwAQd0RQc7XABAAAAtB1ylBwPwAQdQRQc7XABAAAAsgBEEFaiIIIAggBCgAAWoiCiAJQQlGIgsbIQRBfyEJIAAgASACIAMgCiAIIAsbIAdBAEEAEK4EQQBODQ4MCwsQAQALIARBEWoiECAEKAABaiELIAQoAAkhDyAEKAAFIQ5BACEKA0ACQAJAIAAgASACIAMgECAFQQEQpQYiCUEBag4CDAEACyAKQQFqIQogCSEFIA9B/////wdGIAogD0lyDQELCyAKIA5JDQcgCyEEIAogDk0NDCAAIAEgAiADIAggBUEDIAogDmsQrgRBAE4NDAwGCyAHIAAoAgAiCUYNBiAMRQRAIAdBAWshBSAIIQQMDAsgB0ECayEFIAghBCAMQQJHDQsgBS8BAEGA+ANxQYC4A0cgBSAJTXINCyAHQQRrIgcgBSAHLwEAQYD4A3FBgLADRhshBQwLCyAHIA1PDQUCQCAMRQRAIAdBAWohBSAHLQAAIQgMAQsgBy8BACIIQYD4A3FBgLADRyAMQQJHciANIAdBAmoiBU1yDQAgBS8BACIJQYD4A3FBgLgDRw0AIAhBCnRBgPg/cSAJQf8HcXJBgIAEaiEIIAdBBGohBQsgBC8AASEHIAAoAhgEQCAIIAAoAhwQ3QEhCAsgCCAEQQNqIgooAABJDQVBACELIAggBCAHQQFrIglBA3RqKAAHSw0FA0AgCSALSQ0GIAogCSALakEBdiIEQQN0aiIOKAAAIAhLBEAgBEEBayEJDAELIA4oAAQgCEkEQCAEQQFqIQsMAQsLIAogB0EDdGohBAwKCyAHIA1PDQQCQCAMRQRAIAdBAWohBSAHLQAAIQgMAQsgBy8BACIIQYD4A3FBgLADRyAMQQJHciANIAdBAmoiBU1yDQAgBS8BACIJQYD4A3FBgLgDRw0AIAhBCnRBgPg/cSAJQf8HcXJBgIAEaiEIIAdBBGohBQsgBC8AASEHIAAoAhgEQCAIIAAoAhwQ3QEhCAsgCCAEQQNqIgovAABJDQQCQCAEIAdBAWsiCUECdGovAAUiBEH//wNGIAhB//8DT3ENACAEIAhJDQVBACEEA0AgBCAJSw0GIAhB//8DcSIOIAogBCAJakEBdiILQQJ0aiIPLwAASQRAIAtBAWshCQwBCyAPLwACIA5PDQEgC0EBaiEEDAALAAsgCiAHQQJ0aiEEDAkLA0AgCCAKTw0JIAUgDU8NBAJ/An8CQCAMBEAgCC8BACIJQYD4A3FBgLADRyAMQQJHciAIQQJqIgcgCk9yDQEgBy8BACILQYD4A3FBgLgDRw0BIAlBCnRBgPg/cSALQf8HcXJBgIAEaiEJIAhBBGoMAgsgBS0AACELIAgtAAAhCSAIQQFqIQggBUEBagwCCyAHCyEIAkAgBS8BACILQYD4A3FBgLADRyAMQQJHciAFQQJqIgcgDU9yDQAgBy8BACIOQYD4A3FBgLgDRw0AIAtBCnRBgPg/cSAOQf8HcXJBgIAEaiELIAVBBGoMAQsgBwshBSAAKAIYBH8gCSAAKAIcIgcQ3QEhCSALIAcQ3QEFIAsLIAlGDQALDAMLIAghBAwHCyAHIQUMBgtBfw8LQQAhCSAGDQELIAAoAjAhBQNAIAkhAyAFRQRAIAMPCwJAAkACQAJAIAAoAiggBUEBayIFIAAoAiRsaiIILQAAIgQOBAACAgECC0EBIQkgAw0CDAULQQEhCSADDQEgASAIQRBqIgMgACgCDEEDdBAfGiACIAMgACgCDEEDdGogCC0AASIDQQJ0EB8aIAgoAgghBSAIKAIMIgkoAAwhCkEAIQQDQAJ/AkAgBCAKRwRAIAVBAWsgDEUNAhogBUECayEHIAxBAkcNASAHLwEAQYD4A3FBgLgDRw0BIAcgACgCAE0NASAFQQRrIgUgByAFLwEAQYD4A3FBgLADRhsMAgsgCSgAACEEIAggBTYCCCAIIAgoAgRBAWsiBzYCBCAEIAlqQRBqIQQgBw0JIAAgACgCMEEBazYCMAwJCyAHCyEFIARBAWohBAwACwALIANBACAEQQFGGw0EQQAhCSADDQAgBEECRg0DCyAAIAU2AjAMAAsACyAJDwsgASAIQRBqIAAoAgxBA3QQHxoLIAgoAgghBSAIKAIMIQQgAiAIIAAoAgxBA3RqQRBqIAgtAAEiA0ECdBAfGiAAIAAoAjBBAWs2AjAMAAsAC4sCAQd/IAFBAnRBwP4DaigCACICIAFBAXRBkIAEai8BAGohCEEAIQECQANAIAIgCE8NASACQQFqIQYCQAJAIAItAAAiBEE/TQRAIAMgBEEDdmpBAWohAiABBEAgACADIAIQfg0DCyABQQFzIQEgBEEHcSACakEBaiEFDAELAn8gAyAEakH/AGsgBMBBAEgNABogBi0AACEFIARB3wBNBEAgAkECaiEGIAMgBEEIdGogBWpB//8AawwBCyACQQNqIQYgAi0AAiADIARBEHRqIAVBCHRqakH///8CawshBSADIQILIAEEQCAAIAIgBRB+DQELIAFBAXMhASAGIQIgBSEDDAELC0F/IQcLIAcLOABBsNQCIAEQrwQiAUEASARAQX4PCyAAIAFBHU0Ef0IBIAGthqcFIAFBAnRB2NgCaigCAAsQoQYLNQEBfyMAQRBrIgMkACADIAE2AgggAyACQQFqNgIMIAAgA0EIakECELEEIQAgA0EQaiQAIAALlwIBA38gASgCACICQf7/B08EQCAAQYY7QQAQOkF/DwsCQCACQQFNBEAgAEECQX8QuAEaDAELIAEoAgggAkECdGoiBEEEaygCACIDQX9GBEAgBEEIaygCACEDCyACQQF2IQIgA0H//wNNBEAgAEEVIAIQsgRBACECA0AgAiABKAIATg0CIAAgAkECdCIDIAEoAghqLwEAECogAEF/IAEoAgggA0EEcmooAgBBAWsiAyADQX5GG0H//wNxECogAkECaiECDAALAAsgAEEWIAIQsgRBACECA0AgAiABKAIATg0BIAAgAkECdCIDIAEoAghqKAIAEB0gACABKAIIIANBBHJqKAIAQQFrEB0gAkECaiECDAALAAtBAAsmAQF/IAAoAjgiAUEASARAIAAgACAAQTxqQQAQqwYiATYCOAsgAQvgAgEFfyMAQZABayIEJAAg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IgMgAkohBEKAgICAECEBIAMhAiAERQ0BDAILIAYoAgwgBWsiAyECC0KAgICAECEBIANBAEggAiADSHINAANAIAkgByADQQAgBRCzA0UEQEKBgICAECEBDAILIAIgA0chBCADQQFqIQMgBA0ACwsgACAKEA8gACALEA8LIAZBEGokACABC7ADAwd/AXwBfiMAQRBrIgUkAAJAIAAgARBZIgFCgICAgHCDQoCAgIDgAFENAAJAAkAgACADKQMAECgiDUKAgICAcINCgICAgOAAUQ0AIA2nIgkoAgRB/////wdxIQYgAaciCigCBEH/////B3EhBwJAIAQEQCAFIAcgBmsiCzYCDEF/IQhBACEEIAJBAkgNASAAIAUgAykDCBBCDQIgBSsDACIMvUL///////////8Ag0KAgICAgICA+P8AVg0BIAxEAAAAAAAAAABlBEAgBUEANgIMDAILIAwgC7djRQ0BIAUCfyAMmUQAAAAAAADgQWMEQCAMqgwBC0GAgICAeAs2AgwMAQsgBUEANgIMIAJBAk4EQCAAIAVBDGogAykDCCAHQQAQVw0CCyAHIAZrIQRBASEIC0F/IQIgBiAHSw0BIAQgBSgCDCIDayAIbEEASA0BA0AgCiAJIANBACAGELMDRQRAIAMhAgwDCyADIARGDQIgAyAIaiEDDAALAAsgACABEA8gACANEA9CgICAgOAAIQEMAQsgACABEA8gACANEA8gAq0hAQsgBUEQaiQAIAELkwECAX4BfyMAQRBrIgIkAEKAgICA4AAhBAJAIAAgARBZIgFCgICAgHCDQoCAgIDgAFEEQCABIQQMAQsCQCAAIAJBDGogAykDABC6AQ0AQoCAgIAwIQQgAigCDCIDQQBIDQAgAyABpyIFKAIEQf////8HcU8NACAFIAJBDGoQyQGtIQQLIAAgARAPCyACQRBqJAAgBAtpAgJ/AX4gACABEFkhAQNAIAIgBEwgAUKAgICAcINCgICAgOAAUXJFBEAgAyAEQQN0aikDACIGQiCIp0F1TwRAIAanIgUgBSgCAEEBajYCAAsgBEEBaiEEIAAgASAGEMQCIQEMAQsLIAELyAECAX4BfyMAQRBrIgIkAEKAgICA4AAhBAJAIAAgARBZIgFCgICAgHCDQoCAgIDgAFEEQCABIQQMAQsCQCAAIAJBDGogAykDABC6AQ0AAkAgAigCDCIDQQBOBEAgAyABpyIFKQIEIgSnQf////8HcUkNAQsgAEEvEC0hBAwBCyAFQRBqIQUgAAJ/IARCgICAgAiDUEUEQCAFIANBAXRqLwEADAELIAMgBWotAAALQf//A3EQnwMhBAsgACABEA8LIAJBEGokACAEC7gBAgJ+AX8jAEEQayICJABCgICAgOAAIQQCQCAAIAEQWSIBQoCAgIBwg0KAgICA4ABRBEAgASEEDAELAkAgACACQQxqIAMpAwAQugENAEKAgICAwH4hBCACKAIMIgNBAEgNACADIAGnIgYpAgQiBadB/////wdxTw0AIAZBEGohBiAFQoCAgIAIg1BFBEAgBiADQQF0ajMBACEEDAELIAMgBmoxAAAhBAsgACABEA8LIAJBEGokACAEC+MBAgF+An8jAEEQayICJAACQCAAIAFBLRBLIgNFBEAgBEEANgIAQoCAgIDgACEBDAELQoCAgIAwIQECQCADKQMAIgZCgICAgHCDQoCAgIAwUgRAIAIgAygCDCIFNgIMIAUgBqciBygCBEH/////B3FJDQEgACAGEA8gA0KAgICAMDcDAAsgBEEBNgIADAELIAcgAkEMahDJASEIIAMgAigCDDYCDCAEQQA2AgAgCEH//wNNBEAgACAIQf//A3EQnwMhAQwBCyAAIAcgBUEBdGpBEGpBAhDuAyEBCyACQRBqJAAgAQs3ACMAQRBrIgIkACAAIAJBDGogAykDABB3IQAgAigCDCEDIAJBEGokAEKAgICA4AAgA2etIAAbC04AIwBBEGsiAiQAQoCAgIDgACEBAkAgACACQQxqIAMpAwAQdw0AIAAgAkEIaiADKQMIEHcNACACKAIIIAIoAgxsrSEBCyACQRBqJAAgAQsGACAAtrsLfwAgACAAKQPQASIBQgyIIAGFIgFCGYYgAYUiAUIbiCABhSIBNwPQAUKAgICAwH4gAUKdurP7lJL9oiV+QgyIQoCAgICAgID4P4S/RAAAAAAAAPC/oL0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwujBAMDfAV/A34jAEEQayIIJAAgCEIANwMIAkACQCACQQBMDQBCgICAgOAAIQEgACAIQQhqIAMpAwAQQg0BQQEhCSAIKwMIIQQgAkEBRwRAA0AgAiAJRg0CIAAgCCADIAlBA3RqKQMAEEINAyAJQQFqIQkgCCsDACEFIwBBIGsiByQAIAS9Qv///////////wCDIg0gBb1C////////////AIMiDCAMIA1WGyIOvyEEAkAgDkI0iKciCkH/D0YNACANIAwgDCANVBsiDL8hBQJAIA5QDQAgDEI0iKciC0H/D0YNACALIAprQcEATgRAIAUgBKAhBAwCCwJ8IAtB/gtPBEAgBEQAAAAAAAAwFKIhBCAFRAAAAAAAADAUoiEFRAAAAAAAALBrDAELRAAAAAAAAPA/IApBvARLDQAaIAREAAAAAAAAsGuiIQQgBUQAAAAAAACwa6IhBUQAAAAAAAAwFAshBiAHQRhqIAdBEGogBRCKBiAHQQhqIAcgBBCKBiAGIAcrAwAgBysDEKAgBysDCKAgBysDGKCfoiEEDAELIAUhBAsgB0EgaiQADAALAAsgBJkhBAsgBL0iAQJ/IASZRAAAAAAAAOBBYwRAIASqDAELQYCAgIB4CyIAt71RBEAgAK0hAQwBC0KAgICAwH4gAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGyEBCyAIQRBqJAAgAQtOACAAIABEAAAAAAAA8L9EAAAAAAAA8D8gAEQAAAAAAAAAAGMbIAC9Qv///////////wCDQoCAgICAgID4/wBWGyAARAAAAAAAAAAAYRsLQwACfCABvUKAgICAgICA+P8Ag0KAgICAgICA+P8AUQRARAAAAAAAAPh/IACZRAAAAAAAAPA/YQ0BGgsgACABEI8DCwuDAQICfgF/IAC9IgFCNIinQf8PcSIDQf4HTQRAIAFCgICAgICAgICAf4MhAiADQf4HRyABQoCAgICAgIDwv39RckUEQCACQoCAgICAgID4P4S/DwsgAr8PCyADQbIITQR8IAFCP4cgAXxCAUGzCCADa62GIgFCAYh8QgAgAX2DvwUgAAsLggUDAnwFfwF+IwBBEGsiCSQAAn5CgICAgMD+//v/AEKAgICAwP7/eyAEGyACRQ0AGgJ8IAMpAwAiAUL/////D1gEQEEBIAIgAkEBTBshCiABpyEIQQEhBwNAIAcgCkcEQCAItyADIAdBA3RqKQMAIgFCgICAgBBaDQMaIAggAaciCyAIIAtKGyAIIAsgCCALSBsgBBshCCAHQQFqIQcMAQsLIAitDAILQoCAgIDgACAAIAlBCGogARBCDQEaQQEhByAJKwMICyEFIAcgAiACIAdIGyECA0AgAiAHRwRAQoCAgIDgACAAIAkgAyAHQQN0aikDABBCDQIaAkAgBb0iDEL///////////8Ag0KAgICAgICA+P8AVg0AIAkrAwAiBr0iAUL///////////8Ag0KAgICAgICA+P8AVgRAIAYhBQwBCyAFRAAAAAAAAAAAYSAGRAAAAAAAAAAAYXEhCiAEBEAgCgRAIAEgDIO/IQUMAgsgBSAFIAalIAa9Qv///////////wCDQoCAgICAgID4/wBWGyAGIAW9Qv///////////wCDQoCAgICAgID4/wBYGyEFDAELIAoEQCABIAyEvyEFDAELIAUgBSAGpCAGvUL///////////8Ag0KAgICAgICA+P8AVhsgBiAFvUL///////////8Ag0KAgICAgICA+P8AWBshBQsgB0EBaiEHDAELCyAFvSIBAn8gBZlEAAAAAAAA4EFjBEAgBaoMAQtBgICAgHgLIgC3vVEEQCAArQwBC0KAgICAwH4gAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwshASAJQRBqJAAgAQstAEKAgICA4AAgACADKQMAIAMpAwhBABCLAiIAQQBHrUKAgICAEIQgAEEASBsLoAEBA34gAykDACIFIQQgAkEETgRAIAMpAxghBAsgBUL/////b1gEQCAAECRCgICAgOAADwsgAykDECEBQoCAgIDgACEGAkAgACADKQMIEDEiAkUNACABQiCIp0F1TwRAIAGnIgMgAygCAEEBajYCAAsgACAFIAIgASAEQQAQhgQhAyAAIAIQEyADQQBIDQAgA0EAR61CgICAgBCEIQYLIAYLjwEAAkACQCADKQMAIgFC/////29YBEAgBARAIAAQJAwDCyABQiCIp0F1SQ0BIAGnIgAgACgCAEEBajYCACABDwsgACABELYDIgJBAEgNASAEBEAgAkEAR61CgICAgBCEDwsgAkUEQCAAQfjiAEEAEBUMAgsgAaciACAAKAIAQQFqNgIACyABDwtCgICAgOAACyoAIAMpAwAiAUL/////b1gEQCAAECRCgICAgOAADwsgACABQQNBABCqAgtPAAJAAkAgAykDACIBQv////9vWARAIARFBEBCgICAgBAPCyAAECQMAQsgACABEJkBIgBBAE4NAQtCgICAgOAADwsgAEEAR61CgICAgBCEC2MBAX4gAykDACIEQv////9vWARAIAAQJEKAgICA4AAPC0KAgICA4AAhAQJAIAAgAykDCBAxIgJFDQAgACAEIAIQcSEDIAAgAhATIANBAEgNACADQQBHrUKAgICAEIQhAQsgAQs2ACADKQMAIgFCIIinIgJBf0YgBEUgAkF+cUECR3FyRQRAIAAQJEKAgICA4AAPCyAAIAEQ6AELYwECfgJAAkAgAykDACIBQv////9vWARAIAAQJAwBCyADKQMIIQUgASEEIAJBA04EQCADKQMQIQQLIAAgBRAxIgINAQtCgICAgOAADwsgACABIAIgBEEAEBQhASAAIAIQEyABC2YBAX4gAykDACIEQv////9vWARAIAAQJEKAgICA4AAPC0KAgICA4AAhAQJAIAAgAykDCBAxIgJFDQAgACAEIAJBABDVASEDIAAgAhATIANBAEgNACADQQBHrUKAgICAEIQhAQsgAQuLAQECfiADKQMAIgFC/////29YBEAgABAkQoCAgIDgAA8LIAMpAxAhBkKAgICA4AAhBQJAIAAgAykDCBAxIgJFDQAgACABIAIgBiAERUEOdBDHBCEDIAAgAhATIANBAEgNACAEBEAgA0EAR61CgICAgBCEDwsgAaciACAAKAIAQQFqNgIAIAEhBQsgBQuaAQIBfwJ+IwBBEGsiBCQAIAMpAwghBSADKQMAIgYhAQJAAkACQAJAIAJBA0gNACADKQMQIgFCgICAgHBaBEAgAactAAVBEHENAQsgAEGiPkEAEBUMAQsgACAEQQxqIAUQiQQiAg0BC0KAgICA4AAhAQwBCyAAIAYgASAEKAIMIgMgAhCQAyEBIAAgAiADEJsDCyAEQRBqJAAgAQsVACAAIAMpAwAgAyADQQhqQQIQnQMLVgIBfgF/IAAgARC0AyIBQoCAgIBwg0KAgICA4ABRBEAgAQ8LQoCAgIAwIQIgAaciAygCBEGAgICAeEcEQCAAIAAoAhAgAxDBAhAtIQILIAAgARAPIAILCQAgACABELQDC1sBAX4jAEEQayICJAAgAiAAIAEQtAMiATcDCAJAIAFCgICAgHCDQoCAgIDgAFEEQCABIQQMAQsgAEKAgICAMEEBIAJB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IQMCQAJAAkAgAkHGAGsOBgIDAQMDAgALIAJBFkcNAgtBECEDCyAAIAEgAxCQAg8LIABBtitBABAVC0KAgICA4AALlgEBAXwjAEEQayICJAACfkKAgICA4AAgACACQQhqIAEQmwINABogAisDCCIEvSIBAn8gBJlEAAAAAAAA4EFjBEAgBKoMAQtBgICAgHgLIgC3vVEEQCAArQwBC0KAgICAwH4gAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwshASACQRBqJAAgAQvsAgIDfwF8IwBB0ABrIgQkACAEQRBqQQBBOBArGiAEQoCAgICAgID4PzcDIEKAgICAwH4hAQJAIAJFDQBBByACIAJBB04bIgJBACACQQBKGyECA0AgAiAFRwRAIAAgBEEIaiADIAVBA3QiBmopAwAQQgRAQoCAgIDgACEBDAMLIAQrAwgiB71CgICAgICAgPj/AINCgICAgICAgPj/AFENAiAEQRBqIAZqIAedOQMAAkAgBQ0AIAQrAxAiB0QAAAAAAAAAAGZFIAdEAAAAAAAAWUBjRXINACAEIAdEAAAAAACwnUCgOQMQCyAFQQFqIQUMAQsLIARBEGpBABDgAiIHvSIBAn8gB5lEAAAAAAAA4EFjBEAgB6oMAQtBgICAgHgLIgW3vVEEQCAFrSEBDAELQoCAgIDAfiABQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbIQELIARB0ABqJAAgAQtWABDQBCIBQoCAgIAIfEL/////D1gEQCABQv////8Pgw8LQoCAgIDAfiABub0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwsIAEKAgICAMAuqHQIGfwR+IwBB0ABrIgYkAAJAAkAgAEEQaiIDQYgCIAAoAgARAwAiAUUNACABQQVqQQBBgwIQKxogAUEFOgAEIAFBATYCACAAKAJQIgQgAUEIaiIFNgIEIAEgAEHQAGo2AgwgASAENgIIIAAgBTYCUCABIAMgACgCQEEDdCAAKAIAEQMAIgQ2AiggBEUEQCADIAEgACgCBBEAAAwBCyABIAA2AhAgACgCSCIDIAFBFGoiBTYCBCABIABByABqNgIYIAEgAzYCFCAAIAU2AkggAULxgICAgDk3AtwB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aiAAIAFB1QAgAUEAEBQQowENACAAIAVB1QACfiACKQMIIgFCgICAgAh8Qv////8PWARAIAFC/////w+DDAELQoCAgIDAfiABub0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwsQRUEASA0AQoCAgIDgACEIIABBLhB2IgFCgICAgHCDQoCAgIDgAFENACAAQSAQKSIDRQRAIAEhCAwBCyADIAk3AwggAyAFNwMAIAMgBKciCkHnAEEAEMcBQX9zQR92NgIQIApB9QBBABDHASEKIANBADYCGCADIApBf3NBH3Y2AhQgAUKAgICAcFoEQCABpyADNgIgCyAAIAYQDyAAIAQQDyABIQcMAQsgACAJEA8gACAGEA8gACAEEA8gACAFEA8gACAIEA8LIAJBIGokACAHC74EAgd+An8jAEEQayICJAACQCABQv////9vWARAIAAQJEKAgICA4AAhBgwBC0KAgICA4AAhBkKAgICAMCEFAkAgAAJ+AkAgACADKQMAECgiB0KAgICAcINCgICAgOAAUQ0AIAAgACABQe4AIAFBABAUECYiA0EASA0AIANFBEAgACABIAcQyAEhBgwDCyAAIAAgAUHvACABQQAQFBAmIgtBAEgNACAAIAFB1QBCABBFQQBIDQBCgICAgOAAIAAQPiIIQoCAgIBwg0KAgICA4ABRDQEaIAenIQwCQANAIAAgBRAPIAAgASAHEMgBIgVCgICAgHCDIgRCgICAgCBRDQECQCAEQoCAgIDgAFENAAJ/IAAgACAFQgAQTRA3IgRCgICAgHCDIgpCgICAgJB/UgRAQQAgCkKAgICA4ABSDQEaDAILIASnKAIEQf////8HcUULIQMgACAIIAkgBBCGAUEASA0AIAlCAXwhCSADRQ0BIAAgAkEIaiAAIAFB1QAgAUEAEBQQowFBAEgNACAAIAFB1QACfiAMIAIpAwggCxDxAiIEQoCAgIAIfEL/////D1gEQCAEQv////8PgwwBC0KAgICAwH4gBLm9IgRCgICAgMCBgPz/AH0gBEL///////////8Ag0KAgICAgICA+P8AVhsLEEVBAE4NAQsLIAgMAgsgCacEQCAIIQYMAwsgACAIEA9CgICAgCAhBgwCC0KAgICAMAsQDwsgACAFEA8gACAHEA8LIAJBEGokACAG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/////w+DEGpBAEgNDSADRQRAIAkgCSgCAEEBajYCAAsgACABIAZBAWqtIBQQakEASA0NIA5CgICAgDBSBEAgEUIgiKdBdU8EQCARpyICIAIoAgBBAWo2AgALIAAgASAGQQJqrSAREGpBAEgNDgsgBCABNwNYIARCgICAgDA3A1AgACATEA8gACAAIBkgBCAEQdAAakEAEJ0DEDchEwwBC0KAgICAMCEVIA5CgICAgDBSBEAgACARECUiFUKAgICAcINCgICAgOAAUQ0NCyAEIBc3A3ggBCAVNwNwIAQgATcDaCAEIBQ3A1ggBCAPNwNQIAQgEkL/////D4M3A2AgACATEA8gACAEQdAAahDtBCETIAAgFRAPCyATQoCAgIBwg0KAgICA4ABRDQsgB6wgElcEQCAEQThqIgIgCSAHIBKnEFEaIAIgExCHARogD6cpAgRC/////weDIBJ8pyEHCyAFQQFqIQUMAQsLIARBOGoiAiAJIAcgCSgCBEH/////B3EQURogAhA2IRAMCgsgACAPEA9CgICAgDAhEwJAAn8CQCAAIAAgEkIAEE0QNyIPQoCAgIBwgyIOQoCAgICQf1IEQCAOQoCAgIDgAFINASAOIRAMAwsgD6coAgRB/////wdxDQAgACAEQdAAaiAAIAFB1QAgAUEAEBQQowFBAEgNAiAAIAFB1QACfiAJIAQpA1AgDRDxAiIOQoCAgIAIfEL/////D1gEQCAOQv////8PgwwBC0KAgICAwH4gDrm9Ig5CgICAgMCBgPz/AH0gDkL///////////8Ag0KAgICAgICA+P8AVhsLEEUiAkEATg0AIAJBHnZBAnEMAQtBAAtFDQELCwwCCwwGC0KAgICAMCETC0KAgICAMCEBDAQLIARB0ABqIAsgCCALKAIEQf////8HcRBRDQAgACASEA8gACgCECICQRBqIAMgAigCBBEAACAEQdAAahA2IRAMAQsgACASEA8gACgCECICQRBqIAMgAigCBBEAACAEKAJQKAIQIgJBEGogBCgCVCACKAIEEQAAC0KAgICAMCERC0KAgICAMCETQoCAgIAwIQFCgICAgDAhDwsgBCgCOCgCECICQRBqIAQoAjwgAigCBBEAAAsgBBDuBCAAIBcQDyAAIA8QDyAAIAEQDyAAIBMQDyAAIBEQDyAAIBQQDwsgBEGQAWokACAQC6IBACMAQSBrIgIkAAJ+AkAgAUL/////b1gEQCAAECQMAQsgACACQQhqIgNBABA9GiADQS8QOxoCQCADIAAgAUHsACABQQAQFBB/DQAgAkEIaiIDQS8QOxogAyAAIAFB7QAgAUEAEBQQfw0AIAJBCGoQNgwCCyACKAIIKAIQIgBBEGogAigCDCAAKAIEEQAAC0KAgICA4AALIQEgAkEgaiQAIAELTgECfkKAgICA4AAhBCAAIAEgAykDABDIASIBQoCAgIBwgyIFQoCAgIDgAFIEfiAAIAEQDyAFQoCAgIAgUq1CgICAgBCEBUKAgICA4AALC/gCAgN+AX8CQAJAIAAgARDwAiICRQ0AIAMpAwghBgJAAkACQCADKQMAIgRCgICAgHBUDQAgBKciAy8BBkESRw0AIAZCgICAgHCDQoCAgIAwUgRAIABBnvkAQQAQFUKAgICA4AAPCyADKAIgIgcgBygCAEEBajYCACADKAIkIgMgAygCAEEBajYCACAHrUKAgICAkH+EIQQgA61CgICAgJB/hCEFDAELQoCAgIAwIQUCfiAEQoCAgIBwg0KAgICAMFEEQCAAQS8QLQwBCyAAIAQQKAsiBEKAgICAcINCgICAgOAAUQ0BIAAgBCAGEJgEIgVCgICAgHCDQoCAgIDgAFENAQsgACACNQIAQoCAgICQf4QQDyAAIAI1AgRCgICAgJB/hBAPIAIgBT4CBCACIAQ+AgAgACABQdUAQgAQRUEASA0BIAFCIIinQXVJDQIgAaciACAAKAIAQQFqNgIADAILIAAgBBAPIAAgBRAPC0KAgICA4AAPCyABC2oBAX8gAUL/////b1gEQCAAECRCgICAgOAADwsCfiABpyIDLwEGQRJHBEBCgICAgDAgACABIAAoAigpA5ABEFINARogAEESEIYDQoCAgIDgAA8LIAMoAiQtABAgAnFBAEetQoCAgIAQhAsLvQQBCX8jAEEgayIHJAACQAJAAkACQAJAIAFC/////29YBEAgABAkDAELIAAgASAAKAIoKQOQARBSDQIgACABEPACIgINAQtCgICAgOAAIQEMAwsgAigCACIIKAIEIgJB/////wdxIgMNAQsgAEH+kwEQYiEBDAELIAAgB0EIaiADIAJBH3YQigMaIAhBEGohBiAIKAIEQf////8HcSEJQQAhAANAAkACQCAAIAlIBEAgAEEBaiECQX8hBQJAAn8CQAJAAkACQAJAAkACQAJ/IAgpAgRCgICAgAiDIgFQIgpFBEAgBiAAQQF0ai8BAAwBCyAAIAZqLQAACyIDQdsAaw4DAwECAAsgAiEAAkAgA0EKaw4EBAsLBQALIANBL0cNByAERQ0FQQEhBEEvIQMMBwtB3AAhAyACIAlODQYgAEECaiEAIApFBEAgBiACQQF0ai8BACEFDAoLIAIgBmotAAAhBQwJC0EAIQRB3QAhAwwFC0HbACEDIAQgAiAJTnINBiAAQQJqIQAgAVAEQEHdAEF/IAIgBmotAABB3QBGIgQbIQUgACACIAQbIQBBASEEDAgLQQEhBEHdAEF/IAYgAkEBdGovAQBB3QBGIgobIQUgACACIAobIQAMBwtB7gAMAgtB8gAMAQtBACEEQS8LIQVB3AAhAwsgAiEADAILIAdBCGoQNiEBDAMLIAIhAEEBIQQLIAdBCGogAxCLARogBUEASA0AIAdBCGogBRCLARoMAAsACyAHQSBqJAAgAQvWAgIDfwF+IwBBEGsiBCQAAkAgAUL/////b1gEQCAAECRCgICAgOAAIQUMAQtCgICAgOAAIQUgACAAIAFB7gAgAUEAEBQQJiICQQBIDQAgAgR/IARB5wA6AAggBEEJagUgBEEIagshAiAAIAAgAUHr4wAQsgEQJiIDQQBIDQAgAwRAIAJB6QA6AAAgAkEBaiECCyAAIAAgAUGL5QAQsgEQJiIDQQBIDQAgAwRAIAJB7QA6AAAgAkEBaiECCyAAIAAgAUH01AAQsgEQJiIDQQBIDQAgAwRAIAJB8wA6AAAgAkEBaiECCyAAIAAgAUHvACABQQAQFBAmIgNBAEgNACADBEAgAkH1ADoAACACQQFqIQILIAAgACABQfsdELIBECYiA0EASA0AIAAgBEEIaiIAIAMEfyACQfkAOgAAIAJBAWoFIAILIABrEJMCIQULIARBEGokACAFC6UDAQR+IwBBEGsiAyQAIAQCfwJAAkACQAJAIAAgAUEuEEsiAkUEQEKAgICAMCEBDAELIAIoAhgEQEKAgICAMCEBQQEMBQsgACACKQMAIgggAikDCCIGEMgBIgFCgICAgHCDIgdCgICAgOAAUg0BC0KAgICAMCEHDAELIAdCgICAgCBRBEAgAkEBNgIYQoCAgIAwIQFBAQwDCyACKAIQBEAgACAAIAFCABBNEDciB0KAgICAcIMiCUKAgICA4ABRDQECQCAJQoCAgICQf1INACAHpygCBEH/////B3ENACAAIANBCGogACAIQdUAIAhBABAUEKMBQQBIDQIgACAIQdUAAn4gBqcgAykDCCACKAIUEPECIgZCgICAgAh8Qv////8PWARAIAZC/////w+DDAELQoCAgIDAfiAGub0iBkKAgICAwIGA/P8AfSAGQv///////////wCDQoCAgICAgID4/wBWGwsQRUEASA0CCyAAIAcQDwwCCyACQQE2AhgMAQsgACABEA8gACAHEA9CgICAgOAAIQELQQALNgIAIANBEGokACABCw4AIAAQtQJCgICAgOAACwkAQoCAgIDAfgsWACAAIAMpAwAgAykDCCADKQMQEJQEC9EBAgN+An8jAEEQayIHJAACQCAAIAdBDGogAykDABDlASIIRQRAQoCAgIDgACEEDAELIAAgCCAHKAIMQdKIARD1BSEBIAAgCBBUAkAgAkECSCABQoCAgIBwg0KAgICA4ABRcg0AIAAgAykDCCIGEDhFDQBCgICAgOAAIQQCQCAAEDQiBUKAgICAcINCgICAgOAAUQRAIAEhBQwBCyAAIAVBLyABQQcQGUEASA0AIAAgBUEvIAYQ+QQhBAsgACAFEA8MAQsgASEECyAHQRBqJAAgBAsNACAAIAEgAkEwEP0FCwsAIAAgAUEwEP4FC7QDAgN/An4jAEHQAGsiBiQAQX8hBwJAIAAgBkHIAGogAUHCABCBASIIRQ0AIAYpA0giAUKAgICAcINCgICAgDBRBEAgCCkDACEBIANCIIinQXVPBEAgA6ciByAHKAIAQQFqNgIACyAAIAEgAiADIAQgBRCGBCEHDAELIAAgAhBcIglCgICAgHCDQoCAgIDgAFEEQCAAIAEQDwwBCyAIKQMAIQogBiAENwM4IAYgAzcDMCAGIAk3AyggBiAKNwMgIAAgASAIKQMIQQQgBkEgahAvIQEgACAJEA8gAUKAgICAcINCgICAgOAAUQ0AAkACQCAAIAEQJiIHBEAgACAGIAgoAgAgAhBMIgJBAEgNASACRQ0DAkAgBigCACICQRNxRQRAIAAgBikDCCADEFJFDQEMBAsgAkERcUEQRw0DIAY1AhxCIIZCgICAgDBSDQMLIAAgBhBI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gICAwH4gALi9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLOQEBfkKAgICAwH4gASkDACICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCzsBAX5CgICAgMB+IAEqAgC7vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCwwAIAAgASkDABD7AwsMACAAIAEpAwAQhwILSQEBfiABKAIAIgBBAE4EQCAArQ8LQoCAgIDAfiAAuL0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsHACABNQIACwcAIAEzAQALDgAgATIBAEL/////D4MLCQAgABC1AkF/Cw4AIAEwAABC/////w+DCwcAIAExAAALDwAgACsDACABKwMAEP0ECxEAIAAqAgC7IAEqAgC7EP0ECxkBAn4gASkDACIDIAApAwAiBFQgAyAEVmsLGQECfiABKQMAIgMgACkDACIEUyADIARVawsXACABKAIAIgEgACgCACIASSAAIAFJawsXACABKAIAIgEgACgCACIASCAAIAFIawsNACAALwEAIAEvAQBrCw0AIAAuAQAgAS4BAGsLDQAgACwAACABLAAAawsNACAALQAAIAEtAABrC8wNBAd/AXwBfgF9IwBBIGsiBiQAQoCAgIDgACENAkAgACABEJIBIgpBAEgNAEF/IQUCQAJAAkAgCkUNAEEBIQgCQAJAIARBAUYEQEF/IQggBiAKQQFrIgU2AhwgAkECSA0BIAAgBkEIaiADKQMIEEINBiAGKwMIIgy9Qv///////////wCDQoGAgICAgID4/wBaBEAgBkEANgIcDAILIAxEAAAAAAAAAABmBEAgDCAFt2NFDQIgBgJ/IAyZRAAAAAAAAOBBYwRAIAyqDAELQYCAgIB4CzYCHAwCC0F/IQUgDCAKt6AiDEQAAAAAAAAAAGMNBCAGAn8gDJlEAAAAAAAA4EFjBEAgDKoMAQtBgICAgHgLNgIcDAELIAZBADYCHCACQQJIBEAgCiECDAILIAAgBkEcaiADKQMIIAoiAiACEFcNBQwBC0F/IQILIAGnIgkoAiAoAgwoAiAtAAQEQEF/IQUgBEF/Rw0CQX9BACADNQIEQiCGQoCA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IA1CgICAgDBBBCAFQRBqECEhCiAAIAsQDyAAIA8QDyAFQoCAgIAwNwM4IApCgICAgHCDQoCAgIDgAFENASAAIAkQDyAKIQkLIAhCAXwhCAwBCwsgBSAJNwMwIAUpAzghCwsgACAFKQMwEA8gACALEA9CgICAgOAAIQkLIAAgARAPIAVBQGskACAJC6wIAgN/CX4jAEEwayIFJABCgICAgDAhCSAFQoCAgIAwNwMoAkACQAJAAkAgBEEIcSIHBEAgAUIgiKdBdU8EQCABpyIGIAYoAgBBAWo2AgALIAUgACABEJIBIgasNwMIIAZBAE4NAQwCCyAAIAVBCGogACABECUiARA8DQELIAMpAwAhD0KAgICAMCEOIAJBAk4EQCADKQMIIQ4LIAAgDxBgDQACQAJAAkACQAJAAkACQCAEDg0FAAYBAgYGBgUABgMEBgtCgICAgBAhCQwFCyAAIAECfiAFKQMIIghCgICAgAh8Qv////8PWARAIAhC/////w+DDAELQoCAgIDAfiAIub0iCEKAgICAwIGA/P8AfSAIQv///////////wCDQoCAgICAgID4/wBWGwsQqwIiCUKAgICAcINCgICAgOAAUg0EDAULIAAgAUIAEKsCIglCgICAgHCDQoCAgIDgAFINAwwECyAFIAE3AxAgBSAFNQIINwMYIABBAiAFQRBqEPYCIglCgICAgHCDQoCAgIDgAFINAgwDCyAAED4iCUKAgICAcINCgICAgOAAUg0BQoCAgIDgACEJDAILQoGAgIAQIQkLQgAhCCAFKQMIIgpCACAKQgBVGyEQA0AgCCAQUgRAAkACQCAHBEAgBSAAIAEgCBBzIgo3AyggCkKAgICAcINCgICAgOAAUg0BDAULIAAgASAIIAVBKGoQhQEiAkEASA0EIAJFDQELIAghCiAIQoCAgIAIWgRAQoCAgIDAfiAIub0iCkKAgICAwIGA/P8AfSAKQv///////////wCDQoCAgICAgID4/wBWGyEKCyAKQoCAgIBwg0KAgICA4ABRDQMgBSABNwMgIAUgCjcDGCAFIAUpAygiDTcDECAAIA8gDkEDIAVBEGoQISELIAAgChAPIAtCgICAgHCDQoCAgIDgAFENAwJAAkACQAJAAkACQAJAIAQODQABBQIEBQUFAAEFAwQFCyAAIAsQJg0FQoCAgIAQIQgM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AUL///////////8Ag0KAgICAgICA+P8AVhshBQwCCxABAAsgAjAAAEL/////D4MhBQsgB0EQaiQAIAULUgIBfwF+QoCAgIDgACEEIAAgASACEJMBIgMEfiADKAIgIgMoAgwoAiAtAAQEQCACRQRAQgAPCyAAEGtCgICAgOAADwsgAzUCFAVCgICAgOAACwvXAQEDfwJAIAFCgICAgHBUDQAgAaciAy8BBkE5Rw0AIAMoAiAiBEUNACAEQcwAaiEDIARByABqIQUDQCAFIAMoAgAiA0cEQCADKQMQIgFCgICAgGBaBEAgACABpyACEQAACyADKQMYIgFCgICAgGBaBEAgACABpyACEQAACyADKQMgIgFCgICAgGBaBEAgACABpyACEQAACyADKQMoIgFCgICAgGBaBEAgACABpyACEQAACyADQQRqIQMMAQsLIAQoAgRBfnFBBEYNACAAIARBCGogAhDvAwsLBgBB4MYECzABAX8CQCABQoCAgIBwVA0AIAGnIgIvAQZBOUcNACACKAIgIgJFDQAgACACEIcFCwsNACAAIAEgAkE3EP0FCwsAIAAgAUE3EP4FCxYBAX8gAacoAiAiAgRAIAAgAhCIBQsLMQEBfyABpygCICICBEAgACACKAIIEKMFIAAgAikDABAjIABBEGogAiAAKAIEEQAACwvcAQEEfwJAIAFCgICAgHBUDQAgAaciBC8BBkExRw0AIAQoAiAiBkUNAEEAIQQDQCAEQQJGRQRAIAYgBEEDdGoiBUEIaiEDIAVBBGohBQNAIAUgAygCACIDRwRAIAMpAwgiAUKAgICAYFoEQCAAIAGnIAIRAAALIAMpAxAiAUKAgICAYFoEQCAAIAGnIAIRAAALIAMpAxgiAUKAgICAYFoEQCAAIAGnIAIRAAALIANBBGohAwwBCwsgBEEBaiEEDAELCyAGKQMYIgFCgICAgGBUDQAgACABpyACEQAACwuMAQEFfwJAIAFCgICAgHBUDQAgAaciAi8BBkExRw0AIAIoAiAiBEUNAANAIANBAkZFBEAgBCADQQN0aiICQQRqIQUgAigCCCECA0AgAiAFRkUEQCACKAIEIQYgACACEK4CIAYhAgwBCwsgA0EBaiEDDAELCyAAIAQpAxgQIyAAQRBqIAQgACgCBBEAAAsLJQAgBSkDACIBQiCIp0F1TwRAIAGn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IAMpAwAQpgENACAAEJcBIgVCgICAgHCDQoCAgIDgAFENACAAIAJBFGogAykDCBC7ASIGRQRAIAAgBRAPDAELIAAoAtgBIQMgAkIANwIMIAJCgICAgICAgICAfzcCBCACIAM2AgAgAkIBEDAaIAIgAikDKCIBpyIHQf////8DQQEQzAEaIAIgAkJ/Qf////8DQQEQdRogBadBBGoiAyAGIAIQkwUaAkAgBEUgAVByDQAgAkIBEDAaIAIgB0EBa0H/////A0EBEMwBGiADIAIQ0wFBAEgNACACQgEQMBogAiAHQf////8DQQEQzAEaIAMgAyACQf////8DQQEQ5AEaCyACEBsgACAGIAJBFGoQXiAAIAUQzQEhAQsgAkEwaiQAIAEL6hMCAn4BfyMAQdABayIEJAAgACAEEJgFIAEgARA0IgNBqi0CfiAEKQMIIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANB3+AAAn4gBCkDECICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQboqAn4gBCkDGCICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQagqAn4gBCkDICICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQfooAn4gBCkDKCICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQfrfAAJ+IAQpAzAiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0HYKAJ+IAQpAzgiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0G23wACfiAEKQNAIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANBzSkCfiAEKQNIIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANBl+AAAn4gBCkDUCICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQeIoAn4gBCkDWCICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQc/fAAJ+IAQpA2AiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0GGKgJ+IAQpA2giAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0Gt4AACfiAEKQNwIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANBxyoCfiAEKQN4IgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANB8OAAAn4gBCkDgAEiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0HN4AACfiAEKQOIASICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQZIqAn4gBCkDkAEiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0G44AACfiAEKQOYASICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQdUqAn4gBCkDoAEiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0HvJwJ+IAQpA6gBIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANB6icCfiAEKQOwASICQoCAgIAIfEL/////D1gEQCACQv////8PgwwBC0KAgICAwH4gArm9IgJCgICAgMCBgPz/AH0gAkL///////////8Ag0KAgICAgICA+P8AVhsLEEAgASADQeszAn4gBCkDuAEiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAEgA0H7JwJ+IAQpA8ABIgJCgICAgAh8Qv////8PWARAIAJC/////w+DDAELQoCAgIDAfiACub0iAkKAgICAwIGA/P8AfSACQv///////////wCDQoCAgICAgID4/wBWGwsQQCABIANBo98AAn4gBCkDyAEiAkKAgICACHxC/////w9YBEAgAkL/////D4MMAQtCgICAgMB+IAK5vSICQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBAIAMQUyEAIARB0AFqJAAgAAufAgEDfiABQv////9vWARAIAAQJEKAgICA4AAPC0KAgICA4AAhBQJ+IAAgAUE2IAFBABAUIgRCgICAgHCDQoCAgIAwUQRAIABBlAEQLQwBCyAAIAQQNwsiBEKAgICAcIMiBkKAgICA4ABSBH4CfiAAIAFBMyABQQAQFCIBQoCAgIBwg0KAgICAMFEEQCAAQS8QLQwBCyAAIAEQNwsiAUKAgICAcIMiBUKAgICA4ABRBEAgACAEEA9CgICAgOAADwsCQCAGQoCAgICQf1EEQCAEpygCBEH/////B3FFDQELIAVCgICAgJB/UQRAIAGnKAIEQf////8HcUUNAQsgAEHMngEgBEH4mQEQvgEhBAsgACAEIAEQxAIFQoCAgIDgAAsLXwEBfwJAIAFFBEAgAkUNASAAIAIQ2QMPCyACRQRAIAAgACgCAEEBazYCACAAIAAoAgRBCGs2AgQgARCbAQwBCyAAKAIIIAAoAgQgAmpPBH8gASACEPMFBUEACw8LQQALJgAgAQRAIAAgACgCAEEBazYCACAAIAAoAgRBCGs2AgQgARCbAQsLCQAgACABNgIYCygBAX8CQCABpygCICIDRQ0AIAMoAgBBBEYNACAAIANBCGogAhDvAwsLPwEBfwJAIAFCgICAgHBUDQAgAaciAi8BBkEvRw0AIAIoAiAiAkUNACAAIAIQ7AMgAEEQaiACIAAoAgQRAAALC0cBAX8CQCABpygCICIDRQ0AIAMpAwAiAUKAgICAYFoEQCAAIAGnIAIRAAALIAMpAwgiAUKAgICAYFQNACAAIAGnIAIRAAALCzABAX8gAacoAiAiAgRAIAAgAikDABAjIAAgAikDCBAjIABBEGogAiAAKAIEEQAACwsnAQF/IAGnKAIgIgIEQCAAIAIpAwAQIyAAQRBqIAIgACgCBBEAAAsLWgECfyABpygCICICBEACQCACKQMAIgFCgICAgHBUDQAgAactAAVBAnENACACKAIMIgNFDQAgACADEOoDIAIpAwAhAQsg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ACIGRQ0AIAYtAAVBAXFFDQAgACAGIAIRAAALIANBAWohAwwACwALIAAgBCACEQAACwt8AQN/IAGnIgIoAigiAwRAIAAgA61CgICAgHCEECMLIAIoAiAiAwRAIAIoAiQiBARAQQAhAgNAIAIgAygCPE5FBEAgACAEIAJBAnRqKAIAEOsBIAJBAWohAgwBCwsgAEEQaiAEIAAoAgQRAAALIAAgA61CgICAgGCEECMLCxIAIAGnKAIgIgAEQCAAEKQDCwseACABpykDICIBQoCAgIBgWgRAIAAgAacgAhEAAAsLGQAgACABpyIAKQMgECMgAEKAgICAMDcDIAtEAQJ/IAGnIQQDQCAEKAIoIANLBEAgBCgCJCADQQN0aikDACIBQoCAgIBgWgRAIAAgAacgAhEAAAsgA0EBaiEDDAELCwtGAQN/IAGnIQMDQCADKAIkIQQgAiADKAIoT0UEQCAAIAQgAkEDdGopAwAQIyACQQFqIQIMAQsLIABBEGogBCAAKAIEEQAAC2kBAn8jAEEQayIHJAACfwJAIAGnIggtAAVBCHFFDQAgACAHQQxqIAIQrAFFDQAgBygCDCAIKAIoTw0AQX8gACAIEJIDDQEaCyAAIAEgAiADIAQgBSAGQYCACHIQbQshACAHQRBqJAAgAAuBAgIDfwF+AkACQCACQQBODQAgAacpAyAiCkKAgICAcINCgICAgJB/Ug0AIAJB/////wdxIgggCqciBykCBCIKp0H/////B3FPDQACQEEEIAYQkwNFDQBBASECIAZBgMAAcUUNAiADQoCAgIBwg0KAgICAkH9SDQAgA6ciCSkCBCIBQv////8Hg0IBUg0AIAdBEGohBwJ/IApCgICAgAiDUEUEQCAHIAhBAXRqLwEADAELIAcgCGotAAALAn8gAUKAgICACINQRQRAIAkvARAMAQsgCS0AEAtGDQILIAAgBkHh6QAQbw8LIAAgASACIAMgBCAFIAZBgIAIchBtIQILIAILRgACfwJAIAJBAE4NACABpykDICIBQoCAgIBwg0KAgICAkH9SDQBBACACQf////8HcSABpygCBEH/////B3FJDQEaC0EBCwuzAQECfwJAIANBAE4NACACpykDICICQoCAgIBwg0KAgICAkH9SDQAgA0H/////B3EiAyACpyIEKQIEIgKnQf////8HcU8NAEEBIQUgAUUNACAEQRBqIQQCfyACQoCAgIAIg1BFBEAgBCADQQF0ai8BAAwBCyADIARqLQAACyEDIAFBBDYCACAAIANB//8DcRCfAyECIAFCgICAgDA3AxggAUKAgICAMDcDECABIAI3AwgLIAULWwECfyABpygCECIAQTBqIQMgACAAKAIYIAJxQX9zQQJ0aigCACEAA0ACQCAARQ0AIAMgAEEBa0EDdGoiBCgCBCACRg0AIAQoAgBB////H3EhAAwBCwsgAEEARws1AQF+IAEpAwAiAkIgiKdBdU8EQCACpyIBIAEoAgBBAWo2AgALIAAgAhCKAUKAgICA4AAQUwuOAQECfyABKAIAIgJBAEoEQCABIAJBAWsiAjYCAAJAIAINACABLQAEQfABcUEQRw0AIAEoAggiAiABKAIMIgM2AgQgAyACNgIAIAFBADYCCCAAKAJgIgIgAUEIaiIDNgIEIAEgAEHgAGo2AgwgASACNgIIIAAgAzYCYAsPC0HFjQFBrvwAQbAsQc/0ABAAAAtvAQJ/IAEgASgCACICQQFqNgIAIAJFBEAgASgCCCICIAEoAgwiAzYCBCADIAI2AgAgAUEANgIIIAAoAlAiAiABQQhqIgM2AgQgASAAQdAAajYCDCABIAI2AgggACADNgJQIAEgAS0ABEEPcToABAsLDwAgASABKAIAQQFqNgIAC4gBAgF+AX9BACECQoCAgIAwIQEDQAJAIAJBAkcEfiAFIAJBA3QiBGoiBzUCBEIghkKAgICAMFENASAAQawuQQAQFUKAgICA4AAFQoCAgIAwCw8LIAMgBGopAwAiBkIgiKdBdU8EQCAGpyIEIAQoAgBBAWo2AgALIAcgBjcDACACQQFqIQIMAAsAC1wBAn4gAiAAKAIAEC0hA0EAIQAgA0KAgICAcINCgICAgOAAUSACIAEoAgAQLSIEQoCAgIBwg0KAgICA4ABRckUEQCADpyAEpxCDAiEACyACIAMQDyACIAQQDyAAC2sBAX4CQAJAAkACQAJAIAMtAAUiAQ4EAwICAAELIAAgAygCCBDKBA8LIAFBCEYNAgsQAQALIAAgAygCDCADKAIAIAMtAAggAy0ACSADLgEGEIIBDwsgACAAEDQiBCADKAIIIAMoAgwQIiAECwkAIAAgAxCNAwtTAQF+IAAQNCIEQoCAgIBwg0KAgICA4ABSBEAgASABKAIAQQFqNgIAIAAgBEE8IAGtQoCAgIBwhEEDEBlBAE4EQCAEDwsgACAEEA8LQoCAgIDgAAsDAAELagEBfyMAQRBrIgMkACABKAIEIQEgAiADQQxqIAAoAgQQrAFBACACIANBCGogARCsARtFBEBB0MUAQa78AEGDOkH8yQAQAAALIAMoAgghACADKAIMIQEgA0EQaiQAQX8gACABRyAAIAFLGwvaAwICfgF/IwBBIGsiBSQAAkACQCAAIAFBLBBLIgJFDQBCgICAgDAhAQJAIAIpAwAiBkKAgICAcINCgICAgDBSBEACfwJAIAanIgMvAQZBFWtB//8DcUEKTQRAIAMoAiAoAgwoAiAtAARFDQEgABBrDAULIAAgBUEcaiAGENYBDQQgBUEcagwBCyADQShqCyEIIAIoAgwiAyAIKAIASQ0BIAAgAikDABAPIAJCgICAgDA3AwALIARBATYCAAwCCyACIANBAWo2AgwgBEEANgIAIAIoAghFBEAgA0EATgRAIAOtIQEMAwtCgICAgMB+IAO4vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbIQEMAgtCgICAgOAAIQEgACACKQMAIAMQsAEiBkKAgICAcINCgICAgOAAUQ0BIAIoAghBAUYEQCAGIQEMAgsgBSAGNwMIIAUgA0EATgR+IAOtBUKAgICAwH4gA7i9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLIgc3AwAgAEECIAUQiQMhASAAIAYQDyAAIAcQDwwBCyAEQQA2AgBCgICAgOAAIQELIAVBIGokACABCxAAIwAgAGtBcHEiACQAIAALBgAgACQACwQAIwAL7gICBH8CfiMAQRBrIgMkAAJAAkAgAikDECIHQoCAgIBwg0KAgICAkH9SBEAgAEGDlAFBABAVDAELIAIpAxghCCAAIAcQswEiBEUEQEEAIQQMAQsgACAIELMBIgZFDQACQCAAIAQgBhDJBSIBRQ0AIAAgARD+A0EASARAIABBARCPBAwBCyABIAEoAgBBAWo2AgAgACABrUKAgICAUIQgACkDwAFBAEEAEMgFIgdCgICAgHCDQoCAgIDgAFENACAAIAcQDyABIQULIAAgBhBUIAVFDQAgAyAAIAUQjQMiBzcDACAHQoCAgIBwg0KAgICA4ABRDQAgACAAIAIpAwBCgICAgDBBASADECEQDyAAIAMpAwAQDwwBCyAAKAIQIgEpA4ABIQcgAUKAgICAIDcDgAEgAyAHNwMIIAAgACACKQMIQoCAgIAwQQEgA0EIahAhEA8gACADKQMIEA8LIAAgBBBUIANBEGokAEKAgICAMAsSACAAQQA2ArABIABCADcDqAELHwAgAEEANgKwASAAQTg2AqwBIABBOUEAIAEbNgKoAQsfACAAIAAoAhAgACABIAIQBiIAEPEFIQEgABCbASABC08CAX8BfiAAKAIQIAAgARAHIgJFBEBBAA8LIAAgAiACED8gAUEhEPQFIgRCgICAgHCDQoCAgIDgAFIEQCAAIAQQDyAEpyEDCyACEJsBIAMLCgAgAEIANwOQAQsSACAAQQA2ApQBIABBNzYCkAELBgAgABANCwoAIAAgAUEDdGoLEwAgAEE2IAJBAEEBIAEQggEQUwtLAQF/IwBBEGsiBSQAIAUgATcDCAJAIAAgBUEIaiACIAMgBBAOIgBFBEBCgICAgDAhAQwBCyAAKQMAIQEgABCbAQsgBUEQaiQAIAELPwIBfwF+IwBBEGsiAiQAIAAgAhDNAiEDIAEgAikDABBTNgIAIAEgAikDCBBTNgIEIAMQUyEAIAJBEGokACAACyoBAX4gACkDwAEiAUIgiKdBdU8EQCABpyIAIAAoAgBBAWo2AgALIAEQUwvXAQICfgF/An9B/McAIAEpAwAiAkIgiKciAUUgAUELakERS3INABoCQAJAIAJCgICAgHCDIgNCgICAgNB+UgRAQagsIANCgICAgOB+UQ0DGiADQoCAgIDwflIEQEG6zAAgACACEDgNBBogA0KAgICAgAF8QiCIpyIAQQ1JDQIMAwtB1TEMAwtBgNcADAILQYM8IAB2QQFxRQ0AIABBAnRB0J4BaigCAAwBC0HVygBBxTEgAkKAgICAcFQbCyIAED9BAWoiARCxASIEBH8gBCAAIAEQHwVBAAsLeQEBfyMAQRBrIgUkACADBEAgBSABNgIMQQEhAwJAAkACQCAFQQxqQQAQkwRBM2oOAwIBAAELIAVBDGpBABCTBCIDQS5HIANBKEdxIQMMAQtBACEDCyADIARyIQQLIAAgASABED8gAiAEEPQFEFMhACAFQRBqJAAgAAvUAQICfgF/AkAgACABKQMAQoCAgIAwQoCAgIAwEJQEIgJCgICAgHCDQoCAgIDgAFENACAAIAIQswEhBCAAIAIQDyAERQ0AIAAgBCAEED9B7IgBEPUFIQIgACAEEFQgAkKAgICAcINCgICAgOAAUQ0AIAAgAiABKQMAQeHoABD4AyAAIAIgASkDAEG66wAQ+AMgACACIAEpAwBByNcAEPgDIAAgAkKAgICAMEKAgICAMBCUBCEDIAAgAhAPIAAgAxCzASEBIAAgAxAPIAEPCyAAIAEQ9wULOQIBfwF+IAE1AgRCIIZCgICAgOAAUQR/IAAoAhAiACkDgAEhAyAAQoCAgIAgNwOAASADEFMFQQALC3IBBH8jACIGIQcgA0EAIANBAEobIQggBiADQQN0QQ9qQXBxayIGJAADQCAFIAhGRQRAIAYgBUEDdGogBCAFQQJ0aigCACkDADcDACAFQQFqIQUMAQsLIAAgASkDACACKQMAIAMgBhAhEFMhACAHJAAgAAuNAQECfiAAIAIpAwAQMSECIAAgASkDACACIAMpAwAgBCkDACIJIAUpAwAiCkGBAkEBIAgbQQAgBhtBhAhBBCAIG0EAIAcbciIBIAFBgBByIAlCgICAgHCDQoCAgIAwURsiASABQYAgciAKQoCAgIBwg0KAgICAMFEbIgFBgMAAciABIAgbEG0aIAAgAhATC0QBAX4gACACKQMAEDEhAiADKQMAIgRCIIinQXVPBEAgBKciAyADKAIAQQFqNgIACyAAIAEpAwAgAiAEELEFIAAgAhATCywBAX4gACACKQMAEDEhAiAAIAEpAwAiAyACIANBABAUIQMgACACEBMgAxBTC/QBAgV/AX4gAEGgAWohBwJAA0ACQCABIAZGDQAgACgCpAEiAyAHRg0AIAMoAgAiBSADKAIEIgQ2AgQgBCAFNgIAIANCADcCAEEAIQQgAygCCCIFIAMoAhAgA0EYaiADKAIMERkAIQgDQCAEIAMoAhBORQRAIAUgAyAEQQN0aikDGBAPIARBAWohBAwBCwsgBSAIEA8gBSgCECIEQRBqIAMgBCgCBBEAACACIAU2AgAgCEKAgICAcINCgICAgOAAUQRAIAUoAhAiACkDgAEhCCAAQoCAgIAgNwOAAQwDBSAGQQFqIQYMAgsACwsgBq0hCAsgCBBTCw8AIAAoAqQBIABBoAFqRwshAQF+IAAgACABEPYFIgIQDyACQoCAgIBwg0KAgICAMFILPwEBfiAAIAEQ9gUiAkKAgICAcINCgICAgDBRBEAgACABKQMAQa3LABCyASECCyAAIAIQswEhASAAIAIQDyABC7UBAgJ/A34jAEEQayIDJAAgACkDwAEiBUIgiKdBdU8EQCAFpyIEIAQoAgBBAWo2AgALIAAgBUGD0wAQsgEhBiAAIAUQDyADIAAgARBiNwMIAkAgAgRAIAAgACAGQdnAABCyASIFIAZBASADQQhqECEhByAAIAMpAwgQDwwBCyAAIAZCgICAgDBBASADQQhqECEhByADKQMIIQULIAAgBRAPIAAgBhAPIAcQUyEAIANBEGokACAACwoAIAAgARBiEFMLPgIBfwF8IwBBEGsiAiQAIAJCgICAgICAgPz/ADcDCCAAIAJBCGogASkDABBCGiACKwMIIQMgAkEQaiQAIAMLaQEBfgJ+IAG9IgICfyABmUQAAAAAAADgQWMEQCABqgwBC0GAgICAeAsiALe9UQRAIACtDAELQoCAgIDAfiACQoCAgIDAgYD8/wB9IAJC////////////AINCgICAgICAgPj/AFYbCxBTCwgAIAAQPhBTCw0AIAAgASkDABBHEFMLCAAgABA0EFMLKQEBfiABKQMAIgJCIIinQXVPBEAgAqciACAAKAIAQQFqNgIACyACEFMLCAAgACABEFQLFgAgACgCECIAQRBqIAEgACgCBBEAAAs+AgF/AX4CQCABKQMAIgNCIIinQXVJDQAgA6ciAiACKAIAIgJBAWs2AgAgAkEBSg0AIAAgAxCWBAsgARCbAQsQACAAIAEpAwAQDyABEJsBCwcAIAAQpAML2QMCAn8BfiMAQSBrIgIkAAJAAkAgAUKAgICAcINCgICAgDBSBEAgAEGiPkEAEBUMAQsgAykDACIBQiCIp0F1TwRAIAGnIgMgAygCAEEBajYCAAsDQAJAAkACQAJAAkACQEEHIAFCIIinIgMgA0EHa0FuSRtBC2oOEwIIAQUDBQUFBQUEAAAFBQUFBQEFCyAAIAHEEIcCIQEMBwsCQAJ+IAAgAkEMaiABELsCIgMoAghB/v///wdOBEAgACABEA8gAEHDK0EAEFBCgICAgOAADAELIAAQlwEiBkKAgICAcINCgICAgOAAUQ0BIAanQQRqIgQgAxBEIQUgBEEBENEBIQQgACABEA8gBCAFciIEQSBxBEAgACAGEA8gABB8QoCAgIDgAAwBCyAEQRBxBEAgACAGEA8gAEH1xQBBABBQQoCAgIDgAAwBCyAAIAYQzQELIQEgAyACQQxqRw0HIAJBDGoQGwwHCyAAIAEQDwwFCyAAIAEQNyIBQoCAgIBwg0KAgICA4ABSDQMMBQsgACABEKoFIQEMBAsgACABQQEQmgEiAUKAgICAcINCgICAgOAAUg0BDAMLCyAAIAEQDyAAQewrQQAQFQtCgICAgOAAIQELIAJBIGokACABC54OAg1/An4jAEHQAGsiBSQAQoCAgIDgACETAkAgABCXASISQoCAgIBwg0KAgICA4ABRDQAgBSABNgI4IBKnQQRqIQoCQAJAAkACQAJAIAJBEEwEQCABQeDRACAFQThqEJkFDQEgBSgCOCEBCwJAAkACQCABLQAAIgRBK2sOAwECAAILQQEhEAsgBSABQQFqIgw2AjggAS0AASEEIAwhAQsCQAJAAkACQCAEQf8BcUEwRgRAAkACQCABLQABIgRB+ABHBEAgBEHvAEYNBSAEQdgARw0BCyACQW9xRQRAIAUgAUECajYCOEEQIQIgAS0AAhCWAUEQSQ0HDAgLIARB7wBGDQYgAkUhBgwBCyACRSEGIAINACAEQc8ARg0ECyAEQeIARg0BIAYgBEHCAEZxDQMMAgsgAkEQSg0DIAFBrN0AIAVBOGoQmQVFDQEMBwsgBiACRXJFDQIMAQsgAg0BC0EKIQILAn8gAiACQQFrIgRxBEAgCigCACEEIAVCADcCLCAFQoCAgICAgICAgH83AiQgBSAENgIgIAVBIGoMAQtBICAEZ2tBACACQQJPGyEJIAoLIQ0gBSgCOCEEA0AgBC0AAEEwR0UEQCAFIARBAWoiBDYCOAwBCwtBICEMIAlFBEAgAkHeqARqLQAAIQwLIA1BARBBGiAFQQA2AjQgDCEEQQAhBgJAAkACQAJAA0ACQAJAIAUoAjgiCC0AACIRQS5HDQAgASAITwRAQS4hESAILAABEJYBIAJODQELIA4NA0EBIQ4gBSAIQQFqIgc2AjggCC0AASERIAshDwwBCyAIIQcLIAIgEcAQlgEiCEsEQCAFIAdBAWo2AjggC0EBaiELIAkEQCAEIAlrIgRBAEwEQCANIAVBNGogCEEAIARrdiAGchDmAw0GIARBH3UgCCAEQSBqIgR0cSEGDAMLIAggBHQgBnIhBgwCCyAIIAIgBmxqIQYgBEEBayIEDQEgDSAFQTRqIAYQ5gMhByAMIQRBACEGIAdFDQEMAwsLIA8gCyAOGyEPCyAEIAxGDQIgCSAERXJFBEADQCACIAZsIQYgBEEBayIEDQALCyANIAVBNGogBhDmA0UNAiAJDQELIA0QGwsgChA1DAMLIA0oAhBBACAFKAI0Ig5BAnRBBGoQKxogBSgCOCIIIAFHDQEgCQ0AIA0QGwsgChA1DAMLIAgtAAAhBAJAAkACfwJ/AkAgAkEKRgRAIAQiB0EgckHlAEYNAUEAIQtBAAwCC0HAACEHIARBwABGDQAgCUUEQEEAIQYMBAsgBCIHQSByQfAARg0AQQAhBiAJDAILQQAhC0EAIAEgCE8NABogBSAIQQFqIgY2AjggB0HfAXEhAUEBIQcCQAJAAkAgCC0AAUEraw4DAAIBAgsgBSAIQQJqIgY2AjgMAQsgBSAIQQJqIgY2AjhBACEHCyABQdAARiELQQAhBANAIAYsAAAQlgEiAUEJTQRAIARBzJmz5gBOBEAgBw0IIAogEBCJAQwJBSAFIAZBAWoiBjYCOCABIARBCmxqIQQMAgsACwsgBEEAIARrIAcbCyEGIAlFDQFBASAJIAsbCyEEIA0gEDYCBCANIAQgBmwgCSAPbGo2AgggDUH/////A0EBELMCIQQMAQsCQCANKAIMIgcgDkEBaiILRgRAIAogEBCJAUEAIQQMAQsgCigCACEBIAVCADcCGCAFQoCAgICAgICAgH83AhAgBSABNgIMIA0oAhAhDiACEJcFIRFBACEEAkACQCABKAIAQQBBAkEiIAcgC2siB0EBa2drIAdBAkkbIghBFGwgASgCBBEBACIJBEAgDiALQQJ0aiEOIA8gByAMbGsgBmohDANAIAQgCEZFBEAgBSgCDCEPIAkgBEEUbGoiC0IANwIMIAtCgICAgICAgICAfzcCBCALIA82AgAgBEEBaiEEDAELC0EAIQQgBUEMaiAOIAdBACAHIBEgCRDlAyEHA0AgBCAIRkUEQCAJIARBFGxqEBsgBEEBaiEEDAELCyABKAIAIAlBACABKAIEEQEAGiAHRQ0BCyAKEDVBICEEDAELIAUgEDYCECAFKAIYRQRAIAogBUEMahBEIQQMAQsgDEUEQCAKIAVBDGoQRCAKQf////8DQQEQzgFyIQQMAQsgCigCACEBIAVCADcCSCAFQoCAgICAgICAgH83AkAgBSABNgI8IAVBPGogAiAMIAxBH3UiAXMgAWtB/////wNBABD8AiEBAn8gDEEASARAIAogBUEMaiAFQTxqIAUoAhhBBXRBABCVAQwBCyAKIAVBDGogBUE8akH/////A0EAEEMLIAFyIQQgBUE8ahAbCyAFQQxqEBsLIA0QGwsgBEEgcUUNAgsgACASEA8gABB8DAILIAogEBCMAQsgACASIANBCXZBAXEQlgUhEwsgBUHQAGokACATC8UCAgR/AX4jAEEgayIHJAACfwJAAkACQCACQY0BRw0AIAAoAhAoAowBIgQEQCAELQAoQQRxDQELIABB25ABQQAQFQwBCyAAEJcBIghCgICAgHCDQoCAgIDgAFINAQsgACADEA9BfwwBCyAIpyIFQQRqIQYgACAHQQxqIAMQuwEhBAJAAkACQAJAAkACQCACQYwBaw4KAQAEBAMDAwMDAgMLIAYgBBBEIQIMBAsgBiAEEEQhAiAFIAUoAghBAXM2AggMAwsgBiAEQgFB/////wNBARB1IQIgBSAFKAIIQQFzNgIIDAILEAEACyAGIAQgAkEBdEGdAmusQf////8DQQEQdSECCyAAIAQgB0EMahBeIAAgAxAPIAIEQCAAIAgQDyAAIAIQhAJBfwwBCyABIAAgCBDNATcDAEEACyEAIAdBIGokACAAC7YJAgZ/BH4jAEFAaiIGJABCgICAgOAAIQwCfwJAAkAgABCXASILQoCAgIBwg0KAgICA4ABRDQACQCAAIAZBLGogAxC7ASIHRQ0AIAAgBkEYaiAEELsBIghFBEAgACAHIAZBLGoQXgwBCyALp0EEaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUGaAWsOGQECBA0ABQgIDAwMDAwMDAwMDAwJCwoMDAMMCyAJIAcgCEH/////A0EBEOQBIQUMDQsgCSAHIAhB/////wNBARBDIQUMDAsgACgCECgCjAEiBQRAIAUtAChBBHENBAsgACgC2AEhASAGQgA3AgwgBkKAgICAgICAgIB/NwIEIAYgATYCACAJIAYgByAIQQEQ5AMhBSAGEBsMCwsgCSAHIAhBBhCVBUEBcSEFDAoLIAkgByAIQQEQlQVBAXEhBQwJCyAIKAIERQ0BQQEhBSAAKAIQKAKMASIJRQ0IIAktAChBBHFFDQgLIAAgCxAPAkACfwJAAkAgACAAKAIoKQOIAiILQd0BIAtBABAUIgtCgICAgHCDIgxCgICAgDBSBEAgDEKAgICA4ABRDQIgACALQSUQSyIFRQ0CIAUgARD3A0ECdGooAggiBQ0BIAAgCxAPC0KAgICA4AAhDCAAELYFIgtCgICAgHCDQoCAgIDgAFINAyAAIAcgBkEsahBeIAAgCCAGQRhqEF4MDgsgACADELkCIgxCgICAgHCDQoCAgIDgAFENACAAIAQQuQIiDkKAgICAcINCgICAgOAAUQRAIAAgDBAPDAELIAUgBSgCAEEBajYCACAGIA43AwggBiAMNwMAIAAgBa1CgICAgHCEQoCAgIAwQQIgBhAvIQ0gACAMEA8gACAOEA9BACANQoCAgIBwg0KAgICA4ABSDQEaC0KAgICAMCENQQELIQEgACALEA8gACAHIAZBLGoQXiAAIAggBkEYahBeIAAgAxAPIAAgBBAPQX8gAQ0NGiACIA03AwAMCQsgC6dBBGohBSAAKALgASEJIAAoAtwBIQoCfyABQZsBRgRAIAUgByAIIAogCRCVAQwBCyAFIAcgCCAKIAlBgIAEchCUBQshASAAIAcgBkEsahBeIAAgCCAGQRhqEF4gACADEA8gACAEEA8gAUEgcSIBBEAgACALEA8gACABEIQCDAwLIAIgCzcDAAwICyAJIAcgCEH/////A0GBgAQQlAUhBQwGCyAGIAhBABCpASAGKAIAIQUgCSAHEEQgCUEAQYGAgIB4IAUgBUGBgICAeEwbIgVrIAUgAUGhAUYbIgFB/////wNBARDMAXIhBSABQQBODQUgCUECENEBQSRxIAVyIQUMBQsgCSAHIAgQkwUhBQwECyAJIAcgCEEAEOMDIQUMAwsgCSAHIAhBARDjAyEFDAILEAEACyAJIAcgCEH/////A0EBEMsBIQULIAAgByAGQSxqEF4gACAIIAZBGGoQXiAAIAMQDyAAIAQQDyAFBEAgACALEA8gACAFEIQCDAQLIAIgACALEM0BNwMAC0EADAMLIAshDAsgACAMEA8gACADEA8gACAEEA8LQX8LIQAgBkFAayQAIAAL4QEBBH8jAEEwayIEJABBfyEHAkAgACAEQRxqIAIQuwIiBUUNAAJAIAAgBEEIaiADELsCIgZFBEAgBSAEQRxqRw0BIARBHGoQGwwBCwJ/AkACQAJAAkACQAJAIAFBowFrDgcFAAECBAQDBAsgBSAGEJIFDAULIAYgBRCyAgwECyAGIAUQkgUMAwsgBSAGEIICDAILEAEACyAFIAYQsgILIQcgBEEcaiAFRgRAIARBHGoQGwsgBEEIaiAGRgRAIARBCGoQGwsgACACEA8MAQsgAiEDCyAAIAMQDyAEQTBqJAAgBwsLACAAIAFBChCaBQuuAgIDfwF+IwBBIGsiBSQAAkAgAaciBygCICIGRQ0AIAYoAggiCCgCBA0AIAhBATYCBCAHLwEGQTJrIQcCQAJAIANBAEwEQEKAgICAMCEBDAELIAcgBCkDACIBQoCAgIBwVHINAAJAAkAgACABIAYpAwAQUgRAIABB88oAQQAQFQwBCyAAIAFB/wAgAUEAEBQiAkKAgICAcINCgICAgOAAUg0BCyAAKAIQIgMpA4ABIQEgA0KAgICAIDcDgAEgACAGKQMAIAFBARCKBSAAIAEQDwwDCyAAIAIQOA0BIAAgAhAPCyAAIAYpAwAgASAHEIoFDAELIAYpAwAhCSAFIAI3AxAgBSABNwMIIAUgCTcDACAAQTVBAyAFEJoDIAAgAhAPCyAFQSBqJABCgICAgDAL3wECA38CfiAAQegAEF8iBUUEQEKAgICA4AAPCyAFQQE2AgAgACgCECEGIAVBBDoABCAGKAJQIgcgBUEIaiIINgIEIAUgBkHQAGo2AgwgBSAHNgIIIAYgCDYCUCAFQoCAgIAwNwMYIAVCgICAgDA3AxAgBUEANgIgQoCAgIDgACEJAkACQCAAIAVBEGoQzQIiCkKAgICAcINCgICAgOAAUgRAIAAgBUEoaiABIAIgAyAEEO0DRQ0BCyAAIAoQDwwBCyAFQQE2AiAgACAFEIkFIAohCQsgACgCECAFEIgFIAkLmAEBAX8gAaciBS8BBkE1ayEGIAUoAiAhBSADQQBMBH5CgICAgDAFIAQpAwALIQEgBSAGNgI0IAFCIIinIQMCQCAGBEAgA0F1TwRAIAGnIgMgAygCAEEBajYCAAsgACABEIoBDAELIANBdU8EQCABpyIDIAMoAgBBAWo2AgALIAUoAmRBCGsgATcDAAsgACAFEIkFQoCAgIAwC7oBAQF/IABB0AAQXyIFBEAgBUEANgIEIAUgBUHIAGoiBjYCTCAFIAY2AkgCQCAAIAVBCGoiBiABIAIgAyAEEO0DBEAgBUEFNgIEDAELIAAgBhC0AiICQoCAgIBwg0KAgICA4ABRDQAgACACEA8gACABQTkQZSIBQoCAgIBwg0KAgICA4ABRDQAgBSABpyIANgIAIAFCgICAgHBaBEAgACAFNgIgCyABDwsgACgCECAFEIcFC0KAgICA4AALsgMCBX8DfiMAQRBrIgQkAAJAAkAgAykDACILQoCAgIBwWgRAIAunIgcvAQZBE2tB//8DcUECSQ0BCyAAQRMQhgNCgICAgOAAIQoMAQtCgICAgOAAIQogBygCICIFRQ0AIARCADcDCCACQQJOBEAgACAEQQhqIAMpAwgQpgENAQsgBS0ABARAIAAQawwBCyAEKQMIIgkgBSgCACIGrFYEQCAAQYcuQQAQUAwBCyAGIAmnIghrIQYCQCACQQNIDQAgAykDECIJQoCAgIBwg0KAgICAMFENACAAIAQgCRCmAQ0BIAQpAwAiCSAGrVYEQCAAQaHZAEEAEFAMAgsgCachBgsgACABQSAQZSIBQoCAgIBwg0KAgICA4ABRDQACQAJAIAUtAAQEQCAAEGsMAQsgAEEYECkiAg0BCyAAIAEQDwwBCyACIAGnIgA2AgggC0IgiKdBdU8EQCAHIAcoAgBBAWo2AgALIAIgBjYCFCACIAg2AhAgAiAHNgIMIAUoAgwiAyACNgIEIAIgBUEMajYCBCACIAM2AgAgBSACNgIMIAAgAjYCICABIQoLIARBEGokACAKCxMAIABByPoAQQAQFUKAgICA4AALQgEBfiMAQRBrIgIkAEKAgICA4AAhBCAAIAJBCGogAykDABCmAUUEQCAAIAEgAikDCEEUENwDIQQLIAJBEGokACAEC0ABAX4jAEEQayICJABCgICAgOAAIQQgACACQQhqIAMpAwAQpgFFBEAgACABIAIpAwgQ+QIhBAsgAkEQaiQAIAQLhAYCA38HfiMAQSBrIgUkAEKAgICA4AAhDQJAIAAgASAEQSZqEGUiAUKAgICAcINCgICAgOAAUQ0AQoCAgIAwIQoCQAJAAkACQCAAQRwQXyIGRQ0AIAYgBEEBdkEBcTYCACAGIAZBBGoiBzYCCCAGIAc2AgQgAUKAgICAcFoEQCABpyAGNgIgCyAGQQE2AhQgBiAAQQgQKSIHNgIQQoCAgIAwIQtCgICAgDAhCCAHRQ0CIAcgBzYCBCAHIAc2AgAgBkEENgIYIAJBAEwNAyADKQMAIghCgICAgBCEQoCAgIBwg0KAgICAMFENAyAAIAFB6ABBwgAgBEEBcSICGyABQQAQFCIKQoCAgIBwg0KAgICA4ABRDQAgACAKEDgNASAAQZDMAEEAEBULQoCAgIAwIQtCgICAgDAhCAwBCyAAIAhBABDnASIIQoCAgIBwg0KAgICA4ABRBEAMAQsCQCAAIAhB6gAgCEEAEBQiC0KAgICAcINCgICAgOAAUQ0AAkADQCAFIAAgCCALIAVBFGoQrgEiCTcDGCAJQoCAgIBwg0KAgICA4ABRDQIgBSgCFEUEQAJAIAIEQCAAIAogAUEBIAVBGGoQISIOQoCAgIBwg0KAgICA4ABSDQEgACAFKQMYEA8MBQsCQAJAIAlC/////29YBEAgABAkQoCAgIAwIQkMAQsgACAJQgAQTSIJQoCAgIBwg0KAgICA4ABSDQELQoCAgIAwIQwMBAsgACAFKQMYQgEQTSIMQoCAgIBwg0KAgICA4ABRDQMgBSAMNwMIIAUgCTcDACAAIAogAUECIAUQISIOQoCAgIBwg0KAgICA4ABRDQMgACAJEA8gACAMEA8LIAAgDhAPIAAgBSkDGBAPDAELCyAAIAkQDyAAIAsQDyAAIAgQDyAAIAoQDwwDCyAAIAUpAxgQDyAAIAkQDyAAIAwQDwsgCEKAgICAcFQNACAAIAhBARCtARoLIAAgCxAPIAAgCBAPIAAgChAPIAAgARAPDAELIAEhDQsgBUEgaiQAIA0L1wMCAX8DfiMAQSBrIgYkAAJAAkACQCAFQQFxBEBCgICAgOAAIQcgACAGQRhqIAFB3gAQgQEiBUUNAwJAIAUpAwAiAUKAgICAcFoEQCABpy0ABUEQcQ0BCyAAQaI+QQAQFQwECyAGKQMYIghCgICAgHCDQoCAgIAwUQRAIAAgASACIAMgBBCQAyEHDAQLIAAgAyAEEIkDIglCgICAgHCDQoCAgIDgAFENAiAFKQMAIQEgBiACNwMQIAYgCTcDCCAGIAE3AwAgACAIIAUpAwhBAyAGECEiAUL/////b1YNASABQoCAgIBwg0KAgICA4ABRDQEgACABEA8gABAkDAILQoCAgIDgACEHIAAgBkEYaiABQdoAEIEBIgVFDQIgBikDGCEBIAUtABBFBEAgACABEA8gAEGbzABBABAVDAMLIAFCgICAgHCDQoCAgIAwUQRAIAAgBSkDACACIAMgBBAhIQcMAwsgACADIAQQiQMiCEKAgICAcINCgICAgOAAUgRAIAUpAwAhByAGIAg3AxAgBiACNwMIIAYgBzcDACAAIAEgBSkDCEEDIAYQISEHCyAAIAEQDyAAIAgQDwwCCyABIQcLIAAgCBAPIAAgCRAPCyAGQSBqJAAgBwuCBQEDfiADKQMIIQYCQCAAIAMpAwAiBBDQAyICQQBOBEACQCABQoCAgIBwg0KAgICAMFINACAAKAIQKAKMASkDCCEBIAJFIAZCgICAgHCDQoCAgIAwUnINACAAIARBPCAEQQAQFCIFQoCAgIBwg0KAgICA4ABRBEAgBQ8LIAAgBSABEFIhAyAAIAUQDyADRQ0AIARCIIinQXVJDQIgBKciACAAKAIAQQFqNgIADAILAkACQAJAAkACQCAEQoCAgIBwVA0AIASnIgMvAQZBEkcNACADKAIgIgIgAigCAEEBajYCACACrUKAgICAkH+EIQUgBkKAgICAcINCgICAgDBSDQEgAygCJCICIAIoAgBBAWo2AgAgAq1CgICAgJB/hCEEDAMLAkACQAJAIAIEQCAAIARB7AAgBEEAEBQiBUKAgICAcINCgICAgOAAUQRAQoCAgIAwIQYMCAsgBkKAgICAcINCgICAgDBRBEAgACAEQe0AIARBABAUIgZCgICAgHCDQoCAgIDgAFINBAwICyAFIQQgBkIgiKdBdEsNAQwDCyAEQiCIp0F1TwRAIASnIgIgAigCAEEBajYCAAsgBkIgiKdBdUkNAQsgBqciAiACKAIAQQFqNgIACyAEIQULIAVCgICAgHCDQoCAgIAwUQRAIABBLxAtIQUMAgsgACAFECghBCAAIAUQDyAEIgVCgICAgHCDQoCAgIDgAFENAwwBCyAAIAYQKCIGQoCAgIBwg0KAgICA4ABRDQILIAAgBSAGEJgEIgRCgICAgHCDQoCAgIDgAFENASAAIAYQDwsgACABIAUgBBDeBQ8LIAAgBRAPIAAgBhAPC0KAgICA4AAPCyAEC6IOAgd/AX4jAEHgAGsiByQAIAdBCGpBAEHQABArGiAHIAQ2AhQgByAANgIIIAcgAiADaiIDNgJEIAcgAjYCQCAHQQE2AhAgB0KggICAEDcDGAJAIAItAABBI0cNACACLQABQSFHDQAgByACQQJqIgI2AlwDQAJAAkACQCACIANPDQACQCACLQAAIghBCmsOBAEAAAEACyAIwEEATg0CIAJBBiAHQdwAahBYIghBfnFBqMAARw0BIAcoAlwhAgsgByACNgJADAMLIAcoAlwhAiAIQX9HDQELIAcgAkEBaiICNgJcDAALAAsCQAJAAkACQAJAAkACfwJAAkACQAJAAn8gBUEDcSIKQQJGBEAgACgCECgCjAEiC0UNBCALKQMIIg5C/////29YDQMgDqciAi8BBhDuAUUNAiACKAIkIQxBACEIIAIoAiAiAy0AEAwBCyAFQQN2IQIgCkEBRwRAQQAhA0EAIQggAkEDcQwBC0KAgICA4AAhDiAAIAQQqgEiA0UNCyAAQfAAEF8iCEUEQCAAIAMQEwwMCyAIQoCAgIAwNwNoIAhCgICAgDA3A2AgCEKAgICAMDcDSCAIQoCAgIAwNwNAIAggAzYCBCAIQQE2AgAgACgC9AEiAyAIQQhqIgk2AgQgCCAAQfQBajYCDCAIIAM2AgggACAJNgL0AUEAIQMgAkECcUEBcgshCSAAQQBBAUEAIARBARDoAyICRQ0HIAcgAjYCSCACIApBAkciBDYCTCACIAo2AiQgAiAFQQZ2QQFxNgJoAkAgBEUEQCACIAMvABFBBnZBAXE2AlAgAiADLwARQQd2QQFxNgJUIAIgAy0AEkEBcTYCWCADLwARIQQgAkHQADYCcCACIAk6AG4gAiAEQQl2QQFxNgJcDAELIAJB0AA2AnAgAiAJOgBuIAJCgICAgBA3AlggAkIANwJQIAIgA0UNBRoLIAMoAjwhBCADLwEqIQkgAy8BKCEKIAJBADYCwAIgAkEANgLIAiACIAQgCSAKamoiCTYCxAIgAiAJRQ0EGiACIAAgCUEDdBApIgQ2AsgCIARFDQUDQCAGQQBOBEAgAygCICAGIAMvAShqQQR0aiIEKAIEQQBKBEAgAiACKALAAiIJQQFqNgLAAiAAIAIoAsgCIAlBA3RqIAQgBhDnAwsgBCgCCCEGDAELC0EAIQQgBkF+RgRAA0AgBCADLwEqTw0FAkAgAygCICAEIAMvAShqQQR0aiIGKAIEDQAgBhCeBUUNACACIAIoAsACIglBAWo2AsACIAAgAigCyAIgCUEDdGogBiAEEOcDCyAEQQFqIQQMAAsACwNAIAMvASggBE0EQEEAIQQDQCAEIAMvASpPDQYCQCADKAIgIAQgAy8BKGpBBHRqIgYoAgQNACAGKAIAQdEARg0AIAIgAigCwAIiCUEBajYCwAIgACACKALIAiAJQQN0aiAGIAQQ5wMLIARBAWohBAwACwAFIAIgAigCwAIiBkEBajYCwAIgAygCICEJIAIoAsgCIAZBA3RqIgYgBDsBAiAGQQM6AAAgBiAAIAkgBEEEdGooAgAQGDYCBCAEQQFqIQQMAQsACwALQbGSAUGu/ABBwIYCQe7WABAAAAtB6oEBQa78AEG+hgJB7tYAEAAAC0GXhAFBrvwAQb2GAkHu1gAQAAALQQAhBgNAIAYgAygCPE5FBEAgAygCJCEJIAIgAigCwAIiBEEBajYCwAIgAigCyAIgBEEDdGoiBCAELQAAIgpB/gFxOgAAIAQgCSAGQQN0aiIJLQAAQQJxIApB/AFxciIKOgAAIAQgCkH6AXEgCS0AAEEEcXIiCjoAACAEIApB9gFxIAktAABBCHFyIgo6AAAgCS0AACENIAQgBjsBAiAEIApBDnEgDUHwAXFyOgAAIAQgACAJKAIEEBg2AgQgBkEBaiEGDAELCyAHKAJICyEEIAIgCDYClAMgByAIRTYCUCAHIAhBAEc2AkwgB0EIaiIDEIABGiACIAIoArwBNgLwASADEBINACAHQQhqEJ0FDQBBASEDIAQgBCgCJEECTwR/IAQtAG5BAXEFQQALRTYCKCAHKAJMRQRAIAQgBygCCCAEQdEAEE8iAzYCpAEgA0EASA0BCwNAIAcoAhhBrH9GDQIgB0EIahCcBUUNAAsLIAdBCGogB0EYahD/ASAAIAIQ/QIMAQtBKSEDIAdBCGogBygCTAR/QSkFIAdBCGpB2AAQECAHKAJIQYACaiAELwGkARAqQSgLEBAgACACEJsFIg5CgICAgHCDQoCAgIDgAFENACAIBEAgCCAONwNIIAAgCBD+A0EASA0CIAggCCgCAEEBajYCACAIrUKAgICAUIQhDgsgBUEgcQ0DIAAgDiABIAwgCxDIBSEODAMLIAhFDQELIAAgCBDnBQtCgICAgOAAIQ4LIAdB4ABqJAAgDgvbBQMFfwN+AXwjAEFAaiIFJAACQAJ8AkACQAJAAkACQCACQQAgAUKAgICAcIMiC0KAgICAMFIbIgIOAgIAAQsCQCADKQMAIglCgICAgHBUDQAgCaciBC8BBkEKRw0AIAQpAyAiCkIgiKciBEEAIARBC2pBEkkbDQAgACAFIAoQQg0DDAQLIAUgACAJQQIQkAIiCTcDOCAJQoCAgIBwg0KAgICAkH9RBEAgACABIAQgBUE4ahDRBCEKIAAgCRAPIApCgICAgHCDQoCAgIDgAFENAyAAIAUgChBuRQ0EDAMLIAAgBSAJEG5FDQMMAgsgBUEAQTgQKyIGQoCAgICAgID4PzcDEEEHIAIgAkEHThsiB0EAIAdBAEobIQIDQAJAIAIgBEcEQCAAIAZBOGogAyAEQQN0IghqKQMAEEINBCAGKwM4Igy9QoCAgICAgID4/wCDQoCAgICAgID4/wBSDQEgBCECC0QAAAAAAAD4fyACIAdHDQUaIAZBARDgAgwFCyAGIAhqIAydOQMAAkAgBA0AIAYrAwAiDEQAAAAAAAAAAGZFIAxEAAAAAAAAWUBjRXINACAGIAxEAAAAAACwnUCgOQMACyAEQQFqIQQMAAsACxDQBLkMAgtCgICAgOAAIQEMAgsgBSsDACIMnUQAAAAAAAAAAKBEAAAAAAAA+H8gDEQAANzCCLI+Q2UbRAAAAAAAAPh/IAxEAADcwgiyPsNmGwshDAJAIAAgAUEKEGUiCUKAgICAcINCgICAgOAAUQ0AIAAgCQJ+IAy9IgECfyAMmUQAAAAAAADgQWMEQCAMqgwBC0GAgICAeAsiBLe9UQRAIAStDAELQoCAgIDAfiABQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbCxDbASALQoCAgIAwUg0AIAAgCSAEIARBExDPBCEBIAAgCRAPDAELIAkhAQsgBUFAayQAIAELqAEBBX8gACgCVCIDKAIAIQUgAygCBCIEIAAoAhQgACgCHCIHayIGIAQgBkkbIgYEQCAFIAcgBhAfGiADIAMoAgAgBmoiBTYCACADIAMoAgQgBmsiBDYCBAsgBCACIAIgBEsbIgQEQCAFIAEgBBAfGiADIAMoAgAgBGoiBTYCACADIAMoAgQgBGs2AgQLIAVBADoAACAAIAAoAiwiATYCHCAAIAE2AhQgAgspACABIAEoAgBBB2pBeHEiAUEQajYCACAAIAEpAwAgASkDCBC/BTkDAAuTGAMSfwF8A34jAEGwBGsiDCQAIAxBADYCLAJAIAG9IhlCAFMEQEEBIRFBtiEhEyABmiIBvSEZDAELIARBgBBxBEBBASERQbkhIRMMAQtBvCFBtyEgBEEBcSIRGyETIBFFIRULAkAgGUKAgICAgICA+P8Ag0KAgICAgICA+P8AUQRAIABBICACIBFBA2oiAyAEQf//e3EQYyAAIBMgERBbIABB4NEAQZSDASAFQSBxIgUbQazdAEGBhgEgBRsgASABYhtBAxBbIABBICACIAMgBEGAwABzEGMgAyACIAIgA0gbIQkMAQsgDEEQaiESAkACfwJAIAEgDEEsahCFBiIBIAGgIgFEAAAAAAAAAABiBEAgDCAMKAIsIgZBAWs2AiwgBUEgciIOQeEARw0BDAMLIAVBIHIiDkHhAEYNAiAMKAIsIQpBBiADIANBAEgbDAELIAwgBkEdayIKNgIsIAFEAAAAAAAAsEGiIQFBBiADIANBAEgbCyELIAxBMGpBoAJBACAKQQBOG2oiDSEHA0AgBwJ/IAFEAAAAAAAA8EFjIAFEAAAAAAAAAABmcQRAIAGrDAELQQALIgM2AgAgB0EEaiEHIAEgA7ihRAAAAABlzc1BoiIBRAAAAAAAAAAAYg0ACwJAIApBAEwEQCAKIQMgByEGIA0hCAwBCyANIQggCiEDA0BBHSADIANBHU4bIQMCQCAHQQRrIgYgCEkNACADrSEaQgAhGQNAIAYgGUL/////D4MgBjUCACAahnwiG0KAlOvcA4AiGUKA7JSjDH4gG3w+AgAgBkEEayIGIAhPDQALIBmnIgZFDQAgCEEEayIIIAY2AgALA0AgCCAHIgZJBEAgBkEEayIHKAIARQ0BCwsgDCAMKAIsIANrIgM2AiwgBiEHIANBAEoNAAsLIANBAEgEQCALQRlqQQluQQFqIQ8gDkHmAEYhEANAQQlBACADayIDIANBCU4bIQkCQCAGIAhNBEAgCCgCACEHDAELQYCU69wDIAl2IRRBfyAJdEF/cyEWQQAhAyAIIQcDQCAHIAMgBygCACIXIAl2ajYCACAWIBdxIBRsIQMgB0EEaiIHIAZJDQALIAgoAgAhByADRQ0AIAYgAzYCACAGQQRqIQYLIAwgDCgCLCAJaiIDNgIsIA0gCCAHRUECdGoiCCAQGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAsgA0EAIA5B5gBHG2sgDkHnAEYgC0EAR3FrIgcgBiANa0ECdUEJbEEJa0gEQEEEQaQCIApBAEgbIAxqIAdBgMgAaiIJQQltIg9BAnRqQdAfayEKQQohByAPQXdsIAlqIglBB0wEQANAIAdBCmwhByAJQQFqIglBCEcNAAsLAkAgCigCACIQIBAgB24iDyAHbCIJRiAKQQRqIhQgBkZxDQAgECAJayEQAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHIAggCk9yDQEgCkEEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAURhtEAAAAAAAA+D8gECAHQQF2IhRGGyAQIBRJGyEYAkAgFQ0AIBMtAABBLUcNACAYmiEYIAGaIQELIAogCTYCACABIBigIAFhDQAgCiAHIAlqIgM2AgAgA0GAlOvcA08EQANAIApBADYCACAIIApBBGsiCksEQCAIQQRrIghBADYCAAsgCiAKKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIJQQpJDQADQCADQQFqIQMgCSAHQQpsIgdPDQALCyAKQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIJRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQoMAQsgA0F/c0F/IAtBASALGyIGIANKIANBe0pxIgobIAZqIQtBf0F+IAobIAVqIQUgBEEIcSIKDQBBdyEGAkAgCQ0AIAdBBGsoAgAiDkUNAEEKIQlBACEGIA5BCnANAANAIAYiCkEBaiEGIA4gCUEKbCIJcEUNAAsgCkF/cyEGCyAHIA1rQQJ1QQlsIQkgBUFfcUHGAEYEQEEAIQogCyAGIAlqQQlrIgZBACAGQQBKGyIGIAYgC0obIQsMAQtBACEKIAsgAyAJaiAGakEJayIGQQAgBkEAShsiBiAGIAtKGyELC0F/IQkgC0H9////B0H+////ByAKIAtyIhAbSg0BIAsgEEEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADIA5B/////wdzSg0DIANBACADQQBKGyEGDAELIBIgAyADQR91IgZzIAZrrSASEJUCIgZrQQFMBEADQCAGQQFrIgZBMDoAACASIAZrQQJIDQALCyAGQQJrIg8gBToAACAGQQFrQS1BKyADQQBIGzoAACASIA9rIgYgDkH/////B3NKDQILIAYgDmoiAyARQf////8Hc0oNASAAQSAgAiADIBFqIgUgBBBjIAAgEyAREFsgAEEwIAIgBSAEQYCABHMQYwJAAkACQCAVQcYARgRAIAxBEGoiBkEIciEDIAZBCXIhCiANIAggCCANSxsiCSEIA0AgCDUCACAKEJUCIQYCQCAIIAlHBEAgBiAMQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAMQRBqSw0ACwwBCyAGIApHDQAgDEEwOgAYIAMhBgsgACAGIAogBmsQWyAIQQRqIgggDU0NAAsgEARAIABB2ZABQQEQWwsgC0EATCAHIAhNcg0BA0AgCDUCACAKEJUCIgYgDEEQaksEQANAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsLIAAgBkEJIAsgC0EJThsQWyALQQlrIQYgCEEEaiIIIAdPDQMgC0EJSiEDIAYhCyADDQALDAILAkAgC0EASA0AIAcgCEEEaiAHIAhLGyEJIAxBEGoiBkEIciEDIAZBCXIhDSAIIQcDQCANIAc1AgAgDRCVAiIGRgRAIAxBMDoAGCADIQYLAkAgByAIRwRAIAYgDEEQak0NAQNAIAZBAWsiBkEwOgAAIAYgDEEQaksNAAsMAQsgACAGQQEQWyAGQQFqIQYgCiALckUNACAAQdmQAUEBEFsLIAAgBiALIA0gBmsiBiAGIAtKGxBbIAsgBmshCyAHQQRqIgcgCU8NASALQQBODQALCyAAQTAgC0ESakESQQAQYyAAIA8gEiAPaxBbDAILIAshBgsgAEEwIAZBCWpBCUEAEGMLIABBICACIAUgBEGAwABzEGMgBSACIAIgBUgbIQkMAQsgEyAFQRp0QR91QQlxaiEIAkAgA0ELSw0AQQwgA2shBkQAAAAAAAAwQCEYA0AgGEQAAAAAAAAwQKIhGCAGQQFrIgYNAAsgCC0AAEEtRgRAIBggAZogGKGgmiEBDAELIAEgGKAgGKEhAQsgEUECciELIAVBIHEhDSASIAwoAiwiByAHQR91IgZzIAZrrSASEJUCIgZGBEAgDEEwOgAPIAxBD2ohBgsgBkECayIKIAVBD2o6AAAgBkEBa0EtQSsgB0EASBs6AAAgBEEIcSEGIAxBEGohBwNAIAciBQJ/IAGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIHQbDFBGotAAAgDXI6AAAgBiADQQBKckUgASAHt6FEAAAAAAAAMECiIgFEAAAAAAAAAABhcSAFQQFqIgcgDEEQamtBAUdyRQRAIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hCUH9////ByALIBIgCmsiBmoiDWsgA0gNACAAQSAgAiANIANBAmogByAMQRBqIgdrIgUgBUECayADSBsgBSADGyIJaiIDIAQQYyAAIAggCxBbIABBMCACIAMgBEGAgARzEGMgACAHIAUQWyAAQTAgCSAFa0EAQQAQYyAAIAogBhBbIABBICACIAMgBEGAwABzEGMgAyACIAIgA0gbIQkLIAxBsARqJAAgCQsWACAAIAApA8ABIAMpAwBBA0F/EJwDCwUAIACdC94BAwF8AX8BfiAAmSEBAkAgAL0iA0KAgICA8P////8Ag0IgiKciAkHrp4b/A08EQCACQYGA0IEETwRARAAAAAAAAACAIAGjRAAAAAAAAPA/oCEBDAILRAAAAAAAAPA/RAAAAAAAAABAIAEgAaAQlwJEAAAAAAAAAECgo6EhAQwBCyACQa+xwf4DTwRAIAEgAaAQlwIiACAARAAAAAAAAABAoKMhAQwBCyACQYCAwABJDQAgAUQAAAAAAAAAwKIQlwIiAJogAEQAAAAAAAAAQKCjIQELIAGaIAEgA0IAUxsLhAEBAn8jAEEQayIBJAACQCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEAgAkGAgIDyA0kNASAARAAAAAAAAAAAQQAQhgYhAAwBCyACQYCAwP8HTwRAIAAgAKEhAAwBCyAAIAEQnAQhAiABKwMAIAErAwggAkEBcRCGBiEACyABQRBqJAAgAAvmAwMGfAF+A38CQAJAAkACQCAAvSIHQgBZBEAgB0IgiKciCEH//z9LDQELIAdC////////////AINQBEBEAAAAAAAA8L8gACAAoqMPCyAHQgBZDQEgACAAoUQAAAAAAAAAAKMPCyAIQf//v/8HSw0CQYCAwP8DIQlBgXghCiAIQYCAwP8DRwRAIAghCQwCCyAHpw0BRAAAAAAAAAAADwsgAEQAAAAAAABQQ6K9IgdCIIinIQlBy3chCgsgCiAJQeK+JWoiCEEUdmq3IgVEAGCfUBNE0z+iIgEgB0L/////D4MgCEH//z9xQZ7Bmv8Daq1CIIaEv0QAAAAAAADwv6AiACAAIABEAAAAAAAA4D+ioiIDob1CgICAgHCDvyIERAAAIBV7y9s/oiICoCIGIAIgASAGoaAgACAARAAAAAAAAABAoKMiASADIAEgAaIiAiACoiIBIAEgAUSfxnjQCZrDP6JEr3iOHcVxzD+gokQE+peZmZnZP6CiIAIgASABIAFERFI+3xLxwj+iRN4Dy5ZkRsc/oKJEWZMilCRJ0j+gokSTVVVVVVXlP6CioKCiIAAgBKEgA6GgIgBEAAAgFXvL2z+iIAVENivxEfP+WT2iIAAgBKBE1a2ayjiUuz2ioKCgoCEACyAACwQAQgALmQECAnwBf0QAAAAAAADgPyAApiECIACZIQECQCAAvUKAgICA8P////8Ag0IgiKciA0HB3JiEBE0EQCABEJcCIQEgA0H//7//A00EQCADQYCAwPIDSQ0CIAIgASABoCABIAGiIAFEAAAAAAAA8D+go6GiDwsgAiABIAEgAUQAAAAAAADwP6CjoKIPCyABIAIgAqAQjQYhAAsgAAvLAQECfyMAQRBrIgEkAAJAIAC9QiCIp0H/////B3EiAkH7w6T/A00EQCACQYCAwPIDSQ0BIABEAAAAAAAAAABBABDPAiEADAELIAJBgIDA/wdPBEAgACAAoSEADAELAkACQAJAAkAgACABEJwEQQNxDgMAAQIDCyABKwMAIAErAwhBARDPAiEADAMLIAErAwAgASsDCBDQAiEADAILIAErAwAgASsDCEEBEM8CmiEADAELIAErAwAgASsDCBDQApohAAsgAUEQaiQAIAALoQEBBH8gAiAAKAJUIgMoAgQiBCADKAIAIgVrIgZBACAEIAZPGyIESwRAIAAgACgCAEEQcjYCACAEIQILIAEgAygCDCAFaiACEB8aIAMgAygCACACaiIFNgIAIAAgACgCLCIBNgIEIAAgASAEIAJrIgQgACgCMCIAIAAgBEsbIgBqNgIIIAEgAygCDCAFaiAAEB8aIAMgAygCACAAajYCACACC4sBAQF/IwBBEGsiAyQAAn4CQCACQQNPDQAgACgCVCEAIANBADYCBCADIAAoAgA2AgggAyAAKAIENgIMQQAgA0EEaiACQQJ0aigCACICa6wgAVUNACAAKAIIIAJrrCABUw0AIAAgAiABp2oiADYCACAArQwBC0Gg1ARBHDYCAEJ/CyEBIANBEGokACABC6IBAgF8AX8gAJkhAQJ8IAC9QoCAgIDw/////wCDQiCIpyICQcHcmP8DTQRARAAAAAAAAPA/IAJBgIDA8gNJDQEaIAEQlwIiACAAoiAARAAAAAAAAPA/oCIAIACgo0QAAAAAAADwP6APCyACQcHcmIQETQRAIAEQ6wMiAEQAAAAAAADwPyAAo6BEAAAAAAAA4D+iDwsgAUQAAAAAAADwPxCNBgsLxwEBAn8jAEEQayIBJAACfCAAvUIgiKdB/////wdxIgJB+8Ok/wNNBEBEAAAAAAAA8D8gAkGewZryA0kNARogAEQAAAAAAAAAABDQAgwBCyAAIAChIAJBgIDA/wdPDQAaAkACQAJAAkAgACABEJwEQQNxDgMAAQIDCyABKwMAIAErAwgQ0AIMAwsgASsDACABKwMIQQEQzwKaDAILIAErAwAgASsDCBDQApoMAQsgASsDACABKwMIQQEQzwILIQAgAUEQaiQAIAALBQAgAJwLBQAgAJsLgwIDAnwCfwF+IAC9IgVCIIinQf////8HcSIDQYCAwP8HTwRAIAAgAKAPC0GT8f3UAiEEAkAgA0H//z9NBEBBk/H9ywIhBCAARAAAAAAAAFBDor0iBUIgiKdB/////wdxIgNFDQELIAVCgICAgICAgICAf4MgA0EDbiAEaq1CIIaEvyICIAKiIAIgAKOiIgEgASABoqIgAUTX7eTUALDCP6JE2VHnvstE6L+goiABIAFEwtZJSmDx+T+iRCAk8JLgKP6/oKJEkuZhD+YD/j+goCACor1CgICAgHyDQoCAgIAIfL8iASAAIAEgAaKjIgAgAaEgASABoCAAoKOiIAGgIQALIAALewMBfAF+AX8gAJkhAQJAAnwgAL0iAkI0iKdB/w9xIgNB/QdNBEAgA0HfB0kNAiABIAGgIgAgACABokQAAAAAAADwPyABoaOgDAELIAFEAAAAAAAA8D8gAaGjIgAgAKALEKcDRAAAAAAAAOA/oiEBCyABmiABIAJCAFMbC6gDAgV/AX4gAL1C////////////AINCgYCAgICAgPj/AFQgAb1C////////////AINCgICAgICAgPj/AFhxRQRAIAAgAaAPCyABvSIHQiCIpyICQYCAwP8DayAHpyIFckUEQCAAEJ0EDwsgAkEedkECcSIGIAC9IgdCP4inciEDAkAgB0IgiKdB/////wdxIgQgB6dyRQRAAkACQCADQQJrDgIAAQMLRBgtRFT7IQlADwtEGC1EVPshCcAPCyACQf////8HcSICIAVyRQRARBgtRFT7Ifk/IACmDwsCQCACQYCAwP8HRgRAIARBgIDA/wdHDQEgA0EDdEHQqgRqKwMADwsgBEGAgMD/B0cgAkGAgIAgaiAET3FFBEBEGC1EVPsh+T8gAKYPCwJ8IAYEQEQAAAAAAAAAACAEQYCAgCBqIAJJDQEaCyAAIAGjmRCdBAshAAJAAkACQCADDgMEAAECCyAAmg8LRBgtRFT7IQlAIABEB1wUMyamobygoQ8LIABEB1wUMyamobygRBgtRFT7IQnAoA8LIANBA3RB8KoEaisDACEACyAAC6YBAwF8AX8BfiAAmSEBAkAgAL0iA0I0iKdB/w9xIgJBmQhPBEAgARDMAkTvOfr+Qi7mP6AhAQwBCyACQYAITwRAIAEgAaBEAAAAAAAA8D8gASABokQAAAAAAADwP6CfIAGgo6AQzAIhAQwBCyACQeUHSQ0AIAEgAaIiACAARAAAAAAAAPA/oJ9EAAAAAAAA8D+goyABoBCnAyEBCyABmiABIANCAFMbCwUAIACZC7kCAwF/A3wBfiAAvSIFQiCIp0H/////B3EiAUGAgMD/A08EQCAFpyABQYCAwP8Da3JFBEAgAEQYLURU+yH5P6JEAAAAAAAAcDigDwtEAAAAAAAAAAAgACAAoaMPCwJAIAFB/////gNNBEAgAUGAgEBqQYCAgPIDSQ0BIAAgACAAohDSAqIgAKAPC0QAAAAAAADwPyAAmaFEAAAAAAAA4D+iIgOfIQAgAxDSAiEEAnwgAUGz5rz/A08EQEQYLURU+yH5PyAAIASiIACgIgAgAKBEB1wUMyamkbygoQwBC0QYLURU+yHpPyAAvUKAgICAcIO/IgIgAqChIAAgAKAgBKJEB1wUMyamkTwgAyACIAKioSAAIAKgoyIAIACgoaGhRBgtRFT7Iek/oAsiAJogACAFQgBTGyEACyAAC3YBAX8gAL1CNIinQf8PcSIBQf8HTQRAIABEAAAAAAAA8L+gIgAgACAAoiAAIACgoJ+gEKcDDwsgAUGYCE0EQCAAIACgRAAAAAAAAPC/IAAgAKJEAAAAAAAA8L+gnyAAoKOgEMwCDwsgABDMAkTvOfr+Qi7mP6ALBQAgAJ8LrgIDAXwBfgF/IAC9IgJCIIinQf////8HcSIDQYCAwP8DTwRAIAKnIANBgIDA/wNrckUEQEQAAAAAAAAAAEQYLURU+yEJQCACQgBZGw8LRAAAAAAAAAAAIAAgAKGjDwsCfCADQf////4DTQRARBgtRFT7Ifk/IANBgYCA4wNJDQEaRAdcFDMmppE8IAAgACAAohDSAqKhIAChRBgtRFT7Ifk/oA8LIAJCAFMEQEQYLURU+yH5PyAARAAAAAAAAPA/oEQAAAAAAADgP6IiAJ8iASABIAAQ0gKiRAdcFDMmppG8oKChIgAgAKAPC0QAAAAAAADwPyAAoUQAAAAAAADgP6IiAJ8iASAAENICoiAAIAG9QoCAgIBwg78iACAAoqEgASAAoKOgIACgIgAgAKALC74CAQd/IwBBIGsiAyQAIAMgACgCHCIENgIQIAAoAhQhBSADIAI2AhwgAyABNgIYIAMgBSAEayIBNgIUIAEgAmohBUECIQYgA0EQaiEBAn8DQAJAAkACQCAAKAI8IAEgBiADQQxqEAIQjwZFBEAgBSADKAIMIgdGDQEgB0EATg0CDAMLIAVBf0cNAgsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAMLIAEgByABKAIEIghLIglBA3RqIgQgByAIQQAgCRtrIgggBCgCAGo2AgAgAUEMQQQgCRtqIgEgASgCACAIazYCACAFIAdrIQUgBiAJayEGIAQhAQwBCwsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAGQQJGDQAaIAIgASgCBGsLIQQgA0EgaiQAIAQLRgEBfyAAKAI8IQMjAEEQayIAJAAgAyABpyABQiCIpyACQf8BcSAAQQhqEAgQjwYhAiAAKQMIIQEgAEEQaiQAQn8gASACGwsJACAAKAI8EAMLvgQCBH8BfiMAQUBqIgQkACAAKAIAIQYgBEIANwIMIARCgICAgICAgICAfzcCBCAEIAY2AgAgBCABIAJBIGoiAUHmDxCfBCAEIAQgAyABQeYPEEMaAkACQCAEKAIIIgFB/////wdGBEAgABA1DAELIAAgBEYNASAAKAIAIQcgBEIANwI4IARCgICAgICAgICAfzcCMCAEIAc2AiwCfyABQQBIBEBBf0EAIAQoAgQbDAELIARBLGoiAUEgQQEQ0wIgASAEIAFBIEECEJUBGiAEQShqIAFBABCpASAEKAIIIQEgBCgCKAshBiAEQSxqIgUgAiABQQAgAUEAShtqIAJBH2ogAkEhakEBdhCVBiIDbkEBaiIBIANqQQF0akE6aiICQQYQ0wIgBSAFIAasIAJBABDUAiAFIAQgBSACQQAQ5AEaIAVBACADa0H/////A0EBEMwBGiAEQgA3AiAgBEKAgICAgICAgIB/NwIYIAQgBzYCFCAAQgEQMBogAa0hCANAIAinQQBMRQRAIARBFGoiASAIEDAaIAEgBEEsaiABIAJBABCVARogACAAIAEgAkEAEEMaIAAgAEIBIAJBABB1GiAIQgF9IQgMAQsLQQAhASADQQAgA0EAShshAyAEQRRqEBsgBEEsahAbA0AgASADRkUEQCAAIAAgACACQeAPEEMaIAFBAWohAQwBCwsgACAGQf////8DQeEPEMwBGgsgBBAbIARBQGskAEEQDwtB2P0AQdT8AEG+IUGY1gAQAAALeQEBfyABQoCAgIBwg0KAgICAMFIEQCAAQaI+QQAQFUKAgICA4AAPCwJ+AkAgAkUNACADKQMAIgFCgICAgHCDQoCAgIAwUQ0AQoCAgIDgACAAIAEQKCIBQoCAgIBwg0KAgICA4ABRDQEaIAGnIQQLIAAgBEEDEIAECwuvAQECfyMAQSBrIgQkACAAKAIAIQUgBEEIaiADQQAQqQEgACABIAQoAggiASABQR91IgFzIAFrIgEgAkHAACABQQFrZ0EBdGtBACABQQJPG2pBCGoiAkHgDxCiBCEBIAMoAgQEQCAEQgA3AhggBEKAgICAgICAgIB/NwIQIAQgBTYCDCAEQQxqIgNCARAwGiAAIAMgACACQeAPEJUBIAFyIQEgAxAbCyAEQSBqJAAgAQuQBgIIfwF+IwBB8ABrIgMkACAAIAFHBEAgACgCACEEIANCADcCaCADQoCAgICAgICAgH83AmAgAyAENgJcIANB3ABqIgUgARBEGiADQgA3AlQgA0KAgICAgICAgIB/NwJMIAMgBDYCSCADKAJkIQYgA0EANgJkIANByABqIgFCqtWq1QoQMBogA0EANgJQIAUgARCyAgRAIAMgAygCZEEBajYCZCAGQQFrIQYLIANByABqEBsgAkEBakEBdhCVBiEFIANCADcCVCADQoCAgICAgICAgH83AkwgAyAENgJIIANCADcCQCADQoCAgICAgICAgH83AjggAyAENgI0IANB3ABqIgEgAUJ/Qf////8DQQAQdRogBUEAIAVBAEobIQkgAiAFaiACIAVBAXRuQQFqIgpBAXRqQSBqIQJBACEBA0AgASAJRkUEQCADQcgAaiIHIANB3ABqIghCASACQQAQdRogA0E0aiILIAcgAkEGEJEGIAcgC0IBIAJBABB1GiAIIAggByACQQAQlQEaIAFBAWohAQwBCwsgA0IANwIsIANCgICAgICAgICAfzcCJCADIAQ2AiAgA0IANwIYIANCgICAgICAgICAfzcCECADIAQ2AgwgA0EgaiIBIANB3ABqIgRCAiACQQAQdRogASAEIAEgAkEAEJUBGiADQQxqIAEgASACQQAQQxogAEIAEDAaIAqsIQwDQCAMQgBXRQRAIANByABqIgFCARAwGiADQTRqIgQgDKdBAXRBAXKsEDAaIAEgASAEIAJBABCVARogACAAIAEgAkEAEMsBGiAAIAAgA0EMaiACQQAQQxogDEIBfSEMDAELCyAAIABCASACQQAQdRogACAAIANBIGoiASACQQAQQxogARAbIANBDGoQGyADQTRqEBsgA0HIAGoQGyAAIAVBAWpB/////wNBARDMARogA0HcAGoiASACQQYQ0wIgASABIAasIAJBABDUAiAAIAAgASACQQAQywEaIAEQGyADQfAAaiQAQRAPC0HY/QBB1PwAQdciQajWABAAAAsRACAAIAEgAiADIARBABCWBgsRACAAIAEgAiADIARBARCWBgvYAwEHfyACKAIEIAEoAgRzIQcCQAJAAkACQAJAAkACQCABKAIIIgZB/f///wdMBEAgAigCCCIFQf3///8HSg0BIAZBgICAgHhHDQYgBUGAgICAeEYNBAwHCyAGQf////8HRg0BIAIoAggh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gICAMEEBENQFDQIgACABEA8LIAJBAWohAgwACwALIAAgBBAPIAAgARAPQoCAgIDgAAsYACAAIAMpAwAgAykDCBBSrUKAgICAEIQL4gICA34DfyMAQSBrIgIkAEKAgICA4AAhBCAAIAMpAwAQJSIFQoCAgIBwg0KAgICA4ABSBEBCgICAgDAhAQJAAkAgACACQRxqIAJBGGogBadBAxCOAQ0AQoCAgIDgACEBIAAQNCIEQoCAgIBwg0KAgICA4ABRDQAgAigCHCEHIAIoAhghCEEAIQMDQCADIAhHBEACQAJAIAAgByADQQN0aiIJKAIEEFwiAUKAgICAcINCgICAgOAAUQ0AIAIgATcDCCACIAU3AwAgACAEIAAgAkEAEMYEIQYgACABEA8gBkKAgICAcIMiAUKAgICAMFENASABQoCAgIDgAFENACAAIAQgCSgCBCAGQYeAARAZQQBODQELIAQhAQwDCyADQQFqIQMMAQsLIAAgByAIEFogBSEBDAELIAAgAigCHCACKAIYEFogACAFEA9CgICAgOAAIQQLIAAgARAPCyACQSBqJAAgBAsQACAAIAMpAwBBESAEEKoCCxAAIAAgAykDAEECQQAQqgILEAAgACADKQMAQQFBABCqAgtHAQF+QoCAgIDgACEEIAAgAykDACIBIAMpAwgQrgYEfkKAgICA4AAFIAFCIIinQXVPBEAgAaciACAAKAIAQQFqNgIACyABCwtBACAAIAMpAwAiASADKQMIQQEQiwJBAEgEQEKAgICA4AAPCyABQiCIp0F1TwRAIAGnIgAgACgCAEEBajYCAAsgAQuJAQEBfiADKQMAIgFC/////29WIAFCgICAgHCDQoCAgIAgUXJFBEAgAEG35ABBABAVQoCAgIDgAA8LAkAgACABEEciAUKAgICAcINCgICAgOAAUgRAIAMpAwgiBEKAgICAcINCgICAgDBRDQEgACABIAQQrgZFDQEgACABEA8LQoCAgIDgAA8LIAELpQQCBX8CfiMAQSBrIgUkACAAIAVBCGoiBkEAED0aIAZBKBA7GiAEQX5xQQJGBEAgBUEIakHxmQEQiAEaCyAFQQhqQbrMABCIARogBEF9cUEBRgRAIAVBCGpBKhA7GgsgBUEIakGvlAEQiAEaQQAhBiACQQFrIgdBACAHQQBKGyEIAkACQAJAA0AgBiAIRwRAIAYEQCAFQQhqQSwQOxoLIAZBA3QhCSAGQQFqIQYgBUEIaiADIAlqKQMAEIcBRQ0BDAILCyAFQQhqQYaaARCIARogAkEASgRAIAVBCGogAyAHQQN0aikDABCHAQ0BCyAFQQhqIgJBiZEBEIgBGkKAgICAMCELIAIQNiIKQoCAgIBwg0KAgICA4ABRDQEgACAAKQPAASAKQQNBfxCcAyELIAAgChAPIAtCgICAgHCDQoCAgIDgAFENASABQoCAgIBwg0KAgICAMFENAiAAIAFBOyABQQAQFCIKQoCAgIBwg0KAgICA4ABRDQECQCAKQv////9vVg0AIAAgChAPIAAgARCAAyICRQ0CIAIoAiggBEEBdEGuwAFqLwEAQQN0aikDACIKQiCIp0F1SQ0AIAqnIgIgAigCAEEBajYCAAsgACALIApBARCLAiECIAAgChAPIAJBAE4NAgwBCyAFKAIIKAIQIgJBEGogBSgCDCACKAIEEQAAQoCAgIAwIQsLIAAgCxAPQoCAgIDgACELCyAFQSBqJAAgCwuAAgICfgF/IwBBIGsiByQAQoCAgIDgACEFAkACQCAAIAEQJSIBQoCAgIBwg0KAgICA4ABRDQAgACADKQMAEDEiA0UNAANAIAAgByABpyADEEwiAkEASA0CIAIEQEKAgICAMCEFAkAgBy0AAEEQcUUNACAHQRhBECAEG2opAwAiBUIgiKdBdUkNACAFpyICIAIoAgBBAWo2AgALIAAgBxBIDAMLIAAgARCMAiIBQoCAgIBwgyIGQoCAgIAgUgRAIAZCgICAgOAAUQRAIAYhBQwECyAAEHtFDQEMAwsLQoCAgIAwIQUMAQtBACEDCyAAIAMQEyAAIAEQDyAHQSBqJAAgBQuxAQEDfiADKQMIIQUgAykDACEGQoCAgIDgACEHAkAgACABECUiAUKAgICAcINCgICAgOAAUgR+IAAgBRBgDQEgACAGEDEiAkUNASAAIAEgAkKAgICAMEKAgICAMCAFIAQbIAVCgICAgDAgBBtBhaoBQYWaASAEGxBtIQMgACABEA8gACACEBNCgICAgOAAQoCAgIAwIANBAEgbBUKAgICA4AALDwsgACABEA9CgICAgOAAC3IBAX5CgICAgDAhAyABQoCAgIAQhEKAgICAcINCgICAgDBRBEAgABAkQoCAgIDgAA8LIAJCgICAgHCDQoCAgIAgUiACQv////9vWHEEfkKAgICAMAVCgICAgOAAQoCAgIAwIAAgASACQQEQiwJBAEgbCwsyAQF+IAAgARAlIgFCgICAgHCDQoCAgIDgAFEEQCABDwsgACABEOgBIQIgACABEA8gAgugAQIBfgF/IwBBIGsiAiQAQoCAgIDgACEEAkACQCAAIAEQJSIBQoCAgIBwg0KAgICA4ABRDQAgACADKQMAEDEiA0UNACAAIAIgAacgAxBMIgVBAEgNASAFRQRAQoCAgIAQIQQMAgsgAjUCACEEIAAgAhBIIARCAohCAYNCgICAgBCEIQQMAQtBACEDCyAAIAMQEyAAIAEQDyACQSBqJAAgBAvBAQECfgJAAn5CgICAgBAgAykDACIEQoCAgIBwVA0AGkKAgICA4AAgACABECUiAUKAgICAcINCgICAgOAAUQ0AGiAEpyICIAIoAgBBAWo2AgAgAachAgNAIAAgBBCMAiIEQoCAgIBwgyIFQoCAgIDgAFIEQCACIASnRiAFQoCAgIAgUXINAyAAEHtFDQELCyAAIAQQDyAAIAEQD0KAgICA4AALDwsgACAEEA8gACABEA8gBUKAgICAIFKtQoCAgIAQhAt6AQF+IAAgAykDABAxIgJFBEBCgICAgOAADwtCgICAgOAAIQQgACABECUiAUKAgICAcINCgICAgOAAUQRAIAAgAhATIAEPCyAAQQAgAacgAhBMIQMgACACEBMgACABEA9CgICAgOAAIANBAEetQoCAgIAQhCADQQBIGwsIACAAIAEQJQsPACAAIAFBN0EAQQAQrAILLQEBfkKAgICAMCECAkAgARCjAyIARQ0AIAAtABJBBHFFDQAgADUCRCECCyACCzMCAX4Bf0KAgICAMCECAkAgARCjAyIDRQ0AIAMtABJBBHFFDQAgACADKAJAEC0hAgsgAgsoAEKAgICA4AAgACADKQMAIAEQvgUiAEEAR61CgICAgBCEIABBAEgbC7cBAgF+An9CgICAgOAAIQQgACABEGAEfkKAgICA4AAFQcqZASECAkAgAaciAy8BBhDuAUUNAAJAIAMoAiAiAy8AESIFQYAIcUUNACADKAJUIgZFDQAgACAGIAMoAkgQkwIPCyAFQQR2QQNxQQFrIgNBAksNACADQQJ0QfT/AWooAgAhAgsgACACIAAgAUE2IAFBABAUIgFCgICAgHCDQoCAgIAwUQR+IABBLxAtBSABC0G+GRC+AQsL6QUDA34GfwN8AkACfkKAgICA4AAgACABEGANABpCgICAgOAAIAAgACkDMEEOEEkiBUKAgICAcINCgICAgOAAUQ0AGiAFpyIKIAFCgICAgHBaBH8gAactAAVBEHEFQQALIAotAAVB7wFxcjoABSAAQQEgAiACQQFMGyILQQFrIghBA3RBGGoQKSIHRQ0BIAFCIIinQXVPBEAgAaciAiACKAIAQQFqNgIACyAHIAE3AwAgAykDACIEQiCIp0F1TwRAIASnIgIgAigCAEEBajYCAAsgByAINgIQIAcgBDcDCEEAIQIDQCACIAhHBEAgAyACQQFqIglBA3RqKQMAIgRCIIinQXVPBEAgBKciDCAMKAIAQQFqNgIACyAHIAJBA3RqIAQ3AxggCSECDAELCyAKIAc2AiAgAUL/////b1gEQCAAECQMAgsgAEEAIAGnQTAQTCICQQBIDQFCACEEAkAgAkUNACAAIAFBMCABQQAQFCIGQoCAgIBwg0KAgICA4ABRDQIgBkL/////D1gEQCAGpyICIAhrQQAgAiALThutIQQMAQsgBkIgiKdBB2tBbU0EQAJAIAZCgICAgMCBgPz/AHwiBEL///////////8Ag0KAgICAgICA+P8AVg0AIAS/nSIOIAi3Ig9lDQAgDiAPoSENCyANvSIEAn8gDZlEAAAAAAAA4EFjBEAgDaoMAQtBgICAgHgLIgK3vVEEQCACrSEEDAILQoCAgIDAfiAEQoCAgIDAgYD8/wB9IARC////////////AINCgICAgICAgPj/AFYbIQQMAQsgACAGEA8LIAAgBUEwIARBARAZGiAAQdSZASAAIAFBNiABQQAQFCIEQoCAgIBwgyIBQoCAgICQf1IEfiABQoCAgIDgAFENAiAAIAQQDyAAQS8QLQUgBAtBzJ4BEL4BIgFCgICAgHCDQoCAgIDgAFENASAAIAVBNiABQQEQGRogBQsPCyAAIAUQD0KAgICA4AALMAAgAkEATARAIAAgAUKAgICAMEEAQQAQIQ8LIAAgASADKQMAIAJBAWsgA0EIahAhC6MCAgF/BH4jAEEQayIFJABCgICAgDAhBgJAAkAgACAFQQhqIAAgARAlIgkQPA0AIAVBATYCBAJAIAQEQCAD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gDBSBEAgB0KAgICA4ABRDQcgACABECYMAQsgACAFEMoBCyICQQBIDQUgAkUNACAAIAkgBRA8DQUgCSkDACIHIAR8Qv////////8PVQ0EQgAhASAHQgAgB0IAVRshBwNAIAEgB1ENAiAAIAUgASAJQQhqEIUBIgJBAEgNBiACBEAgACAGIAQgCSkDCBBqQQBIDQcLIARCAXwhBCABQgF8IQEMAAsACyAEQv7///////8PVQ0DIAVCIIinQXVPBEAgBaciAiACKAIAQQFqNgIACyAAIAYgBCAFEGpBAEgNBCAEQgF8IQQLIApBAWohCgwBCwsgACAGQTAgBEKAgICACHxC/////w9YBH4gBEL/////D4MFQoCAgIDAfiAEub0iAUKAgICAwIGA/P8AfSABQv///////////wCDQoCAgICAgID4/wBWGwsQRUEASA0BDAILIABB0NoAQQAQFQsgACAGEA9CgICAgOAAIQYLIAAgCBAPIAlBEGokACAGC7ECAgR+An8jAEEQayIIJABCgICAgOAAIQUCQAJ+AkAgAUKAgICAcFQNACABpy0ABUEQcUUNACAIIAKtNwMIIAAgAUEBIAhBCGoQpwEMAQsgABA+CyIEQoCAgIBwg0KAgICA4ABRDQAgAkEAIAJBAEobrSEHQgAhAQJAA0AgASAHUgRAIAMgAadBA3RqKQMAIgZCIIinQXVPBEAgBqciCSAJKAIAQQFqNgIACyAAIAQgASAGQYCAARDSASEJIAFCAXwhASAJQQBODQEMAgsLIAAgBEEwIAJBAE4EfiACrQVCgICAgMB+IAK4vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbCxBFQQBIDQAgBCEFDAELIAAgBBAPCyAIQRBqJAAgBQu6CQICfwh+IwBBMGsiBCQAIAMpAwAhBiAEQoCAgIAwNwMYQQEhBQJAAkACfiACQQJIBEBCgICAgDAhDEKAgICAMAwBC0KAgICAMCADKQMIIgxCgICAgHCDQoCAgIAwUQ0AGkKAgICAMCEKQoCAgIAwIQlCgICAgDAhCEKAgICAMCELIAAgDBBgDQFBACEFQoCAgIAwIAJBA0kNABogAykDEAshDQJAAkACQAJAIAAgBkHRASAGQQAQFCIHQoCAgIBwgyIIQoCAgIAwUgRAAkACQCAIQoCAgIDgAFEEQEKAgICAMCEKQoCAgIAwIQlCgICAgDAhCAwBCyAAIAcQDwJ+AkAgAUKAgICAcFQNACABpy0ABUEQcUUNACAAIAFBAEEAEKcBDAELIAAQPgsiCEKAgICAcINCgICAgOAAUQRAQoCAgIAwIQpCgICAgDAhCQwBCyAGQiCIp0F1TwRAIAanIgIgAigCAEEBajYCAAsgBCAGNwMQIAAgBEEQakEIckEAEJkDIQIgBCkDGCEKIAQpAxAhCSACRQ0BC0KAgICAMCELDAYLQgAhBwNAIAAgCSAKIARBCGoQrgEiBkKAgICAcINCgICAgOAAUQ0CIAQoAggEQEKAgICAMCELDAYLAkAgBQRAIAYhAQwBCyAEIAY3AyAgBCAHQv////8PgzcDKCAAIAwgDUECIARBIGoQISEBIAAgBhAPIAFCgICAgHCDQoCAgIDgAFENAwsgACAIIAcgARBqQQBIDQIgB0IBfCEHDAALAAsgACAGECUiC0KAgICAcINCgICAgOAAUQ0CIAAgBEEIaiALEDxBAEgNAiAEAn4gBCkDCCIGQoCAgIAIfEL/////D1gEQCAGQv////8PgwwBC0KAgICAwH4gBrm9IgdCgICAgMCBgPz/AH0gB0L///////////8Ag0KAgICAgICA+P8AVhsLIgc3AyACfgJAIAFCgICAgHBUDQAgAactAAVBEHFFDQAgACABQQEgBEEgahCnAQwBCyAAQoCAgIAwQQEgBEEgahCuAwshCCAAIAcQDyAIQoCAgIBwg0KAgICA4ABRBEBCgICAgDAhCgwCC0IAIQcgBkIAIAZCAFUbIQkDQCAHIAlRBEBCgICAgDAhCkKAgICAMCEJDAULQoCAgIAwIQogACALIAcQcyIGQoCAgIBwg0KAgICA4ABRDQICQCAFBEAgBiEBDAELIAQgBjcDICAEIAdC/////w+DNwMoIAAgDCANQQIgBEEgahAhIQEgACAGEA8gAUKAgICAcINCgICAgOAAUQ0DCyAAIAggByABEGpBAEgNAiAHQgF8IQcMAAsAC0KAgICAMCELIAlCgICAgHCDQoCAgIAwUQ0DIAAgCUEBEK0BGgwDC0KAgICAMCEJDAILQoCAgIAwIQpCgICAgDAhCUKAgICAMCEIDAELIAAgCEEwIAenIgJBAE4EfiAHQv////8PgwVCgICAgMB+IAK4vSIBQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbCxBFQQBODQELIAAgCBAPQoCAgIDgACEICyAAIAsQDyAAIAkQDyAAIAoQDyAEQTBqJAAgCAsmAEKAgICA4AAgACADKQMAEMoBIgBBAEetQoCAgIAQhCAAQQBIGwuAAQAjAEEQayIAJAAgABCjBAJ+IAA0AgggACkDAELAhD1+fCIBQoCAgIAIfEL/////D1gEQCABQv////8PgwwBC0KAgICAwH4gAbm9IgFCgICAgMCBgPz/AH0gAUL///////////8Ag0KAgICAgICA+P8AVhsLIQEgAEEQaiQAIAELxwIBBX8jAEEgayIEJAAgACADKQMAECgiAUKAgICAcINCgICAgOAAUgRAIAAgBEEIakEAED0aIAGnIgVBEGohBiAFKAIEQf////8HcSEHQQAhAwNAIAMgB05FBEACQAJ/IAUpAgRCgICAgAiDUCIIRQRAIAYgA0EBdGovAQAMAQsgAyAGai0AAAsiAkElRw0AAkAgA0EGaiAHSg0AIANBAWohAgJ/IAhFBEAgBiACQQF0ai8BAAwBCyACIAZqLQAAC0H1AEcNACAFIANBAmpBBBC4BCICQQBIDQAgA0EFaiEDDAELQSUhAiADQQNqIAdKDQAgBSADQQFqQQIQuAQiAkElIAJBAE4iCBshAiADQQJqIAMgCBshAwsgBEEIaiACEIsBGiADQQFqIQMMAQsLIAAgARAPIARBCGoQNiEBCyAEQSBqJAAgAQvkAQEEfyMAQSBrIgIkACAAIAMpAwAQKCIBQoCAgIBwg0KAgICA4ABSBEAgACACQQhqIAGnIgUoAgRB/////wdxED0aIAVBEGohBiAFKAIEQf////8HcSEHQQAhAwNAIAMgB0ZFBEACQAJAAkAgBS0AB0GAAXFFBEAgAyAGai0AACEEDAELIAYgA0EBdGovAQAiBEH/AUsNAQtBkOEBIARBxQAQ+wFFDQAgAkEIaiAEEIsBGgwBCyACQQhqIAQQmgILIANBAWohAwwBCwsgACABEA8gAkEIahA2IQELIAJBIGokACABC84EAgZ/AX4jAEEgayIGJAACQCAAIAMpAwAQKCIBQoCAgIBwg0KAgICA4ABRDQAgACAGQQhqIAGnIgkoAgRB/////wdxED0aIAlBEGohCEEAIQICQANAIAkpAgQiC6dB/////wdxIgogAkoEQCACQQFqIQUCQAJAIAtCgICAgAiDIgtQBEAgAiAIai0AACEDDAELIAggAkEBdGovAQAiA0H/AUsNAQsCQCADQTBrQQpJIANB3/8DcUHBAGtBGklyDQBBpZQBIANBCRD7AQ0AIAQNASADELIGRQ0BCyAGQQhqIAMQiwEaIAUhAgwCCwJ/An8CQCADQYD4A3EiB0GAsANHBEAgB0GAuANHDQFBv8MAIQcMBgtB5MAAIQcgBSAKTg0FAn8gC1BFBEAgCCAFQQF0ai8BAAwBCyAFIAhqLQAACyIFQYDAA2tBgHhJDQUgBkEIaiAFQf8HcSADQQp0QYD4P3FyQYCABGoiA0ESdkHwAXIQmgIgA0EMdkE/cUGAAXIhByACQQJqDAELIANB/wBNBEAgBkEIaiADEJoCIAUhAgwECyADQf8PTQRAIAUhAiADQQZ2QcABcgwCCyADQQx2QeABciEHIAULIQIgBkEIaiAHEJoCIANBBnZBP3FBgAFyCyEHIAZBCGoiBSAHEJoCIAUgA0E/cUGAAXIQmgIMAQsLIAAgARAPIAZBCGoQNiEBDAELIAAgBxC5BCAAIAEQDyAGKAIIKAIQIgBBEGogBigCDCAAKAIEEQAAQoCAgIDgACEBCyAGQSBqJAAgAQuVBAIGfwF+IwBBIGsiBSQAAkAgACADKQMAECgiAUKAgICAcINCgICAgOAAUQ0AIAAgBUEIakEAED0aIAGnIghBEGohCUEAIQIDQAJAAkACQCAIKQIEIgunQf////8HcSACSgRAAn8gC0KAgICACINQRQRAIAkgAkEBdGovAQAMAQsgAiAJai0AAAsiA0ElRgRAIAAgCCACELMGIgNBAEgNAyACQQNqIQYgA0H/AE0EQCAEBEAgBiECDAYLQSUgAyADELIGIgcbIQMgAkEBaiAGIAcbIQIMBQsCfyADQWBxQcABRgRAIANBH3EhA0GAASEHQQEMAQsgA0FwcUHgAUYEQCADQQ9xIQNBgBAhB0ECDAELIANBeHFB8AFHBEBBASEHQQAhA0EADAELIANBB3EhA0GAgAQhB0EDCyECA0AgAkEATA0DIAAgCCAGELMGIgpBAEgNBCAGQQNqIQYgCkHAAXFBgAFHBEBBACEDDAQFIAJBAWshAiAKQT9xIANBBnRyIQMMAQsACwALIAJBAWohAgwDCyAAIAEQDyAFQQhqEDYhAQwECyAGIQIgAyAHSCADQf//wwBKckUgA0GAcHFBgLADR3ENASAAQcmJARC5BAsgACABEA8gBSgCCCgCECIAQRBqIAUoAgwgACgCBBEAAEKAgICA4AAhAQwCCyAFQQhqIAMQuQEaDAALAAsgBUEgaiQAIAELNwAgACADKQMAELMBIgJFBEBCgICAgOAADwsgACACEIECIAJqQQBBCkEAELgCIQEgACACEFQgAQuHAQEBfyMAQRBrIgIkAAJAIAAgAykDABCzASIERQRAQoCAgIDgACEBDAELAn5CgICAgOAAIAAgAkEMaiADKQMIEHcNABogAigCDCIDBEBCgICAgMB+IANBJWtBXUkNARoLIAAgBBCBAiAEakEAIANBgQgQuAILIQEgACAEEFQLIAJBEGokACABCwkAIAAgARDdAgujAQIBfgF/IwBBEGsiAiQAAn4gACABEN0CIgVCgICAgHCDQoCAgIDgAFEEQCAFDAELQQohBgJAAkAgBA0AIAMpAwAiAUKAgICAcINCgICAgDBRDQAgACABEI4FIgZBAEgNAQtCgICAgOAAIAAgAkEIaiAFEG4NARogACACKwMIIAZBAEEAEI8CDAELIAAgBRAPQoCAgIDgAAshASACQRBqJAAgAQuMAgIBfgF8IwBBEGsiAiQAQoCAgIDgACEEAkAgACABEN0CIgFCgICAgHCDQoCAgIDgAFEEQCABIQQMAQsgACACIAEQbg0AAkACQCADKQMAIgFCgICAgHCDQoCAgIAwUQRAIAIpAwAhAQwBCyAAIAJBDGogARC6AQ0CIAIrAwAiBb0iAUKAgICAgICA+P8Ag0KAgICAgICA+P8AUg0BCyAAQoCAgIDAfiABQoCAgIDAgYD8/wB9IAFC////////////AINCgICAgICAgPj/AFYbEDchBAwBCyACKAIMIgNB5QBrQZt/TQRAIABBijRBABBQDAELIAAgBUEKIANBARCPAiEECyACQRBqJAAgBAvYAQIBfgF8IwBBEGsiAiQAQoCAgIDgACEEAkAgACABEN0CIgFCgICAgHCDQoCAgIDgAFEEQCABIQQMAQsgACACIAEQbg0AIAAgAkEMaiADKQMAELoBDQAgAigCDCIDQeUATwRAIABBijRB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LUiv7z8IIKpBvMOOPCdaYe4buu8/Muupw5QrhDyXums3K8XvP+6F0TGpZIo8QEVuW3bQ7z/t4zvkujeOvBS+nK392+8/nc2RTTuJdzzYkJ6BwefvP4nMYEHBBVM88XGPK8Lz7z8AAAAAAADwPwAAAAAAAPg/AAAAAAAAAAAG0M9D6/1MPgBBmxkL54UBQAO44j8oKXt9ACgpe3N1cGVyKC4uLmFyZ3VtZW50cyk7fQAoKSB7CiAgICBbbmF0aXZlIGNvZGVdCn0AY2Fubm90IG1peCA/PyB3aXRoICYmIG9yIHx8AGN0egBwcm94eTogcHJvcGVydHkgbm90IHByZXNlbnQgaW4gdGFyZ2V0IHdlcmUgcmV0dXJuZWQgYnkgbm9uIGV4dGVuc2libGUgcHJveHkAcmV2b2tlZCBwcm94eQBQcm94eQBhZGRfcHJvcGVydHkAcHJveHk6IGNhbm5vdCBzZXQgcHJvcGVydHkAbm8gc2V0dGVyIGZvciBwcm9wZXJ0eQB2YWx1ZSBoYXMgbm8gcHJvcGVydHkAY291bGQgbm90IGRlbGV0ZSBwcm9wZXJ0eQBwcm94eTogZHVwbGljYXRlIHByb3BlcnR5AEpTX0RlZmluZUF1dG9Jbml0UHJvcGVydHkAaGFzT3duUHJvcGVydHkAcHJveHk6IGluY29uc2lzdGVudCBkZWxldGVQcm9wZXJ0eQBwcm94eTogaW5jb25zaXN0ZW50IGRlZmluZVByb3BlcnR5AEpTX0RlZmluZVByb3BlcnR5ACFtci0+ZW1wdHkAaW5maW5pdHkASW5maW5pdHkAb3V0IG9mIG1lbW9yeQB1bmtub3duIHVuaWNvZGUgZ2VuZXJhbCBjYXRlZ29yeQBHZW5lcmFsX0NhdGVnb3J5AGV2ZXJ5AGFueQBhcHBseQAnJXMnIGlzIHJlYWQtb25seQBleHBlY3RpbmcgY2F0Y2ggb3IgZmluYWxseQBzdGlja3kAYmlnaW50IGFyZSBmb3JiaWRkZW4gaW4gSlNPTi5zdHJpbmdpZnkAc3ViYXJyYXkAZW1wdHkgYXJyYXkAbm9uIGludGVnZXIgaW5kZXggaW4gdHlwZWQgYXJyYXkAbmVnYXRpdmUgaW5kZXggaW4gdHlwZWQgYXJyYXkAb3V0LW9mLWJvdW5kIGluZGV4IGluIHR5cGVkIGFycmF5AGNhbm5vdCBjcmVhdGUgbnVtZXJpYyBpbmRleCBpbiB0eXBlZCBhcnJheQBpc0FycmF5AFR5cGVkQXJyYXkAZ2V0RGF5AGdldFVUQ0RheQBqc19nZXRfYXRvbV9pbmRleABpbnZhbGlkIGFycmF5IGluZGV4AG91dC1vZi1ib3VuZCBudW1lcmljIGluZGV4AEpTX0F0b21Jc0FycmF5SW5kZXgAZmluZEluZGV4AGludmFsaWQgZXhwb3J0IHN5bnRheABpbnZhbGlkIGFzc2lnbm1lbnQgc3ludGF4AG1heABcdSUwNHgAaW52YWxpZCBvcGNvZGU6IHBjPSV1IG9wY29kZT0weCUwMngALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABsaW5lIHRlcm1pbmF0b3Igbm90IGFsbG93ZWQgYWZ0ZXIgdGhyb3cAYmZfcG93AG5vdwBpbnRlZ2VyIG92ZXJmbG93AHN0YWNrIG92ZXJmbG93AG11c3QgYmUgY2FsbGVkIHdpdGggbmV3AGlzVmlldwBEYXRhVmlldwByYXcAdGRpdgBmZGl2AGVkaXYAY2RpdgAldQBjbGFzcyBkZWNsYXJhdGlvbnMgY2FuJ3QgYXBwZWFyIGluIHNpbmdsZS1zdGF0ZW1lbnQgY29udGV4dABmdW5jdGlvbiBkZWNsYXJhdGlvbnMgY2FuJ3QgYXBwZWFyIGluIHNpbmdsZS1zdGF0ZW1lbnQgY29udGV4dABsZXhpY2FsIGRlY2xhcmF0aW9ucyBjYW4ndCBhcHBlYXIgaW4gc2luZ2xlLXN0YXRlbWVudCBjb250ZXh0AGR1cGxpY2F0ZSBhcmd1bWVudCBuYW1lcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQAZHVwbGljYXRlIHBhcmFtZXRlciBuYW1lcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQAaW1wb3J0Lm1ldGEgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGNvbnRleHQASlNfRnJlZUNvbnRleHQASlNDb250ZXh0AGpzX21hcF9pdGVyYXRvcl9uZXh0AGpzX2FzeW5jX2dlbmVyYXRvcl9yZXN1bWVfbmV4dAB1bmV4cGVjdGVkIGVuZCBvZiBpbnB1dAB0dABleHBvcnRlZCB2YXJpYWJsZSAnJXMnIGRvZXMgbm90IGV4aXN0AHByaXZhdGUgY2xhc3MgZmllbGQgJyVzJyBkb2VzIG5vdCBleGlzdAB0ZXN0AGFzc2lnbm1lbnQgcmVzdCBwcm9wZXJ0eSBtdXN0IGJlIGxhc3QAYmZfc3FydABzb3J0AGNicnQAdHJpbVN0YXJ0AHBhZFN0YXJ0AHVua25vd24gdW5pY29kZSBzY3JpcHQAU2NyaXB0AGh5cG90AGZyZWVfemVyb19yZWZjb3VudABmYXN0X2FycmF5X2NvdW50AGJpbmFyeV9vYmplY3RfY291bnQAc3RyX2luZGV4ID09IG51bV9rZXlzX2NvdW50ICsgc3RyX2tleXNfY291bnQAbnVtX2luZGV4ID09IG51bV9rZXlzX2NvdW50AHN0cl9jb3VudABwcm9wX2NvdW50AHN5bV9pbmRleCA9PSBhdG9tX2NvdW50AGxhYmVsID49IDAgJiYgbGFiZWwgPCBzLT5sYWJlbF9jb3VudABsYWIxID49IDAgJiYgbGFiMSA8IHMtPmxhYmVsX2NvdW50AG9ial9jb3VudAB2YWwgPCBzLT5jYXB0dXJlX2NvdW50AHZhbDIgPCBzLT5jYXB0dXJlX2NvdW50AHNoYXBlX2NvdW50AGpzX2Z1bmNfcGMybGluZV9jb3VudABtZW1vcnlfdXNlZF9jb3VudABtYWxsb2NfY291bnQAanNfZnVuY19jb3VudABjX2Z1bmNfY291bnQAaW52YWxpZCByZXBlYXQgY291bnQAaW52YWxpZCByZXBldGl0aW9uIGNvdW50AGZvbnQAaW52YWxpZCBjb2RlIHBvaW50AGZyb21Db2RlUG9pbnQAaW52YWxpZCBoaW50AGNhbm5vdCBjb252ZXJ0IE5hTiBvciBJbmZpbml0eSB0byBiaWdpbnQAY2Fubm90IGNvbnZlcnQgdG8gYmlnaW50AGJvdGggb3BlcmFuZHMgbXVzdCBiZSBiaWdpbnQAbm90IGEgYmlnaW50AGVuY29kZVVSSUNvbXBvbmVudABkZWNvZGVVUklDb21wb25lbnQAdW5leHBlY3RlZCBlbmQgb2YgY29tbWVudABpbnZhbGlkIHN3aXRjaCBzdGF0ZW1lbnQAQmlnSW50AHBhcnNlSW50AGR1cGxpY2F0ZSBkZWZhdWx0AG1hbGxvY19saW1pdABzcGxpdABleHBlY3RpbmcgaGV4IGRpZ2l0AHRyaW1SaWdodAByZWR1Y2VSaWdodAB1bnNoaWZ0AHRyaW1MZWZ0AGludmFsaWQgb2Zmc2V0AGludmFsaWQgYnl0ZU9mZnNldABnZXRUaW1lem9uZU9mZnNldAByZXNvbHZpbmcgZnVuY3Rpb24gYWxyZWFkeSBzZXQAcHJveHk6IGluY29uc2lzdGVudCBzZXQAZmluZF9qdW1wX3RhcmdldABleHBlY3RpbmcgdGFyZ2V0AGludmFsaWQgZGVzdHJ1Y3R1cmluZyB0YXJnZXQAcHJveHk6IGluY29uc2lzdGVudCBnZXQAV2Vha1NldABjb25zdHJ1Y3QASlNfRnJlZUF0b21TdHJ1Y3QAdXNlIHN0cmljdABSZWZsZWN0AHJlamVjdABub3QgYW4gQXN5bmNHZW5lcmF0b3Igb2JqZWN0AGNhbm5vdCBjb252ZXJ0IHRvIG9iamVjdABpbnZhbGlkIGJyYW5kIG9uIG9iamVjdABvcGVyYW5kICdwcm90b3R5cGUnIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QAcmVjZWl2ZXIgaXMgbm90IGFuIG9iamVjdABpdGVyYXRvciBtdXN0IHJldHVybiBhbiBvYmplY3QAbm90IGEgRGF0ZSBvYmplY3QAbm90IGEgb2JqZWN0AEpTT2JqZWN0AGJpZ2Zsb2F0AHBhcnNlRmxvYXQAZmxhdABub3RoaW5nIHRvIHJlcGVhdABjb25jYXQAY29kZVBvaW50QXQAY2hhckF0AGNoYXJDb2RlQXQAa2V5cwBwcm94eTogdGFyZ2V0IHByb3BlcnR5IG11c3QgYmUgcHJlc2VudCBpbiBwcm94eSBvd25LZXlzACAgZmFzdCBhcnJheXMAZXhwb3J0ICclcycgaW4gbW9kdWxlICclcycgaXMgYW1iaWd1b3VzAHByaXZhdGUgY2xhc3MgZmllbGQgJyVzJyBhbHJlYWR5IGV4aXN0cwB0b28gbWFueSBhcmd1bWVudHMAVG9vIG1hbnkgY2FsbCBhcmd1bWVudHMAZmFzdF9hcnJheV9lbGVtZW50cwAgIGVsZW1lbnRzAGludmFsaWQgbnVtYmVyIG9mIGRpZ2l0cwBiaW5hcnkgb2JqZWN0cwBpbnZhbGlkIHByb3BlcnR5IGFjY2VzcwBqc19vcF9kZWZpbmVfY2xhc3MAZmQtPmJ5dGVfY29kZS5idWZbZGVmaW5lX2NsYXNzX3Bvc10gPT0gT1BfZGVmaW5lX2NsYXNzAF9fZ2V0Q2xhc3MAc2V0SG91cnMAZ2V0SG91cnMAc2V0VVRDSG91cnMAZ2V0VVRDSG91cnMAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycwB0b28gbWFueSBpbWJyaWNhdGVkIHF1YW50aWZpZXJzAHVuaWNvZGVfcHJvcF9vcHMAYWNvcwBmb3IgYXdhaXQgaXMgb25seSB2YWxpZCBpbiBhc3luY2hyb25vdXMgZnVuY3Rpb25zAG5ldy50YXJnZXQgb25seSBhbGxvd2VkIHdpdGhpbiBmdW5jdGlvbnMAYnl0ZWNvZGUgZnVuY3Rpb25zAEMgZnVuY3Rpb25zAHByb3h5OiBpbmNvbnNpc3RlbnQgcHJldmVudEV4dGVuc2lvbnMAU2NyaXB0X0V4dGVuc2lvbnMAYXRvbXMAcHJveHk6IHByb3BlcnRpZXMgbXVzdCBiZSBzdHJpbmdzIG9yIHN5bWJvbHMAZ2V0T3duUHJvcGVydHlTeW1ib2xzAHJlc29sdmVfbGFiZWxzAEpTX0V2YWxUaGlzAHN0cmluZ3MAaW52YWxpZCBkZXNjcmlwdG9yIGZsYWdzAGludmFsaWQgcmVndWxhciBleHByZXNzaW9uIGZsYWdzAHZhbHVlcwBzZXRNaW51dGVzAGdldE1pbnV0ZXMAc2V0VVRDTWludXRlcwBnZXRVVENNaW51dGVzAHRvbyBtYW55IGNhcHR1cmVzACAgc2hhcGVzAGdldE93blByb3BlcnR5TmFtZXMAZ2NfZnJlZV9jeWNsZXMAYWRkX2V2YWxfdmFyaWFibGVzAHJlc29sdmVfdmFyaWFibGVzAHRvbyBtYW55IGxvY2FsIHZhcmlhYmxlcwB0b28gbWFueSBjbG9zdXJlIHZhcmlhYmxlcwBjb21wYWN0X3Byb3BlcnRpZXMAICBwcm9wZXJ0aWVzAGRlZmluZVByb3BlcnRpZXMAZW50cmllcwBmcm9tRW50cmllcwB0b28gbWFueSByYW5nZXMAaW5jbHVkZXMAc2V0TWlsbGlzZWNvbmRzAGdldE1pbGxpc2Vjb25kcwBzZXRVVENNaWxsaXNlY29uZHMAZ2V0VVRDTWlsbGlzZWNvbmRzAHNldFNlY29uZHMAZ2V0U2Vjb25kcwBzZXRVVENTZWNvbmRzAGdldFVUQ1NlY29uZHMAaXRhbGljcwBhYnMAcHJveHk6IGluY29uc2lzdGVudCBoYXMAJS4qcwAgKCVzAHNldCAlcwBnZXQgJXMAICAgIGF0ICVzAG5vIG92ZXJsb2FkZWQgb3BlcmF0b3IgJXMAbm90IGEgJXMAdW5zdXBwb3J0ZWQga2V5d29yZDogJXMAc3Vic3RyAHByb3h5OiBpbmNvbnNpc3RlbnQgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yAHN1cGVyKCkgaXMgb25seSB2YWxpZCBpbiBhIGRlcml2ZWQgY2xhc3MgY29uc3RydWN0b3IAcGFyZW50IGNsYXNzIG11c3QgYmUgY29uc3RydWN0b3IAbm90IGEgY29uc3RydWN0b3IAQXJyYXkgSXRlcmF0b3IAU2V0IEl0ZXJhdG9yAE1hcCBJdGVyYXRvcgBSZWdFeHAgU3RyaW5nIEl0ZXJhdG9yAG5vdCBhbiBBc3luYy1mcm9tLVN5bmMgSXRlcmF0b3IAY2Fubm90IGludm9rZSBhIHJ1bm5pbmcgZ2VuZXJhdG9yAG5vdCBhIGdlbmVyYXRvcgBBc3luY0dlbmVyYXRvcgBzeW50YXggZXJyb3IAU3ludGF4RXJyb3IARXZhbEVycm9yAEludGVybmFsRXJyb3IAQWdncmVnYXRlRXJyb3IAVHlwZUVycm9yAFJhbmdlRXJyb3IAUmVmZXJlbmNlRXJyb3IAVVJJRXJyb3IAZmxvb3IAZm9udGNvbG9yAGFuY2hvcgBmb3IAa2V5Rm9yAGV4cGVjdGluZyBzdXJyb2dhdGUgcGFpcgBhIGRlY2xhcmF0aW9uIGluIHRoZSBoZWFkIG9mIGEgZm9yLSVzIGxvb3AgY2FuJ3QgaGF2ZSBhbiBpbml0aWFsaXplcgAnYXJndW1lbnRzJyBpZGVudGlmaWVyIGlzIG5vdCBhbGxvd2VkIGluIGNsYXNzIGZpZWxkIGluaXRpYWxpemVyAGludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgZ2V0dGVyIG9yIHNldHRlcgBpbnZhbGlkIHNldHRlcgBpbnZhbGlkIGdldHRlcgBmaWx0ZXIAbWlzc2luZyBmb3JtYWwgcGFyYW1ldGVyACJ1c2Ugc3RyaWN0IiBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiB3aXRoIGRlZmF1bHQgb3IgZGVzdHJ1Y3R1cmluZyBwYXJhbWV0ZXIAaW52YWxpZCBjaGFyYWN0ZXIAdW5leHBlY3RlZCBjaGFyYWN0ZXIAcHJpdmF0ZSBjbGFzcyBmaWVsZCBmb3JiaWRkZW4gYWZ0ZXIgc3VwZXIAaW52YWxpZCByZWRlZmluaXRpb24gb2YgbGV4aWNhbCBpZGVudGlmaWVyACdsZXQnIGlzIG5vdCBhIHZhbGlkIGxleGljYWwgaWRlbnRpZmllcgBpbnZhbGlkIHJlZGVmaW5pdGlvbiBvZiBnbG9iYWwgaWRlbnRpZmllcgB5aWVsZCBpcyBhIHJlc2VydmVkIGlkZW50aWZpZXIAJyVzJyBpcyBhIHJlc2VydmVkIGlkZW50aWZpZXIAb3RoZXIAYXRvbTFfaXNfaW50ZWdlciAmJiBhdG9tMl9pc19pbnRlZ2VyAGNhbm5vdCBjb252ZXJ0IHRvIGJpZ2ludDogbm90IGFuIGludGVnZXIAaXNJbnRlZ2VyAGlzU2FmZUludGVnZXIAYnVmZmVyAFNoYXJlZEFycmF5QnVmZmVyAGNhbm5vdCB1c2UgaWRlbnRpY2FsIEFycmF5QnVmZmVyAGNhbm5vdCBjb252ZXJ0IGJpZ2ludCB0byBudW1iZXIAY2Fubm90IGNvbnZlcnQgYmlnZmxvYXQgdG8gbnVtYmVyAGNhbm5vdCBjb252ZXJ0IHN5bWJvbCB0byBudW1iZXIAY2Fubm90IGNvbnZlcnQgYmlnZGVjaW1hbCB0byBudW1iZXIAbm90IGEgbnVtYmVyAGxpbmVOdW1iZXIAbWFsZm9ybWVkIHVuaWNvZGUgY2hhcgBjbGVhcgBzZXRZZWFyAGdldFllYXIAc2V0RnVsbFllYXIAZ2V0RnVsbFllYXIAc2V0VVRDRnVsbFllYXIAZ2V0VVRDRnVsbFllYXIAcSAhPSByAHVuZXhwZWN0ZWQgbGluZSB0ZXJtaW5hdG9yIGluIHJlZ2V4cAB1bmV4cGVjdGVkIGVuZCBvZiByZWdleHAAUmVnRXhwAHN1cABpbnZhbGlkIGdyb3VwAHBvcABjb250aW51ZSBtdXN0IGJlIGluc2lkZSBsb29wAGJmX2xvZ2ljX29wAG51bV9rZXlzX2NtcAB1c2Ugc3RyaXAAbWFwAGZsYXRNYXAAV2Vha01hcABleHBlY3RpbmcgJ3snIGFmdGVyIFxwAGxvZzFwAGRpdmlzaW9uIGJ5IHplcm8AdW5rbm93bgBpdGVyYXRvcl9jbG9zZV9yZXR1cm4AcHJvbWlzZSBzZWxmIHJlc29sdXRpb24Ab3V0IG9mIG1lbW9yeSBpbiByZWdleHAgZXhlY3V0aW9uAGRlc2NyaXB0aW9uAHByb3h5OiBkZWZpbmVQcm9wZXJ0eSBleGNlcHRpb24AanNfYXN5bmNfZ2VuZXJhdG9yX3Jlc29sdmVfZnVuY3Rpb24AanNfY3JlYXRlX2Z1bmN0aW9uAHNldC9hZGQgaXMgbm90IGEgZnVuY3Rpb24AcmV0dXJuIG5vdCBpbiBhIGZ1bmN0aW9uAEFzeW5jR2VuZXJhdG9yRnVuY3Rpb24AQXN5bmNGdW5jdGlvbgBpbnZhbGlkIG9wZXJhdGlvbgB1bnN1cHBvcnRlZCBvcGVyYXRpb24AYXdhaXQgaW4gZGVmYXVsdCBleHByZXNzaW9uAHlpZWxkIGluIGRlZmF1bHQgZXhwcmVzc2lvbgBpbnZhbGlkIGRlY2ltYWwgZXNjYXBlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbgBiYWNrIHJlZmVyZW5jZSBvdXQgb2YgcmFuZ2UgaW4gcmVndWxhciBleHByZXNzaW9uAGludmFsaWQgZXNjYXBlIHNlcXVlbmNlIGluIHJlZ3VsYXIgZXhwcmVzc2lvbgBleHBlY3RlZCAnb2YnIG9yICdpbicgaW4gZm9yIGNvbnRyb2wgZXhwcmVzc2lvbgB0b28gY29tcGxpY2F0ZWQgZGVzdHJ1Y3R1cmluZyBleHByZXNzaW9uAGV4cGVjdGVkICd9JyBhZnRlciB0ZW1wbGF0ZSBleHByZXNzaW9uAHRvUHJlY2lzaW9uAGFzaW4Aam9pbgBtaW4AY29weVdpdGhpbgB0ZW1wbGF0ZSBsaXRlcmFsIGNhbm5vdCBhcHBlYXIgaW4gYW4gb3B0aW9uYWwgY2hhaW4AY2lyY3VsYXIgcHJvdG90eXBlIGNoYWluAGFzc2lnbgAheS0+c2lnbgBpc0Zyb3plbgBtYXJrX2NoaWxkcmVuAChwb3MgKyBsZW4pIDw9IGJjX2J1Zl9sZW4AdW5leHBlY3RlZCBlbGxpcHNpcyB0b2tlbgB0aGVuAHNldHRlciBpcyBmb3JiaWRkZW4AbnVsbCBvciB1bmRlZmluZWQgYXJlIGZvcmJpZGRlbgBhdGFuAG5hbgBub3QgYSBib29sZWFuAEJvb2xlYW4AZ2Nfc2NhbgBiYWQgbm9ybWFsaXphdGlvbiBmb3JtAEpTX05ld1N5bWJvbEZyb21BdG9tAGZyb20AcmFuZG9tAHRyaW0AdGRpdnJlbQBmZGl2cmVtAGVkaXZyZW0AY2RpdnJlbQBiZl9kaXZyZW0Ac3FydHJlbQBpbXVsAG5vdCBhIHN5bWJvbABTeW1ib2wAUmVnRXhwIGV4ZWMgbWV0aG9kIG11c3QgcmV0dXJuIGFuIG9iamVjdCBvciBudWxsAHBhcmVudCBwcm90b3R5cGUgbXVzdCBiZSBhbiBvYmplY3Qgb3IgbnVsbABjYW5ub3Qgc2V0IHByb3BlcnR5ICclcycgb2YgbnVsbABjYW5ub3QgcmVhZCBwcm9wZXJ0eSAnJXMnIG9mIG51bGwATnVsbABmaWxsAG5ldyBBcnJheUJ1ZmZlciBpcyB0b28gc21hbGwAVHlwZWRBcnJheSBsZW5ndGggaXMgdG9vIHNtYWxsAGNhbGwAZG90QWxsAG1hdGNoQWxsAHJlcGxhY2VBbGwAY2VpbAB1cGRhdGVfbGFiZWwAYmNfYnVmW3Bvc10gPT0gT1BfbGFiZWwAZXZhbABpbnZhbGlkIGJpZ2ludCBsaXRlcmFsAGludmFsaWQgbnVtYmVyIGxpdGVyYWwAbWFsZm9ybWVkIGVzY2FwZSBzZXF1ZW5jZSBpbiBzdHJpbmcgbGl0ZXJhbABiZl9leHBfaW50ZXJuYWwAYmZfbG9nX2ludGVybmFsAEpTX1NldFByb3BlcnR5SW50ZXJuYWwASlNfR2V0T3duUHJvcGVydHlOYW1lc0ludGVybmFsAF9fSlNfRXZhbEludGVybmFsAGJpZ2RlY2ltYWwAbnR0X2ZmdF9wYXJ0aWFsAHRvRXhwb25lbnRpYWwAc2VhbABnbG9iYWwAYmxpbmsAX19kYXRlX2Nsb2NrAHN0YWNrAGxyZV9leGVjX2JhY2t0cmFjawBzLT5pc193ZWFrAGJmX3Bvd191aQBzZXRNb250aABnZXRNb250aABzZXRVVENNb250aABnZXRVVENNb250aABpbnZhbGlkIGtleXdvcmQ6IHdpdGgAc3RhcnRzV2l0aABlbmRzV2l0aABwcm9wID09IEpTX0FUT01fbGVuZ3RoAGludmFsaWQgYXJyYXkgbGVuZ3RoAGludmFsaWQgYXJyYXkgYnVmZmVyIGxlbmd0aABpbnZhbGlkIGxlbmd0aABpbnZhbGlkIGJ5dGVMZW5ndGgAdXNlIG1hdGgATWF0aABwdXNoAGFjb3NoAEpTX1Jlc2l6ZUF0b21IYXNoAGFzaW5oAGF0YW5oAGJyZWFrIG11c3QgYmUgaW5zaWRlIGxvb3Agb3Igc3dpdGNoAG1hdGNoAGNhdGNoAHNlYXJjaABmb3JFYWNoAGJmX2xvZwBBcnJheSB0b28gbG9uZwBzdHJpbmcgdG9vIGxvbmcAQXJyYXkgbG9vIGxvbmcAc3Vic3RyaW5nAGNhbm5vdCBjb252ZXJ0IHN5bWJvbCB0byBzdHJpbmcAdW5leHBlY3RlZCBlbmQgb2Ygc3RyaW5nAG5vdCBhIHN0cmluZwBpbnZhbGlkIGNoYXJhY3RlciBpbiBhIEpTT04gc3RyaW5nAHRvU3RyaW5nAHRvRGF0ZVN0cmluZwB0b0xvY2FsZURhdGVTdHJpbmcAdG9UaW1lU3RyaW5nAHRvTG9jYWxlVGltZVN0cmluZwB0b0xvY2FsZVN0cmluZwB0b0dNVFN0cmluZwBKU1N0cmluZwB0b0lTT1N0cmluZwB0b1VUQ1N0cmluZwBkdXBsaWNhdGUgaW1wb3J0IGJpbmRpbmcAaW52YWxpZCBpbXBvcnQgYmluZGluZwBiaWcAcmVnZXhwIG11c3QgaGF2ZSB0aGUgJ2cnIGZsYWcAb2YAaW5mAGRpZmYgPT0gKGludDhfdClkaWZmAGRpZmYgPT0gKGludDE2X3QpZGlmZgBocmVmAGdjX2RlY3JlZgBmcmVlX3Zhcl9yZWYAb3B0aW1pemVfc2NvcGVfbWFrZV9nbG9iYWxfcmVmAHJlc2V0X3dlYWtfcmVmAGRlbGV0ZV93ZWFrX3JlZgBvcHRpbWl6ZV9zY29wZV9tYWtlX3JlZgBpbmRleE9mAGxhc3RJbmRleE9mAHZhbHVlT2YAc2V0UHJvdG90eXBlT2YAZ2V0UHJvdG90eXBlT2YAaXNQcm90b3R5cGVPZgAlLipmAGZvbnRzaXplAGJpbmFyeV9vYmplY3Rfc2l6ZQBzdHJfc2l6ZQBuZXdfc2l6ZSA8PSBzaC0+cHJvcF9zaXplAGRlc2NyIDwgcnQtPmF0b21fc2l6ZQBhdG9tIDwgcnQtPmF0b21fc2l6ZQBjb21wdXRlX3N0YWNrX3NpemUAb2JqX3NpemUAbiA8IGJ1Zl9zaXplAHNoYXBlX3NpemUAanNfZnVuY19wYzJsaW5lX3NpemUAanNfZnVuY19jb2RlX3NpemUAbWVtb3J5X3VzZWRfc2l6ZQBqc19mdW5jX3NpemUAbm9ybWFsaXplAGZyZWV6ZQByZXNvbHZlAHRvUHJpbWl0aXZlAHB1dF9sdmFsdWUAdW5rbm93biB1bmljb2RlIHByb3BlcnR5IHZhbHVlAHJlc3QgZWxlbWVudCBjYW5ub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUAaW52YWxpZCByZXQgdmFsdWUAX19KU19BdG9tVG9WYWx1ZQBfX3F1b3RlAGlzRmluaXRlAGRlbGV0ZQBjcmVhdGUAc2V0RGF0ZQBnZXREYXRlAHNldFVUQ0RhdGUAZ2V0VVRDRGF0ZQBJbnZhbGlkIERhdGUAcmV2ZXJzZQBwYXJzZQBwcm94eSBwcmV2ZW50RXh0ZW5zaW9ucyBoYW5kbGVyIHJldHVybmVkIGZhbHNlAFByb21pc2UAdG9Mb3dlckNhc2UAdG9Mb2NhbGVMb3dlckNhc2UAdG9VcHBlckNhc2UAdG9Mb2NhbGVVcHBlckNhc2UAaWdub3JlQ2FzZQBsb2NhbGVDb21wYXJlAHByb3h5OiBpbmNvbnNpc3RlbnQgcHJvdG90eXBlAHByb3h5OiBiYWQgcHJvdG90eXBlAG5vdCBhIHByb3RvdHlwZQBpbnZhbGlkIG9iamVjdCB0eXBlAHVuZXNjYXBlAG5vbmUAcmVzdCBlbGVtZW50IG11c3QgYmUgdGhlIGxhc3Qgb25lAG11bHRpbGluZQAgIHBjMmxpbmUAc29tZQBKU19GcmVlUnVudGltZQBKU1J1bnRpbWUAc2V0VGltZQBnZXRUaW1lAHNldF9vYmplY3RfbmFtZQBleHBlY3RpbmcgcHJvcGVydHkgbmFtZQB1bmtub3duIHVuaWNvZGUgcHJvcGVydHkgbmFtZQBpbnZhbGlkIHByb3BlcnR5IG5hbWUAZHVwbGljYXRlIF9fcHJvdG9fXyBwcm9wZXJ0eSBuYW1lAGludmFsaWQgcmVkZWZpbml0aW9uIG9mIHBhcmFtZXRlciBuYW1lAGV4cGVjdGluZyBncm91cCBuYW1lAGR1cGxpY2F0ZSBncm91cCBuYW1lAGludmFsaWQgZ3JvdXAgbmFtZQBkdXBsaWNhdGUgbGFiZWwgbmFtZQBpbnZhbGlkIGZpcnN0IGNoYXJhY3RlciBvZiBwcml2YXRlIG5hbWUAaW52YWxpZCBsZXhpY2FsIHZhcmlhYmxlIG5hbWUAaW52YWxpZCBtZXRob2QgbmFtZQBleHBlY3RpbmcgZmllbGQgbmFtZQBpbnZhbGlkIGZpZWxkIG5hbWUAY2xhc3Mgc3RhdGVtZW50IHJlcXVpcmVzIGEgbmFtZQBmaWxlTmFtZQBjb21waWxlAG9iamVjdCBpcyBub3QgZXh0ZW5zaWJsZQBwcm94eTogaW5jb25zaXN0ZW50IGlzRXh0ZW5zaWJsZQBjYW5ub3QgaGF2ZSBzZXR0ZXIvZ2V0dGVyIGFuZCB2YWx1ZSBvciB3cml0YWJsZQBwcm9wZXJ0eSBpcyBub3QgY29uZmlndXJhYmxlAHZhbHVlIGlzIG5vdCBpdGVyYWJsZQBwcm9wZXJ0eUlzRW51bWVyYWJsZQBtaXNzaW5nIGluaXRpYWxpemVyIGZvciBjb25zdCB2YXJpYWJsZQBsZXhpY2FsIHZhcmlhYmxlAGludmFsaWQgcmVkZWZpbml0aW9uIG9mIGEgdmFyaWFibGUAcmV2b2NhYmxlAHN0cmlrZQBtcF9kaXZub3JtX2xhcmdlAGludmFsaWQgY2xhc3MgcmFuZ2UAbWVzc2FnZQBhc3luY19mdW5jX2ZyZWUAaW52YWxpZCBsdmFsdWUgaW4gc3RyaWN0IG1vZGUAaW52YWxpZCB2YXJpYWJsZSBuYW1lIGluIHN0cmljdCBtb2RlAGNhbm5vdCBkZWxldGUgYSBkaXJlY3QgcmVmZXJlbmNlIGluIHN0cmljdCBtb2RlAG9jdGFsIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlAG9jdGFsIGxpdGVyYWxzIGFyZSBkZXByZWNhdGVkIGluIHN0cmljdCBtb2RlAHVuaWNvZGUAICBieXRlY29kZQBKU0Z1bmN0aW9uQnl0ZWNvZGUAc2tpcF9kZWFkX2NvZGUAaW52YWxpZCBhcmd1bWVudCBuYW1lIGluIHN0cmljdCBjb2RlAGludmFsaWQgZnVuY3Rpb24gbmFtZSBpbiBzdHJpY3QgY29kZQBpbnZhbGlkIHJlZGVmaW5pdGlvbiBvZiBnbG9iYWwgaWRlbnRpZmllciBpbiBtb2R1bGUgY29kZQBpbXBvcnQubWV0YSBvbmx5IHZhbGlkIGluIG1vZHVsZSBjb2RlAGZyb21DaGFyQ29kZQBpbnZhbGlkIGZvciBpbi9vZiBsZWZ0IGhhbmQtc2lkZQBpbnZhbGlkIGFzc2lnbm1lbnQgbGVmdC1oYW5kIHNpZGUAcmVkdWNlAHNvdXJjZQAndGhpcycgY2FuIGJlIGluaXRpYWxpemVkIG9ubHkgb25jZQBwcm9wZXJ0eSBjb25zdHJ1Y3RvciBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlAGludmFsaWQgVVRGLTggc2VxdWVuY2UAY2lyY3VsYXIgcmVmZXJlbmNlAHNsaWNlAHNwbGljZQByYWNlAHJlcGxhY2UAJSsuKmUAdW5leHBlY3RlZCAnYXdhaXQnIGtleXdvcmQAdW5leHBlY3RlZCAneWllbGQnIGtleXdvcmQAbWFwX2RlY3JlZl9yZWNvcmQAaXRlcmF0b3IgZG9lcyBub3QgaGF2ZSBhIHRocm93IG1ldGhvZABvYmplY3QgbmVlZHMgdG9JU09TdHJpbmcgbWV0aG9kACdzdXBlcicgaXMgb25seSB2YWxpZCBpbiBhIG1ldGhvZABmcm91bmQAX19iZl9yb3VuZABicmVhay9jb250aW51ZSBsYWJlbCBub3QgZm91bmQAb3V0IG9mIGJvdW5kAGZpbmQAYmluZABpbnZhbGlkIGluZGV4IGZvciBhcHBlbmQAZXh0cmFuZW91cyBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQAdW5leHBlY3RlZCBkYXRhIGF0IHRoZSBlbmQAdW5leHBlY3RlZCBlbmQAaW52YWxpZCBpbmNyZW1lbnQvZGVjcmVtZW50IG9wZXJhbmQAaW52YWxpZCAnaW5zdGFuY2VvZicgcmlnaHQgb3BlcmFuZABpbnZhbGlkICdpbicgb3BlcmFuZAB0cmltRW5kAHBhZEVuZABib2xkACVsbGQAZ2NfZGVjcmVmX2NoaWxkAHJlc29sdmVfc2NvcGVfcHJpdmF0ZV9maWVsZABjYW5ub3QgZGVsZXRlIGEgcHJpdmF0ZSBjbGFzcyBmaWVsZABleHBlY3RpbmcgPGJyYW5kPiBwcml2YXRlIGZpZWxkACVzIGlzIG5vdCBpbml0aWFsaXplZABmaXhlZAB0b0ZpeGVkAHNldF9vYmplY3RfbmFtZV9jb21wdXRlZAByZWdleCBub3Qgc3VwcG9ydGVkAGV2YWwgaXMgbm90IHN1cHBvcnRlZABSZWdFeHAgYXJlIG5vdCBzdXBwb3J0ZWQAaW50ZXJydXB0ZWQAJXMgb2JqZWN0IGV4cGVjdGVkAGlkZW50aWZpZXIgZXhwZWN0ZWQAYnl0ZWNvZGUgZnVuY3Rpb24gZXhwZWN0ZWQAc3RyaW5nIGV4cGVjdGVkAGZyb20gY2xhdXNlIGV4cGVjdGVkAGZ1bmN0aW9uIG5hbWUgZXhwZWN0ZWQAdmFyaWFibGUgbmFtZSBleHBlY3RlZABtZXRhIGV4cGVjdGVkAHJlamVjdGVkAG1lbW9yeSBhbGxvY2F0ZWQAbWVtb3J5IHVzZWQAZGVyaXZlZCBjbGFzcyBjb25zdHJ1Y3RvciBtdXN0IHJldHVybiBhbiBvYmplY3Qgb3IgdW5kZWZpbmVkAGNhbm5vdCBzZXQgcHJvcGVydHkgJyVzJyBvZiB1bmRlZmluZWQAY2Fubm90IHJlYWQgcHJvcGVydHkgJyVzJyBvZiB1bmRlZmluZWQAZmxhZ3MgbXVzdCBiZSB1bmRlZmluZWQAVW5kZWZpbmVkAHByaXZhdGUgY2xhc3MgZmllbGQgaXMgYWxyZWFkeSBkZWZpbmVkACclcycgaXMgbm90IGRlZmluZWQAZ3JvdXAgbmFtZSBub3QgZGVmaW5lZABvcGVyYXRvciAlczogbm8gZnVuY3Rpb24gZGVmaW5lZABhbGxTZXR0bGVkAGZ1bGZpbGxlZABjYW5ub3QgYmUgY2FsbGVkAGlzU2VhbGVkACFzaC0+aXNfaGFzaGVkAHZhcl9yZWYtPmlzX2RldGFjaGVkAEFycmF5QnVmZmVyIGlzIGRldGFjaGVkAGFkZAAlKzA3ZAAlMDRkACUwMmQlMDJkACUwMmQvJTAyZC8lMCpkACUuM3MgJS4zcyAlMDJkICUwKmQAOiVkAGludmFsaWQgdGhyb3cgdmFyIHR5cGUgJWQAc2MAanNfZGVmX21hbGxvYwB0cnVuYwBnYwBleGVjAGJmX2ludGVnZXJfdG9fcmFkaXhfcmVjAHF1aWNranMvcXVpY2tqcy5jAHF1aWNranMvbGlicmVnZXhwLmMAcXVpY2tqcy9saWJiZi5jAHF1aWNranMvbGlidW5pY29kZS5jAHN1YgBwcm9taXNlX3JlYWN0aW9uX2pvYgBqc19wcm9taXNlX3Jlc29sdmVfdGhlbmFibGVfam9iAHIgIT0gYSAmJiByICE9IGIAcSAhPSBhICYmIHEgIT0gYgByd2EAciAhPSBhAF9fbG9va3VwU2V0dGVyX18AX19kZWZpbmVTZXR0ZXJfXwBfX2xvb2t1cEdldHRlcl9fAF9fZGVmaW5lR2V0dGVyX18AX19wcm90b19fAFtTeW1ib2wuc3BsaXRdAFtTeW1ib2wuc3BlY2llc10AW1N5bWJvbC5pdGVyYXRvcl0AW1N5bWJvbC5hc3luY0l0ZXJhdG9yXQBbU3ltYm9sLm1hdGNoQWxsXQBbU3ltYm9sLm1hdGNoXQBbU3ltYm9sLnNlYXJjaF0AW1N5bWJvbC50b1N0cmluZ1RhZ10AW1N5bWJvbC50b1ByaW1pdGl2ZV0AW3Vuc3VwcG9ydGVkIHR5cGVdAFtmdW5jdGlvbiBieXRlY29kZV0AW1N5bWJvbC5oYXNJbnN0YW5jZV0AW1N5bWJvbC5yZXBsYWNlXQBbACUwMmQ6JTAyZDolMDJkLiUwM2RaAFBPU0lUSVZFX0lORklOSVRZAE5FR0FUSVZFX0lORklOSVRZAHAtPmNsYXNzX2lkID09IEpTX0NMQVNTX0FSUkFZAHN0YWNrX2xlbiA8IFBPUF9TVEFDS19MRU5fTUFYAC0lMDJkLSUwMmRUAEpTX0F0b21HZXRTdHJSVABvcGNvZGUgPCBSRU9QX0NPVU5UAEJZVEVTX1BFUl9FTEVNRU5UACUwMmQ6JTAyZDolMDJkIEdNVABKU19WQUxVRV9HRVRfVEFHKHNmLT5jdXJfZnVuYykgPT0gSlNfVEFHX09CSkVDVAB2YXJfa2luZCA9PSBKU19WQVJfUFJJVkFURV9TRVRURVIATUFYX1NBRkVfSU5URUdFUgBNSU5fU0FGRV9JTlRFR0VSAGFzVWludE4AYXNJbnROAGlzTmFOAERhdGUgdmFsdWUgaXMgTmFOAHRvSlNPTgBFUFNJTE9OAE5BTgAlMDJkOiUwMmQ6JTAyZCAlY00Acy0+bGFiZWxfc2xvdHNbbGFiZWxdLmZpcnN0X3JlbG9jID09IE5VTEwAbGFiZWxfc2xvdHNbaV0uZmlyc3RfcmVsb2MgPT0gTlVMTABwcnMgIT0gTlVMTABzZi0+Y3VyX3NwICE9IE5VTEwAc2YgIT0gTlVMTABtcjEgIT0gTlVMTAB2YXJfa2luZCAhPSBKU19WQVJfTk9STUFMAGItPmZ1bmNfa2luZCA9PSBKU19GVU5DX05PUk1BTABlbmNvZGVVUkkAZGVjb2RlVVJJAFBJAHNwZWNpYWwgPT0gUFVUX0xWQUxVRV9OT0tFRVAgfHwgc3BlY2lhbCA9PSBQVVRfTFZBTFVFX05PS0VFUF9ERVBUSABzLT5zdGF0ZSA9PSBKU19BU1lOQ19HRU5FUkFUT1JfU1RBVEVfRVhFQ1VUSU5HAHByZWMxICE9IEJGX1BSRUNfSU5GADAxMjM0NTY3ODlBQkNERUYAU0laRQBNQVhfVkFMVUUATUlOX1ZBTFVFAE5BTUUAZXZhbF90eXBlID09IEpTX0VWQUxfVFlQRV9HTE9CQUwgfHwgZXZhbF90eXBlID09IEpTX0VWQUxfVFlQRV9NT0RVTEUAcC0+Z2Nfb2JqX3R5cGUgPT0gSlNfR0NfT0JKX1RZUEVfSlNfT0JKRUNUIHx8IHAtPmdjX29ial90eXBlID09IEpTX0dDX09CSl9UWVBFX0ZVTkNUSU9OX0JZVEVDT0RFAExPRzJFAExPRzEwRQBzLT5zdGF0ZSA9PSBKU19BU1lOQ19HRU5FUkFUT1JfU1RBVEVfQVdBSVRJTkdfUkVUVVJOIHx8IHMtPnN0YXRlID09IEpTX0FTWU5DX0dFTkVSQVRPUl9TVEFURV9DT01QTEVURUQAVVRDADxpbnB1dD4APHNldD4APGFub255bW91cz4APGR1bXA+ADxudWxsPgBiaWdpbnQgb3BlcmFuZHMgYXJlIGZvcmJpZGRlbiBmb3IgPj4+ACZxdW90OwBzZXRVaW50OABnZXRVaW50OABzZXRJbnQ4AGdldEludDgAbWFsZm9ybWVkIFVURi04AHJhZGl4IG11c3QgYmUgYmV0d2VlbiAyIGFuZCAzNgBzZXRVaW50MTYAZ2V0VWludDE2AHNldEludDE2AGdldEludDE2AGFyZ2MgPT0gNQBzZXRCaWdVaW50NjQAZ2V0QmlnVWludDY0AHNldEJpZ0ludDY0AGdldEJpZ0ludDY0AHNldEZsb2F0NjQAZ2V0RmxvYXQ2NABhcmdjID09IDMAYXRhbjIAbG9nMgBmbG9vckxvZzIAU1FSVDFfMgBTUVJUMgBMTjIAY2x6MzIAc2V0VWludDMyAGdldFVpbnQzMgBzZXRJbnQzMgBnZXRJbnQzMgBzZXRGbG9hdDMyAGdldEZsb2F0MzIAc3RhY2tfbGVuID49IDIASlNfQXRvbUlzTnVtZXJpY0luZGV4MQBqc19mY3Z0MQBKU19Db21wYWN0QmlnSW50MQBleHBtMQByICE9IGExICYmIHIgIT0gYjEAbHMtPmFkZHIgPT0gLTEAbnEgPj0gMQBzdGFja19sZW4gPj0gMQBwLT5oZWFkZXIucmVmX2NvdW50ID09IDEAcC0+c2hhcGUtPmhlYWRlci5yZWZfY291bnQgPT0gMQBzdGFja19sZW4gPT0gMQBqc19mcmVlX3NoYXBlMABsb2cxMABMTjEwAHAtPnJlZl9jb3VudCA+IDAAdmFyX3JlZi0+aGVhZGVyLnJlZl9jb3VudCA+IDAAc3RhY2tfc2l6ZSA+IDAAY3Bvb2xfaWR4ID49IDAAcnQtPmF0b21fY291bnQgPj0gMABscy0+cmVmX2NvdW50ID49IDAAcy0+aXNfZXZhbCB8fCBzLT5jbG9zdXJlX3Zhcl9jb3VudCA9PSAwAHAtPnJlZl9jb3VudCA9PSAwAGN0eC0+aGVhZGVyLnJlZl9jb3VudCA9PSAwAHNoLT5oZWFkZXIucmVmX2NvdW50ID09IDAAcC0+bWFyayA9PSAwAChuMiAlIHN0cmlwX2xlbikgPT0gMAAocHItPnUuaW5pdC5yZWFsbV9hbmRfaWQgJiAzKSA9PSAwAChuZXdfaGFzaF9zaXplICYgKG5ld19oYXNoX3NpemUgLSAxKSkgPT0gMABpICE9IDAAc2l6ZSAhPSAwAF4kXC4qKz8oKVtde318LwA8LwAwLgBtaXNzaW5nIGJpbmRpbmcgcGF0dGVybi4uLgBiaWdpbnQgYXJndW1lbnQgd2l0aCB1bmFyeSArAGFzeW5jIGZ1bmN0aW9uICoACn0pAGxpc3RfZW1wdHkoJnJ0LT5nY19vYmpfbGlzdCkAaiA9PSAoc2gtPnByb3BfY291bnQgLSBzaC0+ZGVsZXRlZF9wcm9wX2NvdW50KQBKU19Jc1VuZGVmaW5lZChmdW5jX3JldCkAIV9fSlNfQXRvbUlzVGFnZ2VkSW50KGRlc2NyKQAhYXRvbV9pc19mcmVlKHApAChudWxsKQAgKG5hdGl2ZSkAanNfY2xhc3NfaGFzX2J5dGVjb2RlKHAtPmNsYXNzX2lkKQB1bmNvbnNpc3RlbnQgc3RhY2sgc2l6ZTogJWQgJWQgKHBjPSVkKQBieXRlY29kZSBidWZmZXIgb3ZlcmZsb3cgKG9wPSVkLCBwYz0lZCkAc3RhY2sgb3ZlcmZsb3cgKG9wPSVkLCBwYz0lZCkAc3RhY2sgdW5kZXJmbG93IChvcD0lZCwgcGM9JWQpAGludmFsaWQgb3Bjb2RlIChvcD0lZCwgcGM9JWQpACg/OikAbm8gZnVuY3Rpb24gZmlsZW5hbWUgZm9yIGltcG9ydCgpAC1fLiF+KicoKQAgYW5vbnltb3VzKABTeW1ib2woAGV4cGVjdGluZyAnfScAY2xhc3MgY29uc3RydWN0b3JzIG11c3QgYmUgaW52b2tlZCB3aXRoICduZXcnAGV4cGVjdGluZyAnYXMnAHVuZXhwZWN0ZWQgdG9rZW4gaW4gZXhwcmVzc2lvbjogJyUuKnMnAHVuZXhwZWN0ZWQgdG9rZW46ICclLipzJwByZWRlY2xhcmF0aW9uIG9mICclcycAZHVwbGljYXRlIGV4cG9ydGVkIG5hbWUgJyVzJwBjaXJjdWxhciByZWZlcmVuY2Ugd2hlbiBsb29raW5nIGZvciBleHBvcnQgJyVzJyBpbiBtb2R1bGUgJyVzJwBDb3VsZCBub3QgZmluZCBleHBvcnQg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AJYAAADBAAAAlwAAAJgAAADCAAAAlwAAAJgAAADDAAAAawAAAGwAAADEAAAAmQAAAJoAAADFAAAAmQAAAJoAAAAvAAAAmwAAAJwAAADGAAAAawAAAGwAAADHAAAAnQAAAJ4AAAAAAAAA7h8AAB8gAAAqIAAA4h8AABUgAAA5IAAA+B8AAAYgAABjb3B5V2l0aGluAGVudHJpZXMAZmlsbABmaW5kAGZpbmRJbmRleABmbGF0AGZsYXRNYXAAaW5jbHVkZXMAa2V5cwB2YWx1ZXMAAAAAAAEBAgIDAwIDAEGQpwEL3xBudWxsAGZhbHNlAHRydWUAaWYAZWxzZQByZXR1cm4AdmFyAHRoaXMAZGVsZXRlAHZvaWQAdHlwZW9mAG5ldwBpbgBpbnN0YW5jZW9mAGRvAHdoaWxlAGZvcgBicmVhawBjb250aW51ZQBzd2l0Y2gAY2FzZQBkZWZhdWx0AHRocm93AHRyeQBjYXRjaABmaW5hbGx5AGZ1bmN0aW9uAGRlYnVnZ2VyAHdpdGgAY2xhc3MAY29uc3QAZW51bQBleHBvcnQAZXh0ZW5kcwBpbXBvcnQAc3VwZXIAaW1wbGVtZW50cwBpbnRlcmZhY2UAbGV0AHBhY2thZ2UAcHJpdmF0ZQBwcm90ZWN0ZWQAcHVibGljAHN0YXRpYwB5aWVsZABhd2FpdAAAbGVuZ3RoAGZpbGVOYW1lAGxpbmVOdW1iZXIAbWVzc2FnZQBlcnJvcnMAc3RhY2sAbmFtZQB0b1N0cmluZwB0b0xvY2FsZVN0cmluZwB2YWx1ZU9mAGV2YWwAcHJvdG90eXBlAGNvbnN0cnVjdG9yAGNvbmZpZ3VyYWJsZQB3cml0YWJsZQBlbnVtZXJhYmxlAHZhbHVlAGdldABzZXQAb2YAX19wcm90b19fAHVuZGVmaW5lZABudW1iZXIAYm9vbGVhbgBzdHJpbmcAb2JqZWN0AHN5bWJvbABpbnRlZ2VyAHVua25vd24AYXJndW1lbnRzAGNhbGxlZQBjYWxsZXIAPGV2YWw+ADxyZXQ+ADx2YXI+ADxhcmdfdmFyPgA8d2l0aD4AbGFzdEluZGV4AHRhcmdldABpbmRleABpbnB1dABkZWZpbmVQcm9wZXJ0aWVzAGFwcGx5AGpvaW4AY29uY2F0AHNwbGl0AGNvbnN0cnVjdABnZXRQcm90b3R5cGVPZgBzZXRQcm90b3R5cGVPZgBpc0V4dGVuc2libGUAcHJldmVudEV4dGVuc2lvbnMAaGFzAGRlbGV0ZVByb3BlcnR5AGRlZmluZVByb3BlcnR5AGdldE93blByb3BlcnR5RGVzY3JpcHRvcgBvd25LZXlzAGFkZABkb25lAG5leHQAdmFsdWVzAHNvdXJjZQBmbGFncwBnbG9iYWwAdW5pY29kZQByYXcAbmV3LnRhcmdldAB0aGlzLmFjdGl2ZV9mdW5jADxob21lX29iamVjdD4APGNvbXB1dGVkX2ZpZWxkPgA8c3RhdGljX2NvbXB1dGVkX2ZpZWxkPgA8Y2xhc3NfZmllbGRzX2luaXQ+ADxicmFuZD4AI2NvbnN0cnVjdG9yAGFzAGZyb20AbWV0YQAqZGVmYXVsdCoAKgBNb2R1bGUAdGhlbgByZXNvbHZlAHJlamVjdABwcm9taXNlAHByb3h5AHJldm9rZQBhc3luYwBleGVjAGdyb3VwcwBzdGF0dXMAcmVhc29uAGdsb2JhbFRoaXMAYmlnaW50AGJpZ2Zsb2F0AGJpZ2RlY2ltYWwAcm91bmRpbmdNb2RlAG1heGltdW1TaWduaWZpY2FudERpZ2l0cwBtYXhpbXVtRnJhY3Rpb25EaWdpdHMAdG9KU09OAE9iamVjdABBcnJheQBFcnJvcgBOdW1iZXIAU3RyaW5nAEJvb2xlYW4AU3ltYm9sAEFyZ3VtZW50cwBNYXRoAEpTT04ARGF0ZQBGdW5jdGlvbgBHZW5lcmF0b3JGdW5jdGlvbgBGb3JJbkl0ZXJhdG9yAFJlZ0V4cABBcnJheUJ1ZmZlcgBTaGFyZWRBcnJheUJ1ZmZlcgBVaW50OENsYW1wZWRBcnJheQBJbnQ4QXJyYXkAVWludDhBcnJheQBJbnQxNkFycmF5AFVpbnQxNkFycmF5AEludDMyQXJyYXkAVWludDMyQXJyYXkAQmlnSW50NjRBcnJheQBCaWdVaW50NjRBcnJheQBGbG9hdDMyQXJyYXkARmxvYXQ2NEFycmF5AERhdGFWaWV3AEJpZ0ludABCaWdGbG9hdABCaWdGbG9hdEVudgBCaWdEZWNpbWFsAE9wZXJhdG9yU2V0AE9wZXJhdG9ycwBNYXAAU2V0AFdlYWtNYXAAV2Vha1NldABNYXAgSXRlcmF0b3IAU2V0IEl0ZXJhdG9yAEFycmF5IEl0ZXJhdG9yAFN0cmluZyBJdGVyYXRvcgBSZWdFeHAgU3RyaW5nIEl0ZXJhdG9yAEdlbmVyYXRvcgBQcm94eQBQcm9taXNlAFByb21pc2VSZXNvbHZlRnVuY3Rpb24AUHJvbWlzZVJlamVjdEZ1bmN0aW9uAEFzeW5jRnVuY3Rpb24AQXN5bmNGdW5jdGlvblJlc29sdmUAQXN5bmNGdW5jdGlvblJlamVjdABBc3luY0dlbmVyYXRvckZ1bmN0aW9uAEFzeW5jR2VuZXJhdG9yAEV2YWxFcnJvcgBSYW5nZUVycm9yAFJlZmVyZW5jZUVycm9yAFN5bnRheEVycm9yAFR5cGVFcnJvcgBVUklFcnJvcgBJbnRlcm5hbEVycm9yADxicmFuZD4AU3ltYm9sLnRvUHJpbWl0aXZlAFN5bWJvbC5pdGVyYXRvcgBTeW1ib2wubWF0Y2gAU3ltYm9sLm1hdGNoQWxsAFN5bWJvbC5yZXBsYWNlAFN5bWJvbC5zZWFyY2gAU3ltYm9sLnNwbGl0AFN5bWJvbC50b1N0cmluZ1RhZwBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlAFN5bWJvbC5oYXNJbnN0YW5jZQBTeW1ib2wuc3BlY2llcwBTeW1ib2wudW5zY29wYWJsZXMAU3ltYm9sLmFzeW5jSXRlcmF0b3IAU3ltYm9sLm9wZXJhdG9yU2V0AEGAuAELtQgBAAAABQABFAUAARUFAAEVBQABFwUAARcBAAEAAQABAAEAAQABAAEAAQABAAEAAQACAAEFAwABCgEBAAABAgEAAQMCAAEBAgABAgMAAQIEAAEDBgABAgMAAQMEAAEEBQABAwMAAQQEAAEFBQABAgIAAQQEAAEDAwABAwMAAQQEAAEFBQADAgENAwEBDQMBAA0DAgENAwIADQMAAQ0DAwEKAQEAAAEAAAABAQIAAQAAAAECAgABAgAAAQEAAAEBAAAGAAAYBQEBDwMCAQoBAgEAAQEBAAEBAQAFAAEXBQABFwUAARcFAQAXBQEAFwUCABcBAgMAAQMAAAYAABgGAAAYBgEAGAUBARcFAQIXBQIAFwECAQABAwAAAQMBAAECAQABAgIAAQMAAAEDAQABBAAABQIBFwUBARcBAgIAAQIB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AAABADAAOgBB0IECCxEEADAAOgBBAFsAXwBgAGEAewBB8IECC8QLAQMFAQEBAQUFBQECAgMFBQEBAQICAwMFBQEFAREAAAAwmiAAAJowAHOBWgAwF2AAMAdsALOBbwAAF3AAAAd8AACBfwBAMIAAwwGYAJCBmABABpkAQJCcALSBpABALqUAMAG8AECGvABwgb8AAAHAADCBwABABMEAMAHDAECCwwAwgsQAQILFADABxwAwgccAMAHIAECCyAAwgckAMAHKAACBygAwAcsAMIHLAEACzAAAAc0AMAHOADCBzgAAAc8AMIHPAEAG0AAwAdMAQILTADCB1ABAAtYAMAHXAECC1wAwgtgAQITZADCB2wBAAtwAQALeAACB3wBQA+IAUIPjAFAD5QBAkOYAAIHuAEAS7wC0AfgAUIP4AEAC+gAwAfsAMIH7AEAo/AAwARABQBIRATEBHQFAgh0BMIEeATEBHwEBgh8BQIIgATCBIQEwASIBMIEiAUAKIwEBASgBAYEoAQEBKQEAgSkBAAEqAQACKwEAgSwBAIEtAQEBLgEAATABAYEwAQCBMQEBgTIBAQEzAQABNAEAgTQBAQE1AQGBNQEBATYBAIE3AQGBOAEAATkBAIE6AQGBPgEAAUABAQFBAQCBQQEBgUMBAAFEAQCBRAEAAkUBAAFGAQABSQEBgU4BAQFPAXOBogFABLgBQAK7AQCDvQEwgb8BMAHDATADxAEwAcYBMALHAdAByAEwkcgBMInRAQAB1gEAg9YB0wHYAQCR2AFzAeEBAInhAQAB5gEAguYBMIHnAXMB6AFzgegBc4HqAXMB6wEAgesBQBjsAXMB+AFzgfgBAAH5AQCB+QGgAfoBc4H6AUCC+wEwgfwBQAL9ATCD/gEwEAACMCAIAgAgGAIAECgCQCIwAkA2RQIwAWACQI5gAgCBZwJAYGgCMKaYAgCmsAK1gcMCMSZQCDGBYwgxgWYIACtoCACDfggRUNAJEAb4CSAG/Al0AUAOdIFADnQBQQ50gUEOdAFCDnSBQg50AUMOgIFDDoABRA4wK0gOMINeDgGBvA4Bgb4OAQHHDkB+AA9AGD8PtQFLD7aBSw+2AUwPtoFMD7cBTQ+AgU0PMAFPD0BgUA8ACIAPMAiEDwAGiA8wBowPAAiQDzAIlA8ACJgPMAicDwAGoA8wBqQPsAGoDwCBqA/T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iaCCsQARDAiAqCSBQOs4CYlgTyOAQuCPj48Rl4JAv4mkgEK8gEDhgECUhEEkiUVWEAyDpxOAQKSBQjwfiUFwgUCYikCugrSOnomOg6yKtIkqo42AiSGrgIuCr407gIvRiyhAn4uEiSu2CDEJgoiAiQkyhEC/kYiJGNCTi4lA1DGImoHRkI6J0IyHidKOg4lA8Y5ApInFKAkYAIGLifYxMoCbiacwH4CIiq2PQZQ4h4+Jt5WAjfkqAAgwB4mvIAgniUFIg2BLaIlAhYS6hpiJQ/QAtjPQgIqBYEyqgVTFIi85hp2DQJOCRYixQf+2g7E4jYCVII5FTzCQDgEEQQSGiIlBoY1F1YbsNIlSlYlsBQVA7wBBoKcCC6MS+gYAhAkA8AoAcAwA9A0AShAgGhggdBsg3SAADKgAWqogGv8ArQ4BOBIhwRUh5Rkhqh0hjNFBSuEh8AEOAAAAAEFkbGFtLEFkbG0AQWhvbSxBaG9tAEFuYXRvbGlhbl9IaWVyb2dseXBocyxIbHV3AEFyYWJpYyxBcmFiAEFybWVuaWFuLEFybW4AQXZlc3RhbixBdnN0AEJhbGluZXNlLEJhbGkAQmFtdW0sQmFtdQBCYXNzYV9WYWgsQmFzcwBCYXRhayxCYXRrAEJlbmdhbGksQmVuZwBCaGFpa3N1a2ksQmhrcwBCb3BvbW9mbyxCb3BvAEJyYWhtaSxCcmFoAEJyYWlsbGUsQnJhaQBCdWdpbmVzZSxCdWdpAEJ1aGlkLEJ1aGQAQ2FuYWRpYW5fQWJvcmlnaW5hbCxDYW5zAENhcmlhbixDYXJpAENhdWNhc2lhbl9BbGJhbmlhbixBZ2hiAENoYWttYSxDYWttAENoYW0sQ2hhbQBDaGVyb2tlZSxDaGVyAENob3Jhc21pYW4sQ2hycwBDb21tb24sWnl5eQBDb3B0aWMsQ29wdCxRYWFjAEN1bmVpZm9ybSxYc3V4AEN5cHJpb3QsQ3BydABDeXJpbGxpYyxDeXJsAERlc2VyZXQsRHNydABEZXZhbmFnYXJpLERldmEARGl2ZXNfQWt1cnUsRGlhawBEb2dyYSxEb2dyAER1cGxveWFuLER1cGwARWd5cHRpYW5fSGllcm9nbHlwaHMsRWd5cABFbGJhc2FuLEVsYmEARWx5bWFpYyxFbHltAEV0aGlvcGljLEV0aGkAR2VvcmdpYW4sR2VvcgBHbGFnb2xpdGljLEdsYWcAR290aGljLEdvdGgAR3JhbnRoYSxHcmFuAEdyZWVrLEdyZWsAR3VqYXJhdGksR3VqcgBHdW5qYWxhX0dvbmRpLEdvbmcAR3VybXVraGksR3VydQBIYW4sSGFuaQBIYW5ndWwsSGFuZwBIYW5pZmlfUm9oaW5neWEsUm9oZwBIYW51bm9vLEhhbm8ASGF0cmFuLEhhdHIASGVicmV3LEhlYnIASGlyYWdhbmEsSGlyYQBJbXBlcmlhbF9BcmFtYWljLEFybWkASW5oZXJpdGVkLFppbmgsUWFhaQBJbnNjcmlwdGlvbmFsX1BhaGxhdmksUGhsaQBJbnNjcmlwdGlvbmFsX1BhcnRoaWFuLFBydGkASmF2YW5lc2UsSmF2YQBLYWl0aGksS3RoaQBLYW5uYWRhLEtuZGEAS2F0YWthbmEsS2FuYQBLYXlhaF9MaSxLYWxpAEtoYXJvc2h0aGksS2hhcgBLaG1lcixLaG1yAEtob2praSxLaG9qAEtoaXRhbl9TbWFsbF9TY3JpcHQsS2l0cwBLaHVkYXdhZGksU2luZABMYW8sTGFvbwBMYXRpbixMYXRuAExlcGNoYSxMZXBjAExpbWJ1LExpbWIATGluZWFyX0EsTGluYQBMaW5lYXJfQixMaW5iAExpc3UsTGlzdQBMeWNpYW4sTHljaQBMeWRpYW4sTHlkaQBNYWthc2FyLE1ha2EATWFoYWphbmksTWFoagBNYWxheWFsYW0sTWx5bQBNYW5kYWljLE1hbmQATWFuaWNoYWVhbixNYW5pAE1hcmNoZW4sTWFyYwBNYXNhcmFtX0dvbmRpLEdvbm0ATWVkZWZhaWRyaW4sTWVkZgBNZWV0ZWlfTWF5ZWssTXRlaQBNZW5kZV9LaWtha3VpLE1lbmQATWVyb2l0aWNfQ3Vyc2l2ZSxNZXJjAE1lcm9pdGljX0hpZXJvZ2x5cGhzLE1lcm8ATWlhbyxQbHJkAE1vZGksTW9kaQBNb25nb2xpYW4sTW9uZwBNcm8sTXJvbwBNdWx0YW5pLE11bHQATXlhbm1hcixNeW1yAE5hYmF0YWVhbixOYmF0AE5hbmRpbmFnYXJpLE5hbmQATmV3X1RhaV9MdWUsVGFsdQBOZXdhLE5ld2EATmtvLE5rb28ATnVzaHUsTnNodQBOeWlha2VuZ19QdWFjaHVlX0htb25nLEhtbnAAT2doYW0sT2dhbQBPbF9DaGlraSxPbGNrAE9sZF9IdW5nYXJpYW4sSHVuZwBPbGRfSXRhbGljLEl0YWwAT2xkX05vcnRoX0FyYWJpYW4sTmFyYgBPbGRfUGVybWljLFBlcm0AT2xkX1BlcnNpYW4sWHBlbwBPbGRfU29nZGlhbixTb2dvAE9sZF9Tb3V0aF9BcmFiaWFuLFNhcmIAT2xkX1R1cmtpYyxPcmtoAE9yaXlhLE9yeWEAT3NhZ2UsT3NnZQBPc21hbnlhLE9zbWEAUGFoYXdoX0htb25nLEhtbmcAUGFsbXlyZW5lLFBhbG0AUGF1X0Npbl9IYXUsUGF1YwBQaGFnc19QYSxQaGFnAFBob2VuaWNpYW4sUGhueABQc2FsdGVyX1BhaGxhdmksUGhscABSZWphbmcsUmpuZwBSdW5pYyxSdW5yAFNhbWFyaXRhbixTYW1yAFNhdXJhc2h0cmEsU2F1cgBTaGFyYWRhLFNocmQAU2hhdmlhbixTaGF3AFNpZGRoYW0sU2lkZABTaWduV3JpdGluZyxTZ253AFNpbmhhbGEsU2luaABTb2dkaWFuLFNvZ2QAU29yYV9Tb21wZW5nLFNvcmEAU295b21ibyxTb3lvAFN1bmRhbmVzZSxTdW5kAFN5bG90aV9OYWdyaSxTeWxvAFN5cmlhYyxTeXJjAFRhZ2Fsb2csVGdsZwBUYWdiYW53YSxUYWdiAFRhaV9MZSxUYWxlAFRhaV9UaGFtLExhbmEAVGFpX1ZpZXQsVGF2dABUYWtyaSxUYWtyAFRhbWlsLFRhbWwAVGFuZ3V0LFRhbmcAVGVsdWd1LFRlbHUAVGhhYW5hLFRoYWEAVGhhaSxUaGFpAFRpYmV0YW4sVGlidABUaWZpbmFnaCxUZm5nAFRpcmh1dGEsVGlyaABVZ2FyaXRpYyxVZ2FyAFZhaSxWYWlpAFdhbmNobyxXY2hvAFdhcmFuZ19DaXRpLFdhcmEAWWV6aWRpLFllemkAWWksWWlpaQBaYW5hYmF6YXJfU3F1YXJlLFphbmIAQdC5AguxFMAZmUWFGZlFrhmARY4ZgEWEGZZFgBmeRYAZ4WBFphmERYQZgQ2TGeAPN4MrgBmCKwGDK4AZgCsDgCuAGYArgBmCKwCAKwCT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ayxNb2RpZmllcl9TeW1ib2wAU28sT3RoZXJfU3ltYm9sAFBjLENvbm5lY3Rvcl9QdW5jdHVhdGlvbgBQZCxEYXNoX1B1bmN0dWF0aW9uAFBzLE9wZW5fUHVuY3R1YXRpb24AUGUsQ2xvc2VfUHVuY3R1YXRpb24AUGksSW5pdGlhbF9QdW5jdHVhdGlvbgBQZixGaW5hbF9QdW5jdHVhdGlvbgBQbyxPdGhlcl9QdW5jdHVhdGlvbgBacyxTcGFjZV9TZXBhcmF0b3IAWmwsTGluZV9TZXBhcmF0b3IAWnAsUGFyYWdyYXBoX1NlcGFyYXRvcgBDYyxDb250cm9sLGNudHJsAENmLEZvcm1hdABDcyxTdXJyb2dhdGUAQ28sUHJpdmF0ZV9Vc2UATEMsQ2FzZWRfTGV0dGVyAEwsTGV0dGVyAE0sTWFyayxDb21iaW5pbmdfTWFyawBOLE51bWJlcgBTLFN5bWJvbABQLFB1bmN0dWF0aW9uLHB1bmN0AFosU2VwYXJhdG9yAEMsT3RoZXIAQdDZAguwCA4AAAA+AAAAwAEAAAAOAAAA8AAAAAB/AAAAgAMBAAA8QVNDSUlfSGV4X0RpZ2l0LEFIZXgAQmlkaV9Db250cm9sLEJpZGlfQwBEYXNoAERlcHJlY2F0ZWQsRGVwAERpYWNyaXRpYyxEaWEARXh0ZW5kZXIsRXh0AEhleF9EaWdpdCxIZXgASURTX0JpbmFyeV9PcGVyYXRvcixJRFNCAElEU19UcmluYXJ5X09wZXJhdG9yLElEU1QASWRlb2dyYXBoaWMsSWRlbwBKb2luX0NvbnRyb2wsSm9pbl9DAExvZ2ljYWxfT3JkZXJfRXhjZXB0aW9uLExPRQBOb25jaGFyYWN0ZXJfQ29kZV9Qb2ludCxOQ2hhcgBQYXR0ZXJuX1N5bnRheCxQYXRfU3luAFBhdHRlcm5fV2hpdGVfU3BhY2UsUGF0X1dTAFF1b3RhdGlvbl9NYXJrLFFNYXJrAFJhZGljYWwAUmVnaW9uYWxfSW5kaWNhdG9yLFJJAFNlbnRlbmNlX1Rlcm1pbmFsLFNUZXJtAFNvZnRfRG90dGVkLFNEAFRlcm1pbmFsX1B1bmN0dWF0aW9uLFRlcm0AVW5pZmllZF9JZGVvZ3JhcGgsVUlkZW8AVmFyaWF0aW9uX1NlbGVjdG9yLFZTAFdoaXRlX1NwYWNlLHNwYWNlAEJpZGlfTWlycm9yZWQsQmlkaV9NAEVtb2ppAEVtb2ppX0NvbXBvbmVudCxFQ29tcABFbW9qaV9Nb2RpZmllcixFTW9kAEVtb2ppX01vZGlmaWVyX0Jhc2UsRUJhc2UARW1vamlfUHJlc2VudGF0aW9uLEVQcmVzAEV4dGVuZGVkX1BpY3RvZ3JhcGhpYyxFeHRQaWN0AERlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQsREkASURfU3RhcnQsSURTAENhc2VfSWdub3JhYmxlLENJAEFTQ0lJAEFscGhhYmV0aWMsQWxwaGEAQW55AEFzc2lnbmVkAENhc2VkAENoYW5nZXNfV2hlbl9DYXNlZm9sZGVkLENXQ0YAQ2hhbmdlc19XaGVuX0Nhc2VtYXBwZWQsQ1dDTQBDaGFuZ2VzX1doZW5fTG93ZXJjYXNlZCxDV0wAQ2hhbmdlc19XaGVuX05GS0NfQ2FzZWZvbGRlZCxDV0tDRgBDaGFuZ2VzX1doZW5fVGl0bGVjYXNlZCxDV1QAQ2hhbmdlc19XaGVuX1VwcGVyY2FzZWQsQ1dVAEdyYXBoZW1lX0Jhc2UsR3JfQmFzZQBHcmFwaGVtZV9FeHRlbmQsR3JfRXh0AElEX0NvbnRpbnVlLElEQwBMb3dlcmNhc2UsTG93ZXIATWF0aABVcHBlcmNhc2UsVXBwZXIAWElEX0NvbnRpbnVlLFhJREMAWElEX1N0YXJ0LFhJRFMAQZDiAgu0IIEAKACXACoAgYAqAJfAKwAVgSwAlwAtAIFALQCXAC4AFUEuAJkBLwAWIDAAQghAAEKKRABCBEoAlgBMABeBTABCAk0AQkNOAC/BTwBCw1AAv0BSAEIDUwBCCVUAQghaAJYAXgBCQ14AgcBfAEIBaABCwWsAhQFxABfDcQBESHMARIN3AEKDeQC+AnsAl0F8AEIBfQBEBH4AQg6AAEKBhwBEh4kAgwSsABcDtgCDArgAFALQAJYA0QCAAN0Al4DeAICA3wCXAOEAPkHhAIDA4QC+BOIAroPqAK6C8gCtAfQALsH0AANB9QADA/wAgUD+AD4CAAG+wAEBvgEDAb5ABgG+QA4BPgIUAb7AFQG+ARcBRIEdAURBMAFEAjQBRIE1AUSDNgFEgzgBRIY6AUQBPgGFwGEBroKIAS9CnQGEAbABhMC0AYRASgKEQEwChABNAi4EVgIuwXICIAF3AoTAdwKEwIwChICNAq5BlgKEgJcChADSAi7B0gIgAdcChADlAq6B8gKEABIDhAAwAyLBMQMugTIDroFSA4SAdgOuAXcDhcCMA4XArAMvAbcDgQDDA4TA0AOEQNMDhIDUA4TA1QOEANcDhEDaA4TA3AMuQd0DhcDdA4QA3gOFQN4DhEDgA4TA5AOEQOcDhIDoA4TA6QOEAOsDhEDuA4SACQSBAD8EhITBBoSAxAaEwc4GIAHQBoTA0AaDA0sHH8RMB4MXTweBAF4Hg9JmB0QdgAdCiY4HRBiTB0INnwcWgqUHhYCmB77ApgdEDagHRKCuByIBwAdEg8AHIgHCB0SDwgciAcQHRILEByIBxgdEgsYHPhHIB0SC0AciAdIHRILSByIB1AdEg9QHPkzWB4BA3Ae+gNwHgMDcB74A3QeAQN0HvoDdB4DA3Qe+AN4HgEDeB76A3geAwN4HvgDfB4BA3wcgCOAHIAjkByAI6Ae+BewHgMDuB74A7weXQO8HgIDvBxfB7wc+RPAHgEDyB76A8geAwPIHvgPzB4DA9AeugvUHgMD2Bz5D9weAwPgHrgP5B4DA+gc+AfsHAoH7B76D/AeAQP4HvoD+B4DA/ge+AP8HgED/B5eA/wceAQAIlYQACIFABAiXwAUIgQAJCJdACQiZgAkIgcALCIXADAixAA0IhYANCLHADQiXAQ8Il8ERCLPAFQiBwBcIlQUcCIHAHggVAh8IHwUgCIOFIggVRCUIlwAqCBkBQAiBgEAIv8BACBlBQQiBwEEIv0BCCC2FQgiBQEUIl4BFCJVCRgiXAEgImUBICJeASAiBAEkIgIBJCIEASggCgUoIlQRLCB9CTQiBQE4ImcBOCIMCTwiVQlEIGQFUCJuAVAgZxlQIl8BXCIEAWAiXQFgImYBYCJfAWAiBAFkIl0BZCJmAWQibwFkIlwBaCIFAWgiXgFoImcBaCJUCWwiXQFwImYBcCJfAXAiBAF0Il0BdCJmAXQibwF0IlwBeCIFAXgiXgF4ImcBeCBUCXwiZQGIIPoFmCL6Aawi+QXMIvgCBCL5Aggi+AIMIvgGJCIUAiwixQIsIhcCLCLEAjAi+QJAIvgCRCL7BkQi+AZgIvkKbCEQBnQhEAZ4IRAGgCEQBoQhEAaIIPgKrCEQCuAgggroIHkHKCJ8EGAkjRRoJl8AcCaUEHQkrRR8Jm8AhCaEEIgklRSQJmcAmCSUNJwkfjS0JHw00CYGAOgmzAIMKmQCdCpdAnQqZgJ0KvgC3ChUBHwuBwFsLgcCnC4HAvAutBMALrUTCC62ExAuD88YLLYXgCwMd4wstiPELgQAADIOCDQyECxMMhEIZDCIBHAwiwRwMIoEdDCJBHgwiAR8MhAAlDCPBJgyEgCcMhcAnDIQLKwyEQjEMIgE0DCLBNAwigTUMIkE2DCIBNwyEAD0MIMI9DISAPwyFwD8MLUpMDB9FUQyfylMMrRVZDAOHZAxBB4AMiYCDDCnBgwypQYQMiQCFDClBhQypwoUMiQCHDI9AhwyNgIcMQRKIDAMCkQyZAJQMo0SUDCODlgwtB5gMr4SbDKHCnQy1AJ8Ms0CfDIWAnwyDGKAMI0KsDCNFrQyXwK8MoQSwDKVBsgyXALMMmUCzDJeAswyZwLMMrRe0DIXAvwyzAcAMscDADLMAwQwxQcEMtcDBDLMAwgyxQcIMMwHDDDGBwwyFAMQMsUDEDDOBxAyFAMUMtUDFDLeAxQy1wMUMsQDGDDVBxgyzwMYMsQHHDLPAxwy1AMgMs0DIDLGByAwvQskMMUHKDLXAygyxAMsMs0DLDLWAywyxwMsMLwHMDLWAzAyzwMwMtQDNDLFAzQy1gM0MhcDNDLECzgyzQM8MsYDPDIXAzwyxAdAMs8DQDLEB0Qy1wNEMswDSDIVA0gy1gNIMhcDSDDMB0wyxgdMMs0DUDIWA1AyxwNQMswDVDIVA1Qy1gNUMscDVDCEF1gwlhdgMpQLbDJlA3AwXgdwMmQDdDJdB3QwnAd4MhYLeDInA3ww/BOAMmQDiDJtA4gy/g+IMGULkDAVC5Qw/Q+YMMcHnDIVA6AyxgegMhUDpDAeB6QyJAOoMl0DqDBmC6gydgOsMjcDrDD8I7AwFAfAMm4DwDJfB8AybgPEMmcDxDBcF8gyZgPQMF8H0DBlB9QyXwPUMmwD2DJlA9gwXgvYMGYH3DKEE+AwlRfoMJcX8DCVB/wyZwP8MAwGnKYEA3CkDAf4pAwLXKoFA2iqCFEA+gn9KPoI/aj4CoYo+EAGbPoIvnD6QxbM+lwHAPhnBwD4/QcE+r8LEPoRBxz6tBMg+gUDKPgSDyj6gA8w+oALOPoSAzz4gAdA+IMHQPq6E0T6FwNM+LTHUPq3L9D4vifo+LQL/Pi8vAD+lghc/scAYP68HGT+v/xw/pYE8P69kPT8xIFQ/MZtkPzEBfD+zg3w/sUB+P72Afj+7wH4/swB/PwMFhD+tAYw/FcOMPy1Gjj8DzJE/lcaXP68BnD+FAJ0/L4WdP606oD8vRL0/H2/APx/B1z+tX9g/gQDoPx9P6D8fg/A/H4PyPx+D9D+fgfY/gwf4P5KBJkSSwCpEEoFLRBLB0kQSwi5FEoFuRZIATkaSg1d0EsNudB8NAHUfjQZ1Hw0NdZ+DE3UfiRV1Hw0adR+NIHUVECd1n0MvdZ9FMXUfDTR1H406dZUDQXUfREN1n4NFdR+NR3WVB051n4NSdR+NVHUfDVt1H41hdR8NaHUfjW51Hw11dR+Ne3UfDYJ1H42IdR8Nj3UfjZV1Hw2cdR+NonUDAal1nwiqdYFArnWfg651gUCwdZ+MsHWBwLZ1LQO3dZ+IuHWBwLx1nwO9dYHAvnWfDL91gUDFdS2DxXWfCMd1gUDLdZ+Dy3WBQM11n4zNdYHA03UtA9R1n4jVdYHA2XWfA9p1gcDbdZ8M3HWBQOJ1LYPidZ8I5HWBQOh1n4PodYFA6nWfjOp1gcDwdS0E8XUfhfN1HwX2dR+F+HUfBft1H4X9dS0CgHutTYF7A0KIe4HAiXstRYp7AwSNe4GAkHsD3JF7LQWge63IonuDRKh7rciqe5cAQHwhRUB8JQ1EfIeASnwVwUp8F0FLfB8NTHwXglJ8mYBTfJfAU3yXgVp8lwBkfC8BgHyBgIB8AxaEfMEEkHwDAZR8HwX8fqwBAL4Q0QC+rEcJvhA5Db4shym+LAItvpA3Lr6Q/0m+ELxpvgAAAAAAAAAAIAAAAGEAAgAEAAYAvAMIAAoADAAVAJUApQC5AMEAwwDHAMsA0QDXAN0A4ADmAPgACAEKAXMAEAESARQBIAEsAUQBTQFTAWIBaAFqAXYBkgGUAakBuwHHAdEB1QG5AtcBOwDZAdsBtwDhAfwBDAIYAh0CIwInAqMDMwI/AkICSwJOAlECXQJgAmkCbAJvAnUCeAKBAooCnAKfAqMCrwK5AsUCyQLNAtEC1QLnAu0C8QL1AvkC/QIFAwkDDQMTAxcDGwMjAycDKwMvAzUDPQNBA0kDTQNRAwsPVwNbA18DYwNnA2sDbwNzA3kDfQOBA4UDiQONA5EDlQOZA50DoQPcEKUDyQPNA9kD3QPhA+8D8QM9BE8EmQTwBAIFSgVkBWwFcAVzBZoF+gX+BQcGCwYUBhgGHgYiBigGjgaUBpgGngaiBqsGrAPzBq0D9gauA/kGrwP8BswD/wbNAwIHzgMFBwkHDQcRB4YDMgc1B7kDNwc7B4gDUweJA1YHkANrB4oDdwewA4kHjgOZB58HoweMA7gHjwO7B7QAvgfAB8IHECDLBy4AzQfPByAA0gfWB9sH3wfkB+oH8AcgAPYHEiIBCAUIBwgdCCUIJwhDAC0IMAiQATYIOQhOAEUIRwhMCE4IUQhaAKkDWgBTCFcIYAhpAGIIZQhvCHQIegh+CKIISQCkCKYIqQhWAKsIrQiwCLQIWAC2CLgIuwjACMIIxQh2AMcIyQjMCNAIeADSCNQI1wjbCN4I5AjnCPAI8wj2CPkIAgkGCQsJDwkUCRcJGgkjCSwJOwk+CUEJRAlHCUoJVglcCWAJYglkCWgJaglwCXgJfAmACYYJiQmPCZEJMACTCZkJnAmeCaEJpAlhLc1rn5+mCbEJvAnHCZUKoQoVCyAAJwsxC40LoQulC6kLrQuxC7ULuQu9C8ELxQshDDUMOQw9DEEMRQxJDE0MUQxVDFkMbwxxDHMMoAy8DNwM5AzsDPQM/AwEDQwNFA0iDS4Neg2CDYUNiQ2NDZ0NsQ21DbwNwg3GDSgOLA4wDjIONg48Dj4OQQ5DDkYOdw57DokOjg6UDpwOow6pDrQOvg7GDsoOzw7ZDt0O5A7sDvMO+A4EDwoPFQ8bDyIPKA8zDz0PRQ9MD1EPVw9eD2MPaQ9wD3YPfQ+CD4kPjQ+eD6QPqQ+tD7gPvg/JD9AP1g/aD+EP5Q/vD/oPABAEEAkQDxATEBoQHxAjECkQLxAyEDYQORA/EEUQWRBhEHkQfBCAEJUQoRCxEMMQyxDPENoQ3hDqEPIQ9BAAEQURERFBEUkRTRFTEVcRWhFuEXERdRF7EX0RgRGEEYwRkhGWEZwRohGoEasRb6evEbMRjQK7EQ0SCxMJFI0UkhRQFWkVbxV1FXsVhxWTFSsAnhW2FboVvhXCFcYVyhXeFeIVRhZfFoUWixZJF08XVBd0F3QYehgOGdAZdBp8GpoanxqzGr0awxrXGtwa4hrwGiAbLRs1GzkbTxvGG9gb2hvcG2QxHRwfHCEcIxwlHCccRRxTHFgcYRxqHHwchRyKHKocxRzHHMkcyxzNHM8c0RzTHPMc9Rz3HPkc+xwCHQQdBh0IHRcdGR0bHR0dHx0hHSMdJR0nHSkdKx0tHS8dMR0zHTcd9AM5HQciOx0CIj0dRR30A0cdByJJHQIiSx1THfQDVR0HIlcdAiJZHWEd9ANjHQciZR0CImcdbx30A3EdByJzHQIidR1/HYEdgx2FHYcdiR2PHawdLQa0HcAdLAbQHUAeTB5fHnEehB6GHooekB6WHpgenB6eHqYeqR6rHrEesx61MLkeER8nHysfLR8yH38fkB+RIKEgpyChIb8iAEHQggML0kcgiCCEMjMggSCnMW8x0DQx0DIz0DRBgEGBQYJBg0GIQYoAAEOnRYBFgUWCRYhJgEmBSYJJiAAAToNPgE+BT4JPg0+IAAAAAFWAVYFVglWIWYEAAAAAYYBhgWGCYYNhiGGKAABjp2WAZYFlgmWIaYBpgWmCaYgAAG6Db4BvgW+Cb4NviAAAAAB1gHWBdYJ1iHmBAAB5iEGEQYZBqEOBQ4JDh0OMRIxFhEWGRYdFqEWMR4JHhkeHR6dIgkmDSYRJhkmoSYdJSmlqSoJLp0yBTKdMjEwAAGsga06BTqdOjLwCbk+ET4ZPi1KBUqdSjFOBU4JTp1OMVKdUjFWDVYRVhlWKVYtVqFeCWYJZiFqBWodajE+bVZtEAH0BRAB+AWQAfgFMSkxqbGpOSk5qbmpBAIxJAIxPAIxVAIzcAITcAIHcAIzcAIDEAIQmAoTGAIRHjEuMT6jqAYTrAYS3AYySAoxqAIxEWkR6ZHpHgU4AgMUAgcYAgdgAgUGPQZFFj0WRSY9JkU+PT5FSj1KRVY9VkVOmVKZIjEEAh0UAp9YAhNUAhE8Ahy4ChFkAhGgAZgJqAHIAeQJ7AoECdwB5ACCGIIcgiiCoIIMgi2MCbABzAHgAlQKAgQCTiIEgxSCBqACBkQOBlQOBlwOBmQOBAAAAnwOBAAAApQOBqQOBygOBAQOYB6QHsAC0ALYAuADKAAEDuAfEB74AxADIAKUDDRMAAQPRANEHxgPAA7oDwQPCAwAAmAO1AxUEgBUEiAAAABMEgQYEiBoEgRgEgCMEhhgEhjgEhjUEgDUEiAAAADMEgVYEiDoEgTgEgEMEhnQEjxYEhhAEhhAEiBUEhtgEiBYEiBcEiBgEhBgEiB4EiOgEiC0EiCMEhCMEiCMEiycEiCsEiGUFggUnBgAsAC0hLQAuIy0nBgBNIU2gTSNN1QZUBgAAAADBBlQG0gZUBigJPAkwCTwJMwk8CRUJACcBJwInBycMJw0nFicaJ74JCQAJGaEJvAmvCbwJMgo8CjgKPAoWCgAmASYGJisKPApHC1YLPgsJAAkZIQs8C5IL1wu+CwgACQAIGUYMVgy/DNUMxgzVDMIMBAAIEz4NCAAJAAgZ2Q3KDcoNDwUSAA8VTQ4yDs0Osg6ZDhIAEghCD7cPTA+3D1EPtw9WD7cPWw+3D0APtQ9xD3IPcQ8AA0EPsg+BD7MPgA+zD4EPcQ+AD5IPtw+cD7cPoQ+3D6YPtw+rD7cPkA+1DyUQLhAFGzUbAAAAAAcbNRsAAAAACRs1GwAAAAALGzUbAAAAAA0bNRsRGzUbOhs1GwAAAAA8GzUbPhs1G0IbNRtBAMYAQgAAAEQARQCOAUcATwAiAlAAUgBUAFUAVwBhAFACUQICHWIAZABlAFkCWwJcAmcAAABrAG0ASwFvAFQCFh0XHXAAdAB1AB0dbwJ2ACUdsgOzA7QDxgPHA2kAcgB1AHYAsgOzA8EDxgPHA1ICYwBVAvAAXAJmAF8CYQJlAmgCaQJqAnsdnQJtAoUdnwJxAnACcgJzAnQCdQJ4AoICgwKrAYkCigIcHYsCjAJ6AJACkQKSArgDQQClQgCHQgCjQgCxxwCBRACHRACjRACxRACnRACtEgGAEgGBRQCtRQCwKAKGRgCHRwCESACHSACjSACISACnSACuSQCwzwCBSwCBSwCjSwCxTACjNh6ETLFMrU2BTYdNo06HTqNOsU6t1QCB1QCITAGATAGBUACBUACHUgCHUgCjWh6EUgCxUwCHUwCjWgGHYAGHYh6HVACHVACjVACxVACtVQCkVQCwVQCtaAGBagGIVoNWo1eAV4FXiFeHV6NYh1iIWYdaglqjWrFosXSId4p5imEAvgJ/AYdBAKNBAInCAIHCAIDCAInCAIOgHoICAYECAYACAYkCAYOgHoZFAKNFAIlFAIPKAIHKAIDKAInKAIO4HoJJAIlJAKNPAKNPAInUAIHUAIDUAInUAIPMHoKgAYGgAYCgAYmgAYOgAaNVAKNVAImvAYGvAYCvAYmvAYOvAaNZAIBZAKNZAIlZAIOxAxMDAB+AAB+BAB/CkQMTAwgfgAgfgQgfwrUDEwMQH4AQH4GVAxMDGB+AGB+BtwOTtwOUIB+AIR+AIB+BIR+BIB/CIR/ClwOTlwOUKB+AKR+AKB+BKR+BKB/CKR/CuQOTuQOUMB+AMR+AMB+BMR+BMB/CMR/CmQOTmQOUOB+AOR+AOB+BOR+BOB/COR/CvwOTvwOUQB+AQB+BnwMTA0gfgEgfgcUDEwNQH4BQH4FQH8KlA5QAAABZH4AAAABZH4EAAABZH8LJA5PJA5RgH4BhH4BgH4FhH4FgH8JhH8KpA5OpA5RoH4BpH4BoH4FpH4FoH8JpH8KxA4C1A4C3A4C5A4C/A4DFA4DJA4AAH0UDIB9FA2AfRQOxA4axA4RwH8WxA8WsA8UAAACxA8K2H8WRA4aRA4SRA4CRA8UgkyCTIMKoAMJ0H8W3A8WuA8UAAAC3A8LGH8WVA4CXA4CXA8W/H4C/H4G/H8K5A4a5A4TKA4AAA7lCykKZBpkEmQD+H4D+H4H+H8LFA4bFA4TLA4AAA8ETwRTFQstCpQalBKUAoQOUqACAhQNgAHwfxckDxc4DxQAAAMkDwvYfxZ8DgKkDgKkDxSCUAiAgICAgICAgICAgsy4uLi4uMiAyIDIgAAAANSA1IDUgAAAAISEAACCFPz8/ISE/MiAAAAAAMGkAADQ1Njc4OSs9KCluMAArABIiPQAoACkAAABhAGUAbwB4AFkCaGtsbW5wc3RSc2EvY2Evc7AAQ2Mvb2MvdbAARkgAHwAAACDfAQEEJE5vUFFSUlJTTVRFTFRNSwDFAEJDAGVFRgBNb9AFRkFYwAOzA5MDoAMRIkRkZWlqMdA3MdA5MdAxMDHQMzLQMzHQNTLQNTPQNTTQNTHQNjXQNjHQODPQODXQODfQODHQSUlJSUlJVlZJVklJVklJSUlYWElYSUlMQ0RNaWlpaWlpaXZ2aXZpaXZpaWlpeHhpeGlpbGNkbTDQM5AhuJIhuJQhuNAhuNQhuNIhuAMiuAgiuAsiuCMiuAAAACUiuCsiKyIrIgAAAC4iLiIuIgAAADwiuEMiuEUiuAAAAEgiuD0AuAAAAGEiuE0iuDwAuD4AuGQiuGUiuHIiuHYiuHoiuIIiuIYiuKIiuKgiuKkiuKsiuHwiuJEiuLIiOAMIMDEAMQAwADIwKAAxACkAKAAxADAAKQAoMjApMQAuADEAMAAuADIwLigAYQApAEEAYQArIgAAAAA6Oj09PT09Pd0quGpWAE4AKDY/WYWMoLo/UQAmLENXbKG2wZtSAF56f52mwc7ntlPIU+NT11YfV+tYAlkKWRVZJ1lzWVBbgFv4Ww9cIlw4XG5ccVzbXeVd8V3+XXJeel5/XvRe/l4LXxNfUF9hX3Nfw18IYjZiS2IvZTRlh2WXZaRluWXgZeVl8GYIZyhnIGtia3lrs2vLa9Rr22sPbBRsNGxrcCpyNnI7cj9yR3JZcltyrHKEc4lz3HTmdBh1H3UodTB1i3WSdXZ2fXaudr927nbbd+J383c6ebh5vnl0est6+XpzfPh8Nn9Rf4p/vX8BgAyAEoAzgH+AiYDjgQAHEBkpODyLj5VNhmuGQIhMiGOIfomLidKJAIo3jEaMVYx4jJ2MZI1wjbONq47KjpuPsI+1j5GQSZHGkcyR0ZF3lYCVHJa2lrmW6JZRl16XYpdpl8uX7ZfzlwGYqJjbmN+YlpmZmayZqJrYmt+aJZsvmzKbPJtam+WcdZ5/nqWeABYeKCxUWGlue5alrej3+xIwAABBU0RTRVNLMJkwAAAAAE0wmTAAAAAATzCZMAAAAABRMJkwAAAAAFMwmTAAAAAAVTCZMAAAAABXMJkwAAAAAFkwmTAAAAAAWzCZMAAAAABdMJkwAAAAAF8wmTAAAAAAYTCZMGQwmTAAAAAAZjCZMAAAAABoMJkwbzCZMHIwmTB1MJkweDCZMHswmTBGMJkwIACZMJ0wmTCIMIowqzCZMAAAAACtMJkwAAAAAK8wmTAAAAAAsTCZMAAAAACzMJkwAAAAALUwmTAAAAAAtzCZMAAAAAC5MJkwAAAAALswmTAAAAAAvTCZMAAAAAC/MJkwAAAAAMEwmTDEMJkwAAAAAMYwmTAAAAAAyDCZMM8wmTDSMJkw1TCZMNgwmTDbMJkwpjCZMO8wmTD9MJkwszDIMAARAAGqAqytAwQFsLGys7S1GgYHCCEJEWERFBFMAAGztLi6v8PFCMnLCQoMDg8TFRcYGRobHiIsMzjd3kNERXBxdH1+gIqNAE6MTglO21YKTi1OC04ydVlOGU4BTilZMFe6TigAKQAAEQIRAxEFEQYRBxEJEQsRDBEOEQ8REBERERIRKAAAEWERKQAoAAIRYREpACgABRFhESkAKAAJEWERKQAoAAsRYREpACgADhFhESkAKAAMEW4RKQAoAAsRaREMEWURqxEpACgACxFpERIRbhEpACgAKQAAToxOCU7bVpRObVEDTmtRXU5BUwhna3A0bChn0ZEfV+VlKmgJZz55DVR5cqGMXXm0UuNOfFRmW+N2AU/HjFRTbXkRT+qB84FPVXxeh2WPe1BURTIAMQAzADAAABEAAgMFBgcJCwwODxAREgARAGECYQNhBWEGYQdhCWELYQxhDhFhEQARDmG3AGkLEQFjAGkLEW4RAE6MTglO21aUTm1RA05rUV1OQVMIZ2twNGwoZ9GRH1flZSpoCWc+eQ1UeXKhjF15tFLYeTd1c1lpkCpRcFPobAWYEU+ZUWNrCk4tTgtO5l3zUztTl1tmW+N2AU/HjFRTHFkzADYANAAwADUwMQAIZzEAMAAIZ0hnZXJnZVZMVESiMAACBAYICQsNDxETFRcZGx0fIiQmKCkqKywtMDM2OTw9Pj9AQkRGR0hJSktNTk9Q5E6MVKEwATBbJwFKNAABUjkBojAAWkmkMAAnTwykMABPHQIFT6gwABEHVCGoMABUA1SkMAZPFQZYPAcARqswAD4YHQBCP1GsMABBRwBHMq4wrDCuMAAdTq0wADg9TwE+E0+tMO0wrTAAQAM8M60wAEA0Txs+rTAAQEIWG7AwADkwpDAMRTwkTwtHGABJrzAAPk0esTAASwgCOhkCSyykMBEAC0e1MAA+DEcrsDAHOkMAuTACOggCOg8HQwC3MBAAEjQRPBMXpDAqHyQrACC7MBZBADgNxDANOADQMAAsHBuiMDIAFyZJrzAlADyzMCEAIDihMDQASCIoozAyAFklpzAvHBAARNUwABQerzApABBNPNowvTC4MCITGiAzDCI7ASJEACFEB6QwOQBPJMgwFCMA2zDzMMkwFCoAEjMiEjMqpDA6AAtJpDA6AEc6Hys6Rwu3MCc8ADA8rzAwAD5E3zDqMNAwDxoALBvhMKwwrDA1ABxHNVAcP6IwQlonQlpJRABRwzAnAAUo6jDpMNQwFwAo1jAVJgAV7DDgMLIwOkEWAEHDMCwABTAAuXAxADAAuXAyADAAuXBoUGFkYUFVYmFyb1ZwY2RtZABtALIASQBVAHNeEGItZoxUJ1ljaw5mu2wqaA9fGk8+eXAAQW4AQbwDQW0AQWsAQUsAQk0AQkcAQmNhbGtjYWxwAEZuAEa8A0a8A2dtAGdrAGdIAHprSHpNSHpHSHpUSHq8AxMhbQATIWQAEyFrABMhZgBtbgBtvANtbQBtYwBtawBtYwAKCk8ACk9tALIAYwAICk8KClAAClBtALMAawBtALMAbQAVInMAbQAVInMAsgBQYWtQYU1QYUdQYXJhZHJhZNFzcgBhAGQAFSJzALIAcABzbgBzvANzbQBzcABWbgBWvANWbQBWawBWTQBWcABXbgBXvANXbQBXawBXTQBXawCpA00AqQNhLm0uQnFjY2NkQ9FrZ0NvLmRCR3loYUhQaW5LS0tNa3RsbWxubG9nbHhtYm1pbG1vbFBIcC5tLlBQTVBSc3JTdldiVtFtQdFtMQDlZTEAMADlZTIAMADlZTMAMADlZWdhbEoETAQmAVMBJ6c3q2sCUqtIjPRmyo7IjNFuMk7lU5yfnJ9RWdGRh1VIWfZhaXaFfz+Guof4iI+QAmobbdlw3nM9hGqR8ZmCTnVTBGsbci2GHp5QXetvzYVkicli2IEfiMpeF2dqbfxyzpCGT7dR3lLEZNNqEHLndgGABoZchu+NMpdvm/qdjHh/eaB9yYMEk3+e1orfWARfYHx+gGJyynjCjPeW2FhiXBNq2m0Pby99N35LltJSi4DcUcxRHHq+ffGDdZaAi89iAmr+ijlO51sSYIdzcHUXU/t4v0+pXw1OzGx4ZSJ9w1NeWAF3SYSqirprsI+IbP5i5YKgY2V1rk5pUclRgWjnfG+C0orPkfVSQlRzWexexWX+byp5rZVqmpeezp6bUsZmd2tij3RekGEAYppkI29JcYl0ynn0fW+AJo/uhCOQSpMXUqNSvVTIcMKIqorJXvVfe2Ouaz58dXPkTvlW51u6XRxgsnNpdJp/RoA0kvaWSJcYmItPrnm0kbiW4WCGTtpQ7ls/XJllAmrOcUJ2/IR8kI2fiGYulolSe2fzZ0FtnG4JdFl1a3gQfV6YbVEuYniWK1AZXeptKo+LX0RhF2iHc4aWKVIPVGVcE2ZOZ6ho5WwGdOJ1eX/PiOGIzJHilj9Tum4dVNBxmHT6haOWV5yfnpdny23ogct6IHuSfMBymXBYi8BONoM6UgdSpl7TYtZ8hVsebbRmO49MiE2Wi4nTXkBRwFUAAAAAWlgAAHRmAAAAAN5RKnPKdjx5XnlleY95Vpe+fL1/AAAShgAA+IoAAAAAOJD9kO+Y/JgombSd3pC3lq5P51BNUclS5FJR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"; + if (!R.startsWith(Q)) { + var fa = R; + R = a.locateFile ? a.locateFile(fa, x) : x + fa; + } + function ha(b) { + try { + if (b == R && E) + return new Uint8Array(E); + var c = C(b); + if (c) + return c; + if (A) + return A(b); + throw "both async and sync fetching of the wasm failed"; + } catch (d) { + F(d); + } + } + function ia(b) { + if (!E && (u || v)) { + if ("function" == typeof fetch && !b.startsWith("file://")) + return fetch(b, { credentials: "same-origin" }).then(function(c) { + if (!c.ok) + throw "failed to load wasm binary file at '" + b + "'"; + return c.arrayBuffer(); + }).catch(function() { + return ha(b); + }); + if (z) + return new Promise(function(c, d) { + z(b, function(e) { + c(new Uint8Array(e)); + }, d); + }); + } + return Promise.resolve().then(function() { + return ha(b); + }); + } + function ja(b, c, d) { + return ia(b).then(function(e) { + return WebAssembly.instantiate(e, c); + }).then(function(e) { + return e; + }).then(d, function(e) { + D("failed to asynchronously prepare wasm: " + e); + F(e); + }); + } + function ka(b, c) { + var d = R; + return E || "function" != typeof WebAssembly.instantiateStreaming || d.startsWith(Q) || d.startsWith("file://") || w || "function" != typeof fetch ? ja(d, b, c) : fetch(d, { credentials: "same-origin" }).then(function(e) { + return WebAssembly.instantiateStreaming(e, b).then(c, function(f) { + D("wasm streaming compile failed: " + f); + D("falling back to ArrayBuffer instantiation"); + return ja(d, b, c); + }); + }); + } + function S(b) { + for (; 0 < b.length; ) + b.shift()(a); + } + var la = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0; + function na(b, c, d) { + var e = c + d; + for (d = c; b[d] && !(d >= e); ) + ++d; + if (16 < d - c && b.buffer && la) + return la.decode(b.subarray(c, d)); + for (e = ""; c < d; ) { + var f = b[c++]; + if (f & 128) { + var g = b[c++] & 63; + if (192 == (f & 224)) + e += String.fromCharCode((f & 31) << 6 | g); + else { + var h = b[c++] & 63; + f = 224 == (f & 240) ? (f & 15) << 12 | g << 6 | h : (f & 7) << 18 | g << 12 | h << 6 | b[c++] & 63; + 65536 > f ? e += String.fromCharCode(f) : (f -= 65536, e += String.fromCharCode(55296 | f >> 10, 56320 | f & 1023)); + } + } else + e += String.fromCharCode(f); + } + return e; + } + function T(b, c) { + return b ? na(J, b, c) : ""; + } + var oa = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335], pa = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + function U(b) { + for (var c = 0, d = 0; d < b.length; ++d) { + var e = b.charCodeAt(d); + 127 >= e ? c++ : 2047 >= e ? c += 2 : 55296 <= e && 57343 >= e ? (c += 4, ++d) : c += 3; + } + return c; + } + function V(b, c, d) { + var e = J; + if (!(0 < d)) + return 0; + var f = c; + d = c + d - 1; + for (var g = 0; g < b.length; ++g) { + var h = b.charCodeAt(g); + if (55296 <= h && 57343 >= h) { + var k = b.charCodeAt(++g); + h = 65536 + ((h & 1023) << 10) | k & 1023; + } + if (127 >= h) { + if (c >= d) + break; + e[c++] = h; + } else { + if (2047 >= h) { + if (c + 1 >= d) + break; + e[c++] = 192 | h >> 6; + } else { + if (65535 >= h) { + if (c + 2 >= d) + break; + e[c++] = 224 | h >> 12; + } else { + if (c + 3 >= d) + break; + e[c++] = 240 | h >> 18; + e[c++] = 128 | h >> 12 & 63; + } + e[c++] = 128 | h >> 6 & 63; + } + e[c++] = 128 | h & 63; + } + } + e[c] = 0; + return c - f; + } + function qa(b) { + var c = U(b) + 1, d = ra(c); + d && V(b, d, c); + return d; + } + var W = {}; + function sa() { + if (!X) { + var b = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: ("object" == typeof navigator && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", _: t || "./this.program" }, c; + for (c in W) + void 0 === W[c] ? delete b[c] : b[c] = W[c]; + var d = []; + for (c in b) + d.push(c + "=" + b[c]); + X = d; + } + return X; + } + var X, ta = [null, [], []]; + function ua(b, c, d, e) { + var f = { string: (l) => { + var q = 0; + if (null !== l && void 0 !== l && 0 !== l) { + q = U(l) + 1; + var ma = Y(q); + V(l, ma, q); + q = ma; + } + return q; + }, array: (l) => { + var q = Y(l.length); + I.set(l, q); + return q; + } }; + b = a["_" + b]; + var g = [], h = 0; + if (e) + for (var k = 0; k < e.length; k++) { + var r = f[d[k]]; + r ? (0 === h && (h = va()), g[k] = r(e[k])) : g[k] = e[k]; + } + d = b.apply(null, g); + return d = function(l) { + 0 !== h && wa(h); + return "string" === c ? T(l) : "boolean" === c ? !!l : l; + }(d); + } + var xa = "function" == typeof atob ? atob : function(b) { + var c = "", d = 0; + b = b.replace(/[^A-Za-z0-9\+\/=]/g, ""); + do { + var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(d++)); + var f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(d++)); + var g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(d++)); + var h = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(d++)); + e = e << 2 | f >> 4; + f = (f & 15) << 4 | g >> 2; + var k = (g & 3) << 6 | h; + c += String.fromCharCode(e); + 64 !== g && (c += String.fromCharCode(f)); + 64 !== h && (c += String.fromCharCode(k)); + } while (d < b.length); + return c; + }; + function C(b) { + if (b.startsWith(Q)) { + b = b.slice(Q.length); + if ("boolean" == typeof w && w) { + var c = Buffer.from(b, "base64"); + c = new Uint8Array(c.buffer, c.byteOffset, c.byteLength); + } else + try { + var d = xa(b), e = new Uint8Array(d.length); + for (b = 0; b < d.length; ++b) + e[b] = d.charCodeAt(b); + c = e; + } catch (f) { + throw Error("Converting base64 string to bytes failed."); + } + return c; + } + } + var ya = { + a: function(b, c, d, e) { + F("Assertion failed: " + T(b) + ", at: " + [c ? T(c) : "unknown filename", d, e ? T(e) : "unknown function"]); + }, + l: function(b, c) { + b = new Date(1e3 * (L[b >> 2] + 4294967296 * K[b + 4 >> 2])); + K[c >> 2] = b.getSeconds(); + K[c + 4 >> 2] = b.getMinutes(); + K[c + 8 >> 2] = b.getHours(); + K[c + 12 >> 2] = b.getDate(); + K[c + 16 >> 2] = b.getMonth(); + K[c + 20 >> 2] = b.getFullYear() - 1900; + K[c + 24 >> 2] = b.getDay(); + var d = b.getFullYear(); + K[c + 28 >> 2] = (0 !== d % 4 || 0 === d % 100 && 0 !== d % 400 ? pa : oa)[b.getMonth()] + b.getDate() - 1 | 0; + K[c + 36 >> 2] = -(60 * b.getTimezoneOffset()); + d = new Date(b.getFullYear(), 6, 1).getTimezoneOffset(); + var e = new Date(b.getFullYear(), 0, 1).getTimezoneOffset(); + K[c + 32 >> 2] = (d != e && b.getTimezoneOffset() == Math.min(e, d)) | 0; + }, + k: function(b, c, d) { + function e(r) { + return (r = r.toTimeString().match(/\(([A-Za-z ]+)\)$/)) ? r[1] : "GMT"; + } + var f = (/* @__PURE__ */ new Date()).getFullYear(), g = new Date(f, 0, 1), h = new Date(f, 6, 1); + f = g.getTimezoneOffset(); + var k = h.getTimezoneOffset(); + L[b >> 2] = 60 * Math.max(f, k); + K[c >> 2] = Number(f != k); + b = e(g); + c = e(h); + b = qa(b); + c = qa(c); + k < f ? (L[d >> 2] = b, L[d + 4 >> 2] = c) : (L[d >> 2] = c, L[d + 4 >> 2] = b); + }, + b: function() { + F(""); + }, + m: function() { + return Date.now(); + }, + j: function(b) { + var c = J.length; + b >>>= 0; + if (2147483648 < b) + return false; + for (var d = 1; 4 >= d; d *= 2) { + var e = c * (1 + 0.2 / d); + e = Math.min(e, b + 100663296); + var f = Math, g = f.min; + e = Math.max(b, e); + e += (65536 - e % 65536) % 65536; + a: { + var h = G.buffer; + try { + G.grow(g.call(f, 2147483648, e) - h.byteLength + 65535 >>> 16); + M(); + var k = 1; + break a; + } catch (r) { + } + k = void 0; + } + if (k) + return true; + } + return false; + }, + e: function(b, c) { + var d = 0; + sa().forEach(function(e, f) { + var g = c + d; + f = L[b + 4 * f >> 2] = g; + for (g = 0; g < e.length; ++g) + I[f++ >> 0] = e.charCodeAt(g); + I[f >> 0] = 0; + d += e.length + 1; + }); + return 0; + }, + f: function(b, c) { + var d = sa(); + L[b >> 2] = d.length; + var e = 0; + d.forEach(function(f) { + e += f.length + 1; + }); + L[c >> 2] = e; + return 0; + }, + d: function() { + return 52; + }, + i: function() { + return 70; + }, + c: function(b, c, d, e) { + for (var f = 0, g = 0; g < d; g++) { + var h = L[c >> 2], k = L[c + 4 >> 2]; + c += 8; + for (var r = 0; r < k; r++) { + var l = J[h + r], q = ta[b]; + 0 === l || 10 === l ? ((1 === b ? aa : D)(na(q, 0)), q.length = 0) : q.push(l); + } + f += k; + } + L[e >> 2] = f; + return 0; + }, + o: function(b, c, d, e, f) { + return a.callbacks.callFunction(void 0, b, c, d, e, f); + }, + n: function(b) { + return a.callbacks.shouldInterrupt(void 0, b); + }, + h: function(b, c, d) { + d = T(d); + return a.callbacks.loadModuleSource(void 0, b, c, d); + }, + g: function(b, c, d, e) { + d = T(d); + e = T(e); + return a.callbacks.normalizeModule(void 0, b, c, d, e); + } + }; + (function() { + function b(d) { + d = d.exports; + a.asm = d; + G = a.asm.p; + M(); + ca.unshift(a.asm.q); + N--; + a.monitorRunDependencies && a.monitorRunDependencies(N); + if (0 == N && (null !== O && (clearInterval(O), O = null), P)) { + var e = P; + P = null; + e(); + } + return d; + } + var c = { a: ya }; + N++; + a.monitorRunDependencies && a.monitorRunDependencies(N); + if (a.instantiateWasm) + try { + return a.instantiateWasm(c, b); + } catch (d) { + D("Module.instantiateWasm callback failed with error: " + d), n(d); + } + ka(c, function(d) { + b(d.instance); + }).catch(n); + return {}; + })(); + var ra = a._malloc = function() { + return (ra = a._malloc = a.asm.r).apply(null, arguments); + }; + a._QTS_Throw = function() { + return (a._QTS_Throw = a.asm.s).apply(null, arguments); + }; + a._QTS_NewError = function() { + return (a._QTS_NewError = a.asm.t).apply(null, arguments); + }; + a._QTS_RuntimeSetMemoryLimit = function() { + return (a._QTS_RuntimeSetMemoryLimit = a.asm.u).apply(null, arguments); + }; + a._QTS_RuntimeComputeMemoryUsage = function() { + return (a._QTS_RuntimeComputeMemoryUsage = a.asm.v).apply(null, arguments); + }; + a._QTS_RuntimeDumpMemoryUsage = function() { + return (a._QTS_RuntimeDumpMemoryUsage = a.asm.w).apply(null, arguments); + }; + a._QTS_RecoverableLeakCheck = function() { + return (a._QTS_RecoverableLeakCheck = a.asm.x).apply(null, arguments); + }; + a._QTS_BuildIsSanitizeLeak = function() { + return (a._QTS_BuildIsSanitizeLeak = a.asm.y).apply(null, arguments); + }; + a._QTS_RuntimeSetMaxStackSize = function() { + return (a._QTS_RuntimeSetMaxStackSize = a.asm.z).apply(null, arguments); + }; + a._QTS_GetUndefined = function() { + return (a._QTS_GetUndefined = a.asm.A).apply(null, arguments); + }; + a._QTS_GetNull = function() { + return (a._QTS_GetNull = a.asm.B).apply(null, arguments); + }; + a._QTS_GetFalse = function() { + return (a._QTS_GetFalse = a.asm.C).apply(null, arguments); + }; + a._QTS_GetTrue = function() { + return (a._QTS_GetTrue = a.asm.D).apply(null, arguments); + }; + a._QTS_NewRuntime = function() { + return (a._QTS_NewRuntime = a.asm.E).apply(null, arguments); + }; + a._QTS_FreeRuntime = function() { + return (a._QTS_FreeRuntime = a.asm.F).apply(null, arguments); + }; + a._QTS_NewContext = function() { + return (a._QTS_NewContext = a.asm.G).apply(null, arguments); + }; + a._QTS_FreeContext = function() { + return (a._QTS_FreeContext = a.asm.H).apply(null, arguments); + }; + a._QTS_FreeValuePointer = function() { + return (a._QTS_FreeValuePointer = a.asm.I).apply(null, arguments); + }; + a._free = function() { + return (a._free = a.asm.J).apply(null, arguments); + }; + a._QTS_FreeValuePointerRuntime = function() { + return (a._QTS_FreeValuePointerRuntime = a.asm.K).apply(null, arguments); + }; + a._QTS_FreeVoidPointer = function() { + return (a._QTS_FreeVoidPointer = a.asm.L).apply(null, arguments); + }; + a._QTS_FreeCString = function() { + return (a._QTS_FreeCString = a.asm.M).apply(null, arguments); + }; + a._QTS_DupValuePointer = function() { + return (a._QTS_DupValuePointer = a.asm.N).apply(null, arguments); + }; + a._QTS_NewObject = function() { + return (a._QTS_NewObject = a.asm.O).apply(null, arguments); + }; + a._QTS_NewObjectProto = function() { + return (a._QTS_NewObjectProto = a.asm.P).apply(null, arguments); + }; + a._QTS_NewArray = function() { + return (a._QTS_NewArray = a.asm.Q).apply(null, arguments); + }; + a._QTS_NewFloat64 = function() { + return (a._QTS_NewFloat64 = a.asm.R).apply(null, arguments); + }; + a._QTS_GetFloat64 = function() { + return (a._QTS_GetFloat64 = a.asm.S).apply(null, arguments); + }; + a._QTS_NewString = function() { + return (a._QTS_NewString = a.asm.T).apply(null, arguments); + }; + a._QTS_GetString = function() { + return (a._QTS_GetString = a.asm.U).apply(null, arguments); + }; + a._QTS_NewSymbol = function() { + return (a._QTS_NewSymbol = a.asm.V).apply(null, arguments); + }; + a._QTS_GetSymbolDescriptionOrKey = function() { + return (a._QTS_GetSymbolDescriptionOrKey = a.asm.W).apply(null, arguments); + }; + a._QTS_IsGlobalSymbol = function() { + return (a._QTS_IsGlobalSymbol = a.asm.X).apply(null, arguments); + }; + a._QTS_IsJobPending = function() { + return (a._QTS_IsJobPending = a.asm.Y).apply(null, arguments); + }; + a._QTS_ExecutePendingJob = function() { + return (a._QTS_ExecutePendingJob = a.asm.Z).apply(null, arguments); + }; + a._QTS_GetProp = function() { + return (a._QTS_GetProp = a.asm._).apply(null, arguments); + }; + a._QTS_SetProp = function() { + return (a._QTS_SetProp = a.asm.$).apply(null, arguments); + }; + a._QTS_DefineProp = function() { + return (a._QTS_DefineProp = a.asm.aa).apply(null, arguments); + }; + a._QTS_Call = function() { + return (a._QTS_Call = a.asm.ba).apply(null, arguments); + }; + a._QTS_ResolveException = function() { + return (a._QTS_ResolveException = a.asm.ca).apply(null, arguments); + }; + a._QTS_Dump = function() { + return (a._QTS_Dump = a.asm.da).apply(null, arguments); + }; + a._QTS_Eval = function() { + return (a._QTS_Eval = a.asm.ea).apply(null, arguments); + }; + a._QTS_Typeof = function() { + return (a._QTS_Typeof = a.asm.fa).apply(null, arguments); + }; + a._QTS_GetGlobalObject = function() { + return (a._QTS_GetGlobalObject = a.asm.ga).apply(null, arguments); + }; + a._QTS_NewPromiseCapability = function() { + return (a._QTS_NewPromiseCapability = a.asm.ha).apply(null, arguments); + }; + a._QTS_TestStringArg = function() { + return (a._QTS_TestStringArg = a.asm.ia).apply(null, arguments); + }; + a._QTS_BuildIsDebug = function() { + return (a._QTS_BuildIsDebug = a.asm.ja).apply(null, arguments); + }; + a._QTS_BuildIsAsyncify = function() { + return (a._QTS_BuildIsAsyncify = a.asm.ka).apply(null, arguments); + }; + a._QTS_NewFunction = function() { + return (a._QTS_NewFunction = a.asm.la).apply(null, arguments); + }; + a._QTS_ArgvGetJSValueConstPointer = function() { + return (a._QTS_ArgvGetJSValueConstPointer = a.asm.ma).apply(null, arguments); + }; + a._QTS_RuntimeEnableInterruptHandler = function() { + return (a._QTS_RuntimeEnableInterruptHandler = a.asm.na).apply(null, arguments); + }; + a._QTS_RuntimeDisableInterruptHandler = function() { + return (a._QTS_RuntimeDisableInterruptHandler = a.asm.oa).apply(null, arguments); + }; + a._QTS_RuntimeEnableModuleLoader = function() { + return (a._QTS_RuntimeEnableModuleLoader = a.asm.pa).apply(null, arguments); + }; + a._QTS_RuntimeDisableModuleLoader = function() { + return (a._QTS_RuntimeDisableModuleLoader = a.asm.qa).apply(null, arguments); + }; + function va() { + return (va = a.asm.sa).apply(null, arguments); + } + function wa() { + return (wa = a.asm.ta).apply(null, arguments); + } + function Y() { + return (Y = a.asm.ua).apply(null, arguments); + } + a.___start_em_js = 74916; + a.___stop_em_js = 75818; + a.cwrap = function(b, c, d, e) { + var f = !d || d.every((g) => "number" === g || "boolean" === g); + return "string" !== c && f && !e ? a["_" + b] : function() { + return ua(b, c, d, arguments); + }; + }; + a.UTF8ToString = T; + a.stringToUTF8 = function(b, c, d) { + return V(b, c, d); + }; + a.lengthBytesUTF8 = U; + var Z; + P = function za() { + Z || Aa(); + Z || (P = za); + }; + function Aa() { + function b() { + if (!Z && (Z = true, a.calledRun = true, !H)) { + S(ca); + m(a); + if (a.onRuntimeInitialized) + a.onRuntimeInitialized(); + if (a.postRun) + for ("function" == typeof a.postRun && (a.postRun = [a.postRun]); a.postRun.length; ) { + var c = a.postRun.shift(); + da.unshift(c); + } + S(da); + } + } + if (!(0 < N)) { + if (a.preRun) + for ("function" == typeof a.preRun && (a.preRun = [a.preRun]); a.preRun.length; ) + ea(); + S(ba); + 0 < N || (a.setStatus ? (a.setStatus("Running..."), setTimeout(function() { + setTimeout(function() { + a.setStatus(""); + }, 1); + b(); + }, 1)) : b()); + } + } + if (a.preInit) + for ("function" == typeof a.preInit && (a.preInit = [a.preInit]); 0 < a.preInit.length; ) + a.preInit.pop()(); + Aa(); + return QuickJSRaw2.ready; + }; + })(); + if (typeof exports === "object" && typeof module2 === "object") + module2.exports = QuickJSRaw; + else if (typeof define === "function" && define["amd"]) + define([], function() { + return QuickJSRaw; + }); + else if (typeof exports === "object") + exports["QuickJSRaw"] = QuickJSRaw; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/variants.js +var require_variants = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/variants.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.RELEASE_ASYNC = exports.DEBUG_ASYNC = exports.RELEASE_SYNC = exports.DEBUG_SYNC = exports.memoizePromiseFactory = exports.newQuickJSAsyncWASMModule = exports.newQuickJSWASMModule = void 0; + var esmHelpers_1 = require_esmHelpers(); + async function newQuickJSWASMModule(variant = exports.RELEASE_SYNC) { + const [wasmModuleLoader, QuickJSFFI, { QuickJSWASMModule }] = await Promise.all([ + variant.importModuleLoader(), + variant.importFFI(), + Promise.resolve().then(() => __importStar2(require_module())).then(esmHelpers_1.unwrapTypescript) + ]); + const wasmModule = await wasmModuleLoader(); + wasmModule.type = "sync"; + const ffi = new QuickJSFFI(wasmModule); + return new QuickJSWASMModule(wasmModule, ffi); + } + exports.newQuickJSWASMModule = newQuickJSWASMModule; + async function newQuickJSAsyncWASMModule(variant = exports.RELEASE_ASYNC) { + const [wasmModuleLoader, QuickJSAsyncFFI, { QuickJSAsyncWASMModule }] = await Promise.all([ + variant.importModuleLoader(), + variant.importFFI(), + Promise.resolve().then(() => __importStar2(require_module_asyncify())).then(esmHelpers_1.unwrapTypescript) + ]); + const wasmModule = await wasmModuleLoader(); + wasmModule.type = "async"; + const ffi = new QuickJSAsyncFFI(wasmModule); + return new QuickJSAsyncWASMModule(wasmModule, ffi); + } + exports.newQuickJSAsyncWASMModule = newQuickJSAsyncWASMModule; + function memoizePromiseFactory(fn2) { + let promise; + return () => { + return promise ?? (promise = fn2()); + }; + } + exports.memoizePromiseFactory = memoizePromiseFactory; + exports.DEBUG_SYNC = { + type: "sync", + async importFFI() { + throw new Error("not implemented"); + }, + async importModuleLoader() { + throw new Error("not implemented"); + } + }; + exports.RELEASE_SYNC = { + type: "sync", + async importFFI() { + const mod = await Promise.resolve().then(() => __importStar2(require_ffi_WASM_RELEASE_SYNC())); + return (0, esmHelpers_1.unwrapTypescript)(mod).QuickJSFFI; + }, + async importModuleLoader() { + const mod = await Promise.resolve().then(() => __importStar2(require_emscripten_module_WASM_RELEASE_SYNC())); + return (0, esmHelpers_1.unwrapJavascript)(mod); + } + }; + exports.DEBUG_ASYNC = { + type: "async", + async importFFI() { + throw new Error("not implemented"); + }, + async importModuleLoader() { + throw new Error("not implemented"); + } + }; + exports.RELEASE_ASYNC = { + type: "async", + async importFFI() { + throw new Error("not implemented"); + }, + async importModuleLoader() { + throw new Error("not implemented"); + } + }; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/vm-interface.js +var require_vm_interface = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/vm-interface.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFail = exports.isSuccess = void 0; + function isSuccess(successOrFail) { + return "error" in successOrFail === false; + } + exports.isSuccess = isSuccess; + function isFail(successOrFail) { + return "error" in successOrFail === true; + } + exports.isFail = isFail; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module-test.js +var require_module_test = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/module-test.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.TestQuickJSWASMModule = void 0; + var errors_1 = require_errors(); + var lifetime_1 = require_lifetime(); + var TestQuickJSWASMModule = class { + constructor(parent) { + this.parent = parent; + this.contexts = /* @__PURE__ */ new Set(); + this.runtimes = /* @__PURE__ */ new Set(); + } + newRuntime(options) { + const runtime = this.parent.newRuntime({ + ...options, + ownedLifetimes: [ + new lifetime_1.Lifetime(void 0, void 0, () => this.runtimes.delete(runtime)), + ...options?.ownedLifetimes ?? [] + ] + }); + this.runtimes.add(runtime); + return runtime; + } + newContext(options) { + const context = this.parent.newContext({ + ...options, + ownedLifetimes: [ + new lifetime_1.Lifetime(void 0, void 0, () => this.contexts.delete(context)), + ...options?.ownedLifetimes ?? [] + ] + }); + this.contexts.add(context); + return context; + } + evalCode(code, options) { + return this.parent.evalCode(code, options); + } + disposeAll() { + const allDisposables = [...this.contexts, ...this.runtimes]; + this.runtimes.clear(); + this.contexts.clear(); + allDisposables.forEach((d) => { + if (d.alive) { + d.dispose(); + } + }); + } + assertNoMemoryAllocated() { + const leaksDetected = this.getFFI().QTS_RecoverableLeakCheck(); + if (leaksDetected) { + throw new errors_1.QuickJSMemoryLeakDetected("Leak sanitizer detected un-freed memory"); + } + if (this.contexts.size > 0) { + throw new errors_1.QuickJSMemoryLeakDetected(`${this.contexts.size} contexts leaked`); + } + if (this.runtimes.size > 0) { + throw new errors_1.QuickJSMemoryLeakDetected(`${this.runtimes.size} runtimes leaked`); + } + } + /** @private */ + getFFI() { + return this.parent.getFFI(); + } + }; + exports.TestQuickJSWASMModule = TestQuickJSWASMModule; + } +}); + +// .yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/index.js +var require_dist10 = __commonJS({ + ".yarn/unplugged/@tootallnate-quickjs-emscripten-npm-0.23.0-a889ea7aeb/node_modules/@tootallnate/quickjs-emscripten/dist/index.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __exportStar2 = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) + __createBinding2(exports2, m, p); + }; + var __importStar2 = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.shouldInterruptAfterDeadline = exports.newAsyncContext = exports.newAsyncRuntime = exports.getQuickJSSync = exports.getQuickJS = exports.errors = exports.RELEASE_SYNC = exports.RELEASE_ASYNC = exports.DEBUG_SYNC = exports.DEBUG_ASYNC = exports.newQuickJSAsyncWASMModule = exports.newQuickJSWASMModule = void 0; + var variants_1 = require_variants(); + Object.defineProperty(exports, "newQuickJSWASMModule", { enumerable: true, get: function() { + return variants_1.newQuickJSWASMModule; + } }); + Object.defineProperty(exports, "newQuickJSAsyncWASMModule", { enumerable: true, get: function() { + return variants_1.newQuickJSAsyncWASMModule; + } }); + Object.defineProperty(exports, "DEBUG_ASYNC", { enumerable: true, get: function() { + return variants_1.DEBUG_ASYNC; + } }); + Object.defineProperty(exports, "DEBUG_SYNC", { enumerable: true, get: function() { + return variants_1.DEBUG_SYNC; + } }); + Object.defineProperty(exports, "RELEASE_ASYNC", { enumerable: true, get: function() { + return variants_1.RELEASE_ASYNC; + } }); + Object.defineProperty(exports, "RELEASE_SYNC", { enumerable: true, get: function() { + return variants_1.RELEASE_SYNC; + } }); + __exportStar2(require_vm_interface(), exports); + __exportStar2(require_lifetime(), exports); + exports.errors = __importStar2(require_errors()); + __exportStar2(require_deferred_promise(), exports); + __exportStar2(require_module_test(), exports); + var singleton = void 0; + var singletonPromise = void 0; + async function getQuickJS() { + singletonPromise ?? (singletonPromise = (0, variants_1.newQuickJSWASMModule)().then((instance) => { + singleton = instance; + return instance; + })); + return await singletonPromise; + } + exports.getQuickJS = getQuickJS; + function getQuickJSSync() { + if (!singleton) { + throw new Error("QuickJS not initialized. Await getQuickJS() at least once."); + } + return singleton; + } + exports.getQuickJSSync = getQuickJSSync; + async function newAsyncRuntime(options) { + const module3 = await (0, variants_1.newQuickJSAsyncWASMModule)(); + return module3.newRuntime(options); + } + exports.newAsyncRuntime = newAsyncRuntime; + async function newAsyncContext(options) { + const module3 = await (0, variants_1.newQuickJSAsyncWASMModule)(); + return module3.newContext(options); + } + exports.newAsyncContext = newAsyncContext; + function shouldInterruptAfterDeadline(deadline) { + const deadlineAsNumber = typeof deadline === "number" ? deadline : deadline.getTime(); + return function() { + return Date.now() > deadlineAsNumber; + }; + } + exports.shouldInterruptAfterDeadline = shouldInterruptAfterDeadline; + } +}); + +// .yarn/cache/pac-proxy-agent-npm-7.0.1-8d7216fff5-95b07e2a40.zip/node_modules/pac-proxy-agent/dist/index.js +var require_dist11 = __commonJS({ + ".yarn/cache/pac-proxy-agent-npm-7.0.1-8d7216fff5-95b07e2a40.zip/node_modules/pac-proxy-agent/dist/index.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.PacProxyAgent = void 0; + var net = __importStar2(require("net")); + var tls = __importStar2(require("tls")); + var crypto = __importStar2(require("crypto")); + var events_1 = require("events"); + var debug_1 = __importDefault2(require_src2()); + var url_1 = require("url"); + var agent_base_1 = require_dist(); + var http_proxy_agent_1 = require_dist2(); + var https_proxy_agent_1 = require_dist3(); + var socks_proxy_agent_1 = require_dist4(); + var get_uri_1 = require_dist7(); + var pac_resolver_1 = require_dist9(); + var quickjs_emscripten_1 = require_dist10(); + var debug2 = (0, debug_1.default)("pac-proxy-agent"); + var PacProxyAgent = class extends agent_base_1.Agent { + constructor(uri, opts) { + super(opts); + this.clearResolverPromise = () => { + this.resolverPromise = void 0; + }; + const uriStr = typeof uri === "string" ? uri : uri.href; + this.uri = new url_1.URL(uriStr.replace(/^pac\+/i, "")); + debug2("Creating PacProxyAgent with URI %o", this.uri.href); + this.opts = { ...opts }; + this.cache = void 0; + this.resolver = void 0; + this.resolverHash = ""; + this.resolverPromise = void 0; + if (!this.opts.filename) { + this.opts.filename = this.uri.href; + } + } + /** + * Loads the PAC proxy file from the source if necessary, and returns + * a generated `FindProxyForURL()` resolver function to use. + * + * @api private + */ + getResolver() { + if (!this.resolverPromise) { + this.resolverPromise = this.loadResolver(); + this.resolverPromise.then(this.clearResolverPromise, this.clearResolverPromise); + } + return this.resolverPromise; + } + async loadResolver() { + try { + const [qjs, code] = await Promise.all([ + (0, quickjs_emscripten_1.getQuickJS)(), + this.loadPacFile() + ]); + const hash = crypto.createHash("sha1").update(code).digest("hex"); + if (this.resolver && this.resolverHash === hash) { + debug2("Same sha1 hash for code - contents have not changed, reusing previous proxy resolver"); + return this.resolver; + } + debug2("Creating new proxy resolver instance"); + this.resolver = (0, pac_resolver_1.createPacResolver)(qjs, code, this.opts); + this.resolverHash = hash; + return this.resolver; + } catch (err) { + if (this.resolver && err.code === "ENOTMODIFIED") { + debug2("Got ENOTMODIFIED response, reusing previous proxy resolver"); + return this.resolver; + } + throw err; + } + } + /** + * Loads the contents of the PAC proxy file. + * + * @api private + */ + async loadPacFile() { + debug2("Loading PAC file: %o", this.uri); + const rs = await (0, get_uri_1.getUri)(this.uri, { ...this.opts, cache: this.cache }); + debug2("Got `Readable` instance for URI"); + this.cache = rs; + const buf = await (0, agent_base_1.toBuffer)(rs); + debug2("Read %o byte PAC file from URI", buf.length); + return buf.toString("utf8"); + } + /** + * Called when the node-core HTTP client library is creating a new HTTP request. + */ + async connect(req, opts) { + const { secureEndpoint } = opts; + const resolver = await this.getResolver(); + const defaultPort = secureEndpoint ? 443 : 80; + let path10 = req.path; + let search = null; + const firstQuestion = path10.indexOf("?"); + if (firstQuestion !== -1) { + search = path10.substring(firstQuestion); + path10 = path10.substring(0, firstQuestion); + } + const urlOpts = { + ...opts, + protocol: secureEndpoint ? "https:" : "http:", + pathname: path10, + search, + // need to use `hostname` instead of `host` otherwise `port` is ignored + hostname: opts.host, + host: null, + href: null, + // set `port` to null when it is the protocol default port (80 / 443) + port: defaultPort === opts.port ? null : opts.port + }; + const url = (0, url_1.format)(urlOpts); + debug2("url: %o", url); + let result = await resolver(url); + if (!result) { + result = "DIRECT"; + } + const proxies = String(result).trim().split(/\s*;\s*/g).filter(Boolean); + if (this.opts.fallbackToDirect && !proxies.includes("DIRECT")) { + proxies.push("DIRECT"); + } + for (const proxy of proxies) { + let agent = null; + let socket = null; + const [type, target] = proxy.split(/\s+/); + debug2("Attempting to use proxy: %o", proxy); + if (type === "DIRECT") { + if (secureEndpoint) { + const servername = opts.servername || opts.host; + socket = tls.connect({ + ...opts, + servername: !servername || net.isIP(servername) ? void 0 : servername + }); + } else { + socket = net.connect(opts); + } + } else if (type === "SOCKS" || type === "SOCKS5") { + agent = new socks_proxy_agent_1.SocksProxyAgent(`socks://${target}`, this.opts); + } else if (type === "SOCKS4") { + agent = new socks_proxy_agent_1.SocksProxyAgent(`socks4a://${target}`, this.opts); + } else if (type === "PROXY" || type === "HTTP" || type === "HTTPS") { + const proxyURL = `${type === "HTTPS" ? "https" : "http"}://${target}`; + if (secureEndpoint) { + agent = new https_proxy_agent_1.HttpsProxyAgent(proxyURL, this.opts); + } else { + agent = new http_proxy_agent_1.HttpProxyAgent(proxyURL, this.opts); + } + } + try { + if (socket) { + await (0, events_1.once)(socket, "connect"); + req.emit("proxy", { proxy, socket }); + return socket; + } + if (agent) { + const s = await agent.connect(req, opts); + if (!(s instanceof net.Socket)) { + throw new Error("Expected a `net.Socket` to be returned from agent"); + } + req.emit("proxy", { proxy, socket: s }); + return s; + } + throw new Error(`Could not determine proxy type for: ${proxy}`); + } catch (err) { + debug2("Got error for proxy %o: %o", proxy, err); + req.emit("proxy", { proxy, error: err }); + } + } + throw new Error(`Failed to establish a socket connection to proxies: ${JSON.stringify(proxies)}`); + } + }; + PacProxyAgent.protocols = [ + "pac+data", + "pac+file", + "pac+ftp", + "pac+http", + "pac+https" + ]; + exports.PacProxyAgent = PacProxyAgent; + } +}); + +// .yarn/cache/proxy-agent-npm-6.3.1-b14461a822-72532eeae5.zip/node_modules/proxy-agent/dist/index.js +var require_dist12 = __commonJS({ + ".yarn/cache/proxy-agent-npm-6.3.1-b14461a822-72532eeae5.zip/node_modules/proxy-agent/dist/index.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding2(result, mod, k); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyAgent = exports.proxies = void 0; var http = __importStar2(require("http")); var https = __importStar2(require("https")); + var url_1 = require("url"); var lru_cache_1 = __importDefault2(require_lru_cache2()); var agent_base_1 = require_dist(); var debug_1 = __importDefault2(require_src2()); var proxy_from_env_1 = require_proxy_from_env(); - var pac_proxy_agent_1 = require_dist10(); + var pac_proxy_agent_1 = require_dist11(); var http_proxy_agent_1 = require_dist2(); var https_proxy_agent_1 = require_dist3(); var socks_proxy_agent_1 = require_dist4(); @@ -30402,7 +33520,7 @@ var require_dist11 = __commonJS({ const isWebSocket = req.getHeader("upgrade") === "websocket"; const protocol = secureEndpoint ? isWebSocket ? "wss:" : "https:" : isWebSocket ? "ws:" : "http:"; const host = req.getHeader("host"); - const url = new URL(req.path, `${protocol}//${host}`).href; + const url = new url_1.URL(req.path, `${protocol}//${host}`).href; const proxy = this.getProxyForUrl(url); if (!proxy) { debug2("Proxy not enabled for URL: %o", url); @@ -30413,7 +33531,7 @@ var require_dist11 = __commonJS({ const cacheKey = `${protocol}+${proxy}`; let agent = this.cache.get(cacheKey); if (!agent) { - const proxyUrl = new URL(proxy); + const proxyUrl = new url_1.URL(proxy); const proxyProto = proxyUrl.protocol.replace(":", ""); if (!isValidProtocol(proxyProto)) { throw new Error(`Unsupported protocol for proxy URL: ${proxy}`); @@ -30437,9 +33555,9 @@ var require_dist11 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/high-level-opt.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/high-level-opt.js var require_high_level_opt = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/high-level-opt.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/high-level-opt.js"(exports, module2) { "use strict"; var argmap = /* @__PURE__ */ new Map([ ["C", "cwd"], @@ -30548,7 +33666,7 @@ var require_minipass = __commonJS({ src.on("error", this.proxyErrors); } }; - var Minipass = class extends Stream { + var Minipass = class _Minipass extends Stream { constructor(options) { super(); this[FLOWING] = false; @@ -31067,7 +34185,7 @@ var require_minipass = __commonJS({ return this; } static isStream(s) { - return !!s && (s instanceof Minipass || s instanceof Stream || s instanceof EE && // readable + return !!s && (s instanceof _Minipass || s instanceof Stream || s instanceof EE && // readable (typeof s.pipe === "function" || // writable typeof s.write === "function" && typeof s.end === "function")); } @@ -31980,17 +35098,17 @@ var require_minizlib = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-windows-path.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-windows-path.js var require_normalize_windows_path = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-windows-path.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-windows-path.js"(exports, module2) { var platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; module2.exports = platform !== "win32" ? (p) => p : (p) => p && p.replace(/\\/g, "/"); } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/read-entry.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/read-entry.js var require_read_entry = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/read-entry.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/read-entry.js"(exports, module2) { "use strict"; var { Minipass } = require_minipass(); var normPath = require_normalize_windows_path(); @@ -32082,9 +35200,9 @@ var require_read_entry = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/types.js -var require_types2 = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/types.js"(exports) { +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/types.js +var require_types3 = __commonJS({ + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/types.js"(exports) { "use strict"; exports.name = /* @__PURE__ */ new Map([ ["0", "File"], @@ -32129,9 +35247,9 @@ var require_types2 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/large-numbers.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/large-numbers.js var require_large_numbers = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/large-numbers.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/large-numbers.js"(exports, module2) { "use strict"; var encode = (num, buf) => { if (!Number.isSafeInteger(num)) { @@ -32219,11 +35337,11 @@ var require_large_numbers = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/header.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/header.js var require_header = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/header.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/header.js"(exports, module2) { "use strict"; - var types = require_types2(); + var types = require_types3(); var pathModule = require("path").posix; var large = require_large_numbers(); var SLURP = Symbol("slurp"); @@ -32439,9 +35557,9 @@ var require_header = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pax.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pax.js var require_pax = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pax.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pax.js"(exports, module2) { "use strict"; var Header = require_header(); var path10 = require("path"); @@ -32540,9 +35658,9 @@ var require_pax = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-trailing-slashes.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-trailing-slashes.js var require_strip_trailing_slashes = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-trailing-slashes.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-trailing-slashes.js"(exports, module2) { module2.exports = (str) => { let i = str.length - 1; let slashesStart = -1; @@ -32555,9 +35673,9 @@ var require_strip_trailing_slashes = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/warn-mixin.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/warn-mixin.js var require_warn_mixin = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/warn-mixin.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/warn-mixin.js"(exports, module2) { "use strict"; module2.exports = (Base) => class extends Base { warn(code, message, data = {}) { @@ -32585,9 +35703,9 @@ var require_warn_mixin = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/winchars.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/winchars.js var require_winchars = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/winchars.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/winchars.js"(exports, module2) { "use strict"; var raw = [ "|", @@ -32606,9 +35724,9 @@ var require_winchars = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-absolute-path.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-absolute-path.js var require_strip_absolute_path = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/strip-absolute-path.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/strip-absolute-path.js"(exports, module2) { var { isAbsolute, parse } = require("path").win32; module2.exports = (path10) => { let r = ""; @@ -32624,9 +35742,9 @@ var require_strip_absolute_path = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mode-fix.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mode-fix.js var require_mode_fix = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mode-fix.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mode-fix.js"(exports, module2) { "use strict"; module2.exports = (mode, isDir, portable) => { mode &= 4095; @@ -32649,9 +35767,9 @@ var require_mode_fix = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/write-entry.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/write-entry.js var require_write_entry = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/write-entry.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/write-entry.js"(exports, module2) { "use strict"; var { Minipass } = require_minipass(); var Pax = require_pax(); @@ -33114,9 +36232,9 @@ var require_write_entry = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pack.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pack.js var require_pack = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/pack.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/pack.js"(exports, module2) { "use strict"; var PackJob = class { constructor(path11, absolute) { @@ -33183,14 +36301,25 @@ var require_pack = __commonJS({ } this.portable = !!opt.portable; this.zip = null; - if (opt.gzip) { - if (typeof opt.gzip !== "object") { - opt.gzip = {}; + if (opt.gzip || opt.brotli) { + if (opt.gzip && opt.brotli) { + throw new TypeError("gzip and brotli are mutually exclusive"); + } + if (opt.gzip) { + if (typeof opt.gzip !== "object") { + opt.gzip = {}; + } + if (this.portable) { + opt.gzip.portable = true; + } + this.zip = new zlib.Gzip(opt.gzip); } - if (this.portable) { - opt.gzip.portable = true; + if (opt.brotli) { + if (typeof opt.brotli !== "object") { + opt.brotli = {}; + } + this.zip = new zlib.BrotliCompress(opt.brotli); } - this.zip = new zlib.Gzip(opt.gzip); this.zip.on("data", (chunk) => super.write(chunk)); this.zip.on("end", (_) => super.end()); this.zip.on("drain", (_) => this[ONDRAIN]()); @@ -33847,9 +36976,9 @@ var require_fs_minipass = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/parse.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/parse.js var require_parse2 = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/parse.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/parse.js"(exports, module2) { "use strict"; var warner = require_warn_mixin(); var Header = require_header(); @@ -33915,6 +37044,8 @@ var require_parse2 = __commonJS({ this.strict = !!opt.strict; this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize; this.filter = typeof opt.filter === "function" ? opt.filter : noop; + const isTBR = opt.file && (opt.file.endsWith(".tar.br") || opt.file.endsWith(".tbr")); + this.brotli = !opt.gzip && opt.brotli !== void 0 ? opt.brotli : isTBR ? void 0 : false; this.writable = true; this.readable = false; this[QUEUE] = new Yallist(); @@ -34116,7 +37247,8 @@ var require_parse2 = __commonJS({ if (this[ABORTED]) { return; } - if (this[UNZIP] === null && chunk) { + const needSniff = this[UNZIP] === null || this.brotli === void 0 && this[UNZIP] === false; + if (needSniff && chunk) { if (this[BUFFER]) { chunk = Buffer.concat([this[BUFFER], chunk]); this[BUFFER] = null; @@ -34130,10 +37262,28 @@ var require_parse2 = __commonJS({ this[UNZIP] = false; } } - if (this[UNZIP] === null) { + const maybeBrotli = this.brotli === void 0; + if (this[UNZIP] === false && maybeBrotli) { + if (chunk.length < 512) { + if (this[ENDED]) { + this.brotli = true; + } else { + this[BUFFER] = chunk; + return true; + } + } else { + try { + new Header(chunk.slice(0, 512)); + this.brotli = false; + } catch (_) { + this.brotli = true; + } + } + } + if (this[UNZIP] === null || this[UNZIP] === false && this.brotli) { const ended = this[ENDED]; this[ENDED] = false; - this[UNZIP] = new zlib.Unzip(); + this[UNZIP] = this[UNZIP] === null ? new zlib.Unzip() : new zlib.BrotliDecompress(); this[UNZIP].on("data", (chunk2) => this[CONSUMECHUNK](chunk2)); this[UNZIP].on("error", (er) => this.abort(er)); this[UNZIP].on("end", (_) => { @@ -34240,6 +37390,8 @@ var require_parse2 = __commonJS({ this[UNZIP].end(chunk); } else { this[ENDED] = true; + if (this.brotli === void 0) + chunk = chunk || Buffer.alloc(0); this.write(chunk); } } @@ -34248,9 +37400,9 @@ var require_parse2 = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/list.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/list.js var require_list = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/list.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/list.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Parser = require_parse2(); @@ -34362,9 +37514,9 @@ var require_list = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/create.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/create.js var require_create = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/create.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/create.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Pack = require_pack(); @@ -34456,9 +37608,9 @@ var require_create = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/replace.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/replace.js var require_replace = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/replace.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/replace.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Pack = require_pack(); @@ -34472,7 +37624,7 @@ var require_replace = __commonJS({ if (!opt.file) { throw new TypeError("file is required"); } - if (opt.gzip) { + if (opt.gzip || opt.brotli || opt.file.endsWith(".br") || opt.file.endsWith(".tbr")) { throw new TypeError("cannot append to compressed archives"); } if (!files || !Array.isArray(files) || !files.length) { @@ -34672,9 +37824,9 @@ var require_replace = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/update.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/update.js var require_update = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/update.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/update.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var r = require_replace(); @@ -34683,7 +37835,7 @@ var require_update = __commonJS({ if (!opt.file) { throw new TypeError("file is required"); } - if (opt.gzip) { + if (opt.gzip || opt.brotli || opt.file.endsWith(".br") || opt.file.endsWith(".tbr")) { throw new TypeError("cannot append to compressed archives"); } if (!files || !Array.isArray(files) || !files.length) { @@ -35059,9 +38211,9 @@ var require_chownr = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mkdir.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mkdir.js var require_mkdir = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/mkdir.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/mkdir.js"(exports, module2) { "use strict"; var mkdirp = require_mkdirp(); var fs8 = require("fs"); @@ -35251,9 +38403,9 @@ var require_mkdir = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-unicode.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-unicode.js var require_normalize_unicode = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/normalize-unicode.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/normalize-unicode.js"(exports, module2) { var normalizeCache = /* @__PURE__ */ Object.create(null); var { hasOwnProperty } = Object.prototype; module2.exports = (s) => { @@ -35265,9 +38417,9 @@ var require_normalize_unicode = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/path-reservations.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/path-reservations.js var require_path_reservations = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/path-reservations.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/path-reservations.js"(exports, module2) { var assert2 = require("assert"); var normalize = require_normalize_unicode(); var stripSlashes = require_strip_trailing_slashes(); @@ -35379,9 +38531,9 @@ var require_path_reservations = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/get-write-flag.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/get-write-flag.js var require_get_write_flag = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/get-write-flag.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/get-write-flag.js"(exports, module2) { var platform = process.env.__FAKE_PLATFORM__ || process.platform; var isWindows = platform === "win32"; var fs8 = global.__FAKE_TESTING_FS__ || require("fs"); @@ -35393,9 +38545,9 @@ var require_get_write_flag = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/unpack.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/unpack.js var require_unpack = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/unpack.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/unpack.js"(exports, module2) { "use strict"; var assert2 = require("assert"); var Parser = require_parse2(); @@ -36075,9 +39227,9 @@ var require_unpack = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/extract.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/extract.js var require_extract = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/lib/extract.js"(exports, module2) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/lib/extract.js"(exports, module2) { "use strict"; var hlo = require_high_level_opt(); var Unpack = require_unpack(); @@ -36160,9 +39312,9 @@ var require_extract = __commonJS({ } }); -// .yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/index.js +// .yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/index.js var require_tar = __commonJS({ - ".yarn/cache/tar-npm-6.1.15-44c3e71720-bb2babe7b1.zip/node_modules/tar/index.js"(exports) { + ".yarn/cache/tar-npm-6.2.0-3eb25205a7-02ca064a1a.zip/node_modules/tar/index.js"(exports) { "use strict"; exports.c = exports.create = require_create(); exports.r = exports.replace = require_replace(); @@ -36176,13 +39328,13 @@ var require_tar = __commonJS({ exports.WriteEntry = require_write_entry(); exports.Header = require_header(); exports.Pax = require_pax(); - exports.types = require_types2(); + exports.types = require_types3(); } }); -// .yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b2d866febf.zip/node_modules/v8-compile-cache/v8-compile-cache.js +// .yarn/cache/v8-compile-cache-npm-2.4.0-5979f8e405-3878511925.zip/node_modules/v8-compile-cache/v8-compile-cache.js var require_v8_compile_cache = __commonJS({ - ".yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b2d866febf.zip/node_modules/v8-compile-cache/v8-compile-cache.js"(exports, module2) { + ".yarn/cache/v8-compile-cache-npm-2.4.0-5979f8e405-3878511925.zip/node_modules/v8-compile-cache/v8-compile-cache.js"(exports, module2) { "use strict"; var Module2 = require("module"); var crypto = require("crypto"); @@ -36422,8 +39574,9 @@ var require_v8_compile_cache = __commonJS({ return v8_compile_cache_cache_dir; } const dirname = typeof process.getuid === "function" ? "v8-compile-cache-" + process.getuid() : "v8-compile-cache"; + const arch = process.arch; const version2 = typeof process.versions.v8 === "string" ? process.versions.v8 : typeof process.versions.chakracore === "string" ? "chakracore-" + process.versions.chakracore : "node-" + process.version; - const cacheDir = path10.join(os3.tmpdir(), dirname, version2); + const cacheDir = path10.join(os3.tmpdir(), dirname, arch, version2); return cacheDir; } function getMainName() { @@ -36456,138 +39609,177 @@ var require_v8_compile_cache = __commonJS({ } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/windows.js -var require_windows = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/windows.js"(exports, module2) { - module2.exports = isexe; - isexe.sync = sync; - var fs8 = require("fs"); - function checkPathExt(path10, options) { - var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT; - if (!pathext) { - return true; +// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/posix.js +var require_posix = __commonJS({ + ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/posix.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sync = exports.isexe = void 0; + var fs_1 = require("fs"); + var promises_1 = require("fs/promises"); + var isexe = async (path10, options = {}) => { + const { ignoreErrors = false } = options; + try { + return checkStat(await (0, promises_1.stat)(path10), options); + } catch (e) { + const er = e; + if (ignoreErrors || er.code === "EACCES") + return false; + throw er; + } + }; + exports.isexe = isexe; + var sync = (path10, options = {}) => { + const { ignoreErrors = false } = options; + try { + return checkStat((0, fs_1.statSync)(path10), options); + } catch (e) { + const er = e; + if (ignoreErrors || er.code === "EACCES") + return false; + throw er; + } + }; + exports.sync = sync; + var checkStat = (stat, options) => stat.isFile() && checkMode(stat, options); + var checkMode = (stat, options) => { + const myUid = options.uid ?? process.getuid?.(); + const myGroups = options.groups ?? process.getgroups?.() ?? []; + const myGid = options.gid ?? process.getgid?.() ?? myGroups[0]; + if (myUid === void 0 || myGid === void 0) { + throw new Error("cannot get uid or gid"); + } + const groups = /* @__PURE__ */ new Set([myGid, ...myGroups]); + const mod = stat.mode; + const uid = stat.uid; + const gid = stat.gid; + const u = parseInt("100", 8); + const g = parseInt("010", 8); + const o = parseInt("001", 8); + const ug = u | g; + return !!(mod & o || mod & g && groups.has(gid) || mod & u && uid === myUid || mod & ug && myUid === 0); + }; + } +}); + +// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/win32.js +var require_win322 = __commonJS({ + ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/win32.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sync = exports.isexe = void 0; + var fs_1 = require("fs"); + var promises_1 = require("fs/promises"); + var isexe = async (path10, options = {}) => { + const { ignoreErrors = false } = options; + try { + return checkStat(await (0, promises_1.stat)(path10), path10, options); + } catch (e) { + const er = e; + if (ignoreErrors || er.code === "EACCES") + return false; + throw er; } - pathext = pathext.split(";"); - if (pathext.indexOf("") !== -1) { + }; + exports.isexe = isexe; + var sync = (path10, options = {}) => { + const { ignoreErrors = false } = options; + try { + return checkStat((0, fs_1.statSync)(path10), path10, options); + } catch (e) { + const er = e; + if (ignoreErrors || er.code === "EACCES") + return false; + throw er; + } + }; + exports.sync = sync; + var checkPathExt = (path10, options) => { + const { pathExt = process.env.PATHEXT || "" } = options; + const peSplit = pathExt.split(";"); + if (peSplit.indexOf("") !== -1) { return true; } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase(); - if (p && path10.substr(-p.length).toLowerCase() === p) { + for (let i = 0; i < peSplit.length; i++) { + const p = peSplit[i].toLowerCase(); + const ext = path10.substring(path10.length - p.length).toLowerCase(); + if (p && ext === p) { return true; } } return false; - } - function checkStat(stat, path10, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false; - } - return checkPathExt(path10, options); - } - function isexe(path10, options, cb) { - fs8.stat(path10, function(er, stat) { - cb(er, er ? false : checkStat(stat, path10, options)); - }); - } - function sync(path10, options) { - return checkStat(fs8.statSync(path10), path10, options); - } + }; + var checkStat = (stat, path10, options) => stat.isFile() && checkPathExt(path10, options); } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/mode.js -var require_mode = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/mode.js"(exports, module2) { - module2.exports = isexe; - isexe.sync = sync; - var fs8 = require("fs"); - function isexe(path10, options, cb) { - fs8.stat(path10, function(er, stat) { - cb(er, er ? false : checkStat(stat, options)); - }); - } - function sync(path10, options) { - return checkStat(fs8.statSync(path10), options); - } - function checkStat(stat, options) { - return stat.isFile() && checkMode(stat, options); - } - function checkMode(stat, options) { - var mod = stat.mode; - var uid = stat.uid; - var gid = stat.gid; - var myUid = options.uid !== void 0 ? options.uid : process.getuid && process.getuid(); - var myGid = options.gid !== void 0 ? options.gid : process.getgid && process.getgid(); - var u = parseInt("100", 8); - var g = parseInt("010", 8); - var o = parseInt("001", 8); - var ug = u | g; - var ret = mod & o || mod & g && gid === myGid || mod & u && uid === myUid || mod & ug && myUid === 0; - return ret; - } +// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/options.js +var require_options = __commonJS({ + ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/options.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); } }); -// .yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/index.js -var require_isexe = __commonJS({ - ".yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip/node_modules/isexe/index.js"(exports, module2) { - var fs8 = require("fs"); - var core; - if (process.platform === "win32" || global.TESTING_WINDOWS) { - core = require_windows(); - } else { - core = require_mode(); - } - module2.exports = isexe; - isexe.sync = sync; - function isexe(path10, options, cb) { - if (typeof options === "function") { - cb = options; - options = {}; - } - if (!cb) { - if (typeof Promise !== "function") { - throw new TypeError("callback not provided"); - } - return new Promise(function(resolve, reject) { - isexe(path10, options || {}, function(er, is) { - if (er) { - reject(er); - } else { - resolve(is); - } - }); - }); +// .yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/index.js +var require_cjs = __commonJS({ + ".yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip/node_modules/isexe/dist/cjs/index.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; } - core(path10, options || {}, function(er, is) { - if (er) { - if (er.code === "EACCES" || options && options.ignoreErrors) { - er = null; - is = false; - } - } - cb(er, is); - }); - } - function sync(path10, options) { - try { - return core.sync(path10, options || {}); - } catch (er) { - if (options && options.ignoreErrors || er.code === "EACCES") { - return false; - } else { - throw er; - } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding2(result, mod, k); } - } + __setModuleDefault2(result, mod); + return result; + }; + var __exportStar2 = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) + __createBinding2(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sync = exports.isexe = exports.posix = exports.win32 = void 0; + var posix = __importStar2(require_posix()); + exports.posix = posix; + var win32 = __importStar2(require_win322()); + exports.win32 = win32; + __exportStar2(require_options(), exports); + var platform = process.env._ISEXE_TEST_PLATFORM_ || process.platform; + var impl = platform === "win32" ? win32 : posix; + exports.isexe = impl.isexe; + exports.sync = impl.sync; } }); -// .yarn/cache/which-npm-3.0.1-b2b0f09ace-15263b0616.zip/node_modules/which/lib/index.js +// .yarn/cache/which-npm-4.0.0-dd31cd4928-449fa5c44e.zip/node_modules/which/lib/index.js var require_lib2 = __commonJS({ - ".yarn/cache/which-npm-3.0.1-b2b0f09ace-15263b0616.zip/node_modules/which/lib/index.js"(exports, module2) { - var isexe = require_isexe(); + ".yarn/cache/which-npm-4.0.0-dd31cd4928-449fa5c44e.zip/node_modules/which/lib/index.js"(exports, module2) { + var { isexe, sync: isexeSync } = require_cjs(); var { join: join2, delimiter, sep, posix } = require("path"); var isWindows = process.platform === "win32"; var rSlash = new RegExp(`[${posix.sep}${sep === posix.sep ? "" : sep}]`.replace(/(\\)/g, "\\$1")); @@ -36606,11 +39798,7 @@ var require_lib2 = __commonJS({ ]; if (isWindows) { const pathExtExe = optPathExt || [".EXE", ".CMD", ".BAT", ".COM"].join(optDelimiter); - const pathExt = pathExtExe.split(optDelimiter).reduce((acc, item) => { - acc.push(item); - acc.push(item.toLowerCase()); - return acc; - }, []); + const pathExt = pathExtExe.split(optDelimiter).flatMap((item) => [item, item.toLowerCase()]); if (cmd.includes(".") && pathExt[0] !== "") { pathExt.unshift(""); } @@ -36654,7 +39842,7 @@ var require_lib2 = __commonJS({ const p = getPathPart(pathEnvPart, cmd); for (const ext of pathExt) { const withExt = p + ext; - const is = isexe.sync(withExt, { pathExt: pathExtExe, ignoreErrors: true }); + const is = isexeSync(withExt, { pathExt: pathExtExe, ignoreErrors: true }); if (is) { if (!opt.all) { return withExt; @@ -37066,7 +40254,7 @@ __export(lib_exports2, { }); module.exports = __toCommonJS(lib_exports2); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/constants.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/constants.mjs var NODE_INITIAL = 0; var NODE_SUCCESS = 1; var NODE_ERRORED = 2; @@ -37079,7 +40267,7 @@ var BATCH_REGEX = /^-[a-zA-Z]{2,}$/; var BINDING_REGEX = /^([^=]+)=([\s\S]*)$/; var DEBUG = process.env.DEBUG_CLI === `1`; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/errors.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/errors.mjs var UsageError = class extends Error { constructor(message) { super(message); @@ -37148,7 +40336,7 @@ var whileRunning = (input) => `While running ${input.filter((token) => { } }).join(` `)}`; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/format.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/format.mjs var MAX_LINE_LENGTH = 80; var richLine = Array(MAX_LINE_LENGTH).fill(`\u2501`); for (let t = 0; t <= 24; ++t) @@ -37207,7 +40395,7 @@ function formatMarkdownish(text, { format, paragraphs }) { ` : ``; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/utils.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/utils.mjs var isOptionSymbol = Symbol(`clipanion/isOption`); function makeCommandOption(spec) { return { ...spec, [isOptionSymbol]: true }; @@ -37258,7 +40446,7 @@ function applyValidator(name, value, validator) { return value; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/Command.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/Command.mjs var Command = class { constructor() { this.help = false; @@ -37305,7 +40493,7 @@ var Command = class { Command.isOption = isOptionSymbol; Command.Default = []; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/core.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/core.mjs function debug(str) { if (DEBUG) { console.log(str); @@ -38008,13 +41196,13 @@ var CommandBuilder = class { } } }; -var CliBuilder = class { +var CliBuilder = class _CliBuilder { constructor({ binaryName = `...` } = {}) { this.builders = []; this.opts = { binaryName }; } static build(cbs, opts = {}) { - return new CliBuilder(opts).commands(cbs).compile(); + return new _CliBuilder(opts).commands(cbs).compile(); } getBuilderByIndex(n) { if (!(n >= 0 && n < this.builders.length)) @@ -38054,7 +41242,7 @@ var CliBuilder = class { } }; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/platform/node.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/platform/node.mjs var import_tty = __toESM(require("tty"), 1); function getDefaultColorDepth() { if (import_tty.default && `getColorDepth` in import_tty.default.WriteStream.prototype) @@ -38095,15 +41283,15 @@ function getCaptureActivator(context) { }; } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/HelpCommand.mjs -var HelpCommand = class extends Command { +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/HelpCommand.mjs +var HelpCommand = class _HelpCommand extends Command { constructor(contexts) { super(); this.contexts = contexts; this.commands = []; } static from(state, contexts) { - const command = new HelpCommand(contexts); + const command = new _HelpCommand(contexts); command.path = state.path; for (const opt of state.options) { switch (opt.name) { @@ -38145,9 +41333,9 @@ var HelpCommand = class extends Command { } }; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/Cli.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/Cli.mjs var errorCommandSymbol = Symbol(`clipanion/errorCommand`); -var Cli = class { +var Cli = class _Cli { constructor({ binaryLabel, binaryName: binaryNameOpt = `...`, binaryVersion, enableCapture = false, enableColors } = {}) { this.registrations = /* @__PURE__ */ new Map(); this.builder = new CliBuilder({ binaryName: binaryNameOpt }); @@ -38164,7 +41352,7 @@ var Cli = class { * @returns The created `Cli` instance */ static from(commandClasses, options = {}) { - const cli = new Cli(options); + const cli = new _Cli(options); const resolvedCommandClasses = Array.isArray(commandClasses) ? commandClasses : [commandClasses]; for (const commandClass of resolvedCommandClasses) cli.register(commandClass); @@ -38200,7 +41388,7 @@ var Cli = class { const { contexts, process: process5 } = this.builder.compile(); const state = process5(input); const context = { - ...Cli.defaultContext, + ..._Cli.defaultContext, ...userContext }; switch (state.selectedIndex) { @@ -38234,7 +41422,7 @@ var Cli = class { var _a, _b; let command; const context = { - ...Cli.defaultContext, + ..._Cli.defaultContext, ...userContext }; const colored = (_a = this.enableColors) !== null && _a !== void 0 ? _a : context.colorDepth > 1; @@ -38449,7 +41637,7 @@ var Cli = class { error(error, _a) { var _b; var { colored, command = (_b = error[errorCommandSymbol]) !== null && _b !== void 0 ? _b : null } = _a === void 0 ? {} : _a; - if (!(error instanceof Error)) + if (!error || typeof error !== `object` || !(`stack` in error)) error = new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(error)})`); let result = ``; let name = error.name.replace(/([a-z])([A-Z])/g, `$1 $2`); @@ -38474,7 +41662,7 @@ var Cli = class { } format(colored) { var _a; - return ((_a = colored !== null && colored !== void 0 ? colored : this.enableColors) !== null && _a !== void 0 ? _a : Cli.defaultContext.colorDepth > 1) ? richFormat : textFormat; + return ((_a = colored !== null && colored !== void 0 ? colored : this.enableColors) !== null && _a !== void 0 ? _a : _Cli.defaultContext.colorDepth > 1) ? richFormat : textFormat; } getUsageByRegistration(klass, opts) { const record = this.registrations.get(klass); @@ -38497,7 +41685,7 @@ function noopCaptureActivator(fn2) { return fn2(); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/index.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/index.mjs var builtins_exports = {}; __export(builtins_exports, { DefinitionsCommand: () => DefinitionsCommand, @@ -38505,7 +41693,7 @@ __export(builtins_exports, { VersionCommand: () => VersionCommand }); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/definitions.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/definitions.mjs var DefinitionsCommand = class extends Command { async execute() { this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)} @@ -38514,7 +41702,7 @@ var DefinitionsCommand = class extends Command { }; DefinitionsCommand.paths = [[`--clipanion=definitions`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/help.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/help.mjs var HelpCommand2 = class extends Command { async execute() { this.context.stdout.write(this.cli.usage()); @@ -38522,7 +41710,7 @@ var HelpCommand2 = class extends Command { }; HelpCommand2.paths = [[`-h`], [`--help`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/builtins/version.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/builtins/version.mjs var VersionCommand = class extends Command { async execute() { var _a; @@ -38532,7 +41720,7 @@ var VersionCommand = class extends Command { }; VersionCommand.paths = [[`-v`], [`--version`]]; -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/index.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/index.mjs var options_exports = {}; __export(options_exports, { Array: () => Array2, @@ -38549,7 +41737,7 @@ __export(options_exports, { rerouteArguments: () => rerouteArguments }); -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Array.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Array.mjs function Array2(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const { arity = 1 } = opts; @@ -38584,7 +41772,7 @@ function Array2(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Boolean.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Boolean.mjs function Boolean2(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const optNames = descriptor.split(`,`); @@ -38612,7 +41800,7 @@ function Boolean2(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Counter.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Counter.mjs function Counter(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const optNames = descriptor.split(`,`); @@ -38645,7 +41833,7 @@ function Counter(descriptor, initialValueBase, optsBase) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Proxy.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Proxy.mjs function Proxy2(opts = {}) { return makeCommandOption({ definition(builder, key) { @@ -38661,7 +41849,7 @@ function Proxy2(opts = {}) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/Rest.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/Rest.mjs function Rest(opts = {}) { return makeCommandOption({ definition(builder, key) { @@ -38688,7 +41876,7 @@ function Rest(opts = {}) { }); } -// .yarn/__virtual__/clipanion-virtual-cc0a4bf4ff/0/cache/clipanion-npm-3.2.0-8b68f8056b-fcc3d44145.zip/node_modules/clipanion/lib/advanced/options/String.mjs +// .yarn/__virtual__/clipanion-virtual-48805df892/0/cache/clipanion-npm-3.2.1-fc9187f56c-6c148bd01a.zip/node_modules/clipanion/lib/advanced/options/String.mjs function StringOption(descriptor, initialValueBase, optsBase) { const [initialValue, opts] = rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); const { arity = 1 } = opts; @@ -38760,7 +41948,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.21.0"; +var version = "0.22.0"; // sources/Engine.ts var import_fs3 = __toESM(require("fs")); @@ -38772,7 +41960,7 @@ var import_semver3 = __toESM(require_semver2()); var config_default = { definitions: { npm: { - default: "10.2.0+sha1.2e4f7aba9cd913de8747d45b3dd5fb43615a4139", + default: "10.2.1+sha1.41fd6626a08d4167b8639edd272ecf9735e7ceaf", fetchLatestFrom: { type: "npm", package: "npm" @@ -38809,7 +41997,7 @@ var config_default = { } }, pnpm: { - default: "8.8.0+sha1.9922e8b650d393700209ccd81e0ebdbcbe43b0d3", + default: "8.9.2+sha1.5f2fa48d614263457cf5d7fb7be8b878da318d87", fetchLatestFrom: { type: "npm", package: "pnpm" @@ -38994,7 +42182,7 @@ async function fetchUrlStream(url, options = {}) { if (process.env.COREPACK_ENABLE_NETWORK === `0`) throw new UsageError(`Network access disabled by the environment; can't reach ${url}`); const { default: https } = await import("https"); - const { ProxyAgent } = await Promise.resolve().then(() => __toESM(require_dist11())); + const { ProxyAgent } = await Promise.resolve().then(() => __toESM(require_dist12())); const proxyAgent = new ProxyAgent(); return new Promise((resolve, reject) => { const request = https.get(url, { ...options, agent: proxyAgent }, (response) => { @@ -39036,7 +42224,7 @@ async function fetchAsJson(url, options) { // sources/npmRegistryUtils.ts var DEFAULT_HEADERS = { - [`Accept`]: `application/vnd.npm.install-v1+json` + [`Accept`]: `application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8` }; var DEFAULT_NPM_REGISTRY_URL = `https://registry.npmjs.org`; async function fetchAsJson2(packageName) { @@ -39420,6 +42608,27 @@ var import_fs4 = __toESM(require("fs")); var import_path4 = __toESM(require("path")); var import_which = __toESM(require_lib2()); var DisableCommand = class extends Command { + static paths = [ + [`disable`] + ]; + static usage = Command.Usage({ + description: `Remove the Corepack shims from the install directory`, + details: ` + When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. + + By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. + `, + examples: [[ + `Disable all shims, removing them if they're next to the \`coreshim\` binary`, + `$0 disable` + ], [ + `Disable all shims, removing them from the specified directory`, + `$0 disable --install-directory /path/to/bin` + ], [ + `Disable the Yarn shim only`, + `$0 disable yarn` + ]] + }); installDirectory = options_exports.String(`--install-directory`, { description: `Where the shims are located` }); @@ -39464,27 +42673,6 @@ var DisableCommand = class extends Command { } } }; -__publicField(DisableCommand, "paths", [ - [`disable`] -]); -__publicField(DisableCommand, "usage", Command.Usage({ - description: `Remove the Corepack shims from the install directory`, - details: ` - When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. - - By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. - `, - examples: [[ - `Disable all shims, removing them if they're next to the \`coreshim\` binary`, - `$0 disable` - ], [ - `Disable all shims, removing them from the specified directory`, - `$0 disable --install-directory /path/to/bin` - ], [ - `Disable the Yarn shim only`, - `$0 disable yarn` - ]] -})); // sources/commands/Enable.ts var import_cmd_shim = __toESM(require_cmd_shim()); @@ -39492,6 +42680,27 @@ var import_fs5 = __toESM(require("fs")); var import_path5 = __toESM(require("path")); var import_which2 = __toESM(require_lib2()); var EnableCommand = class extends Command { + static paths = [ + [`enable`] + ]; + static usage = Command.Usage({ + description: `Add the Corepack shims to the install directories`, + details: ` + When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. + + By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. + `, + examples: [[ + `Enable all shims, putting them next to the \`corepack\` binary`, + `$0 enable` + ], [ + `Enable all shims, putting them in the specified directory`, + `$0 enable --install-directory /path/to/folder` + ], [ + `Enable the Yarn shim only`, + `$0 enable yarn` + ]] + }); installDirectory = options_exports.String(`--install-directory`, { description: `Where the shims are to be installed` }); @@ -39538,27 +42747,6 @@ var EnableCommand = class extends Command { }); } }; -__publicField(EnableCommand, "paths", [ - [`enable`] -]); -__publicField(EnableCommand, "usage", Command.Usage({ - description: `Add the Corepack shims to the install directories`, - details: ` - When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. - - By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. - `, - examples: [[ - `Enable all shims, putting them next to the \`corepack\` binary`, - `$0 enable` - ], [ - `Enable all shims, putting them in the specified directory`, - `$0 enable --install-directory /path/to/folder` - ], [ - `Enable the Yarn shim only`, - `$0 enable yarn` - ]] -})); // sources/commands/InstallGlobal.ts var import_fs8 = __toESM(require("fs")); @@ -39730,6 +42918,24 @@ var BaseCommand = class extends Command { // sources/commands/InstallGlobal.ts var InstallGlobalCommand = class extends BaseCommand { + static paths = [ + [`install`] + ]; + static usage = Command.Usage({ + description: `Install package managers on the system`, + details: ` + Download the selected package managers and install them on the system. + + Package managers thus installed will be configured as the new default when calling their respective binaries outside of projects defining the 'packageManager' field. + `, + examples: [[ + `Install the latest version of Yarn 1.x and make it globally available`, + `corepack install -g yarn@^1` + ], [ + `Install the latest version of all available package managers, and make them globally available`, + `corepack install -g --all` + ]] + }); global = options_exports.Boolean(`-g,--global`, { required: true }); @@ -39810,27 +43016,22 @@ var InstallGlobalCommand = class extends BaseCommand { } } }; -__publicField(InstallGlobalCommand, "paths", [ - [`install`] -]); -__publicField(InstallGlobalCommand, "usage", Command.Usage({ - description: `Install package managers on the system`, - details: ` - Download the selected package managers and install them on the system. - - Package managers thus installed will be configured as the new default when calling their respective binaries outside of projects defining the 'packageManager' field. - `, - examples: [[ - `Install the latest version of Yarn 1.x and make it globally available`, - `corepack install -g yarn@^1` - ], [ - `Install the latest version of all available package managers, and make them globally available`, - `corepack install -g --all` - ]] -})); // sources/commands/InstallLocal.ts var InstallLocalCommand = class extends BaseCommand { + static paths = [ + [`install`] + ]; + static usage = Command.Usage({ + description: `Install the package manager configured in the local project`, + details: ` + Download and install the package manager configured in the local project. This command doesn't change the global version used when running the package manager from outside the project (use the \`-g,--global\` flag if you wish to do this). + `, + examples: [[ + `Install the project's package manager in the cache`, + `corepack install` + ]] + }); async execute() { const [descriptor] = await this.resolvePatternsToDescriptors({ all: false, @@ -39844,24 +43045,30 @@ var InstallLocalCommand = class extends BaseCommand { await this.context.engine.ensurePackageManager(resolved); } }; -__publicField(InstallLocalCommand, "paths", [ - [`install`] -]); -__publicField(InstallLocalCommand, "usage", Command.Usage({ - description: `Install the package manager configured in the local project`, - details: ` - Download and install the package manager configured in the local project. This command doesn't change the global version used when running the package manager from outside the project (use the \`-g,--global\` flag if you wish to do this). - `, - examples: [[ - `Install the project's package manager in the cache`, - `corepack install` - ]] -})); // sources/commands/Pack.ts var import_promises2 = require("fs/promises"); var import_path8 = __toESM(require("path")); var PackCommand = class extends BaseCommand { + static paths = [ + [`pack`] + ]; + static usage = Command.Usage({ + description: `Store package managers in a tarball`, + details: ` + Download the selected package managers and store them inside a tarball suitable for use with \`corepack install -g\`. + `, + examples: [[ + `Pack the package manager defined in the package.json file`, + `corepack pack` + ], [ + `Pack the latest version of Yarn 1.x inside a file named corepack.tgz`, + `corepack pack yarn@^1` + ], [ + `Pack the latest versions of all supported package managers inside a file named everything.tgz`, + `corepack pack --all -o everything.tgz` + ]] + }); all = options_exports.Boolean(`--all`, false, { description: `If true, all available default package managers will be installed` }); @@ -39910,29 +43117,30 @@ var PackCommand = class extends BaseCommand { } } }; -__publicField(PackCommand, "paths", [ - [`pack`] -]); -__publicField(PackCommand, "usage", Command.Usage({ - description: `Store package managers in a tarball`, - details: ` - Download the selected package managers and store them inside a tarball suitable for use with \`corepack install -g\`. - `, - examples: [[ - `Pack the package manager defined in the package.json file`, - `corepack pack` - ], [ - `Pack the latest version of Yarn 1.x inside a file named corepack.tgz`, - `corepack pack yarn@^1` - ], [ - `Pack the latest versions of all supported package managers inside a file named everything.tgz`, - `corepack pack --all -o everything.tgz` - ]] -})); // sources/commands/Up.ts var import_semver5 = __toESM(require_semver2()); var UpCommand = class extends BaseCommand { + static paths = [ + [`up`] + ]; + static usage = Command.Usage({ + description: `Update the package manager used in the current project`, + details: ` + Retrieve the latest available version for the current major release line + of the package manager used in the local project, and update the project + to use it. + + Unlike \`corepack use\` this command doesn't take a package manager name + nor a version range, as it will always select the latest available + version from the same major line. Should you need to upgrade to a new + major, use an explicit \`corepack use '{name}@*'\` call. + `, + examples: [[ + `Configure the project to use the latest Yarn release`, + `corepack up` + ]] + }); async execute() { const [descriptor] = await this.resolvePatternsToDescriptors({ all: false, @@ -39954,29 +43162,24 @@ var UpCommand = class extends BaseCommand { await this.setLocalPackageManager(packageManagerInfo); } }; -__publicField(UpCommand, "paths", [ - [`up`] -]); -__publicField(UpCommand, "usage", Command.Usage({ - description: `Update the package manager used in the current project`, - details: ` - Retrieve the latest available version for the current major release line - of the package manager used in the local project, and update the project - to use it. - - Unlike \`corepack use\` this command doesn't take a package manager name - nor a version range, as it will always select the latest available - version from the same major line. Should you need to upgrade to a new - major, use an explicit \`corepack use '{name}@*'\` call. - `, - examples: [[ - `Configure the project to use the latest Yarn release`, - `corepack up` - ]] -})); // sources/commands/Use.ts var UseCommand = class extends BaseCommand { + static paths = [ + [`use`] + ]; + static usage = Command.Usage({ + description: `Define the package manager to use for the current project`, + details: ` + When run, this command will retrieve the latest release matching the + provided descriptor, assign it to the project's package.json file, and + automatically perform an install. + `, + examples: [[ + `Configure the project to use the latest Yarn release`, + `corepack use 'yarn@*'` + ]] + }); pattern = options_exports.String(); async execute() { const [descriptor] = await this.resolvePatternsToDescriptors({ @@ -39992,26 +43195,14 @@ var UseCommand = class extends BaseCommand { await this.setLocalPackageManager(packageManagerInfo); } }; -__publicField(UseCommand, "paths", [ - [`use`] -]); -__publicField(UseCommand, "usage", Command.Usage({ - description: `Define the package manager to use for the current project`, - details: ` - When run, this command will retrieve the latest release matching the - provided descriptor, assign it to the project's package.json file, and - automatically perform an install. - `, - examples: [[ - `Configure the project to use the latest Yarn release`, - `corepack use 'yarn@*'` - ]] -})); // sources/commands/deprecated/Hydrate.ts var import_promises3 = require("fs/promises"); var import_path9 = __toESM(require("path")); var HydrateCommand = class extends Command { + static paths = [ + [`hydrate`] + ]; activate = options_exports.Boolean(`--activate`, false, { description: `If true, this release will become the default one for this package manager` }); @@ -40056,14 +43247,14 @@ var HydrateCommand = class extends Command { `); } }; -__publicField(HydrateCommand, "paths", [ - [`hydrate`] -]); // sources/commands/deprecated/Prepare.ts var import_promises4 = require("fs/promises"); var import_path10 = __toESM(require("path")); var PrepareCommand = class extends Command { + static paths = [ + [`prepare`] + ]; activate = options_exports.Boolean(`--activate`, false, { description: `If true, this release will become the default one for this package manager` }); @@ -40137,9 +43328,6 @@ var PrepareCommand = class extends Command { } } }; -__publicField(PrepareCommand, "paths", [ - [`prepare`] -]); // sources/miscUtils.ts var Cancellation = class extends Error { diff --git a/deps/corepack/package.json b/deps/corepack/package.json index 8ffbde7ca15efa..b0450018ff2cfd 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.21.0", + "version": "0.22.0", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" @@ -16,7 +16,7 @@ "./package.json": "./package.json" }, "license": "MIT", - "packageManager": "yarn@4.0.0-rc.50+sha256.6663791fa05e15176880da500c334caf1699541f834302e6df085d20ef06069d", + "packageManager": "yarn@4.0.0-rc.53+sha256.00e0111b9741a6b886c659a49b06d4ccb16e5d568bd1006c2d1f80bc48393c9b", "devDependencies": { "@babel/core": "^7.14.3", "@babel/plugin-transform-modules-commonjs": "^7.14.0", @@ -28,17 +28,17 @@ "@types/semver": "^7.1.0", "@types/tar": "^6.0.0", "@types/which": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^6.8.0", + "@typescript-eslint/parser": "^6.8.0", "@yarnpkg/eslint-config": "^0.6.0-rc.7", "@yarnpkg/fslib": "^3.0.0-rc.48", "@zkochan/cmd-shim": "^6.0.0", "babel-plugin-dynamic-import-node": "^2.3.3", "clipanion": "^3.0.1", "debug": "^4.1.1", - "esbuild": "0.17.19", + "esbuild": "0.19.5", "eslint": "^8.0.0", - "eslint-plugin-arca": "^0.15.0", + "eslint-plugin-arca": "^0.16.0", "jest": "^29.0.0", "nock": "^13.0.4", "proxy-agent": "^6.2.2", @@ -48,7 +48,7 @@ "ts-node": "^10.0.0", "typescript": "^5.0.4", "v8-compile-cache": "^2.3.0", - "which": "^3.0.0" + "which": "^4.0.0" }, "scripts": { "build": "rm -rf dist shims && run build:bundle && ts-node ./mkshims.ts", From 7d8a18b2575dae9e5bdb975c910841abf1bb4319 Mon Sep 17 00:00:00 2001 From: Moshe Atlow Date: Mon, 23 Oct 2023 22:03:25 +0300 Subject: [PATCH 213/232] test: improve watch mode test PR-URL: https://github.com/nodejs/node/pull/50319 Reviewed-By: Geoffrey Booth Reviewed-By: Colin Ihrig Reviewed-By: Yagiz Nizipli --- test/sequential/test-watch-mode.mjs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/test/sequential/test-watch-mode.mjs b/test/sequential/test-watch-mode.mjs index c6dcb0fcbffb1b..444e296bb9f062 100644 --- a/test/sequential/test-watch-mode.mjs +++ b/test/sequential/test-watch-mode.mjs @@ -62,7 +62,7 @@ async function runWriteSucceed({ child.kill(); cancelRestarts(); } - return { stdout, stderr }; + return { stdout, stderr, pid: child.pid }; } async function failWriteSucceed({ file, watchedFile }) { @@ -259,13 +259,14 @@ console.log(values.random); ]); }); - it('should not load --require modules in main process', async () => { + it('should load --require modules in the watched process, and not in the orchestrator process', async () => { const file = createTmpFile(); - const required = createTmpFile('setImmediate(() => process.exit(0));'); + const required = createTmpFile('process._rawDebug(\'pid\', process.pid);'); const args = ['--require', required, file]; - const { stderr, stdout } = await runWriteSucceed({ file, watchedFile: file, args }); + const { stdout, pid } = await runWriteSucceed({ file, watchedFile: file, args }); - assert.strictEqual(stderr, ''); + const importPid = parseInt(stdout[0].split(' ')[1], 10); + assert.notStrictEqual(pid, importPid); assert.deepStrictEqual(stdout, [ 'running', `Completed running ${inspect(file)}`, @@ -275,13 +276,14 @@ console.log(values.random); ]); }); - it('should not load --import modules in main process', async () => { + it('should load --import modules in the watched process, and not in the orchestrator process', async () => { const file = createTmpFile(); - const imported = pathToFileURL(createTmpFile('process._rawDebug("imported");')); + const imported = "data:text/javascript,process._rawDebug('pid', process.pid);"; const args = ['--import', imported, file]; - const { stderr, stdout } = await runWriteSucceed({ file, watchedFile: file, args }); + const { stdout, pid } = await runWriteSucceed({ file, watchedFile: file, args }); - assert.strictEqual(stderr, 'imported\nimported\n'); + const importPid = parseInt(stdout[0].split(' ')[1], 10); + assert.notStrictEqual(pid, importPid); assert.deepStrictEqual(stdout, [ 'running', `Completed running ${inspect(file)}`, From b61707e53588b248bb0749369926285511440e43 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Mon, 23 Oct 2023 17:44:37 +0100 Subject: [PATCH 214/232] deps: update ada to 2.7.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50338 Reviewed-By: Yagiz Nizipli Reviewed-By: Matteo Collina Reviewed-By: Vinícius Lourenço Claro Cardoso --- deps/ada/ada.cpp | 277 +++++++++++++- deps/ada/ada.h | 362 +++++++++++++----- deps/ada/ada_c.h | 73 ++++ .../maintaining/maintaining-dependencies.md | 6 +- 4 files changed, 605 insertions(+), 113 deletions(-) diff --git a/deps/ada/ada.cpp b/deps/ada/ada.cpp index 1175b114d8addd..909fd50034d4fe 100644 --- a/deps/ada/ada.cpp +++ b/deps/ada/ada.cpp @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */ +/* auto-generated on 2023-10-22 19:50:50 -0400. Do not edit! */ /* begin file src/ada.cpp */ #include "ada.h" /* begin file src/checkers.cpp */ @@ -11674,10 +11674,9 @@ ada_really_inline void url::parse_path(std::string_view input) { path = "/"; } } - return; } -std::string url::to_string() const { +[[nodiscard]] std::string url::to_string() const { if (!is_valid) { return "null"; } @@ -11797,7 +11796,7 @@ namespace ada { return host.value_or(""); } -[[nodiscard]] const std::string_view url::get_pathname() const noexcept { +[[nodiscard]] std::string_view url::get_pathname() const noexcept { return path; } @@ -12983,7 +12982,7 @@ template url_aggregator parse_url( namespace ada { -bool url_components::check_offset_consistency() const noexcept { +[[nodiscard]] bool url_components::check_offset_consistency() const noexcept { /** * https://user:pass@example.com:1234/foo/bar?baz#quux * | | | | ^^^^| | | @@ -13059,7 +13058,7 @@ bool url_components::check_offset_consistency() const noexcept { return true; } -std::string url_components::to_string() const { +[[nodiscard]] std::string url_components::to_string() const { std::string answer; auto back = std::back_insert_iterator(answer); answer.append("{\n"); @@ -13847,7 +13846,7 @@ bool url_aggregator::set_hostname(const std::string_view input) { return helpers::substring(buffer, 0, components.protocol_end); } -std::string ada::url_aggregator::to_string() const { +[[nodiscard]] std::string ada::url_aggregator::to_string() const { ada_log("url_aggregator::to_string buffer:", buffer, "[", buffer.size(), " bytes]"); if (!is_valid) { @@ -14292,7 +14291,7 @@ bool url_aggregator::parse_opaque_host(std::string_view input) { return true; } -std::string url_aggregator::to_diagram() const { +[[nodiscard]] std::string url_aggregator::to_diagram() const { if (!is_valid) { return "invalid"; } @@ -14449,7 +14448,7 @@ std::string url_aggregator::to_diagram() const { return answer; } -bool url_aggregator::validate() const noexcept { +[[nodiscard]] bool url_aggregator::validate() const noexcept { if (!is_valid) { return true; } @@ -14817,6 +14816,11 @@ ada::result& get_instance(void* result) noexcept { extern "C" { typedef void* ada_url; +typedef void* ada_url_search_params; +typedef void* ada_strings; +typedef void* ada_url_search_params_keys_iter; +typedef void* ada_url_search_params_values_iter; +typedef void* ada_url_search_params_entries_iter; struct ada_string { const char* data; @@ -14828,6 +14832,11 @@ struct ada_owned_string { size_t length; }; +struct ada_string_pair { + ada_string key; + ada_string value; +}; + ada_string ada_string_create(const char* data, size_t length) { ada_string out{}; out.data = data; @@ -15267,6 +15276,256 @@ ada_owned_string ada_idna_to_ascii(const char* input, size_t length) { return owned; } +ada_url_search_params ada_parse_search_params(const char* input, + size_t length) { + return new ada::result( + ada::url_search_params(std::string_view(input, length))); +} + +void ada_free_search_params(ada_url_search_params result) { + ada::result* r = + (ada::result*)result; + delete r; +} + +ada_owned_string ada_search_params_to_string(ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (!r) return ada_owned_string{NULL, 0}; + std::string out = r->to_string(); + ada_owned_string owned{}; + owned.length = out.size(); + owned.data = new char[owned.length]; + memcpy((void*)owned.data, out.data(), owned.length); + return owned; +} + +size_t ada_search_params_size(ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (!r) return 0; + return r->size(); +} + +void ada_search_params_sort(ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (r) r->sort(); +} + +void ada_search_params_append(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length) { + ada::result& r = + *(ada::result*)result; + if (r) { + r->append(std::string_view(key, key_length), + std::string_view(value, value_length)); + } +} + +void ada_search_params_set(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length) { + ada::result& r = + *(ada::result*)result; + if (r) { + r->set(std::string_view(key, key_length), + std::string_view(value, value_length)); + } +} + +void ada_search_params_remove(ada_url_search_params result, const char* key, + size_t key_length) { + ada::result& r = + *(ada::result*)result; + if (r) { + r->remove(std::string_view(key, key_length)); + } +} + +void ada_search_params_remove_value(ada_url_search_params result, + const char* key, size_t key_length, + const char* value, size_t value_length) { + ada::result& r = + *(ada::result*)result; + if (r) { + r->remove(std::string_view(key, key_length), + std::string_view(value, value_length)); + } +} + +bool ada_search_params_has(ada_url_search_params result, const char* key, + size_t key_length) { + ada::result& r = + *(ada::result*)result; + if (!r) return false; + return r->has(std::string_view(key, key_length)); +} + +bool ada_search_params_has_value(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length) { + ada::result& r = + *(ada::result*)result; + if (!r) return false; + return r->has(std::string_view(key, key_length), + std::string_view(value, value_length)); +} + +ada_string ada_search_params_get(ada_url_search_params result, const char* key, + size_t key_length) { + ada::result& r = + *(ada::result*)result; + if (!r) return ada_string_create(NULL, 0); + auto found = r->get(std::string_view(key, key_length)); + if (!found.has_value()) return ada_string_create(NULL, 0); + return ada_string_create(found->data(), found->length()); +} + +ada_strings ada_search_params_get_all(ada_url_search_params result, + const char* key, size_t key_length) { + ada::result& r = + *(ada::result*)result; + if (!r) { + return new ada::result>( + std::vector()); + } + return new ada::result>( + r->get_all(std::string_view(key, key_length))); +} + +ada_url_search_params_keys_iter ada_search_params_get_keys( + ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (!r) { + return new ada::result( + ada::url_search_params_keys_iter()); + } + return new ada::result(r->get_keys()); +} + +ada_url_search_params_values_iter ada_search_params_get_values( + ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (!r) { + return new ada::result( + ada::url_search_params_values_iter()); + } + return new ada::result(r->get_values()); +} + +ada_url_search_params_entries_iter ada_search_params_get_entries( + ada_url_search_params result) { + ada::result& r = + *(ada::result*)result; + if (!r) { + return new ada::result( + ada::url_search_params_entries_iter()); + } + return new ada::result(r->get_entries()); +} + +void ada_free_strings(ada_strings result) { + ada::result>* r = + (ada::result>*)result; + delete r; +} + +size_t ada_strings_size(ada_strings result) { + ada::result>* r = + (ada::result>*)result; + if (!r) return 0; + return (*r)->size(); +} + +ada_string ada_strings_get(ada_strings result, size_t index) { + ada::result>* r = + (ada::result>*)result; + if (!r) return ada_string_create(NULL, 0); + std::string_view view = (*r)->at(index); + return ada_string_create(view.data(), view.length()); +} + +void ada_free_search_params_keys_iter(ada_url_search_params_keys_iter result) { + ada::result* r = + (ada::result*)result; + delete r; +} + +ada_string ada_search_params_keys_iter_next( + ada_url_search_params_keys_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return ada_string_create(NULL, 0); + auto next = (*r)->next(); + if (!next.has_value()) return ada_string_create(NULL, 0); + return ada_string_create(next->data(), next->length()); +} + +bool ada_search_params_keys_iter_has_next( + ada_url_search_params_keys_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return false; + return (*r)->has_next(); +} + +void ada_free_search_params_values_iter( + ada_url_search_params_values_iter result) { + ada::result* r = + (ada::result*)result; + delete r; +} + +ada_string ada_search_params_values_iter_next( + ada_url_search_params_values_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return ada_string_create(NULL, 0); + auto next = (*r)->next(); + if (!next.has_value()) return ada_string_create(NULL, 0); + return ada_string_create(next->data(), next->length()); +} + +bool ada_search_params_values_iter_has_next( + ada_url_search_params_values_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return false; + return (*r)->has_next(); +} + +void ada_free_search_params_entries_iter( + ada_url_search_params_entries_iter result) { + ada::result* r = + (ada::result*)result; + delete r; +} + +ada_string_pair ada_search_params_entries_iter_next( + ada_url_search_params_entries_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return {ada_string_create(NULL, 0), ada_string_create(NULL, 0)}; + auto next = (*r)->next(); + if (!next.has_value()) + return {ada_string_create(NULL, 0), ada_string_create(NULL, 0)}; + return ada_string_pair{ + ada_string_create(next->first.data(), next->first.length()), + ada_string_create(next->second.data(), next->second.length())}; +} + +bool ada_search_params_entries_iter_has_next( + ada_url_search_params_entries_iter result) { + ada::result* r = + (ada::result*)result; + if (!r) return false; + return (*r)->has_next(); +} + } // extern "C" /* end file src/ada_c.cpp */ /* end file src/ada.cpp */ diff --git a/deps/ada/ada.h b/deps/ada/ada.h index d6f705a5d6db67..6d98b37075f892 100644 --- a/deps/ada/ada.h +++ b/deps/ada/ada.h @@ -1,4 +1,4 @@ -/* auto-generated on 2023-09-30 20:34:30 -0400. Do not edit! */ +/* auto-generated on 2023-10-22 19:50:50 -0400. Do not edit! */ /* begin file include/ada.h */ /** * @file ada.h @@ -98,7 +98,7 @@ namespace ada::idna { /** * @see https://www.unicode.org/reports/tr46/#Validity_Criteria */ -bool is_label_valid(const std::u32string_view label); +bool is_label_valid(std::u32string_view label); } // namespace ada::idna @@ -479,14 +479,14 @@ namespace ada { #endif // ADA_COMMON_DEFS_H /* end file include/ada/common_defs.h */ -#include +#include /** * @namespace ada::character_sets * @brief Includes the definitions for unicode character sets. */ namespace ada::character_sets { -ada_really_inline bool bit_at(const uint8_t a[], const uint8_t i); +ada_really_inline bool bit_at(const uint8_t a[], uint8_t i); } // namespace ada::character_sets #endif // ADA_CHARACTER_SETS_H @@ -996,7 +996,7 @@ ada_really_inline bool bit_at(const uint8_t a[], const uint8_t i) { } // namespace ada::character_sets -#endif // ADA_CHARACTER_SETS_H +#endif // ADA_CHARACTER_SETS_INL_H /* end file include/ada/character_sets-inl.h */ /* begin file include/ada/checkers-inl.h */ /** @@ -1312,12 +1312,12 @@ struct url_components { * @return true if the offset values are * consistent with a possible URL string */ - bool check_offset_consistency() const noexcept; + [[nodiscard]] bool check_offset_consistency() const noexcept; /** * Converts a url_components to JSON stringified version. */ - std::string to_string() const; + [[nodiscard]] std::string to_string() const; }; // struct url_components @@ -1505,13 +1505,17 @@ struct url_base { * @return On failure, it returns zero. * @see https://url.spec.whatwg.org/#host-parsing */ - virtual ada_really_inline size_t parse_port( - std::string_view view, bool check_trailing_content = false) noexcept = 0; + virtual size_t parse_port(std::string_view view, + bool check_trailing_content) noexcept = 0; + + virtual ada_really_inline size_t parse_port(std::string_view view) noexcept { + return this->parse_port(view, false); + } /** * Returns a JSON string representation of this URL. */ - virtual std::string to_string() const = 0; + [[nodiscard]] virtual std::string to_string() const = 0; /** @private */ virtual inline void clear_pathname() = 0; @@ -1520,10 +1524,10 @@ struct url_base { virtual inline void clear_search() = 0; /** @private */ - virtual inline bool has_hash() const noexcept = 0; + [[nodiscard]] virtual inline bool has_hash() const noexcept = 0; /** @private */ - virtual inline bool has_search() const noexcept = 0; + [[nodiscard]] virtual inline bool has_search() const noexcept = 0; }; // url_base @@ -1593,7 +1597,7 @@ ada_really_inline bool shorten_path(std::string_view& path, * * @see https://url.spec.whatwg.org/ */ -ada_really_inline void parse_prepared_path(const std::string_view input, +ada_really_inline void parse_prepared_path(std::string_view input, ada::scheme::type type, std::string& path); @@ -4381,7 +4385,7 @@ constexpr ada::scheme::type get_scheme_type(std::string_view scheme) noexcept { } // namespace ada::scheme -#endif // ADA_SCHEME_H +#endif // ADA_SCHEME_INL_H /* end file include/ada/scheme-inl.h */ /* begin file include/ada/serializers.h */ /** @@ -4423,7 +4427,7 @@ std::string ipv6(const std::array& address) noexcept; * network address. * @see https://url.spec.whatwg.org/#concept-ipv4-serializer */ -std::string ipv4(const uint64_t address) noexcept; +std::string ipv4(uint64_t address) noexcept; } // namespace ada::serializers @@ -4508,8 +4512,7 @@ ada_really_inline bool has_tabs_or_newline( * Checks if the input is a forbidden host code point. * @see https://url.spec.whatwg.org/#forbidden-host-code-point */ -ada_really_inline constexpr bool is_forbidden_host_code_point( - const char c) noexcept; +ada_really_inline constexpr bool is_forbidden_host_code_point(char c) noexcept; /** * Checks if the input contains a forbidden domain code point. @@ -4533,12 +4536,12 @@ contains_forbidden_domain_code_point_or_upper(const char* input, * @see https://url.spec.whatwg.org/#forbidden-domain-code-point */ ada_really_inline constexpr bool is_forbidden_domain_code_point( - const char c) noexcept; + char c) noexcept; /** * Checks if the input is alphanumeric, '+', '-' or '.' */ -ada_really_inline constexpr bool is_alnum_plus(const char c) noexcept; +ada_really_inline constexpr bool is_alnum_plus(char c) noexcept; /** * @details An ASCII hex digit is an ASCII upper hex digit or ASCII lower hex @@ -4546,7 +4549,7 @@ ada_really_inline constexpr bool is_alnum_plus(const char c) noexcept; * range U+0041 (A) to U+0046 (F), inclusive. An ASCII lower hex digit is an * ASCII digit or a code point in the range U+0061 (a) to U+0066 (f), inclusive. */ -ada_really_inline constexpr bool is_ascii_hex_digit(const char c) noexcept; +ada_really_inline constexpr bool is_ascii_hex_digit(char c) noexcept; /** * Checks if the input is a C0 control or space character. @@ -4555,33 +4558,33 @@ ada_really_inline constexpr bool is_ascii_hex_digit(const char c) noexcept; * A C0 control is a code point in the range U+0000 NULL to U+001F INFORMATION * SEPARATOR ONE, inclusive. */ -ada_really_inline constexpr bool is_c0_control_or_space(const char c) noexcept; +ada_really_inline constexpr bool is_c0_control_or_space(char c) noexcept; /** * Checks if the input is a ASCII tab or newline character. * * @details An ASCII tab or newline is U+0009 TAB, U+000A LF, or U+000D CR. */ -ada_really_inline constexpr bool is_ascii_tab_or_newline(const char c) noexcept; +ada_really_inline constexpr bool is_ascii_tab_or_newline(char c) noexcept; /** * @details A double-dot path segment must be ".." or an ASCII case-insensitive * match for ".%2e", "%2e.", or "%2e%2e". */ ada_really_inline ada_constexpr bool is_double_dot_path_segment( - const std::string_view input) noexcept; + std::string_view input) noexcept; /** * @details A single-dot path segment must be "." or an ASCII case-insensitive * match for "%2e". */ ada_really_inline constexpr bool is_single_dot_path_segment( - const std::string_view input) noexcept; + std::string_view input) noexcept; /** * @details ipv4 character might contain 0-9 or a-f character ranges. */ -ada_really_inline constexpr bool is_lowercase_hex(const char c) noexcept; +ada_really_inline constexpr bool is_lowercase_hex(char c) noexcept; /** * @details Convert hex to binary. Caller is responsible to ensure that @@ -4597,20 +4600,20 @@ ada_really_inline unsigned constexpr convert_hex_to_binary(char c) noexcept; * @see https://github.com/nodejs/node/blob/main/src/node_url.cc#L245 * @see https://encoding.spec.whatwg.org/#utf-8-decode-without-bom */ -std::string percent_decode(const std::string_view input, size_t first_percent); +std::string percent_decode(std::string_view input, size_t first_percent); /** * Returns a percent-encoding string whether percent encoding was needed or not. * @see https://github.com/nodejs/node/blob/main/src/node_url.cc#L226 */ -std::string percent_encode(const std::string_view input, +std::string percent_encode(std::string_view input, const uint8_t character_set[]); /** * Returns a percent-encoded string version of input, while starting the percent * encoding at the provided index. * @see https://github.com/nodejs/node/blob/main/src/node_url.cc#L226 */ -std::string percent_encode(const std::string_view input, +std::string percent_encode(std::string_view input, const uint8_t character_set[], size_t index); /** * Returns true if percent encoding was needed, in which case, we store @@ -4620,13 +4623,13 @@ std::string percent_encode(const std::string_view input, * @see https://github.com/nodejs/node/blob/main/src/node_url.cc#L226 */ template -bool percent_encode(const std::string_view input, const uint8_t character_set[], +bool percent_encode(std::string_view input, const uint8_t character_set[], std::string& out); /** * Returns the index at which percent encoding should start, or (equivalently), * the length of the prefix that does not require percent encoding. */ -ada_really_inline size_t percent_encode_index(const std::string_view input, +ada_really_inline size_t percent_encode_index(std::string_view input, const uint8_t character_set[]); /** * Lowers the string in-place, assuming that the content is ASCII. @@ -4673,18 +4676,18 @@ struct url_aggregator : url_base { url_aggregator(url_aggregator &&u) noexcept = default; url_aggregator &operator=(url_aggregator &&u) noexcept = default; url_aggregator &operator=(const url_aggregator &u) = default; - ~url_aggregator() = default; - - bool set_href(const std::string_view input); - bool set_host(const std::string_view input); - bool set_hostname(const std::string_view input); - bool set_protocol(const std::string_view input); - bool set_username(const std::string_view input); - bool set_password(const std::string_view input); - bool set_port(const std::string_view input); - bool set_pathname(const std::string_view input); - void set_search(const std::string_view input); - void set_hash(const std::string_view input); + ~url_aggregator() override = default; + + bool set_href(std::string_view input); + bool set_host(std::string_view input); + bool set_hostname(std::string_view input); + bool set_protocol(std::string_view input); + bool set_username(std::string_view input); + bool set_password(std::string_view input); + bool set_port(std::string_view input); + bool set_pathname(std::string_view input); + void set_search(std::string_view input); + void set_hash(std::string_view input); [[nodiscard]] bool has_valid_domain() const noexcept override; /** @@ -4702,7 +4705,7 @@ struct url_aggregator : url_base { * @see https://url.spec.whatwg.org/#dom-url-href * @see https://url.spec.whatwg.org/#concept-url-serializer */ - inline std::string_view get_href() const noexcept; + [[nodiscard]] inline std::string_view get_href() const noexcept; /** * The username getter steps are to return this's URL's username. * This function does not allocate memory. @@ -4762,7 +4765,7 @@ struct url_aggregator : url_base { * @return size of the pathname in bytes * @see https://url.spec.whatwg.org/#dom-url-pathname */ - ada_really_inline uint32_t get_pathname_length() const noexcept; + [[nodiscard]] ada_really_inline uint32_t get_pathname_length() const noexcept; /** * Return U+003F (?), followed by this's URL's query. * This function does not allocate memory. @@ -4811,18 +4814,18 @@ struct url_aggregator : url_base { /** * Returns a string representation of this URL. */ - std::string to_string() const override; + [[nodiscard]] std::string to_string() const override; /** * Returns a string diagram of this URL. */ - std::string to_diagram() const; + [[nodiscard]] std::string to_diagram() const; /** * Verifies that the parsed URL could be valid. Useful for debugging purposes. * @return true if the URL is valid, otherwise return true of the offsets are * possible. */ - bool validate() const noexcept; + [[nodiscard]] bool validate() const noexcept; /** @return true if it has an host but it is the empty string */ [[nodiscard]] inline bool has_empty_hostname() const noexcept; @@ -4869,9 +4872,12 @@ struct url_aggregator : url_base { */ inline void reserve(uint32_t capacity); - ada_really_inline size_t - parse_port(std::string_view view, - bool check_trailing_content = false) noexcept override; + ada_really_inline size_t parse_port( + std::string_view view, bool check_trailing_content) noexcept override; + + ada_really_inline size_t parse_port(std::string_view view) noexcept override { + return this->parse_port(view, false); + } /** * Return true on success. @@ -4900,7 +4906,7 @@ struct url_aggregator : url_base { [[nodiscard]] inline bool cannot_have_credentials_or_port() const; template - bool set_host_or_hostname(const std::string_view input); + bool set_host_or_hostname(std::string_view input); ada_really_inline bool parse_host(std::string_view input); @@ -4911,26 +4917,26 @@ struct url_aggregator : url_base { inline void update_base_search(std::string_view input); inline void update_base_search(std::string_view input, const uint8_t *query_percent_encode_set); - inline void update_base_pathname(const std::string_view input); - inline void update_base_username(const std::string_view input); - inline void append_base_username(const std::string_view input); - inline void update_base_password(const std::string_view input); - inline void append_base_password(const std::string_view input); + inline void update_base_pathname(std::string_view input); + inline void update_base_username(std::string_view input); + inline void append_base_username(std::string_view input); + inline void update_base_password(std::string_view input); + inline void append_base_password(std::string_view input); inline void update_base_port(uint32_t input); - inline void append_base_pathname(const std::string_view input); - inline uint32_t retrieve_base_port() const; + inline void append_base_pathname(std::string_view input); + [[nodiscard]] inline uint32_t retrieve_base_port() const; inline void clear_hostname(); inline void clear_password(); inline void clear_pathname() override; - inline bool has_dash_dot() const noexcept; + [[nodiscard]] inline bool has_dash_dot() const noexcept; void delete_dash_dot(); inline void consume_prepared_path(std::string_view input); template [[nodiscard]] ada_really_inline bool parse_scheme_with_colon( - const std::string_view input); + std::string_view input); ada_really_inline uint32_t replace_and_resize(uint32_t start, uint32_t end, std::string_view input); - inline bool has_authority() const noexcept; + [[nodiscard]] inline bool has_authority() const noexcept; inline void set_protocol_as_file(); inline void set_scheme(std::string_view new_scheme) noexcept; /** @@ -5092,7 +5098,7 @@ struct url : url_base { url(url &&u) noexcept = default; url &operator=(url &&u) noexcept = default; url &operator=(const url &u) = default; - ~url() = default; + ~url() override = default; /** * @private @@ -5153,7 +5159,7 @@ struct url : url_base { /** * Returns a JSON string representation of this URL. */ - std::string to_string() const override; + [[nodiscard]] std::string to_string() const override; /** * @see https://url.spec.whatwg.org/#dom-url-href @@ -5200,7 +5206,7 @@ struct url : url_base { * @return a newly allocated string. * @see https://url.spec.whatwg.org/#dom-url-pathname */ - [[nodiscard]] const std::string_view get_pathname() const noexcept; + [[nodiscard]] std::string_view get_pathname() const noexcept; /** * Compute the pathname length in bytes without instantiating a view or a @@ -5208,7 +5214,7 @@ struct url : url_base { * @return size of the pathname in bytes * @see https://url.spec.whatwg.org/#dom-url-pathname */ - ada_really_inline size_t get_pathname_length() const noexcept; + [[nodiscard]] ada_really_inline size_t get_pathname_length() const noexcept; /** * Return U+003F (?), followed by this's URL's query. @@ -5228,60 +5234,60 @@ struct url : url_base { * @return Returns true on successful operation. * @see https://url.spec.whatwg.org/#dom-url-username */ - bool set_username(const std::string_view input); + bool set_username(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-password */ - bool set_password(const std::string_view input); + bool set_password(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-port */ - bool set_port(const std::string_view input); + bool set_port(std::string_view input); /** * This function always succeeds. * @see https://url.spec.whatwg.org/#dom-url-hash */ - void set_hash(const std::string_view input); + void set_hash(std::string_view input); /** * This function always succeeds. * @see https://url.spec.whatwg.org/#dom-url-search */ - void set_search(const std::string_view input); + void set_search(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-search */ - bool set_pathname(const std::string_view input); + bool set_pathname(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-host */ - bool set_host(const std::string_view input); + bool set_host(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-hostname */ - bool set_hostname(const std::string_view input); + bool set_hostname(std::string_view input); /** * @return Returns true on success. * @see https://url.spec.whatwg.org/#dom-url-protocol */ - bool set_protocol(const std::string_view input); + bool set_protocol(std::string_view input); /** * @see https://url.spec.whatwg.org/#dom-url-href */ - bool set_href(const std::string_view input); + bool set_href(std::string_view input); /** * The password getter steps are to return this's URL's password. @@ -5352,9 +5358,9 @@ struct url : url_base { inline void update_base_search(std::string_view input, const uint8_t query_percent_encode_set[]); inline void update_base_search(std::optional input); - inline void update_base_pathname(const std::string_view input); - inline void update_base_username(const std::string_view input); - inline void update_base_password(const std::string_view input); + inline void update_base_pathname(std::string_view input); + inline void update_base_username(std::string_view input); + inline void update_base_password(std::string_view input); inline void update_base_port(std::optional input); /** @@ -5400,9 +5406,12 @@ struct url : url_base { */ [[nodiscard]] inline bool cannot_have_credentials_or_port() const; - ada_really_inline size_t - parse_port(std::string_view view, - bool check_trailing_content = false) noexcept override; + ada_really_inline size_t parse_port( + std::string_view view, bool check_trailing_content) noexcept override; + + ada_really_inline size_t parse_port(std::string_view view) noexcept override { + return this->parse_port(view, false); + } /** * Take the scheme from another URL. The scheme string is copied from the @@ -5421,8 +5430,7 @@ struct url : url_base { [[nodiscard]] ada_really_inline bool parse_host(std::string_view input); template - [[nodiscard]] ada_really_inline bool parse_scheme( - const std::string_view input); + [[nodiscard]] ada_really_inline bool parse_scheme(std::string_view input); inline void clear_pathname() override; inline void clear_search() override; @@ -5438,7 +5446,7 @@ struct url : url_base { * * @see https://url.spec.whatwg.org/ */ - ada_really_inline void parse_path(const std::string_view input); + ada_really_inline void parse_path(std::string_view input); /** * Set the scheme for this URL. The provided scheme should be a valid @@ -5525,7 +5533,9 @@ inline std::ostream &operator<<(std::ostream &out, const ada::url &u) { return out << u.to_string(); } -size_t url::get_pathname_length() const noexcept { return path.size(); } +[[nodiscard]] size_t url::get_pathname_length() const noexcept { + return path.size(); +} [[nodiscard]] ada_really_inline ada::url_components url::get_components() const noexcept { @@ -5902,7 +5912,7 @@ inline void url_aggregator::update_base_hostname(const std::string_view input) { ADA_ASSERT_TRUE(validate()); } -ada_really_inline uint32_t +[[nodiscard]] ada_really_inline uint32_t url_aggregator::get_pathname_length() const noexcept { ada_log("url_aggregator::get_pathname_length"); uint32_t ending_index = uint32_t(buffer.size()); @@ -6337,7 +6347,7 @@ inline void url_aggregator::clear_port() { ADA_ASSERT_TRUE(validate()); } -inline uint32_t url_aggregator::retrieve_base_port() const { +[[nodiscard]] inline uint32_t url_aggregator::retrieve_base_port() const { ada_log("url_aggregator::retrieve_base_port"); return components.port; } @@ -6562,28 +6572,40 @@ inline bool url_aggregator::has_port() const noexcept { return has_hostname() && components.pathname_start != components.host_end; } -inline bool url_aggregator::has_dash_dot() const noexcept { +[[nodiscard]] inline bool url_aggregator::has_dash_dot() const noexcept { // If url's host is null, url does not have an opaque path, url's path's size // is greater than 1, and url's path[0] is the empty string, then append // U+002F (/) followed by U+002E (.) to output. ada_log("url_aggregator::has_dash_dot"); - // Performance: instead of doing this potentially expensive check, we could - // just have a boolean value in the structure. #if ADA_DEVELOPMENT_CHECKS - if (components.pathname_start + 1 < buffer.size() && - components.pathname_start == components.host_end + 2) { - ADA_ASSERT_TRUE(buffer[components.host_end] == '/'); - ADA_ASSERT_TRUE(buffer[components.host_end + 1] == '.'); + // If pathname_start and host_end are exactly two characters apart, then we + // either have a one-digit port such as http://test.com:5?param=1 or else we + // have a /.: sequence such as "non-spec:/.//". We test that this is the case. + if (components.pathname_start == components.host_end + 2) { + ADA_ASSERT_TRUE((buffer[components.host_end] == '/' && + buffer[components.host_end + 1] == '.') || + (buffer[components.host_end] == ':' && + checkers::is_digit(buffer[components.host_end + 1]))); + } + if (components.pathname_start == components.host_end + 2 && + buffer[components.host_end] == '/' && + buffer[components.host_end + 1] == '.') { + ADA_ASSERT_TRUE(components.pathname_start + 1 < buffer.size()); ADA_ASSERT_TRUE(buffer[components.pathname_start] == '/'); ADA_ASSERT_TRUE(buffer[components.pathname_start + 1] == '/'); } #endif - return !has_opaque_path && - components.pathname_start == components.host_end + 2 && - components.pathname_start + 1 < buffer.size(); + // Performance: it should be uncommon for components.pathname_start == + // components.host_end + 2 to be true. So we put this check first in the + // sequence. Most times, we do not have an opaque path. Checking for '/.' is + // more expensive, but should be uncommon. + return components.pathname_start == components.host_end + 2 && + !has_opaque_path && buffer[components.host_end] == '/' && + buffer[components.host_end + 1] == '.'; } -inline std::string_view url_aggregator::get_href() const noexcept { +[[nodiscard]] inline std::string_view url_aggregator::get_href() + const noexcept { ada_log("url_aggregator::get_href"); return buffer; } @@ -6675,6 +6697,26 @@ inline std::ostream &operator<<(std::ostream &out, namespace ada { +enum class url_search_params_iter_type { + KEYS, + VALUES, + ENTRIES, +}; + +template +struct url_search_params_iter; + +typedef std::pair key_value_view_pair; + +using url_search_params_keys_iter = + url_search_params_iter; +using url_search_params_values_iter = + url_search_params_iter; +using url_search_params_entries_iter = + url_search_params_iter; + /** * @see https://url.spec.whatwg.org/#interface-urlsearchparams */ @@ -6737,6 +6779,42 @@ struct url_search_params { */ inline std::string to_string(); + /** + * Returns a simple JS-style iterator over all of the keys in this + * url_search_params. The keys in the iterator are not unique. The valid + * lifespan of the iterator is tied to the url_search_params. The iterator + * must be freed when you're done with it. + * @see https://url.spec.whatwg.org/#interface-urlsearchparams + */ + inline url_search_params_keys_iter get_keys(); + + /** + * Returns a simple JS-style iterator over all of the values in this + * url_search_params. The valid lifespan of the iterator is tied to the + * url_search_params. The iterator must be freed when you're done with it. + * @see https://url.spec.whatwg.org/#interface-urlsearchparams + */ + inline url_search_params_values_iter get_values(); + + /** + * Returns a simple JS-style iterator over all of the entries in this + * url_search_params. The entries are pairs of keys and corresponding values. + * The valid lifespan of the iterator is tied to the url_search_params. The + * iterator must be freed when you're done with it. + * @see https://url.spec.whatwg.org/#interface-urlsearchparams + */ + inline url_search_params_entries_iter get_entries(); + + /** + * C++ style conventional iterator support. const only because we + * do not really want the params to be modified via the iterator. + */ + inline auto begin() const { return params.begin(); } + inline auto end() const { return params.end(); } + inline auto front() const { return params.front(); } + inline auto back() const { return params.back(); } + inline auto operator[](size_t index) const { return params[index]; } + private: typedef std::pair key_value_pair; std::vector params{}; @@ -6745,8 +6823,44 @@ struct url_search_params { * @see https://url.spec.whatwg.org/#concept-urlencoded-parser */ void initialize(std::string_view init); + + template + friend struct url_search_params_iter; }; // url_search_params +/** + * Implements a non-conventional iterator pattern that is closer in style to + * JavaScript's definition of an iterator. + * + * @see https://webidl.spec.whatwg.org/#idl-iterable + */ +template +struct url_search_params_iter { + inline url_search_params_iter() : params(EMPTY) {} + url_search_params_iter(const url_search_params_iter &u) = default; + url_search_params_iter(url_search_params_iter &&u) noexcept = default; + url_search_params_iter &operator=(url_search_params_iter &&u) noexcept = + default; + url_search_params_iter &operator=(const url_search_params_iter &u) = default; + ~url_search_params_iter() = default; + + /** + * Return the next item in the iterator or std::nullopt if done. + */ + inline std::optional next(); + + inline bool has_next(); + + private: + static url_search_params EMPTY; + inline url_search_params_iter(url_search_params ¶ms_) : params(params_) {} + + url_search_params ¶ms; + size_t pos = 0; + + friend struct url_search_params; +}; + } // namespace ada #endif /* end file include/ada/url_search_params.h */ @@ -6767,6 +6881,10 @@ struct url_search_params { namespace ada { +// A default, empty url_search_params for use with empty iterators. +template +url_search_params url_search_params_iter::EMPTY; + inline void url_search_params::initialize(std::string_view input) { if (!input.empty() && input.front() == '?') { input.remove_prefix(1); @@ -6914,6 +7032,48 @@ inline void url_search_params::sort() { }); } +inline url_search_params_keys_iter url_search_params::get_keys() { + return url_search_params_keys_iter(*this); +} + +/** + * @see https://url.spec.whatwg.org/#interface-urlsearchparams + */ +inline url_search_params_values_iter url_search_params::get_values() { + return url_search_params_values_iter(*this); +} + +/** + * @see https://url.spec.whatwg.org/#interface-urlsearchparams + */ +inline url_search_params_entries_iter url_search_params::get_entries() { + return url_search_params_entries_iter(*this); +} + +template +inline bool url_search_params_iter::has_next() { + return pos < params.params.size(); +} + +template <> +inline std::optional url_search_params_keys_iter::next() { + if (!has_next()) return std::nullopt; + return params.params[pos++].first; +} + +template <> +inline std::optional url_search_params_values_iter::next() { + if (!has_next()) return std::nullopt; + return params.params[pos++].second; +} + +template <> +inline std::optional +url_search_params_entries_iter::next() { + if (!has_next()) return std::nullopt; + return params.params[pos++]; +} + } // namespace ada #endif // ADA_URL_SEARCH_PARAMS_INL_H @@ -6928,14 +7088,14 @@ inline void url_search_params::sort() { #ifndef ADA_ADA_VERSION_H #define ADA_ADA_VERSION_H -#define ADA_VERSION "2.6.10" +#define ADA_VERSION "2.7.2" namespace ada { enum { ADA_VERSION_MAJOR = 2, - ADA_VERSION_MINOR = 6, - ADA_VERSION_REVISION = 10, + ADA_VERSION_MINOR = 7, + ADA_VERSION_REVISION = 2, }; } // namespace ada diff --git a/deps/ada/ada_c.h b/deps/ada/ada_c.h index 040915518f32a0..173e27bb16af06 100644 --- a/deps/ada/ada_c.h +++ b/deps/ada/ada_c.h @@ -109,4 +109,77 @@ const ada_url_components* ada_get_components(ada_url result); ada_owned_string ada_idna_to_unicode(const char* input, size_t length); ada_owned_string ada_idna_to_ascii(const char* input, size_t length); +// url search params +typedef void* ada_url_search_params; + +// Represents an std::vector +typedef void* ada_strings; +typedef void* ada_url_search_params_keys_iter; +typedef void* ada_url_search_params_values_iter; + +typedef struct { + ada_string key; + ada_string value; +} ada_string_pair; + +typedef void* ada_url_search_params_entries_iter; + +ada_url_search_params ada_parse_search_params(const char* input, size_t length); +void ada_free_search_params(ada_url_search_params result); + +size_t ada_search_params_size(ada_url_search_params result); +void ada_search_params_sort(ada_url_search_params result); +ada_owned_string ada_search_params_to_string(ada_url_search_params result); + +void ada_search_params_append(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length); +void ada_search_params_set(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length); +void ada_search_params_remove(ada_url_search_params result, const char* key, + size_t key_length); +void ada_search_params_remove_value(ada_url_search_params result, + const char* key, size_t key_length, + const char* value, size_t value_length); +bool ada_search_params_has(ada_url_search_params result, const char* key, + size_t key_length); +bool ada_search_params_has_value(ada_url_search_params result, const char* key, + size_t key_length, const char* value, + size_t value_length); +ada_string ada_search_params_get(ada_url_search_params result, const char* key, + size_t key_length); +ada_strings ada_search_params_get_all(ada_url_search_params result, + const char* key, size_t key_length); +ada_url_search_params_keys_iter ada_search_params_get_keys( + ada_url_search_params result); +ada_url_search_params_values_iter ada_search_params_get_values( + ada_url_search_params result); +ada_url_search_params_entries_iter ada_search_params_get_entries( + ada_url_search_params result); + +void ada_free_strings(ada_strings result); +size_t ada_strings_size(ada_strings result); +ada_string ada_strings_get(ada_strings result, size_t index); + +void ada_free_search_params_keys_iter(ada_url_search_params_keys_iter result); +ada_string ada_search_params_keys_iter_next( + ada_url_search_params_keys_iter result); +bool ada_search_params_keys_iter_has_next( + ada_url_search_params_keys_iter result); + +void ada_free_search_params_values_iter( + ada_url_search_params_values_iter result); +ada_string ada_search_params_values_iter_next( + ada_url_search_params_values_iter result); +bool ada_search_params_values_iter_has_next( + ada_url_search_params_values_iter result); + +void ada_free_search_params_entries_iter( + ada_url_search_params_entries_iter result); +ada_string_pair ada_search_params_entries_iter_next( + ada_url_search_params_entries_iter result); +bool ada_search_params_entries_iter_has_next( + ada_url_search_params_entries_iter result); + #endif // ADA_C_H diff --git a/doc/contributing/maintaining/maintaining-dependencies.md b/doc/contributing/maintaining/maintaining-dependencies.md index f350a52c931a37..3fd556123df89b 100644 --- a/doc/contributing/maintaining/maintaining-dependencies.md +++ b/doc/contributing/maintaining/maintaining-dependencies.md @@ -9,7 +9,7 @@ All dependencies are located within the `deps` directory. This a list of all the dependencies: * [acorn 8.10.0][] -* [ada 2.6.10][] +* [ada 2.7.2][] * [base64 0.5.0][] * [brotli 1.0.9][] * [c-ares 1.20.1][] @@ -150,7 +150,7 @@ The [acorn](https://github.com/acornjs/acorn) dependency is a JavaScript parser. [acorn-walk](https://github.com/acornjs/acorn/tree/master/acorn-walk) is an abstract syntax tree walker for the ESTree format. -### ada 2.6.10 +### ada 2.7.2 The [ada](https://github.com/ada-url/ada) dependency is a fast and spec-compliant URL parser written in C++. @@ -319,7 +319,7 @@ it comes from the Chromium team's zlib fork which incorporated performance improvements not currently available in standard zlib. [acorn 8.10.0]: #acorn-8100 -[ada 2.6.10]: #ada-2610 +[ada 2.7.2]: #ada-272 [base64 0.5.0]: #base64-050 [brotli 1.0.9]: #brotli-109 [c-ares 1.20.1]: #c-ares-1201 From 3b867e42563edd053ae7ef9bbb339dbba25e552d Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Mon, 23 Oct 2023 18:01:59 +0200 Subject: [PATCH 215/232] esm: do not give wrong hints when detecting file format PR-URL: https://github.com/nodejs/node/pull/50314 Reviewed-By: Geoffrey Booth Reviewed-By: Moshe Atlow --- lib/internal/modules/esm/get_format.js | 16 +++++++++---- lib/internal/modules/esm/load.js | 24 ++++++++++++-------- test/es-module/test-esm-detect-ambiguous.mjs | 23 +++++++++++++++++++ 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/lib/internal/modules/esm/get_format.js b/lib/internal/modules/esm/get_format.js index ee50bea472758d..1931688e85d05e 100644 --- a/lib/internal/modules/esm/get_format.js +++ b/lib/internal/modules/esm/get_format.js @@ -110,8 +110,10 @@ function getFileProtocolModuleFormat(url, context = { __proto__: null }, ignoreE default: { // The user did not pass `--experimental-default-type`. // `source` is undefined when this is called from `defaultResolve`; // but this gets called again from `defaultLoad`/`defaultLoadSync`. - if (source && getOptionValue('--experimental-detect-module')) { - return containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs'; + if (getOptionValue('--experimental-detect-module')) { + return source ? + (containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs') : + null; } return 'commonjs'; } @@ -136,9 +138,13 @@ function getFileProtocolModuleFormat(url, context = { __proto__: null }, ignoreE return 'commonjs'; } default: { // The user did not pass `--experimental-default-type`. - if (source && getOptionValue('--experimental-detect-module') && - getFormatOfExtensionlessFile(url) === 'module') { - return containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs'; + if (getOptionValue('--experimental-detect-module')) { + if (!source) { return null; } + const format = getFormatOfExtensionlessFile(url); + if (format === 'module') { + return containsModuleSyntax(`${source}`, fileURLToPath(url)) ? 'module' : 'commonjs'; + } + return format; } return 'commonjs'; } diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js index f706b5b808da27..6f9b73abd8a761 100644 --- a/lib/internal/modules/esm/load.js +++ b/lib/internal/modules/esm/load.js @@ -105,7 +105,7 @@ function getSourceSync(url, context) { * @param {LoadContext} context * @returns {LoadReturn} */ -async function defaultLoad(url, context = { __proto__: null }) { +async function defaultLoad(url, context = kEmptyObject) { let responseURL = url; let { importAttributes, @@ -129,18 +129,22 @@ async function defaultLoad(url, context = { __proto__: null }) { if (urlInstance.protocol === 'node:') { source = null; - } else if (source == null) { - ({ responseURL, source } = await getSource(urlInstance, context)); - context.source = source; - } + format ??= 'builtin'; + } else { + let contextToPass = context; + if (source == null) { + ({ responseURL, source } = await getSource(urlInstance, context)); + contextToPass = { __proto__: context, source }; + } - if (format == null || format === 'commonjs') { // Now that we have the source for the module, run `defaultGetFormat` again in case we detect ESM syntax. - format = await defaultGetFormat(urlInstance, context); - } + format ??= await defaultGetFormat(urlInstance, contextToPass); - if (format === 'commonjs') { - source = null; // Let the CommonJS loader handle it (for now) + if (format === 'commonjs' && contextToPass !== context) { + // For backward compatibility reasons, we need to discard the source in + // order for the CJS loader to re-fetch it. + source = null; + } } validateAttributes(url, format, importAttributes); diff --git a/test/es-module/test-esm-detect-ambiguous.mjs b/test/es-module/test-esm-detect-ambiguous.mjs index 61629965518a82..34c5f17f007c8f 100644 --- a/test/es-module/test-esm-detect-ambiguous.mjs +++ b/test/es-module/test-esm-detect-ambiguous.mjs @@ -152,6 +152,29 @@ describe('--experimental-detect-module', { concurrency: true }, () => { strictEqual(signal, null); }); } + + it('should not hint wrong format in resolve hook', async () => { + let writeSync; + const { stdout, stderr, code, signal } = await spawnPromisified(process.execPath, [ + '--experimental-detect-module', + '--no-warnings', + '--loader', + `data:text/javascript,import { writeSync } from "node:fs"; export ${encodeURIComponent( + async function resolve(s, c, next) { + const result = await next(s, c); + writeSync(1, result.format + '\n'); + return result; + } + )}`, + fixtures.path('es-modules/package-without-type/noext-esm'), + ]); + + strictEqual(stderr, ''); + strictEqual(stdout, 'null\nexecuted\n'); + strictEqual(code, 0); + strictEqual(signal, null); + + }); }); describe('file input in a "type": "commonjs" package', { concurrency: true }, () => { From d164e537bf85925fc9850ef19050d5e848cb404a Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Fri, 6 Oct 2023 16:59:35 +0200 Subject: [PATCH 216/232] test,crypto: update WebCryptoAPI WPT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/50039 Reviewed-By: Tobias Nießen Reviewed-By: Yagiz Nizipli Reviewed-By: Matthew Aitken --- test/fixtures/wpt/README.md | 2 +- .../import_export/okp_importKey.https.any.js | 32 +++++++++++++++++++ .../wpt/WebCryptoAPI/sign_verify/eddsa.js | 1 + .../wpt/WebCryptoAPI/sign_verify/hmac.js | 1 + test/fixtures/wpt/versions.json | 2 +- 5 files changed, 36 insertions(+), 2 deletions(-) diff --git a/test/fixtures/wpt/README.md b/test/fixtures/wpt/README.md index 6bcd1e51efd83b..6404571a498200 100644 --- a/test/fixtures/wpt/README.md +++ b/test/fixtures/wpt/README.md @@ -31,7 +31,7 @@ Last update: - user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing - wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi - wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi -- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/f4e7e32fd0/WebCryptoAPI +- WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/d4e14d714c/WebCryptoAPI - webidl/ecmascript-binding/es-exceptions: https://github.com/web-platform-tests/wpt/tree/a370aad338/webidl/ecmascript-binding/es-exceptions - webmessaging/broadcastchannel: https://github.com/web-platform-tests/wpt/tree/e97fac4791/webmessaging/broadcastchannel diff --git a/test/fixtures/wpt/WebCryptoAPI/import_export/okp_importKey.https.any.js b/test/fixtures/wpt/WebCryptoAPI/import_export/okp_importKey.https.any.js index a0ec3e81c877e1..a56bd31cbe14b1 100644 --- a/test/fixtures/wpt/WebCryptoAPI/import_export/okp_importKey.https.any.js +++ b/test/fixtures/wpt/WebCryptoAPI/import_export/okp_importKey.https.any.js @@ -81,6 +81,11 @@ } testFormat(format, algorithm, data, vector.name, usages, extractable); + + // Test for https://github.com/WICG/webcrypto-secure-curves/pull/24 + if (format === "jwk" && extractable) { + testJwkAlgBehaviours(algorithm, data.jwk, vector.name, usages); + } }); }); @@ -92,6 +97,11 @@ var data = keyData[vector.name]; testFormat(format, algorithm, data, vector.name, usages, extractable); + + // Test for https://github.com/WICG/webcrypto-secure-curves/pull/24 + if (format === "jwk" && extractable) { + testJwkAlgBehaviours(algorithm, data.jwk, vector.name, usages); + } }); }); }); @@ -126,6 +136,28 @@ }, "Good parameters: " + keySize.toString() + " bits " + parameterString(format, keyData[format], algorithm, extractable, usages)); } + // Test importKey/exportKey "alg" behaviours, alg is ignored upon import and alg is missing for Ed25519 and Ed448 JWK export + // https://github.com/WICG/webcrypto-secure-curves/pull/24 + function testJwkAlgBehaviours(algorithm, keyData, crv, usages) { + promise_test(function(test) { + return subtle.importKey('jwk', { ...keyData, alg: 'this is ignored' }, algorithm, true, usages). + then(function(key) { + assert_equals(key.constructor, CryptoKey, "Imported a CryptoKey object"); + + return subtle.exportKey('jwk', key). + then(function(result) { + assert_equals(Object.keys(result).length, keyData.d ? 6 : 5, "Correct number of JWK members"); + assert_equals(result.alg, undefined, 'No JWK "alg" member is present'); + assert_true(equalJwk(keyData, result), "Round trip works"); + }, function(err) { + assert_unreached("Threw an unexpected error: " + err.toString()); + }); + }, function(err) { + assert_unreached("Threw an unexpected error: " + err.toString()); + }); + }, "Good parameters with ignored JWK alg: " + crv.toString() + " " + parameterString('jwk', keyData, algorithm, true, usages)); + } + // Helper methods follow: diff --git a/test/fixtures/wpt/WebCryptoAPI/sign_verify/eddsa.js b/test/fixtures/wpt/WebCryptoAPI/sign_verify/eddsa.js index d425fec2dc343e..d77a8808831176 100644 --- a/test/fixtures/wpt/WebCryptoAPI/sign_verify/eddsa.js +++ b/test/fixtures/wpt/WebCryptoAPI/sign_verify/eddsa.js @@ -167,6 +167,7 @@ function run_test() { promise_test(function(test) { return subtle.sign(algorithm, vector.privateKey, vector.data) .then(function(signature) { + assert_true(equalBuffers(signature, vector.signature), "Signing did not give the expected output"); // Can we verify the signature? return subtle.verify(algorithm, vector.publicKey, signature, vector.data) .then(function(is_verified) { diff --git a/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.js b/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.js index 8df4b042f54cf6..f5e2ad2769cdd8 100644 --- a/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.js +++ b/test/fixtures/wpt/WebCryptoAPI/sign_verify/hmac.js @@ -117,6 +117,7 @@ function run_test() { promise_test(function(test) { return subtle.sign({name: "HMAC", hash: vector.hash}, vector.key, vector.plaintext) .then(function(signature) { + assert_true(equalBuffers(signature, vector.signature), "Signing did not give the expected output"); // Can we get the verify the new signature? return subtle.verify({name: "HMAC", hash: vector.hash}, vector.key, signature, vector.plaintext) .then(function(is_verified) { diff --git a/test/fixtures/wpt/versions.json b/test/fixtures/wpt/versions.json index 27daee082506fb..4b28c06e6c40df 100644 --- a/test/fixtures/wpt/versions.json +++ b/test/fixtures/wpt/versions.json @@ -84,7 +84,7 @@ "path": "wasm/webapi" }, "WebCryptoAPI": { - "commit": "f4e7e32fd0d4937f5b024602c6bf665ebeb1fa17", + "commit": "d4e14d714c5242e174ba9aec43caf5eb514d0f09", "path": "WebCryptoAPI" }, "webidl/ecmascript-binding/es-exceptions": { From 81886c66d16f11b6c4133374099f4c5bf856d347 Mon Sep 17 00:00:00 2001 From: Niya Shiyas Date: Sun, 24 Sep 2023 15:42:12 +0530 Subject: [PATCH 217/232] test: replace forEach with for..of in test-http-url PR-URL: https://github.com/nodejs/node/pull/49840 Reviewed-By: Luigi Pinca --- .../test-http-url.parse-only-support-http-https-protocol.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http-url.parse-only-support-http-https-protocol.js b/test/parallel/test-http-url.parse-only-support-http-https-protocol.js index 9b2a575ba7b1d7..3f6633075c6aec 100644 --- a/test/parallel/test-http-url.parse-only-support-http-https-protocol.js +++ b/test/parallel/test-http-url.parse-only-support-http-https-protocol.js @@ -34,7 +34,7 @@ const invalidUrls = [ 'f://some.host/path', ]; -invalidUrls.forEach((invalid) => { +for (const invalid of invalidUrls) { assert.throws( () => { http.request(url.parse(invalid)); }, { @@ -42,4 +42,4 @@ invalidUrls.forEach((invalid) => { name: 'TypeError' } ); -}); +} From 8dd895e5740c4d7007943e34e48e1d68c2d8e532 Mon Sep 17 00:00:00 2001 From: Niya Shiyas <98641481+niyashiyas@users.noreply.github.com> Date: Sat, 7 Oct 2023 16:07:26 +0530 Subject: [PATCH 218/232] test: replace forEach with for..of in test-process-env MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/49825 Reviewed-By: Luigi Pinca Reviewed-By: Tobias Nießen --- test/parallel/test-process-env-ignore-getter-setter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-process-env-ignore-getter-setter.js b/test/parallel/test-process-env-ignore-getter-setter.js index 677960570a0bc1..e17e3752856e81 100644 --- a/test/parallel/test-process-env-ignore-getter-setter.js +++ b/test/parallel/test-process-env-ignore-getter-setter.js @@ -40,7 +40,7 @@ assert.throws( const attributes = ['configurable', 'writable', 'enumerable']; -attributes.forEach((attribute) => { +for (const attribute of attributes) { assert.throws( () => { Object.defineProperty(process.env, 'goo', { @@ -55,7 +55,7 @@ attributes.forEach((attribute) => { ' and enumerable data descriptor' } ); -}); +} assert.strictEqual(process.env.goo, undefined); Object.defineProperty(process.env, 'goo', { From a6a05e8a88a6acd705a0b0508fcfbfcad80f02c1 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 2 Nov 2023 11:53:21 +0100 Subject: [PATCH 219/232] test: fix testsuite against zlib version 1.3 In the past, zlib versions had major.minor.micro formats, but with 1.3 this has been changed. Change the test code to accept one, two, or three elements past the major version. PR-URL: https://github.com/nodejs/node/pull/50364 Reviewed-By: Luigi Pinca Reviewed-By: Richard Lau --- test/parallel/test-process-versions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index 31886093df8cc2..1a4f6fbff07ea9 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -61,7 +61,7 @@ assert.match(process.versions.brotli, commonTemplate); assert.match(process.versions.llhttp, commonTemplate); assert.match(process.versions.node, commonTemplate); assert.match(process.versions.uv, commonTemplate); -assert.match(process.versions.zlib, /^\d+(?:\.\d+){2,3}(?:-.*)?$/); +assert.match(process.versions.zlib, /^\d+(?:\.\d+){1,3}(?:-.*)?$/); if (hasUndici) { assert.match(process.versions.undici, commonTemplate); From 41ca1132ebb21442339d59cbf1497368ae370bc8 Mon Sep 17 00:00:00 2001 From: Kerem Kat Date: Fri, 27 Oct 2023 19:01:10 +0100 Subject: [PATCH 220/232] test: fix crypto-dh error message for OpenSSL 3.x OpenSSL 3.0.12 and 3.1.4 changes the type of error short keys and IVs cause. The error message in test-crypto-dh for the "empty secret" is now 'Supplied key is too small' instead of 'error:02800080:Diffie-Hellman routines::invalid secret'. Error message change is test-only and uses the right error message for versions >=3.0.12 in 3.0.x and >= 3.1.4 in 3.1.x series. ref. https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=0df40630850fb2740e6be6890bb905d3fc623b2d ref. https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=5f69f5c65e483928c4b28ed16af6e5742929f1ee ref. https://www.openssl.org/news/vulnerabilities.html#CVE-2023-5363 PR-URL: https://github.com/nodejs/node/pull/50395 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca --- test/parallel/test-crypto-dh.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js index abbe1abe7e53d7..3b738b7f47ec59 100644 --- a/test/parallel/test-crypto-dh.js +++ b/test/parallel/test-crypto-dh.js @@ -85,11 +85,15 @@ const crypto = require('crypto'); }, wrongBlockLength); } - assert.throws(() => { - dh3.computeSecret(''); - }, { message: common.hasOpenSSL3 ? - 'error:02800080:Diffie-Hellman routines::invalid secret' : - 'Supplied key is too small' }); + { + const v = crypto.constants.OPENSSL_VERSION_NUMBER; + const hasOpenSSL3WithNewErrorMessage = (v >= 0x300000c0 && v <= 0x30100000) || (v >= 0x30100040 && v <= 0x30200000); + assert.throws(() => { + dh3.computeSecret(''); + }, { message: common.hasOpenSSL3 && !hasOpenSSL3WithNewErrorMessage ? + 'error:02800080:Diffie-Hellman routines::invalid secret' : + 'Supplied key is too small' }); + } } // Through a fluke of history, g=0 defaults to DH_GENERATOR (2). From 4e34f9a26e2dc57c1b54c66bf40fe8e075c02ca4 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Wed, 8 Nov 2023 21:20:43 +0100 Subject: [PATCH 221/232] test: relax version check with shared OpenSSL Relax the OpenSSL version check when Node.js is built with the `--shared-openssl` option. Verify only that `process.versions.openssl` is truthy. Fixes: https://github.com/nodejs/node/issues/43078 PR-URL: https://github.com/nodejs/node/pull/50505 Reviewed-By: Richard Lau --- test/parallel/test-process-versions.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index 1a4f6fbff07ea9..98dbda9ee8f20b 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -75,13 +75,17 @@ assert.match(process.versions.modules, /^\d+$/); assert.match(process.versions.cjs_module_lexer, commonTemplate); if (common.hasCrypto) { - const versionRegex = common.hasOpenSSL3 ? - // The following also matches a development version of OpenSSL 3.x which - // can be in the format '3.0.0-alpha4-dev'. This can be handy when building - // and linking against the main development branch of OpenSSL. - /^\d+\.\d+\.\d+(?:[-+][a-z0-9]+)*$/ : - /^\d+\.\d+\.\d+[a-z]?(\+quic)?(-fips)?$/; - assert.match(process.versions.openssl, versionRegex); + if (process.config.variables.node_shared_openssl) { + assert.ok(process.versions.openssl); + } else { + const versionRegex = common.hasOpenSSL3 ? + // The following also matches a development version of OpenSSL 3.x which + // can be in the format '3.0.0-alpha4-dev'. This can be handy when + // building and linking against the main development branch of OpenSSL. + /^\d+\.\d+\.\d+(?:[-+][a-z0-9]+)*$/ : + /^\d+\.\d+\.\d+[a-z]?(\+quic)?(-fips)?$/; + assert.match(process.versions.openssl, versionRegex); + } } for (let i = 0; i < expected_keys.length; i++) { From 33081891801019b4442a3bec4f7835317c278589 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Thu, 26 Oct 2023 14:47:07 +0000 Subject: [PATCH 222/232] deps: upgrade openssl sources to quictls/openssl-3.0.12+quic1 PR-URL: https://github.com/nodejs/node/pull/50411 Reviewed-By: Richard Lau Reviewed-By: Rafael Gonzaga Reviewed-By: James M Snell --- deps/openssl/openssl/CHANGES.md | 36 +- .../openssl/Configurations/10-main.conf | 11 +- deps/openssl/openssl/Configurations/README.md | 6 + .../openssl/Configurations/unix-Makefile.tmpl | 294 +++++++------- deps/openssl/openssl/INSTALL.md | 4 +- deps/openssl/openssl/NEWS.md | 12 + deps/openssl/openssl/README-OpenSSL.md | 2 +- deps/openssl/openssl/README.md | 2 +- deps/openssl/openssl/VERSION.dat | 4 +- deps/openssl/openssl/apps/cmp.c | 2 +- deps/openssl/openssl/apps/dgst.c | 2 + deps/openssl/openssl/apps/dhparam.c | 4 +- deps/openssl/openssl/apps/dsaparam.c | 4 +- deps/openssl/openssl/apps/enc.c | 5 +- deps/openssl/openssl/apps/gendsa.c | 4 +- deps/openssl/openssl/apps/genpkey.c | 4 +- deps/openssl/openssl/apps/genrsa.c | 4 +- deps/openssl/openssl/apps/lib/apps.c | 21 +- deps/openssl/openssl/apps/req.c | 10 +- deps/openssl/openssl/apps/s_server.c | 2 +- deps/openssl/openssl/apps/speed.c | 3 +- deps/openssl/openssl/appveyor.yml | 82 ---- .../openssl/crypto/aes/asm/aesv8-armx.pl | 3 + deps/openssl/openssl/crypto/arm_arch.h | 7 +- deps/openssl/openssl/crypto/asn1/a_strnid.c | 4 +- deps/openssl/openssl/crypto/asn1/asn1_gen.c | 11 +- deps/openssl/openssl/crypto/bn/bn_gcd.c | 8 +- deps/openssl/openssl/crypto/build.info | 2 - .../openssl/crypto/chacha/asm/chacha-ia64.pl | 2 + deps/openssl/openssl/crypto/cmp/cmp_asn.c | 10 +- deps/openssl/openssl/crypto/cmp/cmp_client.c | 2 +- deps/openssl/openssl/crypto/cmp/cmp_status.c | 7 +- deps/openssl/openssl/crypto/cms/cms_enc.c | 5 +- deps/openssl/openssl/crypto/cms/cms_env.c | 21 +- deps/openssl/openssl/crypto/cms/cms_err.c | 4 +- deps/openssl/openssl/crypto/cms/cms_lib.c | 5 +- deps/openssl/openssl/crypto/cms/cms_local.h | 3 +- deps/openssl/openssl/crypto/cms/cms_sd.c | 20 +- deps/openssl/openssl/crypto/conf/conf_sap.c | 3 +- deps/openssl/openssl/crypto/dh/dh_check.c | 3 +- deps/openssl/openssl/crypto/dh/dh_key.c | 3 +- deps/openssl/openssl/crypto/dh/dh_lib.c | 4 +- deps/openssl/openssl/crypto/dsa/dsa_check.c | 8 +- deps/openssl/openssl/crypto/dsa/dsa_lib.c | 4 +- deps/openssl/openssl/crypto/dsa/dsa_ossl.c | 1 - .../crypto/encode_decode/decoder_lib.c | 7 +- .../crypto/encode_decode/decoder_pkey.c | 8 +- deps/openssl/openssl/crypto/engine/eng_lib.c | 24 +- deps/openssl/openssl/crypto/engine/eng_list.c | 11 +- .../openssl/openssl/crypto/engine/eng_local.h | 6 +- deps/openssl/openssl/crypto/engine/eng_pkey.c | 44 ++- .../openssl/openssl/crypto/engine/eng_table.c | 13 +- deps/openssl/openssl/crypto/err/openssl.txt | 1 + .../crypto/evp/ctrl_params_translate.c | 22 +- deps/openssl/openssl/crypto/evp/evp_enc.c | 45 ++- deps/openssl/openssl/crypto/evp/legacy_sha.c | 8 +- deps/openssl/openssl/crypto/evp/p_lib.c | 4 +- deps/openssl/openssl/crypto/evp/pmeth_lib.c | 5 +- deps/openssl/openssl/crypto/ex_data.c | 4 +- .../openssl/crypto/ffc/ffc_key_validate.c | 16 +- .../openssl/openssl/crypto/http/http_client.c | 15 +- deps/openssl/openssl/crypto/lhash/lhash.c | 6 +- deps/openssl/openssl/crypto/mem.c | 17 +- .../openssl/crypto/modes/asm/ghashv8-armx.pl | 5 +- deps/openssl/openssl/crypto/objects/obj_dat.c | 7 +- deps/openssl/openssl/crypto/param_build_set.c | 13 +- deps/openssl/openssl/crypto/pem/pem_pkey.c | 13 +- .../openssl/crypto/perlasm/arm-xlate.pl | 7 +- deps/openssl/openssl/crypto/perlasm/x86asm.pl | 4 +- deps/openssl/openssl/crypto/pkcs12/p12_crt.c | 64 ++- .../crypto/poly1305/asm/poly1305-armv8.pl | 26 +- .../crypto/poly1305/asm/poly1305-x86_64.pl | 6 +- .../openssl/crypto/property/property.c | 6 +- .../openssl/crypto/property/property_parse.c | 34 +- deps/openssl/openssl/crypto/provider_core.c | 8 +- deps/openssl/openssl/crypto/rsa/rsa_ameth.c | 5 +- deps/openssl/openssl/crypto/rsa/rsa_backend.c | 14 +- deps/openssl/openssl/crypto/rsa/rsa_lib.c | 32 +- deps/openssl/openssl/crypto/srp/srp_vfy.c | 3 +- deps/openssl/openssl/crypto/store/store_lib.c | 6 +- deps/openssl/openssl/crypto/threads_pthread.c | 4 +- deps/openssl/openssl/crypto/x509/v3_ist.c | 8 +- deps/openssl/openssl/crypto/x509/x509_cmp.c | 9 +- .../openssl/doc/man1/openssl-cmp.pod.in | 31 +- .../openssl/doc/man1/openssl-cms.pod.in | 4 +- .../openssl/doc/man1/openssl-ts.pod.in | 4 +- deps/openssl/openssl/doc/man3/BIO_s_mem.pod | 22 +- .../openssl/doc/man3/CMS_add1_signer.pod | 8 +- deps/openssl/openssl/doc/man3/CMS_sign.pod | 4 +- .../doc/man3/DH_generate_parameters.pod | 6 +- .../doc/man3/DSA_generate_parameters.pod | 4 +- deps/openssl/openssl/doc/man3/EVP_MAC.pod | 4 +- .../openssl/doc/man3/EVP_SIGNATURE.pod | 4 +- .../openssl/doc/man3/EVP_aes_128_gcm.pod | 8 +- .../openssl/doc/man3/EVP_aria_128_gcm.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_bf_cbc.pod | 2 +- .../openssl/doc/man3/EVP_blake2b512.pod | 2 +- .../openssl/doc/man3/EVP_camellia_128_ecb.pod | 2 +- .../openssl/doc/man3/EVP_cast5_cbc.pod | 2 +- .../openssl/openssl/doc/man3/EVP_chacha20.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_des_cbc.pod | 2 +- .../openssl/openssl/doc/man3/EVP_desx_cbc.pod | 2 +- .../openssl/openssl/doc/man3/EVP_idea_cbc.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_md2.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_md4.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_md5.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_mdc2.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_rc2_cbc.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_rc4.pod | 2 +- .../openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod | 2 +- .../openssl/doc/man3/EVP_ripemd160.pod | 2 +- .../openssl/openssl/doc/man3/EVP_seed_cbc.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_sha1.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_sha224.pod | 2 +- .../openssl/openssl/doc/man3/EVP_sha3_224.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_sm3.pod | 2 +- deps/openssl/openssl/doc/man3/EVP_sm4_cbc.pod | 2 +- .../openssl/doc/man3/EVP_whirlpool.pod | 2 +- .../openssl/doc/man3/OSSL_CMP_CTX_new.pod | 30 +- .../doc/man3/OSSL_CMP_exec_certreq.pod | 16 +- .../openssl/doc/man3/OSSL_HTTP_REQ_CTX.pod | 12 +- .../openssl/doc/man3/OSSL_HTTP_transfer.pod | 9 +- .../openssl/doc/man3/PKCS12_create.pod | 9 +- .../openssl/doc/man3/PKCS12_gen_mac.pod | 2 + .../openssl/doc/man3/PKCS5_PBKDF2_HMAC.pod | 5 +- .../doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod | 10 +- .../doc/man3/SSL_CTX_set_info_callback.pod | 16 +- deps/openssl/openssl/doc/man3/SSL_new.pod | 4 +- .../doc/man3/d2i_PKCS8PrivateKey_bio.pod | 4 +- .../openssl/doc/man3/d2i_RSAPrivateKey.pod | 6 +- deps/openssl/openssl/doc/man3/d2i_X509.pod | 28 +- .../openssl/doc/man5/x509v3_config.pod | 4 +- .../openssl/doc/man7/EVP_KDF-PKCS12KDF.pod | 8 +- .../openssl/doc/man7/migration_guide.pod | 9 + deps/openssl/openssl/fuzz/build.info | 12 +- deps/openssl/openssl/fuzz/x509.c | 125 +++++- deps/openssl/openssl/include/crypto/bn_conf.h | 1 - .../openssl/openssl/include/crypto/dso_conf.h | 1 - deps/openssl/openssl/include/openssl/asn1.h | 1 - deps/openssl/openssl/include/openssl/asn1t.h | 1 - deps/openssl/openssl/include/openssl/bio.h | 1 - deps/openssl/openssl/include/openssl/cmp.h | 1 - deps/openssl/openssl/include/openssl/cms.h | 1 - deps/openssl/openssl/include/openssl/cmserr.h | 3 +- deps/openssl/openssl/include/openssl/conf.h | 1 - .../openssl/include/openssl/configuration.h | 1 - deps/openssl/openssl/include/openssl/crmf.h | 1 - deps/openssl/openssl/include/openssl/crypto.h | 1 - deps/openssl/openssl/include/openssl/ct.h | 1 - deps/openssl/openssl/include/openssl/err.h | 1 - deps/openssl/openssl/include/openssl/ess.h | 1 - deps/openssl/openssl/include/openssl/evp.h | 4 +- .../openssl/openssl/include/openssl/fipskey.h | 1 - deps/openssl/openssl/include/openssl/lhash.h | 1 - deps/openssl/openssl/include/openssl/ocsp.h | 1 - .../openssl/include/openssl/opensslv.h | 1 - deps/openssl/openssl/include/openssl/pkcs12.h | 1 - deps/openssl/openssl/include/openssl/pkcs7.h | 1 - .../openssl/include/openssl/pkcs7.h.in | 6 +- .../openssl/include/openssl/safestack.h | 1 - deps/openssl/openssl/include/openssl/srp.h | 1 - deps/openssl/openssl/include/openssl/ssl.h | 1 - deps/openssl/openssl/include/openssl/ui.h | 1 - deps/openssl/openssl/include/openssl/x509.h | 1 - .../openssl/include/openssl/x509_vfy.h | 1 - deps/openssl/openssl/include/openssl/x509v3.h | 1 - .../openssl/providers/fips-sources.checksums | 52 +-- deps/openssl/openssl/providers/fips.checksum | 2 +- .../implementations/ciphers/cipher_chacha20.c | 23 +- .../encode_decode/decode_der2key.c | 6 +- .../encode_decode/decode_msblob2key.c | 22 +- .../encode_decode/decode_pvk2key.c | 21 +- .../encode_decode/encode_key2any.c | 7 +- .../encode_decode/encode_key2text.c | 65 ++- .../implementations/keymgmt/dh_kmgmt.c | 5 +- .../implementations/keymgmt/dsa_kmgmt.c | 3 + .../implementations/keymgmt/ecx_kmgmt.c | 5 +- .../keymgmt/mac_legacy_kmgmt.c | 5 +- .../implementations/macs/kmac_prov.c | 6 +- deps/openssl/openssl/ssl/ssl_lib.c | 10 +- deps/openssl/openssl/ssl/ssl_sess.c | 5 +- .../openssl/ssl/statem/extensions_srvr.c | 4 +- deps/openssl/openssl/test/README-dev.md | 6 +- .../openssl/test/chacha_internal_test.c | 4 +- deps/openssl/openssl/test/cmp_asn_test.c | 20 +- deps/openssl/openssl/test/cmp_protect_test.c | 16 +- deps/openssl/openssl/test/cmsapitest.c | 6 +- deps/openssl/openssl/test/endecode_test.c | 18 +- deps/openssl/openssl/test/evp_extra_test.c | 373 +++++++++++++++++- deps/openssl/openssl/test/ffc_internal_test.c | 38 +- deps/openssl/openssl/test/pbetest.c | 33 +- deps/openssl/openssl/test/pemtest.c | 30 ++ .../openssl/openssl/test/pkcs12_format_test.c | 68 +++- deps/openssl/openssl/test/property_test.c | 3 + .../openssl/test/provider_internal_test.c | 6 +- .../openssl/test/recipes/05-test_rand.t | 6 +- .../openssl/test/recipes/15-test_rsapss.t | 14 +- .../openssl/test/recipes/25-test_req.t | 15 +- .../openssl/test/recipes/30-test_defltfips.t | 5 +- .../openssl/test/recipes/30-test_evp.t | 5 +- .../openssl/test/recipes/80-test_cms.t | 27 +- .../openssl/test/recipes/99-test_fuzz_x509.t | 5 +- deps/openssl/openssl/test/rsa_test.c | 118 +++++- deps/openssl/openssl/test/ssl_old_test.c | 8 +- deps/openssl/openssl/test/sslapitest.c | 12 +- deps/openssl/openssl/test/testutil/main.c | 7 +- deps/openssl/openssl/util/missingssl.txt | 1 - 207 files changed, 1972 insertions(+), 797 deletions(-) delete mode 100644 deps/openssl/openssl/appveyor.yml delete mode 100644 deps/openssl/openssl/include/crypto/bn_conf.h delete mode 100644 deps/openssl/openssl/include/crypto/dso_conf.h delete mode 100644 deps/openssl/openssl/include/openssl/asn1.h delete mode 100644 deps/openssl/openssl/include/openssl/asn1t.h delete mode 100644 deps/openssl/openssl/include/openssl/bio.h delete mode 100644 deps/openssl/openssl/include/openssl/cmp.h delete mode 100644 deps/openssl/openssl/include/openssl/cms.h delete mode 100644 deps/openssl/openssl/include/openssl/conf.h delete mode 100644 deps/openssl/openssl/include/openssl/configuration.h delete mode 100644 deps/openssl/openssl/include/openssl/crmf.h delete mode 100644 deps/openssl/openssl/include/openssl/crypto.h delete mode 100644 deps/openssl/openssl/include/openssl/ct.h delete mode 100644 deps/openssl/openssl/include/openssl/err.h delete mode 100644 deps/openssl/openssl/include/openssl/ess.h delete mode 100644 deps/openssl/openssl/include/openssl/fipskey.h delete mode 100644 deps/openssl/openssl/include/openssl/lhash.h delete mode 100644 deps/openssl/openssl/include/openssl/ocsp.h delete mode 100644 deps/openssl/openssl/include/openssl/opensslv.h delete mode 100644 deps/openssl/openssl/include/openssl/pkcs12.h delete mode 100644 deps/openssl/openssl/include/openssl/pkcs7.h delete mode 100644 deps/openssl/openssl/include/openssl/safestack.h delete mode 100644 deps/openssl/openssl/include/openssl/srp.h delete mode 100644 deps/openssl/openssl/include/openssl/ssl.h delete mode 100644 deps/openssl/openssl/include/openssl/ui.h delete mode 100644 deps/openssl/openssl/include/openssl/x509.h delete mode 100644 deps/openssl/openssl/include/openssl/x509_vfy.h delete mode 100644 deps/openssl/openssl/include/openssl/x509v3.h diff --git a/deps/openssl/openssl/CHANGES.md b/deps/openssl/openssl/CHANGES.md index 374fdc662cb94c..7d892d57ac0914 100644 --- a/deps/openssl/openssl/CHANGES.md +++ b/deps/openssl/openssl/CHANGES.md @@ -28,12 +28,44 @@ breaking changes, and mappings for the large list of deprecated functions. [Migration guide]: https://github.com/openssl/openssl/tree/master/doc/man7/migration_guide.pod -### Changes between 3.0.10 and 3.0.10+quic [1 Aug 2023] +### Changes between 3.0.12 and 3.0.12+quic [24 Oct 2023] * Add QUIC API support from BoringSSL *Todd Short* +### Changes between 3.0.11 and 3.0.12 [24 Oct 2023] + + * Fix incorrect key and IV resizing issues when calling EVP_EncryptInit_ex2(), + EVP_DecryptInit_ex2() or EVP_CipherInit_ex2() with OSSL_PARAM parameters + that alter the key or IV length ([CVE-2023-5363]). + + *Paul Dale* + +### Changes between 3.0.10 and 3.0.11 [19 Sep 2023] + + * Fix POLY1305 MAC implementation corrupting XMM registers on Windows. + + The POLY1305 MAC (message authentication code) implementation in OpenSSL + does not save the contents of non-volatile XMM registers on Windows 64 + platform when calculating the MAC of data larger than 64 bytes. Before + returning to the caller all the XMM registers are set to zero rather than + restoring their previous content. The vulnerable code is used only on newer + x86_64 processors supporting the AVX512-IFMA instructions. + + The consequences of this kind of internal application state corruption can + be various - from no consequences, if the calling application does not + depend on the contents of non-volatile XMM registers at all, to the worst + consequences, where the attacker could get complete control of the + application process. However given the contents of the registers are just + zeroized so the attacker cannot put arbitrary values inside, the most likely + consequence, if any, would be an incorrect result of some application + dependent calculations or a crash leading to a denial of service. + + ([CVE-2023-4807]) + + *Bernd Edlinger* + ### Changes between 3.0.9 and 3.0.10 [1 Aug 2023] * Fix excessive time spent checking DH q parameter value. @@ -19714,6 +19746,8 @@ ndif +[CVE-2023-5363]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-5363 +[CVE-2023-4807]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-4807 [CVE-2023-3817]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3817 [CVE-2023-3446]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3446 [CVE-2023-2975]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2975 diff --git a/deps/openssl/openssl/Configurations/10-main.conf b/deps/openssl/openssl/Configurations/10-main.conf index 8010087b46dcea..280a75b213f25c 100644 --- a/deps/openssl/openssl/Configurations/10-main.conf +++ b/deps/openssl/openssl/Configurations/10-main.conf @@ -9,19 +9,22 @@ sub vc_win64a_info { $vc_win64a_info = { AS => "nasm", ASFLAGS => "-g", asflags => "-Ox -f win64 -DNEAR", - asoutflag => "-o " }; + asoutflag => "-o ", + perlasm_scheme => "nasm" }; } elsif ($disabled{asm}) { # assembler is still used to compile uplink shim $vc_win64a_info = { AS => "ml64", ASFLAGS => "/nologo /Zi", asflags => "/c /Cp /Cx", - asoutflag => "/Fo" }; + asoutflag => "/Fo", + perlasm_scheme => "masm" }; } else { $die->("NASM not found - make sure it's installed and available on %PATH%\n"); $vc_win64a_info = { AS => "{unknown}", ASFLAGS => "", asflags => "", - asoutflag => "" }; + asoutflag => "", + perlasm_scheme => "auto" }; } } return $vc_win64a_info; @@ -1416,7 +1419,7 @@ my %targets = ( sys_id => "WIN64A", uplink_arch => 'x86_64', asm_arch => 'x86_64', - perlasm_scheme => "auto", + perlasm_scheme => sub { vc_win64a_info()->{perlasm_scheme} }, multilib => "-x64", }, "VC-WIN32" => { diff --git a/deps/openssl/openssl/Configurations/README.md b/deps/openssl/openssl/Configurations/README.md index be8c394d0872b2..de3d8bad8a02d4 100644 --- a/deps/openssl/openssl/Configurations/README.md +++ b/deps/openssl/openssl/Configurations/README.md @@ -233,8 +233,14 @@ In each table entry, the following keys are significant: is ILP32; RC4_CHAR RC4 key schedule is made up of 'unsigned char's; + Note: should not be used + for new configuration + targets RC4_INT RC4 key schedule is made up of 'unsigned int's; + Note: should not be used + for new configuration + targets [1] as part of the target configuration, one can have a key called `inherit_from` that indicates what other configurations to inherit diff --git a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl index 17e194f1ef754a..a48fae5fb8b8fe 100644 --- a/deps/openssl/openssl/Configurations/unix-Makefile.tmpl +++ b/deps/openssl/openssl/Configurations/unix-Makefile.tmpl @@ -614,28 +614,28 @@ uninstall_sw: uninstall_runtime uninstall_modules uninstall_engines uninstall_de install_docs: install_man_docs install_html_docs uninstall_docs: uninstall_man_docs uninstall_html_docs - $(RM) -r $(DESTDIR)$(DOCDIR) + $(RM) -r "$(DESTDIR)$(DOCDIR)" {- output_off() if $disabled{fips}; "" -} install_fips: build_sw $(INSTALL_FIPSMODULECONF) @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MODULESDIR) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR) + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)" @$(ECHO) "*** Installing FIPS module" @$(ECHO) "install $(INSTALL_FIPSMODULE) -> $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)" - @cp "$(INSTALL_FIPSMODULE)" $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new - @chmod 755 $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new - @mv -f $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new \ - $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME) + @cp "$(INSTALL_FIPSMODULE)" "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new" + @chmod 755 "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new" + @mv -f "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new" \ + "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)" @$(ECHO) "*** Installing FIPS module configuration" @$(ECHO) "install $(INSTALL_FIPSMODULECONF) -> $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf" - @cp $(INSTALL_FIPSMODULECONF) $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf + @cp $(INSTALL_FIPSMODULECONF) "$(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf" uninstall_fips: @$(ECHO) "*** Uninstalling FIPS module configuration" - $(RM) $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf + $(RM) "$(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf" @$(ECHO) "*** Uninstalling FIPS module" - $(RM) $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME) + $(RM) "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)" {- if ($disabled{fips}) { output_on(); } else { output_off(); } "" -} install_fips: @$(ECHO) "The 'install_fips' target requires the 'enable-fips' option" @@ -646,75 +646,75 @@ uninstall_fips: install_ssldirs: - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/certs - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/private - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/misc + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/certs" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/private" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/misc" @set -e; for x in dummy $(MISC_SCRIPTS); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ x1=`echo "$$x" | cut -f1 -d:`; \ x2=`echo "$$x" | cut -f2 -d:`; \ fn=`basename $$x1`; \ $(ECHO) "install $$x1 -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \ - cp $$x1 $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new; \ - chmod 755 $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new; \ - mv -f $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new \ - $(DESTDIR)$(OPENSSLDIR)/misc/$$fn; \ + cp $$x1 "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new"; \ + mv -f "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new" \ + "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \ if [ "$$x1" != "$$x2" ]; then \ ln=`basename "$$x2"`; \ : {- output_off() unless windowsdll(); "" -}; \ $(ECHO) "copy $(DESTDIR)$(OPENSSLDIR)/misc/$$ln -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \ - cp $(DESTDIR)$(OPENSSLDIR)/misc/$$fn $(DESTDIR)$(OPENSSLDIR)/misc/$$ln; \ + cp "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn" "$(DESTDIR)$(OPENSSLDIR)/misc/$$ln"; \ : {- output_on() unless windowsdll(); output_off() if windowsdll(); "" -}; \ $(ECHO) "link $(DESTDIR)$(OPENSSLDIR)/misc/$$ln -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \ - ln -sf $$fn $(DESTDIR)$(OPENSSLDIR)/misc/$$ln; \ + ln -sf $$fn "$(DESTDIR)$(OPENSSLDIR)/misc/$$ln"; \ : {- output_on() if windowsdll(); "" -}; \ fi; \ done @$(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist" - @cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new - @chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new - @mv -f $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist + @cp $(SRCDIR)/apps/openssl.cnf "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new" + @chmod 644 "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new" + @mv -f "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new" "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist" @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf" ]; then \ $(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \ - cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \ - chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \ + cp $(SRCDIR)/apps/openssl.cnf "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \ + chmod 644 "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \ fi @$(ECHO) "install $(SRCDIR)/apps/ct_log_list.cnf -> $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist" - @cp $(SRCDIR)/apps/ct_log_list.cnf $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new - @chmod 644 $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new - @mv -f $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist + @cp $(SRCDIR)/apps/ct_log_list.cnf "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new" + @chmod 644 "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new" + @mv -f "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new" "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist" @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf" ]; then \ $(ECHO) "install $(SRCDIR)/apps/ct_log_list.cnf -> $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \ - cp $(SRCDIR)/apps/ct_log_list.cnf $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf; \ - chmod 644 $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf; \ + cp $(SRCDIR)/apps/ct_log_list.cnf "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \ + chmod 644 "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \ fi install_dev: install_runtime_libs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) @$(ECHO) "*** Installing development files" - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/include/openssl + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(INSTALLTOP)/include/openssl" @ : {- output_off() if $disabled{uplink}; "" -} @$(ECHO) "install $(SRCDIR)/ms/applink.c -> $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c" - @cp $(SRCDIR)/ms/applink.c $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c - @chmod 644 $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c + @cp $(SRCDIR)/ms/applink.c "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c" + @chmod 644 "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c" @ : {- output_on() if $disabled{uplink}; "" -} @set -e; for i in $(SRCDIR)/include/openssl/*.h \ $(BLDDIR)/include/openssl/*.h; do \ fn=`basename $$i`; \ $(ECHO) "install $$i -> $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \ - cp $$i $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \ - chmod 644 $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \ + cp $$i "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \ + chmod 644 "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \ done - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir) + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)" @set -e; for l in $(INSTALL_LIBS); do \ fn=`basename $$l`; \ $(ECHO) "install $$l -> $(DESTDIR)$(libdir)/$$fn"; \ - cp $$l $(DESTDIR)$(libdir)/$$fn.new; \ - $(RANLIB) $(DESTDIR)$(libdir)/$$fn.new; \ - chmod 644 $(DESTDIR)$(libdir)/$$fn.new; \ - mv -f $(DESTDIR)$(libdir)/$$fn.new \ - $(DESTDIR)$(libdir)/$$fn; \ + cp $$l "$(DESTDIR)$(libdir)/$$fn.new"; \ + $(RANLIB) "$(DESTDIR)$(libdir)/$$fn.new"; \ + chmod 644 "$(DESTDIR)$(libdir)/$$fn.new"; \ + mv -f "$(DESTDIR)$(libdir)/$$fn.new" \ + "$(DESTDIR)$(libdir)/$$fn"; \ done @ : {- output_off() if $disabled{shared}; "" -} @set -e; for s in $(INSTALL_SHLIB_INFO); do \ @@ -727,18 +727,18 @@ install_dev: install_runtime_libs : {- output_off(); output_on() unless windowsdll() or sharedaix(); "" -}; \ if [ "$$fn2" != "" ]; then \ $(ECHO) "link $(DESTDIR)$(libdir)/$$fn2 -> $(DESTDIR)$(libdir)/$$fn1"; \ - ln -sf $$fn1 $(DESTDIR)$(libdir)/$$fn2; \ + ln -sf $$fn1 "$(DESTDIR)$(libdir)/$$fn2"; \ fi; \ : {- output_off() unless windowsdll() or sharedaix(); output_on() if windowsdll(); "" -}; \ if [ "$$fn3" != "" ]; then \ $(ECHO) "install $$s3 -> $(DESTDIR)$(libdir)/$$fn3"; \ - cp $$s3 $(DESTDIR)$(libdir)/$$fn3.new; \ - chmod 755 $(DESTDIR)$(libdir)/$$fn3.new; \ - mv -f $(DESTDIR)$(libdir)/$$fn3.new \ - $(DESTDIR)$(libdir)/$$fn3; \ + cp $$s3 "$(DESTDIR)$(libdir)/$$fn3.new"; \ + chmod 755 "$(DESTDIR)$(libdir)/$$fn3.new"; \ + mv -f "$(DESTDIR)$(libdir)/$$fn3.new" \ + "$(DESTDIR)$(libdir)/$$fn3"; \ fi; \ : {- output_off() if windowsdll(); output_on() if sharedaix(); "" -}; \ - a=$(DESTDIR)$(libdir)/$$fn2; \ + a="$(DESTDIR)$(libdir)/$$fn2"; \ $(ECHO) "install $$s1 -> $$a"; \ if [ -f $$a ]; then ( trap "rm -rf /tmp/ar.$$$$" INT 0; \ mkdir /tmp/ar.$$$$; ( cd /tmp/ar.$$$$; \ @@ -755,35 +755,35 @@ install_dev: install_runtime_libs : {- output_off() if sharedaix(); output_on(); "" -}; \ done @ : {- output_on() if $disabled{shared}; "" -} - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)/pkgconfig + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)/pkgconfig" @$(ECHO) "install libcrypto.pc -> $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc" - @cp libcrypto.pc $(DESTDIR)$(libdir)/pkgconfig - @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc + @cp libcrypto.pc "$(DESTDIR)$(libdir)/pkgconfig" + @chmod 644 "$(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc" @$(ECHO) "install libssl.pc -> $(DESTDIR)$(libdir)/pkgconfig/libssl.pc" - @cp libssl.pc $(DESTDIR)$(libdir)/pkgconfig - @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/libssl.pc + @cp libssl.pc "$(DESTDIR)$(libdir)/pkgconfig" + @chmod 644 "$(DESTDIR)$(libdir)/pkgconfig/libssl.pc" @$(ECHO) "install openssl.pc -> $(DESTDIR)$(libdir)/pkgconfig/openssl.pc" - @cp openssl.pc $(DESTDIR)$(libdir)/pkgconfig - @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/openssl.pc + @cp openssl.pc "$(DESTDIR)$(libdir)/pkgconfig" + @chmod 644 "$(DESTDIR)$(libdir)/pkgconfig/openssl.pc" uninstall_dev: uninstall_runtime_libs @$(ECHO) "*** Uninstalling development files" @ : {- output_off() if $disabled{uplink}; "" -} @$(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c" - @$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c + @$(RM) "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c" @ : {- output_on() if $disabled{uplink}; "" -} @set -e; for i in $(SRCDIR)/include/openssl/*.h \ $(BLDDIR)/include/openssl/*.h; do \ fn=`basename $$i`; \ $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \ - $(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \ + $(RM) "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \ done - -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/include/openssl - -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/include + -$(RMDIR) "$(DESTDIR)$(INSTALLTOP)/include/openssl" + -$(RMDIR) "$(DESTDIR)$(INSTALLTOP)/include" @set -e; for l in $(INSTALL_LIBS); do \ fn=`basename $$l`; \ $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn"; \ - $(RM) $(DESTDIR)$(libdir)/$$fn; \ + $(RM) "$(DESTDIR)$(libdir)/$$fn"; \ done @ : {- output_off() if $disabled{shared}; "" -} @set -e; for s in $(INSTALL_SHLIB_INFO); do \ @@ -795,39 +795,39 @@ uninstall_dev: uninstall_runtime_libs fn3=`basename "$$s3"`; \ : {- output_off() if windowsdll(); "" -}; \ $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn1"; \ - $(RM) $(DESTDIR)$(libdir)/$$fn1; \ + $(RM) "$(DESTDIR)$(libdir)/$$fn1"; \ if [ -n "$$fn2" ]; then \ $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn2"; \ - $(RM) $(DESTDIR)$(libdir)/$$fn2; \ + $(RM) "$(DESTDIR)$(libdir)/$$fn2"; \ fi; \ : {- output_on() if windowsdll(); "" -}{- output_off() unless windowsdll(); "" -}; \ if [ -n "$$fn3" ]; then \ $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn3"; \ - $(RM) $(DESTDIR)$(libdir)/$$fn3; \ + $(RM) "$(DESTDIR)$(libdir)/$$fn3"; \ fi; \ : {- output_on() unless windowsdll(); "" -}; \ done @ : {- output_on() if $disabled{shared}; "" -} - $(RM) $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc - $(RM) $(DESTDIR)$(libdir)/pkgconfig/libssl.pc - $(RM) $(DESTDIR)$(libdir)/pkgconfig/openssl.pc - -$(RMDIR) $(DESTDIR)$(libdir)/pkgconfig - -$(RMDIR) $(DESTDIR)$(libdir) + $(RM) "$(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc" + $(RM) "$(DESTDIR)$(libdir)/pkgconfig/libssl.pc" + $(RM) "$(DESTDIR)$(libdir)/pkgconfig/openssl.pc" + -$(RMDIR) "$(DESTDIR)$(libdir)/pkgconfig" + -$(RMDIR) "$(DESTDIR)$(libdir)" _install_modules_deps: install_runtime_libs build_modules install_engines: _install_modules_deps @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(ENGINESDIR)/ + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(ENGINESDIR)/" @$(ECHO) "*** Installing engines" @set -e; for e in dummy $(INSTALL_ENGINES); do \ if [ "$$e" = "dummy" ]; then continue; fi; \ fn=`basename $$e`; \ $(ECHO) "install $$e -> $(DESTDIR)$(ENGINESDIR)/$$fn"; \ - cp $$e $(DESTDIR)$(ENGINESDIR)/$$fn.new; \ - chmod 755 $(DESTDIR)$(ENGINESDIR)/$$fn.new; \ - mv -f $(DESTDIR)$(ENGINESDIR)/$$fn.new \ - $(DESTDIR)$(ENGINESDIR)/$$fn; \ + cp $$e "$(DESTDIR)$(ENGINESDIR)/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(ENGINESDIR)/$$fn.new"; \ + mv -f "$(DESTDIR)$(ENGINESDIR)/$$fn.new" \ + "$(DESTDIR)$(ENGINESDIR)/$$fn"; \ done uninstall_engines: @@ -836,22 +836,22 @@ uninstall_engines: if [ "$$e" = "dummy" ]; then continue; fi; \ fn=`basename $$e`; \ $(ECHO) "$(RM) $(DESTDIR)$(ENGINESDIR)/$$fn"; \ - $(RM) $(DESTDIR)$(ENGINESDIR)/$$fn; \ + $(RM) "$(DESTDIR)$(ENGINESDIR)/$$fn"; \ done - -$(RMDIR) $(DESTDIR)$(ENGINESDIR) + -$(RMDIR) "$(DESTDIR)$(ENGINESDIR)" install_modules: _install_modules_deps @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MODULESDIR)/ + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)/" @$(ECHO) "*** Installing modules" @set -e; for e in dummy $(INSTALL_MODULES); do \ if [ "$$e" = "dummy" ]; then continue; fi; \ fn=`basename $$e`; \ $(ECHO) "install $$e -> $(DESTDIR)$(MODULESDIR)/$$fn"; \ - cp $$e $(DESTDIR)$(MODULESDIR)/$$fn.new; \ - chmod 755 $(DESTDIR)$(MODULESDIR)/$$fn.new; \ - mv -f $(DESTDIR)$(MODULESDIR)/$$fn.new \ - $(DESTDIR)$(MODULESDIR)/$$fn; \ + cp $$e "$(DESTDIR)$(MODULESDIR)/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(MODULESDIR)/$$fn.new"; \ + mv -f "$(DESTDIR)$(MODULESDIR)/$$fn.new" \ + "$(DESTDIR)$(MODULESDIR)/$$fn"; \ done uninstall_modules: @@ -860,18 +860,18 @@ uninstall_modules: if [ "$$e" = "dummy" ]; then continue; fi; \ fn=`basename $$e`; \ $(ECHO) "$(RM) $(DESTDIR)$(MODULESDIR)/$$fn"; \ - $(RM) $(DESTDIR)$(MODULESDIR)/$$fn; \ + $(RM) "$(DESTDIR)$(MODULESDIR)/$$fn"; \ done - -$(RMDIR) $(DESTDIR)$(MODULESDIR) + -$(RMDIR) "$(DESTDIR)$(MODULESDIR)" install_runtime: install_programs install_runtime_libs: build_libs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) @ : {- output_off() if windowsdll(); "" -} - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir) + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)" @ : {- output_on() if windowsdll(); output_off() unless windowsdll(); "" -} - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/bin + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(INSTALLTOP)/bin" @ : {- output_on() unless windowsdll(); "" -} @$(ECHO) "*** Installing runtime libraries" @set -e; for s in dummy $(INSTALL_SHLIBS); do \ @@ -879,40 +879,40 @@ install_runtime_libs: build_libs fn=`basename $$s`; \ : {- output_off() unless windowsdll(); "" -}; \ $(ECHO) "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \ - $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + cp $$s "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + mv -f "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new" \ + "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ : {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \ $(ECHO) "install $$s -> $(DESTDIR)$(libdir)/$$fn"; \ - cp $$s $(DESTDIR)$(libdir)/$$fn.new; \ - chmod 755 $(DESTDIR)$(libdir)/$$fn.new; \ - mv -f $(DESTDIR)$(libdir)/$$fn.new \ - $(DESTDIR)$(libdir)/$$fn; \ + cp $$s "$(DESTDIR)$(libdir)/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(libdir)/$$fn.new"; \ + mv -f "$(DESTDIR)$(libdir)/$$fn.new" \ + "$(DESTDIR)$(libdir)/$$fn"; \ : {- output_on() if windowsdll(); "" -}; \ done install_programs: install_runtime_libs build_programs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/bin + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(INSTALLTOP)/bin" @$(ECHO) "*** Installing runtime programs" @set -e; for x in dummy $(INSTALL_PROGRAMS); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \ - $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + cp $$x "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + mv -f "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new" \ + "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ done @set -e; for x in dummy $(BIN_SCRIPTS); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \ - $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + cp $$x "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + chmod 755 "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new"; \ + mv -f "$(DESTDIR)$(INSTALLTOP)/bin/$$fn.new" \ + "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ done uninstall_runtime: uninstall_programs uninstall_runtime_libs @@ -924,16 +924,16 @@ uninstall_programs: if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + $(RM) "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ done; @set -e; for x in dummy $(BIN_SCRIPTS); \ do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + $(RM) "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ done - -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/bin + -$(RMDIR) "$(DESTDIR)$(INSTALLTOP)/bin" uninstall_runtime_libs: @$(ECHO) "*** Uninstalling runtime libraries" @@ -942,49 +942,49 @@ uninstall_runtime_libs: if [ "$$s" = "dummy" ]; then continue; fi; \ fn=`basename $$s`; \ $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ - $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ + $(RM) "$(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ done @ : {- output_on() unless windowsdll(); "" -} install_man_docs: build_man_docs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man1 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man3 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man5 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man7 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man1" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man3" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man5" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man7" @$(ECHO) "*** Installing manpages" @set -e; for x in dummy $(MANDOCS1); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \ - cp $$x $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \ - chmod 644 $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man1; \ + cp $$x "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \ + chmod 644 "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man1"; \ done @set -e; for x in dummy $(MANDOCS3); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \ - cp $$x $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \ - chmod 644 $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man3; \ + cp $$x "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \ + chmod 644 "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man3"; \ done @set -e; for x in dummy $(MANDOCS5); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \ - cp $$x $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \ - chmod 644 $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man5; \ + cp $$x "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \ + chmod 644 "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man5"; \ done @set -e; for x in dummy $(MANDOCS7); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \ - cp $$x $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \ - chmod 644 $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man7; \ + cp $$x "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \ + chmod 644 "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man7"; \ done uninstall_man_docs: build_man_docs @@ -993,65 +993,65 @@ uninstall_man_docs: build_man_docs if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \ - $(RM) $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man1; \ + $(RM) "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man1"; \ done @set -e; for x in dummy $(MANDOCS3); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \ - $(RM) $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man3; \ + $(RM) "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man3"; \ done @set -e; for x in dummy $(MANDOCS5); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \ - $(RM) $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man5; \ + $(RM) "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man5"; \ done @set -e; for x in dummy $(MANDOCS7); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \ - $(RM) $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \ - $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man7; \ + $(RM) "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \ + $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man7"; \ done install_html_docs: install_image_docs build_html_docs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man1 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man3 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man5 - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man7 + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man1" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man3" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man5" + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man7" @$(ECHO) "*** Installing HTML manpages" @set -e; for x in dummy $(HTMLDOCS1); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ - cp $$x $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ - chmod 644 $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ + cp $$x "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ + chmod 644 "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS3); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ - cp $$x $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ - chmod 644 $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ + cp $$x "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ + chmod 644 "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS5); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ - cp $$x $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ - chmod 644 $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ + cp $$x "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ + chmod 644 "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS7); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ - cp $$x $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ - chmod 644 $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ + cp $$x "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ + chmod 644 "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ done uninstall_html_docs: uninstall_image_docs @@ -1060,35 +1060,35 @@ uninstall_html_docs: uninstall_image_docs if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ - $(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn; \ + $(RM) "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS3); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ - $(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn; \ + $(RM) "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS5); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ - $(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn; \ + $(RM) "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \ done @set -e; for x in dummy $(HTMLDOCS7); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ - $(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn; \ + $(RM) "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \ done install_image_docs: - @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man7/img + @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man7/img" @set -e; for x in dummy $(IMAGEDOCS7); do \ if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \ - cp $(SRCDIR)/$$x $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \ - chmod 644 $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \ + cp $(SRCDIR)/$$x "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \ + chmod 644 "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \ done uninstall_image_docs: @@ -1096,7 +1096,7 @@ uninstall_image_docs: if [ "$$x" = "dummy" ]; then continue; fi; \ fn=`basename $$x`; \ $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \ - $(RM) $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \ + $(RM) "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \ done # Developer targets (note: these are only available on Unix) ######### diff --git a/deps/openssl/openssl/INSTALL.md b/deps/openssl/openssl/INSTALL.md index fbcebe17e62c9a..87b1faef90f719 100644 --- a/deps/openssl/openssl/INSTALL.md +++ b/deps/openssl/openssl/INSTALL.md @@ -2,8 +2,8 @@ Build and Install ================= This document describes installation on all supported operating -systems (the Unix/Linux family, including macOS), OpenVMS, -and Windows). +systems: the Unix/Linux family (including macOS), OpenVMS, +and Windows. Table of Contents ================= diff --git a/deps/openssl/openssl/NEWS.md b/deps/openssl/openssl/NEWS.md index feed9026976013..8f0d973e057bb8 100644 --- a/deps/openssl/openssl/NEWS.md +++ b/deps/openssl/openssl/NEWS.md @@ -18,6 +18,16 @@ OpenSSL Releases OpenSSL 3.0 ----------- +### Major changes between OpenSSL 3.0.11 and OpenSSL 3.0.12 [24 Oct 2023] + + * Mitigate incorrect resize handling for symmetric cipher keys and IVs. + ([CVE-2023-5363]) + +### Major changes between OpenSSL 3.0.10 and OpenSSL 3.0.11 [19 Sep 2023] + + * Fix POLY1305 MAC implementation corrupting XMM registers on Windows + ([CVE-2023-4807]) + ### Major changes between OpenSSL 3.0.9 and OpenSSL 3.0.10 [1 Aug 2023] * Fix excessive time spent checking DH q parameter value ([CVE-2023-3817]) @@ -1448,6 +1458,8 @@ OpenSSL 0.9.x +[CVE-2023-5363]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-5363 +[CVE-2023-4807]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-4807 [CVE-2023-3817]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3817 [CVE-2023-3446]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-3446 [CVE-2023-2975]: https://www.openssl.org/news/vulnerabilities.html#CVE-2023-2975 diff --git a/deps/openssl/openssl/README-OpenSSL.md b/deps/openssl/openssl/README-OpenSSL.md index f2f4fd39ad05bb..b848d050132aae 100644 --- a/deps/openssl/openssl/README-OpenSSL.md +++ b/deps/openssl/openssl/README-OpenSSL.md @@ -166,7 +166,7 @@ attempting to develop or distribute cryptographic code. Copyright ========= -Copyright (c) 1998-2022 The OpenSSL Project +Copyright (c) 1998-2023 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson diff --git a/deps/openssl/openssl/README.md b/deps/openssl/openssl/README.md index 80090a262c0502..e73b04b378e322 100644 --- a/deps/openssl/openssl/README.md +++ b/deps/openssl/openssl/README.md @@ -4,7 +4,7 @@ What This Is This is a fork of [OpenSSL](https://www.openssl.org) to enable QUIC. In addition to the website, the official source distribution is at . The OpenSSL `README` can be found at -[README-OpenSSL.md](https://github.com/quictls/openssl/blob/openssl-3.0.10%2Bquic/README-OpenSSL.md) +[README-OpenSSL.md](https://github.com/quictls/openssl/blob/openssl-3.0.12%2Bquic/README-OpenSSL.md) This fork adds APIs that can be used by QUIC implementations for connection handshakes. Quoting the IETF Working group diff --git a/deps/openssl/openssl/VERSION.dat b/deps/openssl/openssl/VERSION.dat index 3388a2ac907c8f..d416c3662e5dd1 100644 --- a/deps/openssl/openssl/VERSION.dat +++ b/deps/openssl/openssl/VERSION.dat @@ -1,7 +1,7 @@ MAJOR=3 MINOR=0 -PATCH=10 +PATCH=12 PRE_RELEASE_TAG= BUILD_METADATA=quic -RELEASE_DATE="1 Aug 2023" +RELEASE_DATE="24 Oct 2023" SHLIB_VERSION=81.3 diff --git a/deps/openssl/openssl/apps/cmp.c b/deps/openssl/openssl/apps/cmp.c index a317fdb0bf3ed4..c479b15496607f 100644 --- a/deps/openssl/openssl/apps/cmp.c +++ b/deps/openssl/openssl/apps/cmp.c @@ -2512,7 +2512,7 @@ static int get_opts(int argc, char **argv) } break; case OPT_CSR: - opt_csr = opt_arg(); + opt_csr = opt_str(); break; case OPT_OUT_TRUSTED: opt_out_trusted = opt_str(); diff --git a/deps/openssl/openssl/apps/dgst.c b/deps/openssl/openssl/apps/dgst.c index e12389197de4a6..3f02af0d5738ab 100644 --- a/deps/openssl/openssl/apps/dgst.c +++ b/deps/openssl/openssl/apps/dgst.c @@ -320,6 +320,8 @@ int dgst_main(int argc, char **argv) sigkey = app_keygen(mac_ctx, mac_name, 0, 0 /* not verbose */); /* Verbose output would make external-tests gost-engine fail */ EVP_PKEY_CTX_free(mac_ctx); + if (sigkey == NULL) + goto end; } if (hmac_key != NULL) { diff --git a/deps/openssl/openssl/apps/dhparam.c b/deps/openssl/openssl/apps/dhparam.c index 43906cea56497b..2a54dca9d8b552 100644 --- a/deps/openssl/openssl/apps/dhparam.c +++ b/deps/openssl/openssl/apps/dhparam.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -222,6 +222,8 @@ int dhparam_main(int argc, char **argv) } tmppkey = app_paramgen(ctx, alg); + if (tmppkey == NULL) + goto end; EVP_PKEY_CTX_free(ctx); ctx = NULL; if (dsaparam) { diff --git a/deps/openssl/openssl/apps/dsaparam.c b/deps/openssl/openssl/apps/dsaparam.c index b5555282be6e18..ca91beb5b893bb 100644 --- a/deps/openssl/openssl/apps/dsaparam.c +++ b/deps/openssl/openssl/apps/dsaparam.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -218,6 +218,8 @@ int dsaparam_main(int argc, char **argv) goto end; } pkey = app_keygen(ctx, "DSA", numbits, verbose); + if (pkey == NULL) + goto end; assert(private); if (outformat == FORMAT_ASN1) i = i2d_PrivateKey_bio(out, pkey); diff --git a/deps/openssl/openssl/apps/enc.c b/deps/openssl/openssl/apps/enc.c index b3bf4cc2592d01..c275046cf57a64 100644 --- a/deps/openssl/openssl/apps/enc.c +++ b/deps/openssl/openssl/apps/enc.c @@ -624,7 +624,10 @@ int enc_main(int argc, char **argv) } } if (!BIO_flush(wbio)) { - BIO_printf(bio_err, "bad decrypt\n"); + if (enc) + BIO_printf(bio_err, "bad encrypt\n"); + else + BIO_printf(bio_err, "bad decrypt\n"); goto end; } diff --git a/deps/openssl/openssl/apps/gendsa.c b/deps/openssl/openssl/apps/gendsa.c index 27feb793fed23c..8aefca65566c59 100644 --- a/deps/openssl/openssl/apps/gendsa.c +++ b/deps/openssl/openssl/apps/gendsa.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -146,6 +146,8 @@ int gendsa_main(int argc, char **argv) goto end; } pkey = app_keygen(ctx, "DSA", nbits, verbose); + if (pkey == NULL) + goto end; assert(private); if (!PEM_write_bio_PrivateKey(out, pkey, enc, NULL, 0, NULL, passout)) { diff --git a/deps/openssl/openssl/apps/genpkey.c b/deps/openssl/openssl/apps/genpkey.c index d00754eeaca09f..705e5c76b47dc0 100644 --- a/deps/openssl/openssl/apps/genpkey.c +++ b/deps/openssl/openssl/apps/genpkey.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -183,6 +183,8 @@ int genpkey_main(int argc, char **argv) pkey = do_param ? app_paramgen(ctx, algname) : app_keygen(ctx, algname, 0, 0 /* not verbose */); + if (pkey == NULL) + goto end; if (do_param) { rv = PEM_write_bio_Parameters(out, pkey); diff --git a/deps/openssl/openssl/apps/genrsa.c b/deps/openssl/openssl/apps/genrsa.c index 4436b7fa1745a9..6a683517a15fc7 100644 --- a/deps/openssl/openssl/apps/genrsa.c +++ b/deps/openssl/openssl/apps/genrsa.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -203,6 +203,8 @@ int genrsa_main(int argc, char **argv) goto end; } pkey = app_keygen(ctx, "RSA", num, verbose); + if (pkey == NULL) + goto end; if (verbose) { BIGNUM *e = NULL; diff --git a/deps/openssl/openssl/apps/lib/apps.c b/deps/openssl/openssl/apps/lib/apps.c index 4baeb352fedfb3..a632b0cff2bf68 100644 --- a/deps/openssl/openssl/apps/lib/apps.c +++ b/deps/openssl/openssl/apps/lib/apps.c @@ -944,7 +944,7 @@ int load_key_certs_crls_suppress(const char *uri, int format, int maybe_stdin, BIO *bio; if (!maybe_stdin) { - BIO_printf(bio_err, "No filename or uri specified for loading"); + BIO_printf(bio_err, "No filename or uri specified for loading\n"); goto end; } uri = ""; @@ -964,8 +964,10 @@ int load_key_certs_crls_suppress(const char *uri, int format, int maybe_stdin, BIO_printf(bio_err, "Could not open file or uri for loading"); goto end; } - if (expect > 0 && !OSSL_STORE_expect(ctx, expect)) + if (expect > 0 && !OSSL_STORE_expect(ctx, expect)) { + BIO_printf(bio_err, "Internal error trying to load"); goto end; + } failed = NULL; while (cnt_expectations > 0 && !OSSL_STORE_eof(ctx)) { @@ -1948,16 +1950,17 @@ X509_NAME *parse_name(const char *cp, int chtype, int canmulti, nid = OBJ_txt2nid(typestr); if (nid == NID_undef) { BIO_printf(bio_err, - "%s: Skipping unknown %s name attribute \"%s\"\n", + "%s warning: Skipping unknown %s name attribute \"%s\"\n", opt_getprog(), desc, typestr); if (ismulti) BIO_printf(bio_err, - "Hint: a '+' in a value string needs be escaped using '\\' else a new member of a multi-valued RDN is expected\n"); + "%s hint: a '+' in a value string needs be escaped using '\\' else a new member of a multi-valued RDN is expected\n", + opt_getprog()); continue; } if (*valstr == '\0') { BIO_printf(bio_err, - "%s: No value provided for %s name attribute \"%s\", skipped\n", + "%s warning: No value provided for %s name attribute \"%s\", skipped\n", opt_getprog(), desc, typestr); continue; } @@ -3360,8 +3363,8 @@ EVP_PKEY *app_keygen(EVP_PKEY_CTX *ctx, const char *alg, int bits, int verbose) BIO_printf(bio_err, "Warning: generating random key material may take a long time\n" "if the system has a poor entropy source\n"); if (EVP_PKEY_keygen(ctx, &res) <= 0) - app_bail_out("%s: Error generating %s key\n", opt_getprog(), - alg != NULL ? alg : "asymmetric"); + BIO_printf(bio_err, "%s: Error generating %s key\n", opt_getprog(), + alg != NULL ? alg : "asymmetric"); return res; } @@ -3373,8 +3376,8 @@ EVP_PKEY *app_paramgen(EVP_PKEY_CTX *ctx, const char *alg) BIO_printf(bio_err, "Warning: generating random key parameters may take a long time\n" "if the system has a poor entropy source\n"); if (EVP_PKEY_paramgen(ctx, &res) <= 0) - app_bail_out("%s: Generating %s key parameters failed\n", - opt_getprog(), alg != NULL ? alg : "asymmetric"); + BIO_printf(bio_err, "%s: Generating %s key parameters failed\n", + opt_getprog(), alg != NULL ? alg : "asymmetric"); return res; } diff --git a/deps/openssl/openssl/apps/req.c b/deps/openssl/openssl/apps/req.c index 73b320a7098cf0..41191803aef417 100644 --- a/deps/openssl/openssl/apps/req.c +++ b/deps/openssl/openssl/apps/req.c @@ -685,6 +685,8 @@ int req_main(int argc, char **argv) EVP_PKEY_CTX_set_app_data(genctx, bio_err); pkey = app_keygen(genctx, keyalgstr, newkey_len, verbose); + if (pkey == NULL) + goto end; EVP_PKEY_CTX_free(genctx); genctx = NULL; @@ -990,10 +992,10 @@ int req_main(int argc, char **argv) else tpubkey = X509_REQ_get0_pubkey(req); if (tpubkey == NULL) { - fprintf(stdout, "Modulus is unavailable\n"); + BIO_puts(bio_err, "Modulus is unavailable\n"); goto end; } - fprintf(stdout, "Modulus="); + BIO_puts(out, "Modulus="); if (EVP_PKEY_is_a(tpubkey, "RSA") || EVP_PKEY_is_a(tpubkey, "RSA-PSS")) { BIGNUM *n = NULL; @@ -1002,9 +1004,9 @@ int req_main(int argc, char **argv) BN_print(out, n); BN_free(n); } else { - fprintf(stdout, "Wrong Algorithm type"); + BIO_puts(out, "Wrong Algorithm type"); } - fprintf(stdout, "\n"); + BIO_puts(out, "\n"); } if (!noout && !gen_x509) { diff --git a/deps/openssl/openssl/apps/s_server.c b/deps/openssl/openssl/apps/s_server.c index a203d6a091cac3..c8ccdfd03ca196 100644 --- a/deps/openssl/openssl/apps/s_server.c +++ b/deps/openssl/openssl/apps/s_server.c @@ -789,7 +789,7 @@ const OPTIONS s_server_options[] = { "second server certificate chain file in PEM format"}, {"dkey", OPT_DKEY, '<', "Second private key file to use (usually for DSA)"}, - {"dkeyform", OPT_DKEYFORM, 'F', + {"dkeyform", OPT_DKEYFORM, 'f', "Second key file format (ENGINE, other values ignored)"}, {"dpass", OPT_DPASS, 's', "Second private key and cert file pass phrase source"}, diff --git a/deps/openssl/openssl/apps/speed.c b/deps/openssl/openssl/apps/speed.c index f30435704d19ce..1113d775b8ab98 100644 --- a/deps/openssl/openssl/apps/speed.c +++ b/deps/openssl/openssl/apps/speed.c @@ -3700,7 +3700,8 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single, } else { int pad; - RAND_bytes(out, 16); + if (RAND_bytes(inp, 16) <= 0) + app_bail_out("error setting random bytes\n"); len += 16; aad[11] = (unsigned char)(len >> 8); aad[12] = (unsigned char)(len); diff --git a/deps/openssl/openssl/appveyor.yml b/deps/openssl/openssl/appveyor.yml deleted file mode 100644 index 9bb6f04e0a44cb..00000000000000 --- a/deps/openssl/openssl/appveyor.yml +++ /dev/null @@ -1,82 +0,0 @@ -image: - - Visual Studio 2017 - -platform: - - x64 - - x86 - -environment: - fast_finish: true - matrix: - - VSVER: 15 - -configuration: - - shared - - minimal - -for: - - - branches: - only: - - master - configuration: - - shared - - plain - - minimal - -before_build: - - ps: >- - Install-Module VSSetup -Scope CurrentUser - - ps: >- - Get-VSSetupInstance -All - - ps: >- - If ($env:Platform -Match "x86") { - $env:VCVARS_PLATFORM="x86" - $env:TARGET="VC-WIN32 no-asm --strict-warnings" - } Else { - $env:VCVARS_PLATFORM="amd64" - $env:TARGET="VC-WIN64A-masm" - } - - ps: >- - If ($env:Configuration -Match "shared") { - $env:CONFIG_OPTS="enable-fips" - } ElseIf ($env:Configuration -Match "minimal") { - $env:CONFIG_OPTS="no-bulk no-asm -DOPENSSL_SMALL_FOOTPRINT" - } Else { - $env:CONFIG_OPTS="no-fips no-shared" - } - - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM% - - mkdir _build - - cd _build - - perl ..\Configure %TARGET% no-makedepend %CONFIG_OPTS% - - perl configdata.pm --dump - - cd .. - - ps: >- - If ($env:BUILDONLY -or $env:MAKEVERBOSE) { - $env:NMAKE="nmake" - } Else { - $env:NMAKE="nmake /S" - } - - ps: >- - gci env:* | sort-object name - -build_script: - - cd _build - - "%NMAKE% build_all_generated" - - "%NMAKE% PERL=no-perl" - - cd .. - -test_script: - - cd _build - - ps: >- - if ($env:Configuration -Match "plain") { - cmd /c "%NMAKE% test VERBOSE_FAILURE=yes 2>&1" - } Else { - cmd /c "%NMAKE% test VERBOSE_FAILURE=yes TESTS=-test_fuzz 2>&1" - } - - ps: >- - if ($env:Configuration -Match "shared") { - mkdir ..\_install - cmd /c "%NMAKE% install DESTDIR=..\_install 2>&1" - } - - cd .. diff --git a/deps/openssl/openssl/crypto/aes/asm/aesv8-armx.pl b/deps/openssl/openssl/crypto/aes/asm/aesv8-armx.pl index 544dc7e8effe66..d0e0be6187bd2e 100755 --- a/deps/openssl/openssl/crypto/aes/asm/aesv8-armx.pl +++ b/deps/openssl/openssl/crypto/aes/asm/aesv8-armx.pl @@ -3661,6 +3661,9 @@ () s/\.[ui]?64//o and s/\.16b/\.2d/go; s/\.[42]([sd])\[([0-3])\]/\.$1\[$2\]/o; + # Switch preprocessor checks to aarch64 versions. + s/__ARME([BL])__/__AARCH64E$1__/go; + print $_,"\n"; } } else { ######## 32-bit code diff --git a/deps/openssl/openssl/crypto/arm_arch.h b/deps/openssl/openssl/crypto/arm_arch.h index 45d7e155647540..ec4a087fede2fc 100644 --- a/deps/openssl/openssl/crypto/arm_arch.h +++ b/deps/openssl/openssl/crypto/arm_arch.h @@ -1,5 +1,5 @@ /* - * Copyright 2011-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,11 +21,6 @@ # elif defined(__GNUC__) # if defined(__aarch64__) # define __ARM_ARCH__ 8 -# if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ -# define __ARMEB__ -# else -# define __ARMEL__ -# endif /* * Why doesn't gcc define __ARM_ARCH__? Instead it defines * bunch of below macros. See all_architectures[] table in diff --git a/deps/openssl/openssl/crypto/asn1/a_strnid.c b/deps/openssl/openssl/crypto/asn1/a_strnid.c index 9e54db929282c5..d052935661d362 100644 --- a/deps/openssl/openssl/crypto/asn1/a_strnid.c +++ b/deps/openssl/openssl/crypto/asn1/a_strnid.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -129,8 +129,10 @@ ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid) int idx; ASN1_STRING_TABLE fnd; +#ifndef OPENSSL_NO_AUTOLOAD_CONFIG /* "stable" can be impacted by config, so load the config file first */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); +#endif fnd.nid = nid; if (stable) { diff --git a/deps/openssl/openssl/crypto/asn1/asn1_gen.c b/deps/openssl/openssl/crypto/asn1/asn1_gen.c index 64620a4f28a7f6..402ab34e6a46f7 100644 --- a/deps/openssl/openssl/crypto/asn1/asn1_gen.c +++ b/deps/openssl/openssl/crypto/asn1/asn1_gen.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -698,9 +698,12 @@ static ASN1_TYPE *asn1_str2type(const char *str, int format, int utype) atmp->value.asn1_string->data = rdata; atmp->value.asn1_string->length = rdlen; atmp->value.asn1_string->type = utype; - } else if (format == ASN1_GEN_FORMAT_ASCII) - ASN1_STRING_set(atmp->value.asn1_string, str, -1); - else if ((format == ASN1_GEN_FORMAT_BITLIST) + } else if (format == ASN1_GEN_FORMAT_ASCII) { + if (!ASN1_STRING_set(atmp->value.asn1_string, str, -1)) { + ERR_raise(ERR_LIB_ASN1, ERR_R_MALLOC_FAILURE); + goto bad_str; + } + } else if ((format == ASN1_GEN_FORMAT_BITLIST) && (utype == V_ASN1_BIT_STRING)) { if (!CONF_parse_list (str, ',', 1, bitstr_cb, atmp->value.bit_string)) { diff --git a/deps/openssl/openssl/crypto/bn/bn_gcd.c b/deps/openssl/openssl/crypto/bn/bn_gcd.c index 59d024f674ebd5..cd0b0151ec7ed6 100644 --- a/deps/openssl/openssl/crypto/bn/bn_gcd.c +++ b/deps/openssl/openssl/crypto/bn/bn_gcd.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -611,9 +611,9 @@ int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX *ctx) for (i = 0; i < m; i++) { /* conditionally flip signs if delta is positive and g is odd */ - cond = (-delta >> (8 * sizeof(delta) - 1)) & g->d[0] & 1 + cond = ((unsigned int)-delta >> (8 * sizeof(delta) - 1)) & g->d[0] & 1 /* make sure g->top > 0 (i.e. if top == 0 then g == 0 always) */ - & (~((g->top - 1) >> (sizeof(g->top) * 8 - 1))); + & (~((unsigned int)(g->top - 1) >> (sizeof(g->top) * 8 - 1))); delta = (-cond & -delta) | ((cond - 1) & delta); r->neg ^= cond; /* swap */ @@ -625,7 +625,7 @@ int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b, BN_CTX *ctx) goto err; BN_consttime_swap(g->d[0] & 1 /* g is odd */ /* make sure g->top > 0 (i.e. if top == 0 then g == 0 always) */ - & (~((g->top - 1) >> (sizeof(g->top) * 8 - 1))), + & (~((unsigned int)(g->top - 1) >> (sizeof(g->top) * 8 - 1))), g, temp, top); if (!BN_rshift1(g, g)) goto err; diff --git a/deps/openssl/openssl/crypto/build.info b/deps/openssl/openssl/crypto/build.info index b90390ae864c40..c04db5591120df 100644 --- a/deps/openssl/openssl/crypto/build.info +++ b/deps/openssl/openssl/crypto/build.info @@ -97,8 +97,6 @@ $UTIL_COMMON=\ context.c sparse_array.c asn1_dsa.c packet.c param_build.c \ param_build_set.c der_writer.c threads_lib.c params_dup.c -SHARED_SOURCE[../libssl]=sparse_array.c - SOURCE[../libcrypto]=$UTIL_COMMON \ mem.c mem_sec.c \ cversion.c info.c cpt_err.c ebcdic.c uid.c o_time.c o_dir.c \ diff --git a/deps/openssl/openssl/crypto/chacha/asm/chacha-ia64.pl b/deps/openssl/openssl/crypto/chacha/asm/chacha-ia64.pl index b13d972855754d..78201649d55029 100644 --- a/deps/openssl/openssl/crypto/chacha/asm/chacha-ia64.pl +++ b/deps/openssl/openssl/crypto/chacha/asm/chacha-ia64.pl @@ -46,6 +46,8 @@ ADDP @k[11]=4,$key .save ar.lc,r3 mov r3=ar.lc } +{ .mmi; ADDP $out=0,$out + ADDP $inp=0,$inp } { .mmi; ADDP $key=0,$key ADDP $counter=0,$counter .save pr,r14 diff --git a/deps/openssl/openssl/crypto/cmp/cmp_asn.c b/deps/openssl/openssl/crypto/cmp/cmp_asn.c index 0ca107554c96dd..a8de73ad979b67 100644 --- a/deps/openssl/openssl/crypto/cmp/cmp_asn.c +++ b/deps/openssl/openssl/crypto/cmp/cmp_asn.c @@ -1,5 +1,5 @@ /* - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -188,22 +188,22 @@ int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, return 0; } -/* get ASN.1 encoded integer, return -1 on error */ +/* get ASN.1 encoded integer, return -2 on error; -1 is valid for certReqId */ int ossl_cmp_asn1_get_int(const ASN1_INTEGER *a) { int64_t res; if (!ASN1_INTEGER_get_int64(&res, a)) { ERR_raise(ERR_LIB_CMP, ASN1_R_INVALID_NUMBER); - return -1; + return -2; } if (res < INT_MIN) { ERR_raise(ERR_LIB_CMP, ASN1_R_TOO_SMALL); - return -1; + return -2; } if (res > INT_MAX) { ERR_raise(ERR_LIB_CMP, ASN1_R_TOO_LARGE); - return -1; + return -2; } return (int)res; } diff --git a/deps/openssl/openssl/crypto/cmp/cmp_client.c b/deps/openssl/openssl/crypto/cmp/cmp_client.c index dc41f4c3b7d9e2..df334cc0019822 100644 --- a/deps/openssl/openssl/crypto/cmp/cmp_client.c +++ b/deps/openssl/openssl/crypto/cmp/cmp_client.c @@ -584,7 +584,7 @@ static int cert_response(OSSL_CMP_CTX *ctx, int sleep, int rid, return 0; if (rid == OSSL_CMP_CERTREQID_NONE) { /* used for OSSL_CMP_PKIBODY_P10CR */ rid = ossl_cmp_asn1_get_int(crep->certReqId); - if (rid != OSSL_CMP_CERTREQID_NONE) { + if (rid < OSSL_CMP_CERTREQID_NONE) { ERR_raise(ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID); return 0; } diff --git a/deps/openssl/openssl/crypto/cmp/cmp_status.c b/deps/openssl/openssl/crypto/cmp/cmp_status.c index bfe6cd9906b82a..68144aa4fed878 100644 --- a/deps/openssl/openssl/crypto/cmp/cmp_status.c +++ b/deps/openssl/openssl/crypto/cmp/cmp_status.c @@ -1,5 +1,5 @@ /* - * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright Nokia 2007-2019 * Copyright Siemens AG 2015-2019 * @@ -30,9 +30,12 @@ int ossl_cmp_pkisi_get_status(const OSSL_CMP_PKISI *si) { + int res ; + if (!ossl_assert(si != NULL && si->status != NULL)) return -1; - return ossl_cmp_asn1_get_int(si->status); + res = ossl_cmp_asn1_get_int(si->status); + return res == -2 ? -1 : res; } const char *ossl_cmp_PKIStatus_to_string(int status) diff --git a/deps/openssl/openssl/crypto/cms/cms_enc.c b/deps/openssl/openssl/crypto/cms/cms_enc.c index f7007c12319e66..ae88df33a7f0bf 100644 --- a/deps/openssl/openssl/crypto/cms/cms_enc.c +++ b/deps/openssl/openssl/crypto/cms/cms_enc.c @@ -1,5 +1,5 @@ /* - * Copyright 2008-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -15,6 +15,7 @@ #include #include #include "crypto/evp.h" +#include "crypto/asn1.h" #include "cms_local.h" /* CMS EncryptedData Utilities */ @@ -81,7 +82,7 @@ BIO *ossl_cms_EncryptedContent_init_bio(CMS_EncryptedContentInfo *ec, if (enc) { calg->algorithm = OBJ_nid2obj(EVP_CIPHER_CTX_get_type(ctx)); - if (calg->algorithm == NULL) { + if (calg->algorithm == NULL || calg->algorithm->nid == NID_undef) { ERR_raise(ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM); goto err; } diff --git a/deps/openssl/openssl/crypto/cms/cms_env.c b/deps/openssl/openssl/crypto/cms/cms_env.c index bd1f3e7345d400..99cf1dcb396ca5 100644 --- a/deps/openssl/openssl/crypto/cms/cms_env.c +++ b/deps/openssl/openssl/crypto/cms/cms_env.c @@ -26,7 +26,7 @@ static void cms_env_set_version(CMS_EnvelopedData *env); #define CMS_ENVELOPED_STANDARD 1 #define CMS_ENVELOPED_AUTH 2 -static int cms_get_enveloped_type(const CMS_ContentInfo *cms) +static int cms_get_enveloped_type_simple(const CMS_ContentInfo *cms) { int nid = OBJ_obj2nid(cms->contentType); @@ -38,11 +38,28 @@ static int cms_get_enveloped_type(const CMS_ContentInfo *cms) return CMS_ENVELOPED_AUTH; default: - ERR_raise(ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA); return 0; } } +static int cms_get_enveloped_type(const CMS_ContentInfo *cms) +{ + int ret = cms_get_enveloped_type_simple(cms); + + if (ret == 0) + ERR_raise(ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA); + return ret; +} + +void ossl_cms_env_enc_content_free(const CMS_ContentInfo *cinf) +{ + if (cms_get_enveloped_type_simple(cinf) != 0) { + CMS_EncryptedContentInfo *ec = ossl_cms_get0_env_enc_content(cinf); + if (ec != NULL) + OPENSSL_clear_free(ec->key, ec->keylen); + } +} + CMS_EnvelopedData *ossl_cms_get0_enveloped(CMS_ContentInfo *cms) { if (OBJ_obj2nid(cms->contentType) != NID_pkcs7_enveloped) { diff --git a/deps/openssl/openssl/crypto/cms/cms_err.c b/deps/openssl/openssl/crypto/cms/cms_err.c index dcbea201c8e5f4..4bd6a0dc1bf101 100644 --- a/deps/openssl/openssl/crypto/cms/cms_err.c +++ b/deps/openssl/openssl/crypto/cms/cms_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -154,6 +154,8 @@ static const ERR_STRING_DATA CMS_str_reasons[] = { "unsupported recipientinfo type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_RECIPIENT_TYPE), "unsupported recipient type"}, + {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM), + "unsupported signature algorithm"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNSUPPORTED_TYPE), "unsupported type"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNWRAP_ERROR), "unwrap error"}, {ERR_PACK(ERR_LIB_CMS, 0, CMS_R_UNWRAP_FAILURE), "unwrap failure"}, diff --git a/deps/openssl/openssl/crypto/cms/cms_lib.c b/deps/openssl/openssl/crypto/cms/cms_lib.c index 1d2c5bc42288a0..8b135e95aacc81 100644 --- a/deps/openssl/openssl/crypto/cms/cms_lib.c +++ b/deps/openssl/openssl/crypto/cms/cms_lib.c @@ -76,10 +76,7 @@ CMS_ContentInfo *CMS_ContentInfo_new(void) void CMS_ContentInfo_free(CMS_ContentInfo *cms) { if (cms != NULL) { - CMS_EncryptedContentInfo *ec = ossl_cms_get0_env_enc_content(cms); - - if (ec != NULL) - OPENSSL_clear_free(ec->key, ec->keylen); + ossl_cms_env_enc_content_free(cms); OPENSSL_free(cms->ctx.propq); ASN1_item_free((ASN1_VALUE *)cms, ASN1_ITEM_rptr(CMS_ContentInfo)); } diff --git a/deps/openssl/openssl/crypto/cms/cms_local.h b/deps/openssl/openssl/crypto/cms/cms_local.h index 15b4a29ce03dce..253f6819e43542 100644 --- a/deps/openssl/openssl/crypto/cms/cms_local.h +++ b/deps/openssl/openssl/crypto/cms/cms_local.h @@ -1,5 +1,5 @@ /* - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -444,6 +444,7 @@ BIO *ossl_cms_EnvelopedData_init_bio(CMS_ContentInfo *cms); int ossl_cms_EnvelopedData_final(CMS_ContentInfo *cms, BIO *chain); BIO *ossl_cms_AuthEnvelopedData_init_bio(CMS_ContentInfo *cms); int ossl_cms_AuthEnvelopedData_final(CMS_ContentInfo *cms, BIO *cmsbio); +void ossl_cms_env_enc_content_free(const CMS_ContentInfo *cinf); CMS_EnvelopedData *ossl_cms_get0_enveloped(CMS_ContentInfo *cms); CMS_AuthEnvelopedData *ossl_cms_get0_auth_enveloped(CMS_ContentInfo *cms); CMS_EncryptedContentInfo *ossl_cms_get0_env_enc_content(const CMS_ContentInfo *cms); diff --git a/deps/openssl/openssl/crypto/cms/cms_sd.c b/deps/openssl/openssl/crypto/cms/cms_sd.c index 34c021bba64af7..2093657a2a4a69 100644 --- a/deps/openssl/openssl/crypto/cms/cms_sd.c +++ b/deps/openssl/openssl/crypto/cms/cms_sd.c @@ -1,5 +1,5 @@ /* - * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -233,9 +233,9 @@ static int cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd) int i; if (EVP_PKEY_is_a(pkey, "DSA") || EVP_PKEY_is_a(pkey, "EC")) - return ossl_cms_ecdsa_dsa_sign(si, cmd); + return ossl_cms_ecdsa_dsa_sign(si, cmd) > 0; else if (EVP_PKEY_is_a(pkey, "RSA") || EVP_PKEY_is_a(pkey, "RSA-PSS")) - return ossl_cms_rsa_sign(si, cmd); + return ossl_cms_rsa_sign(si, cmd) > 0; /* Something else? We'll give engines etc a chance to handle this */ if (pkey->ameth == NULL || pkey->ameth->pkey_ctrl == NULL) @@ -354,11 +354,16 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, if (md == NULL) { int def_nid; - if (EVP_PKEY_get_default_digest_nid(pk, &def_nid) <= 0) + + if (EVP_PKEY_get_default_digest_nid(pk, &def_nid) <= 0) { + ERR_raise_data(ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST, + "pkey nid=%d", EVP_PKEY_get_id(pk)); goto err; + } md = EVP_get_digestbynid(def_nid); if (md == NULL) { - ERR_raise(ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST); + ERR_raise_data(ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST, + "default md nid=%d", def_nid); goto err; } } @@ -398,8 +403,11 @@ CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, } } - if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0)) + if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0)) { + ERR_raise_data(ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM, + "pkey nid=%d", EVP_PKEY_get_id(pk)); goto err; + } if (!(flags & CMS_NOATTR)) { /* * Initialize signed attributes structure so other attributes diff --git a/deps/openssl/openssl/crypto/conf/conf_sap.c b/deps/openssl/openssl/crypto/conf/conf_sap.c index 513f8bfc1fb94c..3019bcf31af81a 100644 --- a/deps/openssl/openssl/crypto/conf/conf_sap.c +++ b/deps/openssl/openssl/crypto/conf/conf_sap.c @@ -65,7 +65,8 @@ int ossl_config_int(const OPENSSL_INIT_SETTINGS *settings) #endif #ifndef OPENSSL_SYS_UEFI - ret = CONF_modules_load_file(filename, appname, flags); + ret = CONF_modules_load_file_ex(OSSL_LIB_CTX_get0_global_default(), + filename, appname, flags); #else ret = 1; #endif diff --git a/deps/openssl/openssl/crypto/dh/dh_check.c b/deps/openssl/openssl/crypto/dh/dh_check.c index f4173e21371e01..7ba2beae7fd6b9 100644 --- a/deps/openssl/openssl/crypto/dh/dh_check.c +++ b/deps/openssl/openssl/crypto/dh/dh_check.c @@ -259,7 +259,8 @@ int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret) */ int ossl_dh_check_pub_key_partial(const DH *dh, const BIGNUM *pub_key, int *ret) { - return ossl_ffc_validate_public_key_partial(&dh->params, pub_key, ret); + return ossl_ffc_validate_public_key_partial(&dh->params, pub_key, ret) + && *ret == 0; } int ossl_dh_check_priv_key(const DH *dh, const BIGNUM *priv_key, int *ret) diff --git a/deps/openssl/openssl/crypto/dh/dh_key.c b/deps/openssl/openssl/crypto/dh/dh_key.c index 4e9705beef733b..d84ea99241b9e8 100644 --- a/deps/openssl/openssl/crypto/dh/dh_key.c +++ b/deps/openssl/openssl/crypto/dh/dh_key.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -190,7 +190,6 @@ static int dh_bn_mod_exp(const DH *dh, BIGNUM *r, static int dh_init(DH *dh) { dh->flags |= DH_FLAG_CACHE_MONT_P; - ossl_ffc_params_init(&dh->params); dh->dirty_cnt++; return 1; } diff --git a/deps/openssl/openssl/crypto/dh/dh_lib.c b/deps/openssl/openssl/crypto/dh/dh_lib.c index 29cda5d7bfa845..5577413e1e0c07 100644 --- a/deps/openssl/openssl/crypto/dh/dh_lib.c +++ b/deps/openssl/openssl/crypto/dh/dh_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -116,6 +116,8 @@ static DH *dh_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx) goto err; #endif /* FIPS_MODULE */ + ossl_ffc_params_init(&ret->params); + if ((ret->meth->init != NULL) && !ret->meth->init(ret)) { ERR_raise(ERR_LIB_DH, ERR_R_INIT_FAIL); goto err; diff --git a/deps/openssl/openssl/crypto/dsa/dsa_check.c b/deps/openssl/openssl/crypto/dsa/dsa_check.c index 7ee914a477ecea..fb0e9129a2956b 100644 --- a/deps/openssl/openssl/crypto/dsa/dsa_check.c +++ b/deps/openssl/openssl/crypto/dsa/dsa_check.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,7 +39,8 @@ int ossl_dsa_check_params(const DSA *dsa, int checktype, int *ret) */ int ossl_dsa_check_pub_key(const DSA *dsa, const BIGNUM *pub_key, int *ret) { - return ossl_ffc_validate_public_key(&dsa->params, pub_key, ret); + return ossl_ffc_validate_public_key(&dsa->params, pub_key, ret) + && *ret == 0; } /* @@ -49,7 +50,8 @@ int ossl_dsa_check_pub_key(const DSA *dsa, const BIGNUM *pub_key, int *ret) */ int ossl_dsa_check_pub_key_partial(const DSA *dsa, const BIGNUM *pub_key, int *ret) { - return ossl_ffc_validate_public_key_partial(&dsa->params, pub_key, ret); + return ossl_ffc_validate_public_key_partial(&dsa->params, pub_key, ret) + && *ret == 0; } int ossl_dsa_check_priv_key(const DSA *dsa, const BIGNUM *priv_key, int *ret) diff --git a/deps/openssl/openssl/crypto/dsa/dsa_lib.c b/deps/openssl/openssl/crypto/dsa/dsa_lib.c index ccc70165921764..2ae3f8e36b265f 100644 --- a/deps/openssl/openssl/crypto/dsa/dsa_lib.c +++ b/deps/openssl/openssl/crypto/dsa/dsa_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -176,6 +176,8 @@ static DSA *dsa_new_intern(ENGINE *engine, OSSL_LIB_CTX *libctx) goto err; #endif + ossl_ffc_params_init(&ret->params); + if ((ret->meth->init != NULL) && !ret->meth->init(ret)) { ERR_raise(ERR_LIB_DSA, ERR_R_INIT_FAIL); goto err; diff --git a/deps/openssl/openssl/crypto/dsa/dsa_ossl.c b/deps/openssl/openssl/crypto/dsa/dsa_ossl.c index 62f7c70149f4fb..8fd66a950e3739 100644 --- a/deps/openssl/openssl/crypto/dsa/dsa_ossl.c +++ b/deps/openssl/openssl/crypto/dsa/dsa_ossl.c @@ -441,7 +441,6 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, static int dsa_init(DSA *dsa) { dsa->flags |= DSA_FLAG_CACHE_MONT_P; - ossl_ffc_params_init(&dsa->params); dsa->dirty_cnt++; return 1; } diff --git a/deps/openssl/openssl/crypto/encode_decode/decoder_lib.c b/deps/openssl/openssl/crypto/encode_decode/decoder_lib.c index e24d2c6cd588be..2e4b7ed60b9c1c 100644 --- a/deps/openssl/openssl/crypto/encode_decode/decoder_lib.c +++ b/deps/openssl/openssl/crypto/encode_decode/decoder_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -743,10 +743,11 @@ static int decoder_process(const OSSL_PARAM params[], void *arg) (void *)new_data.ctx, LEVEL, rv); } OSSL_TRACE_END(DECODER); - data->flag_construct_called = 1; ok = (rv > 0); - if (ok) + if (ok) { + data->flag_construct_called = 1; goto end; + } } /* The constructor didn't return success */ diff --git a/deps/openssl/openssl/crypto/encode_decode/decoder_pkey.c b/deps/openssl/openssl/crypto/encode_decode/decoder_pkey.c index ed10bb1cee035a..ad5e2805319b57 100644 --- a/deps/openssl/openssl/crypto/encode_decode/decoder_pkey.c +++ b/deps/openssl/openssl/crypto/encode_decode/decoder_pkey.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -150,7 +150,11 @@ static int decoder_construct_pkey(OSSL_DECODER_INSTANCE *decoder_inst, import_data.keymgmt = keymgmt; import_data.keydata = NULL; - import_data.selection = data->selection; + if (data->selection == 0) + /* import/export functions do not tolerate 0 selection */ + import_data.selection = OSSL_KEYMGMT_SELECT_ALL; + else + import_data.selection = data->selection; /* * No need to check for errors here, the value of diff --git a/deps/openssl/openssl/crypto/engine/eng_lib.c b/deps/openssl/openssl/crypto/engine/eng_lib.c index dfd53a43319559..cfdb5a50f481da 100644 --- a/deps/openssl/openssl/crypto/engine/eng_lib.c +++ b/deps/openssl/openssl/crypto/engine/eng_lib.c @@ -133,28 +133,34 @@ static ENGINE_CLEANUP_ITEM *int_cleanup_item(ENGINE_CLEANUP_CB *cb) return item; } -void engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb) +int engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb) { ENGINE_CLEANUP_ITEM *item; if (!int_cleanup_check(1)) - return; + return 0; item = int_cleanup_item(cb); - if (item != NULL) - if (sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0) <= 0) - OPENSSL_free(item); + if (item != NULL) { + if (sk_ENGINE_CLEANUP_ITEM_insert(cleanup_stack, item, 0)) + return 1; + OPENSSL_free(item); + } + return 0; } -void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb) +int engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb) { ENGINE_CLEANUP_ITEM *item; + if (!int_cleanup_check(1)) - return; + return 0; item = int_cleanup_item(cb); if (item != NULL) { - if (sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item) <= 0) - OPENSSL_free(item); + if (sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item) > 0) + return 1; + OPENSSL_free(item); } + return 0; } /* The API function that performs all cleanup */ diff --git a/deps/openssl/openssl/crypto/engine/eng_list.c b/deps/openssl/openssl/crypto/engine/eng_list.c index 04c73c76286486..f2eed3b071746b 100644 --- a/deps/openssl/openssl/crypto/engine/eng_list.c +++ b/deps/openssl/openssl/crypto/engine/eng_list.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -78,12 +78,15 @@ static int engine_list_add(ENGINE *e) ERR_raise(ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR); return 0; } - engine_list_head = e; - e->prev = NULL; /* * The first time the list allocates, we should register the cleanup. */ - engine_cleanup_add_last(engine_list_cleanup); + if (!engine_cleanup_add_last(engine_list_cleanup)) { + ERR_raise(ERR_LIB_ENGINE, ENGINE_R_INTERNAL_LIST_ERROR); + return 0; + } + engine_list_head = e; + e->prev = NULL; } else { /* We are adding to the tail of an existing list. */ if ((engine_list_tail == NULL) || (engine_list_tail->next != NULL)) { diff --git a/deps/openssl/openssl/crypto/engine/eng_local.h b/deps/openssl/openssl/crypto/engine/eng_local.h index 03a86299cf88b8..75bc9e6f1675b9 100644 --- a/deps/openssl/openssl/crypto/engine/eng_local.h +++ b/deps/openssl/openssl/crypto/engine/eng_local.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -46,8 +46,8 @@ typedef struct st_engine_cleanup_item { ENGINE_CLEANUP_CB *cb; } ENGINE_CLEANUP_ITEM; DEFINE_STACK_OF(ENGINE_CLEANUP_ITEM) -void engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb); -void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb); +int engine_cleanup_add_first(ENGINE_CLEANUP_CB *cb); +int engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb); /* We need stacks of ENGINEs for use in eng_table.c */ DEFINE_STACK_OF(ENGINE) diff --git a/deps/openssl/openssl/crypto/engine/eng_pkey.c b/deps/openssl/openssl/crypto/engine/eng_pkey.c index 6e6d6df35b2b9a..f84fcde4601629 100644 --- a/deps/openssl/openssl/crypto/engine/eng_pkey.c +++ b/deps/openssl/openssl/crypto/engine/eng_pkey.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -79,6 +79,48 @@ EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, ERR_raise(ERR_LIB_ENGINE, ENGINE_R_FAILED_LOADING_PRIVATE_KEY); return NULL; } + /* We enforce check for legacy key */ + switch (EVP_PKEY_get_id(pkey)) { + case EVP_PKEY_RSA: + { + RSA *rsa = EVP_PKEY_get1_RSA(pkey); + EVP_PKEY_set1_RSA(pkey, rsa); + RSA_free(rsa); + } + break; +# ifndef OPENSSL_NO_EC + case EVP_PKEY_SM2: + case EVP_PKEY_EC: + { + EC_KEY *ec = EVP_PKEY_get1_EC_KEY(pkey); + EVP_PKEY_set1_EC_KEY(pkey, ec); + EC_KEY_free(ec); + } + break; +# endif +# ifndef OPENSSL_NO_DSA + case EVP_PKEY_DSA: + { + DSA *dsa = EVP_PKEY_get1_DSA(pkey); + EVP_PKEY_set1_DSA(pkey, dsa); + DSA_free(dsa); + } + break; +#endif +# ifndef OPENSSL_NO_DH + case EVP_PKEY_DH: + { + DH *dh = EVP_PKEY_get1_DH(pkey); + EVP_PKEY_set1_DH(pkey, dh); + DH_free(dh); + } + break; +#endif + default: + /*Do nothing */ + break; + } + return pkey; } diff --git a/deps/openssl/openssl/crypto/engine/eng_table.c b/deps/openssl/openssl/crypto/engine/eng_table.c index a8209d9e71760b..9dc3144bbfd7b6 100644 --- a/deps/openssl/openssl/crypto/engine/eng_table.c +++ b/deps/openssl/openssl/crypto/engine/eng_table.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -93,9 +93,12 @@ int engine_table_register(ENGINE_TABLE **table, ENGINE_CLEANUP_CB *cleanup, added = 1; if (!int_table_check(table, 1)) goto end; - if (added) - /* The cleanup callback needs to be added */ - engine_cleanup_add_first(cleanup); + /* The cleanup callback needs to be added */ + if (added && !engine_cleanup_add_first(cleanup)) { + lh_ENGINE_PILE_free(&(*table)->piles); + *table = NULL; + goto end; + } while (num_nids--) { tmplate.nid = *nids; fnd = lh_ENGINE_PILE_retrieve(&(*table)->piles, &tmplate); @@ -201,8 +204,10 @@ ENGINE *ossl_engine_table_select(ENGINE_TABLE **table, int nid, ENGINE_PILE tmplate, *fnd = NULL; int initres, loop = 0; +#ifndef OPENSSL_NO_AUTOLOAD_CONFIG /* Load the config before trying to check if engines are available */ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL); +#endif if (!(*table)) { OSSL_TRACE3(ENGINE_TABLE, diff --git a/deps/openssl/openssl/crypto/err/openssl.txt b/deps/openssl/openssl/crypto/err/openssl.txt index d3ac1b19063272..d62ee33ecc77fe 100644 --- a/deps/openssl/openssl/crypto/err/openssl.txt +++ b/deps/openssl/openssl/crypto/err/openssl.txt @@ -375,6 +375,7 @@ CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM:179:\ CMS_R_UNSUPPORTED_LABEL_SOURCE:193:unsupported label source CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE:155:unsupported recipientinfo type CMS_R_UNSUPPORTED_RECIPIENT_TYPE:154:unsupported recipient type +CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM:195:unsupported signature algorithm CMS_R_UNSUPPORTED_TYPE:156:unsupported type CMS_R_UNWRAP_ERROR:157:unwrap error CMS_R_UNWRAP_FAILURE:180:unwrap failure diff --git a/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c b/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c index b28875037c7281..dcd53b43f92b9c 100644 --- a/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c +++ b/deps/openssl/openssl/crypto/evp/ctrl_params_translate.c @@ -1786,7 +1786,8 @@ static int get_rsa_payload_n(enum state state, { const BIGNUM *bn = NULL; - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) return 0; bn = RSA_get0_n(EVP_PKEY_get0_RSA(ctx->p2)); @@ -1799,7 +1800,8 @@ static int get_rsa_payload_e(enum state state, { const BIGNUM *bn = NULL; - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) return 0; bn = RSA_get0_e(EVP_PKEY_get0_RSA(ctx->p2)); @@ -1812,7 +1814,8 @@ static int get_rsa_payload_d(enum state state, { const BIGNUM *bn = NULL; - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) return 0; bn = RSA_get0_d(EVP_PKEY_get0_RSA(ctx->p2)); @@ -1912,7 +1915,8 @@ static int get_rsa_payload_coefficient(enum state state, const struct translation_st *translation, \ struct translation_ctx_st *ctx) \ { \ - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \ + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \ + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \ return 0; \ return get_rsa_payload_factor(state, translation, ctx, n - 1); \ } @@ -1923,7 +1927,8 @@ static int get_rsa_payload_coefficient(enum state state, const struct translation_st *translation, \ struct translation_ctx_st *ctx) \ { \ - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \ + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \ + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \ return 0; \ return get_rsa_payload_exponent(state, translation, ctx, \ n - 1); \ @@ -1935,7 +1940,8 @@ static int get_rsa_payload_coefficient(enum state state, const struct translation_st *translation, \ struct translation_ctx_st *ctx) \ { \ - if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA) \ + if (EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA \ + && EVP_PKEY_get_base_id(ctx->p2) != EVP_PKEY_RSA_PSS) \ return 0; \ return get_rsa_payload_coefficient(state, translation, ctx, \ n - 1); \ @@ -2271,10 +2277,10 @@ static const struct translation_st evp_pkey_ctx_translations[] = { { SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_BITS, "rsa_keygen_bits", NULL, OSSL_PKEY_PARAM_RSA_BITS, OSSL_PARAM_UNSIGNED_INTEGER, NULL }, - { SET, EVP_PKEY_RSA, 0, EVP_PKEY_OP_KEYGEN, + { SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, "rsa_keygen_pubexp", NULL, OSSL_PKEY_PARAM_RSA_E, OSSL_PARAM_UNSIGNED_INTEGER, NULL }, - { SET, EVP_PKEY_RSA, 0, EVP_PKEY_OP_KEYGEN, + { SET, EVP_PKEY_RSA, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, "rsa_keygen_primes", NULL, OSSL_PKEY_PARAM_RSA_PRIMES, OSSL_PARAM_UNSIGNED_INTEGER, NULL }, diff --git a/deps/openssl/openssl/crypto/evp/evp_enc.c b/deps/openssl/openssl/crypto/evp/evp_enc.c index b178d1086473f1..4e6f83e3d0a94a 100644 --- a/deps/openssl/openssl/crypto/evp/evp_enc.c +++ b/deps/openssl/openssl/crypto/evp/evp_enc.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -192,7 +192,12 @@ static int evp_cipher_init_internal(EVP_CIPHER_CTX *ctx, #endif } - if (cipher->prov != NULL) { + if (!ossl_assert(cipher->prov != NULL)) { + ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR); + return 0; + } + + if (cipher != ctx->fetched_cipher) { if (!EVP_CIPHER_up_ref((EVP_CIPHER *)cipher)) { ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR); return 0; @@ -218,6 +223,42 @@ static int evp_cipher_init_internal(EVP_CIPHER_CTX *ctx, return 0; } +#ifndef FIPS_MODULE + /* + * Fix for CVE-2023-5363 + * Passing in a size as part of the init call takes effect late + * so, force such to occur before the initialisation. + * + * The FIPS provider's internal library context is used in a manner + * such that this is not an issue. + */ + if (params != NULL) { + OSSL_PARAM param_lens[3] = { OSSL_PARAM_END, OSSL_PARAM_END, + OSSL_PARAM_END }; + OSSL_PARAM *q = param_lens; + const OSSL_PARAM *p; + + p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_KEYLEN); + if (p != NULL) + memcpy(q++, p, sizeof(*q)); + + /* + * Note that OSSL_CIPHER_PARAM_AEAD_IVLEN is a synomym for + * OSSL_CIPHER_PARAM_IVLEN so both are covered here. + */ + p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_IVLEN); + if (p != NULL) + memcpy(q++, p, sizeof(*q)); + + if (q != param_lens) { + if (!EVP_CIPHER_CTX_set_params(ctx, param_lens)) { + ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_LENGTH); + return 0; + } + } + } +#endif + if (enc) { if (ctx->cipher->einit == NULL) { ERR_raise(ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR); diff --git a/deps/openssl/openssl/crypto/evp/legacy_sha.c b/deps/openssl/openssl/crypto/evp/legacy_sha.c index 3859286eeb2046..ca9a3264978abe 100644 --- a/deps/openssl/openssl/crypto/evp/legacy_sha.c +++ b/deps/openssl/openssl/crypto/evp/legacy_sha.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -71,7 +71,11 @@ static int sha1_int_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2) static int shake_ctrl(EVP_MD_CTX *evp_ctx, int cmd, int p1, void *p2) { - KECCAK1600_CTX *ctx = evp_ctx->md_data; + KECCAK1600_CTX *ctx; + + if (evp_ctx == NULL) + return 0; + ctx = evp_ctx->md_data; switch (cmd) { case EVP_MD_CTRL_XOF_LEN: diff --git a/deps/openssl/openssl/crypto/evp/p_lib.c b/deps/openssl/openssl/crypto/evp/p_lib.c index aa6ec31dab6e9e..04b148a912187e 100644 --- a/deps/openssl/openssl/crypto/evp/p_lib.c +++ b/deps/openssl/openssl/crypto/evp/p_lib.c @@ -717,6 +717,7 @@ static void detect_foreign_key(EVP_PKEY *pkey) { switch (pkey->type) { case EVP_PKEY_RSA: + case EVP_PKEY_RSA_PSS: pkey->foreign = pkey->pkey.rsa != NULL && ossl_rsa_is_foreign(pkey->pkey.rsa); break; @@ -1075,6 +1076,7 @@ int EVP_PKEY_can_sign(const EVP_PKEY *pkey) if (pkey->keymgmt == NULL) { switch (EVP_PKEY_get_base_id(pkey)) { case EVP_PKEY_RSA: + case EVP_PKEY_RSA_PSS: return 1; # ifndef OPENSSL_NO_DSA case EVP_PKEY_DSA: @@ -1199,7 +1201,7 @@ int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, int indent, ASN1_PCTX *pctx) { - return print_pkey(pkey, out, indent, EVP_PKEY_KEYPAIR, NULL, + return print_pkey(pkey, out, indent, EVP_PKEY_PRIVATE_KEY, NULL, (pkey->ameth != NULL ? pkey->ameth->priv_print : NULL), pctx); } diff --git a/deps/openssl/openssl/crypto/evp/pmeth_lib.c b/deps/openssl/openssl/crypto/evp/pmeth_lib.c index ce6e1a1ccbd577..ba1971ce461d57 100644 --- a/deps/openssl/openssl/crypto/evp/pmeth_lib.c +++ b/deps/openssl/openssl/crypto/evp/pmeth_lib.c @@ -251,10 +251,11 @@ static EVP_PKEY_CTX *int_ctx_new(OSSL_LIB_CTX *libctx, */ if (e != NULL) pmeth = ENGINE_get_pkey_meth(e, id); - else if (pkey != NULL && pkey->foreign) + else +# endif /* OPENSSL_NO_ENGINE */ + if (pkey != NULL && pkey->foreign) pmeth = EVP_PKEY_meth_find(id); else -# endif app_pmeth = pmeth = evp_pkey_meth_find_added_by_application(id); /* END legacy */ diff --git a/deps/openssl/openssl/crypto/ex_data.c b/deps/openssl/openssl/crypto/ex_data.c index 40223f06e4ecb6..13b9288994569c 100644 --- a/deps/openssl/openssl/crypto/ex_data.c +++ b/deps/openssl/openssl/crypto/ex_data.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -163,6 +163,8 @@ int ossl_crypto_get_ex_new_index_ex(OSSL_LIB_CTX *ctx, int class_index, * "app_data" routines use ex_data index zero. See RT 3710. */ if (ip->meth == NULL || !sk_EX_CALLBACK_push(ip->meth, NULL)) { + sk_EX_CALLBACK_free(ip->meth); + ip->meth = NULL; ERR_raise(ERR_LIB_CRYPTO, ERR_R_MALLOC_FAILURE); goto err; } diff --git a/deps/openssl/openssl/crypto/ffc/ffc_key_validate.c b/deps/openssl/openssl/crypto/ffc/ffc_key_validate.c index 342789621d6df1..a4a2a58e9a7fd9 100644 --- a/deps/openssl/openssl/crypto/ffc/ffc_key_validate.c +++ b/deps/openssl/openssl/crypto/ffc/ffc_key_validate.c @@ -26,7 +26,7 @@ int ossl_ffc_validate_public_key_partial(const FFC_PARAMS *params, *ret = 0; if (params == NULL || pub_key == NULL || params->p == NULL) { *ret = FFC_ERROR_PASSED_NULL_PARAM; - return 0; + return 1; } ctx = BN_CTX_new_ex(NULL); @@ -39,18 +39,14 @@ int ossl_ffc_validate_public_key_partial(const FFC_PARAMS *params, if (tmp == NULL || !BN_set_word(tmp, 1)) goto err; - if (BN_cmp(pub_key, tmp) <= 0) { + if (BN_cmp(pub_key, tmp) <= 0) *ret |= FFC_ERROR_PUBKEY_TOO_SMALL; - goto err; - } /* Step(1): Verify pub_key <= p-2 */ if (BN_copy(tmp, params->p) == NULL || !BN_sub_word(tmp, 1)) goto err; - if (BN_cmp(pub_key, tmp) >= 0) { + if (BN_cmp(pub_key, tmp) >= 0) *ret |= FFC_ERROR_PUBKEY_TOO_LARGE; - goto err; - } ok = 1; err: if (ctx != NULL) { @@ -73,7 +69,7 @@ int ossl_ffc_validate_public_key(const FFC_PARAMS *params, if (!ossl_ffc_validate_public_key_partial(params, pub_key, ret)) return 0; - if (params->q != NULL) { + if (*ret == 0 && params->q != NULL) { ctx = BN_CTX_new_ex(NULL); if (ctx == NULL) goto err; @@ -84,10 +80,8 @@ int ossl_ffc_validate_public_key(const FFC_PARAMS *params, if (tmp == NULL || !BN_mod_exp(tmp, pub_key, params->q, params->p, ctx)) goto err; - if (!BN_is_one(tmp)) { + if (!BN_is_one(tmp)) *ret |= FFC_ERROR_PUBKEY_INVALID; - goto err; - } } ok = 1; diff --git a/deps/openssl/openssl/crypto/http/http_client.c b/deps/openssl/openssl/crypto/http/http_client.c index ee41c03103e5fc..e3ccc6c4cc2fdd 100644 --- a/deps/openssl/openssl/crypto/http/http_client.c +++ b/deps/openssl/openssl/crypto/http/http_client.c @@ -164,7 +164,8 @@ void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx, /* * Create request line using |rctx| and |path| (or "/" in case |path| is NULL). - * Server name (and port) must be given if and only if plain HTTP proxy is used. + * Server name (and optional port) must be given if and only if + * a plain HTTP proxy is used and |path| does not begin with 'http://'. */ int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, const char *server, const char *port, @@ -193,11 +194,17 @@ int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, return 0; } - /* Make sure path includes a forward slash */ - if (path == NULL) + /* Make sure path includes a forward slash (abs_path) */ + if (path == NULL) { path = "/"; - if (path[0] != '/' && BIO_printf(rctx->mem, "/") <= 0) + } else if (HAS_PREFIX(path, "http://")) { /* absoluteURI for proxy use */ + if (server != NULL) { + ERR_raise(ERR_LIB_HTTP, ERR_R_PASSED_INVALID_ARGUMENT); + return 0; + } + } else if (path[0] != '/' && BIO_printf(rctx->mem, "/") <= 0) { return 0; + } /* * Add (the rest of) the path and the HTTP version, * which is fixed to 1.0 for straightforward implementation of keep-alive diff --git a/deps/openssl/openssl/crypto/lhash/lhash.c b/deps/openssl/openssl/crypto/lhash/lhash.c index 1cd988f01fc76a..a01cfa725e38c7 100644 --- a/deps/openssl/openssl/crypto/lhash/lhash.c +++ b/deps/openssl/openssl/crypto/lhash/lhash.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -266,12 +266,12 @@ static void contract(OPENSSL_LHASH *lh) if (n == NULL) { /* fputs("realloc error in lhash",stderr); */ lh->error++; - return; + } else { + lh->b = n; } lh->num_alloc_nodes /= 2; lh->pmax /= 2; lh->p = lh->pmax - 1; - lh->b = n; } else lh->p--; diff --git a/deps/openssl/openssl/crypto/mem.c b/deps/openssl/openssl/crypto/mem.c index f6cdcf5a423ec7..34128616e2700e 100644 --- a/deps/openssl/openssl/crypto/mem.c +++ b/deps/openssl/openssl/crypto/mem.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -100,6 +100,9 @@ void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount) * or 100;100@25;0 * This means 100 mallocs succeed, then next 100 fail 25% of the time, and * all remaining (count is zero) succeed. + * The failure percentge can have 2 digits after the comma. For example: + * 0@0.01 + * This means 0.01% of all allocations will fail. */ static void parseit(void) { @@ -112,26 +115,27 @@ static void parseit(void) /* Get the count (atol will stop at the @ if there), and percentage */ md_count = atol(md_failstring); atsign = strchr(md_failstring, '@'); - md_fail_percent = atsign == NULL ? 0 : atoi(atsign + 1); + md_fail_percent = atsign == NULL ? 0 : (int)(atof(atsign + 1) * 100 + 0.5); if (semi != NULL) md_failstring = semi; } /* - * Windows doesn't have random(), but it has rand() + * Windows doesn't have random() and srandom(), but it has rand() and srand(). * Some rand() implementations aren't good, but we're not * dealing with secure randomness here. */ # ifdef _WIN32 # define random() rand() +# define srandom(seed) srand(seed) # endif /* * See if the current malloc should fail. */ static int shouldfail(void) { - int roll = (int)(random() % 100); + int roll = (int)(random() % 10000); int shoulditfail = roll < md_fail_percent; # ifndef _WIN32 /* suppressed on Windows as POSIX-like file descriptors are non-inheritable */ @@ -165,6 +169,8 @@ void ossl_malloc_setup_failures(void) parseit(); if ((cp = getenv("OPENSSL_MALLOC_FD")) != NULL) md_tracefd = atoi(cp); + if ((cp = getenv("OPENSSL_MALLOC_SEED")) != NULL) + srandom(atoi(cp)); } #endif @@ -195,7 +201,6 @@ void *CRYPTO_zalloc(size_t num, const char *file, int line) void *ret; ret = CRYPTO_malloc(num, file, line); - FAILTEST(); if (ret != NULL) memset(ret, 0, num); @@ -208,7 +213,6 @@ void *CRYPTO_realloc(void *str, size_t num, const char *file, int line) if (realloc_impl != CRYPTO_realloc) return realloc_impl(str, num, file, line); - FAILTEST(); if (str == NULL) return CRYPTO_malloc(num, file, line); @@ -217,6 +221,7 @@ void *CRYPTO_realloc(void *str, size_t num, const char *file, int line) return NULL; } + FAILTEST(); return realloc(str, num); } diff --git a/deps/openssl/openssl/crypto/modes/asm/ghashv8-armx.pl b/deps/openssl/openssl/crypto/modes/asm/ghashv8-armx.pl index b1d35d25b5b19f..b3d94041729e6f 100644 --- a/deps/openssl/openssl/crypto/modes/asm/ghashv8-armx.pl +++ b/deps/openssl/openssl/crypto/modes/asm/ghashv8-armx.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -744,6 +744,9 @@ s/\.[uisp]?64//o and s/\.16b/\.2d/go; s/\.[42]([sd])\[([0-3])\]/\.$1\[$2\]/o; + # Switch preprocessor checks to aarch64 versions. + s/__ARME([BL])__/__AARCH64E$1__/go; + print $_,"\n"; } } else { ######## 32-bit code diff --git a/deps/openssl/openssl/crypto/objects/obj_dat.c b/deps/openssl/openssl/crypto/objects/obj_dat.c index 1a52000e6e9d64..85d30eb58ae013 100644 --- a/deps/openssl/openssl/crypto/objects/obj_dat.c +++ b/deps/openssl/openssl/crypto/objects/obj_dat.c @@ -642,13 +642,14 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, if (p == NULL) { const char *base_ = base; int l, h, i = 0, c = 0; + char *p1; for (i = 0; i < num; ++i) { - p = &(base_[i * size]); - c = (*cmp) (key, p); + p1 = &(base_[i * size]); + c = (*cmp) (key, p1); if (c == 0 || (c < 0 && (flags & OBJ_BSEARCH_VALUE_ON_NOMATCH))) - return p; + return p1; } } #endif diff --git a/deps/openssl/openssl/crypto/param_build_set.c b/deps/openssl/openssl/crypto/param_build_set.c index 8b570ded96ebb4..5de06cc7ed685c 100644 --- a/deps/openssl/openssl/crypto/param_build_set.c +++ b/deps/openssl/openssl/crypto/param_build_set.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -99,21 +99,22 @@ int ossl_param_build_set_multi_key_bn(OSSL_PARAM_BLD *bld, OSSL_PARAM *params, { int i, sz = sk_BIGNUM_const_num(stk); OSSL_PARAM *p; - + const BIGNUM *bn; if (bld != NULL) { for (i = 0; i < sz && names[i] != NULL; ++i) { - if (!OSSL_PARAM_BLD_push_BN(bld, names[i], - sk_BIGNUM_const_value(stk, i))) + bn = sk_BIGNUM_const_value(stk, i); + if (bn != NULL && !OSSL_PARAM_BLD_push_BN(bld, names[i], bn)) return 0; } return 1; } for (i = 0; i < sz && names[i] != NULL; ++i) { + bn = sk_BIGNUM_const_value(stk, i); p = OSSL_PARAM_locate(params, names[i]); - if (p != NULL) { - if (!OSSL_PARAM_set_BN(p, sk_BIGNUM_const_value(stk, i))) + if (p != NULL && bn != NULL) { + if (!OSSL_PARAM_set_BN(p, bn)) return 0; } } diff --git a/deps/openssl/openssl/crypto/pem/pem_pkey.c b/deps/openssl/openssl/crypto/pem/pem_pkey.c index 3e76852c67a44a..4deee46ce5506f 100644 --- a/deps/openssl/openssl/crypto/pem/pem_pkey.c +++ b/deps/openssl/openssl/crypto/pem/pem_pkey.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -366,10 +366,19 @@ int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x, return ret; } +static int no_password_cb(char *buf, int num, int rwflag, void *userdata) +{ + return -1; +} + EVP_PKEY *PEM_read_bio_Parameters_ex(BIO *bp, EVP_PKEY **x, OSSL_LIB_CTX *libctx, const char *propq) { - return pem_read_bio_key(bp, x, NULL, NULL, libctx, propq, + /* + * PEM_read_bio_Parameters(_ex) should never ask for a password. Any attempt + * to get a password just fails. + */ + return pem_read_bio_key(bp, x, no_password_cb, NULL, libctx, propq, EVP_PKEY_KEY_PARAMETERS); } diff --git a/deps/openssl/openssl/crypto/perlasm/arm-xlate.pl b/deps/openssl/openssl/crypto/perlasm/arm-xlate.pl index a90885905c0fdb..38d570c79017c2 100755 --- a/deps/openssl/openssl/crypto/perlasm/arm-xlate.pl +++ b/deps/openssl/openssl/crypto/perlasm/arm-xlate.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -159,9 +159,8 @@ sub expand_line { } { - $line =~ s|(^[\.\w]+)\:\s*||; - my $label = $1; - if ($label) { + if ($line =~ s|(^[\.\w]+)\:\s*||) { + my $label = $1; printf "%s:",($GLOBALS{$label} or $label); } } diff --git a/deps/openssl/openssl/crypto/perlasm/x86asm.pl b/deps/openssl/openssl/crypto/perlasm/x86asm.pl index 98a7159a5f131c..8dcde9eacaa3d1 100644 --- a/deps/openssl/openssl/crypto/perlasm/x86asm.pl +++ b/deps/openssl/openssl/crypto/perlasm/x86asm.pl @@ -174,9 +174,9 @@ sub ::vprotd sub ::endbranch { - &::generic("%ifdef __CET__\n"); + &::generic("#ifdef __CET__\n"); &::data_byte(0xf3,0x0f,0x1e,0xfb); - &::generic("%endif\n"); + &::generic("#endif\n"); } # label management diff --git a/deps/openssl/openssl/crypto/pkcs12/p12_crt.c b/deps/openssl/openssl/crypto/pkcs12/p12_crt.c index 00c71297463d9e..26a444f868b028 100644 --- a/deps/openssl/openssl/crypto/pkcs12/p12_crt.c +++ b/deps/openssl/openssl/crypto/pkcs12/p12_crt.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,6 +14,12 @@ static int pkcs12_add_bag(STACK_OF(PKCS12_SAFEBAG) **pbags, PKCS12_SAFEBAG *bag); +static PKCS12_SAFEBAG *pkcs12_add_cert_bag(STACK_OF(PKCS12_SAFEBAG) **pbags, + X509 *cert, + const char *name, + int namelen, + unsigned char *keyid, + int keyidlen); static int copy_bag_attr(PKCS12_SAFEBAG *bag, EVP_PKEY *pkey, int nid) { @@ -40,6 +46,9 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, int i; unsigned char keyid[EVP_MAX_MD_SIZE]; unsigned int keyidlen = 0; + int namelen = -1; + unsigned char *pkeyid = NULL; + int pkeyidlen = -1; /* Set defaults */ if (nid_cert == NID_undef) @@ -64,11 +73,16 @@ PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, } if (cert) { - bag = PKCS12_add_cert(&bags, cert); - if (name && !PKCS12_add_friendlyname(bag, name, -1)) - goto err; - if (keyidlen && !PKCS12_add_localkeyid(bag, keyid, keyidlen)) - goto err; + if (name == NULL) + name = (char *)X509_alias_get0(cert, &namelen); + if (keyidlen > 0) { + pkeyid = keyid; + pkeyidlen = keyidlen; + } else { + pkeyid = X509_keyid_get0(cert, &pkeyidlen); + } + + bag = pkcs12_add_cert_bag(&bags, cert, name, namelen, pkeyid, pkeyidlen); } /* Add all other certificates */ @@ -139,30 +153,23 @@ PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, X509 * iter, mac_iter, keytype, NULL, NULL); } -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert) +static PKCS12_SAFEBAG *pkcs12_add_cert_bag(STACK_OF(PKCS12_SAFEBAG) **pbags, + X509 *cert, + const char *name, + int namelen, + unsigned char *keyid, + int keyidlen) { PKCS12_SAFEBAG *bag = NULL; - char *name; - int namelen = -1; - unsigned char *keyid; - int keyidlen = -1; /* Add user certificate */ if ((bag = PKCS12_SAFEBAG_create_cert(cert)) == NULL) goto err; - /* - * Use friendlyName and localKeyID in certificate. (if present) - */ - - name = (char *)X509_alias_get0(cert, &namelen); - - if (name && !PKCS12_add_friendlyname(bag, name, namelen)) + if (name != NULL && !PKCS12_add_friendlyname(bag, name, namelen)) goto err; - keyid = X509_keyid_get0(cert, &keyidlen); - - if (keyid && !PKCS12_add_localkeyid(bag, keyid, keyidlen)) + if (keyid != NULL && !PKCS12_add_localkeyid(bag, keyid, keyidlen)) goto err; if (!pkcs12_add_bag(pbags, bag)) @@ -173,7 +180,22 @@ PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert) err: PKCS12_SAFEBAG_free(bag); return NULL; +} + +PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert) +{ + char *name = NULL; + int namelen = -1; + unsigned char *keyid = NULL; + int keyidlen = -1; + + /* + * Use friendlyName and localKeyID in certificate. (if present) + */ + name = (char *)X509_alias_get0(cert, &namelen); + keyid = X509_keyid_get0(cert, &keyidlen); + return pkcs12_add_cert_bag(pbags, cert, name, namelen, keyid, keyidlen); } PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags, diff --git a/deps/openssl/openssl/crypto/poly1305/asm/poly1305-armv8.pl b/deps/openssl/openssl/crypto/poly1305/asm/poly1305-armv8.pl index 113a2151b6fa14..dc39f4053fe6a9 100755 --- a/deps/openssl/openssl/crypto/poly1305/asm/poly1305-armv8.pl +++ b/deps/openssl/openssl/crypto/poly1305/asm/poly1305-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -85,7 +85,7 @@ ldp $r0,$r1,[$inp] // load key mov $s1,#0xfffffffc0fffffff movk $s1,#0x0fff,lsl#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $r0,$r0 // flip bytes rev $r1,$r1 #endif @@ -132,7 +132,7 @@ .Loop: ldp $t0,$t1,[$inp],#16 // load input sub $len,$len,#16 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $t0,$t0 rev $t1,$t1 #endif @@ -197,13 +197,13 @@ csel $h0,$h0,$d0,eq csel $h1,$h1,$d1,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror $t0,$t0,#32 // flip nonce words ror $t1,$t1,#32 #endif adds $h0,$h0,$t0 // accumulate nonce adc $h1,$h1,$t1 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $h0,$h0 // flip output bytes rev $h1,$h1 #endif @@ -335,7 +335,7 @@ adcs $h1,$h1,xzr adc $h2,$h2,xzr -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $d0,$d0 rev $d1,$d1 #endif @@ -381,7 +381,7 @@ ldp $d0,$d1,[$inp],#16 // load input sub $len,$len,#16 add $s1,$r1,$r1,lsr#2 // s1 = r1 + (r1 >> 2) -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $d0,$d0 rev $d1,$d1 #endif @@ -466,7 +466,7 @@ lsl $padbit,$padbit,#24 add x15,$ctx,#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -502,7 +502,7 @@ ld1 {$S2,$R3,$S3,$R4},[x15],#64 ld1 {$S4},[x15] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -563,7 +563,7 @@ umull $ACC1,$IN23_0,${R1}[2] ldp x9,x13,[$in2],#48 umull $ACC0,$IN23_0,${R0}[2] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -628,7 +628,7 @@ umlal $ACC4,$IN01_2,${R2}[0] umlal $ACC1,$IN01_2,${S4}[0] umlal $ACC2,$IN01_2,${R0}[0] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -909,13 +909,13 @@ csel $h0,$h0,$d0,eq csel $h1,$h1,$d1,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror $t0,$t0,#32 // flip nonce words ror $t1,$t1,#32 #endif adds $h0,$h0,$t0 // accumulate nonce adc $h1,$h1,$t1 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev $h0,$h0 // flip output bytes rev $h1,$h1 #endif diff --git a/deps/openssl/openssl/crypto/poly1305/asm/poly1305-x86_64.pl b/deps/openssl/openssl/crypto/poly1305/asm/poly1305-x86_64.pl index fa9bfb7a7b814c..4cddca1c514c04 100755 --- a/deps/openssl/openssl/crypto/poly1305/asm/poly1305-x86_64.pl +++ b/deps/openssl/openssl/crypto/poly1305/asm/poly1305-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -195,7 +195,7 @@ sub poly1305_iteration { bt \$`5+32`,%r9 # AVX2? cmovc %rax,%r10 ___ -$code.=<<___ if ($avx>3); +$code.=<<___ if ($avx>3 && !$win64); mov \$`(1<<31|1<<21|1<<16)`,%rax shr \$32,%r9 and %rax,%r9 @@ -2724,7 +2724,7 @@ sub poly1305_iteration { .cfi_endproc .size poly1305_blocks_avx512,.-poly1305_blocks_avx512 ___ -if ($avx>3) { +if ($avx>3 && !$win64) { ######################################################################## # VPMADD52 version using 2^44 radix. # diff --git a/deps/openssl/openssl/crypto/property/property.c b/deps/openssl/openssl/crypto/property/property.c index b97861d4862fa8..602db0f3ff54e9 100644 --- a/deps/openssl/openssl/crypto/property/property.c +++ b/deps/openssl/openssl/crypto/property/property.c @@ -129,11 +129,11 @@ static const OSSL_LIB_CTX_METHOD ossl_ctx_global_properties_method = { }; OSSL_PROPERTY_LIST **ossl_ctx_global_properties(OSSL_LIB_CTX *libctx, - int loadconfig) + ossl_unused int loadconfig) { OSSL_GLOBAL_PROPERTIES *globp; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) if (loadconfig && !OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) return NULL; #endif @@ -513,7 +513,7 @@ int ossl_method_store_fetch(OSSL_METHOD_STORE *store, if (nid <= 0 || method == NULL || store == NULL) return 0; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) if (ossl_lib_ctx_is_default(store->ctx) && !OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL)) return 0; diff --git a/deps/openssl/openssl/crypto/property/property_parse.c b/deps/openssl/openssl/crypto/property/property_parse.c index ca2bd33381bfdd..e3a4998df11fcb 100644 --- a/deps/openssl/openssl/crypto/property/property_parse.c +++ b/deps/openssl/openssl/crypto/property/property_parse.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -588,15 +588,38 @@ static void put_char(char ch, char **buf, size_t *remain, size_t *needed) static void put_str(const char *str, char **buf, size_t *remain, size_t *needed) { - size_t olen, len; + size_t olen, len, i; + char quote = '\0'; + int quotes; len = olen = strlen(str); *needed += len; - if (*remain == 0) + /* + * Check to see if we need quotes or not. + * Characters that are legal in a PropertyName don't need quoting. + * We simply assume all others require quotes. + */ + for (i = 0; i < len; i++) + if (!ossl_isalnum(str[i]) && str[i] != '.' && str[i] != '_') { + /* Default to single quotes ... */ + if (quote == '\0') + quote = '\''; + /* ... but use double quotes if a single is present */ + if (str[i] == '\'') + quote = '"'; + } + + quotes = quote != '\0'; + if (*remain == 0) { + *needed += 2 * quotes; return; + } - if (*remain < len + 1) + if (quotes) + put_char(quote, buf, remain, needed); + + if (*remain < len + 1 + quotes) len = *remain - 1; if (len > 0) { @@ -605,6 +628,9 @@ static void put_str(const char *str, char **buf, size_t *remain, size_t *needed) *remain -= len; } + if (quotes) + put_char(quote, buf, remain, needed); + if (len < olen && *remain == 1) { **buf = '\0'; ++*buf; diff --git a/deps/openssl/openssl/crypto/provider_core.c b/deps/openssl/openssl/crypto/provider_core.c index 7a12328121623e..92cce32c5bbf88 100644 --- a/deps/openssl/openssl/crypto/provider_core.c +++ b/deps/openssl/openssl/crypto/provider_core.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -408,7 +408,7 @@ int ossl_provider_info_add_to_store(OSSL_LIB_CTX *libctx, } OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char *name, - int noconfig) + ossl_unused int noconfig) { struct provider_store_st *store = NULL; OSSL_PROVIDER *prov = NULL; @@ -417,7 +417,7 @@ OSSL_PROVIDER *ossl_provider_find(OSSL_LIB_CTX *libctx, const char *name, OSSL_PROVIDER tmpl = { 0, }; int i; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) /* * Make sure any providers are loaded from config before we try to find * them. @@ -1356,7 +1356,7 @@ int ossl_provider_doall_activated(OSSL_LIB_CTX *ctx, struct provider_store_st *store = get_provider_store(ctx); STACK_OF(OSSL_PROVIDER) *provs = NULL; -#ifndef FIPS_MODULE +#if !defined(FIPS_MODULE) && !defined(OPENSSL_NO_AUTOLOAD_CONFIG) /* * Make sure any providers are loaded from config before we try to use * them. diff --git a/deps/openssl/openssl/crypto/rsa/rsa_ameth.c b/deps/openssl/openssl/crypto/rsa/rsa_ameth.c index e819780e7d9439..07734077e3228a 100644 --- a/deps/openssl/openssl/crypto/rsa/rsa_ameth.c +++ b/deps/openssl/openssl/crypto/rsa/rsa_ameth.c @@ -60,13 +60,16 @@ static int rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) if (!rsa_param_encode(pkey, &str, &strtype)) return 0; penclen = i2d_RSAPublicKey(pkey->pkey.rsa, &penc); - if (penclen <= 0) + if (penclen <= 0) { + ASN1_STRING_free(str); return 0; + } if (X509_PUBKEY_set0_param(pk, OBJ_nid2obj(pkey->ameth->pkey_id), strtype, str, penc, penclen)) return 1; OPENSSL_free(penc); + ASN1_STRING_free(str); return 0; } diff --git a/deps/openssl/openssl/crypto/rsa/rsa_backend.c b/deps/openssl/openssl/crypto/rsa/rsa_backend.c index 58187fa2ef59df..f9d1cb361d7704 100644 --- a/deps/openssl/openssl/crypto/rsa/rsa_backend.c +++ b/deps/openssl/openssl/crypto/rsa/rsa_backend.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -141,18 +141,6 @@ int ossl_rsa_todata(RSA *rsa, OSSL_PARAM_BLD *bld, OSSL_PARAM params[], /* Check private key data integrity */ if (include_private && rsa_d != NULL) { - int numprimes = sk_BIGNUM_const_num(factors); - int numexps = sk_BIGNUM_const_num(exps); - int numcoeffs = sk_BIGNUM_const_num(coeffs); - - /* - * It's permissible to have zero primes, i.e. no CRT params. - * Otherwise, there must be at least two, as many exponents, - * and one coefficient less. - */ - if (numprimes != 0 - && (numprimes < 2 || numexps < 2 || numcoeffs < 1)) - goto err; if (!ossl_param_build_set_bn(bld, params, OSSL_PKEY_PARAM_RSA_D, rsa_d) diff --git a/deps/openssl/openssl/crypto/rsa/rsa_lib.c b/deps/openssl/openssl/crypto/rsa/rsa_lib.c index 449097b8b27afc..71a17a92349d3b 100644 --- a/deps/openssl/openssl/crypto/rsa/rsa_lib.c +++ b/deps/openssl/openssl/crypto/rsa/rsa_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -753,18 +753,22 @@ int ossl_rsa_set0_all_params(RSA *r, const STACK_OF(BIGNUM) *primes, return 0; pnum = sk_BIGNUM_num(primes); - if (pnum < 2 - || pnum != sk_BIGNUM_num(exps) - || pnum != sk_BIGNUM_num(coeffs) + 1) + if (pnum < 2) return 0; if (!RSA_set0_factors(r, sk_BIGNUM_value(primes, 0), - sk_BIGNUM_value(primes, 1)) - || !RSA_set0_crt_params(r, sk_BIGNUM_value(exps, 0), - sk_BIGNUM_value(exps, 1), - sk_BIGNUM_value(coeffs, 0))) + sk_BIGNUM_value(primes, 1))) return 0; + if (pnum == sk_BIGNUM_num(exps) + && pnum == sk_BIGNUM_num(coeffs) + 1) { + + if (!RSA_set0_crt_params(r, sk_BIGNUM_value(exps, 0), + sk_BIGNUM_value(exps, 1), + sk_BIGNUM_value(coeffs, 0))) + return 0; + } + #ifndef FIPS_MODULE old_infos = r->prime_infos; #endif @@ -1084,6 +1088,12 @@ int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx, const EVP_MD **md) int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen) { OSSL_PARAM rsa_params[2], *p = rsa_params; + const char *empty = ""; + /* + * Needed as we swap label with empty if it is NULL, and label is + * freed at the end of this function. + */ + void *plabel = label; int ret; if (ctx == NULL || !EVP_PKEY_CTX_IS_ASYM_CIPHER_OP(ctx)) { @@ -1096,9 +1106,13 @@ int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx, void *label, int llen) if (!EVP_PKEY_CTX_is_a(ctx, "RSA")) return -1; + /* Accept NULL for backward compatibility */ + if (label == NULL && llen == 0) + plabel = (void *)empty; + /* Cast away the const. This is read only so should be safe */ *p++ = OSSL_PARAM_construct_octet_string(OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL, - (void *)label, (size_t)llen); + (void *)plabel, (size_t)llen); *p++ = OSSL_PARAM_construct_end(); ret = evp_pkey_ctx_set_params_strict(ctx, rsa_params); diff --git a/deps/openssl/openssl/crypto/srp/srp_vfy.c b/deps/openssl/openssl/crypto/srp/srp_vfy.c index e8beb60d278a08..96d511ffe6368e 100644 --- a/deps/openssl/openssl/crypto/srp/srp_vfy.c +++ b/deps/openssl/openssl/crypto/srp/srp_vfy.c @@ -1,5 +1,5 @@ /* - * Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2004, EdelKey Project. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use @@ -283,6 +283,7 @@ SRP_VBASE *SRP_VBASE_new(char *seed_key) return NULL; if ((vb->users_pwd = sk_SRP_user_pwd_new_null()) == NULL || (vb->gN_cache = sk_SRP_gN_cache_new_null()) == NULL) { + sk_SRP_user_pwd_free(vb->users_pwd); OPENSSL_free(vb); return NULL; } diff --git a/deps/openssl/openssl/crypto/store/store_lib.c b/deps/openssl/openssl/crypto/store/store_lib.c index 5ff927862916e5..bc12d8dd13a28e 100644 --- a/deps/openssl/openssl/crypto/store/store_lib.c +++ b/deps/openssl/openssl/crypto/store/store_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -424,14 +424,14 @@ OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx) load_data.v = NULL; load_data.ctx = ctx; + ctx->error_flag = 0; if (!ctx->fetched_loader->p_load(ctx->loader_ctx, ossl_store_handle_load_result, &load_data, ossl_pw_passphrase_callback_dec, &ctx->pwdata)) { - if (!OSSL_STORE_eof(ctx)) - ctx->error_flag = 1; + ctx->error_flag = 1; return NULL; } v = load_data.v; diff --git a/deps/openssl/openssl/crypto/threads_pthread.c b/deps/openssl/openssl/crypto/threads_pthread.c index bfc05a4e878c25..801855c9306e20 100644 --- a/deps/openssl/openssl/crypto/threads_pthread.c +++ b/deps/openssl/openssl/crypto/threads_pthread.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -72,8 +72,6 @@ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void) # if !defined (__TANDEM) && !defined (_SPT_MODEL_) # if !defined(NDEBUG) && !defined(OPENSSL_NO_MUTEX_ERRORCHECK) pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); -# else - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL); # endif # else /* The SPT Thread Library does not define MUTEX attributes. */ diff --git a/deps/openssl/openssl/crypto/x509/v3_ist.c b/deps/openssl/openssl/crypto/x509/v3_ist.c index e6fef0153c8eb2..4a3cfa12a471b6 100644 --- a/deps/openssl/openssl/crypto/x509/v3_ist.c +++ b/deps/openssl/openssl/crypto/x509/v3_ist.c @@ -51,25 +51,25 @@ static ISSUER_SIGN_TOOL *v2i_issuer_sign_tool(X509V3_EXT_METHOD *method, X509V3_ if (strcmp(cnf->name, "signTool") == 0) { ist->signTool = ASN1_UTF8STRING_new(); if (ist->signTool == NULL || !ASN1_STRING_set(ist->signTool, cnf->value, strlen(cnf->value))) { - ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB); + ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE); goto err; } } else if (strcmp(cnf->name, "cATool") == 0) { ist->cATool = ASN1_UTF8STRING_new(); if (ist->cATool == NULL || !ASN1_STRING_set(ist->cATool, cnf->value, strlen(cnf->value))) { - ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB); + ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE); goto err; } } else if (strcmp(cnf->name, "signToolCert") == 0) { ist->signToolCert = ASN1_UTF8STRING_new(); if (ist->signToolCert == NULL || !ASN1_STRING_set(ist->signToolCert, cnf->value, strlen(cnf->value))) { - ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB); + ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE); goto err; } } else if (strcmp(cnf->name, "cAToolCert") == 0) { ist->cAToolCert = ASN1_UTF8STRING_new(); if (ist->cAToolCert == NULL || !ASN1_STRING_set(ist->cAToolCert, cnf->value, strlen(cnf->value))) { - ERR_raise(ERR_LIB_X509V3, ERR_R_ASN1_LIB); + ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE); goto err; } } else { diff --git a/deps/openssl/openssl/crypto/x509/x509_cmp.c b/deps/openssl/openssl/crypto/x509/x509_cmp.c index 1027bed82e69da..989fb8faa9f465 100644 --- a/deps/openssl/openssl/crypto/x509/x509_cmp.c +++ b/deps/openssl/openssl/crypto/x509/x509_cmp.c @@ -292,12 +292,13 @@ unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, unsigned long ret = 0; unsigned char md[SHA_DIGEST_LENGTH]; EVP_MD *sha1 = EVP_MD_fetch(libctx, "SHA1", propq); + int i2d_ret; /* Make sure X509_NAME structure contains valid cached encoding */ - i2d_X509_NAME(x, NULL); + i2d_ret = i2d_X509_NAME(x, NULL); if (ok != NULL) *ok = 0; - if (sha1 != NULL + if (i2d_ret >= 0 && sha1 != NULL && EVP_Digest(x->canon_enc, x->canon_enclen, md, NULL, sha1, NULL)) { ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) | ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L) @@ -325,7 +326,9 @@ unsigned long X509_NAME_hash_old(const X509_NAME *x) goto end; /* Make sure X509_NAME structure contains valid cached encoding */ - i2d_X509_NAME(x, NULL); + if (i2d_X509_NAME(x, NULL) < 0) + goto end; + if (EVP_DigestInit_ex(md_ctx, md5, NULL) && EVP_DigestUpdate(md_ctx, x->bytes->data, x->bytes->length) && EVP_DigestFinal_ex(md_ctx, md, NULL)) diff --git a/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in b/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in index 4250deb426fc15..9240916fce40fe 100644 --- a/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-cmp.pod.in @@ -659,11 +659,12 @@ is typically used when authenticating with pre-shared key (password-based MAC). =item B<-secret> I -Prefer PBM-based message protection with given source of a secret value. -The secret is used for creating PBM-based protection of outgoing messages -and (as far as needed) for validating PBM-based protection of incoming messages. -PBM stands for Password-Based Message Authentication Code. +Provides the source of a secret value to use with MAC-based message protection. This takes precedence over the B<-cert> and B<-key> options. +The secret is used for creating MAC-based protection of outgoing messages +and for validating incoming messages that have MAC-based protection. +The algorithm used by default is Password-Based Message Authentication Code (PBM) +as defined in RFC 4210 section 5.1.3.1. For more information about the format of I see L. @@ -682,7 +683,8 @@ while the subject of B<-oldcert> or B<-subjectName> may provide fallback values. The issuer of this certificate is used as one of the recipient fallback values and as fallback issuer entry in the certificate template of IR/CR/KUR messages. -When using signature-based message protection, this "protection certificate" +When performing signature-based message protection, +this "protection certificate", also called "signer certificate", will be included first in the extraCerts field of outgoing messages and the signature is done with the corresponding key. In Initialization Request (IR) messages this can be used for authenticating @@ -713,8 +715,8 @@ have no effect on the certificate verification enabled via this option. The corresponding private key file for the client's current certificate given in the B<-cert> option. -This will be used for signature-based message protection unless -the B<-secret> option indicating PBM or B<-unprotected_requests> is given. +This will be used for signature-based message protection unless the B<-secret> +option indicating MAC-based protection or B<-unprotected_requests> is given. It is also used as a fallback for the B<-newkey> option with IR/CR/KUR messages. @@ -730,7 +732,7 @@ L. =item B<-digest> I Specifies name of supported digest to use in RFC 4210's MSG_SIG_ALG -and as the one-way function (OWF) in MSG_MAC_ALG. +and as the one-way function (OWF) in C. If applicable, this is used for message protection and proof-of-possession (POPO) signatures. To see the list of supported digests, use C. @@ -738,7 +740,7 @@ Defaults to C. =item B<-mac> I -Specifies the name of the MAC algorithm in MSG_MAC_ALG. +Specifies the name of the MAC algorithm in C. To get the names of supported MAC algorithms use C and possibly combine such a name with the name of a supported digest algorithm, e.g., hmacWithSHA256. @@ -1097,6 +1099,13 @@ only affect the certificate verification enabled via the B<-out_trusted> option. =head1 NOTES +When a client obtains from a CMP server CA certificates that it is going to +trust, for instance via the C field of a certificate response, +authentication of the CMP server is particularly critical. +So special care must be taken setting up server authentication +using B<-trusted> and related options for certificate-based authentication +or B<-secret> for MAC-based protection. + When setting up CMP configurations and experimenting with enrollment options typically various errors occur until the configuration is correct and complete. When the CMP server reports an error the client will by default @@ -1166,7 +1175,7 @@ In order to update the enrolled certificate one may call openssl cmp -section insta,kur -using with PBM-based protection or +using MAC-based protection with PBM or openssl cmp -section insta,kur,signature @@ -1225,7 +1234,7 @@ Then it can start using the new cert and key. -newkey cl_key_new.pem -certout cl_cert.pem cp cl_key_new.pem cl_key.pem -This command sequence can be repated as often as needed. +This command sequence can be repeated as often as needed. =head2 Requesting information from CMP server diff --git a/deps/openssl/openssl/doc/man1/openssl-cms.pod.in b/deps/openssl/openssl/doc/man1/openssl-cms.pod.in index c63a7f330ba636..65a61ee97f1d6a 100644 --- a/deps/openssl/openssl/doc/man1/openssl-cms.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-cms.pod.in @@ -391,7 +391,7 @@ option. =item I ... This is an alternative to using the B<-recip> option when encrypting a message. -One or more certificate filennames may be given. +One or more certificate filenames may be given. =item B<-I> @@ -902,7 +902,7 @@ The B<-engine> option was deprecated in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man1/openssl-ts.pod.in b/deps/openssl/openssl/doc/man1/openssl-ts.pod.in index 6f718202024757..3e7f7c4be94b2d 100644 --- a/deps/openssl/openssl/doc/man1/openssl-ts.pod.in +++ b/deps/openssl/openssl/doc/man1/openssl-ts.pod.in @@ -490,7 +490,7 @@ Default is no. (Optional) =item B This option specifies the hash function to be used to calculate the TSA's -public key certificate identifier. Default is sha256. (Optional) +public key certificate identifier. Default is sha1. (Optional) =back @@ -652,7 +652,7 @@ L =head1 COPYRIGHT -Copyright 2006-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2006-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/BIO_s_mem.pod b/deps/openssl/openssl/doc/man3/BIO_s_mem.pod index 6b3cc6a2dae943..3bbc3e7fcf02c9 100644 --- a/deps/openssl/openssl/doc/man3/BIO_s_mem.pod +++ b/deps/openssl/openssl/doc/man3/BIO_s_mem.pod @@ -59,6 +59,8 @@ positive return value B should be set to a negative value, typically -1. BIO_get_mem_data() sets *B to a pointer to the start of the memory BIOs data and returns the total amount of data available. It is implemented as a macro. +Note the pointer returned by this call is informative, no transfer of ownership +of this memory is implied. See notes on BIO_set_close(). BIO_set_mem_buf() sets the internal BUF_MEM structure to B and sets the close flag to B, that is B should be either BIO_CLOSE or BIO_NOCLOSE. @@ -114,6 +116,10 @@ preceding that write operation cannot be undone. Calling BIO_get_mem_ptr() prior to a BIO_reset() call with BIO_FLAGS_NONCLEAR_RST set has the same effect as a write operation. +Calling BIO_set_close() with BIO_NOCLOSE orphans the BUF_MEM internal to the +BIO, _not_ its actual data buffer. See the examples section for the proper +method for claiming ownership of the data pointer for a deferred free operation. + =head1 BUGS There should be an option to set the maximum size of a memory BIO. @@ -151,10 +157,24 @@ Extract the BUF_MEM structure from a memory BIO and then free up the BIO: BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */ BIO_free(mem); +Extract the BUF_MEM ptr, claim ownership of the internal data and free the BIO +and BUF_MEM structure: + + BUF_MEM *bptr; + char *data; + + BIO_get_mem_data(bio, &data); + BIO_get_mem_ptr(bio, &bptr); + BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free orphans BUF_MEM */ + BIO_free(bio); + bptr->data = NULL; /* Tell BUF_MEM to orphan data */ + BUF_MEM_free(bptr); + ... + free(data); =head1 COPYRIGHT -Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/CMS_add1_signer.pod b/deps/openssl/openssl/doc/man3/CMS_add1_signer.pod index 800085b7b86a9b..d606a02cc1fd81 100644 --- a/deps/openssl/openssl/doc/man3/CMS_add1_signer.pod +++ b/deps/openssl/openssl/doc/man3/CMS_add1_signer.pod @@ -31,8 +31,8 @@ Unless the B flag is set the returned CMS_ContentInfo structure is not complete and must be finalized either by streaming (if applicable) or a call to CMS_final(). -The CMS_SignerInfo_sign() function will explicitly sign a CMS_SignerInfo -structure, its main use is when B and B flags +The CMS_SignerInfo_sign() function explicitly signs a CMS_SignerInfo +structure, its main use is when the B and B flags are both set. =head1 NOTES @@ -90,6 +90,8 @@ before it is finalized. CMS_add1_signer() returns an internal pointer to the CMS_SignerInfo structure just added or NULL if an error occurs. +CMS_SignerInfo_sign() returns 1 on success, 0 on failure. + =head1 SEE ALSO L, L, @@ -97,7 +99,7 @@ L, =head1 COPYRIGHT -Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2014-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/CMS_sign.pod b/deps/openssl/openssl/doc/man3/CMS_sign.pod index 0d812756aef551..03bfc6fce16a74 100644 --- a/deps/openssl/openssl/doc/man3/CMS_sign.pod +++ b/deps/openssl/openssl/doc/man3/CMS_sign.pod @@ -105,7 +105,7 @@ The function CMS_sign() is a basic CMS signing function whose output will be suitable for many purposes. For finer control of the output format the B, B and B parameters can all be B and the B flag set. Then one or more signers can be added using the -function CMS_sign_add1_signer(), non default digests can be used and custom +function CMS_add1_signer(), non default digests can be used and custom attributes added. CMS_final() must then be called to finalize the structure if streaming is not enabled. @@ -132,7 +132,7 @@ The CMS_sign_ex() method was added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2008-2020 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2008-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/DH_generate_parameters.pod b/deps/openssl/openssl/doc/man3/DH_generate_parameters.pod index 1098a161ea63f2..9c1dff7aedd9ab 100644 --- a/deps/openssl/openssl/doc/man3/DH_generate_parameters.pod +++ b/deps/openssl/openssl/doc/man3/DH_generate_parameters.pod @@ -128,6 +128,10 @@ The parameter B is invalid. =back +If 0 is returned or B<*codes> is set to a nonzero value the supplied +parameters should not be used for Diffie-Hellman operations otherwise +the security properties of the key exchange are not guaranteed. + DH_check_ex(), DH_check_params() and DH_check_pub_key_ex() are similar to DH_check() and DH_check_params() respectively, but the error reasons are added to the thread's error queue instead of provided as return values from the @@ -160,7 +164,7 @@ DH_generate_parameters_ex() instead. =head1 COPYRIGHT -Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/DSA_generate_parameters.pod b/deps/openssl/openssl/doc/man3/DSA_generate_parameters.pod index 415c4c8b82ce74..a10dc9ba275940 100644 --- a/deps/openssl/openssl/doc/man3/DSA_generate_parameters.pod +++ b/deps/openssl/openssl/doc/man3/DSA_generate_parameters.pod @@ -51,7 +51,7 @@ called as shown below. For information on the BN_GENCB structure and the BN_GENCB_call function discussed below, refer to L. -DSA_generate_prime() is similar to DSA_generate_prime_ex() but +DSA_generate_parameters() is similar to DSA_generate_parameters_ex() but expects an old-style callback function; see L for information on the old-style callback. @@ -126,7 +126,7 @@ DSA_generate_parameters_ex() instead. =head1 COPYRIGHT -Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/EVP_MAC.pod b/deps/openssl/openssl/doc/man3/EVP_MAC.pod index 13482ac5e188e7..56ac92a486728e 100644 --- a/deps/openssl/openssl/doc/man3/EVP_MAC.pod +++ b/deps/openssl/openssl/doc/man3/EVP_MAC.pod @@ -181,7 +181,7 @@ EVP_MAC_CTX_set_params() passes chosen parameters to the underlying context, given a context I. The set of parameters given with I determine exactly what parameters are passed down. -If I are NULL, the unterlying context should do nothing and return 1. +If I are NULL, the underlying context should do nothing and return 1. Note that a parameter that is unknown in the underlying context is simply ignored. Also, what happens when a needed parameter isn't passed down is @@ -481,7 +481,7 @@ These functions were added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2018-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/EVP_SIGNATURE.pod b/deps/openssl/openssl/doc/man3/EVP_SIGNATURE.pod index 600522085398c2..1f534ef33810eb 100644 --- a/deps/openssl/openssl/doc/man3/EVP_SIGNATURE.pod +++ b/deps/openssl/openssl/doc/man3/EVP_SIGNATURE.pod @@ -61,7 +61,7 @@ EVP_SIGNATURE_get0_provider() returns the provider that I was fetched from. EVP_SIGNATURE_do_all_provided() traverses all SIGNATURE implemented by all -activated roviders in the given library context I, and for each of the +activated providers in the given library context I, and for each of the implementations, calls the given function I with the implementation method and the given I as argument. @@ -106,7 +106,7 @@ The functions described here were added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/EVP_aes_128_gcm.pod b/deps/openssl/openssl/doc/man3/EVP_aes_128_gcm.pod index 09cae991295049..485705ea788907 100644 --- a/deps/openssl/openssl/doc/man3/EVP_aes_128_gcm.pod +++ b/deps/openssl/openssl/doc/man3/EVP_aes_128_gcm.pod @@ -134,13 +134,7 @@ section for details. EVP_aes_192_wrap(), EVP_aes_256_wrap(), EVP_aes_128_wrap_pad(), -EVP_aes_128_wrap(), -EVP_aes_192_wrap(), -EVP_aes_256_wrap(), EVP_aes_192_wrap_pad(), -EVP_aes_128_wrap(), -EVP_aes_192_wrap(), -EVP_aes_256_wrap(), EVP_aes_256_wrap_pad() AES key wrap with 128, 192 and 256 bit keys, as according to RFC 3394 section @@ -173,7 +167,7 @@ the XTS "tweak" value. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_aria_128_gcm.pod b/deps/openssl/openssl/doc/man3/EVP_aria_128_gcm.pod index 92913652630d52..91aa75ec387172 100644 --- a/deps/openssl/openssl/doc/man3/EVP_aria_128_gcm.pod +++ b/deps/openssl/openssl/doc/man3/EVP_aria_128_gcm.pod @@ -96,7 +96,7 @@ correctly, see the L section for details. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_bf_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_bf_cbc.pod index 4df98f4bdf47ec..11a909207ac954 100644 --- a/deps/openssl/openssl/doc/man3/EVP_bf_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_bf_cbc.pod @@ -41,7 +41,7 @@ Blowfish encryption algorithm in CBC, CFB, ECB and OFB modes respectively. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_blake2b512.pod b/deps/openssl/openssl/doc/man3/EVP_blake2b512.pod index 98e1899f6a935d..55bd9f3bce77db 100644 --- a/deps/openssl/openssl/doc/man3/EVP_blake2b512.pod +++ b/deps/openssl/openssl/doc/man3/EVP_blake2b512.pod @@ -35,7 +35,7 @@ The BLAKE2b algorithm that produces a 512-bit output from a given input. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. While the BLAKE2b and BLAKE2s algorithms supports a variable length digest, diff --git a/deps/openssl/openssl/doc/man3/EVP_camellia_128_ecb.pod b/deps/openssl/openssl/doc/man3/EVP_camellia_128_ecb.pod index a6b597156a77a9..cb6e12e2122b76 100644 --- a/deps/openssl/openssl/doc/man3/EVP_camellia_128_ecb.pod +++ b/deps/openssl/openssl/doc/man3/EVP_camellia_128_ecb.pod @@ -79,7 +79,7 @@ Camellia for 128, 192 and 256 bit keys in the following modes: CBC, CFB with Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_cast5_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_cast5_cbc.pod index 85ff2ad014888f..7fef0598151d85 100644 --- a/deps/openssl/openssl/doc/man3/EVP_cast5_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_cast5_cbc.pod @@ -41,7 +41,7 @@ CAST encryption algorithm in CBC, ECB, CFB and OFB modes respectively. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_chacha20.pod b/deps/openssl/openssl/doc/man3/EVP_chacha20.pod index 683faa326e1453..7e80c8de40c9ec 100644 --- a/deps/openssl/openssl/doc/man3/EVP_chacha20.pod +++ b/deps/openssl/openssl/doc/man3/EVP_chacha20.pod @@ -44,7 +44,7 @@ L section for more information. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. L diff --git a/deps/openssl/openssl/doc/man3/EVP_des_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_des_cbc.pod index 501216cd6d77b3..442be8993a29f7 100644 --- a/deps/openssl/openssl/doc/man3/EVP_des_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_des_cbc.pod @@ -89,7 +89,7 @@ Triple-DES key wrap according to RFC 3217 Section 3. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_desx_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_desx_cbc.pod index fae827192ee995..c22c0de47900c8 100644 --- a/deps/openssl/openssl/doc/man3/EVP_desx_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_desx_cbc.pod @@ -31,7 +31,7 @@ implementation. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_idea_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_idea_cbc.pod index 5a9adaedc4462c..a36aae0bc999e3 100644 --- a/deps/openssl/openssl/doc/man3/EVP_idea_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_idea_cbc.pod @@ -39,7 +39,7 @@ The IDEA encryption algorithm in CBC, CFB, ECB and OFB modes respectively. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_md2.pod b/deps/openssl/openssl/doc/man3/EVP_md2.pod index 0b473887e01b97..a6f3a010deb5aa 100644 --- a/deps/openssl/openssl/doc/man3/EVP_md2.pod +++ b/deps/openssl/openssl/doc/man3/EVP_md2.pod @@ -28,7 +28,7 @@ The MD2 algorithm which produces a 128-bit output from a given input. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_md4.pod b/deps/openssl/openssl/doc/man3/EVP_md4.pod index baaff9e4eaa2ac..a4e1a7d0a6e910 100644 --- a/deps/openssl/openssl/doc/man3/EVP_md4.pod +++ b/deps/openssl/openssl/doc/man3/EVP_md4.pod @@ -29,7 +29,7 @@ The MD4 algorithm which produces a 128-bit output from a given input. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_md5.pod b/deps/openssl/openssl/doc/man3/EVP_md5.pod index 752fdd1f6c37b3..42370fb3d0a329 100644 --- a/deps/openssl/openssl/doc/man3/EVP_md5.pod +++ b/deps/openssl/openssl/doc/man3/EVP_md5.pod @@ -40,7 +40,7 @@ WARNING: this algorithm is not intended for non-SSL usage. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L or L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_mdc2.pod b/deps/openssl/openssl/doc/man3/EVP_mdc2.pod index e9de6f3c560a61..3681bd06a63cd9 100644 --- a/deps/openssl/openssl/doc/man3/EVP_mdc2.pod +++ b/deps/openssl/openssl/doc/man3/EVP_mdc2.pod @@ -30,7 +30,7 @@ The MDC-2DES algorithm of using MDC-2 with the DES block cipher. It produces a Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_rc2_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_rc2_cbc.pod index bf4a13ba45c19c..17f6f4b3e254da 100644 --- a/deps/openssl/openssl/doc/man3/EVP_rc2_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_rc2_cbc.pod @@ -55,7 +55,7 @@ functions to set the key length and effective key length. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_rc4.pod b/deps/openssl/openssl/doc/man3/EVP_rc4.pod index f22e88a6521477..0311ef278ca12d 100644 --- a/deps/openssl/openssl/doc/man3/EVP_rc4.pod +++ b/deps/openssl/openssl/doc/man3/EVP_rc4.pod @@ -47,7 +47,7 @@ interface. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod index c177b1845196f2..69fc2f2cc656b9 100644 --- a/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_rc5_32_12_16_cbc.pod @@ -60,7 +60,7 @@ is an int. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_ripemd160.pod b/deps/openssl/openssl/doc/man3/EVP_ripemd160.pod index 6ad2d3e0186968..5b96fd09f85037 100644 --- a/deps/openssl/openssl/doc/man3/EVP_ripemd160.pod +++ b/deps/openssl/openssl/doc/man3/EVP_ripemd160.pod @@ -29,7 +29,7 @@ The RIPEMD-160 algorithm which produces a 160-bit output from a given input. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_seed_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_seed_cbc.pod index 010607e5740590..2c821d07c3993a 100644 --- a/deps/openssl/openssl/doc/man3/EVP_seed_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_seed_cbc.pod @@ -41,7 +41,7 @@ The SEED encryption algorithm in CBC, CFB, ECB and OFB modes respectively. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_sha1.pod b/deps/openssl/openssl/doc/man3/EVP_sha1.pod index 264ddd1addb717..6fc8f07b066a6f 100644 --- a/deps/openssl/openssl/doc/man3/EVP_sha1.pod +++ b/deps/openssl/openssl/doc/man3/EVP_sha1.pod @@ -29,7 +29,7 @@ The SHA-1 algorithm which produces a 160-bit output from a given input. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_sha224.pod b/deps/openssl/openssl/doc/man3/EVP_sha224.pod index 7a50cf9b6c3f15..be09e49ee39325 100644 --- a/deps/openssl/openssl/doc/man3/EVP_sha224.pod +++ b/deps/openssl/openssl/doc/man3/EVP_sha224.pod @@ -49,7 +49,7 @@ their outputs are of the same size. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with Linstead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_sha3_224.pod b/deps/openssl/openssl/doc/man3/EVP_sha3_224.pod index 5bb9ae1b89e550..93c0d0b9fb1e0f 100644 --- a/deps/openssl/openssl/doc/man3/EVP_sha3_224.pod +++ b/deps/openssl/openssl/doc/man3/EVP_sha3_224.pod @@ -54,7 +54,7 @@ B provides that of 256 bits. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L or L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_sm3.pod b/deps/openssl/openssl/doc/man3/EVP_sm3.pod index 4e8112dc0afee2..65be55e88dba8d 100644 --- a/deps/openssl/openssl/doc/man3/EVP_sm3.pod +++ b/deps/openssl/openssl/doc/man3/EVP_sm3.pod @@ -28,7 +28,7 @@ The SM3 hash function. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_sm4_cbc.pod b/deps/openssl/openssl/doc/man3/EVP_sm4_cbc.pod index b67ade549968c5..48be7a31ad756d 100644 --- a/deps/openssl/openssl/doc/man3/EVP_sm4_cbc.pod +++ b/deps/openssl/openssl/doc/man3/EVP_sm4_cbc.pod @@ -45,7 +45,7 @@ respectively. Developers should be aware of the negative performance implications of calling these functions multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/EVP_whirlpool.pod b/deps/openssl/openssl/doc/man3/EVP_whirlpool.pod index a9826e290a4279..c5d465b16f0c3c 100644 --- a/deps/openssl/openssl/doc/man3/EVP_whirlpool.pod +++ b/deps/openssl/openssl/doc/man3/EVP_whirlpool.pod @@ -30,7 +30,7 @@ input. Developers should be aware of the negative performance implications of calling this function multiple times and should consider using -L instead. +L with L instead. See L for further information. =head1 RETURN VALUES diff --git a/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod b/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod index e81fb08b00d613..ce7db8f2f08628 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_CMP_CTX_new.pod @@ -182,7 +182,7 @@ clearing the internal CMP transaction (aka session) status, PKIStatusInfo, and any previous results (newCert, newChain, caPubs, and extraCertsIn) from the last executed transaction. It also clears any ITAVs that were added by OSSL_CMP_CTX_push0_genm_ITAV(). -All other field values (i.e., CMP options) are retained for potential re-use. +All other field values (i.e., CMP options) are retained for potential reuse. OSSL_CMP_CTX_set_option() sets the given value for the given option (e.g., OSSL_CMP_OPT_IMPLICIT_CONFIRM) in the given OSSL_CMP_CTX structure. @@ -260,12 +260,12 @@ The following options can be set: =item B The NID of the digest algorithm to be used as one-way function (OWF) - in RFC 4210's MSG_MAC_ALG for PBM-based message protection. + for MAC-based message protection with password-based MAC (PBM). + See RFC 4210 section 5.1.3.1 for details. Default is SHA256. =item B - The NID of the MAC algorithm to be used in RFC 4210's MSG_MAC_ALG - for PBM-based message protection. + The NID of the MAC algorithm to be used for message protection with PBM. Default is HMAC-SHA1 as per RFC 4210. =item B @@ -450,8 +450,8 @@ The reference counts of those certificates handled successfully are increased. OSSL_CMP_CTX_get0_untrusted(OSSL_CMP_CTX *ctx) returns a pointer to the list of untrusted certs, which may be empty if unset. -OSSL_CMP_CTX_set1_cert() sets the CMP signer certificate -related to the private key used for CMP message protection. +OSSL_CMP_CTX_set1_cert() sets the CMP signer certificate, also called protection +certificate, related to the private key for signature-based message protection. Therefore the public key of this I must correspond to the private key set before or thereafter via OSSL_CMP_CTX_set1_pkey(). When using signature-based protection of CMP request messages @@ -481,15 +481,15 @@ OSSL_CMP_CTX_set1_pkey() sets the client's private key corresponding to the CMP signer certificate set via OSSL_CMP_CTX_set1_cert(). This key is used create signature-based protection (protectionAlg = MSG_SIG_ALG) of outgoing messages -unless a PBM secret has been set via OSSL_CMP_CTX_set1_secretValue(). +unless a symmetric secret has been set via OSSL_CMP_CTX_set1_secretValue(). The I argument may be NULL to clear the entry. -OSSL_CMP_CTX_set1_secretValue() sets the byte string I with length I -as PBM secret in the given I or clears it if the I argument is NULL. -If present, this secret is used to create PBM-based protection of outgoing -messages and to verify any PBM-based protection of incoming messages -(protectionAlg = MSG_MAC_ALG). PBM stands for Password-Based MAC. -PBM-based protection takes precedence over signature-based protection. +OSSL_CMP_CTX_set1_secretValue() sets in I the byte string I of length +I to use as pre-shared secret, or clears it if the I argument is NULL. +If present, this secret is used to create MAC-based authentication and integrity +protection (rather than applying signature-based protection) +of outgoing messages and to verify authenticity and integrity of incoming +messages that have MAC-based protection (protectionAlg = C). OSSL_CMP_CTX_set1_referenceValue() sets the given referenceValue I with length I in the given I or clears it if the I argument is NULL. @@ -500,7 +500,7 @@ then the sender field will contain the NULL-DN and the senderKID field of the CMP message header must be set. When signature-based protection is used the senderKID will be set to the subjectKeyIdentifier of the CMP signer certificate as far as present. -If not present or when PBM-based protection is used +If not present or when MAC-based protection is used the I value is taken as the fallback value for the senderKID. OSSL_CMP_CTX_set1_recipient() sets the recipient name that will be used in the @@ -731,7 +731,7 @@ Set up a CMP client context for sending requests and verifying responses: OSSL_CMP_CTX_set1_serverPath(cmp_ctx, path_or_alias); OSSL_CMP_CTX_set0_trustedStore(cmp_ctx, ts); -Set up client credentials for password-based protection (PBM): +Set up symmetric credentials for MAC-based message protection such as PBM: OSSL_CMP_CTX_set1_referenceValue(cmp_ctx, ref, ref_len); OSSL_CMP_CTX_set1_secretValue(cmp_ctx, sec, sec_len); diff --git a/deps/openssl/openssl/doc/man3/OSSL_CMP_exec_certreq.pod b/deps/openssl/openssl/doc/man3/OSSL_CMP_exec_certreq.pod index b0d81c7c41a968..0cabc3bad5ac96 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_CMP_exec_certreq.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_CMP_exec_certreq.pod @@ -42,7 +42,7 @@ client-server transactions, i.e., sequences of CMP requests and responses. All functions take a populated OSSL_CMP_CTX structure as their first argument. Usually the server name, port, and path ("CMP alias") need to be set, as well as -credentials the client can use for authenticating itself to the client. +credentials the client can use for authenticating itself to the server. In order to authenticate the server the client typically needs a trust store. The functions return their respective main results directly, while there are also accessor functions for retrieving various results and status information @@ -72,7 +72,7 @@ and need to be filled in using L, L, L, etc. For P10CR, L needs to be used instead. The enrollment session may be blocked by sleeping until the addressed -CA (or an intermedate PKI component) can fully process and answer the request. +CA (or an intermediate PKI component) can fully process and answer the request. OSSL_CMP_try_certreq() is an alternative to the above functions that is more flexible regarding what to do after receiving a checkAfter value. @@ -119,9 +119,17 @@ See RFC 4210 section 5.3.19 and appendix E.5 for details. CMP is defined in RFC 4210 (and CRMF in RFC 4211). -So far the CMP client implementation is limited to one request per CMP message +The CMP client implementation is limited to one request per CMP message (and consequently to at most one response component per CMP message). +When a client obtains from a CMP server CA certificates that it is going to +trust, for instance via the caPubs field of a certificate response, +authentication of the CMP server is particularly critical. +So special care must be taken setting up server authentication in I +using functions such as +L (for certificate-based authentication) or +L (for MAC-based protection). + =head1 RETURN VALUES OSSL_CMP_exec_certreq(), OSSL_CMP_exec_IR_ses(), OSSL_CMP_exec_CR_ses(), @@ -163,7 +171,7 @@ The OpenSSL CMP support was added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/OSSL_HTTP_REQ_CTX.pod b/deps/openssl/openssl/doc/man3/OSSL_HTTP_REQ_CTX.pod index ee61034aa731a7..6216420e4ffe92 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_HTTP_REQ_CTX.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_HTTP_REQ_CTX.pod @@ -72,12 +72,16 @@ which collects the HTTP request header lines. OSSL_HTTP_REQ_CTX_free() frees up the HTTP request context I. The I is not free'd, I will be free'd if I is set. -OSSL_HTTP_REQ_CTX_set_request_line() adds the HTTP request line to the context. +OSSL_HTTP_REQ_CTX_set_request_line() adds the 1st HTTP request line to I. The HTTP method is determined by I, which should be 1 to indicate C or 0 to indicate C. -I and I may be set to indicate a proxy server and port -that the request should go through, otherwise they should be left NULL. -I is the HTTP request path; if left NULL, C is used. +I and I may be set to give the server and the optional port that +an HTTP proxy shall forward the request to, otherwise they must be left NULL. +I provides the HTTP request path; if left NULL, C is used. +For backward compatibility, I may begin with C and thus convey +an absoluteURI. In this case it indicates HTTP proxy use and provides also the +server (and optionally the port) that the proxy shall forward the request to. +In this case the I and I arguments must be NULL. OSSL_HTTP_REQ_CTX_add1_header() adds header I with value I to the context I. It can be called more than once to add multiple header lines. diff --git a/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod b/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod index 3337f6d4a35e51..716e365ef50db0 100644 --- a/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod +++ b/deps/openssl/openssl/doc/man3/OSSL_HTTP_transfer.pod @@ -161,8 +161,11 @@ NULL) to print additional diagnostic information in a user-oriented way. OSSL_HTTP_set1_request() sets up in I the request header and content data and expectations on the response using the following parameters. -If indicates using a proxy for HTTP (but not HTTPS), the server hostname -(and optionally port) needs to be placed in the header and thus must be present. +If indicates using a proxy for HTTP (but not HTTPS), the server host +(and optionally port) needs to be placed in the header; thus it must be present +in I. +For backward compatibility, the server (and optional port) may also be given in +the I argument beginning with C (thus giving an absoluteURI). If I is NULL it defaults to "/". If I is NULL the HTTP GET method will be used to send the request else HTTP POST with the contents of I and optional I, where @@ -274,7 +277,7 @@ All the functions described here were added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/PKCS12_create.pod b/deps/openssl/openssl/doc/man3/PKCS12_create.pod index dc0f06d9d323c7..92e588062a36ed 100644 --- a/deps/openssl/openssl/doc/man3/PKCS12_create.pod +++ b/deps/openssl/openssl/doc/man3/PKCS12_create.pod @@ -42,7 +42,8 @@ can all be set to zero and sensible defaults will be used. These defaults are: AES password based encryption (PBES2 with PBKDF2 and AES-256-CBC) for private keys and certificates, the PBKDF2 and MAC key derivation iteration count of B (currently 2048), and -MAC algorithm HMAC with SHA2-256. +MAC algorithm HMAC with SHA2-256. The MAC key derivation algorithm used +for the outer PKCS#12 structure is PKCS12KDF. The default MAC iteration count is 1 in order to retain compatibility with old software which did not interpret MAC iteration counts. If such compatibility @@ -68,6 +69,8 @@ I or I can be set to -1 indicating that no encryption should be used. I can be set to -1 and the MAC will then be omitted entirely. +This can be useful when running with the FIPS provider as the PKCS12KDF +is not a FIPS approvable algorithm. PKCS12_create() makes assumptions regarding the encoding of the given pass phrase. @@ -83,7 +86,9 @@ IETF RFC 7292 (L) =head1 SEE ALSO +L, L, +L, L =head1 HISTORY @@ -96,7 +101,7 @@ standards. =head1 COPYRIGHT -Copyright 2002-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/PKCS12_gen_mac.pod b/deps/openssl/openssl/doc/man3/PKCS12_gen_mac.pod index 37bcd572d841ce..a72df145fedd70 100644 --- a/deps/openssl/openssl/doc/man3/PKCS12_gen_mac.pod +++ b/deps/openssl/openssl/doc/man3/PKCS12_gen_mac.pod @@ -22,6 +22,7 @@ PKCS12_verify_mac - Functions to create and manipulate a PKCS#12 structure PKCS12_gen_mac() generates an HMAC over the entire PKCS#12 object using the supplied password along with a set of already configured parameters. +The default key generation mechanism used is PKCS12KDF. PKCS12_verify_mac() verifies the PKCS#12 object's HMAC using the supplied password. @@ -57,6 +58,7 @@ IETF RFC 7292 (L) =head1 SEE ALSO L, +L, L, L diff --git a/deps/openssl/openssl/doc/man3/PKCS5_PBKDF2_HMAC.pod b/deps/openssl/openssl/doc/man3/PKCS5_PBKDF2_HMAC.pod index 0984e993daefa5..8b5feff9192c02 100644 --- a/deps/openssl/openssl/doc/man3/PKCS5_PBKDF2_HMAC.pod +++ b/deps/openssl/openssl/doc/man3/PKCS5_PBKDF2_HMAC.pod @@ -33,7 +33,8 @@ be NULL terminated. B is the iteration count and its value should be greater than or equal to 1. RFC 2898 suggests an iteration count of at least 1000. Any -B less than 1 is treated as a single iteration. +B value less than 1 is invalid; such values will result in failure +and raise the PROV_R_INVALID_ITERATION_COUNT error. B is the message digest function used in the derivation. PKCS5_PBKDF2_HMAC_SHA1() calls PKCS5_PBKDF2_HMAC() with EVP_sha1(). @@ -66,7 +67,7 @@ L =head1 COPYRIGHT -Copyright 2014-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2014-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod b/deps/openssl/openssl/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod index 06cc1e4ec539d2..3913ea9390079d 100644 --- a/deps/openssl/openssl/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod +++ b/deps/openssl/openssl/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod @@ -2,6 +2,7 @@ =head1 NAME +SSL_CONF_CTX_finish, SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX_set_ssl - set context to configure =head1 SYNOPSIS @@ -10,6 +11,7 @@ SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX_set_ssl - set context to configure void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); + int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); =head1 DESCRIPTION @@ -23,6 +25,10 @@ B structure B. Any previous B or B associated with B is cleared. Subsequent calls to SSL_CONF_cmd() will be sent to B. +The function SSL_CONF_CTX_finish() must be called after all configuration +operations have been completed. It is used to finalise any operations +or to process defaults. + =head1 NOTES The context need not be set or it can be set to B in which case only @@ -32,6 +38,8 @@ syntax checking of commands is performed, where possible. SSL_CONF_CTX_set_ssl_ctx() and SSL_CTX_set_ssl() do not return a value. +SSL_CONF_CTX_finish() returns 1 for success and 0 for failure. + =head1 SEE ALSO L, @@ -47,7 +55,7 @@ These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT -Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2012-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/SSL_CTX_set_info_callback.pod b/deps/openssl/openssl/doc/man3/SSL_CTX_set_info_callback.pod index 9cee6420738486..c1c6a67f85a7d7 100644 --- a/deps/openssl/openssl/doc/man3/SSL_CTX_set_info_callback.pod +++ b/deps/openssl/openssl/doc/man3/SSL_CTX_set_info_callback.pod @@ -12,11 +12,15 @@ SSL_get_info_callback #include - void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*callback)()); - void (*SSL_CTX_get_info_callback(const SSL_CTX *ctx))(); + void SSL_CTX_set_info_callback(SSL_CTX *ctx, + void (*callback) (const SSL *ssl, int type, int val)); - void SSL_set_info_callback(SSL *ssl, void (*callback)()); - void (*SSL_get_info_callback(const SSL *ssl))(); + void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, int val); + + void SSL_set_info_callback(SSL *ssl, + void (*callback) (const SSL *ssl, int type, int val)); + + void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, int val); =head1 DESCRIPTION @@ -119,7 +123,7 @@ SSL_get_info_callback() returns the current setting. The following example callback function prints state strings, information about alerts being handled and error messages to the B BIO. - void apps_ssl_info_callback(SSL *s, int where, int ret) + void apps_ssl_info_callback(const SSL *s, int where, int ret) { const char *str; int w = where & ~SSL_ST_MASK; @@ -156,7 +160,7 @@ L =head1 COPYRIGHT -Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/SSL_new.pod b/deps/openssl/openssl/doc/man3/SSL_new.pod index 59d275523f98e7..2b522769169b77 100644 --- a/deps/openssl/openssl/doc/man3/SSL_new.pod +++ b/deps/openssl/openssl/doc/man3/SSL_new.pod @@ -35,7 +35,7 @@ MUST NOT have yet started the SSL handshake. For connections that are not in their initial state SSL_dup() just increments an internal reference count and returns the I handle. It may be possible to use L to recycle an SSL handle that is not in its initial -state for re-use, but this is best avoided. Instead, save and restore +state for reuse, but this is best avoided. Instead, save and restore the session, if desired, and construct a fresh handle for each connection. The subset of settings in I that are duplicated are: @@ -124,7 +124,7 @@ L =head1 COPYRIGHT -Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/d2i_PKCS8PrivateKey_bio.pod b/deps/openssl/openssl/doc/man3/d2i_PKCS8PrivateKey_bio.pod index 5b5371b70f19cd..51d8aa8cfb474d 100644 --- a/deps/openssl/openssl/doc/man3/d2i_PKCS8PrivateKey_bio.pod +++ b/deps/openssl/openssl/doc/man3/d2i_PKCS8PrivateKey_bio.pod @@ -8,7 +8,7 @@ i2d_PKCS8PrivateKey_nid_bio, i2d_PKCS8PrivateKey_nid_fp - PKCS#8 format private =head1 SYNOPSIS - #include + #include EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); @@ -64,7 +64,7 @@ L =head1 COPYRIGHT -Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/d2i_RSAPrivateKey.pod b/deps/openssl/openssl/doc/man3/d2i_RSAPrivateKey.pod index b4f5b466090004..08cd2c85e5bd79 100644 --- a/deps/openssl/openssl/doc/man3/d2i_RSAPrivateKey.pod +++ b/deps/openssl/openssl/doc/man3/d2i_RSAPrivateKey.pod @@ -28,7 +28,6 @@ d2i_RSA_PUBKEY_fp, d2i_DHparams, d2i_DHparams_bio, d2i_DHparams_fp, -d2i_ECPKParameters, d2i_ECParameters, d2i_ECPrivateKey, d2i_ECPrivateKey_bio, @@ -56,7 +55,6 @@ i2d_DSA_PUBKEY, i2d_DSA_PUBKEY_bio, i2d_DSA_PUBKEY_fp, i2d_DSAparams, -i2d_ECPKParameters, i2d_ECParameters, i2d_ECPrivateKey, i2d_ECPrivateKey_bio, @@ -205,7 +203,7 @@ I and I as follows: =item BPrivateKey>() translates into: - int selection = EVP_PKEY_PRIVATE_KEY; + int selection = EVP_PKEY_KEYPAIR; const char *structure = "type-specific"; =item BPublicKey>() translates into: @@ -309,7 +307,7 @@ L =head1 COPYRIGHT -Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man3/d2i_X509.pod b/deps/openssl/openssl/doc/man3/d2i_X509.pod index c79a964e6d7f98..00efb603581661 100644 --- a/deps/openssl/openssl/doc/man3/d2i_X509.pod +++ b/deps/openssl/openssl/doc/man3/d2i_X509.pod @@ -53,6 +53,7 @@ d2i_DIST_POINT, d2i_DIST_POINT_NAME, d2i_DSA_SIG, d2i_ECDSA_SIG, +d2i_ECPKParameters, d2i_EDIPARTYNAME, d2i_ESS_CERT_ID, d2i_ESS_CERT_ID_V2, @@ -223,6 +224,7 @@ i2d_DIST_POINT, i2d_DIST_POINT_NAME, i2d_DSA_SIG, i2d_ECDSA_SIG, +i2d_ECPKParameters, i2d_EDIPARTYNAME, i2d_ESS_CERT_ID, i2d_ESS_CERT_ID_V2, @@ -388,10 +390,12 @@ to the returned structure is also written to I<*a>. If an error occurred then NULL is returned. On a successful return, if I<*a> is not NULL then it is assumed that I<*a> -contains a valid B> structure and an attempt is made to reuse it. This -"reuse" capability is present for historical compatibility but its use is -B (see BUGS below, and the discussion in the RETURN -VALUES section). +contains a valid B> structure and an attempt is made to reuse it. +For B> structures where it matters it is possible to set up a library +context on the decoded structure this way (see the B section). +However using the "reuse" capability for other purposes is B (see B below, and the discussion in the B +section). B_bio>() is similar to B>() except it attempts to parse data from BIO I. @@ -536,6 +540,22 @@ Alternative technique: if (d2i_X509(&x, &p, len) == NULL) /* error */ +Setting up a library context and property query: + + X509 *x; + unsigned char *buf; + const unsigned char *p; + int len; + OSSL_LIB_CTX *libctx = ....; + const char *propq = ....; + + /* Set up buf and len to point to the input buffer. */ + p = buf; + x = X509_new_ex(libctx, propq); + + if (d2i_X509(&x, &p, len) == NULL) + /* error, x was freed and NULL assigned to it (see RETURN VALUES) */ + =head1 WARNINGS Using a temporary variable is mandatory. A common diff --git a/deps/openssl/openssl/doc/man5/x509v3_config.pod b/deps/openssl/openssl/doc/man5/x509v3_config.pod index 1830092394bc90..044904022d894e 100644 --- a/deps/openssl/openssl/doc/man5/x509v3_config.pod +++ b/deps/openssl/openssl/doc/man5/x509v3_config.pod @@ -93,7 +93,7 @@ numeric identifier, as shown here: email.2 = steve@example.org The syntax of raw extensions is defined by the source code that parses -the extension but should be documened. +the extension but should be documented. See L for an example of a raw extension. If an extension type is unsupported, then the I extension syntax @@ -590,7 +590,7 @@ L =head1 COPYRIGHT -Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2004-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man7/EVP_KDF-PKCS12KDF.pod b/deps/openssl/openssl/doc/man7/EVP_KDF-PKCS12KDF.pod index 7edde1dc9bf7f0..98653656986427 100644 --- a/deps/openssl/openssl/doc/man7/EVP_KDF-PKCS12KDF.pod +++ b/deps/openssl/openssl/doc/man7/EVP_KDF-PKCS12KDF.pod @@ -46,6 +46,9 @@ RFC 7292 section B.3. =head1 NOTES +This algorithm is not available in the FIPS provider as it is not FIPS +approvable. + A typical application of this algorithm is to derive keying material for an encryption algorithm from a password in the "pass", a salt in "salt", and an iteration count. @@ -68,7 +71,8 @@ L, L, L, L, -L +L, +L =head1 HISTORY @@ -76,7 +80,7 @@ This functionality was added in OpenSSL 3.0. =head1 COPYRIGHT -Copyright 2020 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/deps/openssl/openssl/doc/man7/migration_guide.pod b/deps/openssl/openssl/doc/man7/migration_guide.pod index 1847e9813cbbaf..61641324a7fc9d 100644 --- a/deps/openssl/openssl/doc/man7/migration_guide.pod +++ b/deps/openssl/openssl/doc/man7/migration_guide.pod @@ -306,6 +306,15 @@ context and property query and will call an extended version of the key/IV derivation function which supports these parameters. This includes L, L and L. +=head4 PKCS#12 KDF versus FIPS + +Unlike in 1.x.y, the PKCS12KDF algorithm used when a PKCS#12 structure +is created with a MAC that does not work with the FIPS provider as the PKCS12KDF +is not a FIPS approvable mechanism. + +See L, L, L, +L. + =head4 Windows thread synchronization changes Windows thread synchronization uses read/write primitives (SRWLock) when diff --git a/deps/openssl/openssl/fuzz/build.info b/deps/openssl/openssl/fuzz/build.info index 7b26b8c15228f8..dc976b70f06796 100644 --- a/deps/openssl/openssl/fuzz/build.info +++ b/deps/openssl/openssl/fuzz/build.info @@ -9,7 +9,7 @@ -} IF[{- !$disabled{"fuzz-afl"} || !$disabled{"fuzz-libfuzzer"} -}] - PROGRAMS{noinst}=asn1 asn1parse bignum bndiv client conf crl server x509 + PROGRAMS{noinst}=asn1 asn1parse bignum bndiv client conf crl server IF[{- !$disabled{"cmp"} -}] PROGRAMS{noinst}=cmp @@ -23,6 +23,10 @@ IF[{- !$disabled{"fuzz-afl"} || !$disabled{"fuzz-libfuzzer"} -}] PROGRAMS{noinst}=ct ENDIF + IF[{- !$disabled{"ocsp"} -}] + PROGRAMS{noinst}=x509 + ENDIF + SOURCE[asn1]=asn1.c driver.c fuzz_rand.c INCLUDE[asn1]=../include {- $ex_inc -} DEPEND[asn1]=../libcrypto ../libssl {- $ex_lib -} @@ -73,7 +77,7 @@ IF[{- !$disabled{"fuzz-afl"} || !$disabled{"fuzz-libfuzzer"} -}] ENDIF IF[{- !$disabled{tests} -}] - PROGRAMS{noinst}=asn1-test asn1parse-test bignum-test bndiv-test client-test conf-test crl-test server-test x509-test + PROGRAMS{noinst}=asn1-test asn1parse-test bignum-test bndiv-test client-test conf-test crl-test server-test IF[{- !$disabled{"cmp"} -}] PROGRAMS{noinst}=cmp-test @@ -87,6 +91,10 @@ IF[{- !$disabled{tests} -}] PROGRAMS{noinst}=ct-test ENDIF + IF[{- !$disabled{"ocsp"} -}] + PROGRAMS{noinst}=x509-test + ENDIF + SOURCE[asn1-test]=asn1.c test-corpus.c fuzz_rand.c INCLUDE[asn1-test]=../include DEPEND[asn1-test]=../libcrypto ../libssl diff --git a/deps/openssl/openssl/fuzz/x509.c b/deps/openssl/openssl/fuzz/x509.c index 78061d176af792..e2d2639164c01d 100644 --- a/deps/openssl/openssl/fuzz/x509.c +++ b/deps/openssl/openssl/fuzz/x509.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -9,6 +9,7 @@ */ #include +#include #include #include #include @@ -17,31 +18,131 @@ int FuzzerInitialize(int *argc, char ***argv) { FuzzerSetRand(); - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS + | OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL); ERR_clear_error(); CRYPTO_free_ex_index(0, -1); return 1; } +static int cb(int ok, X509_STORE_CTX *ctx) +{ + return 1; +} + int FuzzerTestOneInput(const uint8_t *buf, size_t len) { const unsigned char *p = buf; + size_t orig_len = len; unsigned char *der = NULL; + BIO *bio = NULL; + X509 *x509_1 = NULL, *x509_2 = NULL; + X509_STORE *store = NULL; + X509_VERIFY_PARAM *param = NULL; + X509_STORE_CTX *ctx = NULL; + X509_CRL *crl = NULL; + STACK_OF(X509_CRL) *crls = NULL; + STACK_OF(X509) *certs = NULL; + OCSP_RESPONSE *resp = NULL; + OCSP_BASICRESP *bs = NULL; + OCSP_CERTID *id = NULL; + + x509_1 = d2i_X509(NULL, &p, len); + if (x509_1 == NULL) + goto err; + + bio = BIO_new(BIO_s_null()); + if (bio == NULL) + goto err; + + /* This will load and print the public key as well as extensions */ + X509_print(bio, x509_1); + BIO_free(bio); + + X509_issuer_and_serial_hash(x509_1); + + i2d_X509(x509_1, &der); + OPENSSL_free(der); + + len = orig_len - (p - buf); + x509_2 = d2i_X509(NULL, &p, len); + if (x509_2 == NULL) + goto err; + + len = orig_len - (p - buf); + crl = d2i_X509_CRL(NULL, &p, len); + if (crl == NULL) + goto err; + + len = orig_len - (p - buf); + resp = d2i_OCSP_RESPONSE(NULL, &p, len); + + store = X509_STORE_new(); + X509_STORE_add_cert(store, x509_2); - X509 *x509 = d2i_X509(NULL, &p, len); - if (x509 != NULL) { - BIO *bio = BIO_new(BIO_s_null()); - /* This will load and print the public key as well as extensions */ - X509_print(bio, x509); - BIO_free(bio); + param = X509_VERIFY_PARAM_new(); + X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_NO_CHECK_TIME); + X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_X509_STRICT); + X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_PARTIAL_CHAIN); + X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK); - X509_issuer_and_serial_hash(x509); + X509_STORE_set1_param(store, param); - i2d_X509(x509, &der); - OPENSSL_free(der); + X509_STORE_set_verify_cb(store, cb); - X509_free(x509); + ctx = X509_STORE_CTX_new(); + if (ctx == NULL) + goto err; + + X509_STORE_CTX_init(ctx, store, x509_1, NULL); + + if (crl != NULL) { + crls = sk_X509_CRL_new_null(); + if (crls == NULL) + goto err; + + sk_X509_CRL_push(crls, crl); + X509_STORE_CTX_set0_crls(ctx, crls); } + + X509_verify_cert(ctx); + + if (resp != NULL) + bs = OCSP_response_get1_basic(resp); + + if (bs != NULL) { + int status, reason; + ASN1_GENERALIZEDTIME *revtime, *thisupd, *nextupd; + + certs = sk_X509_new_null(); + if (certs == NULL) + goto err; + + sk_X509_push(certs, x509_1); + sk_X509_push(certs, x509_2); + + OCSP_basic_verify(bs, certs, store, OCSP_PARTIAL_CHAIN); + + id = OCSP_cert_to_id(NULL, x509_1, x509_2); + if (id == NULL) + goto err; + OCSP_resp_find_status(bs, id, &status, &reason, &revtime, &thisupd, + &nextupd); + } + +err: + X509_STORE_CTX_free(ctx); + X509_VERIFY_PARAM_free(param); + X509_STORE_free(store); + X509_free(x509_1); + X509_free(x509_2); + X509_CRL_free(crl); + OCSP_CERTID_free(id); + OCSP_BASICRESP_free(bs); + OCSP_RESPONSE_free(resp); + sk_X509_CRL_free(crls); + sk_X509_free(certs); + ERR_clear_error(); return 0; } diff --git a/deps/openssl/openssl/include/crypto/bn_conf.h b/deps/openssl/openssl/include/crypto/bn_conf.h deleted file mode 100644 index 79400c6472a49c..00000000000000 --- a/deps/openssl/openssl/include/crypto/bn_conf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/bn_conf.h" diff --git a/deps/openssl/openssl/include/crypto/dso_conf.h b/deps/openssl/openssl/include/crypto/dso_conf.h deleted file mode 100644 index e7f2afa9872320..00000000000000 --- a/deps/openssl/openssl/include/crypto/dso_conf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/dso_conf.h" diff --git a/deps/openssl/openssl/include/openssl/asn1.h b/deps/openssl/openssl/include/openssl/asn1.h deleted file mode 100644 index cd9fc7cc706c37..00000000000000 --- a/deps/openssl/openssl/include/openssl/asn1.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/asn1.h" diff --git a/deps/openssl/openssl/include/openssl/asn1t.h b/deps/openssl/openssl/include/openssl/asn1t.h deleted file mode 100644 index 6ff4f574949bbd..00000000000000 --- a/deps/openssl/openssl/include/openssl/asn1t.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/asn1t.h" diff --git a/deps/openssl/openssl/include/openssl/bio.h b/deps/openssl/openssl/include/openssl/bio.h deleted file mode 100644 index dcece3cb4d6ebf..00000000000000 --- a/deps/openssl/openssl/include/openssl/bio.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/bio.h" diff --git a/deps/openssl/openssl/include/openssl/cmp.h b/deps/openssl/openssl/include/openssl/cmp.h deleted file mode 100644 index 7c8a6dc96fc360..00000000000000 --- a/deps/openssl/openssl/include/openssl/cmp.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/cmp.h" diff --git a/deps/openssl/openssl/include/openssl/cms.h b/deps/openssl/openssl/include/openssl/cms.h deleted file mode 100644 index 33a00775c9fa76..00000000000000 --- a/deps/openssl/openssl/include/openssl/cms.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/cms.h" diff --git a/deps/openssl/openssl/include/openssl/cmserr.h b/deps/openssl/openssl/include/openssl/cmserr.h index d48c2a4ab89f03..f2d7708f10c8d6 100644 --- a/deps/openssl/openssl/include/openssl/cmserr.h +++ b/deps/openssl/openssl/include/openssl/cmserr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -113,6 +113,7 @@ # define CMS_R_UNSUPPORTED_LABEL_SOURCE 193 # define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 # define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 +# define CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM 195 # define CMS_R_UNSUPPORTED_TYPE 156 # define CMS_R_UNWRAP_ERROR 157 # define CMS_R_UNWRAP_FAILURE 180 diff --git a/deps/openssl/openssl/include/openssl/conf.h b/deps/openssl/openssl/include/openssl/conf.h deleted file mode 100644 index 2712886cafcd78..00000000000000 --- a/deps/openssl/openssl/include/openssl/conf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/conf.h" diff --git a/deps/openssl/openssl/include/openssl/configuration.h b/deps/openssl/openssl/include/openssl/configuration.h deleted file mode 100644 index 8ffad996047c5e..00000000000000 --- a/deps/openssl/openssl/include/openssl/configuration.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/configuration.h" diff --git a/deps/openssl/openssl/include/openssl/crmf.h b/deps/openssl/openssl/include/openssl/crmf.h deleted file mode 100644 index 4103852ecb21c2..00000000000000 --- a/deps/openssl/openssl/include/openssl/crmf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/crmf.h" diff --git a/deps/openssl/openssl/include/openssl/crypto.h b/deps/openssl/openssl/include/openssl/crypto.h deleted file mode 100644 index 6d0e701ebd3c19..00000000000000 --- a/deps/openssl/openssl/include/openssl/crypto.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/crypto.h" diff --git a/deps/openssl/openssl/include/openssl/ct.h b/deps/openssl/openssl/include/openssl/ct.h deleted file mode 100644 index 7ebb84387135be..00000000000000 --- a/deps/openssl/openssl/include/openssl/ct.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/ct.h" diff --git a/deps/openssl/openssl/include/openssl/err.h b/deps/openssl/openssl/include/openssl/err.h deleted file mode 100644 index bf482070474781..00000000000000 --- a/deps/openssl/openssl/include/openssl/err.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/err.h" diff --git a/deps/openssl/openssl/include/openssl/ess.h b/deps/openssl/openssl/include/openssl/ess.h deleted file mode 100644 index 64cc016225119f..00000000000000 --- a/deps/openssl/openssl/include/openssl/ess.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/ess.h" diff --git a/deps/openssl/openssl/include/openssl/evp.h b/deps/openssl/openssl/include/openssl/evp.h index 49e8e1df786516..e64072f9656263 100644 --- a/deps/openssl/openssl/include/openssl/evp.h +++ b/deps/openssl/openssl/include/openssl/evp.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -85,6 +85,8 @@ /* Easy to use macros for EVP_PKEY related selections */ # define EVP_PKEY_KEY_PARAMETERS \ ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS ) +# define EVP_PKEY_PRIVATE_KEY \ + ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PRIVATE_KEY ) # define EVP_PKEY_PUBLIC_KEY \ ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PUBLIC_KEY ) # define EVP_PKEY_KEYPAIR \ diff --git a/deps/openssl/openssl/include/openssl/fipskey.h b/deps/openssl/openssl/include/openssl/fipskey.h deleted file mode 100644 index c012013d98d4e8..00000000000000 --- a/deps/openssl/openssl/include/openssl/fipskey.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/fipskey.h" diff --git a/deps/openssl/openssl/include/openssl/lhash.h b/deps/openssl/openssl/include/openssl/lhash.h deleted file mode 100644 index 8d824f5cfe6274..00000000000000 --- a/deps/openssl/openssl/include/openssl/lhash.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/lhash.h" diff --git a/deps/openssl/openssl/include/openssl/ocsp.h b/deps/openssl/openssl/include/openssl/ocsp.h deleted file mode 100644 index 5b13afedf36bb6..00000000000000 --- a/deps/openssl/openssl/include/openssl/ocsp.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/ocsp.h" diff --git a/deps/openssl/openssl/include/openssl/opensslv.h b/deps/openssl/openssl/include/openssl/opensslv.h deleted file mode 100644 index 078cfba40fbe73..00000000000000 --- a/deps/openssl/openssl/include/openssl/opensslv.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/opensslv.h" diff --git a/deps/openssl/openssl/include/openssl/pkcs12.h b/deps/openssl/openssl/include/openssl/pkcs12.h deleted file mode 100644 index 2d7e2c08e99175..00000000000000 --- a/deps/openssl/openssl/include/openssl/pkcs12.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/pkcs12.h" diff --git a/deps/openssl/openssl/include/openssl/pkcs7.h b/deps/openssl/openssl/include/openssl/pkcs7.h deleted file mode 100644 index b553f9d0f053b0..00000000000000 --- a/deps/openssl/openssl/include/openssl/pkcs7.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/pkcs7.h" diff --git a/deps/openssl/openssl/include/openssl/pkcs7.h.in b/deps/openssl/openssl/include/openssl/pkcs7.h.in index f5c55a3fbe5761..006b38b604110b 100644 --- a/deps/openssl/openssl/include/openssl/pkcs7.h.in +++ b/deps/openssl/openssl/include/openssl/pkcs7.h.in @@ -1,7 +1,7 @@ /* * {- join("\n * ", @autowarntext) -} * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -57,8 +57,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/openssl/include/openssl/safestack.h b/deps/openssl/openssl/include/openssl/safestack.h deleted file mode 100644 index 989eafb33023b9..00000000000000 --- a/deps/openssl/openssl/include/openssl/safestack.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/safestack.h" diff --git a/deps/openssl/openssl/include/openssl/srp.h b/deps/openssl/openssl/include/openssl/srp.h deleted file mode 100644 index 9df42dad4c3127..00000000000000 --- a/deps/openssl/openssl/include/openssl/srp.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/srp.h" diff --git a/deps/openssl/openssl/include/openssl/ssl.h b/deps/openssl/openssl/include/openssl/ssl.h deleted file mode 100644 index eb74ca98a9759a..00000000000000 --- a/deps/openssl/openssl/include/openssl/ssl.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/ssl.h" diff --git a/deps/openssl/openssl/include/openssl/ui.h b/deps/openssl/openssl/include/openssl/ui.h deleted file mode 100644 index f5edb766b4fc6c..00000000000000 --- a/deps/openssl/openssl/include/openssl/ui.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/ui.h" diff --git a/deps/openssl/openssl/include/openssl/x509.h b/deps/openssl/openssl/include/openssl/x509.h deleted file mode 100644 index ed28bd68cb2474..00000000000000 --- a/deps/openssl/openssl/include/openssl/x509.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/x509.h" diff --git a/deps/openssl/openssl/include/openssl/x509_vfy.h b/deps/openssl/openssl/include/openssl/x509_vfy.h deleted file mode 100644 index 9270a3ee09750a..00000000000000 --- a/deps/openssl/openssl/include/openssl/x509_vfy.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/x509_vfy.h" diff --git a/deps/openssl/openssl/include/openssl/x509v3.h b/deps/openssl/openssl/include/openssl/x509v3.h deleted file mode 100644 index 5629ae9a3a90af..00000000000000 --- a/deps/openssl/openssl/include/openssl/x509v3.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../config/x509v3.h" diff --git a/deps/openssl/openssl/providers/fips-sources.checksums b/deps/openssl/openssl/providers/fips-sources.checksums index 42785c33a0d2e0..fa977f5a983829 100644 --- a/deps/openssl/openssl/providers/fips-sources.checksums +++ b/deps/openssl/openssl/providers/fips-sources.checksums @@ -21,7 +21,7 @@ c56c324667b67d726e040d70379efba5b270e2937f403c1b5979018b836903c7 crypto/aes/asm c7c6694480bb5319690f94826139a93f5c460ebea6dba101b520a76cb956ec93 crypto/aes/asm/aesni-x86_64.pl f3a8f3c960c0f47aaa8fc2633d18b14e7c7feeccc536b0115a08bc58333122b6 crypto/aes/asm/aesp8-ppc.pl e397a5781893e97dd90a5a52049633be12a43f379ec5751bca2a6350c39444c8 crypto/aes/asm/aest4-sparcv9.pl -a097f9d71de7cefa8e93629033ff1986fb01128623ec051d9b5afef55c0e5ebb crypto/aes/asm/aesv8-armx.pl +e3955352a92d56905d63e68937e4758f13190a14a10a3dcb1e5c641c49913c0c crypto/aes/asm/aesv8-armx.pl 5e8005fdb6641df465bdda20c3476f7176e6bcd63d5073044a0c02a327c7f172 crypto/aes/asm/bsaes-armv7.pl 0726a2c4c15c27a12b2f7d5e16863df4a1b1daa7b7d9b728f621b2b224d290e6 crypto/aes/asm/bsaes-x86_64.pl 1ff94d6bf6c8ae4809f64657eb89260fe3cb22137f649d3c73f72cb190258196 crypto/aes/asm/vpaes-armv8.pl @@ -79,7 +79,7 @@ d94295953ab91469fe2b9da2a542b8ea11ac38551ecde8f8202b7f645c2dea16 crypto/bn/bn_d 74b63a4515894592b7241fb30b91b21510beaa3d397809e3d74bc9a73e879d18 crypto/bn/bn_div.c a29b8b7fa8460f11e50f880e3c3c9e0755b93889bcbb5476206c4d938a9c5735 crypto/bn/bn_exp.c ec2b6e3af6df473a23e7f1a8522f2554cb0eb5d34e3282458c4a66d242278434 crypto/bn/bn_exp2.c -1abab2cc5466b005b939d156e7d8664a4d42a191c9040dbb83941269d6844f0c crypto/bn/bn_gcd.c +baba7c8ae95af6aa36bc9f4be3a2eed33d500451e568ca4bfc6bc7cb48d4f7ea crypto/bn/bn_gcd.c 4d6cc7ed36978247a191df1eea0120f8ee97b639ba228793dabe5a8355a1a609 crypto/bn/bn_gf2m.c 081e8a6abc23599307dab3b1a92113a65e0bf8717cbc40c970c7469350bc4581 crypto/bn/bn_intern.c 602ed46fbfe12c899dfb7d9d99ff0dbfff96b454fce3cd02817f3e2488dd9192 crypto/bn/bn_kron.c @@ -122,20 +122,20 @@ eeef5722ad56bf1af2ff71681bcc8b8525bc7077e973c98cee920ce9bcc66c81 crypto/des/ecb 61926e30dd940616e80936d1c94c5f522daf0d475fb3a40a9e589e78f322901e crypto/des/set_key.c 8344811b14d151f6cd40a7bc45c8f4a1106252b119c1d5e6a589a023f39b107d crypto/des/spr.h 816472a54c273906d0a2b58650e0b9d28cc2c8023d120f0d77160f1fe34c4ca3 crypto/dh/dh_backend.c -d2d0569bea2598bd405f23b60e5283a6ce353f1145a25ff8f28cf15711743156 crypto/dh/dh_check.c +fcbfe5acb73e1b4094efec56a754b803d2c1a53644c78cf6a73ae868e3f3886d crypto/dh/dh_check.c 7838e9a35870b0fbcba0aff2f52a2439f64d026e9922bce6e5978c2f22c51120 crypto/dh/dh_gen.c 6b17861887b2535159b9e6ca4f927767dad3e71b6e8be50055bc784f78e92d64 crypto/dh/dh_group_params.c a5cf5cb464b40f1bc5457dc2a6f2c5ec0f050196603cd2ba7037a23ab64adbf7 crypto/dh/dh_kdf.c -0afa7dd237f9b21b0cfb0de10505facd57eb07ded905d888d43a1de2356d4002 crypto/dh/dh_key.c -b0046b2c4e1d74ff4e93f2486a00f63728909b8a75cbdd29b9100e607f97995c crypto/dh/dh_lib.c +9e61a0b5017d835b348b15e93760c42d8d899ffae4251455c7b3085cfd25294c crypto/dh/dh_key.c +92345c259ea2a8c09e6d6b069d0942bd6ca4642231580f3e8148ae7a832a1115 crypto/dh/dh_lib.c 8300775d88db0a1aa26a77eb49d6c4f7252e7fee69e1440de4c40edadc9da044 crypto/dh/dh_local.h bbcf4fc3067ac462a27d7277973180b7dc140df9262a686c7fbe4318ca01f7b8 crypto/dsa/dsa_backend.c -b9c5992089203123c3fae46e39bb4d05e19854087bca7a30ad1f82a3505deec7 crypto/dsa/dsa_check.c +d7e0d87494e3b3f0898a56785a219e87a2ce14416393ec32d8c0b5f539c7bdbf crypto/dsa/dsa_check.c ae727bf6319eb57e682de35d75ea357921987953b3688365c710e7fba51c7c58 crypto/dsa/dsa_gen.c b1de1624e590dbf76f76953802ff162cc8de7c5e2eaba897313c866424d6902b crypto/dsa/dsa_key.c -9e436a2e0867920c3a5ac58bc14300cad4ab2c4c8fe5e40b355dfd21bfdfe146 crypto/dsa/dsa_lib.c +9f4837c5abe53613a2dc1c5db81d073d4f42bd28b6a2d1e93a2b350d8e25d52a crypto/dsa/dsa_lib.c f4d52d3897219786c6046bf76abb2f174655c584caa50272bf5d281720df5022 crypto/dsa/dsa_local.h -38062c6eebdb2f88fa0c6592837a96a49de2ae520d3ad483a3e02921c8adb094 crypto/dsa/dsa_ossl.c +c5c252f205482a71efeabe226d51a1c541a6ba2dfa9b8b8a70901087a9dc1667 crypto/dsa/dsa_ossl.c d612fd05ff98816ba6cf37f84c0e31443ad9d840ed587a7ab2066027da390325 crypto/dsa/dsa_sign.c 53fa10cc87ac63e35df661882852dc46ae68e6fee83b842f1aeefe00b8900ee1 crypto/dsa/dsa_vrf.c d9722ad8c6b6e209865a921f3cda831d09bf54a55cacd1edd9802edb6559190a crypto/ec/asm/ecp_nistp521-ppc64.pl @@ -193,7 +193,7 @@ b4b7c683279454ba41438f50a015cb63ef056ccb9be0168918dfbae00313dc68 crypto/ec/ecp_ 0e75a058dcbbb62cfe39fec6c4a85385dc1a8fce794e4278ce6cebb29763b82b crypto/evp/dh_support.c 1af3872164b4a4757bc7896a24b4d2f8eb2cfb4cba0d872a93db69975693e0a6 crypto/evp/digest.c 838277f228cd3025cf95a9cd435e5606ad1fb5d207bbb057aa29892e6a657c55 crypto/evp/ec_support.c -1c3d1b1f800b1f1f5adb1fdbdd67cdf37ca7ea93b264d1468c72a63c140873ce crypto/evp/evp_enc.c +61df3942752307b7006f09d7628348a0cc9e5555469a3a8862349067a52824b7 crypto/evp/evp_enc.c 7f10367f9b6191c4a8c01784130d26b2d778485a41cdac5fa17c9a1c4096f132 crypto/evp/evp_fetch.c ebe32b2895f7f9767710674352c8949efe93b4bbb5e7b71c27bb5d1822339b46 crypto/evp/evp_lib.c 78f07bf50b6999611a4e9414ab3a20b219b0ab29ca2bd05002d6919a3f67b8eb crypto/evp/evp_local.h @@ -213,11 +213,11 @@ e7e8eb5683cd3fbd409df888020dc353b65ac291361829cc4131d5bc86c9fcb3 crypto/evp/mac 1f0e9e94e9b0ad322956521b438b78d44cfcd8eb974e8921d05f9e21ba1c05cf crypto/evp/pmeth_gn.c 76511fba789089a50ef87774817a5482c33633a76a94ecf7b6e8eb915585575d crypto/evp/pmeth_lib.c 4b2dbddf0f9ceed34c3822347138be754fb194febca1c21c46bcc3a5cce33674 crypto/evp/signature.c -b06cb8fd4bd95aae1f66e1e145269c82169257f1a60ef0f78f80a3d4c5131fac crypto/ex_data.c +f2acfb82aac20251d05a9c252cc6c282bd44e43feac4ac2e0faf68b9a38aef57 crypto/ex_data.c 1c8389c5d49616d491978f0f2b2a54ba82d805ec41c8f75c67853216953cf46a crypto/ffc/ffc_backend.c a12af33e605315cdddd6d759e70cd9632f0f33682b9aa7103ed1ecd354fc7e55 crypto/ffc/ffc_dh.c 854378f57707e31ad02cca6eec94369f91f327288d3665713e249c12f7b13211 crypto/ffc/ffc_key_generate.c -2695c9c8ad9193a8c1ab53d5d09712d50d12c91eb8d62e8a15cbc78f327afe84 crypto/ffc/ffc_key_validate.c +4e973d956d4ec2087994de8e963be1a512da1441f22e6e7b9cd7ee536e3ff834 crypto/ffc/ffc_key_validate.c 8b72d5a7452b2c15aec6d20027053a83f7df89d49a3b6cfedd77e2b1a29e9fc1 crypto/ffc/ffc_params.c 1a1d227f9a0f427d2ec93bc646c726c9cd49a84a343b4aff0c9c744fa6df05a9 crypto/ffc/ffc_params_generate.c 73dac805abab36cd9df53a421221c71d06a366a4ce479fa788be777f11b47159 crypto/ffc/ffc_params_validate.c @@ -225,7 +225,7 @@ a12af33e605315cdddd6d759e70cd9632f0f33682b9aa7103ed1ecd354fc7e55 crypto/ffc/ffc 0395c1b0834f2f4a0ca1756385f4dc1a4ef6fb925b2db3743df7f57256c5166f crypto/hmac/hmac_local.h 0e2d6129504d15ffaf5baa63158ccec0e4b6193a8275333956d8f868ef35127e crypto/ia64cpuid.S f897493b50f4e9dd4cacb2a7accda6683c10ece602641874cdff1dac7128a751 crypto/initthread.c -5482c47c266523129980302426d25839fda662f1544f4b684707e6b272a952c9 crypto/lhash/lhash.c +7290d8d7ec31a98b17618f218d4f27b393501c7606c814a43db8af1975ad1d10 crypto/lhash/lhash.c 5d49ce00fc06df1b64cbc139ef45c71e0faf08a33f966bc608c82d574521a49e crypto/lhash/lhash_local.h f866aafae928db1b439ac950dc90744a2397dfe222672fe68b3798396190c8b0 crypto/mem_clr.c e14f48d4112c0efe3826b4aa390cc24045a85298cc551ec7f3f36ac4236d7d81 crypto/modes/asm/aes-gcm-armv8_64.pl @@ -240,7 +240,7 @@ e472d73d06933667a51a0af973479993eed333c71b43af03095450acb36dbeb4 crypto/modes/a 26f55a57e77f774d17dfba93d757f78edfa3a03f68a71ffa37ccf3bfc468b1e2 crypto/modes/asm/ghash-x86.pl 72744131007d2389c09665a59a862f5f6bb61b64bd3456e9b400985cb56586b8 crypto/modes/asm/ghash-x86_64.pl a4e9f2e496bd9362b17a1b5989aa4682647cefcff6117f0607122a9e11a9dfd9 crypto/modes/asm/ghashp8-ppc.pl -0029b5beb1d4cd4c5ad47164c23f3e7c9d1eaff66ef54af025ee26795b11a1c7 crypto/modes/asm/ghashv8-armx.pl +69a13f423ca74c22543900c14aef4a848e3bc75504b65d2f51c6903aebcc17a7 crypto/modes/asm/ghashv8-armx.pl 65112dfe63cd59487e7bdb1706b44acfcf48ecede12cc3ae51daa5b661f41f06 crypto/modes/cbc128.c 1611e73dc1e01b5c2201f51756a7405b7673aa0bb872e2957d1ec80c3530486f crypto/modes/ccm128.c d8c2f256532a4b94db6d03aea5cb609cccc938069f644b2fc77c5015648d148d crypto/modes/cfb128.c @@ -252,29 +252,29 @@ e55a816c356b2d526bc6e40c8b81afa02576e4d44c7d7b6bbe444fb8b01aad41 crypto/modes/w 8aa2504f84a0637b5122f0c963c9d82773ba248bad972ab92be7169995d162b5 crypto/o_str.c 8ddbbdf43131c10dcd4428aef0eff2b1e98b0410accada0fad41a4925868beef crypto/packet.c a20bfd927d69737c86ca95d3cf636afa8cefd8fe23412d1a3897644a0da21211 crypto/param_build.c -c2fe815fb3fd5efe9a6544cae55f9469063a0f6fb728361737b927f6182ae0bb crypto/param_build_set.c +2a0f272dd553b698e8c6fa57962694ebd6064cb03fe26a60df529205568d315d crypto/param_build_set.c 0e4a5388a92fabbe5a540176c0b4c5ce258b78dc9168ecc2e805352a06aaf0ba crypto/params.c 4fda13f6af05d80b0ab89ec4f5813c274a21a9b4565be958a02d006236cef05c crypto/params_dup.c a0097ff2da8955fe15ba204cb54f3fd48a06f846e2b9826f507b26acf65715c3 crypto/params_from_text.c 97cb7414dc2f165d5849ee3b46cdfff0afb067729435d9c01a747e0ca41e230c crypto/ppccap.c 3ca43596a7528dec8ff9d1a3cd0d68b62640f84b1d6a8b5e4842cfd0be1133ad crypto/ppccpuid.pl b4d34272a0bd1fbe6562022bf7ea6259b6a5a021a48222d415be47ef5ef2a905 crypto/property/defn_cache.c -7da6ae864beb1a4daa4be31eb41d48141a3a7eb7a263a4937a6889e05656a595 crypto/property/property.c +3c4ade2fed4605e374d85ec1134a98da34e7124f89f44b81a754e8cfe81f14ba crypto/property/property.c 66da4f28d408133fb544b14aeb9ad4913e7c5c67e2826e53f0dc5bf4d8fada26 crypto/property/property_local.h -921305e62749aec22da4843738bee3448b61e7e30d5309beddc7141ad07a8004 crypto/property/property_parse.c +099407e68e705f1458b701b9336f633565fc0843355fedf1ec83794349548a51 crypto/property/property_parse.c a7cefda6a117550e2c76e0f307565ce1e11640b11ba10c80e469a837fd1212a3 crypto/property/property_query.c 065698c8d88a5facc0cbc02a3bd0c642c94687a8c5dd79901c942138b406067d crypto/property/property_string.c -9653ec9c1476350a94b9cc7f8be3d99961fd803870c9ac03315298d2909a6a8e crypto/provider_core.c +0ba5d0297837940c972224c97cbbf3ea4a723c1eed9ce1112538c9bb26208639 crypto/provider_core.c d0af10d4091b2032aac1b7db80f8c2e14fa7176592716b25b9437ab6b53c0a89 crypto/provider_local.h 5ba2e1c74ddcd0453d02e32612299d1eef18eff8493a7606c15d0dc3738ad1d9 crypto/provider_predefined.c a5a4472636b8b0095ad8d4acd37e275ad79da1a67ecff7b7b5c3e46c9ebc65b7 crypto/rand/rand_lib.c fd03b9bb2c23470fa40880ed3bf9847bb17d50592101a78c0ad7a0f121209788 crypto/rand/rand_local.h f0c8792a99132e0b9c027cfa7370f45594a115934cdc9e8f23bdd64abecaf7fd crypto/rsa/rsa_acvp_test_params.c -9e7dd6fc91d3266d4aa4f0f41b7986381122b7d98114e63ebf04c5ee298b5fda crypto/rsa/rsa_backend.c +5834d7c518ad53ea0dd3db811c0e51568c81cc6c117012030101d29003d0725c crypto/rsa/rsa_backend.c 38a102cd1da1f6ca5a46e6a22f018237964336274385f5c70cbedcaa6997647e crypto/rsa/rsa_chk.c e32cfa04221a2a3ea33f7bcb93ee51b84cbeba97e94c1fbf6e420b24f97fc9ce crypto/rsa/rsa_crpt.c e995da1c2e5007bd7f5907f369fe45ed15f4e657143a85078c755bd5e6863d0b crypto/rsa/rsa_gen.c -74ed75d1d8e0844800504a137bfd81c3dbcb6c4bd58b5d5fe9d0a362092b6e88 crypto/rsa/rsa_lib.c +f2222f270e57559537d3da8abbeb1390bc5376b73dae59d536af6e73eb48bba0 crypto/rsa/rsa_lib.c a65e85be5269d8cb88e86b3413c978fa8994419a671092cbf104ff1a08fda23b crypto/rsa/rsa_local.h cf0b75cd54b61b9b9a290ef18d0ddce9fb26a029a54eb3f720d9b25188440f00 crypto/rsa/rsa_mp_names.c 5c60f6e05db82e13178d805deb1947b8eee4a905e6e77523d3b288da70a46bb5 crypto/rsa/rsa_none.c @@ -344,7 +344,7 @@ c50c584c55e56347bb43aca4b796b5344d70daece3061f586b79c871c21f5d1a crypto/sparse_ 8da78169fa8c09dc3c29c9bf1602b22e88c5eac4815e274ba1864c166e31584b crypto/stack/stack.c 7b4efa594d8d1f3ecbf4605cf54f72fb296a3b1d951bdc69e415aaa08f34e5c8 crypto/threads_lib.c a41ae93a755e2ec89b3cb5b4932e2b508fdda92ace2e025a2650a6da0e9e972c crypto/threads_none.c -2637a8727dee790812b000f2e02b336f7907949df633dda72938bbaafdb204fe crypto/threads_pthread.c +3729e2bd36f945808b578e0d89fac0fcb3114e4fc9381614bcbd8a9869991716 crypto/threads_pthread.c 88423960f0414f6fd41fba4f4c67f9f7260c2741e4788adcd52493e895ec8027 crypto/threads_win.c fd6c27cf7c6b5449b17f2b725f4203c4c10207f1973db09fd41571efe5de08fd crypto/x86_64cpuid.pl bbec287bb9bf35379885f8f8998b7fd9e8fc22efee9e1b299109af0f33a7ee16 crypto/x86cpuid.pl @@ -430,7 +430,7 @@ bc9ec2be442a4f49980ba2c63c8f0da701de1f6e23d7db35d781658f833dd7b9 include/openss 61c76ee3f12ed0e42503a56421ca00f1cb9a0f4caa5f9c4421c374bcd45917d7 include/openssl/encoder.h 69dd983f45b8ccd551f084796519446552963a18c52b70470d978b597c81b2dc include/openssl/encodererr.h c6ee8f17d7252bdd0807a124dc6d50a95c32c04e17688b7c2e061998570b7028 include/openssl/err.h.in -12ec111c0e22581e0169be5e1838353a085fb51e3042ef59a7db1cee7da73c5b include/openssl/evp.h +b23bf3e2d0a60fe4d768afbe7aab48b47791e1274ae42b28895255119ae7f61d include/openssl/evp.h 5bd1b5dcd14067a1fe490d49df911002793c0b4f0bd4492cd8f71cfed7bf9f2a include/openssl/evperr.h 5381d96fe867a4ee0ebc09b9e3a262a0d7a27edc5f91dccfb010c7d713cd0820 include/openssl/fips_names.h b1d41beba560a41383f899a361b786e04f889106fb5960ec831b0af7996c9783 include/openssl/fipskey.h.in @@ -567,18 +567,18 @@ abe2b0f3711eaa34846e155cffc9242e4051c45de896f747afd5ac9d87f637dc providers/impl 589f6133799da80760e8bc3ab0191a341ab6d4d2706e92e6eb4a24b0250fefa6 providers/implementations/kdfs/tls1_prf.c 4d4a6d9a562d2dcfec941d3f113a544663b5ac2fbe4accd89ec70c1cc11751d0 providers/implementations/kdfs/x942kdf.c 6b6c776b12664164f3cb54c21df61e1c4477c7855d89431a16fb338cdae58d43 providers/implementations/kem/rsa_kem.c -37120f8a420de0e44b7dc1f31b50d59520e5318cf546e83684e0c3de5c7b76c5 providers/implementations/keymgmt/dh_kmgmt.c -2a4493c9e68f41d37d7ec69c272005c6df7b1a34db2d49663f52e836e4fd888c providers/implementations/keymgmt/dsa_kmgmt.c +11a0d0fb88ed88e965f10b3a0ef6c880f60341df995128f57ad943053aaf15b2 providers/implementations/keymgmt/dh_kmgmt.c +a329f57cb041cd03907e9d996fbc2f378ee116c7f8d7fbf1ea08b7a5df7e0304 providers/implementations/keymgmt/dsa_kmgmt.c 9bc88451d3ae110c7a108ee73d3b3b6bda801ec3494d2dfb9c9970b85c2d34fe providers/implementations/keymgmt/ec_kmgmt.c 258ae17bb2dd87ed1511a8eb3fe99eed9b77f5c2f757215ff6b3d0e8791fc251 providers/implementations/keymgmt/ec_kmgmt_imexport.inc -d77ece2494e6b12a6201a2806ee5fb24a6dc2fa3e1891a46012a870e0b781ab1 providers/implementations/keymgmt/ecx_kmgmt.c +011c36aad6834729043f23eacab417732541ee23916d9afa5bb9164862be00bb providers/implementations/keymgmt/ecx_kmgmt.c 053a2be39a87f50b877ebdbbf799cf5faf8b2de33b04311d819d212ee1ea329b providers/implementations/keymgmt/kdf_legacy_kmgmt.c -e30357311e4a3e1c78266af6315fd1fc99584bfb09f4a7cd0ddc7261cf1e17e1 providers/implementations/keymgmt/mac_legacy_kmgmt.c +1646b477fa231dd0f6c22444c99098f9b447cab0d39ff69b811262469d4dbe09 providers/implementations/keymgmt/mac_legacy_kmgmt.c 19f22fc70a6321441e56d5bd4aab3d01d52d17069d4e4b5cefce0f411ecece75 providers/implementations/keymgmt/rsa_kmgmt.c aeb42590728ca87b916b8a3d337351b1c82ee0747213e5ce740c2350b3db7185 providers/implementations/macs/cmac_prov.c e69aa06f8f3c6f5a26702b9f44a844b8589b99dc0ee590953a29e8b9ef10acbe providers/implementations/macs/gmac_prov.c 895c8dc7235b9ad5ff893be0293cbc245a5455e8850195ac7d446646e4ea71d0 providers/implementations/macs/hmac_prov.c -f75fbfe5348f93ad610da7d310f4e8fecf18c0549f27605da25d393c33e0edc2 providers/implementations/macs/kmac_prov.c +8640b63fd8325aaf8f7128d6cc448d9af448a65bf51a8978075467d33a67944e providers/implementations/macs/kmac_prov.c bf30274dd6b528ae913984775bd8f29c6c48c0ef06d464d0f738217727b7aa5c providers/implementations/rands/crngt.c 9d23df7f99beec7392c9d4ed813407050bc2d150098888fe802e2c9705fc33fa providers/implementations/rands/drbg.c bb5f8161a80d0d1a7ee919af2b167972b00afd62e326252ca6aa93101f315f19 providers/implementations/rands/drbg_ctr.c diff --git a/deps/openssl/openssl/providers/fips.checksum b/deps/openssl/openssl/providers/fips.checksum index ec1978c7fedec1..347a9614339ee8 100644 --- a/deps/openssl/openssl/providers/fips.checksum +++ b/deps/openssl/openssl/providers/fips.checksum @@ -1 +1 @@ -f07990ec634ec6ea3c8c42a664768debcf92a1b0c39bde7041c24df33dd7f052 providers/fips-sources.checksums +114b59f288ec2d6ddfcd26187f43cad614c6d4e4a7aba24410494f46f627671c providers/fips-sources.checksums diff --git a/deps/openssl/openssl/providers/implementations/ciphers/cipher_chacha20.c b/deps/openssl/openssl/providers/implementations/ciphers/cipher_chacha20.c index 386c865d832e0f..ef80a515d756dc 100644 --- a/deps/openssl/openssl/providers/implementations/ciphers/cipher_chacha20.c +++ b/deps/openssl/openssl/providers/implementations/ciphers/cipher_chacha20.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,7 @@ static OSSL_FUNC_cipher_newctx_fn chacha20_newctx; static OSSL_FUNC_cipher_freectx_fn chacha20_freectx; +static OSSL_FUNC_cipher_dupctx_fn chacha20_dupctx; static OSSL_FUNC_cipher_get_params_fn chacha20_get_params; static OSSL_FUNC_cipher_get_ctx_params_fn chacha20_get_ctx_params; static OSSL_FUNC_cipher_set_ctx_params_fn chacha20_set_ctx_params; @@ -64,6 +65,25 @@ static void chacha20_freectx(void *vctx) } } +static void *chacha20_dupctx(void *vctx) +{ + PROV_CHACHA20_CTX *ctx = (PROV_CHACHA20_CTX *)vctx; + PROV_CHACHA20_CTX *dupctx = NULL; + + if (ctx != NULL) { + dupctx = OPENSSL_memdup(ctx, sizeof(*dupctx)); + if (dupctx != NULL && dupctx->base.tlsmac != NULL && dupctx->base.alloced) { + dupctx->base.tlsmac = OPENSSL_memdup(dupctx->base.tlsmac, + dupctx->base.tlsmacsize); + if (dupctx->base.tlsmac == NULL) { + OPENSSL_free(dupctx); + dupctx = NULL; + } + } + } + return dupctx; +} + static int chacha20_get_params(OSSL_PARAM params[]) { return ossl_cipher_generic_get_params(params, 0, CHACHA20_FLAGS, @@ -187,6 +207,7 @@ int ossl_chacha20_dinit(void *vctx, const unsigned char *key, size_t keylen, const OSSL_DISPATCH ossl_chacha20_functions[] = { { OSSL_FUNC_CIPHER_NEWCTX, (void (*)(void))chacha20_newctx }, { OSSL_FUNC_CIPHER_FREECTX, (void (*)(void))chacha20_freectx }, + { OSSL_FUNC_CIPHER_DUPCTX, (void (*)(void))chacha20_dupctx }, { OSSL_FUNC_CIPHER_ENCRYPT_INIT, (void (*)(void))ossl_chacha20_einit }, { OSSL_FUNC_CIPHER_DECRYPT_INIT, (void (*)(void))ossl_chacha20_dinit }, { OSSL_FUNC_CIPHER_UPDATE, (void (*)(void))chacha20_update }, diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/decode_der2key.c b/deps/openssl/openssl/providers/implementations/encode_decode/decode_der2key.c index b9cee2571bf392..d598f7eba1acc9 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/decode_der2key.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/decode_der2key.c @@ -316,10 +316,14 @@ static int der2key_export_object(void *vctx, void *keydata; if (reference_sz == sizeof(keydata) && export != NULL) { + int selection = ctx->selection; + + if (selection == 0) + selection = OSSL_KEYMGMT_SELECT_ALL; /* The contents of the reference is the address to our object */ keydata = *(void **)reference; - return export(keydata, ctx->selection, export_cb, export_cbarg); + return export(keydata, selection, export_cb, export_cbarg); } return 0; } diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/decode_msblob2key.c b/deps/openssl/openssl/providers/implementations/encode_decode/decode_msblob2key.c index 501957faba0117..b9d0cabadae2e4 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/decode_msblob2key.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/decode_msblob2key.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -79,6 +79,18 @@ static void msblob2key_freectx(void *vctx) OPENSSL_free(ctx); } +static int msblob2key_does_selection(void *provctx, int selection) +{ + if (selection == 0) + return 1; + + if ((selection & (OSSL_KEYMGMT_SELECT_PRIVATE_KEY + | OSSL_KEYMGMT_SELECT_PUBLIC_KEY)) != 0) + return 1; + + return 0; +} + static int msblob2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection, OSSL_CALLBACK *data_cb, void *data_cbarg, OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg) @@ -211,10 +223,14 @@ msblob2key_export_object(void *vctx, void *keydata; if (reference_sz == sizeof(keydata) && export != NULL) { + int selection = ctx->selection; + + if (selection == 0) + selection = OSSL_KEYMGMT_SELECT_ALL; /* The contents of the reference is the address to our object */ keydata = *(void **)reference; - return export(keydata, ctx->selection, export_cb, export_cbarg); + return export(keydata, selection, export_cb, export_cbarg); } return 0; } @@ -260,6 +276,8 @@ static void rsa_adjust(void *key, struct msblob2key_ctx_st *ctx) (void (*)(void))msblob2##keytype##_newctx }, \ { OSSL_FUNC_DECODER_FREECTX, \ (void (*)(void))msblob2key_freectx }, \ + { OSSL_FUNC_DECODER_DOES_SELECTION, \ + (void (*)(void))msblob2key_does_selection }, \ { OSSL_FUNC_DECODER_DECODE, \ (void (*)(void))msblob2key_decode }, \ { OSSL_FUNC_DECODER_EXPORT_OBJECT, \ diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/decode_pvk2key.c b/deps/openssl/openssl/providers/implementations/encode_decode/decode_pvk2key.c index c6424165b03bf7..2d7cb15e53e0ae 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/decode_pvk2key.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/decode_pvk2key.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -79,6 +79,17 @@ static void pvk2key_freectx(void *vctx) OPENSSL_free(ctx); } +static int pvk2key_does_selection(void *provctx, int selection) +{ + if (selection == 0) + return 1; + + if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) + return 1; + + return 0; +} + static int pvk2key_decode(void *vctx, OSSL_CORE_BIO *cin, int selection, OSSL_CALLBACK *data_cb, void *data_cbarg, OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg) @@ -179,10 +190,14 @@ static int pvk2key_export_object(void *vctx, void *keydata; if (reference_sz == sizeof(keydata) && export != NULL) { + int selection = ctx->selection; + + if (selection == 0) + selection = OSSL_KEYMGMT_SELECT_ALL; /* The contents of the reference is the address to our object */ keydata = *(void **)reference; - return export(keydata, ctx->selection, export_cb, export_cbarg); + return export(keydata, selection, export_cb, export_cbarg); } return 0; } @@ -226,6 +241,8 @@ static void rsa_adjust(void *key, struct pvk2key_ctx_st *ctx) (void (*)(void))pvk2##keytype##_newctx }, \ { OSSL_FUNC_DECODER_FREECTX, \ (void (*)(void))pvk2key_freectx }, \ + { OSSL_FUNC_DECODER_DOES_SELECTION, \ + (void (*)(void))pvk2key_does_selection }, \ { OSSL_FUNC_DECODER_DECODE, \ (void (*)(void))pvk2key_decode }, \ { OSSL_FUNC_DECODER_EXPORT_OBJECT, \ diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2any.c b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2any.c index c7b01cb2b3e5ef..0f4c62962ddcd4 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2any.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2any.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -858,14 +858,17 @@ static int prepare_rsa_params(const void *rsa, int nid, int save, case 1: if ((str = OPENSSL_malloc(str_sz)) == NULL || !WPACKET_init_der(&pkt, str, str_sz)) { + WPACKET_cleanup(&pkt); goto err; } break; } if (!ossl_DER_w_RSASSA_PSS_params(&pkt, -1, pss) || !WPACKET_finish(&pkt) - || !WPACKET_get_total_written(&pkt, &str_sz)) + || !WPACKET_get_total_written(&pkt, &str_sz)) { + WPACKET_cleanup(&pkt); goto err; + } WPACKET_cleanup(&pkt); /* diff --git a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c index 7d983f5e51c6df..3e75a9afb370c6 100644 --- a/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c +++ b/deps/openssl/openssl/providers/implementations/encode_decode/encode_key2text.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -241,7 +241,7 @@ static int dh_to_text(BIO *out, const void *key, int selection) return 0; } } - if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0) { + if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0) { pub_key = DH_get0_pub_key(dh); if (pub_key == NULL) { ERR_raise(ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY); @@ -316,7 +316,7 @@ static int dsa_to_text(BIO *out, const void *key, int selection) return 0; } } - if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0) { + if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0) { pub_key = DSA_get0_pub_key(dsa); if (pub_key == NULL) { ERR_raise(ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY); @@ -525,7 +525,7 @@ static int ec_to_text(BIO *out, const void *key, int selection) if (priv_len == 0) goto err; } - if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0) { + if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0) { const EC_POINT *pub_pt = EC_KEY_get0_public_key(ec); if (pub_pt == NULL) { @@ -575,26 +575,31 @@ static int ecx_to_text(BIO *out, const void *key, int selection) return 0; } + switch (ecx->type) { + case ECX_KEY_TYPE_X25519: + type_label = "X25519"; + break; + case ECX_KEY_TYPE_X448: + type_label = "X448"; + break; + case ECX_KEY_TYPE_ED25519: + type_label = "ED25519"; + break; + case ECX_KEY_TYPE_ED448: + type_label = "ED448"; + break; + } + if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0) { if (ecx->privkey == NULL) { ERR_raise(ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY); return 0; } - switch (ecx->type) { - case ECX_KEY_TYPE_X25519: - type_label = "X25519 Private-Key"; - break; - case ECX_KEY_TYPE_X448: - type_label = "X448 Private-Key"; - break; - case ECX_KEY_TYPE_ED25519: - type_label = "ED25519 Private-Key"; - break; - case ECX_KEY_TYPE_ED448: - type_label = "ED448 Private-Key"; - break; - } + if (BIO_printf(out, "%s Private-Key:\n", type_label) <= 0) + return 0; + if (!print_labeled_buf(out, "priv:", ecx->privkey, ecx->keylen)) + return 0; } else if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0) { /* ecx->pubkey is an array, not a pointer... */ if (!ecx->haspubkey) { @@ -602,29 +607,11 @@ static int ecx_to_text(BIO *out, const void *key, int selection) return 0; } - switch (ecx->type) { - case ECX_KEY_TYPE_X25519: - type_label = "X25519 Public-Key"; - break; - case ECX_KEY_TYPE_X448: - type_label = "X448 Public-Key"; - break; - case ECX_KEY_TYPE_ED25519: - type_label = "ED25519 Public-Key"; - break; - case ECX_KEY_TYPE_ED448: - type_label = "ED448 Public-Key"; - break; - } + if (BIO_printf(out, "%s Public-Key:\n", type_label) <= 0) + return 0; } - if (BIO_printf(out, "%s:\n", type_label) <= 0) - return 0; - if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) != 0 - && !print_labeled_buf(out, "priv:", ecx->privkey, ecx->keylen)) - return 0; - if ((selection & OSSL_KEYMGMT_SELECT_PUBLIC_KEY) != 0 - && !print_labeled_buf(out, "pub:", ecx->pubkey, ecx->keylen)) + if (!print_labeled_buf(out, "pub:", ecx->pubkey, ecx->keylen)) return 0; return 1; diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/dh_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/dh_kmgmt.c index 9a7dde7c66273b..c14b9765d11b30 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/dh_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/dh_kmgmt.c @@ -222,6 +222,9 @@ static int dh_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (!ossl_prov_is_running() || dh == NULL) return 0; + if ((selection & DH_POSSIBLE_SELECTIONS) == 0) + return 0; + tmpl = OSSL_PARAM_BLD_new(); if (tmpl == NULL) return 0; @@ -389,7 +392,7 @@ static int dh_validate_public(const DH *dh, int checktype) && ossl_dh_is_named_safe_prime_group(dh)) return ossl_dh_check_pub_key_partial(dh, pub_key, &res); - return DH_check_pub_key(dh, pub_key, &res); + return DH_check_pub_key_ex(dh, pub_key); } static int dh_validate_private(const DH *dh) diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c index cd8b4410b0db63..2f5742cfcc07ce 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/dsa_kmgmt.c @@ -223,6 +223,9 @@ static int dsa_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (!ossl_prov_is_running() || dsa == NULL) return 0; + if ((selection & DSA_POSSIBLE_SELECTIONS) == 0) + return 0; + tmpl = OSSL_PARAM_BLD_new(); if (tmpl == NULL) return 0; diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c index 2a7f867aa56b3b..987d38456fba41 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/ecx_kmgmt.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -238,6 +238,9 @@ static int ecx_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (!ossl_prov_is_running() || key == NULL) return 0; + if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) == 0) + return 0; + tmpl = OSSL_PARAM_BLD_new(); if (tmpl == NULL) return 0; diff --git a/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c b/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c index c934ff16409415..1fae4407fca609 100644 --- a/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c +++ b/deps/openssl/openssl/providers/implementations/keymgmt/mac_legacy_kmgmt.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -281,6 +281,9 @@ static int mac_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (!ossl_prov_is_running() || key == NULL) return 0; + if ((selection & OSSL_KEYMGMT_SELECT_PRIVATE_KEY) == 0) + return 0; + tmpl = OSSL_PARAM_BLD_new(); if (tmpl == NULL) return 0; diff --git a/deps/openssl/openssl/providers/implementations/macs/kmac_prov.c b/deps/openssl/openssl/providers/implementations/macs/kmac_prov.c index b2f85398b4e284..99e7c60a74ce50 100644 --- a/deps/openssl/openssl/providers/implementations/macs/kmac_prov.c +++ b/deps/openssl/openssl/providers/implementations/macs/kmac_prov.c @@ -1,5 +1,5 @@ /* - * Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2018-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -249,7 +249,7 @@ static int kmac_setkey(struct kmac_data_st *kctx, const unsigned char *key, ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH); return 0; } - if (w < 0) { + if (w <= 0) { ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH); return 0; } @@ -289,7 +289,7 @@ static int kmac_init(void *vmacctx, const unsigned char *key, return 0; t = EVP_MD_get_block_size(ossl_prov_digest_md(&kctx->digest)); - if (t < 0) { + if (t <= 0) { ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH); return 0; } diff --git a/deps/openssl/openssl/ssl/ssl_lib.c b/deps/openssl/openssl/ssl/ssl_lib.c index a00e1fe3621c9c..b0ab5c6ef80042 100644 --- a/deps/openssl/openssl/ssl/ssl_lib.c +++ b/deps/openssl/openssl/ssl/ssl_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -631,7 +631,7 @@ int SSL_clear(SSL *s) OPENSSL_free(s->psksession_id); s->psksession_id = NULL; s->psksession_id_len = 0; - s->hello_retry_request = 0; + s->hello_retry_request = SSL_HRR_NONE; s->sent_tickets = 0; s->error = 0; @@ -2894,14 +2894,14 @@ char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size) if (sk_SSL_CIPHER_find(srvrsk, c) < 0) continue; - n = strlen(c->name); - if (n + 1 > size) { + n = OPENSSL_strnlen(c->name, size); + if (n >= size) { if (p != buf) --p; *p = '\0'; return buf; } - strcpy(p, c->name); + memcpy(p, c->name, n); p += n; *(p++) = ':'; size -= n + 1; diff --git a/deps/openssl/openssl/ssl/ssl_sess.c b/deps/openssl/openssl/ssl/ssl_sess.c index c322a11d9c52a5..d836b33ed0e81d 100644 --- a/deps/openssl/openssl/ssl/ssl_sess.c +++ b/deps/openssl/openssl/ssl/ssl_sess.c @@ -198,8 +198,11 @@ SSL_SESSION *ssl_session_dup(const SSL_SESSION *src, int ticket) dest->references = 1; dest->lock = CRYPTO_THREAD_lock_new(); - if (dest->lock == NULL) + if (dest->lock == NULL) { + OPENSSL_free(dest); + dest = NULL; goto err; + } if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, dest, &dest->ex_data)) goto err; diff --git a/deps/openssl/openssl/ssl/statem/extensions_srvr.c b/deps/openssl/openssl/ssl/statem/extensions_srvr.c index ed53b28aba80ab..0dfbfed9a4af6c 100644 --- a/deps/openssl/openssl/ssl/statem/extensions_srvr.c +++ b/deps/openssl/openssl/ssl/statem/extensions_srvr.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -883,7 +883,7 @@ int tls_parse_ctos_cookie(SSL *s, PACKET *pkt, unsigned int context, X509 *x, } /* Act as if this ClientHello came after a HelloRetryRequest */ - s->hello_retry_request = 1; + s->hello_retry_request = SSL_HRR_PENDING; s->ext.cookieok = 1; #endif diff --git a/deps/openssl/openssl/test/README-dev.md b/deps/openssl/openssl/test/README-dev.md index d015bcf5bfb019..d8922de000800f 100644 --- a/deps/openssl/openssl/test/README-dev.md +++ b/deps/openssl/openssl/test/README-dev.md @@ -130,7 +130,11 @@ Generic form of C test executables int setup_tests(void) { ADD_TEST(my_test); /* Add each test separately */ - return 1; /* Indicate success */ + return 1; /* Indicates success. Return 0 */ + /* to produce an error with a */ + /* usage message and -1 for */ + /* failure to set up with no */ + /* usage message. */ } You should use the `TEST_xxx` macros provided by `testutil.h` to test all failure diff --git a/deps/openssl/openssl/test/chacha_internal_test.c b/deps/openssl/openssl/test/chacha_internal_test.c index 878bd752e054bb..d316bfd7b36170 100644 --- a/deps/openssl/openssl/test/chacha_internal_test.c +++ b/deps/openssl/openssl/test/chacha_internal_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -181,7 +181,7 @@ static int test_cha_cha_internal(int n) int setup_tests(void) { -#ifdef CPUID_OBJ +#ifdef OPENSSL_CPUID_OBJ OPENSSL_cpuid_setup(); #endif diff --git a/deps/openssl/openssl/test/cmp_asn_test.c b/deps/openssl/openssl/test/cmp_asn_test.c index 1e65b383753eab..42a6b93b6b2732 100644 --- a/deps/openssl/openssl/test/cmp_asn_test.c +++ b/deps/openssl/openssl/test/cmp_asn_test.c @@ -42,16 +42,28 @@ static void tear_down(CMP_ASN_TEST_FIXTURE *fixture) static int execute_cmp_asn1_get_int_test(CMP_ASN_TEST_FIXTURE *fixture) { - int res; + int res = 0; ASN1_INTEGER *asn1integer = ASN1_INTEGER_new(); + const int good_int = 77; + const int64_t max_int = INT_MAX; if (!TEST_ptr(asn1integer)) - return 0; - if (!TEST_true(ASN1_INTEGER_set(asn1integer, 77))) { + return res; + + if (!TEST_true(ASN1_INTEGER_set(asn1integer, good_int))) { ASN1_INTEGER_free(asn1integer); return 0; } - res = TEST_int_eq(77, ossl_cmp_asn1_get_int(asn1integer)); + res = TEST_int_eq(good_int, ossl_cmp_asn1_get_int(asn1integer)); + if (res == 0) + goto err; + + res = 0; + if (!TEST_true(ASN1_INTEGER_set_int64(asn1integer, max_int + 1))) + goto err; + res = TEST_int_eq(-2, ossl_cmp_asn1_get_int(asn1integer)); + + err: ASN1_INTEGER_free(asn1integer); return res; } diff --git a/deps/openssl/openssl/test/cmp_protect_test.c b/deps/openssl/openssl/test/cmp_protect_test.c index 32dae32d9398d9..09bf2ec17faffa 100644 --- a/deps/openssl/openssl/test/cmp_protect_test.c +++ b/deps/openssl/openssl/test/cmp_protect_test.c @@ -37,15 +37,17 @@ static OSSL_PROVIDER *default_null_provider = NULL, *provider = NULL; static void tear_down(CMP_PROTECT_TEST_FIXTURE *fixture) { - OSSL_CMP_CTX_free(fixture->cmp_ctx); - OSSL_CMP_MSG_free(fixture->msg); - OSSL_CMP_PKISI_free(fixture->si); + if (fixture != NULL) { + OSSL_CMP_CTX_free(fixture->cmp_ctx); + OSSL_CMP_MSG_free(fixture->msg); + OSSL_CMP_PKISI_free(fixture->si); - OPENSSL_free(fixture->mem); - sk_X509_free(fixture->certs); - sk_X509_free(fixture->chain); + OPENSSL_free(fixture->mem); + sk_X509_free(fixture->certs); + sk_X509_free(fixture->chain); - OPENSSL_free(fixture); + OPENSSL_free(fixture); + } } static CMP_PROTECT_TEST_FIXTURE *set_up(const char *const test_case_name) diff --git a/deps/openssl/openssl/test/cmsapitest.c b/deps/openssl/openssl/test/cmsapitest.c index d5c4cb8481c210..dbb05cd4962269 100644 --- a/deps/openssl/openssl/test/cmsapitest.c +++ b/deps/openssl/openssl/test/cmsapitest.c @@ -1,5 +1,5 @@ /* - * Copyright 2018-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2018-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,7 +56,7 @@ static int test_encrypt_decrypt(const EVP_CIPHER *cipher) BIO_free(outmsgbio); CMS_ContentInfo_free(content); - return testresult; + return testresult && TEST_int_eq(ERR_peek_error(), 0); } static int test_encrypt_decrypt_aes_cbc(void) @@ -286,7 +286,7 @@ static int test_d2i_CMS_bio_NULL(void) CMS_NO_SIGNER_CERT_VERIFY)); CMS_ContentInfo_free(cms); BIO_free(bio); - return ret; + return ret && TEST_int_eq(ERR_peek_error(), 0); } static unsigned char *read_all(BIO *bio, long *p_len) diff --git a/deps/openssl/openssl/test/endecode_test.c b/deps/openssl/openssl/test/endecode_test.c index e3f7b81f693077..5158b39ee41f19 100644 --- a/deps/openssl/openssl/test/endecode_test.c +++ b/deps/openssl/openssl/test/endecode_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -158,6 +158,7 @@ static int test_encode_decode(const char *file, const int line, void *encoded = NULL; long encoded_len = 0; EVP_PKEY *pkey2 = NULL; + EVP_PKEY *pkey3 = NULL; void *encoded2 = NULL; long encoded2_len = 0; int ok = 0; @@ -185,15 +186,25 @@ static int test_encode_decode(const char *file, const int line, output_type, output_structure, (flags & FLAG_DECODE_WITH_TYPE ? type : NULL), selection, pass)) + || ((output_structure == NULL + || strcmp(output_structure, "type-specific") != 0) + && !TEST_true(decode_cb(file, line, (void **)&pkey3, encoded, encoded_len, + output_type, output_structure, + (flags & FLAG_DECODE_WITH_TYPE ? type : NULL), + 0, pass))) || !TEST_true(encode_cb(file, line, &encoded2, &encoded2_len, pkey2, selection, output_type, output_structure, pass, pcipher))) goto end; if (selection == OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS) { - if (!TEST_int_eq(EVP_PKEY_parameters_eq(pkey, pkey2), 1)) + if (!TEST_int_eq(EVP_PKEY_parameters_eq(pkey, pkey2), 1) + || (pkey3 != NULL + && !TEST_int_eq(EVP_PKEY_parameters_eq(pkey, pkey3), 1))) goto end; } else { - if (!TEST_int_eq(EVP_PKEY_eq(pkey, pkey2), 1)) + if (!TEST_int_eq(EVP_PKEY_eq(pkey, pkey2), 1) + || (pkey3 != NULL + && !TEST_int_eq(EVP_PKEY_eq(pkey, pkey3), 1))) goto end; } @@ -218,6 +229,7 @@ static int test_encode_decode(const char *file, const int line, OPENSSL_free(encoded); OPENSSL_free(encoded2); EVP_PKEY_free(pkey2); + EVP_PKEY_free(pkey3); return ok; } diff --git a/deps/openssl/openssl/test/evp_extra_test.c b/deps/openssl/openssl/test/evp_extra_test.c index a6667105dcdcda..2318bf6a68c9fe 100644 --- a/deps/openssl/openssl/test/evp_extra_test.c +++ b/deps/openssl/openssl/test/evp_extra_test.c @@ -1133,11 +1133,11 @@ static int test_EVP_PKEY_sign(int tst) if (tst == 0 ) { if (!TEST_ptr(pkey = load_example_rsa_key())) - goto out; + goto out; } else if (tst == 1) { #ifndef OPENSSL_NO_DSA if (!TEST_ptr(pkey = load_example_dsa_key())) - goto out; + goto out; #else ret = 1; goto out; @@ -1145,7 +1145,82 @@ static int test_EVP_PKEY_sign(int tst) } else { #ifndef OPENSSL_NO_EC if (!TEST_ptr(pkey = load_example_ec_key())) + goto out; +#else + ret = 1; + goto out; +#endif + } + + ctx = EVP_PKEY_CTX_new_from_pkey(testctx, pkey, NULL); + if (!TEST_ptr(ctx) + || !TEST_int_gt(EVP_PKEY_sign_init(ctx), 0) + || !TEST_int_gt(EVP_PKEY_sign(ctx, NULL, &sig_len, tbs, + sizeof(tbs)), 0)) + goto out; + sig = OPENSSL_malloc(sig_len); + if (!TEST_ptr(sig) + /* Test sending a signature buffer that is too short is rejected */ + || !TEST_int_le(EVP_PKEY_sign(ctx, sig, &shortsig_len, tbs, + sizeof(tbs)), 0) + || !TEST_int_gt(EVP_PKEY_sign(ctx, sig, &sig_len, tbs, sizeof(tbs)), + 0) + /* Test the signature round-trips */ + || !TEST_int_gt(EVP_PKEY_verify_init(ctx), 0) + || !TEST_int_gt(EVP_PKEY_verify(ctx, sig, sig_len, tbs, sizeof(tbs)), + 0)) + goto out; + + ret = 1; + out: + EVP_PKEY_CTX_free(ctx); + OPENSSL_free(sig); + EVP_PKEY_free(pkey); + return ret; +} + +#ifndef OPENSSL_NO_DEPRECATED_3_0 +static int test_EVP_PKEY_sign_with_app_method(int tst) +{ + int ret = 0; + EVP_PKEY *pkey = NULL; + RSA *rsa = NULL; + RSA_METHOD *rsa_meth = NULL; +#ifndef OPENSSL_NO_DSA + DSA *dsa = NULL; + DSA_METHOD *dsa_meth = NULL; +#endif + unsigned char *sig = NULL; + size_t sig_len = 0, shortsig_len = 1; + EVP_PKEY_CTX *ctx = NULL; + unsigned char tbs[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13 + }; + + if (tst == 0) { + if (!TEST_ptr(pkey = load_example_rsa_key())) + goto out; + if (!TEST_ptr(rsa_meth = RSA_meth_dup(RSA_get_default_method()))) + goto out; + + if (!TEST_ptr(rsa = EVP_PKEY_get1_RSA(pkey)) + || !TEST_int_gt(RSA_set_method(rsa, rsa_meth), 0) + || !TEST_int_gt(EVP_PKEY_assign_RSA(pkey, rsa), 0)) + goto out; + rsa = NULL; /* now owned by the pkey */ + } else { +#ifndef OPENSSL_NO_DSA + if (!TEST_ptr(pkey = load_example_dsa_key())) goto out; + if (!TEST_ptr(dsa_meth = DSA_meth_dup(DSA_get_default_method()))) + goto out; + + if (!TEST_ptr(dsa = EVP_PKEY_get1_DSA(pkey)) + || !TEST_int_gt(DSA_set_method(dsa, dsa_meth), 0) + || !TEST_int_gt(EVP_PKEY_assign_DSA(pkey, dsa), 0)) + goto out; + dsa = NULL; /* now owned by the pkey */ #else ret = 1; goto out; @@ -1176,8 +1251,15 @@ static int test_EVP_PKEY_sign(int tst) EVP_PKEY_CTX_free(ctx); OPENSSL_free(sig); EVP_PKEY_free(pkey); + RSA_free(rsa); + RSA_meth_free(rsa_meth); +#ifndef OPENSSL_NO_DSA + DSA_free(dsa); + DSA_meth_free(dsa_meth); +#endif return ret; } +#endif /* !OPENSSL_NO_DEPRECATED_3_0 */ /* * n = 0 => test using legacy cipher @@ -2830,6 +2912,36 @@ static int test_RSA_OAEP_set_get_params(void) return ret; } +/* https://github.com/openssl/openssl/issues/21288 */ +static int test_RSA_OAEP_set_null_label(void) +{ + int ret = 0; + EVP_PKEY *key = NULL; + EVP_PKEY_CTX *key_ctx = NULL; + + if (!TEST_ptr(key = load_example_rsa_key()) + || !TEST_ptr(key_ctx = EVP_PKEY_CTX_new_from_pkey(testctx, key, NULL)) + || !TEST_true(EVP_PKEY_encrypt_init(key_ctx))) + goto err; + + if (!TEST_true(EVP_PKEY_CTX_set_rsa_padding(key_ctx, RSA_PKCS1_OAEP_PADDING))) + goto err; + + if (!TEST_true(EVP_PKEY_CTX_set0_rsa_oaep_label(key_ctx, OPENSSL_strdup("foo"), 0))) + goto err; + + if (!TEST_true(EVP_PKEY_CTX_set0_rsa_oaep_label(key_ctx, NULL, 0))) + goto err; + + ret = 1; + + err: + EVP_PKEY_free(key); + EVP_PKEY_CTX_free(key_ctx); + + return ret; +} + #if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) static int test_decrypt_null_chunks(void) { @@ -4739,6 +4851,253 @@ static int test_ecx_not_private_key(int tst) } #endif /* OPENSSL_NO_EC */ +static int aes_gcm_encrypt(const unsigned char *gcm_key, size_t gcm_key_s, + const unsigned char *gcm_iv, size_t gcm_ivlen, + const unsigned char *gcm_pt, size_t gcm_pt_s, + const unsigned char *gcm_aad, size_t gcm_aad_s, + const unsigned char *gcm_ct, size_t gcm_ct_s, + const unsigned char *gcm_tag, size_t gcm_tag_s) +{ + int ret = 0; + EVP_CIPHER_CTX *ctx; + EVP_CIPHER *cipher = NULL; + int outlen, tmplen; + unsigned char outbuf[1024]; + unsigned char outtag[16]; + OSSL_PARAM params[2] = { + OSSL_PARAM_END, OSSL_PARAM_END + }; + + if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new()) + || !TEST_ptr(cipher = EVP_CIPHER_fetch(testctx, "AES-256-GCM", ""))) + goto err; + + params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_AEAD_IVLEN, + &gcm_ivlen); + + if (!TEST_true(EVP_EncryptInit_ex2(ctx, cipher, gcm_key, gcm_iv, params)) + || (gcm_aad != NULL + && !TEST_true(EVP_EncryptUpdate(ctx, NULL, &outlen, + gcm_aad, gcm_aad_s))) + || !TEST_true(EVP_EncryptUpdate(ctx, outbuf, &outlen, + gcm_pt, gcm_pt_s)) + || !TEST_true(EVP_EncryptFinal_ex(ctx, outbuf, &tmplen))) + goto err; + + params[0] = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG, + outtag, sizeof(outtag)); + + if (!TEST_true(EVP_CIPHER_CTX_get_params(ctx, params)) + || !TEST_mem_eq(outbuf, outlen, gcm_ct, gcm_ct_s) + || !TEST_mem_eq(outtag, gcm_tag_s, gcm_tag, gcm_tag_s)) + goto err; + + ret = 1; +err: + EVP_CIPHER_free(cipher); + EVP_CIPHER_CTX_free(ctx); + + return ret; +} + +static int aes_gcm_decrypt(const unsigned char *gcm_key, size_t gcm_key_s, + const unsigned char *gcm_iv, size_t gcm_ivlen, + const unsigned char *gcm_pt, size_t gcm_pt_s, + const unsigned char *gcm_aad, size_t gcm_aad_s, + const unsigned char *gcm_ct, size_t gcm_ct_s, + const unsigned char *gcm_tag, size_t gcm_tag_s) +{ + int ret = 0; + EVP_CIPHER_CTX *ctx; + EVP_CIPHER *cipher = NULL; + int outlen; + unsigned char outbuf[1024]; + OSSL_PARAM params[2] = { + OSSL_PARAM_END, OSSL_PARAM_END + }; + + if ((ctx = EVP_CIPHER_CTX_new()) == NULL) + goto err; + + if ((cipher = EVP_CIPHER_fetch(testctx, "AES-256-GCM", "")) == NULL) + goto err; + + params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_AEAD_IVLEN, + &gcm_ivlen); + + if (!TEST_true(EVP_DecryptInit_ex2(ctx, cipher, gcm_key, gcm_iv, params)) + || (gcm_aad != NULL + && !TEST_true(EVP_DecryptUpdate(ctx, NULL, &outlen, + gcm_aad, gcm_aad_s))) + || !TEST_true(EVP_DecryptUpdate(ctx, outbuf, &outlen, + gcm_ct, gcm_ct_s)) + || !TEST_mem_eq(outbuf, outlen, gcm_pt, gcm_pt_s)) + goto err; + + params[0] = OSSL_PARAM_construct_octet_string(OSSL_CIPHER_PARAM_AEAD_TAG, + (void*)gcm_tag, gcm_tag_s); + + if (!TEST_true(EVP_CIPHER_CTX_set_params(ctx, params)) + ||!TEST_true(EVP_DecryptFinal_ex(ctx, outbuf, &outlen))) + goto err; + + ret = 1; +err: + EVP_CIPHER_free(cipher); + EVP_CIPHER_CTX_free(ctx); + + return ret; +} + +static int test_aes_gcm_ivlen_change_cve_2023_5363(void) +{ + /* AES-GCM test data obtained from NIST public test vectors */ + static const unsigned char gcm_key[] = { + 0xd0, 0xc2, 0x67, 0xc1, 0x9f, 0x30, 0xd8, 0x0b, 0x89, 0x14, 0xbb, 0xbf, + 0xb7, 0x2f, 0x73, 0xb8, 0xd3, 0xcd, 0x5f, 0x6a, 0x78, 0x70, 0x15, 0x84, + 0x8a, 0x7b, 0x30, 0xe3, 0x8f, 0x16, 0xf1, 0x8b, + }; + static const unsigned char gcm_iv[] = { + 0xb6, 0xdc, 0xda, 0x95, 0xac, 0x99, 0x77, 0x76, 0x25, 0xae, 0x87, 0xf8, + 0xa3, 0xa9, 0xdd, 0x64, 0xd7, 0x9b, 0xbd, 0x5f, 0x4a, 0x0e, 0x54, 0xca, + 0x1a, 0x9f, 0xa2, 0xe3, 0xf4, 0x5f, 0x5f, 0xc2, 0xce, 0xa7, 0xb6, 0x14, + 0x12, 0x6f, 0xf0, 0xaf, 0xfd, 0x3e, 0x17, 0x35, 0x6e, 0xa0, 0x16, 0x09, + 0xdd, 0xa1, 0x3f, 0xd8, 0xdd, 0xf3, 0xdf, 0x4f, 0xcb, 0x18, 0x49, 0xb8, + 0xb3, 0x69, 0x2c, 0x5d, 0x4f, 0xad, 0x30, 0x91, 0x08, 0xbc, 0xbe, 0x24, + 0x01, 0x0f, 0xbe, 0x9c, 0xfb, 0x4f, 0x5d, 0x19, 0x7f, 0x4c, 0x53, 0xb0, + 0x95, 0x90, 0xac, 0x7b, 0x1f, 0x7b, 0xa0, 0x99, 0xe1, 0xf3, 0x48, 0x54, + 0xd0, 0xfc, 0xa9, 0xcc, 0x91, 0xf8, 0x1f, 0x9b, 0x6c, 0x9a, 0xe0, 0xdc, + 0x63, 0xea, 0x7d, 0x2a, 0x4a, 0x7d, 0xa5, 0xed, 0x68, 0x57, 0x27, 0x6b, + 0x68, 0xe0, 0xf2, 0xb8, 0x51, 0x50, 0x8d, 0x3d, + }; + static const unsigned char gcm_pt[] = { + 0xb8, 0xb6, 0x88, 0x36, 0x44, 0xe2, 0x34, 0xdf, 0x24, 0x32, 0x91, 0x07, + 0x4f, 0xe3, 0x6f, 0x81, + }; + static const unsigned char gcm_ct[] = { + 0xff, 0x4f, 0xb3, 0xf3, 0xf9, 0xa2, 0x51, 0xd4, 0x82, 0xc2, 0xbe, 0xf3, + 0xe2, 0xd0, 0xec, 0xed, + }; + static const unsigned char gcm_tag[] = { + 0xbd, 0x06, 0x38, 0x09, 0xf7, 0xe1, 0xc4, 0x72, 0x0e, 0xf2, 0xea, 0x63, + 0xdb, 0x99, 0x6c, 0x21, + }; + + return aes_gcm_encrypt(gcm_key, sizeof(gcm_key), gcm_iv, sizeof(gcm_iv), + gcm_pt, sizeof(gcm_pt), NULL, 0, + gcm_ct, sizeof(gcm_ct), gcm_tag, sizeof(gcm_tag)) + && aes_gcm_decrypt(gcm_key, sizeof(gcm_key), gcm_iv, sizeof(gcm_iv), + gcm_pt, sizeof(gcm_pt), NULL, 0, + gcm_ct, sizeof(gcm_ct), gcm_tag, sizeof(gcm_tag)); +} + +#ifndef OPENSSL_NO_RC4 +static int rc4_encrypt(const unsigned char *rc4_key, size_t rc4_key_s, + const unsigned char *rc4_pt, size_t rc4_pt_s, + const unsigned char *rc4_ct, size_t rc4_ct_s) +{ + int ret = 0; + EVP_CIPHER_CTX *ctx; + EVP_CIPHER *cipher = NULL; + int outlen, tmplen; + unsigned char outbuf[1024]; + OSSL_PARAM params[2] = { + OSSL_PARAM_END, OSSL_PARAM_END + }; + + if (!TEST_ptr(ctx = EVP_CIPHER_CTX_new()) + || !TEST_ptr(cipher = EVP_CIPHER_fetch(testctx, "RC4", ""))) + goto err; + + params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_KEYLEN, + &rc4_key_s); + + if (!TEST_true(EVP_EncryptInit_ex2(ctx, cipher, rc4_key, NULL, params)) + || !TEST_true(EVP_EncryptUpdate(ctx, outbuf, &outlen, + rc4_pt, rc4_pt_s)) + || !TEST_true(EVP_EncryptFinal_ex(ctx, outbuf, &tmplen))) + goto err; + + if (!TEST_mem_eq(outbuf, outlen, rc4_ct, rc4_ct_s)) + goto err; + + ret = 1; +err: + EVP_CIPHER_free(cipher); + EVP_CIPHER_CTX_free(ctx); + + return ret; +} + +static int rc4_decrypt(const unsigned char *rc4_key, size_t rc4_key_s, + const unsigned char *rc4_pt, size_t rc4_pt_s, + const unsigned char *rc4_ct, size_t rc4_ct_s) +{ + int ret = 0; + EVP_CIPHER_CTX *ctx; + EVP_CIPHER *cipher = NULL; + int outlen; + unsigned char outbuf[1024]; + OSSL_PARAM params[2] = { + OSSL_PARAM_END, OSSL_PARAM_END + }; + + if ((ctx = EVP_CIPHER_CTX_new()) == NULL) + goto err; + + if ((cipher = EVP_CIPHER_fetch(testctx, "RC4", "")) == NULL) + goto err; + + params[0] = OSSL_PARAM_construct_size_t(OSSL_CIPHER_PARAM_KEYLEN, + &rc4_key_s); + + if (!TEST_true(EVP_DecryptInit_ex2(ctx, cipher, rc4_key, NULL, params)) + || !TEST_true(EVP_DecryptUpdate(ctx, outbuf, &outlen, + rc4_ct, rc4_ct_s)) + || !TEST_mem_eq(outbuf, outlen, rc4_pt, rc4_pt_s)) + goto err; + + ret = 1; +err: + EVP_CIPHER_free(cipher); + EVP_CIPHER_CTX_free(ctx); + + return ret; +} + +static int test_aes_rc4_keylen_change_cve_2023_5363(void) +{ + /* RC4 test data obtained from RFC 6229 */ + static const struct { + unsigned char key[5]; + unsigned char padding[11]; + } rc4_key = { + { /* Five bytes of key material */ + 0x83, 0x32, 0x22, 0x77, 0x2a, + }, + { /* Random padding to 16 bytes */ + 0x80, 0xad, 0x97, 0xbd, 0xc9, 0x73, 0xdf, 0x8a, 0xaa, 0x32, 0x91 + } + }; + static const unsigned char rc4_pt[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + static const unsigned char rc4_ct[] = { + 0x80, 0xad, 0x97, 0xbd, 0xc9, 0x73, 0xdf, 0x8a, + 0x2e, 0x87, 0x9e, 0x92, 0xa4, 0x97, 0xef, 0xda + }; + + if (lgcyprov == NULL) + return TEST_skip("Test requires legacy provider to be loaded"); + + return rc4_encrypt(rc4_key.key, sizeof(rc4_key.key), + rc4_pt, sizeof(rc4_pt), rc4_ct, sizeof(rc4_ct)) + && rc4_decrypt(rc4_key.key, sizeof(rc4_key.key), + rc4_pt, sizeof(rc4_pt), rc4_ct, sizeof(rc4_ct)); +} +#endif + int setup_tests(void) { OPTION_CHOICE o; @@ -4771,6 +5130,9 @@ int setup_tests(void) ADD_TEST(test_EVP_Digest); ADD_TEST(test_EVP_md_null); ADD_ALL_TESTS(test_EVP_PKEY_sign, 3); +#ifndef OPENSSL_NO_DEPRECATED_3_0 + ADD_ALL_TESTS(test_EVP_PKEY_sign_with_app_method, 2); +#endif ADD_ALL_TESTS(test_EVP_Enveloped, 2); ADD_ALL_TESTS(test_d2i_AutoPrivateKey, OSSL_NELEM(keydata)); ADD_TEST(test_privatekey_to_pkcs8); @@ -4814,6 +5176,7 @@ int setup_tests(void) #endif ADD_TEST(test_RSA_get_set_params); ADD_TEST(test_RSA_OAEP_set_get_params); + ADD_TEST(test_RSA_OAEP_set_null_label); #if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) ADD_TEST(test_decrypt_null_chunks); #endif @@ -4878,6 +5241,12 @@ int setup_tests(void) ADD_ALL_TESTS(test_ecx_not_private_key, OSSL_NELEM(keys)); #endif + /* Test cases for CVE-2023-5363 */ + ADD_TEST(test_aes_gcm_ivlen_change_cve_2023_5363); +#ifndef OPENSSL_NO_RC4 + ADD_TEST(test_aes_rc4_keylen_change_cve_2023_5363); +#endif + return 1; } diff --git a/deps/openssl/openssl/test/ffc_internal_test.c b/deps/openssl/openssl/test/ffc_internal_test.c index 7f8f44c8a9fdc7..83dec13c8c9b33 100644 --- a/deps/openssl/openssl/test/ffc_internal_test.c +++ b/deps/openssl/openssl/test/ffc_internal_test.c @@ -455,22 +455,20 @@ static int ffc_public_validate_test(void) if (!TEST_true(BN_set_word(pub, 1))) goto err; BN_set_negative(pub, 1); - /* Fail if public key is negative */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if public key is negative */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_SMALL, res)) goto err; if (!TEST_true(BN_set_word(pub, 0))) goto err; - if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_SMALL, res)) - goto err; - /* Fail if public key is zero */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if public key is zero */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_SMALL, res)) goto err; - /* Fail if public key is 1 */ - if (!TEST_false(ossl_ffc_validate_public_key(params, BN_value_one(), &res))) + /* Check must succeed but set res if public key is 1 */ + if (!TEST_true(ossl_ffc_validate_public_key(params, BN_value_one(), &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_SMALL, res)) goto err; @@ -482,24 +480,24 @@ static int ffc_public_validate_test(void) if (!TEST_ptr(BN_copy(pub, params->p))) goto err; - /* Fail if public key = p */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if public key = p */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_LARGE, res)) goto err; if (!TEST_true(BN_sub_word(pub, 1))) goto err; - /* Fail if public key = p - 1 */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if public key = p - 1 */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_TOO_LARGE, res)) goto err; if (!TEST_true(BN_sub_word(pub, 1))) goto err; - /* Fail if public key is not related to p & q */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if public key is not related to p & q */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PUBKEY_INVALID, res)) goto err; @@ -510,14 +508,14 @@ static int ffc_public_validate_test(void) if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; - /* Fail if params is NULL */ - if (!TEST_false(ossl_ffc_validate_public_key(NULL, pub, &res))) + /* Check must succeed but set res if params is NULL */ + if (!TEST_true(ossl_ffc_validate_public_key(NULL, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PASSED_NULL_PARAM, res)) goto err; res = -1; - /* Fail if pubkey is NULL */ - if (!TEST_false(ossl_ffc_validate_public_key(params, NULL, &res))) + /* Check must succeed but set res if pubkey is NULL */ + if (!TEST_true(ossl_ffc_validate_public_key(params, NULL, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PASSED_NULL_PARAM, res)) goto err; @@ -525,8 +523,8 @@ static int ffc_public_validate_test(void) BN_free(params->p); params->p = NULL; - /* Fail if params->p is NULL */ - if (!TEST_false(ossl_ffc_validate_public_key(params, pub, &res))) + /* Check must succeed but set res if params->p is NULL */ + if (!TEST_true(ossl_ffc_validate_public_key(params, pub, &res))) goto err; if (!TEST_int_eq(FFC_ERROR_PASSED_NULL_PARAM, res)) goto err; diff --git a/deps/openssl/openssl/test/pbetest.c b/deps/openssl/openssl/test/pbetest.c index d73ae66fa536af..cfffc2b9323327 100644 --- a/deps/openssl/openssl/test/pbetest.c +++ b/deps/openssl/openssl/test/pbetest.c @@ -1,5 +1,5 @@ /* - * Copyright 2021-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -15,6 +15,8 @@ #include #include #include +#include +#include #if !defined OPENSSL_NO_RC4 && !defined OPENSSL_NO_MD5 \ || !defined OPENSSL_NO_DES && !defined OPENSSL_NO_SHA1 @@ -123,8 +125,27 @@ static int test_pkcs5_pbe_des_sha1(void) } #endif +#ifdef OPENSSL_NO_AUTOLOAD_CONFIG +/* + * For configurations where we are not autoloading configuration, we need + * to access the legacy provider. The easiest way is to load both the + * legacy and default providers directly and unload them on termination. + */ +static OSSL_PROVIDER *legacy, *dflt; +#endif + int setup_tests(void) { +#ifdef OPENSSL_NO_AUTOLOAD_CONFIG + /* Load required providers if not done via configuration */ + legacy = OSSL_PROVIDER_load(NULL, "legacy"); + dflt = OSSL_PROVIDER_load(NULL, "default"); + if (!TEST_ptr(legacy) || !TEST_ptr(dflt)) { + cleanup_tests(); + return -1; + } +#endif + #if !defined OPENSSL_NO_RC4 && !defined OPENSSL_NO_MD5 ADD_TEST(test_pkcs5_pbe_rc4_md5); #endif @@ -134,3 +155,13 @@ int setup_tests(void) return 1; } + +#ifdef OPENSSL_NO_AUTOLOAD_CONFIG +void cleanup_tests(void) +{ + /* Dispose of providers */ + OSSL_PROVIDER_unload(legacy); + OSSL_PROVIDER_unload(dflt); + legacy = dflt = NULL; +} +#endif diff --git a/deps/openssl/openssl/test/pemtest.c b/deps/openssl/openssl/test/pemtest.c index c8c88bf1f1656f..bf970983654439 100644 --- a/deps/openssl/openssl/test/pemtest.c +++ b/deps/openssl/openssl/test/pemtest.c @@ -125,6 +125,35 @@ static int test_empty_payload(void) return ret; } +static int test_protected_params(void) +{ + BIO *b; + static char *protectedpay = + "-----BEGIN RSA PRIVATE KEY-----\n" + "Proc-Type: 4,ENCRYPTED\n" + "DEK-Info: AES-256-CBC,4A44448ED28992710556549B35100CEA\n" + "\n" + "Xw3INxKeH+rUUF57mjATpvj6zknVhedwrlRmRvnwlLv5wqIy5Ae4UVLPh7SUswfC\n" + "-----END RSA PRIVATE KEY-----\n"; + EVP_PKEY *pkey = NULL; + int ret = 0; + + b = BIO_new_mem_buf(protectedpay, strlen(protectedpay)); + if (!TEST_ptr(b)) + return 0; + + /* Expected to fail because we cannot decrypt protected PEM files */ + pkey = PEM_read_bio_Parameters(b, NULL); + if (!TEST_ptr_null(pkey)) + goto err; + + ret = 1; + err: + EVP_PKEY_free(pkey); + BIO_free(b); + return ret; +} + int setup_tests(void) { if (!TEST_ptr(pemfile = test_get_argument(0))) @@ -133,5 +162,6 @@ int setup_tests(void) ADD_TEST(test_invalid); ADD_TEST(test_cert_key_cert); ADD_TEST(test_empty_payload); + ADD_TEST(test_protected_params); return 1; } diff --git a/deps/openssl/openssl/test/pkcs12_format_test.c b/deps/openssl/openssl/test/pkcs12_format_test.c index d4129d2522bce8..c142093f72bbbc 100644 --- a/deps/openssl/openssl/test/pkcs12_format_test.c +++ b/deps/openssl/openssl/test/pkcs12_format_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -792,6 +792,70 @@ static int pkcs12_create_test(void) } #endif +static int pkcs12_recreate_test(void) +{ + int ret = 0; + X509 *cert = NULL; + X509 *cert_parsed = NULL; + EVP_PKEY *pkey = NULL; + EVP_PKEY *pkey_parsed = NULL; + PKCS12 *p12 = NULL; + PKCS12 *p12_parsed = NULL; + PKCS12 *p12_recreated = NULL; + const unsigned char *cert_bytes = CERT1; + const unsigned char *key_bytes = KEY1; + BIO *bio = NULL; + + cert = d2i_X509(NULL, &cert_bytes, sizeof(CERT1)); + if (!TEST_ptr(cert)) + goto err; + pkey = d2i_AutoPrivateKey(NULL, &key_bytes, sizeof(KEY1)); + if (!TEST_ptr(pkey)) + goto err; + p12 = PKCS12_create("pass", NULL, pkey, cert, NULL, NID_aes_256_cbc, + NID_aes_256_cbc, 2, 1, 0); + if (!TEST_ptr(p12)) + goto err; + if (!TEST_int_eq(ERR_peek_error(), 0)) + goto err; + + bio = BIO_new(BIO_s_mem()); + if (!TEST_ptr(bio)) + goto err; + if (!TEST_int_eq(i2d_PKCS12_bio(bio, p12), 1)) + goto err; + p12_parsed = PKCS12_init_ex(NID_pkcs7_data, testctx, NULL); + if (!TEST_ptr(p12_parsed)) + goto err; + p12_parsed = d2i_PKCS12_bio(bio, &p12_parsed); + if (!TEST_ptr(p12_parsed)) + goto err; + if (!TEST_int_eq(PKCS12_parse(p12_parsed, "pass", &pkey_parsed, + &cert_parsed, NULL), 1)) + goto err; + + /* cert_parsed also contains auxiliary data */ + p12_recreated = PKCS12_create("new_pass", NULL, pkey_parsed, cert_parsed, + NULL, NID_aes_256_cbc, NID_aes_256_cbc, + 2, 1, 0); + if (!TEST_ptr(p12_recreated)) + goto err; + if (!TEST_int_eq(ERR_peek_error(), 0)) + goto err; + + ret = 1; +err: + BIO_free(bio); + PKCS12_free(p12); + PKCS12_free(p12_parsed); + PKCS12_free(p12_recreated); + EVP_PKEY_free(pkey); + EVP_PKEY_free(pkey_parsed); + X509_free(cert); + X509_free(cert_parsed); + return ret; +} + typedef enum OPTION_choice { OPT_ERR = -1, OPT_EOF = 0, @@ -873,6 +937,8 @@ int setup_tests(void) if (default_libctx) ADD_TEST(pkcs12_create_test); #endif + if (default_libctx) + ADD_TEST(pkcs12_recreate_test); ADD_ALL_TESTS(test_single_key_enc_pass, OSSL_NELEM(passwords)); ADD_ALL_TESTS(test_single_key_enc_iter, OSSL_NELEM(iters)); ADD_TEST(test_single_key_with_attrs); diff --git a/deps/openssl/openssl/test/property_test.c b/deps/openssl/openssl/test/property_test.c index 6a405e364baf10..1005b9952c9a6c 100644 --- a/deps/openssl/openssl/test/property_test.c +++ b/deps/openssl/openssl/test/property_test.c @@ -616,6 +616,9 @@ static struct { { "", "" }, { "fips=3", "fips=3" }, { "fips=-3", "fips=-3" }, + { "provider='foo bar'", "provider='foo bar'" }, + { "provider=\"foo bar'\"", "provider=\"foo bar'\"" }, + { "provider=abc***", "provider='abc***'" }, { NULL, "" } }; diff --git a/deps/openssl/openssl/test/provider_internal_test.c b/deps/openssl/openssl/test/provider_internal_test.c index cb7d5efcf54889..1fe8fb0cc5c412 100644 --- a/deps/openssl/openssl/test/provider_internal_test.c +++ b/deps/openssl/openssl/test/provider_internal_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -83,6 +83,7 @@ static int test_loaded_provider(void) && test_provider(prov, expected_greeting1(name)); } +# ifndef OPENSSL_NO_AUTOLOAD_CONFIG static int test_configured_provider(void) { const char *name = "p_test_configured"; @@ -95,6 +96,7 @@ static int test_configured_provider(void) TEST_ptr(prov = ossl_provider_find(NULL, name, 0)) && test_provider(prov, expected_greeting); } +# endif #endif static int test_cache_flushes(void) @@ -139,7 +141,9 @@ int setup_tests(void) ADD_TEST(test_builtin_provider); #ifndef NO_PROVIDER_MODULE ADD_TEST(test_loaded_provider); +# ifndef OPENSSL_NO_AUTOLOAD_CONFIG ADD_TEST(test_configured_provider); +# endif #endif ADD_TEST(test_cache_flushes); return 1; diff --git a/deps/openssl/openssl/test/recipes/05-test_rand.t b/deps/openssl/openssl/test/recipes/05-test_rand.t index 3f352db9df3a6d..aa012c1907adee 100644 --- a/deps/openssl/openssl/test/recipes/05-test_rand.t +++ b/deps/openssl/openssl/test/recipes/05-test_rand.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -29,12 +29,12 @@ SKIP: { @randdata = run(app(['openssl', 'rand', '-engine', 'ossltest', '-hex', '16' ]), capture => 1, statusvar => \$success); chomp(@randdata); - ok($success and $randdata[0] eq $expected, + ok($success && $randdata[0] eq $expected, "rand with ossltest: Check rand output is as expected"); @randdata = run(app(['openssl', 'rand', '-engine', 'dasync', '-hex', '16' ]), capture => 1, statusvar => \$success); chomp(@randdata); - ok($success and length($randdata[0]) == 32, + ok($success && length($randdata[0]) == 32, "rand with dasync: Check rand output is of expected length"); } diff --git a/deps/openssl/openssl/test/recipes/15-test_rsapss.t b/deps/openssl/openssl/test/recipes/15-test_rsapss.t index c566ade933e9d6..44721a32372f78 100644 --- a/deps/openssl/openssl/test/recipes/15-test_rsapss.t +++ b/deps/openssl/openssl/test/recipes/15-test_rsapss.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2017-2022 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -16,7 +16,7 @@ use OpenSSL::Test::Utils; setup("test_rsapss"); -plan tests => 11; +plan tests => 13; #using test/testrsa.pem which happens to be a 512 bit RSA ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha1', @@ -79,6 +79,8 @@ ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), my $rsapss = "rsapss.key"; ok(run(app(['openssl', 'genpkey', '-algorithm', 'RSA-PSS', '-pkeyopt', 'rsa_keygen_bits:1024', + '-pkeyopt', 'rsa_keygen_pubexp:65537', + '-pkeyopt', 'rsa_keygen_primes:2', '--out', $rsapss]))); ok(run(app(['openssl', 'rsa', '-check', '-in', $rsapss]))); @@ -87,3 +89,11 @@ ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), ok(!run(app([ 'openssl', 'rsa', '-in' => data_file('negativesaltlen.pem')], '-out' => 'badout'))); + +ok(run(app(['openssl', 'genpkey', '-algorithm', 'RSA-PSS', '-pkeyopt', 'rsa_keygen_bits:1024', + '-pkeyopt', 'rsa_pss_keygen_md:SHA256', '-pkeyopt', 'rsa_pss_keygen_saltlen:10', + '-out', 'testrsapss.pem'])), + "openssl genpkey RSA-PSS with pss parameters"); +ok(run(app(['openssl', 'pkey', '-in', 'testrsapss.pem', '-pubout', '-text'])), + "openssl pkey, execute rsa_pub_encode with pss parameters"); +unlink 'testrsapss.pem'; diff --git a/deps/openssl/openssl/test/recipes/25-test_req.t b/deps/openssl/openssl/test/recipes/25-test_req.t index e615f1b338855f..8c8274aee699ce 100644 --- a/deps/openssl/openssl/test/recipes/25-test_req.t +++ b/deps/openssl/openssl/test/recipes/25-test_req.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -15,7 +15,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/; setup("test_req"); -plan tests => 44; +plan tests => 46; require_ok(srctop_file('test', 'recipes', 'tconversion.pl')); @@ -473,3 +473,14 @@ my $cert = "self-signed_CA_with_keyUsages.pem"; generate_cert($cert, "-in", srctop_file(@certs, "ext-check.csr"), "-copy_extensions", "copy"); has_keyUsage($cert, 1); + +# Generate cert using req with '-modulus' +ok(run(app(["openssl", "req", "-x509", "-new", "-days", "365", + "-key", srctop_file("test", "testrsa.pem"), + "-config", srctop_file('test', 'test.cnf'), + "-out", "testreq-cert.pem", + "-modulus"])), "cert req creation - with -modulus"); + +# Verify cert +ok(run(app(["openssl", "x509", "-in", "testreq-cert.pem", + "-noout", "-text"])), "cert verification"); diff --git a/deps/openssl/openssl/test/recipes/30-test_defltfips.t b/deps/openssl/openssl/test/recipes/30-test_defltfips.t index 426bd660d1fd61..c8f145405b2b4e 100644 --- a/deps/openssl/openssl/test/recipes/30-test_defltfips.t +++ b/deps/openssl/openssl/test/recipes/30-test_defltfips.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -21,6 +21,9 @@ BEGIN { use lib srctop_dir('Configurations'); use lib bldtop_dir('.'); +plan skip_all => "Configuration loading is turned off" + if disabled("autoload-config"); + my $no_fips = disabled('fips') || ($ENV{NO_FIPS} // 0); plan tests => diff --git a/deps/openssl/openssl/test/recipes/30-test_evp.t b/deps/openssl/openssl/test/recipes/30-test_evp.t index 0a036b7da01826..af823515f9bd64 100644 --- a/deps/openssl/openssl/test/recipes/30-test_evp.t +++ b/deps/openssl/openssl/test/recipes/30-test_evp.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -173,7 +173,8 @@ sub test_errors { # actually tests diagnostics of OSSL_STORE } SKIP: { - skip "DSA not disabled", 2 if !disabled("dsa"); + skip "DSA not disabled or ERR disabled", 2 + if !disabled("dsa") || disabled("err"); ok(test_errors(key => 'server-dsa-key.pem', out => 'server-dsa-key.err'), diff --git a/deps/openssl/openssl/test/recipes/80-test_cms.t b/deps/openssl/openssl/test/recipes/80-test_cms.t index cabbe3ecdf1a5d..be779233130e20 100644 --- a/deps/openssl/openssl/test/recipes/80-test_cms.t +++ b/deps/openssl/openssl/test/recipes/80-test_cms.t @@ -50,7 +50,7 @@ my ($no_des, $no_dh, $no_dsa, $no_ec, $no_ec2m, $no_rc2, $no_zlib) $no_rc2 = 1 if disabled("legacy"); -plan tests => 16; +plan tests => 18; ok(run(test(["pkcs7_test"])), "test pkcs7"); @@ -994,3 +994,28 @@ with({ exit_checker => sub { return shift == 6; } }, ])), "Check failure during BIO setup with -stream is handled correctly"); }); + +# Test case for return value mis-check reported in #21986 +with({ exit_checker => sub { return shift == 3; } }, + sub { + SKIP: { + skip "DSA is not supported in this build", 1 if $no_dsa; + + ok(run(app(['openssl', 'cms', '-sign', + '-in', srctop_file("test", "smcont.txt"), + '-signer', srctop_file("test/smime-certs", "smdsa1.pem"), + '-md', 'SHAKE256'])), + "issue#21986"); + } + }); + +# Test for problem reported in #22225 +with({ exit_checker => sub { return shift == 3; } }, + sub { + ok(run(app(['openssl', 'cms', '-encrypt', + '-in', srctop_file("test", "smcont.txt"), + '-aes-256-ctr', '-recip', + catfile($smdir, "smec1.pem"), + ])), + "Check for failure when cipher does not have an assigned OID (issue#22225)"); + }); diff --git a/deps/openssl/openssl/test/recipes/99-test_fuzz_x509.t b/deps/openssl/openssl/test/recipes/99-test_fuzz_x509.t index 9a1e3a19cadce4..b0b86365d10193 100644 --- a/deps/openssl/openssl/test/recipes/99-test_fuzz_x509.t +++ b/deps/openssl/openssl/test/recipes/99-test_fuzz_x509.t @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -15,6 +15,9 @@ use OpenSSL::Test::Utils; my $fuzzer = "x509"; setup("test_fuzz_${fuzzer}"); +plan skip_all => "This test requires ocsp support" + if disabled("ocsp"); + plan tests => 2; # one more due to below require_ok(...) require_ok(srctop_file('test','recipes','fuzz.pl')); diff --git a/deps/openssl/openssl/test/rsa_test.c b/deps/openssl/openssl/test/rsa_test.c index 62a54df74d89db..18345b431a7cc5 100644 --- a/deps/openssl/openssl/test/rsa_test.c +++ b/deps/openssl/openssl/test/rsa_test.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -391,10 +391,126 @@ static int test_rsa_security_bit(int n) return r; } +static int test_EVP_rsa_legacy_key(void) +{ + int ret; + size_t buflen = 384; + size_t msglen = 64; + unsigned char sigbuf[384]; + unsigned char msgbuf[64]; + BIGNUM *p; + BIGNUM *q; + BIGNUM *n; + BIGNUM *d; + BIGNUM *e; + RSA *rsa; + const EVP_MD *md; + EVP_MD_CTX *ctx = NULL; + EVP_PKEY *pkey = NULL; + + unsigned char n_data[] = { + 0x00, 0xc7, 0x28, 0x7a, 0x28, 0x91, 0x51, 0xa5, 0xe8, 0x3c, 0x45, 0xcf, + 0x1d, 0xa9, 0x69, 0x7a, 0x0d, 0xdb, 0xdd, 0x8f, 0xe2, 0xde, 0x85, 0xdd, + 0x85, 0x6d, 0x8f, 0x78, 0x20, 0xd6, 0xe, 0xe5, 0x06, 0xcb, 0x9c, 0xd6, + 0xd3, 0xca, 0xef, 0x1d, 0x80, 0xd3, 0x18, 0x23, 0x91, 0x5c, 0xe5, 0xc8, + 0x44, 0x37, 0x56, 0x1b, 0x68, 0x7f, 0x08, 0xa3, 0x1c, 0xf6, 0xe8, 0x11, + 0x38, 0x0f, 0x2e, 0xad, 0xb1, 0x89, 0x8b, 0x08, 0xe8, 0x35, 0xaf, 0x3b, + 0xfe, 0x37, 0x8d, 0x21, 0xd5, 0x3f, 0x1f, 0x4b, 0x01, 0x30, 0xd8, 0xd0, + 0x24, 0xf7, 0xab, 0x57, 0xad, 0xac, 0xbc, 0x53, 0x6d, 0x84, 0x8e, 0xa1, + 0xb2, 0x5b, 0x8e, 0xe7, 0xb3, 0xac, 0xfc, 0x60, 0x22, 0x10, 0x1e, 0x99, + 0xfa, 0xa0, 0x60, 0x00, 0x69, 0x5f, 0x8e, 0xca, 0x6d, 0x9c, 0xee, 0x5e, + 0x84, 0x4e, 0x53, 0x83, 0x42, 0x76, 0x4d, 0xb8, 0xc1, 0xeb, 0x4e, 0x3d, + 0xc3, 0xce, 0xac, 0x79, 0xbb, 0x29, 0x5d, 0x92, 0x33, 0x6e, 0xcf, 0x8f, + 0x5a, 0xf0, 0xb3, 0xb5, 0xdc, 0xd5, 0xa3, 0xaf, 0x40, 0x4b, 0x0f, 0x05, + 0xac, 0x46, 0x53, 0x2d, 0x5f, 0x20, 0x96, 0x42, 0xa8, 0x47, 0x61, 0x54, + 0x05, 0x2c, 0x8a, 0x26, 0x5d, 0x92, 0x1d, 0x01, 0x2a, 0x27, 0x8a, 0xfc, + 0x64, 0x24, 0x5c, 0x34, 0xde, 0x92, 0xc6, 0x82, 0xea, 0x4d, 0xe2, 0x52, + 0xe5, 0xad, 0x62, 0x00, 0xc6, 0xc8, 0xe9, 0x0c, 0x22, 0xf0, 0x9e, 0xbe, + 0xdc, 0x51, 0x58, 0xad, 0x3b, 0xba, 0x2e, 0x45, 0x65, 0xcc, 0x5b, 0x55, + 0x46, 0x67, 0x18, 0x4a, 0x80, 0x67, 0x5b, 0x84, 0x7f, 0x13, 0x37, 0x45, + 0xd8, 0x03, 0xc6, 0x22, 0xc3, 0x4a, 0x46, 0x6b, 0xde, 0x50, 0xbf, 0x16, + 0x0a, 0x23, 0x0b, 0xaa, 0x50, 0x54, 0xf6, 0x20, 0x83, 0x74, 0x33, 0x97, + 0x2e, 0xf2, 0x8e, 0x7e, 0x13 }; + + unsigned char e_data[] = { 0x01, 0x00, 0x01 }; + + unsigned char d_data[] = { + 0x09, 0x2d, 0xcb, 0xe7, 0x87, 0xbf, 0x10, 0x1a, 0xf2, 0x80, 0x33, 0x2a, + 0x06, 0x4f, 0x56, 0xb1, 0x41, 0xd3, 0x65, 0xd8, 0xca, 0x71, 0xb8, 0x02, + 0x78, 0xc8, 0xb6, 0x7c, 0x28, 0xf4, 0x6c, 0xe8, 0xd1, 0xc4, 0x92, 0x40, + 0x23, 0xa7, 0xbe, 0x9f, 0xdb, 0xda, 0xce, 0x74, 0xda, 0x27, 0xbb, 0x01, + 0xad, 0xdd, 0x39, 0x99, 0x28, 0xd5, 0xb0, 0x92, 0xda, 0xac, 0x5a, 0x72, + 0xcf, 0x7c, 0x52, 0xc4, 0x0e, 0x77, 0x4a, 0x7b, 0x4d, 0x52, 0x1c, 0xbd, + 0x3c, 0x39, 0x34, 0x78, 0x7c, 0x16, 0xc8, 0xa1, 0xae, 0xeb, 0x27, 0x38, + 0xb4, 0xf3, 0x80, 0x30, 0x80, 0x78, 0x13, 0x8e, 0x46, 0x20, 0x3e, 0xc2, + 0x96, 0x26, 0xb1, 0x76, 0x1e, 0x00, 0x69, 0xbb, 0xd8, 0x2b, 0x58, 0xe4, + 0x6c, 0xb4, 0xd0, 0x00, 0x0b, 0x47, 0xec, 0xfb, 0x7d, 0x52, 0x9d, 0x27, + 0x92, 0xe6, 0x95, 0x73, 0xa0, 0x39, 0x37, 0xcd, 0x1f, 0x60, 0x13, 0x1c, + 0x87, 0x9d, 0xa7, 0x91, 0x90, 0xf9, 0x36, 0xc5, 0xfa, 0x3f, 0xf9, 0x7f, + 0x50, 0xf8, 0xb3, 0x54, 0x65, 0xff, 0x6f, 0xa6, 0x22, 0xcc, 0x4a, 0x1e, + 0x49, 0x3f, 0x07, 0xc6, 0xf2, 0x65, 0x73, 0x13, 0x1b, 0x2d, 0xb6, 0x15, + 0xff, 0xcd, 0x9a, 0x1c, 0xea, 0xef, 0x58, 0x56, 0x91, 0x2d, 0x47, 0x81, + 0x56, 0x0d, 0xc3, 0xb0, 0x47, 0x58, 0x8d, 0x05, 0x7d, 0x5b, 0xc0, 0x22, + 0xa4, 0xf0, 0x2e, 0x70, 0x36, 0x01, 0x89, 0xa1, 0x71, 0xed, 0x76, 0xe9, + 0x8d, 0xf5, 0x49, 0xaf, 0x11, 0xbe, 0xe4, 0xd4, 0x48, 0x92, 0xb6, 0x5b, + 0xc2, 0x04, 0xd4, 0x0c, 0x5c, 0x8b, 0xe3, 0xfa, 0x29, 0x63, 0x86, 0xb4, + 0x10, 0xad, 0x32, 0x07, 0x85, 0xe2, 0x43, 0x76, 0x16, 0x90, 0xab, 0xdf, + 0xb3, 0x36, 0x0a, 0xc4, 0x49, 0x7b, 0x95, 0x48, 0x50, 0x72, 0x8f, 0x7d, + 0xf4, 0xfa, 0x60, 0xc1 }; + + unsigned char p_data[] = { + 0x00, 0xed, 0xf7, 0xa7, 0x00, 0x5a, 0xbb, 0xd1, 0x52, 0x65, 0x9b, 0xec, + 0xfe, 0x27, 0x8b, 0xe2, 0xbe, 0x40, 0x8c, 0x2f, 0x6f, 0xb4, 0x26, 0xb2, + 0xbe, 0x45, 0x4b, 0x3b, 0x5a, 0xaa, 0xc6, 0xaa, 0xfa, 0xc1, 0x3a, 0xa9, + 0xa1, 0xba, 0xb7, 0x86, 0x1a, 0x98, 0x15, 0x5f, 0x5c, 0x1c, 0x57, 0x78, + 0x78, 0x6a, 0x13, 0xc2, 0x40, 0x7d, 0x07, 0x87, 0x47, 0xc6, 0x96, 0xd5, + 0x92, 0xc9, 0x65, 0x2c, 0xfe, 0xbb, 0xe0, 0xd6, 0x76, 0x25, 0x5a, 0xa3, + 0xdf, 0x97, 0x4b, 0x64, 0xfd, 0x3b, 0x2b, 0xbc, 0xfb, 0x80, 0xad, 0x3b, + 0x7d, 0x1f, 0x48, 0x56, 0x27, 0xf7, 0x2f, 0x8e, 0x92, 0x07, 0xa8, 0x9f, + 0xbc, 0x5a, 0xce, 0xfa, 0xd5, 0x67, 0xad, 0xf4, 0xbf, 0xe0, 0xc9, 0x3e, + 0x8e, 0xb5, 0x90, 0x58, 0x54, 0x92, 0x9f, 0xda, 0x36, 0xc0, 0x0d, 0x57, + 0xfe, 0x6c, 0x23, 0x63, 0x8b, 0xd1, 0x1e, 0x4f, 0xd3 }; + + unsigned char q_data[] = { + 0x00, 0xd6, 0x3f, 0xf5, 0xee, 0xff, 0x4d, 0x7d, 0x8c, 0x1a, 0x85, 0x5d, + 0x3c, 0x4f, 0x9d, 0xdf, 0xc7, 0x68, 0x27, 0x7f, 0xe4, 0x4f, 0x4f, 0xd7, + 0xa2, 0x3b, 0xcd, 0x4a, 0x34, 0xd8, 0x55, 0x4a, 0x3e, 0x8e, 0xb3, 0xa8, + 0xe9, 0x8a, 0xc5, 0x94, 0xd1, 0x09, 0x32, 0x4b, 0x79, 0x8d, 0x7b, 0x03, + 0x0b, 0x5d, 0xca, 0x91, 0x41, 0xbc, 0x82, 0xc3, 0x89, 0x67, 0x4d, 0x03, + 0x68, 0x03, 0x2d, 0x0e, 0x4e, 0x97, 0x6c, 0xf6, 0x3e, 0x1f, 0xf4, 0x50, + 0x06, 0x5d, 0x05, 0x22, 0xf2, 0xf8, 0xf2, 0xde, 0xad, 0x2e, 0x9d, 0xc3, + 0x97, 0x1b, 0xc3, 0x75, 0xe7, 0x86, 0xde, 0xc5, 0x11, 0x89, 0xed, 0x6a, + 0x13, 0x14, 0x23, 0x4b, 0x98, 0x81, 0xf7, 0xd4, 0x1c, 0xee, 0x30, 0x92, + 0x85, 0x20, 0x4f, 0x35, 0x02, 0xfa, 0xda, 0x14, 0x77, 0xfa, 0x08, 0x34, + 0x60, 0xc7, 0x93, 0x72, 0xdc, 0xc4, 0x18, 0x70, 0xc1 }; + + memset(msgbuf, 0xef, 64); + + ret = (TEST_ptr((p = BN_bin2bn(p_data, sizeof(p_data), NULL))) + && TEST_ptr((q = BN_bin2bn(q_data, sizeof(q_data), NULL))) + && TEST_ptr((n = BN_bin2bn(n_data, sizeof(n_data), NULL))) + && TEST_ptr((d = BN_bin2bn(d_data, sizeof(d_data), NULL))) + && TEST_ptr((e = BN_bin2bn(e_data, sizeof(e_data), NULL))) + && TEST_ptr((rsa = RSA_new())) + && TEST_ptr((md = EVP_sha256())) + && TEST_ptr((ctx = EVP_MD_CTX_new())) + && TEST_ptr((pkey = EVP_PKEY_new())) + && TEST_true(RSA_set0_factors(rsa, p, q)) + && TEST_true(RSA_set0_key(rsa, n, e, d)) + && TEST_true(EVP_PKEY_assign_RSA(pkey, rsa)) + && TEST_true(EVP_DigestSignInit(ctx, NULL, md, NULL, pkey)) + && TEST_true(EVP_DigestSign(ctx, sigbuf, &buflen, msgbuf, msglen))); + + EVP_MD_CTX_free(ctx); + EVP_PKEY_free(pkey); + return ret; +} + int setup_tests(void) { ADD_ALL_TESTS(test_rsa_pkcs1, 3); ADD_ALL_TESTS(test_rsa_oaep, 3); ADD_ALL_TESTS(test_rsa_security_bit, OSSL_NELEM(rsa_security_bits_cases)); + ADD_TEST(test_EVP_rsa_legacy_key); return 1; } diff --git a/deps/openssl/openssl/test/ssl_old_test.c b/deps/openssl/openssl/test/ssl_old_test.c index 91c8b5b7b535f6..6b56754b824017 100644 --- a/deps/openssl/openssl/test/ssl_old_test.c +++ b/deps/openssl/openssl/test/ssl_old_test.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -1525,8 +1525,10 @@ int main(int argc, char *argv[]) ERR_print_errors(bio_err); goto end; } - SSL_CTX_set0_tmp_dh_pkey(s_ctx, dhpkey); - SSL_CTX_set0_tmp_dh_pkey(s_ctx2, dhpkey); + if (!SSL_CTX_set0_tmp_dh_pkey(s_ctx, dhpkey)) + EVP_PKEY_free(dhpkey); + if (!SSL_CTX_set0_tmp_dh_pkey(s_ctx2, dhpkey)) + EVP_PKEY_free(dhpkey); } #endif diff --git a/deps/openssl/openssl/test/sslapitest.c b/deps/openssl/openssl/test/sslapitest.c index 3d0319ee3881af..a7df6552eb16b2 100644 --- a/deps/openssl/openssl/test/sslapitest.c +++ b/deps/openssl/openssl/test/sslapitest.c @@ -1681,6 +1681,8 @@ static int test_large_app_data(int tst) return testresult; } +#if !defined(OPENSSL_NO_TLS1_2) || !defined(OSSL_NO_USABLE_TLS1_3) \ + || !defined(OPENSSL_NO_DTLS) static int execute_cleanse_plaintext(const SSL_METHOD *smeth, const SSL_METHOD *cmeth, int min_version, int max_version) @@ -1702,15 +1704,13 @@ static int execute_cleanse_plaintext(const SSL_METHOD *smeth, privkey))) goto end; -#ifdef OPENSSL_NO_DTLS1_2 - if (smeth == DTLS_server_method()) { # ifdef OPENSSL_NO_DTLS1_2 + if (smeth == DTLS_server_method()) { /* Not supported in the FIPS provider */ if (is_fips) { testresult = 1; goto end; }; -# endif /* * Default sigalgs are SHA1 based in 0) { ret = run_tests(argv[0]); cleanup_tests(); opt_check_usage(); - } else { + } else if (setup_res == 0) { opt_help(test_get_options()); } end: diff --git a/deps/openssl/openssl/util/missingssl.txt b/deps/openssl/openssl/util/missingssl.txt index 48219fd99a9a47..41ca8a8bbc0022 100644 --- a/deps/openssl/openssl/util/missingssl.txt +++ b/deps/openssl/openssl/util/missingssl.txt @@ -3,7 +3,6 @@ ERR_load_SSL_strings(3) SRP_Calc_A_param(3) SSL_COMP_get_name(3) SSL_COMP_set0_compression_methods(3) -SSL_CONF_CTX_finish(3) SSL_CTX_SRP_CTX_free(3) SSL_CTX_SRP_CTX_init(3) SSL_CTX_get0_certificate(3) From 68cddd79f7dd265b09668603a09017085f76592a Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Thu, 26 Oct 2023 15:05:57 +0000 Subject: [PATCH 223/232] deps: update archs files for openssl-3.0.12+quic1 PR-URL: https://github.com/nodejs/node/pull/50411 Reviewed-By: Richard Lau Reviewed-By: Rafael Gonzaga Reviewed-By: James M Snell --- .../config/archs/BSD-x86/asm/configdata.pm | 8 +- .../archs/BSD-x86/asm/crypto/buildinf.h | 2 +- .../BSD-x86/asm/include/openssl/opensslv.h | 10 +- .../archs/BSD-x86/asm/include/openssl/pkcs7.h | 6 +- .../archs/BSD-x86/asm_avx2/configdata.pm | 8 +- .../archs/BSD-x86/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../BSD-x86/asm_avx2/include/openssl/pkcs7.h | 6 +- .../config/archs/BSD-x86/no-asm/configdata.pm | 8 +- .../archs/BSD-x86/no-asm/crypto/buildinf.h | 2 +- .../BSD-x86/no-asm/include/openssl/opensslv.h | 10 +- .../BSD-x86/no-asm/include/openssl/pkcs7.h | 6 +- .../config/archs/BSD-x86_64/asm/configdata.pm | 8 +- .../archs/BSD-x86_64/asm/crypto/buildinf.h | 2 +- .../BSD-x86_64/asm/include/openssl/opensslv.h | 10 +- .../BSD-x86_64/asm/include/openssl/pkcs7.h | 6 +- .../archs/BSD-x86_64/asm_avx2/configdata.pm | 8 +- .../BSD-x86_64/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/BSD-x86_64/no-asm/configdata.pm | 8 +- .../archs/BSD-x86_64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../BSD-x86_64/no-asm/include/openssl/pkcs7.h | 6 +- .../config/archs/VC-WIN32/asm/configdata.pm | 10 +- .../archs/VC-WIN32/asm/crypto/buildinf.h | 2 +- .../VC-WIN32/asm/include/openssl/opensslv.h | 10 +- .../VC-WIN32/asm/include/openssl/pkcs7.h | 6 +- .../archs/VC-WIN32/asm_avx2/configdata.pm | 10 +- .../archs/VC-WIN32/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../VC-WIN32/asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/VC-WIN32/no-asm/configdata.pm | 10 +- .../archs/VC-WIN32/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../VC-WIN32/no-asm/include/openssl/pkcs7.h | 6 +- .../archs/VC-WIN64-ARM/no-asm/configdata.pm | 10 +- .../VC-WIN64-ARM/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../config/archs/VC-WIN64A/asm/configdata.pm | 12 +- .../archs/VC-WIN64A/asm/crypto/buildinf.h | 2 +- .../asm/crypto/poly1305/poly1305-x86_64.asm | 1028 ----------------- .../VC-WIN64A/asm/include/openssl/opensslv.h | 10 +- .../VC-WIN64A/asm/include/openssl/pkcs7.h | 6 +- .../archs/VC-WIN64A/asm_avx2/configdata.pm | 12 +- .../VC-WIN64A/asm_avx2/crypto/buildinf.h | 2 +- .../crypto/poly1305/poly1305-x86_64.asm | 1028 ----------------- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/VC-WIN64A/no-asm/configdata.pm | 12 +- .../archs/VC-WIN64A/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../VC-WIN64A/no-asm/include/openssl/pkcs7.h | 6 +- .../archs/aix64-gcc-as/asm/configdata.pm | 8 +- .../archs/aix64-gcc-as/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../aix64-gcc-as/asm/include/openssl/pkcs7.h | 6 +- .../archs/aix64-gcc-as/asm_avx2/configdata.pm | 8 +- .../aix64-gcc-as/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/aix64-gcc-as/no-asm/configdata.pm | 8 +- .../aix64-gcc-as/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/darwin-i386-cc/asm/configdata.pm | 8 +- .../darwin-i386-cc/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../darwin-i386-cc/asm_avx2/configdata.pm | 8 +- .../darwin-i386-cc/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/darwin-i386-cc/no-asm/configdata.pm | 8 +- .../darwin-i386-cc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/darwin64-arm64-cc/asm/configdata.pm | 8 +- .../asm/crypto/aes/aesv8-armx.S | 6 +- .../darwin64-arm64-cc/asm/crypto/buildinf.h | 2 +- .../asm/crypto/modes/ghashv8-armx.S | 26 +- .../asm/crypto/poly1305/poly1305-armv8.S | 24 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../darwin64-arm64-cc/asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/aes/aesv8-armx.S | 6 +- .../asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/crypto/modes/ghashv8-armx.S | 26 +- .../asm_avx2/crypto/poly1305/poly1305-armv8.S | 24 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../darwin64-arm64-cc/no-asm/configdata.pm | 8 +- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../darwin64-x86_64-cc/asm/configdata.pm | 8 +- .../darwin64-x86_64-cc/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../darwin64-x86_64-cc/asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../darwin64-x86_64-cc/no-asm/configdata.pm | 8 +- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-aarch64/asm/configdata.pm | 8 +- .../linux-aarch64/asm/crypto/aes/aesv8-armx.S | 6 +- .../archs/linux-aarch64/asm/crypto/buildinf.h | 2 +- .../asm/crypto/modes/ghashv8-armx.S | 26 +- .../asm/crypto/poly1305/poly1305-armv8.S | 24 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux-aarch64/asm/include/openssl/pkcs7.h | 6 +- .../linux-aarch64/asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/aes/aesv8-armx.S | 6 +- .../linux-aarch64/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/crypto/modes/ghashv8-armx.S | 26 +- .../asm_avx2/crypto/poly1305/poly1305-armv8.S | 24 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux-aarch64/no-asm/configdata.pm | 8 +- .../linux-aarch64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-armv4/asm/configdata.pm | 8 +- .../linux-armv4/asm/crypto/aes/bsaes-armv7.S | 8 +- .../archs/linux-armv4/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux-armv4/asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-armv4/asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/aes/bsaes-armv7.S | 8 +- .../linux-armv4/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux-armv4/no-asm/configdata.pm | 8 +- .../linux-armv4/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../config/archs/linux-elf/asm/configdata.pm | 8 +- .../archs/linux-elf/asm/crypto/buildinf.h | 2 +- .../linux-elf/asm/include/openssl/opensslv.h | 10 +- .../linux-elf/asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-elf/asm_avx2/configdata.pm | 8 +- .../linux-elf/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux-elf/no-asm/configdata.pm | 8 +- .../archs/linux-elf/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../linux-elf/no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-ppc64le/asm/configdata.pm | 8 +- .../archs/linux-ppc64le/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux-ppc64le/asm/include/openssl/pkcs7.h | 6 +- .../linux-ppc64le/asm_avx2/configdata.pm | 8 +- .../linux-ppc64le/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux-ppc64le/no-asm/configdata.pm | 8 +- .../linux-ppc64le/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-x86_64/asm/configdata.pm | 8 +- .../archs/linux-x86_64/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux-x86_64/asm/include/openssl/pkcs7.h | 6 +- .../archs/linux-x86_64/asm_avx2/configdata.pm | 8 +- .../linux-x86_64/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux-x86_64/no-asm/configdata.pm | 8 +- .../linux-x86_64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux32-s390x/asm/configdata.pm | 8 +- .../archs/linux32-s390x/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux32-s390x/asm/include/openssl/pkcs7.h | 6 +- .../linux32-s390x/asm_avx2/configdata.pm | 8 +- .../linux32-s390x/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux32-s390x/no-asm/configdata.pm | 8 +- .../linux32-s390x/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../linux64-loongarch64/no-asm/configdata.pm | 8 +- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux64-mips64/asm/configdata.pm | 8 +- .../linux64-mips64/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../linux64-mips64/asm_avx2/configdata.pm | 8 +- .../linux64-mips64/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux64-mips64/no-asm/configdata.pm | 8 +- .../linux64-mips64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../linux64-riscv64/no-asm/configdata.pm | 8 +- .../linux64-riscv64/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/linux64-s390x/asm/configdata.pm | 8 +- .../archs/linux64-s390x/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../linux64-s390x/asm/include/openssl/pkcs7.h | 6 +- .../linux64-s390x/asm_avx2/configdata.pm | 8 +- .../linux64-s390x/asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../archs/linux64-s390x/no-asm/configdata.pm | 8 +- .../linux64-s390x/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../archs/solaris-x86-gcc/asm/configdata.pm | 8 +- .../solaris-x86-gcc/asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../solaris-x86-gcc/asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../solaris-x86-gcc/no-asm/configdata.pm | 8 +- .../solaris-x86-gcc/no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- .../solaris64-x86_64-gcc/asm/configdata.pm | 8 +- .../asm/crypto/buildinf.h | 2 +- .../asm/include/openssl/opensslv.h | 10 +- .../asm/include/openssl/pkcs7.h | 6 +- .../asm_avx2/configdata.pm | 8 +- .../asm_avx2/crypto/buildinf.h | 2 +- .../asm_avx2/include/openssl/opensslv.h | 10 +- .../asm_avx2/include/openssl/pkcs7.h | 6 +- .../solaris64-x86_64-gcc/no-asm/configdata.pm | 8 +- .../no-asm/crypto/buildinf.h | 2 +- .../no-asm/include/openssl/opensslv.h | 10 +- .../no-asm/include/openssl/pkcs7.h | 6 +- deps/openssl/openssl/crypto/perlasm/x86asm.pl | 4 +- deps/openssl/openssl/include/crypto/bn_conf.h | 1 + .../openssl/openssl/include/crypto/dso_conf.h | 1 + deps/openssl/openssl/include/openssl/asn1.h | 1 + deps/openssl/openssl/include/openssl/asn1t.h | 1 + deps/openssl/openssl/include/openssl/bio.h | 1 + deps/openssl/openssl/include/openssl/cmp.h | 1 + deps/openssl/openssl/include/openssl/cms.h | 1 + deps/openssl/openssl/include/openssl/conf.h | 1 + .../openssl/include/openssl/configuration.h | 1 + deps/openssl/openssl/include/openssl/crmf.h | 1 + deps/openssl/openssl/include/openssl/crypto.h | 1 + deps/openssl/openssl/include/openssl/ct.h | 1 + deps/openssl/openssl/include/openssl/err.h | 1 + deps/openssl/openssl/include/openssl/ess.h | 1 + .../openssl/openssl/include/openssl/fipskey.h | 1 + deps/openssl/openssl/include/openssl/lhash.h | 1 + deps/openssl/openssl/include/openssl/ocsp.h | 1 + .../openssl/include/openssl/opensslv.h | 1 + deps/openssl/openssl/include/openssl/pkcs12.h | 1 + deps/openssl/openssl/include/openssl/pkcs7.h | 1 + .../openssl/include/openssl/safestack.h | 1 + deps/openssl/openssl/include/openssl/srp.h | 1 + deps/openssl/openssl/include/openssl/ssl.h | 1 + deps/openssl/openssl/include/openssl/ui.h | 1 + deps/openssl/openssl/include/openssl/x509.h | 1 + .../openssl/include/openssl/x509_vfy.h | 1 + deps/openssl/openssl/include/openssl/x509v3.h | 1 + 272 files changed, 900 insertions(+), 2929 deletions(-) create mode 100644 deps/openssl/openssl/include/crypto/bn_conf.h create mode 100644 deps/openssl/openssl/include/crypto/dso_conf.h create mode 100644 deps/openssl/openssl/include/openssl/asn1.h create mode 100644 deps/openssl/openssl/include/openssl/asn1t.h create mode 100644 deps/openssl/openssl/include/openssl/bio.h create mode 100644 deps/openssl/openssl/include/openssl/cmp.h create mode 100644 deps/openssl/openssl/include/openssl/cms.h create mode 100644 deps/openssl/openssl/include/openssl/conf.h create mode 100644 deps/openssl/openssl/include/openssl/configuration.h create mode 100644 deps/openssl/openssl/include/openssl/crmf.h create mode 100644 deps/openssl/openssl/include/openssl/crypto.h create mode 100644 deps/openssl/openssl/include/openssl/ct.h create mode 100644 deps/openssl/openssl/include/openssl/err.h create mode 100644 deps/openssl/openssl/include/openssl/ess.h create mode 100644 deps/openssl/openssl/include/openssl/fipskey.h create mode 100644 deps/openssl/openssl/include/openssl/lhash.h create mode 100644 deps/openssl/openssl/include/openssl/ocsp.h create mode 100644 deps/openssl/openssl/include/openssl/opensslv.h create mode 100644 deps/openssl/openssl/include/openssl/pkcs12.h create mode 100644 deps/openssl/openssl/include/openssl/pkcs7.h create mode 100644 deps/openssl/openssl/include/openssl/safestack.h create mode 100644 deps/openssl/openssl/include/openssl/srp.h create mode 100644 deps/openssl/openssl/include/openssl/ssl.h create mode 100644 deps/openssl/openssl/include/openssl/ui.h create mode 100644 deps/openssl/openssl/include/openssl/x509.h create mode 100644 deps/openssl/openssl/include/openssl/x509_vfy.h create mode 100644 deps/openssl/openssl/include/openssl/x509v3.h diff --git a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm index 667d9eb6c472cd..2eec8ceaa21cb7 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h index c83c080bcb3ade..b5d8c7c8adce23 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Aug 6 00:25:19 2023 UTC" +#define DATE "built on: Thu Oct 26 14:48:37 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm index d21a502b43b514..b9fef9eebf98a6 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h index b3e839decc98ce..4b373bd0dc21f4 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Aug 6 00:25:40 2023 UTC" +#define DATE "built on: Thu Oct 26 14:48:56 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm index df06e22c5669e8..65137fe6dcc5b3 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -202,7 +202,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h index 0b2dc3af6c4db6..edf452c92abb33 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86" -#define DATE "built on: Sun Aug 6 00:26:00 2023 UTC" +#define DATE "built on: Thu Oct 26 14:49:16 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm index f3476682006a8a..82a08c7ee72579 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h index 8220828c4d379e..9b2212f3ae4bd1 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Aug 6 00:26:19 2023 UTC" +#define DATE "built on: Thu Oct 26 14:49:35 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm index 07333980e3d535..397887f1e385f7 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h index 0141bc595c4669..1148cc2a577c0c 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Aug 6 00:26:43 2023 UTC" +#define DATE "built on: Thu Oct 26 14:49:58 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm index daa479b8c190aa..3a36a6286ecc1e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -202,7 +202,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -255,11 +255,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "BSD-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h index f1fbc792476400..d9add13d2a3d32 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: BSD-x86_64" -#define DATE "built on: Sun Aug 6 00:27:07 2023 UTC" +#define DATE "built on: Thu Oct 26 14:50:22 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/BSD-x86_64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm index ca62a99b20e7e9..8bf601f3902773 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/asm/configdata.pm @@ -165,7 +165,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -216,7 +216,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -268,11 +268,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -287,7 +287,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55c06cf5ea80)", + "RANLIB" => "CODE(0x558d4506ace0)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", diff --git a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h index b4978c23fed544..8a88b5d57d37eb 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:43:26 2023 UTC" +#define DATE "built on: Thu Oct 26 15:04:24 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm index 62ccddd60f494f..b0c0b52ee69d56 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/configdata.pm @@ -165,7 +165,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -216,7 +216,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -268,11 +268,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -287,7 +287,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55b8a711a640)", + "RANLIB" => "CODE(0x55f14f6dce20)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h index 00774a2a9b5c85..82019d38ddffd7 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:43:47 2023 UTC" +#define DATE "built on: Thu Oct 26 15:04:43 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm index 9a5d93c30fa1ab..40491bd28bd763 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/configdata.pm @@ -163,7 +163,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -215,7 +215,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -268,11 +268,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN32", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -287,7 +287,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55ac94d0db28)", + "RANLIB" => "CODE(0x55dfb3e6a5e8)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h index b19b8b48b13928..3894b1e4a023f9 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:44:09 2023 UTC" +#define DATE "built on: Thu Oct 26 15:05:01 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN32/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm index 4c747db9cfb5c7..e450e0c1904e51 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/configdata.pm @@ -163,7 +163,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -213,7 +213,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -266,11 +266,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN64-ARM", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -283,7 +283,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x56025ddf3078)", + "RANLIB" => "CODE(0x55619ad3d968)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h index f32efe5d98eca3..2611edb7bd6bf2 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: VC-WIN64-ARM" -#define DATE "built on: Sun Aug 6 00:44:29 2023 UTC" +#define DATE "built on: Thu Oct 26 15:05:18 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64-ARM/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm index 80443a734d38e4..ca90ef75c27121 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/configdata.pm @@ -168,7 +168,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -219,7 +219,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -271,11 +271,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -290,7 +290,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x56532d60fad0)", + "RANLIB" => "CODE(0x559ccffc4580)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -356,7 +356,7 @@ our %target = ( "mtoutflag" => "-outputresource:", "multilib" => "-x64", "perl_platform" => "Windows::MSVC", - "perlasm_scheme" => "auto", + "perlasm_scheme" => "nasm", "rcoutflag" => "/fo", "shared_cflag" => "", "shared_defflag" => "", diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h index 06a91884502b77..8daa2d52f03a84 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:42:10 2023 UTC" +#define DATE "built on: Thu Oct 26 15:03:22 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm index 26f683384d1806..fb3823608c949b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm/crypto/poly1305/poly1305-x86_64.asm @@ -46,11 +46,6 @@ $L$SEH_begin_poly1305_init: lea rax,[poly1305_blocks_avx2] bt r9,37 cmovc r10,rax - mov rax,2149646336 - shr r9,32 - and r9,rax - cmp r9,rax - je NEAR $L$init_base2_44 mov rax,0x0ffffffc0fffffff mov rcx,0x0ffffffc0ffffffc and rax,QWORD[rsi] @@ -2605,1029 +2600,6 @@ $L$do_avx512_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_poly1305_blocks_avx512: - -ALIGN 32 -poly1305_init_base2_44: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_init_base2_44: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - xor rax,rax - mov QWORD[rdi],rax - mov QWORD[8+rdi],rax - mov QWORD[16+rdi],rax - -$L$init_base2_44: - lea r10,[poly1305_blocks_vpmadd52] - lea r11,[poly1305_emit_base2_44] - - mov rax,0x0ffffffc0fffffff - mov rcx,0x0ffffffc0ffffffc - and rax,QWORD[rsi] - mov r8,0x00000fffffffffff - and rcx,QWORD[8+rsi] - mov r9,0x00000fffffffffff - and r8,rax - shrd rax,rcx,44 - mov QWORD[40+rdi],r8 - and rax,r9 - shr rcx,24 - mov QWORD[48+rdi],rax - lea rax,[rax*4+rax] - mov QWORD[56+rdi],rcx - shl rax,2 - lea rcx,[rcx*4+rcx] - shl rcx,2 - mov QWORD[24+rdi],rax - mov QWORD[32+rdi],rcx - mov QWORD[64+rdi],-1 - mov QWORD[rdx],r10 - mov QWORD[8+rdx],r11 - mov eax,1 - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_init_base2_44: - -ALIGN 32 -poly1305_blocks_vpmadd52: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - -DB 243,15,30,250 - shr rdx,4 - jz NEAR $L$no_data_vpmadd52 - - shl rcx,40 - mov r8,QWORD[64+rdi] - - - - - - - mov rax,3 - mov r10,1 - cmp rdx,4 - cmovae rax,r10 - test r8,r8 - cmovns rax,r10 - - and rax,rdx - jz NEAR $L$blocks_vpmadd52_4x - - sub rdx,rax - mov r10d,7 - mov r11d,1 - kmovw k7,r10d - lea r10,[$L$2_44_inp_permd] - kmovw k1,r11d - - vmovq xmm21,rcx - vmovdqa64 ymm19,YMMWORD[r10] - vmovdqa64 ymm20,YMMWORD[32+r10] - vpermq ymm21,ymm21,0xcf - vmovdqa64 ymm22,YMMWORD[64+r10] - - vmovdqu64 ymm16{k7}{z},[rdi] - vmovdqu64 ymm3{k7}{z},[40+rdi] - vmovdqu64 ymm4{k7}{z},[32+rdi] - vmovdqu64 ymm5{k7}{z},[24+rdi] - - vmovdqa64 ymm23,YMMWORD[96+r10] - vmovdqa64 ymm24,YMMWORD[128+r10] - - jmp NEAR $L$oop_vpmadd52 - -ALIGN 32 -$L$oop_vpmadd52: - vmovdqu32 xmm18,XMMWORD[rsi] - lea rsi,[16+rsi] - - vpermd ymm18,ymm19,ymm18 - vpsrlvq ymm18,ymm18,ymm20 - vpandq ymm18,ymm18,ymm22 - vporq ymm18,ymm18,ymm21 - - vpaddq ymm16,ymm16,ymm18 - - vpermq ymm0{k7}{z},ymm16,0 - vpermq ymm1{k7}{z},ymm16,85 - vpermq ymm2{k7}{z},ymm16,170 - - vpxord ymm16,ymm16,ymm16 - vpxord ymm17,ymm17,ymm17 - - vpmadd52luq ymm16,ymm0,ymm3 - vpmadd52huq ymm17,ymm0,ymm3 - - vpmadd52luq ymm16,ymm1,ymm4 - vpmadd52huq ymm17,ymm1,ymm4 - - vpmadd52luq ymm16,ymm2,ymm5 - vpmadd52huq ymm17,ymm2,ymm5 - - vpsrlvq ymm18,ymm16,ymm23 - vpsllvq ymm17,ymm17,ymm24 - vpandq ymm16,ymm16,ymm22 - - vpaddq ymm17,ymm17,ymm18 - - vpermq ymm17,ymm17,147 - - vpaddq ymm16,ymm16,ymm17 - - vpsrlvq ymm18,ymm16,ymm23 - vpandq ymm16,ymm16,ymm22 - - vpermq ymm18,ymm18,147 - - vpaddq ymm16,ymm16,ymm18 - - vpermq ymm18{k1}{z},ymm16,147 - - vpaddq ymm16,ymm16,ymm18 - vpsllq ymm18,ymm18,2 - - vpaddq ymm16,ymm16,ymm18 - - dec rax - jnz NEAR $L$oop_vpmadd52 - - vmovdqu64 YMMWORD[rdi]{k7},ymm16 - - test rdx,rdx - jnz NEAR $L$blocks_vpmadd52_4x - -$L$no_data_vpmadd52: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52: - -ALIGN 32 -poly1305_blocks_vpmadd52_4x: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52_4x: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - - shr rdx,4 - jz NEAR $L$no_data_vpmadd52_4x - - shl rcx,40 - mov r8,QWORD[64+rdi] - -$L$blocks_vpmadd52_4x: - vpbroadcastq ymm31,rcx - - vmovdqa64 ymm28,YMMWORD[$L$x_mask44] - mov eax,5 - vmovdqa64 ymm29,YMMWORD[$L$x_mask42] - kmovw k1,eax - - test r8,r8 - js NEAR $L$init_vpmadd52 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - - test rdx,3 - jnz NEAR $L$blocks_vpmadd52_2x_do - -$L$blocks_vpmadd52_4x_do: - vpbroadcastq ymm3,QWORD[64+rdi] - vpbroadcastq ymm4,QWORD[96+rdi] - vpbroadcastq ymm5,QWORD[128+rdi] - vpbroadcastq ymm16,QWORD[160+rdi] - -$L$blocks_vpmadd52_4x_key_loaded: - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - test rdx,7 - jz NEAR $L$blocks_vpmadd52_8x - - vmovdqu64 ymm26,YMMWORD[rsi] - vmovdqu64 ymm27,YMMWORD[32+rsi] - lea rsi,[64+rsi] - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - - - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm2,ymm2,ymm26 - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - sub rdx,4 - jz NEAR $L$tail_vpmadd52_4x - jmp NEAR $L$oop_vpmadd52_4x - ud2 - -ALIGN 32 -$L$init_vpmadd52: - vmovq xmm16,QWORD[24+rdi] - vmovq xmm2,QWORD[56+rdi] - vmovq xmm17,QWORD[32+rdi] - vmovq xmm3,QWORD[40+rdi] - vmovq xmm4,QWORD[48+rdi] - - vmovdqa ymm0,ymm3 - vmovdqa ymm1,ymm4 - vmovdqa ymm5,ymm2 - - mov eax,2 - -$L$mul_init_vpmadd52: - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - dec eax - jz NEAR $L$done_init_vpmadd52 - - vpunpcklqdq ymm4,ymm1,ymm4 - vpbroadcastq xmm1,xmm1 - vpunpcklqdq ymm5,ymm2,ymm5 - vpbroadcastq xmm2,xmm2 - vpunpcklqdq ymm3,ymm0,ymm3 - vpbroadcastq xmm0,xmm0 - - vpsllq ymm16,ymm4,2 - vpsllq ymm17,ymm5,2 - vpaddq ymm16,ymm16,ymm4 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm16,ymm16,2 - vpsllq ymm17,ymm17,2 - - jmp NEAR $L$mul_init_vpmadd52 - ud2 - -ALIGN 32 -$L$done_init_vpmadd52: - vinserti128 ymm4,ymm1,xmm4,1 - vinserti128 ymm5,ymm2,xmm5,1 - vinserti128 ymm3,ymm0,xmm3,1 - - vpermq ymm4,ymm4,216 - vpermq ymm5,ymm5,216 - vpermq ymm3,ymm3,216 - - vpsllq ymm16,ymm4,2 - vpaddq ymm16,ymm16,ymm4 - vpsllq ymm16,ymm16,2 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - - test rdx,3 - jnz NEAR $L$done_init_vpmadd52_2x - - vmovdqu64 YMMWORD[64+rdi],ymm3 - vpbroadcastq ymm3,xmm3 - vmovdqu64 YMMWORD[96+rdi],ymm4 - vpbroadcastq ymm4,xmm4 - vmovdqu64 YMMWORD[128+rdi],ymm5 - vpbroadcastq ymm5,xmm5 - vmovdqu64 YMMWORD[160+rdi],ymm16 - vpbroadcastq ymm16,xmm16 - - jmp NEAR $L$blocks_vpmadd52_4x_key_loaded - ud2 - -ALIGN 32 -$L$done_init_vpmadd52_2x: - vmovdqu64 YMMWORD[64+rdi],ymm3 - vpsrldq ymm3,ymm3,8 - vmovdqu64 YMMWORD[96+rdi],ymm4 - vpsrldq ymm4,ymm4,8 - vmovdqu64 YMMWORD[128+rdi],ymm5 - vpsrldq ymm5,ymm5,8 - vmovdqu64 YMMWORD[160+rdi],ymm16 - vpsrldq ymm16,ymm16,8 - jmp NEAR $L$blocks_vpmadd52_2x_key_loaded - ud2 - -ALIGN 32 -$L$blocks_vpmadd52_2x_do: - vmovdqu64 ymm5{k1}{z},[((128+8))+rdi] - vmovdqu64 ymm16{k1}{z},[((160+8))+rdi] - vmovdqu64 ymm3{k1}{z},[((64+8))+rdi] - vmovdqu64 ymm4{k1}{z},[((96+8))+rdi] - -$L$blocks_vpmadd52_2x_key_loaded: - vmovdqu64 ymm26,YMMWORD[rsi] - vpxorq ymm27,ymm27,ymm27 - lea rsi,[32+rsi] - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - - - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm2,ymm2,ymm26 - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - jmp NEAR $L$tail_vpmadd52_2x - ud2 - -ALIGN 32 -$L$oop_vpmadd52_4x: - - vpaddq ymm0,ymm0,ymm24 - vpaddq ymm1,ymm1,ymm25 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vmovdqu64 ymm26,YMMWORD[rsi] - vmovdqu64 ymm27,YMMWORD[32+rsi] - lea rsi,[64+rsi] - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm2,ymm2,ymm26 - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - sub rdx,4 - jnz NEAR $L$oop_vpmadd52_4x - -$L$tail_vpmadd52_4x: - vmovdqu64 ymm5,YMMWORD[128+rdi] - vmovdqu64 ymm16,YMMWORD[160+rdi] - vmovdqu64 ymm3,YMMWORD[64+rdi] - vmovdqu64 ymm4,YMMWORD[96+rdi] - -$L$tail_vpmadd52_2x: - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - - vpaddq ymm0,ymm0,ymm24 - vpaddq ymm1,ymm1,ymm25 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - - mov eax,1 - kmovw k1,eax - vpsrldq ymm24,ymm18,8 - vpsrldq ymm0,ymm19,8 - vpsrldq ymm25,ymm20,8 - vpsrldq ymm1,ymm21,8 - vpaddq ymm18,ymm18,ymm24 - vpaddq ymm19,ymm19,ymm0 - vpsrldq ymm26,ymm22,8 - vpsrldq ymm2,ymm23,8 - vpaddq ymm20,ymm20,ymm25 - vpaddq ymm21,ymm21,ymm1 - vpermq ymm24,ymm18,0x2 - vpermq ymm0,ymm19,0x2 - vpaddq ymm22,ymm22,ymm26 - vpaddq ymm23,ymm23,ymm2 - - vpermq ymm25,ymm20,0x2 - vpermq ymm1,ymm21,0x2 - vpaddq ymm18{k1}{z},ymm18,ymm24 - vpaddq ymm19{k1}{z},ymm19,ymm0 - vpermq ymm26,ymm22,0x2 - vpermq ymm2,ymm23,0x2 - vpaddq ymm20{k1}{z},ymm20,ymm25 - vpaddq ymm21{k1}{z},ymm21,ymm1 - vpaddq ymm22{k1}{z},ymm22,ymm26 - vpaddq ymm23{k1}{z},ymm23,ymm2 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - - sub rdx,2 - ja NEAR $L$blocks_vpmadd52_4x_do - - vmovq QWORD[rdi],xmm0 - vmovq QWORD[8+rdi],xmm1 - vmovq QWORD[16+rdi],xmm2 - vzeroall - -$L$no_data_vpmadd52_4x: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52_4x: - -ALIGN 32 -poly1305_blocks_vpmadd52_8x: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52_8x: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - - shr rdx,4 - jz NEAR $L$no_data_vpmadd52_8x - - shl rcx,40 - mov r8,QWORD[64+rdi] - - vmovdqa64 ymm28,YMMWORD[$L$x_mask44] - vmovdqa64 ymm29,YMMWORD[$L$x_mask42] - - test r8,r8 - js NEAR $L$init_vpmadd52 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - -$L$blocks_vpmadd52_8x: - - - - vmovdqu64 ymm5,YMMWORD[128+rdi] - vmovdqu64 ymm16,YMMWORD[160+rdi] - vmovdqu64 ymm3,YMMWORD[64+rdi] - vmovdqu64 ymm4,YMMWORD[96+rdi] - - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - vpbroadcastq ymm8,xmm5 - vpbroadcastq ymm6,xmm3 - vpbroadcastq ymm7,xmm4 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm8 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm8 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm8 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm8 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm8 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm8 - - vpmadd52luq ymm18,ymm3,ymm6 - vpmadd52huq ymm19,ymm3,ymm6 - vpmadd52luq ymm20,ymm4,ymm6 - vpmadd52huq ymm21,ymm4,ymm6 - vpmadd52luq ymm22,ymm5,ymm6 - vpmadd52huq ymm23,ymm5,ymm6 - - vpmadd52luq ymm18,ymm17,ymm7 - vpmadd52huq ymm19,ymm17,ymm7 - vpmadd52luq ymm20,ymm3,ymm7 - vpmadd52huq ymm21,ymm3,ymm7 - vpmadd52luq ymm22,ymm4,ymm7 - vpmadd52huq ymm23,ymm4,ymm7 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm6,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm7,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm8,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm6,ymm6,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm6,ymm6,ymm23 - - vpsrlq ymm30,ymm6,44 - vpandq ymm6,ymm6,ymm28 - - vpaddq ymm7,ymm7,ymm30 - - - - - - vpunpcklqdq ymm26,ymm8,ymm5 - vpunpckhqdq ymm5,ymm8,ymm5 - vpunpcklqdq ymm24,ymm6,ymm3 - vpunpckhqdq ymm3,ymm6,ymm3 - vpunpcklqdq ymm25,ymm7,ymm4 - vpunpckhqdq ymm4,ymm7,ymm4 - vshufi64x2 zmm8,zmm26,zmm5,0x44 - vshufi64x2 zmm6,zmm24,zmm3,0x44 - vshufi64x2 zmm7,zmm25,zmm4,0x44 - - vmovdqu64 zmm26,ZMMWORD[rsi] - vmovdqu64 zmm27,ZMMWORD[64+rsi] - lea rsi,[128+rsi] - - vpsllq zmm10,zmm8,2 - vpsllq zmm9,zmm7,2 - vpaddq zmm10,zmm10,zmm8 - vpaddq zmm9,zmm9,zmm7 - vpsllq zmm10,zmm10,2 - vpsllq zmm9,zmm9,2 - - vpbroadcastq zmm31,rcx - vpbroadcastq zmm28,xmm28 - vpbroadcastq zmm29,xmm29 - - vpbroadcastq zmm16,xmm9 - vpbroadcastq zmm17,xmm10 - vpbroadcastq zmm3,xmm6 - vpbroadcastq zmm4,xmm7 - vpbroadcastq zmm5,xmm8 - - vpunpcklqdq zmm25,zmm26,zmm27 - vpunpckhqdq zmm27,zmm26,zmm27 - - - - vpsrlq zmm26,zmm27,24 - vporq zmm26,zmm26,zmm31 - vpaddq zmm2,zmm2,zmm26 - vpandq zmm24,zmm25,zmm28 - vpsrlq zmm25,zmm25,44 - vpsllq zmm27,zmm27,20 - vporq zmm25,zmm25,zmm27 - vpandq zmm25,zmm25,zmm28 - - sub rdx,8 - jz NEAR $L$tail_vpmadd52_8x - jmp NEAR $L$oop_vpmadd52_8x - -ALIGN 32 -$L$oop_vpmadd52_8x: - - vpaddq zmm0,zmm0,zmm24 - vpaddq zmm1,zmm1,zmm25 - - vpxorq zmm18,zmm18,zmm18 - vpmadd52luq zmm18,zmm16,zmm2 - vpxorq zmm19,zmm19,zmm19 - vpmadd52huq zmm19,zmm16,zmm2 - vpxorq zmm20,zmm20,zmm20 - vpmadd52luq zmm20,zmm17,zmm2 - vpxorq zmm21,zmm21,zmm21 - vpmadd52huq zmm21,zmm17,zmm2 - vpxorq zmm22,zmm22,zmm22 - vpmadd52luq zmm22,zmm3,zmm2 - vpxorq zmm23,zmm23,zmm23 - vpmadd52huq zmm23,zmm3,zmm2 - - vmovdqu64 zmm26,ZMMWORD[rsi] - vmovdqu64 zmm27,ZMMWORD[64+rsi] - lea rsi,[128+rsi] - vpmadd52luq zmm18,zmm3,zmm0 - vpmadd52huq zmm19,zmm3,zmm0 - vpmadd52luq zmm20,zmm4,zmm0 - vpmadd52huq zmm21,zmm4,zmm0 - vpmadd52luq zmm22,zmm5,zmm0 - vpmadd52huq zmm23,zmm5,zmm0 - - vpunpcklqdq zmm25,zmm26,zmm27 - vpunpckhqdq zmm27,zmm26,zmm27 - vpmadd52luq zmm18,zmm17,zmm1 - vpmadd52huq zmm19,zmm17,zmm1 - vpmadd52luq zmm20,zmm3,zmm1 - vpmadd52huq zmm21,zmm3,zmm1 - vpmadd52luq zmm22,zmm4,zmm1 - vpmadd52huq zmm23,zmm4,zmm1 - - - - vpsrlq zmm30,zmm18,44 - vpsllq zmm19,zmm19,8 - vpandq zmm0,zmm18,zmm28 - vpaddq zmm19,zmm19,zmm30 - - vpsrlq zmm26,zmm27,24 - vporq zmm26,zmm26,zmm31 - vpaddq zmm20,zmm20,zmm19 - - vpsrlq zmm30,zmm20,44 - vpsllq zmm21,zmm21,8 - vpandq zmm1,zmm20,zmm28 - vpaddq zmm21,zmm21,zmm30 - - vpandq zmm24,zmm25,zmm28 - vpsrlq zmm25,zmm25,44 - vpsllq zmm27,zmm27,20 - vpaddq zmm22,zmm22,zmm21 - - vpsrlq zmm30,zmm22,42 - vpsllq zmm23,zmm23,10 - vpandq zmm2,zmm22,zmm29 - vpaddq zmm23,zmm23,zmm30 - - vpaddq zmm2,zmm2,zmm26 - vpaddq zmm0,zmm0,zmm23 - vpsllq zmm23,zmm23,2 - - vpaddq zmm0,zmm0,zmm23 - vporq zmm25,zmm25,zmm27 - vpandq zmm25,zmm25,zmm28 - - vpsrlq zmm30,zmm0,44 - vpandq zmm0,zmm0,zmm28 - - vpaddq zmm1,zmm1,zmm30 - - sub rdx,8 - jnz NEAR $L$oop_vpmadd52_8x - -$L$tail_vpmadd52_8x: - - vpaddq zmm0,zmm0,zmm24 - vpaddq zmm1,zmm1,zmm25 - - vpxorq zmm18,zmm18,zmm18 - vpmadd52luq zmm18,zmm9,zmm2 - vpxorq zmm19,zmm19,zmm19 - vpmadd52huq zmm19,zmm9,zmm2 - vpxorq zmm20,zmm20,zmm20 - vpmadd52luq zmm20,zmm10,zmm2 - vpxorq zmm21,zmm21,zmm21 - vpmadd52huq zmm21,zmm10,zmm2 - vpxorq zmm22,zmm22,zmm22 - vpmadd52luq zmm22,zmm6,zmm2 - vpxorq zmm23,zmm23,zmm23 - vpmadd52huq zmm23,zmm6,zmm2 - - vpmadd52luq zmm18,zmm6,zmm0 - vpmadd52huq zmm19,zmm6,zmm0 - vpmadd52luq zmm20,zmm7,zmm0 - vpmadd52huq zmm21,zmm7,zmm0 - vpmadd52luq zmm22,zmm8,zmm0 - vpmadd52huq zmm23,zmm8,zmm0 - - vpmadd52luq zmm18,zmm10,zmm1 - vpmadd52huq zmm19,zmm10,zmm1 - vpmadd52luq zmm20,zmm6,zmm1 - vpmadd52huq zmm21,zmm6,zmm1 - vpmadd52luq zmm22,zmm7,zmm1 - vpmadd52huq zmm23,zmm7,zmm1 - - - - - mov eax,1 - kmovw k1,eax - vpsrldq zmm24,zmm18,8 - vpsrldq zmm0,zmm19,8 - vpsrldq zmm25,zmm20,8 - vpsrldq zmm1,zmm21,8 - vpaddq zmm18,zmm18,zmm24 - vpaddq zmm19,zmm19,zmm0 - vpsrldq zmm26,zmm22,8 - vpsrldq zmm2,zmm23,8 - vpaddq zmm20,zmm20,zmm25 - vpaddq zmm21,zmm21,zmm1 - vpermq zmm24,zmm18,0x2 - vpermq zmm0,zmm19,0x2 - vpaddq zmm22,zmm22,zmm26 - vpaddq zmm23,zmm23,zmm2 - - vpermq zmm25,zmm20,0x2 - vpermq zmm1,zmm21,0x2 - vpaddq zmm18,zmm18,zmm24 - vpaddq zmm19,zmm19,zmm0 - vpermq zmm26,zmm22,0x2 - vpermq zmm2,zmm23,0x2 - vpaddq zmm20,zmm20,zmm25 - vpaddq zmm21,zmm21,zmm1 - vextracti64x4 ymm24,zmm18,1 - vextracti64x4 ymm0,zmm19,1 - vpaddq zmm22,zmm22,zmm26 - vpaddq zmm23,zmm23,zmm2 - - vextracti64x4 ymm25,zmm20,1 - vextracti64x4 ymm1,zmm21,1 - vextracti64x4 ymm26,zmm22,1 - vextracti64x4 ymm2,zmm23,1 - vpaddq ymm18{k1}{z},ymm18,ymm24 - vpaddq ymm19{k1}{z},ymm19,ymm0 - vpaddq ymm20{k1}{z},ymm20,ymm25 - vpaddq ymm21{k1}{z},ymm21,ymm1 - vpaddq ymm22{k1}{z},ymm22,ymm26 - vpaddq ymm23{k1}{z},ymm23,ymm2 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - - - vmovq QWORD[rdi],xmm0 - vmovq QWORD[8+rdi],xmm1 - vmovq QWORD[16+rdi],xmm2 - vzeroall - -$L$no_data_vpmadd52_8x: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52_8x: - -ALIGN 32 -poly1305_emit_base2_44: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_emit_base2_44: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - -DB 243,15,30,250 - mov r8,QWORD[rdi] - mov r9,QWORD[8+rdi] - mov r10,QWORD[16+rdi] - - mov rax,r9 - shr r9,20 - shl rax,44 - mov rcx,r10 - shr r10,40 - shl rcx,24 - - add r8,rax - adc r9,rcx - adc r10,0 - - mov rax,r8 - add r8,5 - mov rcx,r9 - adc r9,0 - adc r10,0 - shr r10,2 - cmovnz rax,r8 - cmovnz rcx,r9 - - add rax,QWORD[rdx] - adc rcx,QWORD[8+rdx] - mov QWORD[rsi],rax - mov QWORD[8+rsi],rcx - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_emit_base2_44: ALIGN 64 $L$const: $L$mask24: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm index 08fdeedbf613bf..243ea4184ec432 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/configdata.pm @@ -168,7 +168,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -219,7 +219,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -271,11 +271,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -290,7 +290,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x56478be29bd0)", + "RANLIB" => "CODE(0x55a9fd66b620)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -356,7 +356,7 @@ our %target = ( "mtoutflag" => "-outputresource:", "multilib" => "-x64", "perl_platform" => "Windows::MSVC", - "perlasm_scheme" => "auto", + "perlasm_scheme" => "nasm", "rcoutflag" => "/fo", "shared_cflag" => "", "shared_defflag" => "", diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h index 196661655556bf..ebb9fb26fed3ea 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:42:38 2023 UTC" +#define DATE "built on: Thu Oct 26 15:03:45 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm index 26f683384d1806..fb3823608c949b 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/crypto/poly1305/poly1305-x86_64.asm @@ -46,11 +46,6 @@ $L$SEH_begin_poly1305_init: lea rax,[poly1305_blocks_avx2] bt r9,37 cmovc r10,rax - mov rax,2149646336 - shr r9,32 - and r9,rax - cmp r9,rax - je NEAR $L$init_base2_44 mov rax,0x0ffffffc0fffffff mov rcx,0x0ffffffc0ffffffc and rax,QWORD[rsi] @@ -2605,1029 +2600,6 @@ $L$do_avx512_epilogue: DB 0F3h,0C3h ;repret $L$SEH_end_poly1305_blocks_avx512: - -ALIGN 32 -poly1305_init_base2_44: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_init_base2_44: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - - xor rax,rax - mov QWORD[rdi],rax - mov QWORD[8+rdi],rax - mov QWORD[16+rdi],rax - -$L$init_base2_44: - lea r10,[poly1305_blocks_vpmadd52] - lea r11,[poly1305_emit_base2_44] - - mov rax,0x0ffffffc0fffffff - mov rcx,0x0ffffffc0ffffffc - and rax,QWORD[rsi] - mov r8,0x00000fffffffffff - and rcx,QWORD[8+rsi] - mov r9,0x00000fffffffffff - and r8,rax - shrd rax,rcx,44 - mov QWORD[40+rdi],r8 - and rax,r9 - shr rcx,24 - mov QWORD[48+rdi],rax - lea rax,[rax*4+rax] - mov QWORD[56+rdi],rcx - shl rax,2 - lea rcx,[rcx*4+rcx] - shl rcx,2 - mov QWORD[24+rdi],rax - mov QWORD[32+rdi],rcx - mov QWORD[64+rdi],-1 - mov QWORD[rdx],r10 - mov QWORD[8+rdx],r11 - mov eax,1 - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_init_base2_44: - -ALIGN 32 -poly1305_blocks_vpmadd52: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - -DB 243,15,30,250 - shr rdx,4 - jz NEAR $L$no_data_vpmadd52 - - shl rcx,40 - mov r8,QWORD[64+rdi] - - - - - - - mov rax,3 - mov r10,1 - cmp rdx,4 - cmovae rax,r10 - test r8,r8 - cmovns rax,r10 - - and rax,rdx - jz NEAR $L$blocks_vpmadd52_4x - - sub rdx,rax - mov r10d,7 - mov r11d,1 - kmovw k7,r10d - lea r10,[$L$2_44_inp_permd] - kmovw k1,r11d - - vmovq xmm21,rcx - vmovdqa64 ymm19,YMMWORD[r10] - vmovdqa64 ymm20,YMMWORD[32+r10] - vpermq ymm21,ymm21,0xcf - vmovdqa64 ymm22,YMMWORD[64+r10] - - vmovdqu64 ymm16{k7}{z},[rdi] - vmovdqu64 ymm3{k7}{z},[40+rdi] - vmovdqu64 ymm4{k7}{z},[32+rdi] - vmovdqu64 ymm5{k7}{z},[24+rdi] - - vmovdqa64 ymm23,YMMWORD[96+r10] - vmovdqa64 ymm24,YMMWORD[128+r10] - - jmp NEAR $L$oop_vpmadd52 - -ALIGN 32 -$L$oop_vpmadd52: - vmovdqu32 xmm18,XMMWORD[rsi] - lea rsi,[16+rsi] - - vpermd ymm18,ymm19,ymm18 - vpsrlvq ymm18,ymm18,ymm20 - vpandq ymm18,ymm18,ymm22 - vporq ymm18,ymm18,ymm21 - - vpaddq ymm16,ymm16,ymm18 - - vpermq ymm0{k7}{z},ymm16,0 - vpermq ymm1{k7}{z},ymm16,85 - vpermq ymm2{k7}{z},ymm16,170 - - vpxord ymm16,ymm16,ymm16 - vpxord ymm17,ymm17,ymm17 - - vpmadd52luq ymm16,ymm0,ymm3 - vpmadd52huq ymm17,ymm0,ymm3 - - vpmadd52luq ymm16,ymm1,ymm4 - vpmadd52huq ymm17,ymm1,ymm4 - - vpmadd52luq ymm16,ymm2,ymm5 - vpmadd52huq ymm17,ymm2,ymm5 - - vpsrlvq ymm18,ymm16,ymm23 - vpsllvq ymm17,ymm17,ymm24 - vpandq ymm16,ymm16,ymm22 - - vpaddq ymm17,ymm17,ymm18 - - vpermq ymm17,ymm17,147 - - vpaddq ymm16,ymm16,ymm17 - - vpsrlvq ymm18,ymm16,ymm23 - vpandq ymm16,ymm16,ymm22 - - vpermq ymm18,ymm18,147 - - vpaddq ymm16,ymm16,ymm18 - - vpermq ymm18{k1}{z},ymm16,147 - - vpaddq ymm16,ymm16,ymm18 - vpsllq ymm18,ymm18,2 - - vpaddq ymm16,ymm16,ymm18 - - dec rax - jnz NEAR $L$oop_vpmadd52 - - vmovdqu64 YMMWORD[rdi]{k7},ymm16 - - test rdx,rdx - jnz NEAR $L$blocks_vpmadd52_4x - -$L$no_data_vpmadd52: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52: - -ALIGN 32 -poly1305_blocks_vpmadd52_4x: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52_4x: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - - shr rdx,4 - jz NEAR $L$no_data_vpmadd52_4x - - shl rcx,40 - mov r8,QWORD[64+rdi] - -$L$blocks_vpmadd52_4x: - vpbroadcastq ymm31,rcx - - vmovdqa64 ymm28,YMMWORD[$L$x_mask44] - mov eax,5 - vmovdqa64 ymm29,YMMWORD[$L$x_mask42] - kmovw k1,eax - - test r8,r8 - js NEAR $L$init_vpmadd52 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - - test rdx,3 - jnz NEAR $L$blocks_vpmadd52_2x_do - -$L$blocks_vpmadd52_4x_do: - vpbroadcastq ymm3,QWORD[64+rdi] - vpbroadcastq ymm4,QWORD[96+rdi] - vpbroadcastq ymm5,QWORD[128+rdi] - vpbroadcastq ymm16,QWORD[160+rdi] - -$L$blocks_vpmadd52_4x_key_loaded: - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - test rdx,7 - jz NEAR $L$blocks_vpmadd52_8x - - vmovdqu64 ymm26,YMMWORD[rsi] - vmovdqu64 ymm27,YMMWORD[32+rsi] - lea rsi,[64+rsi] - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - - - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm2,ymm2,ymm26 - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - sub rdx,4 - jz NEAR $L$tail_vpmadd52_4x - jmp NEAR $L$oop_vpmadd52_4x - ud2 - -ALIGN 32 -$L$init_vpmadd52: - vmovq xmm16,QWORD[24+rdi] - vmovq xmm2,QWORD[56+rdi] - vmovq xmm17,QWORD[32+rdi] - vmovq xmm3,QWORD[40+rdi] - vmovq xmm4,QWORD[48+rdi] - - vmovdqa ymm0,ymm3 - vmovdqa ymm1,ymm4 - vmovdqa ymm5,ymm2 - - mov eax,2 - -$L$mul_init_vpmadd52: - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - dec eax - jz NEAR $L$done_init_vpmadd52 - - vpunpcklqdq ymm4,ymm1,ymm4 - vpbroadcastq xmm1,xmm1 - vpunpcklqdq ymm5,ymm2,ymm5 - vpbroadcastq xmm2,xmm2 - vpunpcklqdq ymm3,ymm0,ymm3 - vpbroadcastq xmm0,xmm0 - - vpsllq ymm16,ymm4,2 - vpsllq ymm17,ymm5,2 - vpaddq ymm16,ymm16,ymm4 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm16,ymm16,2 - vpsllq ymm17,ymm17,2 - - jmp NEAR $L$mul_init_vpmadd52 - ud2 - -ALIGN 32 -$L$done_init_vpmadd52: - vinserti128 ymm4,ymm1,xmm4,1 - vinserti128 ymm5,ymm2,xmm5,1 - vinserti128 ymm3,ymm0,xmm3,1 - - vpermq ymm4,ymm4,216 - vpermq ymm5,ymm5,216 - vpermq ymm3,ymm3,216 - - vpsllq ymm16,ymm4,2 - vpaddq ymm16,ymm16,ymm4 - vpsllq ymm16,ymm16,2 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - - test rdx,3 - jnz NEAR $L$done_init_vpmadd52_2x - - vmovdqu64 YMMWORD[64+rdi],ymm3 - vpbroadcastq ymm3,xmm3 - vmovdqu64 YMMWORD[96+rdi],ymm4 - vpbroadcastq ymm4,xmm4 - vmovdqu64 YMMWORD[128+rdi],ymm5 - vpbroadcastq ymm5,xmm5 - vmovdqu64 YMMWORD[160+rdi],ymm16 - vpbroadcastq ymm16,xmm16 - - jmp NEAR $L$blocks_vpmadd52_4x_key_loaded - ud2 - -ALIGN 32 -$L$done_init_vpmadd52_2x: - vmovdqu64 YMMWORD[64+rdi],ymm3 - vpsrldq ymm3,ymm3,8 - vmovdqu64 YMMWORD[96+rdi],ymm4 - vpsrldq ymm4,ymm4,8 - vmovdqu64 YMMWORD[128+rdi],ymm5 - vpsrldq ymm5,ymm5,8 - vmovdqu64 YMMWORD[160+rdi],ymm16 - vpsrldq ymm16,ymm16,8 - jmp NEAR $L$blocks_vpmadd52_2x_key_loaded - ud2 - -ALIGN 32 -$L$blocks_vpmadd52_2x_do: - vmovdqu64 ymm5{k1}{z},[((128+8))+rdi] - vmovdqu64 ymm16{k1}{z},[((160+8))+rdi] - vmovdqu64 ymm3{k1}{z},[((64+8))+rdi] - vmovdqu64 ymm4{k1}{z},[((96+8))+rdi] - -$L$blocks_vpmadd52_2x_key_loaded: - vmovdqu64 ymm26,YMMWORD[rsi] - vpxorq ymm27,ymm27,ymm27 - lea rsi,[32+rsi] - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - - - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm2,ymm2,ymm26 - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - jmp NEAR $L$tail_vpmadd52_2x - ud2 - -ALIGN 32 -$L$oop_vpmadd52_4x: - - vpaddq ymm0,ymm0,ymm24 - vpaddq ymm1,ymm1,ymm25 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vmovdqu64 ymm26,YMMWORD[rsi] - vmovdqu64 ymm27,YMMWORD[32+rsi] - lea rsi,[64+rsi] - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpunpcklqdq ymm25,ymm26,ymm27 - vpunpckhqdq ymm27,ymm26,ymm27 - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpsrlq ymm26,ymm27,24 - vporq ymm26,ymm26,ymm31 - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpandq ymm24,ymm25,ymm28 - vpsrlq ymm25,ymm25,44 - vpsllq ymm27,ymm27,20 - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm2,ymm2,ymm26 - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - vporq ymm25,ymm25,ymm27 - vpandq ymm25,ymm25,ymm28 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - sub rdx,4 - jnz NEAR $L$oop_vpmadd52_4x - -$L$tail_vpmadd52_4x: - vmovdqu64 ymm5,YMMWORD[128+rdi] - vmovdqu64 ymm16,YMMWORD[160+rdi] - vmovdqu64 ymm3,YMMWORD[64+rdi] - vmovdqu64 ymm4,YMMWORD[96+rdi] - -$L$tail_vpmadd52_2x: - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - - vpaddq ymm0,ymm0,ymm24 - vpaddq ymm1,ymm1,ymm25 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm2 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm2 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm2 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm2 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm2 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm2 - - vpmadd52luq ymm18,ymm3,ymm0 - vpmadd52huq ymm19,ymm3,ymm0 - vpmadd52luq ymm20,ymm4,ymm0 - vpmadd52huq ymm21,ymm4,ymm0 - vpmadd52luq ymm22,ymm5,ymm0 - vpmadd52huq ymm23,ymm5,ymm0 - - vpmadd52luq ymm18,ymm17,ymm1 - vpmadd52huq ymm19,ymm17,ymm1 - vpmadd52luq ymm20,ymm3,ymm1 - vpmadd52huq ymm21,ymm3,ymm1 - vpmadd52luq ymm22,ymm4,ymm1 - vpmadd52huq ymm23,ymm4,ymm1 - - - - - mov eax,1 - kmovw k1,eax - vpsrldq ymm24,ymm18,8 - vpsrldq ymm0,ymm19,8 - vpsrldq ymm25,ymm20,8 - vpsrldq ymm1,ymm21,8 - vpaddq ymm18,ymm18,ymm24 - vpaddq ymm19,ymm19,ymm0 - vpsrldq ymm26,ymm22,8 - vpsrldq ymm2,ymm23,8 - vpaddq ymm20,ymm20,ymm25 - vpaddq ymm21,ymm21,ymm1 - vpermq ymm24,ymm18,0x2 - vpermq ymm0,ymm19,0x2 - vpaddq ymm22,ymm22,ymm26 - vpaddq ymm23,ymm23,ymm2 - - vpermq ymm25,ymm20,0x2 - vpermq ymm1,ymm21,0x2 - vpaddq ymm18{k1}{z},ymm18,ymm24 - vpaddq ymm19{k1}{z},ymm19,ymm0 - vpermq ymm26,ymm22,0x2 - vpermq ymm2,ymm23,0x2 - vpaddq ymm20{k1}{z},ymm20,ymm25 - vpaddq ymm21{k1}{z},ymm21,ymm1 - vpaddq ymm22{k1}{z},ymm22,ymm26 - vpaddq ymm23{k1}{z},ymm23,ymm2 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - - sub rdx,2 - ja NEAR $L$blocks_vpmadd52_4x_do - - vmovq QWORD[rdi],xmm0 - vmovq QWORD[8+rdi],xmm1 - vmovq QWORD[16+rdi],xmm2 - vzeroall - -$L$no_data_vpmadd52_4x: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52_4x: - -ALIGN 32 -poly1305_blocks_vpmadd52_8x: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_blocks_vpmadd52_8x: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - mov rcx,r9 - - - - shr rdx,4 - jz NEAR $L$no_data_vpmadd52_8x - - shl rcx,40 - mov r8,QWORD[64+rdi] - - vmovdqa64 ymm28,YMMWORD[$L$x_mask44] - vmovdqa64 ymm29,YMMWORD[$L$x_mask42] - - test r8,r8 - js NEAR $L$init_vpmadd52 - - vmovq xmm0,QWORD[rdi] - vmovq xmm1,QWORD[8+rdi] - vmovq xmm2,QWORD[16+rdi] - -$L$blocks_vpmadd52_8x: - - - - vmovdqu64 ymm5,YMMWORD[128+rdi] - vmovdqu64 ymm16,YMMWORD[160+rdi] - vmovdqu64 ymm3,YMMWORD[64+rdi] - vmovdqu64 ymm4,YMMWORD[96+rdi] - - vpsllq ymm17,ymm5,2 - vpaddq ymm17,ymm17,ymm5 - vpsllq ymm17,ymm17,2 - - vpbroadcastq ymm8,xmm5 - vpbroadcastq ymm6,xmm3 - vpbroadcastq ymm7,xmm4 - - vpxorq ymm18,ymm18,ymm18 - vpmadd52luq ymm18,ymm16,ymm8 - vpxorq ymm19,ymm19,ymm19 - vpmadd52huq ymm19,ymm16,ymm8 - vpxorq ymm20,ymm20,ymm20 - vpmadd52luq ymm20,ymm17,ymm8 - vpxorq ymm21,ymm21,ymm21 - vpmadd52huq ymm21,ymm17,ymm8 - vpxorq ymm22,ymm22,ymm22 - vpmadd52luq ymm22,ymm3,ymm8 - vpxorq ymm23,ymm23,ymm23 - vpmadd52huq ymm23,ymm3,ymm8 - - vpmadd52luq ymm18,ymm3,ymm6 - vpmadd52huq ymm19,ymm3,ymm6 - vpmadd52luq ymm20,ymm4,ymm6 - vpmadd52huq ymm21,ymm4,ymm6 - vpmadd52luq ymm22,ymm5,ymm6 - vpmadd52huq ymm23,ymm5,ymm6 - - vpmadd52luq ymm18,ymm17,ymm7 - vpmadd52huq ymm19,ymm17,ymm7 - vpmadd52luq ymm20,ymm3,ymm7 - vpmadd52huq ymm21,ymm3,ymm7 - vpmadd52luq ymm22,ymm4,ymm7 - vpmadd52huq ymm23,ymm4,ymm7 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm6,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm7,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm8,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm6,ymm6,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm6,ymm6,ymm23 - - vpsrlq ymm30,ymm6,44 - vpandq ymm6,ymm6,ymm28 - - vpaddq ymm7,ymm7,ymm30 - - - - - - vpunpcklqdq ymm26,ymm8,ymm5 - vpunpckhqdq ymm5,ymm8,ymm5 - vpunpcklqdq ymm24,ymm6,ymm3 - vpunpckhqdq ymm3,ymm6,ymm3 - vpunpcklqdq ymm25,ymm7,ymm4 - vpunpckhqdq ymm4,ymm7,ymm4 - vshufi64x2 zmm8,zmm26,zmm5,0x44 - vshufi64x2 zmm6,zmm24,zmm3,0x44 - vshufi64x2 zmm7,zmm25,zmm4,0x44 - - vmovdqu64 zmm26,ZMMWORD[rsi] - vmovdqu64 zmm27,ZMMWORD[64+rsi] - lea rsi,[128+rsi] - - vpsllq zmm10,zmm8,2 - vpsllq zmm9,zmm7,2 - vpaddq zmm10,zmm10,zmm8 - vpaddq zmm9,zmm9,zmm7 - vpsllq zmm10,zmm10,2 - vpsllq zmm9,zmm9,2 - - vpbroadcastq zmm31,rcx - vpbroadcastq zmm28,xmm28 - vpbroadcastq zmm29,xmm29 - - vpbroadcastq zmm16,xmm9 - vpbroadcastq zmm17,xmm10 - vpbroadcastq zmm3,xmm6 - vpbroadcastq zmm4,xmm7 - vpbroadcastq zmm5,xmm8 - - vpunpcklqdq zmm25,zmm26,zmm27 - vpunpckhqdq zmm27,zmm26,zmm27 - - - - vpsrlq zmm26,zmm27,24 - vporq zmm26,zmm26,zmm31 - vpaddq zmm2,zmm2,zmm26 - vpandq zmm24,zmm25,zmm28 - vpsrlq zmm25,zmm25,44 - vpsllq zmm27,zmm27,20 - vporq zmm25,zmm25,zmm27 - vpandq zmm25,zmm25,zmm28 - - sub rdx,8 - jz NEAR $L$tail_vpmadd52_8x - jmp NEAR $L$oop_vpmadd52_8x - -ALIGN 32 -$L$oop_vpmadd52_8x: - - vpaddq zmm0,zmm0,zmm24 - vpaddq zmm1,zmm1,zmm25 - - vpxorq zmm18,zmm18,zmm18 - vpmadd52luq zmm18,zmm16,zmm2 - vpxorq zmm19,zmm19,zmm19 - vpmadd52huq zmm19,zmm16,zmm2 - vpxorq zmm20,zmm20,zmm20 - vpmadd52luq zmm20,zmm17,zmm2 - vpxorq zmm21,zmm21,zmm21 - vpmadd52huq zmm21,zmm17,zmm2 - vpxorq zmm22,zmm22,zmm22 - vpmadd52luq zmm22,zmm3,zmm2 - vpxorq zmm23,zmm23,zmm23 - vpmadd52huq zmm23,zmm3,zmm2 - - vmovdqu64 zmm26,ZMMWORD[rsi] - vmovdqu64 zmm27,ZMMWORD[64+rsi] - lea rsi,[128+rsi] - vpmadd52luq zmm18,zmm3,zmm0 - vpmadd52huq zmm19,zmm3,zmm0 - vpmadd52luq zmm20,zmm4,zmm0 - vpmadd52huq zmm21,zmm4,zmm0 - vpmadd52luq zmm22,zmm5,zmm0 - vpmadd52huq zmm23,zmm5,zmm0 - - vpunpcklqdq zmm25,zmm26,zmm27 - vpunpckhqdq zmm27,zmm26,zmm27 - vpmadd52luq zmm18,zmm17,zmm1 - vpmadd52huq zmm19,zmm17,zmm1 - vpmadd52luq zmm20,zmm3,zmm1 - vpmadd52huq zmm21,zmm3,zmm1 - vpmadd52luq zmm22,zmm4,zmm1 - vpmadd52huq zmm23,zmm4,zmm1 - - - - vpsrlq zmm30,zmm18,44 - vpsllq zmm19,zmm19,8 - vpandq zmm0,zmm18,zmm28 - vpaddq zmm19,zmm19,zmm30 - - vpsrlq zmm26,zmm27,24 - vporq zmm26,zmm26,zmm31 - vpaddq zmm20,zmm20,zmm19 - - vpsrlq zmm30,zmm20,44 - vpsllq zmm21,zmm21,8 - vpandq zmm1,zmm20,zmm28 - vpaddq zmm21,zmm21,zmm30 - - vpandq zmm24,zmm25,zmm28 - vpsrlq zmm25,zmm25,44 - vpsllq zmm27,zmm27,20 - vpaddq zmm22,zmm22,zmm21 - - vpsrlq zmm30,zmm22,42 - vpsllq zmm23,zmm23,10 - vpandq zmm2,zmm22,zmm29 - vpaddq zmm23,zmm23,zmm30 - - vpaddq zmm2,zmm2,zmm26 - vpaddq zmm0,zmm0,zmm23 - vpsllq zmm23,zmm23,2 - - vpaddq zmm0,zmm0,zmm23 - vporq zmm25,zmm25,zmm27 - vpandq zmm25,zmm25,zmm28 - - vpsrlq zmm30,zmm0,44 - vpandq zmm0,zmm0,zmm28 - - vpaddq zmm1,zmm1,zmm30 - - sub rdx,8 - jnz NEAR $L$oop_vpmadd52_8x - -$L$tail_vpmadd52_8x: - - vpaddq zmm0,zmm0,zmm24 - vpaddq zmm1,zmm1,zmm25 - - vpxorq zmm18,zmm18,zmm18 - vpmadd52luq zmm18,zmm9,zmm2 - vpxorq zmm19,zmm19,zmm19 - vpmadd52huq zmm19,zmm9,zmm2 - vpxorq zmm20,zmm20,zmm20 - vpmadd52luq zmm20,zmm10,zmm2 - vpxorq zmm21,zmm21,zmm21 - vpmadd52huq zmm21,zmm10,zmm2 - vpxorq zmm22,zmm22,zmm22 - vpmadd52luq zmm22,zmm6,zmm2 - vpxorq zmm23,zmm23,zmm23 - vpmadd52huq zmm23,zmm6,zmm2 - - vpmadd52luq zmm18,zmm6,zmm0 - vpmadd52huq zmm19,zmm6,zmm0 - vpmadd52luq zmm20,zmm7,zmm0 - vpmadd52huq zmm21,zmm7,zmm0 - vpmadd52luq zmm22,zmm8,zmm0 - vpmadd52huq zmm23,zmm8,zmm0 - - vpmadd52luq zmm18,zmm10,zmm1 - vpmadd52huq zmm19,zmm10,zmm1 - vpmadd52luq zmm20,zmm6,zmm1 - vpmadd52huq zmm21,zmm6,zmm1 - vpmadd52luq zmm22,zmm7,zmm1 - vpmadd52huq zmm23,zmm7,zmm1 - - - - - mov eax,1 - kmovw k1,eax - vpsrldq zmm24,zmm18,8 - vpsrldq zmm0,zmm19,8 - vpsrldq zmm25,zmm20,8 - vpsrldq zmm1,zmm21,8 - vpaddq zmm18,zmm18,zmm24 - vpaddq zmm19,zmm19,zmm0 - vpsrldq zmm26,zmm22,8 - vpsrldq zmm2,zmm23,8 - vpaddq zmm20,zmm20,zmm25 - vpaddq zmm21,zmm21,zmm1 - vpermq zmm24,zmm18,0x2 - vpermq zmm0,zmm19,0x2 - vpaddq zmm22,zmm22,zmm26 - vpaddq zmm23,zmm23,zmm2 - - vpermq zmm25,zmm20,0x2 - vpermq zmm1,zmm21,0x2 - vpaddq zmm18,zmm18,zmm24 - vpaddq zmm19,zmm19,zmm0 - vpermq zmm26,zmm22,0x2 - vpermq zmm2,zmm23,0x2 - vpaddq zmm20,zmm20,zmm25 - vpaddq zmm21,zmm21,zmm1 - vextracti64x4 ymm24,zmm18,1 - vextracti64x4 ymm0,zmm19,1 - vpaddq zmm22,zmm22,zmm26 - vpaddq zmm23,zmm23,zmm2 - - vextracti64x4 ymm25,zmm20,1 - vextracti64x4 ymm1,zmm21,1 - vextracti64x4 ymm26,zmm22,1 - vextracti64x4 ymm2,zmm23,1 - vpaddq ymm18{k1}{z},ymm18,ymm24 - vpaddq ymm19{k1}{z},ymm19,ymm0 - vpaddq ymm20{k1}{z},ymm20,ymm25 - vpaddq ymm21{k1}{z},ymm21,ymm1 - vpaddq ymm22{k1}{z},ymm22,ymm26 - vpaddq ymm23{k1}{z},ymm23,ymm2 - - - - vpsrlq ymm30,ymm18,44 - vpsllq ymm19,ymm19,8 - vpandq ymm0,ymm18,ymm28 - vpaddq ymm19,ymm19,ymm30 - - vpaddq ymm20,ymm20,ymm19 - - vpsrlq ymm30,ymm20,44 - vpsllq ymm21,ymm21,8 - vpandq ymm1,ymm20,ymm28 - vpaddq ymm21,ymm21,ymm30 - - vpaddq ymm22,ymm22,ymm21 - - vpsrlq ymm30,ymm22,42 - vpsllq ymm23,ymm23,10 - vpandq ymm2,ymm22,ymm29 - vpaddq ymm23,ymm23,ymm30 - - vpaddq ymm0,ymm0,ymm23 - vpsllq ymm23,ymm23,2 - - vpaddq ymm0,ymm0,ymm23 - - vpsrlq ymm30,ymm0,44 - vpandq ymm0,ymm0,ymm28 - - vpaddq ymm1,ymm1,ymm30 - - - - vmovq QWORD[rdi],xmm0 - vmovq QWORD[8+rdi],xmm1 - vmovq QWORD[16+rdi],xmm2 - vzeroall - -$L$no_data_vpmadd52_8x: - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_blocks_vpmadd52_8x: - -ALIGN 32 -poly1305_emit_base2_44: - mov QWORD[8+rsp],rdi ;WIN64 prologue - mov QWORD[16+rsp],rsi - mov rax,rsp -$L$SEH_begin_poly1305_emit_base2_44: - mov rdi,rcx - mov rsi,rdx - mov rdx,r8 - - - -DB 243,15,30,250 - mov r8,QWORD[rdi] - mov r9,QWORD[8+rdi] - mov r10,QWORD[16+rdi] - - mov rax,r9 - shr r9,20 - shl rax,44 - mov rcx,r10 - shr r10,40 - shl rcx,24 - - add r8,rax - adc r9,rcx - adc r10,0 - - mov rax,r8 - add r8,5 - mov rcx,r9 - adc r9,0 - adc r10,0 - shr r10,2 - cmovnz rax,r8 - cmovnz rcx,r9 - - add rax,QWORD[rdx] - adc rcx,QWORD[8+rdx] - mov QWORD[rsi],rax - mov QWORD[8+rsi],rcx - - mov rdi,QWORD[8+rsp] ;WIN64 epilogue - mov rsi,QWORD[16+rsp] - DB 0F3h,0C3h ;repret - -$L$SEH_end_poly1305_emit_base2_44: ALIGN 64 $L$const: $L$mask24: diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm index 37fe7ad1554464..8216effe724d74 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/configdata.pm @@ -166,7 +166,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -218,7 +218,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -271,11 +271,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "VC-WIN64A", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "lib", @@ -290,7 +290,7 @@ our %target = ( "LDFLAGS" => "/nologo /debug", "MT" => "mt", "MTFLAGS" => "-nologo", - "RANLIB" => "CODE(0x55ad7db3afe8)", + "RANLIB" => "CODE(0x555a33e1b438)", "RC" => "rc", "_conf_fname_int" => [ "Configurations/00-base-templates.conf", @@ -356,7 +356,7 @@ our %target = ( "mtoutflag" => "-outputresource:", "multilib" => "-x64", "perl_platform" => "Windows::MSVC", - "perlasm_scheme" => "auto", + "perlasm_scheme" => "nasm", "rcoutflag" => "/fo", "shared_cflag" => "", "shared_defflag" => "", diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h index f0e9d087e2267d..369ab9a8a4cd45 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: " -#define DATE "built on: Sun Aug 6 00:43:05 2023 UTC" +#define DATE "built on: Thu Oct 26 15:04:07 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h index 38b44f1054ad3d..a410f0eddf361c 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h index 3978fd087bca3b..0a95a93e59e262 100644 --- a/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/VC-WIN64A/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm index ca05289b718d86..510129745cd0c6 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar -X64", diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h index 3f01432e2b1840..7d0c5f9befa8ba 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Aug 6 00:24:21 2023 UTC" +#define DATE "built on: Thu Oct 26 14:47:40 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm index a8d6fc77f0ac2d..65c498fd6d0e27 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar -X64", diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h index ec624a65971b4b..f2880ddb869f23 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Aug 6 00:24:41 2023 UTC" +#define DATE "built on: Thu Oct 26 14:47:59 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm b/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm index fdfbcce8adc844..24ad5c6241368a 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -205,7 +205,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "aix64-gcc-as", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar -X64", diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h index 83233146a50c97..f7891d1f2dcf82 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: aix64-gcc-as" -#define DATE "built on: Sun Aug 6 00:25:01 2023 UTC" +#define DATE "built on: Thu Oct 26 14:48:18 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/aix64-gcc-as/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm index ba53b9f9cea130..ee6540933123b5 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h index e98ef7735cb4ed..10dc2211417972 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Aug 6 00:28:31 2023 UTC" +#define DATE "built on: Thu Oct 26 14:51:44 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm index a1999fe03a4772..6b70420111afc6 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h index 76159a1731d678..f2e82653eee930 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Aug 6 00:28:51 2023 UTC" +#define DATE "built on: Thu Oct 26 14:52:03 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm index 97fab50db92bdf..51670419239bfc 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -205,7 +205,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin-i386-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h index 67ace143c5c393..f9b9c4c980b695 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin-i386-cc" -#define DATE "built on: Sun Aug 6 00:29:11 2023 UTC" +#define DATE "built on: Thu Oct 26 14:52:23 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin-i386-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm index 9b51a15ef51371..532f2649c95127 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S index 5e3afc1ced813d..ae20ad9ff6fbcb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/aes/aesv8-armx.S @@ -103,7 +103,7 @@ L192: Loop192: tbl v6.16b,{v4.16b},v2.16b ext v5.16b,v0.16b,v3.16b,#12 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ st1 {v4.4s},[x2],#16 sub x2,x2,#8 #else @@ -1510,7 +1510,7 @@ _aes_v8_ctr32_encrypt_blocks: ldr w5,[x3,#240] ldr w8, [x4, #12] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ld1 {v0.16b},[x4] #else ld1 {v0.4s},[x4] @@ -1527,7 +1527,7 @@ _aes_v8_ctr32_encrypt_blocks: add x7,x3,#32 mov w6,w5 csel x12,xzr,x12,lo -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev w8, w8 #endif orr v1.16b,v0.16b,v0.16b diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h index 2e38ca1fc8f695..25b8011da926c1 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Aug 6 00:29:30 2023 UTC" +#define DATE "built on: Thu Oct 26 14:52:40 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S index 200c0d031253ea..dc71d8508de6f8 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/modes/ghashv8-armx.S @@ -101,7 +101,7 @@ _gcm_gmult_v8: movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... shl v19.2d,v19.2d,#57 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v3.16b,v17.16b,v17.16b,#8 @@ -126,7 +126,7 @@ _gcm_gmult_v8: eor v18.16b,v18.16b,v2.16b eor v0.16b,v0.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -163,14 +163,14 @@ _gcm_ghash_v8: ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b rev64 v0.16b,v0.16b #endif ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] b.lo Lodd_tail_v8 //x3 was less than 32 ld1 {v17.2d},[x2],x12 //load [rotated] I[1] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v7.16b,v17.16b,v17.16b,#8 @@ -202,13 +202,13 @@ Loop_mod2x_v8: eor v18.16b,v0.16b,v2.16b eor v1.16b,v1.16b,v17.16b ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b #endif eor v1.16b,v1.16b,v18.16b pmull v18.1q,v0.1d,v19.1d //1st phase of reduction -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ins v2.d[0],v1.d[1] @@ -258,7 +258,7 @@ Lodd_tail_v8: eor v0.16b,v0.16b,v18.16b Ldone_v8: -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -277,7 +277,7 @@ Lgcm_ghash_v8_4x: shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b @@ -321,7 +321,7 @@ Loop4x: eor v16.16b,v4.16b,v0.16b ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 ext v3.16b,v16.16b,v16.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v7.16b,v7.16b @@ -404,7 +404,7 @@ Lthree: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d,v6.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v4.16b,v4.16b @@ -456,7 +456,7 @@ Ltwo: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v4.16b,v4.16b #endif @@ -499,7 +499,7 @@ Lone: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v4.16b,v4.16b #endif @@ -539,7 +539,7 @@ Ldone4x: eor v0.16b,v0.16b,v18.16b ext v0.16b,v0.16b,v0.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif st1 {v0.2d},[x0] //write out Xi diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S index 90b6d357ac1483..a044e14cb61f5f 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/crypto/poly1305/poly1305-armv8.S @@ -28,7 +28,7 @@ _poly1305_init: ldp x7,x8,[x1] // load key mov x9,#0xfffffffc0fffffff movk x9,#0x0fff,lsl#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x7,x7 // flip bytes rev x8,x8 #endif @@ -75,7 +75,7 @@ Lpoly1305_blocks: Loop: ldp x10,x11,[x1],#16 // load input sub x2,x2,#16 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x10,x10 rev x11,x11 #endif @@ -140,13 +140,13 @@ Lpoly1305_emit: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif @@ -266,7 +266,7 @@ Lblocks_neon: adcs x5,x5,xzr adc x6,x6,xzr -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -312,7 +312,7 @@ Lbase2_64_neon: ldp x12,x13,[x1],#16 // load input sub x2,x2,#16 add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -397,7 +397,7 @@ Ldo_neon: lsl x3,x3,#24 add x15,x0,#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -433,7 +433,7 @@ Ldo_neon: ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 ld1 {v8.4s},[x15] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -494,7 +494,7 @@ Loop_neon: umull v20.2d,v14.2s,v1.s[2] ldp x9,x13,[x16],#48 umull v19.2d,v14.2s,v0.s[2] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -559,7 +559,7 @@ Loop_neon: umlal v23.2d,v11.2s,v3.s[0] umlal v20.2d,v11.2s,v8.s[0] umlal v21.2d,v11.2s,v0.s[0] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -840,13 +840,13 @@ Lpoly1305_emit_neon: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm index a465039cbfa855..ce36db2197645b 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S index 5e3afc1ced813d..ae20ad9ff6fbcb 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/aes/aesv8-armx.S @@ -103,7 +103,7 @@ L192: Loop192: tbl v6.16b,{v4.16b},v2.16b ext v5.16b,v0.16b,v3.16b,#12 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ st1 {v4.4s},[x2],#16 sub x2,x2,#8 #else @@ -1510,7 +1510,7 @@ _aes_v8_ctr32_encrypt_blocks: ldr w5,[x3,#240] ldr w8, [x4, #12] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ld1 {v0.16b},[x4] #else ld1 {v0.4s},[x4] @@ -1527,7 +1527,7 @@ _aes_v8_ctr32_encrypt_blocks: add x7,x3,#32 mov w6,w5 csel x12,xzr,x12,lo -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev w8, w8 #endif orr v1.16b,v0.16b,v0.16b diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h index 513091049d0260..398666786c6285 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Aug 6 00:29:49 2023 UTC" +#define DATE "built on: Thu Oct 26 14:52:59 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S index 200c0d031253ea..dc71d8508de6f8 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/modes/ghashv8-armx.S @@ -101,7 +101,7 @@ _gcm_gmult_v8: movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... shl v19.2d,v19.2d,#57 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v3.16b,v17.16b,v17.16b,#8 @@ -126,7 +126,7 @@ _gcm_gmult_v8: eor v18.16b,v18.16b,v2.16b eor v0.16b,v0.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -163,14 +163,14 @@ _gcm_ghash_v8: ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b rev64 v0.16b,v0.16b #endif ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] b.lo Lodd_tail_v8 //x3 was less than 32 ld1 {v17.2d},[x2],x12 //load [rotated] I[1] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v7.16b,v17.16b,v17.16b,#8 @@ -202,13 +202,13 @@ Loop_mod2x_v8: eor v18.16b,v0.16b,v2.16b eor v1.16b,v1.16b,v17.16b ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b #endif eor v1.16b,v1.16b,v18.16b pmull v18.1q,v0.1d,v19.1d //1st phase of reduction -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ins v2.d[0],v1.d[1] @@ -258,7 +258,7 @@ Lodd_tail_v8: eor v0.16b,v0.16b,v18.16b Ldone_v8: -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -277,7 +277,7 @@ Lgcm_ghash_v8_4x: shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b @@ -321,7 +321,7 @@ Loop4x: eor v16.16b,v4.16b,v0.16b ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 ext v3.16b,v16.16b,v16.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v7.16b,v7.16b @@ -404,7 +404,7 @@ Lthree: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d,v6.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v4.16b,v4.16b @@ -456,7 +456,7 @@ Ltwo: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v4.16b,v4.16b #endif @@ -499,7 +499,7 @@ Lone: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v4.16b,v4.16b #endif @@ -539,7 +539,7 @@ Ldone4x: eor v0.16b,v0.16b,v18.16b ext v0.16b,v0.16b,v0.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif st1 {v0.2d},[x0] //write out Xi diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S index 90b6d357ac1483..a044e14cb61f5f 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/crypto/poly1305/poly1305-armv8.S @@ -28,7 +28,7 @@ _poly1305_init: ldp x7,x8,[x1] // load key mov x9,#0xfffffffc0fffffff movk x9,#0x0fff,lsl#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x7,x7 // flip bytes rev x8,x8 #endif @@ -75,7 +75,7 @@ Lpoly1305_blocks: Loop: ldp x10,x11,[x1],#16 // load input sub x2,x2,#16 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x10,x10 rev x11,x11 #endif @@ -140,13 +140,13 @@ Lpoly1305_emit: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif @@ -266,7 +266,7 @@ Lblocks_neon: adcs x5,x5,xzr adc x6,x6,xzr -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -312,7 +312,7 @@ Lbase2_64_neon: ldp x12,x13,[x1],#16 // load input sub x2,x2,#16 add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -397,7 +397,7 @@ Ldo_neon: lsl x3,x3,#24 add x15,x0,#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -433,7 +433,7 @@ Ldo_neon: ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 ld1 {v8.4s},[x15] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -494,7 +494,7 @@ Loop_neon: umull v20.2d,v14.2s,v1.s[2] ldp x9,x13,[x16],#48 umull v19.2d,v14.2s,v0.s[2] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -559,7 +559,7 @@ Loop_neon: umlal v23.2d,v11.2s,v3.s[0] umlal v20.2d,v11.2s,v8.s[0] umlal v21.2d,v11.2s,v0.s[0] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -840,13 +840,13 @@ Lpoly1305_emit_neon: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm index 6519d8eb5ee0d2..d1c07ea505db01 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -205,7 +205,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-arm64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h index bf5b5aecd602cd..f8a747399b32f4 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-arm64-cc" -#define DATE "built on: Sun Aug 6 00:30:09 2023 UTC" +#define DATE "built on: Thu Oct 26 14:53:18 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-arm64-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm index 8f523192cad9d4..fbffdc36072be9 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h index 2c108157902d0c..5d70cfc584bb4c 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Aug 6 00:27:25 2023 UTC" +#define DATE "built on: Thu Oct 26 14:50:40 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm index d036b582d78c68..e76d49d0c7c8c4 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h index 994cec42e962cd..400bfc2f11b14f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Aug 6 00:27:49 2023 UTC" +#define DATE "built on: Thu Oct 26 14:51:03 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm index e85b222e7d012d..5b1ec98359201f 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -205,7 +205,7 @@ our %config = ( ], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -258,11 +258,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "darwin64-x86_64-cc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h index fb875ca7f85df2..935727e4cc5d08 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: darwin64-x86_64-cc" -#define DATE "built on: Sun Aug 6 00:28:13 2023 UTC" +#define DATE "built on: Thu Oct 26 14:51:26 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm index 8d48c4016f8c8b..fd7fbe3f636d8a 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S index 51c4d7208da2ba..0d2a81daf9d2bf 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/aes/aesv8-armx.S @@ -103,7 +103,7 @@ aes_v8_set_encrypt_key: .Loop192: tbl v6.16b,{v4.16b},v2.16b ext v5.16b,v0.16b,v3.16b,#12 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ st1 {v4.4s},[x2],#16 sub x2,x2,#8 #else @@ -1510,7 +1510,7 @@ aes_v8_ctr32_encrypt_blocks: ldr w5,[x3,#240] ldr w8, [x4, #12] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ld1 {v0.16b},[x4] #else ld1 {v0.4s},[x4] @@ -1527,7 +1527,7 @@ aes_v8_ctr32_encrypt_blocks: add x7,x3,#32 mov w6,w5 csel x12,xzr,x12,lo -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev w8, w8 #endif orr v1.16b,v0.16b,v0.16b diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h index 59ce7dfcd536af..aa138ec0af4f2f 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Aug 6 00:30:30 2023 UTC" +#define DATE "built on: Thu Oct 26 14:53:36 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S index acd52eb9568633..ea6a66a229e10f 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/modes/ghashv8-armx.S @@ -101,7 +101,7 @@ gcm_gmult_v8: movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... shl v19.2d,v19.2d,#57 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v3.16b,v17.16b,v17.16b,#8 @@ -126,7 +126,7 @@ gcm_gmult_v8: eor v18.16b,v18.16b,v2.16b eor v0.16b,v0.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -163,14 +163,14 @@ gcm_ghash_v8: ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b rev64 v0.16b,v0.16b #endif ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] b.lo .Lodd_tail_v8 //x3 was less than 32 ld1 {v17.2d},[x2],x12 //load [rotated] I[1] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v7.16b,v17.16b,v17.16b,#8 @@ -202,13 +202,13 @@ gcm_ghash_v8: eor v18.16b,v0.16b,v2.16b eor v1.16b,v1.16b,v17.16b ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b #endif eor v1.16b,v1.16b,v18.16b pmull v18.1q,v0.1d,v19.1d //1st phase of reduction -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ins v2.d[0],v1.d[1] @@ -258,7 +258,7 @@ gcm_ghash_v8: eor v0.16b,v0.16b,v18.16b .Ldone_v8: -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -277,7 +277,7 @@ gcm_ghash_v8_4x: shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b @@ -321,7 +321,7 @@ gcm_ghash_v8_4x: eor v16.16b,v4.16b,v0.16b ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 ext v3.16b,v16.16b,v16.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v7.16b,v7.16b @@ -404,7 +404,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d,v6.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v4.16b,v4.16b @@ -456,7 +456,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v4.16b,v4.16b #endif @@ -499,7 +499,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v4.16b,v4.16b #endif @@ -539,7 +539,7 @@ gcm_ghash_v8_4x: eor v0.16b,v0.16b,v18.16b ext v0.16b,v0.16b,v0.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif st1 {v0.2d},[x0] //write out Xi diff --git a/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S index ea8f390224053a..98ebf48535e5e9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm/crypto/poly1305/poly1305-armv8.S @@ -28,7 +28,7 @@ poly1305_init: ldp x7,x8,[x1] // load key mov x9,#0xfffffffc0fffffff movk x9,#0x0fff,lsl#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x7,x7 // flip bytes rev x8,x8 #endif @@ -75,7 +75,7 @@ poly1305_blocks: .Loop: ldp x10,x11,[x1],#16 // load input sub x2,x2,#16 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x10,x10 rev x11,x11 #endif @@ -140,13 +140,13 @@ poly1305_emit: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif @@ -266,7 +266,7 @@ poly1305_blocks_neon: adcs x5,x5,xzr adc x6,x6,xzr -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -312,7 +312,7 @@ poly1305_blocks_neon: ldp x12,x13,[x1],#16 // load input sub x2,x2,#16 add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -397,7 +397,7 @@ poly1305_blocks_neon: lsl x3,x3,#24 add x15,x0,#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -433,7 +433,7 @@ poly1305_blocks_neon: ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 ld1 {v8.4s},[x15] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -494,7 +494,7 @@ poly1305_blocks_neon: umull v20.2d,v14.2s,v1.s[2] ldp x9,x13,[x16],#48 umull v19.2d,v14.2s,v0.s[2] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -559,7 +559,7 @@ poly1305_blocks_neon: umlal v23.2d,v11.2s,v3.s[0] umlal v20.2d,v11.2s,v8.s[0] umlal v21.2d,v11.2s,v0.s[0] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -840,13 +840,13 @@ poly1305_emit_neon: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm index 9d498a04297dd0..2802640171fd6e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S index 51c4d7208da2ba..0d2a81daf9d2bf 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/aes/aesv8-armx.S @@ -103,7 +103,7 @@ aes_v8_set_encrypt_key: .Loop192: tbl v6.16b,{v4.16b},v2.16b ext v5.16b,v0.16b,v3.16b,#12 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ st1 {v4.4s},[x2],#16 sub x2,x2,#8 #else @@ -1510,7 +1510,7 @@ aes_v8_ctr32_encrypt_blocks: ldr w5,[x3,#240] ldr w8, [x4, #12] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ld1 {v0.16b},[x4] #else ld1 {v0.4s},[x4] @@ -1527,7 +1527,7 @@ aes_v8_ctr32_encrypt_blocks: add x7,x3,#32 mov w6,w5 csel x12,xzr,x12,lo -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev w8, w8 #endif orr v1.16b,v0.16b,v0.16b diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h index 8044c52de8534f..fe50bcb0f8eebe 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Aug 6 00:30:52 2023 UTC" +#define DATE "built on: Thu Oct 26 14:53:55 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S index acd52eb9568633..ea6a66a229e10f 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/modes/ghashv8-armx.S @@ -101,7 +101,7 @@ gcm_gmult_v8: movi v19.16b,#0xe1 ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... shl v19.2d,v19.2d,#57 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v3.16b,v17.16b,v17.16b,#8 @@ -126,7 +126,7 @@ gcm_gmult_v8: eor v18.16b,v18.16b,v2.16b eor v0.16b,v0.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -163,14 +163,14 @@ gcm_ghash_v8: ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi ld1 {v16.2d},[x2],#16 //load [rotated] I[0] shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b rev64 v0.16b,v0.16b #endif ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] b.lo .Lodd_tail_v8 //x3 was less than 32 ld1 {v17.2d},[x2],x12 //load [rotated] I[1] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ext v7.16b,v17.16b,v17.16b,#8 @@ -202,13 +202,13 @@ gcm_ghash_v8: eor v18.16b,v0.16b,v2.16b eor v1.16b,v1.16b,v17.16b ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v16.16b,v16.16b #endif eor v1.16b,v1.16b,v18.16b pmull v18.1q,v0.1d,v19.1d //1st phase of reduction -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v17.16b,v17.16b #endif ins v2.d[0],v1.d[1] @@ -258,7 +258,7 @@ gcm_ghash_v8: eor v0.16b,v0.16b,v18.16b .Ldone_v8: -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif ext v0.16b,v0.16b,v0.16b,#8 @@ -277,7 +277,7 @@ gcm_ghash_v8_4x: shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b @@ -321,7 +321,7 @@ gcm_ghash_v8_4x: eor v16.16b,v4.16b,v0.16b ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 ext v3.16b,v16.16b,v16.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v7.16b,v7.16b @@ -404,7 +404,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d,v6.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v6.16b,v6.16b rev64 v4.16b,v4.16b @@ -456,7 +456,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d,v5.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v5.16b,v5.16b rev64 v4.16b,v4.16b #endif @@ -499,7 +499,7 @@ gcm_ghash_v8_4x: eor v1.16b,v1.16b,v17.16b ld1 {v4.2d},[x2] eor v1.16b,v1.16b,v18.16b -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v4.16b,v4.16b #endif @@ -539,7 +539,7 @@ gcm_ghash_v8_4x: eor v0.16b,v0.16b,v18.16b ext v0.16b,v0.16b,v0.16b,#8 -#ifndef __ARMEB__ +#ifndef __AARCH64EB__ rev64 v0.16b,v0.16b #endif st1 {v0.2d},[x0] //write out Xi diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S index ea8f390224053a..98ebf48535e5e9 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/crypto/poly1305/poly1305-armv8.S @@ -28,7 +28,7 @@ poly1305_init: ldp x7,x8,[x1] // load key mov x9,#0xfffffffc0fffffff movk x9,#0x0fff,lsl#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x7,x7 // flip bytes rev x8,x8 #endif @@ -75,7 +75,7 @@ poly1305_blocks: .Loop: ldp x10,x11,[x1],#16 // load input sub x2,x2,#16 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x10,x10 rev x11,x11 #endif @@ -140,13 +140,13 @@ poly1305_emit: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif @@ -266,7 +266,7 @@ poly1305_blocks_neon: adcs x5,x5,xzr adc x6,x6,xzr -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -312,7 +312,7 @@ poly1305_blocks_neon: ldp x12,x13,[x1],#16 // load input sub x2,x2,#16 add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x12,x12 rev x13,x13 #endif @@ -397,7 +397,7 @@ poly1305_blocks_neon: lsl x3,x3,#24 add x15,x0,#48 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -433,7 +433,7 @@ poly1305_blocks_neon: ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 ld1 {v8.4s},[x15] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -494,7 +494,7 @@ poly1305_blocks_neon: umull v20.2d,v14.2s,v1.s[2] ldp x9,x13,[x16],#48 umull v19.2d,v14.2s,v0.s[2] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -559,7 +559,7 @@ poly1305_blocks_neon: umlal v23.2d,v11.2s,v3.s[0] umlal v20.2d,v11.2s,v8.s[0] umlal v21.2d,v11.2s,v0.s[0] -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x8,x8 rev x12,x12 rev x9,x9 @@ -840,13 +840,13 @@ poly1305_emit_neon: csel x4,x4,x12,eq csel x5,x5,x13,eq -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ ror x10,x10,#32 // flip nonce words ror x11,x11,#32 #endif adds x4,x4,x10 // accumulate nonce adc x5,x5,x11 -#ifdef __ARMEB__ +#ifdef __AARCH64EB__ rev x4,x4 // flip output bytes rev x5,x5 #endif diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm index 31514639fa12cd..bf7ab392cebcd7 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-aarch64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h index 2c556e7c636514..e40fd9e8fa7be3 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-aarch64" -#define DATE "built on: Sun Aug 6 00:31:14 2023 UTC" +#define DATE "built on: Thu Oct 26 14:54:15 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-aarch64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm index b6536beee0911a..79653867c073ee 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/bsaes-armv7.S b/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/bsaes-armv7.S index 4b7f662140fba1..545d7f76c8a168 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/bsaes-armv7.S +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/aes/bsaes-armv7.S @@ -1131,7 +1131,7 @@ ossl_bsaes_cbc_encrypt: vstmia r4, {q7} .align 2 - +0: #endif vld1.8 {q15}, [r8] @ load IV @@ -1391,7 +1391,7 @@ ossl_bsaes_ctr32_encrypt_blocks: vstmia r12, {q7} @ save last round key .align 2 - add r12, r3, #248 +0: add r12, r3, #248 vld1.8 {q0}, [r8] @ load counter add r8, r6, #.LREVM0SR-.LM0 @ borrow r8 vldmia r12, {q4} @ load round0 key @@ -1626,7 +1626,7 @@ ossl_bsaes_xts_encrypt: vstmia r12, {q7} .align 2 - sub sp, #0x90 @ place for tweak[9] +0: sub sp, #0x90 @ place for tweak[9] #endif vld1.8 {q8}, [r0] @ initial tweak @@ -2112,7 +2112,7 @@ ossl_bsaes_xts_decrypt: vstmia r4, {q7} .align 2 - sub sp, #0x90 @ place for tweak[9] +0: sub sp, #0x90 @ place for tweak[9] #endif vld1.8 {q8}, [r0] @ initial tweak adr r2, .Lxts_magic diff --git a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h index 16acd7cb38014e..470b8436be3e9a 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Aug 6 00:31:35 2023 UTC" +#define DATE "built on: Thu Oct 26 14:54:32 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm index 2d6713a69fe77a..61ce2baaf0268d 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/bsaes-armv7.S b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/bsaes-armv7.S index 4b7f662140fba1..545d7f76c8a168 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/bsaes-armv7.S +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/aes/bsaes-armv7.S @@ -1131,7 +1131,7 @@ ossl_bsaes_cbc_encrypt: vstmia r4, {q7} .align 2 - +0: #endif vld1.8 {q15}, [r8] @ load IV @@ -1391,7 +1391,7 @@ ossl_bsaes_ctr32_encrypt_blocks: vstmia r12, {q7} @ save last round key .align 2 - add r12, r3, #248 +0: add r12, r3, #248 vld1.8 {q0}, [r8] @ load counter add r8, r6, #.LREVM0SR-.LM0 @ borrow r8 vldmia r12, {q4} @ load round0 key @@ -1626,7 +1626,7 @@ ossl_bsaes_xts_encrypt: vstmia r12, {q7} .align 2 - sub sp, #0x90 @ place for tweak[9] +0: sub sp, #0x90 @ place for tweak[9] #endif vld1.8 {q8}, [r0] @ initial tweak @@ -2112,7 +2112,7 @@ ossl_bsaes_xts_decrypt: vstmia r4, {q7} .align 2 - sub sp, #0x90 @ place for tweak[9] +0: sub sp, #0x90 @ place for tweak[9] #endif vld1.8 {q8}, [r0] @ initial tweak adr r2, .Lxts_magic diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h index 2ee5795e784c20..34de4e5471460b 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Aug 6 00:31:58 2023 UTC" +#define DATE "built on: Thu Oct 26 14:54:52 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm index bee312afe923a3..3945676082d3a7 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-armv4/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-armv4", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h index 37415a157b7a5a..06676dd0a62428 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-armv4" -#define DATE "built on: Sun Aug 6 00:32:20 2023 UTC" +#define DATE "built on: Thu Oct 26 14:55:11 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-armv4/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-elf/asm/configdata.pm b/deps/openssl/config/archs/linux-elf/asm/configdata.pm index fe754b5ea008b5..f42b25e4813c2c 100644 --- a/deps/openssl/config/archs/linux-elf/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-elf", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h index f58e1b3b022376..9cfe51eea4fc93 100644 --- a/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-elf" -#define DATE "built on: Sun Aug 6 00:32:41 2023 UTC" +#define DATE "built on: Thu Oct 26 14:55:29 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-elf/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm index 083f6bc78525da..0af1ae16add5e7 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-elf", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h index cfff344f504f1f..32a9cc3b4e7b0b 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-elf" -#define DATE "built on: Sun Aug 6 00:33:04 2023 UTC" +#define DATE "built on: Thu Oct 26 14:55:49 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-elf/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm index a5e1137b149e7a..6b8469360a6939 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-elf/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-elf", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h index 0dd30616b28e66..d5ca31dd991bac 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-elf/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-elf" -#define DATE "built on: Sun Aug 6 00:33:27 2023 UTC" +#define DATE "built on: Thu Oct 26 14:56:09 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-elf/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm index f979f6f060f9b6..c8aa0d7fe32340 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64le/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-ppc64le", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h index c45299350be3f9..d1e3acb464a422 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Sun Aug 6 00:35:08 2023 UTC" +#define DATE "built on: Thu Oct 26 14:57:32 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm index 08080140eb2e78..0ea84d2ce335f5 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-ppc64le", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h index 2395cef1030cd0..e29cf2d622f37b 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Sun Aug 6 00:35:31 2023 UTC" +#define DATE "built on: Thu Oct 26 14:57:51 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-ppc64le/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm index 189ada48854119..fe396100caff68 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-ppc64le", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h index bf4a292031de3f..38c6d24008d45c 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-ppc64le" -#define DATE "built on: Sun Aug 6 00:35:54 2023 UTC" +#define DATE "built on: Thu Oct 26 14:58:10 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-ppc64le/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm index 133c99bdb8379f..8c177223983873 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x86_64/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h index 13c3b4c33b64c4..c453e042ec2cd8 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x86_64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Sun Aug 6 00:33:49 2023 UTC" +#define DATE "built on: Thu Oct 26 14:56:27 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-x86_64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm index 682f020891c38e..82a028a7500db9 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h index 1d83deffde45f4..dd77a730662bb9 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Sun Aug 6 00:34:19 2023 UTC" +#define DATE "built on: Thu Oct 26 14:56:50 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-x86_64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm index 3beffa26651377..74531136b16293 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux-x86_64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h index c3499dd469d71a..eb1d92ca3b85e8 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux-x86_64" -#define DATE "built on: Sun Aug 6 00:34:48 2023 UTC" +#define DATE "built on: Thu Oct 26 14:57:14 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux-x86_64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm index b4729ad28f92ae..077d1fe8d7f266 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm +++ b/deps/openssl/config/archs/linux32-s390x/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux32-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h index 210dcc63df0ff1..12e34e0b8d87b4 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux32-s390x/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Sun Aug 6 00:36:17 2023 UTC" +#define DATE "built on: Thu Oct 26 14:58:28 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux32-s390x/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm index e3ec7d01486663..1a3bfbead00cc9 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux32-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h index e689eb7c7734ff..cc34b5b48f7286 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Sun Aug 6 00:36:40 2023 UTC" +#define DATE "built on: Thu Oct 26 14:58:48 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux32-s390x/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm index a71b8dcf839746..e3a8f82fe7462c 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux32-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h index 7c01ad4e90df3b..d228feb5a19ee6 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux32-s390x" -#define DATE "built on: Sun Aug 6 00:37:03 2023 UTC" +#define DATE "built on: Thu Oct 26 14:59:08 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux32-s390x/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-loongarch64/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-loongarch64/no-asm/configdata.pm index 9576c99c906303..f8186f5553dd14 100644 --- a/deps/openssl/config/archs/linux64-loongarch64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-loongarch64/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-loongarch64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-loongarch64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-loongarch64/no-asm/crypto/buildinf.h index 4e95343a9fb4cd..3ba7a434358453 100644 --- a/deps/openssl/config/archs/linux64-loongarch64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-loongarch64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-loongarch64" -#define DATE "built on: Sun Aug 6 00:45:10 2023 UTC" +#define DATE "built on: Thu Oct 26 15:05:52 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-loongarch64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm b/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm index dbfc0d2736f05a..223edd33ddacd4 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-mips64/asm/configdata.pm @@ -162,7 +162,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -210,7 +210,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -262,11 +262,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-mips64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h index 6b70def08e855a..1f63d54c12ba01 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-mips64/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-mips64" -#define DATE "built on: Sun Aug 6 00:38:36 2023 UTC" +#define DATE "built on: Thu Oct 26 15:00:22 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-mips64/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm index 3b8e66e40539e8..ab9529b1189573 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/configdata.pm @@ -162,7 +162,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -210,7 +210,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -262,11 +262,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-mips64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h index 594e838897cbbb..492782784a2fed 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-mips64" -#define DATE "built on: Sun Aug 6 00:38:59 2023 UTC" +#define DATE "built on: Thu Oct 26 15:00:41 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-mips64/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm index 01bb1010d678bf..60fd68cd9d1b05 100644 --- a/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-mips64/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-mips64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h index 1c1ffc1c348702..b2da592e4a422c 100644 --- a/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-mips64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-mips64" -#define DATE "built on: Sun Aug 6 00:39:21 2023 UTC" +#define DATE "built on: Thu Oct 26 15:00:59 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-mips64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-riscv64/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-riscv64/no-asm/configdata.pm index 2618989ca8c17c..b807271a07fd32 100644 --- a/deps/openssl/config/archs/linux64-riscv64/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-riscv64/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-riscv64", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-riscv64/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-riscv64/no-asm/crypto/buildinf.h index f8ee87111d60b3..2c8f14b9fd31f8 100644 --- a/deps/openssl/config/archs/linux64-riscv64/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-riscv64/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-riscv64" -#define DATE "built on: Sun Aug 6 00:44:48 2023 UTC" +#define DATE "built on: Thu Oct 26 15:05:34 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-riscv64/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm index 31e57b928cac04..7ca0547e9d1176 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-s390x/asm/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h index b10344ae3019e1..aad4edb0f23308 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-s390x/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Sun Aug 6 00:37:26 2023 UTC" +#define DATE "built on: Thu Oct 26 14:59:26 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-s390x/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm b/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm index f7a270be6046c4..67f9b59a4f1473 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/configdata.pm @@ -159,7 +159,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -207,7 +207,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h index c602e1eed19db4..49a18326cda364 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Sun Aug 6 00:37:50 2023 UTC" +#define DATE "built on: Thu Oct 26 14:59:45 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-s390x/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm index a44e5d6c7ea1d1..0511cc0ad771f1 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/configdata.pm @@ -157,7 +157,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -206,7 +206,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -259,11 +259,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned char", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "linux64-s390x", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h index 6d7b9134d30329..56f3cb4a199951 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: linux64-s390x" -#define DATE "built on: Sun Aug 6 00:38:14 2023 UTC" +#define DATE "built on: Thu Oct 26 15:00:04 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/linux64-s390x/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm index d60b22c0286e85..5ab80e6faf2eee 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -204,7 +204,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris-x86-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h index 6c58b044ea9707..468c40de382836 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Sun Aug 6 00:39:44 2023 UTC" +#define DATE "built on: Thu Oct 26 15:01:17 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm index ec632ff0f28c57..7e2449164988b9 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -204,7 +204,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris-x86-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h index 01fe3449426840..805dcab06bb3b9 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Sun Aug 6 00:40:07 2023 UTC" +#define DATE "built on: Thu Oct 26 15:01:37 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm index 5dc7107bb26bbd..cade32bd647c0b 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris-x86-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h index d9d8f29beefec3..8201c478c71fe0 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris-x86-gcc" -#define DATE "built on: Sun Aug 6 00:40:30 2023 UTC" +#define DATE "built on: Thu Oct 26 15:01:58 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris-x86-gcc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm index 199dee44226d9f..48232d7ea1f9e6 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -204,7 +204,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris64-x86_64-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h index 45e22d76fd5e66..f953c4d35bb5b0 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Sun Aug 6 00:40:52 2023 UTC" +#define DATE "built on: Thu Oct 26 15:02:16 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm index df9f4cc099ead6..4a7a3cf873a3e4 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/configdata.pm @@ -156,7 +156,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -204,7 +204,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris64-x86_64-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h index 9bff7519bf2417..0fcdd941db1ba8 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Sun Aug 6 00:41:20 2023 UTC" +#define DATE "built on: Thu Oct 26 15:02:40 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm index a15e817f8966e5..902cd2bbbf9f69 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/configdata.pm @@ -154,7 +154,7 @@ our %config = ( ], "dynamic_engines" => "0", "ex_libs" => [], - "full_version" => "3.0.10+quic", + "full_version" => "3.0.12+quic", "includes" => [], "lflags" => [], "lib_defines" => [ @@ -203,7 +203,7 @@ our %config = ( "openssl_sys_defines" => [], "openssldir" => "", "options" => "enable-ssl-trace enable-fips no-afalgeng no-asan no-asm no-buildtest-c++ no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-dynamic-engine no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer no-ktls no-loadereng no-md2 no-msan no-rc5 no-sctp no-shared no-ssl3 no-ssl3-method no-trace no-ubsan no-unit-test no-uplink no-weak-ssl-ciphers no-zlib no-zlib-dynamic", - "patch" => "10", + "patch" => "12", "perl_archname" => "x86_64-linux-gnu-thread-multi", "perl_cmd" => "/usr/bin/perl", "perl_version" => "5.34.0", @@ -256,11 +256,11 @@ our %config = ( "prerelease" => "", "processor" => "", "rc4_int" => "unsigned int", - "release_date" => "1 Aug 2023", + "release_date" => "24 Oct 2023", "shlib_version" => "81.3", "sourcedir" => ".", "target" => "solaris64-x86_64-gcc", - "version" => "3.0.10" + "version" => "3.0.12" ); our %target = ( "AR" => "ar", diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h index c9d1cb2473635d..84378d6580e182 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h @@ -11,7 +11,7 @@ */ #define PLATFORM "platform: solaris64-x86_64-gcc" -#define DATE "built on: Sun Aug 6 00:41:48 2023 UTC" +#define DATE "built on: Thu Oct 26 15:03:03 2023 UTC" /* * Generate compiler_flags as an array of individual characters. This is a diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h index 06ba6600ff29ce..ea36c0ca51c2ab 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h @@ -29,7 +29,7 @@ extern "C" { */ # define OPENSSL_VERSION_MAJOR 3 # define OPENSSL_VERSION_MINOR 0 -# define OPENSSL_VERSION_PATCH 10 +# define OPENSSL_VERSION_PATCH 12 /* * Additional version information @@ -74,21 +74,21 @@ extern "C" { * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and * OPENSSL_VERSION_BUILD_METADATA_STR appended. */ -# define OPENSSL_VERSION_STR "3.0.10" -# define OPENSSL_FULL_VERSION_STR "3.0.10+quic" +# define OPENSSL_VERSION_STR "3.0.12" +# define OPENSSL_FULL_VERSION_STR "3.0.12+quic" /* * SECTION 3: ADDITIONAL METADATA * * These strings are defined separately to allow them to be parsable. */ -# define OPENSSL_RELEASE_DATE "1 Aug 2023" +# define OPENSSL_RELEASE_DATE "24 Oct 2023" /* * SECTION 4: BACKWARD COMPATIBILITY */ -# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023" +# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.12+quic 24 Oct 2023" /* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ # ifdef OPENSSL_VERSION_PRE_RELEASE diff --git a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs7.h b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs7.h index 557a0a7264beec..0ce79bf4fa160e 100644 --- a/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs7.h +++ b/deps/openssl/config/archs/solaris64-x86_64-gcc/no-asm/include/openssl/pkcs7.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by Makefile from include/openssl/pkcs7.h.in * - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -56,8 +56,8 @@ typedef struct pkcs7_signer_info_st { PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; X509_ALGOR *digest_alg; STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ /* The private key to sign with */ EVP_PKEY *pkey; diff --git a/deps/openssl/openssl/crypto/perlasm/x86asm.pl b/deps/openssl/openssl/crypto/perlasm/x86asm.pl index 8dcde9eacaa3d1..98a7159a5f131c 100644 --- a/deps/openssl/openssl/crypto/perlasm/x86asm.pl +++ b/deps/openssl/openssl/crypto/perlasm/x86asm.pl @@ -174,9 +174,9 @@ sub ::vprotd sub ::endbranch { - &::generic("#ifdef __CET__\n"); + &::generic("%ifdef __CET__\n"); &::data_byte(0xf3,0x0f,0x1e,0xfb); - &::generic("#endif\n"); + &::generic("%endif\n"); } # label management diff --git a/deps/openssl/openssl/include/crypto/bn_conf.h b/deps/openssl/openssl/include/crypto/bn_conf.h new file mode 100644 index 00000000000000..79400c6472a49c --- /dev/null +++ b/deps/openssl/openssl/include/crypto/bn_conf.h @@ -0,0 +1 @@ +#include "../../../config/bn_conf.h" diff --git a/deps/openssl/openssl/include/crypto/dso_conf.h b/deps/openssl/openssl/include/crypto/dso_conf.h new file mode 100644 index 00000000000000..e7f2afa9872320 --- /dev/null +++ b/deps/openssl/openssl/include/crypto/dso_conf.h @@ -0,0 +1 @@ +#include "../../../config/dso_conf.h" diff --git a/deps/openssl/openssl/include/openssl/asn1.h b/deps/openssl/openssl/include/openssl/asn1.h new file mode 100644 index 00000000000000..cd9fc7cc706c37 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/asn1.h @@ -0,0 +1 @@ +#include "../../../config/asn1.h" diff --git a/deps/openssl/openssl/include/openssl/asn1t.h b/deps/openssl/openssl/include/openssl/asn1t.h new file mode 100644 index 00000000000000..6ff4f574949bbd --- /dev/null +++ b/deps/openssl/openssl/include/openssl/asn1t.h @@ -0,0 +1 @@ +#include "../../../config/asn1t.h" diff --git a/deps/openssl/openssl/include/openssl/bio.h b/deps/openssl/openssl/include/openssl/bio.h new file mode 100644 index 00000000000000..dcece3cb4d6ebf --- /dev/null +++ b/deps/openssl/openssl/include/openssl/bio.h @@ -0,0 +1 @@ +#include "../../../config/bio.h" diff --git a/deps/openssl/openssl/include/openssl/cmp.h b/deps/openssl/openssl/include/openssl/cmp.h new file mode 100644 index 00000000000000..7c8a6dc96fc360 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/cmp.h @@ -0,0 +1 @@ +#include "../../../config/cmp.h" diff --git a/deps/openssl/openssl/include/openssl/cms.h b/deps/openssl/openssl/include/openssl/cms.h new file mode 100644 index 00000000000000..33a00775c9fa76 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/cms.h @@ -0,0 +1 @@ +#include "../../../config/cms.h" diff --git a/deps/openssl/openssl/include/openssl/conf.h b/deps/openssl/openssl/include/openssl/conf.h new file mode 100644 index 00000000000000..2712886cafcd78 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/conf.h @@ -0,0 +1 @@ +#include "../../../config/conf.h" diff --git a/deps/openssl/openssl/include/openssl/configuration.h b/deps/openssl/openssl/include/openssl/configuration.h new file mode 100644 index 00000000000000..8ffad996047c5e --- /dev/null +++ b/deps/openssl/openssl/include/openssl/configuration.h @@ -0,0 +1 @@ +#include "../../../config/configuration.h" diff --git a/deps/openssl/openssl/include/openssl/crmf.h b/deps/openssl/openssl/include/openssl/crmf.h new file mode 100644 index 00000000000000..4103852ecb21c2 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/crmf.h @@ -0,0 +1 @@ +#include "../../../config/crmf.h" diff --git a/deps/openssl/openssl/include/openssl/crypto.h b/deps/openssl/openssl/include/openssl/crypto.h new file mode 100644 index 00000000000000..6d0e701ebd3c19 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/crypto.h @@ -0,0 +1 @@ +#include "../../../config/crypto.h" diff --git a/deps/openssl/openssl/include/openssl/ct.h b/deps/openssl/openssl/include/openssl/ct.h new file mode 100644 index 00000000000000..7ebb84387135be --- /dev/null +++ b/deps/openssl/openssl/include/openssl/ct.h @@ -0,0 +1 @@ +#include "../../../config/ct.h" diff --git a/deps/openssl/openssl/include/openssl/err.h b/deps/openssl/openssl/include/openssl/err.h new file mode 100644 index 00000000000000..bf482070474781 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/err.h @@ -0,0 +1 @@ +#include "../../../config/err.h" diff --git a/deps/openssl/openssl/include/openssl/ess.h b/deps/openssl/openssl/include/openssl/ess.h new file mode 100644 index 00000000000000..64cc016225119f --- /dev/null +++ b/deps/openssl/openssl/include/openssl/ess.h @@ -0,0 +1 @@ +#include "../../../config/ess.h" diff --git a/deps/openssl/openssl/include/openssl/fipskey.h b/deps/openssl/openssl/include/openssl/fipskey.h new file mode 100644 index 00000000000000..c012013d98d4e8 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/fipskey.h @@ -0,0 +1 @@ +#include "../../../config/fipskey.h" diff --git a/deps/openssl/openssl/include/openssl/lhash.h b/deps/openssl/openssl/include/openssl/lhash.h new file mode 100644 index 00000000000000..8d824f5cfe6274 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/lhash.h @@ -0,0 +1 @@ +#include "../../../config/lhash.h" diff --git a/deps/openssl/openssl/include/openssl/ocsp.h b/deps/openssl/openssl/include/openssl/ocsp.h new file mode 100644 index 00000000000000..5b13afedf36bb6 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/ocsp.h @@ -0,0 +1 @@ +#include "../../../config/ocsp.h" diff --git a/deps/openssl/openssl/include/openssl/opensslv.h b/deps/openssl/openssl/include/openssl/opensslv.h new file mode 100644 index 00000000000000..078cfba40fbe73 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/opensslv.h @@ -0,0 +1 @@ +#include "../../../config/opensslv.h" diff --git a/deps/openssl/openssl/include/openssl/pkcs12.h b/deps/openssl/openssl/include/openssl/pkcs12.h new file mode 100644 index 00000000000000..2d7e2c08e99175 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/pkcs12.h @@ -0,0 +1 @@ +#include "../../../config/pkcs12.h" diff --git a/deps/openssl/openssl/include/openssl/pkcs7.h b/deps/openssl/openssl/include/openssl/pkcs7.h new file mode 100644 index 00000000000000..b553f9d0f053b0 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/pkcs7.h @@ -0,0 +1 @@ +#include "../../../config/pkcs7.h" diff --git a/deps/openssl/openssl/include/openssl/safestack.h b/deps/openssl/openssl/include/openssl/safestack.h new file mode 100644 index 00000000000000..989eafb33023b9 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/safestack.h @@ -0,0 +1 @@ +#include "../../../config/safestack.h" diff --git a/deps/openssl/openssl/include/openssl/srp.h b/deps/openssl/openssl/include/openssl/srp.h new file mode 100644 index 00000000000000..9df42dad4c3127 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/srp.h @@ -0,0 +1 @@ +#include "../../../config/srp.h" diff --git a/deps/openssl/openssl/include/openssl/ssl.h b/deps/openssl/openssl/include/openssl/ssl.h new file mode 100644 index 00000000000000..eb74ca98a9759a --- /dev/null +++ b/deps/openssl/openssl/include/openssl/ssl.h @@ -0,0 +1 @@ +#include "../../../config/ssl.h" diff --git a/deps/openssl/openssl/include/openssl/ui.h b/deps/openssl/openssl/include/openssl/ui.h new file mode 100644 index 00000000000000..f5edb766b4fc6c --- /dev/null +++ b/deps/openssl/openssl/include/openssl/ui.h @@ -0,0 +1 @@ +#include "../../../config/ui.h" diff --git a/deps/openssl/openssl/include/openssl/x509.h b/deps/openssl/openssl/include/openssl/x509.h new file mode 100644 index 00000000000000..ed28bd68cb2474 --- /dev/null +++ b/deps/openssl/openssl/include/openssl/x509.h @@ -0,0 +1 @@ +#include "../../../config/x509.h" diff --git a/deps/openssl/openssl/include/openssl/x509_vfy.h b/deps/openssl/openssl/include/openssl/x509_vfy.h new file mode 100644 index 00000000000000..9270a3ee09750a --- /dev/null +++ b/deps/openssl/openssl/include/openssl/x509_vfy.h @@ -0,0 +1 @@ +#include "../../../config/x509_vfy.h" diff --git a/deps/openssl/openssl/include/openssl/x509v3.h b/deps/openssl/openssl/include/openssl/x509v3.h new file mode 100644 index 00000000000000..5629ae9a3a90af --- /dev/null +++ b/deps/openssl/openssl/include/openssl/x509v3.h @@ -0,0 +1 @@ +#include "../../../config/x509v3.h" From 0c40b513fdd33dcd2f4ab9fd205fd28139414aae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 7 Oct 2023 08:32:51 +0200 Subject: [PATCH 224/232] deps: V8: cherry-pick a1efa5343880 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: Merged: [runtime] Set instance prototypes directly on maps Bug: chromium:1452137 (cherry picked from commit c7c447735f762f6d6d0878e229371797845ef4ab) Change-Id: I611c41f942e2e51f3c4b4f1d119c18410617188e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4637888 Commit-Queue: Igor Sheludko Auto-Submit: Igor Sheludko Commit-Queue: Toon Verwaest Reviewed-by: Toon Verwaest Cr-Commit-Position: refs/branch-heads/11.4@{#47} Cr-Branched-From: 8a8a1e7086dacc426965d3875914efa66663c431-refs/heads/11.4.183@{#1} Cr-Branched-From: 5483d8e816e0bbce865cbbc3fa0ab357e6330bab-refs/heads/main@{#87241} Refs: https://github.com/v8/v8/commit/a1efa5343880dff50985782c6d573cbb4777388d PR-URL: https://github.com/nodejs/node/pull/50077 Refs: https://github.com/nodejs/nodejs-dependency-vuln-assessments/issues/151 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Rafael Gonzaga Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau --- common.gypi | 2 +- deps/v8/src/objects/js-function.cc | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index 52636bb2fac590..1dca7c9a106e2e 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.20', + 'v8_embedder_string': '-node.21', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/objects/js-function.cc b/deps/v8/src/objects/js-function.cc index 1640cb0d31529c..94f7a672a704e1 100644 --- a/deps/v8/src/objects/js-function.cc +++ b/deps/v8/src/objects/js-function.cc @@ -676,6 +676,10 @@ void SetInstancePrototype(Isolate* isolate, Handle function, // At that point, a new initial map is created and the prototype is put // into the initial map where it belongs. function->set_prototype_or_initial_map(*value, kReleaseStore); + if (value->IsJSObjectThatCanBeTrackedAsPrototype()) { + // Optimize as prototype to detach it from its transition tree. + JSObject::OptimizeAsPrototype(Handle::cast(value)); + } } else { Handle new_map = Map::Copy(isolate, initial_map, "SetInstancePrototype"); @@ -801,8 +805,10 @@ void JSFunction::EnsureHasInitialMap(Handle function) { Handle prototype; if (function->has_instance_prototype()) { prototype = handle(function->instance_prototype(), isolate); + map->set_prototype(*prototype); } else { prototype = isolate->factory()->NewFunctionPrototype(function); + Map::SetPrototype(isolate, map, prototype); } DCHECK(map->has_fast_object_elements()); From 9d3cdcbebfb077db245c6b4f9a619f9241705124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 7 Oct 2023 08:33:30 +0200 Subject: [PATCH 225/232] deps: V8: cherry-pick 840650f2ff4e MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: Merged: [compiler] StackCheck can have side effects Bug: chromium:1452137 (cherry picked from commit e548943e473b020fdc1de6e5543ca31b24d8b7f9) Change-Id: Ibd7c9b02efd12341b452e4c34a635a58a817649f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4637129 Reviewed-by: Toon Verwaest Commit-Queue: Tobias Tebbi Auto-Submit: Tobias Tebbi Commit-Queue: Toon Verwaest Cr-Commit-Position: refs/branch-heads/11.4@{#49} Cr-Branched-From: 8a8a1e7086dacc426965d3875914efa66663c431-refs/heads/11.4.183@{#1} Cr-Branched-From: 5483d8e816e0bbce865cbbc3fa0ab357e6330bab-refs/heads/main@{#87241} Refs: https://github.com/v8/v8/commit/840650f2ff4ee0d96601dd4d2912c0733bf6c925 PR-URL: https://github.com/nodejs/node/pull/50077 Refs: https://github.com/nodejs/nodejs-dependency-vuln-assessments/issues/151 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Rafael Gonzaga Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau --- common.gypi | 2 +- deps/v8/src/compiler/js-operator.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index 1dca7c9a106e2e..425219c015d7e1 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.21', + 'v8_embedder_string': '-node.22', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/compiler/js-operator.cc b/deps/v8/src/compiler/js-operator.cc index 34f6e9d7b08e71..fb678f80829a2f 100644 --- a/deps/v8/src/compiler/js-operator.cc +++ b/deps/v8/src/compiler/js-operator.cc @@ -1402,7 +1402,7 @@ const Operator* JSOperatorBuilder::CloneObject(FeedbackSource const& feedback, const Operator* JSOperatorBuilder::StackCheck(StackCheckKind kind) { return zone()->New>( // -- IrOpcode::kJSStackCheck, // opcode - Operator::kNoWrite, // properties + Operator::kNoProperties, // properties "JSStackCheck", // name 0, 1, 1, 0, 1, 2, // counts kind); // parameter From 4b243b553a088e7725ef5462626a6a671da51987 Mon Sep 17 00:00:00 2001 From: Shi Pujin Date: Tue, 17 Oct 2023 15:00:40 +0800 Subject: [PATCH 226/232] deps: V8: cherry-pick 9721082687c9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: heap: Add missing include for std::remove GCC 14 changes some internal includes within libstdc++ so this transient include gets lost. Include explicitly for std::remove. Change-Id: Iab8a2c751a0f9c9dc6a770d6296ad6de724ef3bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4583222 Reviewed-by: Michael Lippautz Commit-Queue: Michael Lippautz Cr-Commit-Position: refs/heads/main@{#88037} PR-URL: https://github.com/nodejs/node/pull/50077 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Rafael Gonzaga Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau --- common.gypi | 2 +- deps/v8/AUTHORS | 1 + deps/v8/src/heap/cppgc/stats-collector.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/common.gypi b/common.gypi index 425219c015d7e1..326f8570ac1664 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.22', + 'v8_embedder_string': '-node.23', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index d84c722b8dcb7b..644b17bcec8dd7 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -239,6 +239,7 @@ Sakthipriyan Vairamani (thefourtheye) Sander Mathijs van Veen Sandro Santilli Sanjoy Das +Sam James Seo Sanghyeon Shawn Anastasio Shawn Presser diff --git a/deps/v8/src/heap/cppgc/stats-collector.h b/deps/v8/src/heap/cppgc/stats-collector.h index 2cf728489d0a9c..d8414ae3c6e2d0 100644 --- a/deps/v8/src/heap/cppgc/stats-collector.h +++ b/deps/v8/src/heap/cppgc/stats-collector.h @@ -8,6 +8,7 @@ #include #include +#include #include #include From e63aef91b4a553b07e94cf19f86f4132eb50c073 Mon Sep 17 00:00:00 2001 From: Luke Albao Date: Mon, 23 Oct 2023 08:27:33 -0700 Subject: [PATCH 227/232] deps: V8: cherry-pick f7d000a7ae7b MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: [logging] Bugfix: LinuxPerfBasicLogger should log JS functions This patch fixes a typo that was introduced in commit c51041f45400928cd64fbc8f389c0dd0dd15f82f / https://chromium-review.googlesource.com/c/v8/v8/+/2336793, which reversed the behavior of the perf_basic_prof_only_functions flag. This also refactors the equivalent guard in LinuxPerfJitLogger to use the same inline CodeKind API for identifying JS Functions. This is unrelated to the bug, but it seems a fair rider to add on here. Bug: v8:14387 Change-Id: I25766b0d45f4c65dfec5ae01e094a1ed94111054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4954225 Reviewed-by: Camillo Bruni Commit-Queue: Camillo Bruni Cr-Commit-Position: refs/heads/main@{#90501} Refs: https://github.com/v8/v8/commit/f7d000a7ae7b731805338338eb51a81fbcfe2628 PR-URL: https://github.com/nodejs/node/pull/50077 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Rafael Gonzaga Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau --- common.gypi | 2 +- deps/v8/AUTHORS | 1 + deps/v8/src/diagnostics/perf-jit.cc | 5 ++--- deps/v8/src/logging/log.cc | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/common.gypi b/common.gypi index 326f8570ac1664..8da04166808183 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.23', + 'v8_embedder_string': '-node.24', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 644b17bcec8dd7..7b43882edca7ea 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -172,6 +172,7 @@ Kyounga Ra Loo Rong Jie Lu Yahan Luis Reis +Luke Albao Luke Zarko Ma Aiguo Maciej Małecki diff --git a/deps/v8/src/diagnostics/perf-jit.cc b/deps/v8/src/diagnostics/perf-jit.cc index b3758680d1d55e..4d8489c6644079 100644 --- a/deps/v8/src/diagnostics/perf-jit.cc +++ b/deps/v8/src/diagnostics/perf-jit.cc @@ -42,6 +42,7 @@ #include "src/codegen/assembler.h" #include "src/codegen/source-position-table.h" #include "src/diagnostics/eh-frame.h" +#include "src/objects/code-kind.h" #include "src/objects/objects-inl.h" #include "src/objects/shared-function-info.h" #include "src/snapshot/embedded/embedded-data.h" @@ -222,9 +223,7 @@ void LinuxPerfJitLogger::LogRecordedBuffer( DisallowGarbageCollection no_gc; if (v8_flags.perf_basic_prof_only_functions) { CodeKind code_kind = abstract_code.kind(isolate_); - if (code_kind != CodeKind::INTERPRETED_FUNCTION && - code_kind != CodeKind::TURBOFAN && code_kind != CodeKind::MAGLEV && - code_kind != CodeKind::BASELINE) { + if (!CodeKindIsJSFunction(code_kind)) { return; } } diff --git a/deps/v8/src/logging/log.cc b/deps/v8/src/logging/log.cc index ca97693465f427..b4903db16832a3 100644 --- a/deps/v8/src/logging/log.cc +++ b/deps/v8/src/logging/log.cc @@ -433,7 +433,7 @@ void LinuxPerfBasicLogger::LogRecordedBuffer(AbstractCode code, DisallowGarbageCollection no_gc; PtrComprCageBase cage_base(isolate_); if (v8_flags.perf_basic_prof_only_functions && - CodeKindIsBuiltinOrJSFunction(code.kind(cage_base))) { + !CodeKindIsBuiltinOrJSFunction(code.kind(cage_base))) { return; } From b00c11ad7c987976d8ff34a427bb5ffde4070455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Mon, 13 Nov 2023 13:39:29 +0100 Subject: [PATCH 228/232] deps: V8: cherry-pick d90d4533b053 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original commit message: Fix reading integer-indexed import assertions in dynamic import Use GetPropertyOrElement instead of GetProperty to read import assertion values from the import assertions object, to support cases in which the key is an integer index such as `"0"`. The added test case, when using GetProperty, triggers the following DCHECK in debug builds: https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/lookup-inl.h;l=108;drc=515f187ba067ee4a99fdf5198cca2c97abd342fd In release builds it silently fails to read the property, and thus throws about it not being a valid string. Bug: v8:14069 Change-Id: Ifd4645b7bd9bfd07f06fa33727441d27eabc4d32 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4614489 Reviewed-by: Victor Gomes Commit-Queue: Marja Hölttä Reviewed-by: Marja Hölttä Cr-Commit-Position: refs/heads/main@{#88267} Refs: https://github.com/v8/v8/commit/d90d4533b05301e2be813a5f90223f4c6c1bf63d PR-URL: https://github.com/nodejs/node/pull/50077 Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen Reviewed-By: Mohammed Keyvanzadeh Reviewed-By: Rafael Gonzaga Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson Reviewed-By: Richard Lau --- common.gypi | 2 +- deps/v8/src/execution/isolate.cc | 4 ++-- .../mjsunit/harmony/modules-import-assertions-dynamic-6.mjs | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/common.gypi b/common.gypi index 8da04166808183..4589f515178093 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.24', + 'v8_embedder_string': '-node.25', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/execution/isolate.cc b/deps/v8/src/execution/isolate.cc index 3c62ba5a5caef9..33ff1348f58989 100644 --- a/deps/v8/src/execution/isolate.cc +++ b/deps/v8/src/execution/isolate.cc @@ -5228,8 +5228,8 @@ MaybeHandle Isolate::GetImportAssertionsFromArgument( for (int i = 0; i < assertion_keys->length(); i++) { Handle assertion_key(String::cast(assertion_keys->get(i)), this); Handle assertion_value; - if (!JSReceiver::GetProperty(this, import_assertions_object_receiver, - assertion_key) + if (!Object::GetPropertyOrElement(this, import_assertions_object_receiver, + assertion_key) .ToHandle(&assertion_value)) { // This can happen if the property has a getter function that throws // an error. diff --git a/deps/v8/test/mjsunit/harmony/modules-import-assertions-dynamic-6.mjs b/deps/v8/test/mjsunit/harmony/modules-import-assertions-dynamic-6.mjs index 3388aefb5c5b13..76a0eddb0fdc34 100644 --- a/deps/v8/test/mjsunit/harmony/modules-import-assertions-dynamic-6.mjs +++ b/deps/v8/test/mjsunit/harmony/modules-import-assertions-dynamic-6.mjs @@ -8,6 +8,11 @@ var life; import('modules-skip-1.json', { assert: { type: 'json', notARealAssertion: 'value' } }).then( namespace => life = namespace.default.life); +var life2; +import('modules-skip-1.json', { assert: { 0: 'value', type: 'json' } }).then( + namespace => life2 = namespace.default.life); + %PerformMicrotaskCheckpoint(); assertEquals(42, life); +assertEquals(42, life2); From a528bbceca5273d744fc1558e7d01f83b0b14dec Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 15 Nov 2023 19:14:57 +0100 Subject: [PATCH 229/232] test: mark SEA tests as flaky on PowerPC PR-URL: https://github.com/nodejs/node/pull/50750 Refs: https://github.com/nodejs/node/issues/50740 Refs: https://github.com/nodejs/reliability/issues/718 Reviewed-By: Yagiz Nizipli Reviewed-By: Michael Dawson --- test/sequential/sequential.status | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index 6d89fa0a4d2127..c25fdaa17236bd 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -46,3 +46,11 @@ test-watch-mode-inspect: PASS, FLAKY [$arch==s390x] # https://github.com/nodejs/node/issues/41286 test-performance-eventloopdelay: PASS, FLAKY + +[$arch==ppc] +# https://github.com/nodejs/node/issues/50740 +test-single-executable-application-empty: PASS, FLAKY +test-single-executable-application-snapshot-and-code-cache: PASS, FLAKY +test-single-executable-application-snapshot: PASS, FLAKY +test-single-executable-application-use-code-cache: PASS, FLAKY +test-single-executable-application: PASS, FLAKY From 6e0f0fafe4844817b756e136220f61235da6c498 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Tue, 21 Nov 2023 01:25:14 +0100 Subject: [PATCH 230/232] test: use ppc and ppc64 to skip SEA tests on PowerPC It seems using ppc alone is not enough. Add ppc64 to be safe. PR-URL: https://github.com/nodejs/node/pull/50828 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Keyhan Vakil --- test/sequential/sequential.status | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index c25fdaa17236bd..a5e2d38ff31aa8 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -47,7 +47,7 @@ test-watch-mode-inspect: PASS, FLAKY # https://github.com/nodejs/node/issues/41286 test-performance-eventloopdelay: PASS, FLAKY -[$arch==ppc] +[$system==ppc || $system==ppc64] # https://github.com/nodejs/node/issues/50740 test-single-executable-application-empty: PASS, FLAKY test-single-executable-application-snapshot-and-code-cache: PASS, FLAKY From 68ec1e5eeb4ff984868c625f0ce808210169360d Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Fri, 3 Nov 2023 07:03:57 -0700 Subject: [PATCH 231/232] deps: upgrade npm to 10.2.3 PR-URL: https://github.com/nodejs/node/pull/50531 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Debadree Chatterjee --- deps/npm/bin/node-gyp-bin/node-gyp | 6 + deps/npm/bin/node-gyp-bin/node-gyp.cmd | 5 + deps/npm/docs/content/commands/npm-audit.md | 4 +- deps/npm/docs/content/commands/npm-ls.md | 2 +- deps/npm/docs/content/commands/npm-rebuild.md | 31 +- deps/npm/docs/content/commands/npm-team.md | 2 +- .../docs/content/commands/npm-unpublish.md | 5 +- deps/npm/docs/content/commands/npm.md | 2 +- .../configuring-npm/package-lock-json.md | 2 +- deps/npm/docs/content/using-npm/scripts.md | 2 - deps/npm/docs/output/commands/npm-audit.html | 4 +- deps/npm/docs/output/commands/npm-ls.html | 2 +- .../npm/docs/output/commands/npm-rebuild.html | 25 +- deps/npm/docs/output/commands/npm-team.html | 2 +- .../docs/output/commands/npm-unpublish.html | 3 +- deps/npm/docs/output/commands/npm.html | 2 +- .../configuring-npm/package-lock-json.html | 2 +- deps/npm/docs/output/using-npm/scripts.html | 1 - deps/npm/lib/commands/audit.js | 2 +- deps/npm/lib/commands/link.js | 4 +- deps/npm/lib/commands/logout.js | 12 +- deps/npm/lib/utils/error-message.js | 2 +- deps/npm/lib/utils/queryable.js | 6 +- deps/npm/man/man1/npm-access.1 | 2 +- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-audit.1 | 6 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-ci.1 | 2 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 2 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-diff.1 | 2 +- deps/npm/man/man1/npm-dist-tag.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-doctor.1 | 2 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-exec.1 | 2 +- deps/npm/man/man1/npm-explain.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-find-dupes.1 | 2 +- deps/npm/man/man1/npm-fund.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-hook.1 | 2 +- deps/npm/man/man1/npm-init.1 | 2 +- deps/npm/man/man1/npm-install-ci-test.1 | 2 +- deps/npm/man/man1/npm-install-test.1 | 2 +- deps/npm/man/man1/npm-install.1 | 2 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-login.1 | 2 +- deps/npm/man/man1/npm-logout.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 4 +- deps/npm/man/man1/npm-org.1 | 2 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-ping.1 | 2 +- deps/npm/man/man1/npm-pkg.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-profile.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 2 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-query.1 | 2 +- deps/npm/man/man1/npm-rebuild.1 | 34 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 2 +- deps/npm/man/man1/npm-sbom.1 | 2 +- deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-team.1 | 4 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-token.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 4 +- deps/npm/man/man1/npm-unstar.1 | 2 +- deps/npm/man/man1/npm-update.1 | 2 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 4 +- deps/npm/man/man1/npx.1 | 2 +- deps/npm/man/man5/folders.5 | 2 +- deps/npm/man/man5/install.5 | 2 +- deps/npm/man/man5/npm-global.5 | 2 +- deps/npm/man/man5/npm-json.5 | 2 +- deps/npm/man/man5/npm-shrinkwrap-json.5 | 2 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package-json.5 | 2 +- deps/npm/man/man5/package-lock-json.5 | 4 +- deps/npm/man/man7/config.7 | 2 +- deps/npm/man/man7/dependency-selectors.7 | 2 +- deps/npm/man/man7/developers.7 | 2 +- deps/npm/man/man7/logging.7 | 2 +- deps/npm/man/man7/orgs.7 | 2 +- deps/npm/man/man7/package-spec.7 | 2 +- deps/npm/man/man7/registry.7 | 2 +- deps/npm/man/man7/removal.7 | 2 +- deps/npm/man/man7/scope.7 | 2 +- deps/npm/man/man7/scripts.7 | 4 +- deps/npm/man/man7/workspaces.7 | 2 +- .../https-proxy-agent/dist/index.js | 6 +- .../dist/parse-proxy-response.js | 5 +- .../https-proxy-agent/package.json | 2 +- .../socks-proxy-agent/dist/index.js | 3 +- .../socks-proxy-agent/package.json | 10 +- .../@npmcli/arborist/package.json | 4 +- .../npm/node_modules/@npmcli/config/README.md | 13 +- .../node_modules/@npmcli/config/lib/index.js | 32 +- .../node_modules/@npmcli/config/package.json | 2 +- .../@npmcli/run-script/package.json | 14 +- .../node_modules/@tootallnate/once/LICENSE | 21 - .../@tootallnate/once/dist/index.js | 24 - .../once/dist/overloaded-parameters.js | 3 - .../@tootallnate/once/dist/types.js | 3 - .../@tootallnate/once/package.json | 52 - .../node_modules/agent-base/dist/src/index.js | 203 --- .../agent-base/dist/src/promisify.js | 18 - deps/npm/node_modules/agent-base/package.json | 64 - deps/npm/node_modules/agentkeepalive/LICENSE | 23 - .../node_modules/agentkeepalive/browser.js | 5 - deps/npm/node_modules/agentkeepalive/index.js | 5 - .../node_modules/agentkeepalive/lib/agent.js | 402 ------ .../agentkeepalive/lib/constants.js | 14 - .../agentkeepalive/lib/https_agent.js | 51 - .../node_modules/agentkeepalive/package.json | 56 - .../are-we-there-yet/lib/tracker-base.js | 18 +- .../are-we-there-yet/lib/tracker-group.js | 184 ++- .../are-we-there-yet/lib/tracker-stream.js | 46 +- .../are-we-there-yet/lib/tracker.js | 50 +- .../are-we-there-yet/package.json | 9 +- .../node_modules/bin-links/lib/link-mans.js | 43 +- deps/npm/node_modules/bin-links/package.json | 6 +- deps/npm/node_modules/ci-info/LICENSE | 2 +- deps/npm/node_modules/ci-info/package.json | 8 +- deps/npm/node_modules/ci-info/vendors.json | 9 +- deps/npm/node_modules/cmd-shim/lib/index.js | 12 +- deps/npm/node_modules/cmd-shim/package.json | 7 +- deps/npm/node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/example/map.js | 6 - deps/npm/node_modules/concat-map/index.js | 13 - deps/npm/node_modules/concat-map/package.json | 43 - deps/npm/node_modules/concat-map/test/map.js | 39 - deps/npm/node_modules/fs.realpath/LICENSE | 43 - deps/npm/node_modules/fs.realpath/index.js | 66 - deps/npm/node_modules/fs.realpath/old.js | 303 ---- .../npm/node_modules/fs.realpath/package.json | 26 - .../http-proxy-agent/dist/agent.js | 145 -- .../http-proxy-agent/dist/index.js | 14 - .../http-proxy-agent/package.json | 57 - .../https-proxy-agent/dist/agent.js | 177 --- .../https-proxy-agent/dist/index.js | 14 - .../dist/parse-proxy-response.js | 66 - .../https-proxy-agent/package.json | 56 - deps/npm/node_modules/humanize-ms/LICENSE | 17 - deps/npm/node_modules/humanize-ms/index.js | 24 - .../npm/node_modules/humanize-ms/package.json | 37 - deps/npm/node_modules/inflight/LICENSE | 15 - deps/npm/node_modules/inflight/inflight.js | 54 - deps/npm/node_modules/inflight/package.json | 29 - deps/npm/node_modules/inherits/LICENSE | 16 - deps/npm/node_modules/inherits/inherits.js | 9 - .../node_modules/inherits/inherits_browser.js | 27 - deps/npm/node_modules/inherits/package.json | 29 - .../npm/node_modules/is-core-module/core.json | 6 +- .../node_modules/is-core-module/package.json | 10 +- deps/npm/node_modules/libnpmdiff/package.json | 4 +- deps/npm/node_modules/libnpmexec/package.json | 6 +- deps/npm/node_modules/libnpmfund/package.json | 4 +- deps/npm/node_modules/libnpmpack/package.json | 6 +- .../node_modules/libnpmversion/package.json | 4 +- .../node-gyp/.github/ISSUE_TEMPLATE.md | 52 - .../node-gyp/.github/PULL_REQUEST_TEMPLATE.md | 17 - .../.github/workflows/release-please.yml | 56 - .../node-gyp/.github/workflows/tests.yml | 55 - .../.github/workflows/visual-studio.yml | 33 - deps/npm/node_modules/node-gyp/CHANGELOG.md | 79 ++ .../npm/node_modules/node-gyp/CONTRIBUTING.md | 2 +- deps/npm/node_modules/node-gyp/README.md | 50 +- .../npm/node_modules/node-gyp/bin/node-gyp.js | 56 +- ...re-versions-of-node-cannot-be-installed.md | 94 -- .../docs/Force-npm-to-use-global-node-gyp.md | 47 - deps/npm/node_modules/node-gyp/docs/Home.md | 7 - .../node-gyp/docs/Linking-to-OpenSSL.md | 86 -- deps/npm/node_modules/node-gyp/docs/README.md | 19 - .../docs/Updating-npm-bundled-node-gyp.md | 72 - .../docs/binding.gyp-files-in-the-wild.md | 49 - deps/npm/node_modules/node-gyp/gyp/.flake8 | 4 - .../gyp/.github/workflows/Python_tests.yml | 36 - .../gyp/.github/workflows/node-gyp.yml | 45 - .../gyp/.github/workflows/nodejs-windows.yml | 32 - .../gyp/.github/workflows/release-please.yml | 16 - deps/npm/node_modules/node-gyp/gyp/AUTHORS | 16 - .../node_modules/node-gyp/gyp/CHANGELOG.md | 233 ---- .../node-gyp/gyp/CODE_OF_CONDUCT.md | 4 - .../node_modules/node-gyp/gyp/CONTRIBUTING.md | 32 - deps/npm/node_modules/node-gyp/gyp/README.md | 23 + .../node-gyp/gyp/pylib/gyp/MSVSNew.py | 26 +- .../node-gyp/gyp/pylib/gyp/MSVSProject.py | 2 +- .../node-gyp/gyp/pylib/gyp/MSVSSettings.py | 2 +- .../node-gyp/gyp/pylib/gyp/__init__.py | 6 +- .../node-gyp/gyp/pylib/gyp/common.py | 21 +- .../node-gyp/gyp/pylib/gyp/easy_xml.py | 6 +- .../node-gyp/gyp/pylib/gyp/easy_xml_test.py | 4 + .../gyp/pylib/gyp/generator/analyzer.py | 26 +- .../gyp/pylib/gyp/generator/android.py | 2 +- .../node-gyp/gyp/pylib/gyp/generator/cmake.py | 9 +- .../gyp/generator/compile_commands_json.py | 9 +- .../gyp/pylib/gyp/generator/eclipse.py | 5 +- .../node-gyp/gyp/pylib/gyp/generator/make.py | 16 +- .../node-gyp/gyp/pylib/gyp/generator/msvs.py | 78 +- .../node-gyp/gyp/pylib/gyp/generator/ninja.py | 7 +- .../node-gyp/gyp/pylib/gyp/generator/xcode.py | 7 +- .../node-gyp/gyp/pylib/gyp/input.py | 57 +- .../node-gyp/gyp/pylib/gyp/msvs_emulation.py | 25 +- .../node-gyp/gyp/pylib/gyp/win_tool.py | 9 +- .../node-gyp/gyp/pylib/gyp/xcode_emulation.py | 12 +- .../node-gyp/gyp/pylib/gyp/xcodeproj_file.py | 41 +- .../node-gyp/gyp/pylib/packaging/LICENSE | 3 + .../gyp/pylib/packaging/LICENSE.APACHE | 177 +++ .../node-gyp/gyp/pylib/packaging/LICENSE.BSD | 23 + .../node-gyp/gyp/pylib/packaging/__init__.py | 15 + .../node-gyp/gyp/pylib/packaging/_elffile.py | 108 ++ .../gyp/pylib/packaging/_manylinux.py | 252 ++++ .../gyp/pylib/packaging/_musllinux.py | 83 ++ .../node-gyp/gyp/pylib/packaging/_parser.py | 359 +++++ .../gyp/pylib/packaging/_structures.py | 61 + .../gyp/pylib/packaging/_tokenizer.py | 192 +++ .../node-gyp/gyp/pylib/packaging/markers.py | 252 ++++ .../node-gyp/gyp/pylib/packaging/metadata.py | 825 +++++++++++ .../node-gyp/gyp/pylib/packaging/py.typed | 0 .../gyp/pylib/packaging/requirements.py | 90 ++ .../gyp/pylib/packaging/specifiers.py | 1030 ++++++++++++++ .../node-gyp/gyp/pylib/packaging/tags.py | 553 ++++++++ .../node-gyp/gyp/pylib/packaging/utils.py | 172 +++ .../node-gyp/gyp/pylib/packaging/version.py | 563 ++++++++ .../node_modules/node-gyp/gyp/pyproject.toml | 88 +- .../node_modules/node-gyp/gyp/tools/README | 15 - .../node-gyp/gyp/tools/Xcode/README | 5 - .../tools/Xcode/Specifications/gyp.pbfilespec | 27 - .../tools/Xcode/Specifications/gyp.xclangspec | 226 --- .../node-gyp/gyp/tools/emacs/README | 12 - .../node-gyp/gyp/tools/emacs/gyp-tests.el | 63 - .../node-gyp/gyp/tools/emacs/gyp.el | 275 ---- .../gyp/tools/emacs/run-unit-tests.sh | 7 - .../gyp/tools/emacs/testdata/media.gyp | 1105 --------------- .../tools/emacs/testdata/media.gyp.fontified | 1107 --------------- .../node-gyp/gyp/tools/graphviz.py | 102 -- .../node-gyp/gyp/tools/pretty_gyp.py | 156 --- .../node-gyp/gyp/tools/pretty_sln.py | 181 --- .../node-gyp/gyp/tools/pretty_vcproj.py | 339 ----- deps/npm/node_modules/node-gyp/lib/build.js | 189 +-- deps/npm/node_modules/node-gyp/lib/clean.js | 10 +- .../node_modules/node-gyp/lib/configure.js | 334 ++--- .../node-gyp/lib/create-config-gypi.js | 25 +- .../npm/node_modules/node-gyp/lib/download.js | 39 + .../node-gyp/lib/find-node-directory.js | 10 +- .../node_modules/node-gyp/lib/find-python.js | 290 ++-- .../node-gyp/lib/find-visualstudio.js | 222 ++- deps/npm/node_modules/node-gyp/lib/install.js | 97 +- deps/npm/node_modules/node-gyp/lib/list.js | 29 +- deps/npm/node_modules/node-gyp/lib/log.js | 169 +++ .../npm/node_modules/node-gyp/lib/node-gyp.js | 321 ++--- .../node-gyp/lib/process-release.js | 45 +- deps/npm/node_modules/node-gyp/lib/rebuild.js | 3 +- deps/npm/node_modules/node-gyp/lib/remove.js | 39 +- deps/npm/node_modules/node-gyp/lib/util.js | 107 +- .../node_modules/node-gyp/macOS_Catalina.md | 104 -- .../node-gyp/node_modules/abbrev/LICENSE | 46 - .../node-gyp/node_modules/abbrev/abbrev.js | 61 - .../node-gyp/node_modules/abbrev/package.json | 21 - .../node_modules/are-we-there-yet/LICENSE.md | 18 - .../are-we-there-yet/lib/index.js | 4 - .../are-we-there-yet/lib/tracker-base.js | 11 - .../are-we-there-yet/lib/tracker-group.js | 116 -- .../are-we-there-yet/lib/tracker-stream.js | 36 - .../are-we-there-yet/lib/tracker.js | 32 - .../are-we-there-yet/package.json | 56 - .../node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/index.js | 200 --- .../node_modules/brace-expansion/package.json | 47 - .../node-gyp/node_modules/cacache/LICENSE.md | 16 - .../node_modules/cacache/lib/content/path.js | 29 - .../node_modules/cacache/lib/content/read.js | 166 --- .../node_modules/cacache/lib/content/rm.js | 18 - .../node_modules/cacache/lib/content/write.js | 205 --- .../node_modules/cacache/lib/entry-index.js | 330 ----- .../node-gyp/node_modules/cacache/lib/get.js | 170 --- .../node_modules/cacache/lib/index.js | 42 - .../node_modules/cacache/lib/memoization.js | 72 - .../node-gyp/node_modules/cacache/lib/put.js | 80 -- .../node-gyp/node_modules/cacache/lib/rm.js | 31 - .../node_modules/cacache/lib/util/glob.js | 7 - .../cacache/lib/util/hash-to-segments.js | 7 - .../node_modules/cacache/lib/util/tmp.js | 26 - .../node_modules/cacache/lib/verify.js | 257 ---- .../node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/index.js | 202 --- .../node_modules/brace-expansion/package.json | 46 - .../cacache/node_modules/glob/LICENSE | 15 - .../cacache/node_modules/glob/README.md | 1214 ---------------- .../node_modules/glob/dist/cjs/package.json | 4 - .../node_modules/glob/dist/cjs/src/bin.d.ts | 3 - .../glob/dist/cjs/src/bin.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/bin.js | 270 ---- .../node_modules/glob/dist/cjs/src/bin.js.map | 1 - .../node_modules/glob/dist/cjs/src/glob.d.ts | 344 ----- .../glob/dist/cjs/src/glob.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/glob.js | 238 ---- .../glob/dist/cjs/src/glob.js.map | 1 - .../glob/dist/cjs/src/has-magic.d.ts | 14 - .../glob/dist/cjs/src/has-magic.d.ts.map | 1 - .../glob/dist/cjs/src/has-magic.js | 27 - .../glob/dist/cjs/src/has-magic.js.map | 1 - .../glob/dist/cjs/src/ignore.d.ts | 20 - .../glob/dist/cjs/src/ignore.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/ignore.js | 103 -- .../glob/dist/cjs/src/ignore.js.map | 1 - .../node_modules/glob/dist/cjs/src/index.d.ts | 95 -- .../glob/dist/cjs/src/index.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/index.js | 68 - .../glob/dist/cjs/src/index.js.map | 1 - .../glob/dist/cjs/src/pattern.d.ts | 77 -- .../glob/dist/cjs/src/pattern.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/pattern.js | 219 --- .../glob/dist/cjs/src/pattern.js.map | 1 - .../glob/dist/cjs/src/processor.d.ts | 59 - .../glob/dist/cjs/src/processor.d.ts.map | 1 - .../glob/dist/cjs/src/processor.js | 309 ----- .../glob/dist/cjs/src/processor.js.map | 1 - .../glob/dist/cjs/src/walker.d.ts | 96 -- .../glob/dist/cjs/src/walker.d.ts.map | 1 - .../node_modules/glob/dist/cjs/src/walker.js | 358 ----- .../glob/dist/cjs/src/walker.js.map | 1 - .../node_modules/glob/dist/mjs/glob.d.ts | 344 ----- .../node_modules/glob/dist/mjs/glob.d.ts.map | 1 - .../node_modules/glob/dist/mjs/glob.js | 234 ---- .../node_modules/glob/dist/mjs/glob.js.map | 1 - .../node_modules/glob/dist/mjs/has-magic.d.ts | 14 - .../glob/dist/mjs/has-magic.d.ts.map | 1 - .../node_modules/glob/dist/mjs/has-magic.js | 23 - .../glob/dist/mjs/has-magic.js.map | 1 - .../node_modules/glob/dist/mjs/ignore.d.ts | 20 - .../glob/dist/mjs/ignore.d.ts.map | 1 - .../node_modules/glob/dist/mjs/ignore.js | 99 -- .../node_modules/glob/dist/mjs/ignore.js.map | 1 - .../node_modules/glob/dist/mjs/index.d.ts | 95 -- .../node_modules/glob/dist/mjs/index.d.ts.map | 1 - .../node_modules/glob/dist/mjs/index.js | 56 - .../node_modules/glob/dist/mjs/index.js.map | 1 - .../node_modules/glob/dist/mjs/package.json | 4 - .../node_modules/glob/dist/mjs/pattern.d.ts | 77 -- .../glob/dist/mjs/pattern.d.ts.map | 1 - .../node_modules/glob/dist/mjs/pattern.js | 215 --- .../node_modules/glob/dist/mjs/pattern.js.map | 1 - .../node_modules/glob/dist/mjs/processor.d.ts | 59 - .../glob/dist/mjs/processor.d.ts.map | 1 - .../node_modules/glob/dist/mjs/processor.js | 302 ---- .../glob/dist/mjs/processor.js.map | 1 - .../node_modules/glob/dist/mjs/walker.d.ts | 96 -- .../glob/dist/mjs/walker.d.ts.map | 1 - .../node_modules/glob/dist/mjs/walker.js | 352 ----- .../node_modules/glob/dist/mjs/walker.js.map | 1 - .../cacache/node_modules/glob/package.json | 98 -- .../cacache/node_modules/minimatch/LICENSE | 15 - .../dist/cjs/assert-valid-pattern.js | 14 - .../node_modules/minimatch/dist/cjs/ast.js | 589 -------- .../minimatch/dist/cjs/brace-expressions.js | 152 -- .../node_modules/minimatch/dist/cjs/escape.js | 22 - .../node_modules/minimatch/dist/cjs/index.js | 1011 -------------- .../minimatch/dist/cjs/package.json | 3 - .../minimatch/dist/cjs/unescape.js | 24 - .../dist/mjs/assert-valid-pattern.js | 10 - .../node_modules/minimatch/dist/mjs/ast.js | 585 -------- .../minimatch/dist/mjs/brace-expressions.js | 148 -- .../node_modules/minimatch/dist/mjs/escape.js | 18 - .../node_modules/minimatch/dist/mjs/index.js | 995 ------------- .../minimatch/dist/mjs/package.json | 3 - .../minimatch/dist/mjs/unescape.js | 20 - .../node_modules/minimatch/package.json | 86 -- .../cacache/node_modules/minipass/LICENSE | 15 - .../node_modules/minipass/dist/cjs/index.js | 1028 -------------- .../minipass/dist/cjs/package.json | 3 - .../node_modules/minipass/dist/mjs/index.js | 1018 -------------- .../minipass/dist/mjs/package.json | 3 - .../node_modules/minipass/package.json | 82 -- .../node_modules/cacache/package.json | 82 -- .../node-gyp/node_modules/gauge/LICENSE.md | 20 - .../node_modules/gauge/lib/base-theme.js | 18 - .../node-gyp/node_modules/gauge/lib/error.js | 24 - .../node_modules/gauge/lib/has-color.js | 4 - .../node-gyp/node_modules/gauge/lib/index.js | 289 ---- .../node_modules/gauge/lib/plumbing.js | 50 - .../node_modules/gauge/lib/process.js | 3 - .../node_modules/gauge/lib/progress-bar.js | 41 - .../node_modules/gauge/lib/render-template.js | 222 --- .../node_modules/gauge/lib/set-immediate.js | 7 - .../node_modules/gauge/lib/set-interval.js | 3 - .../node-gyp/node_modules/gauge/lib/spin.js | 5 - .../node_modules/gauge/lib/template-item.js | 87 -- .../node_modules/gauge/lib/theme-set.js | 122 -- .../node-gyp/node_modules/gauge/lib/themes.js | 56 - .../node_modules/gauge/lib/wide-truncate.js | 31 - .../node-gyp/node_modules/gauge/package.json | 66 - .../node-gyp/node_modules/glob/LICENSE | 21 - .../node-gyp/node_modules/glob/common.js | 238 ---- .../node-gyp/node_modules/glob/glob.js | 790 ----------- .../node-gyp/node_modules/glob/package.json | 55 - .../node-gyp/node_modules/glob/sync.js | 486 ------- .../node-gyp/node_modules/lru-cache/LICENSE | 15 - .../node-gyp/node_modules/lru-cache/index.js | 1227 ----------------- .../node-gyp/node_modules/lru-cache/index.mjs | 1227 ----------------- .../node_modules/lru-cache/package.json | 96 -- .../node_modules/make-fetch-happen/LICENSE | 16 - .../make-fetch-happen/lib/agent.js | 214 --- .../make-fetch-happen/lib/cache/entry.js | 469 ------- .../make-fetch-happen/lib/cache/errors.js | 11 - .../make-fetch-happen/lib/cache/index.js | 49 - .../make-fetch-happen/lib/cache/key.js | 17 - .../make-fetch-happen/lib/cache/policy.js | 161 --- .../node_modules/make-fetch-happen/lib/dns.js | 49 - .../make-fetch-happen/lib/fetch.js | 118 -- .../make-fetch-happen/lib/index.js | 41 - .../make-fetch-happen/lib/options.js | 54 - .../make-fetch-happen/lib/pipeline.js | 41 - .../make-fetch-happen/lib/remote.js | 121 -- .../make-fetch-happen/package.json | 78 -- .../node-gyp/node_modules/minimatch/LICENSE | 15 - .../node_modules/minimatch/minimatch.js | 947 ------------- .../node_modules/minimatch/package.json | 33 - .../node-gyp/node_modules/minipass/LICENSE | 15 - .../node-gyp/node_modules/minipass/index.js | 702 ---------- .../node-gyp/node_modules/minipass/index.mjs | 700 ---------- .../node_modules/minipass/package.json | 76 - .../node-gyp/node_modules/nopt/LICENSE | 15 - .../node-gyp/node_modules/nopt/README.md | 213 --- .../node-gyp/node_modules/nopt/bin/nopt.js | 56 - .../node-gyp/node_modules/nopt/lib/nopt.js | 515 ------- .../node-gyp/node_modules/nopt/package.json | 53 - .../node-gyp/node_modules/npmlog/LICENSE.md | 20 - .../node-gyp/node_modules/npmlog/lib/log.js | 404 ------ .../node-gyp/node_modules/npmlog/package.json | 51 - .../readable-stream/CONTRIBUTING.md | 38 - .../readable-stream/GOVERNANCE.md | 136 -- .../node_modules/readable-stream/LICENSE | 47 - .../readable-stream/errors-browser.js | 127 -- .../node_modules/readable-stream/errors.js | 116 -- .../readable-stream/experimentalWarning.js | 17 - .../readable-stream/lib/_stream_duplex.js | 126 -- .../lib/_stream_passthrough.js | 37 - .../readable-stream/lib/_stream_readable.js | 1027 -------------- .../readable-stream/lib/_stream_transform.js | 190 --- .../readable-stream/lib/_stream_writable.js | 641 --------- .../lib/internal/streams/async_iterator.js | 180 --- .../lib/internal/streams/buffer_list.js | 183 --- .../lib/internal/streams/destroy.js | 96 -- .../lib/internal/streams/end-of-stream.js | 86 -- .../lib/internal/streams/from-browser.js | 3 - .../lib/internal/streams/from.js | 52 - .../lib/internal/streams/pipeline.js | 86 -- .../lib/internal/streams/state.js | 22 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/readable-stream/package.json | 68 - .../readable-stream/readable-browser.js | 9 - .../node_modules/readable-stream/readable.js | 16 - .../node_modules/signal-exit/LICENSE.txt | 16 - .../node_modules/signal-exit/index.js | 202 --- .../node_modules/signal-exit/package.json | 38 - .../node_modules/signal-exit/signals.js | 53 - .../node-gyp/node_modules/which/LICENSE | 15 - .../node-gyp/node_modules/which/README.md | 54 - .../node_modules/which/bin/node-which | 52 - .../node-gyp/node_modules/which/package.json | 43 - .../node-gyp/node_modules/which/which.js | 125 -- deps/npm/node_modules/node-gyp/package.json | 22 +- deps/npm/node_modules/node-gyp/test/common.js | 3 - .../fixtures/VS_2017_BuildTools_minimal.txt | 1 - .../fixtures/VS_2017_Community_workload.txt | 1 - .../test/fixtures/VS_2017_Express.txt | 1 - .../test/fixtures/VS_2017_Unusable.txt | 1 - .../fixtures/VS_2019_BuildTools_minimal.txt | 1 - .../fixtures/VS_2019_Community_workload.txt | 1 - .../test/fixtures/VS_2019_Preview.txt | 1 - .../fixtures/VS_2022_Community_workload.txt | 569 -------- .../node-gyp/test/fixtures/certs.js | 150 -- .../fixtures/nodedir/include/node/config.gypi | 6 - .../node-gyp/test/fixtures/test-charmap.py | 31 - .../node-gyp/test/process-exec-sync.js | 140 -- .../node_modules/node-gyp/test/reporter.js | 75 - .../node-gyp/test/simple-proxy.js | 27 - .../node_modules/node-gyp/test/test-addon.js | 152 -- .../node-gyp/test/test-configure-python.js | 81 -- .../node-gyp/test/test-create-config-gypi.js | 61 - .../node-gyp/test/test-download.js | 210 --- .../test/test-find-accessible-sync.js | 73 - .../node-gyp/test/test-find-node-directory.js | 115 -- .../node-gyp/test/test-find-python.js | 213 --- .../node-gyp/test/test-find-visualstudio.js | 670 --------- .../node-gyp/test/test-install.js | 137 -- .../node-gyp/test/test-options.js | 41 - .../node-gyp/test/test-process-release.js | 401 ------ deps/npm/node_modules/node-gyp/update-gyp.py | 64 - .../npm-install-checks/lib/index.js | 4 +- .../npm-install-checks/package.json | 6 +- .../npm-registry-fetch/lib/auth.js | 64 +- .../npm-registry-fetch/lib/index.js | 2 + .../npm-registry-fetch/package.json | 14 +- deps/npm/node_modules/once/LICENSE | 15 - deps/npm/node_modules/once/once.js | 42 - deps/npm/node_modules/once/package.json | 33 - .../node_modules/path-is-absolute/index.js | 20 - .../npm/node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 43 - .../readable-stream/lib/stream/promises.js | 2 +- .../node_modules/readable-stream/package.json | 6 +- deps/npm/node_modules/rimraf/LICENSE | 15 - deps/npm/node_modules/rimraf/README.md | 101 -- deps/npm/node_modules/rimraf/bin.js | 68 - .../node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/index.js | 200 --- .../node_modules/brace-expansion/package.json | 47 - .../rimraf/node_modules/glob/LICENSE | 21 - .../rimraf/node_modules/glob/common.js | 238 ---- .../rimraf/node_modules/glob/glob.js | 790 ----------- .../rimraf/node_modules/glob/package.json | 55 - .../rimraf/node_modules/glob/sync.js | 486 ------- .../rimraf/node_modules/minimatch/LICENSE | 15 - .../node_modules/minimatch/minimatch.js | 947 ------------- .../node_modules/minimatch/package.json | 33 - deps/npm/node_modules/rimraf/package.json | 32 - deps/npm/node_modules/rimraf/rimraf.js | 360 ----- .../socks-proxy-agent/dist/index.js | 197 --- .../socks-proxy-agent/package.json | 181 --- .../spdx-license-ids/deprecated.json | 6 + .../node_modules/spdx-license-ids/index.json | 62 + .../spdx-license-ids/package.json | 6 +- deps/npm/node_modules/wrappy/LICENSE | 15 - deps/npm/node_modules/wrappy/package.json | 29 - deps/npm/node_modules/wrappy/wrappy.js | 33 - deps/npm/package.json | 26 +- .../test/lib/commands/view.js.test.cjs | 4 + .../test/lib/utils/error-message.js.test.cjs | 2 +- deps/npm/test/bin/windows-shims.js | 30 +- deps/npm/test/lib/commands/audit.js | 12 +- deps/npm/test/lib/commands/link.js | 34 + deps/npm/test/lib/commands/logout.js | 212 ++- deps/npm/test/lib/commands/pkg.js | 44 + deps/npm/test/lib/commands/view.js | 6 + 556 files changed, 6990 insertions(+), 44431 deletions(-) create mode 100755 deps/npm/bin/node-gyp-bin/node-gyp create mode 100755 deps/npm/bin/node-gyp-bin/node-gyp.cmd delete mode 100644 deps/npm/node_modules/@tootallnate/once/LICENSE delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/index.js delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/overloaded-parameters.js delete mode 100644 deps/npm/node_modules/@tootallnate/once/dist/types.js delete mode 100644 deps/npm/node_modules/@tootallnate/once/package.json delete mode 100644 deps/npm/node_modules/agent-base/dist/src/index.js delete mode 100644 deps/npm/node_modules/agent-base/dist/src/promisify.js delete mode 100644 deps/npm/node_modules/agent-base/package.json delete mode 100644 deps/npm/node_modules/agentkeepalive/LICENSE delete mode 100644 deps/npm/node_modules/agentkeepalive/browser.js delete mode 100644 deps/npm/node_modules/agentkeepalive/index.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/agent.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/constants.js delete mode 100644 deps/npm/node_modules/agentkeepalive/lib/https_agent.js delete mode 100644 deps/npm/node_modules/agentkeepalive/package.json delete mode 100644 deps/npm/node_modules/concat-map/LICENSE delete mode 100644 deps/npm/node_modules/concat-map/example/map.js delete mode 100644 deps/npm/node_modules/concat-map/index.js delete mode 100644 deps/npm/node_modules/concat-map/package.json delete mode 100644 deps/npm/node_modules/concat-map/test/map.js delete mode 100644 deps/npm/node_modules/fs.realpath/LICENSE delete mode 100644 deps/npm/node_modules/fs.realpath/index.js delete mode 100644 deps/npm/node_modules/fs.realpath/old.js delete mode 100644 deps/npm/node_modules/fs.realpath/package.json delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/agent.js delete mode 100644 deps/npm/node_modules/http-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/http-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/agent.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js delete mode 100644 deps/npm/node_modules/https-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/humanize-ms/LICENSE delete mode 100644 deps/npm/node_modules/humanize-ms/index.js delete mode 100644 deps/npm/node_modules/humanize-ms/package.json delete mode 100644 deps/npm/node_modules/inflight/LICENSE delete mode 100644 deps/npm/node_modules/inflight/inflight.js delete mode 100644 deps/npm/node_modules/inflight/package.json delete mode 100644 deps/npm/node_modules/inherits/LICENSE delete mode 100644 deps/npm/node_modules/inherits/inherits.js delete mode 100644 deps/npm/node_modules/inherits/inherits_browser.js delete mode 100644 deps/npm/node_modules/inherits/package.json delete mode 100644 deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md delete mode 100644 deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml delete mode 100644 deps/npm/node_modules/node-gyp/.github/workflows/tests.yml delete mode 100644 deps/npm/node_modules/node-gyp/.github/workflows/visual-studio.yml delete mode 100644 deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/Force-npm-to-use-global-node-gyp.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/Home.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/README.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md delete mode 100644 deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.flake8 delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml delete mode 100644 deps/npm/node_modules/node-gyp/gyp/AUTHORS delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md delete mode 100644 deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/__init__.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_parser.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_structures.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/markers.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/metadata.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/py.typed create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/requirements.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/tags.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/utils.py create mode 100644 deps/npm/node_modules/node-gyp/gyp/pylib/packaging/version.py delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/README delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp-tests.el delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/gyp.el delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/emacs/run-unit-tests.sh delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp delete mode 100644 deps/npm/node_modules/node-gyp/gyp/tools/emacs/testdata/media.gyp.fontified delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/graphviz.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py delete mode 100755 deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py create mode 100644 deps/npm/node_modules/node-gyp/lib/download.js create mode 100644 deps/npm/node_modules/node-gyp/lib/log.js delete mode 100644 deps/npm/node_modules/node-gyp/macOS_Catalina.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/abbrev/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/abbrev/abbrev.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/abbrev/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-base.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-group.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-stream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/brace-expansion/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/path.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/read.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/rm.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/write.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/entry-index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/get.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/memoization.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/put.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/rm.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/glob.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/hash-to-segments.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/tmp.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/lib/verify.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/README.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts.map delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js.map delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/cacache/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/base-theme.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/error.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/has-color.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/plumbing.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/process.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/progress-bar.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/render-template.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-immediate.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-interval.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/spin.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/template-item.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/theme-set.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/themes.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/lib/wide-truncate.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/gauge/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/glob/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/glob/common.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/glob/glob.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/glob/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/glob/sync.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/lru-cache/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.mjs delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/lru-cache/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/agent.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/entry.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/errors.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/key.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/policy.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/dns.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/fetch.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/options.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/pipeline.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/remote.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minipass/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minipass/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minipass/index.mjs delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/minipass/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/README.md delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/lib/nopt.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/nopt/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/npmlog/lib/log.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/CONTRIBUTING.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors-browser.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/experimentalWarning.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/async_iterator.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/buffer_list.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/end-of-stream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from-browser.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/pipeline.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/state.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable-browser.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/signal-exit/LICENSE.txt delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/signal-exit/index.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/signal-exit/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/signal-exit/signals.js delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/which/LICENSE delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/which/README.md delete mode 100755 deps/npm/node_modules/node-gyp/node_modules/which/bin/node-which delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/which/package.json delete mode 100644 deps/npm/node_modules/node-gyp/node_modules/which/which.js delete mode 100644 deps/npm/node_modules/node-gyp/test/common.js delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/certs.js delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi delete mode 100644 deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py delete mode 100644 deps/npm/node_modules/node-gyp/test/process-exec-sync.js delete mode 100644 deps/npm/node_modules/node-gyp/test/reporter.js delete mode 100644 deps/npm/node_modules/node-gyp/test/simple-proxy.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-addon.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-configure-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-create-config-gypi.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-download.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-node-directory.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-python.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-find-visualstudio.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-install.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-options.js delete mode 100644 deps/npm/node_modules/node-gyp/test/test-process-release.js delete mode 100755 deps/npm/node_modules/node-gyp/update-gyp.py delete mode 100644 deps/npm/node_modules/once/LICENSE delete mode 100644 deps/npm/node_modules/once/once.js delete mode 100644 deps/npm/node_modules/once/package.json delete mode 100644 deps/npm/node_modules/path-is-absolute/index.js delete mode 100644 deps/npm/node_modules/path-is-absolute/license delete mode 100644 deps/npm/node_modules/path-is-absolute/package.json delete mode 100644 deps/npm/node_modules/rimraf/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/README.md delete mode 100755 deps/npm/node_modules/rimraf/bin.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/brace-expansion/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/node_modules/brace-expansion/index.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/brace-expansion/package.json delete mode 100644 deps/npm/node_modules/rimraf/node_modules/glob/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/node_modules/glob/common.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/glob/glob.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/glob/package.json delete mode 100644 deps/npm/node_modules/rimraf/node_modules/glob/sync.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/minimatch/LICENSE delete mode 100644 deps/npm/node_modules/rimraf/node_modules/minimatch/minimatch.js delete mode 100644 deps/npm/node_modules/rimraf/node_modules/minimatch/package.json delete mode 100644 deps/npm/node_modules/rimraf/package.json delete mode 100644 deps/npm/node_modules/rimraf/rimraf.js delete mode 100644 deps/npm/node_modules/socks-proxy-agent/dist/index.js delete mode 100644 deps/npm/node_modules/socks-proxy-agent/package.json delete mode 100644 deps/npm/node_modules/wrappy/LICENSE delete mode 100644 deps/npm/node_modules/wrappy/package.json delete mode 100644 deps/npm/node_modules/wrappy/wrappy.js diff --git a/deps/npm/bin/node-gyp-bin/node-gyp b/deps/npm/bin/node-gyp-bin/node-gyp new file mode 100755 index 00000000000000..70efb6f339f768 --- /dev/null +++ b/deps/npm/bin/node-gyp-bin/node-gyp @@ -0,0 +1,6 @@ +#!/usr/bin/env sh +if [ "x$npm_config_node_gyp" = "x" ]; then + node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@" +else + "$npm_config_node_gyp" "$@" +fi diff --git a/deps/npm/bin/node-gyp-bin/node-gyp.cmd b/deps/npm/bin/node-gyp-bin/node-gyp.cmd new file mode 100755 index 00000000000000..083c9c58a502a1 --- /dev/null +++ b/deps/npm/bin/node-gyp-bin/node-gyp.cmd @@ -0,0 +1,5 @@ +if not defined npm_config_node_gyp ( + node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %* +) else ( + node "%npm_config_node_gyp%" %* +) diff --git a/deps/npm/docs/content/commands/npm-audit.md b/deps/npm/docs/content/commands/npm-audit.md index c36683cf10e073..9b98734a96fcfd 100644 --- a/deps/npm/docs/content/commands/npm-audit.md +++ b/deps/npm/docs/content/commands/npm-audit.md @@ -83,13 +83,13 @@ The `sig` is generated using the following template: `${package.name}@${package. Keys response: -- `expires`: null or a simplified extended ISO 8601 format: `YYYY-MM-DDTHH:mm:ss.sssZ` +- `expires`: null or a simplified extended [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601"): `YYYY-MM-DDTHH:mm:ss.sssZ` - `keydid`: sha256 fingerprint of the public key - `keytype`: only `ecdsa-sha2-nistp256` is currently supported by the npm CLI - `scheme`: only `ecdsa-sha2-nistp256` is currently supported by the npm CLI - `key`: base64 encoded public key -See this example key's response from the public npm registry. +See this [example key's response from the public npm registry](https://registry.npmjs.org/-/npm/v1/keys"). ### Audit Endpoints diff --git a/deps/npm/docs/content/commands/npm-ls.md b/deps/npm/docs/content/commands/npm-ls.md index 791e5f88b082bb..2bff962988c4cc 100644 --- a/deps/npm/docs/content/commands/npm-ls.md +++ b/deps/npm/docs/content/commands/npm-ls.md @@ -27,7 +27,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@10.2.0 /path/to/npm +npm@10.2.3 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` diff --git a/deps/npm/docs/content/commands/npm-rebuild.md b/deps/npm/docs/content/commands/npm-rebuild.md index c42e09767ef4b4..596ae97df24448 100644 --- a/deps/npm/docs/content/commands/npm-rebuild.md +++ b/deps/npm/docs/content/commands/npm-rebuild.md @@ -14,14 +14,29 @@ alias: rb ### Description -This command runs the `npm build` command on the matched folders. This is -useful when you install a new version of node, and must recompile all your -C++ addons with the new binary. It is also useful when installing with -`--ignore-scripts` and `--no-bin-links`, to explicitly choose which -packages to build and/or link bins. - -If one or more package specs are provided, then only packages with a -name and version matching one of the specifiers will be rebuilt. +This command does the following: + +1. Execute lifecycle scripts (`preinstall`, `install`, `postinstall`, `prepare`) +2. Links bins depending on whether bin links are enabled + +This command is particularly useful in scenarios including but not limited to: + +1. Installing a new version of **node.js**, where you need to recompile all your C++ add-ons with the updated binary. +2. Installing with `--ignore-scripts` and `--no-bin-links`, to explicitly choose which packages to build and/or link bins. + +If one or more package specs are provided, then only packages with a name and version matching one of the specifiers will be rebuilt. + +Usually, you should not need to run `npm rebuild` as it is already done for you as part of npm install (unless you suppressed these steps with `--ignore-scripts` or `--no-bin-links`). + +If there is a `binding.gyp` file in the root of your package, then npm will use a default install hook: + +``` +"scripts": { + "install": "node-gyp rebuild" +} +``` + +This default behavior is suppressed if the `package.json` has its own `install` or `preinstall` scripts. It is also suppressed if the package specifies `"gypfile": false` ### Configuration diff --git a/deps/npm/docs/content/commands/npm-team.md b/deps/npm/docs/content/commands/npm-team.md index a32619a75fe182..7895df7c961522 100644 --- a/deps/npm/docs/content/commands/npm-team.md +++ b/deps/npm/docs/content/commands/npm-team.md @@ -33,7 +33,7 @@ on your `authtype`. * create / destroy: Create a new team, or destroy an existing one. Note: You cannot remove the - `developers` team, learn more. + `developers` team, [learn more.](https://docs.npmjs.com/about-developers-team) Here's how to create a new team `newteam` under the `org` org: diff --git a/deps/npm/docs/content/commands/npm-unpublish.md b/deps/npm/docs/content/commands/npm-unpublish.md index 52f2961246b1f1..8ab976e96cb6c7 100644 --- a/deps/npm/docs/content/commands/npm-unpublish.md +++ b/deps/npm/docs/content/commands/npm-unpublish.md @@ -10,9 +10,8 @@ description: Remove a package from the registry npm unpublish [] ``` -To learn more about how the npm registry treats unpublish, see our unpublish policies +To learn more about how the npm registry treats unpublish, see our +[unpublish policies](https://docs.npmjs.com/policies/unpublish). ### Warning diff --git a/deps/npm/docs/content/commands/npm.md b/deps/npm/docs/content/commands/npm.md index 0a5b88d7083c8a..247b7ba6edf594 100644 --- a/deps/npm/docs/content/commands/npm.md +++ b/deps/npm/docs/content/commands/npm.md @@ -14,7 +14,7 @@ Note: This command is unaware of workspaces. ### Version -10.2.0 +10.2.3 ### Description diff --git a/deps/npm/docs/content/configuring-npm/package-lock-json.md b/deps/npm/docs/content/configuring-npm/package-lock-json.md index 8904f308870982..d540dd0e7228b8 100644 --- a/deps/npm/docs/content/configuring-npm/package-lock-json.md +++ b/deps/npm/docs/content/configuring-npm/package-lock-json.md @@ -114,7 +114,7 @@ the npm registry. Lockfiles generated by npm v7 will contain * `1`: The lockfile version used by npm v5 and v6. * `2`: The lockfile version used by npm v7 and v8. Backwards compatible to v1 lockfiles. -* `3`: The lockfile version used by npm v9. Backwards compatible to npm v7. +* `3`: The lockfile version used by npm v9 and above. Backwards compatible to npm v7. npm will always attempt to get whatever data it can out of a lockfile, even if it is not a version that it was designed to support. diff --git a/deps/npm/docs/content/using-npm/scripts.md b/deps/npm/docs/content/using-npm/scripts.md index bf212c5db24f77..b25815a428cd4c 100644 --- a/deps/npm/docs/content/using-npm/scripts.md +++ b/deps/npm/docs/content/using-npm/scripts.md @@ -159,8 +159,6 @@ These are run from the scripts of `` * `publish` * `postpublish` -`prepare` will not run during `--dry-run` - #### [`npm rebuild`](/commands/npm-rebuild) * `preinstall` diff --git a/deps/npm/docs/output/commands/npm-audit.html b/deps/npm/docs/output/commands/npm-audit.html index 8ac632d7336589..4aaff936efe846 100644 --- a/deps/npm/docs/output/commands/npm-audit.html +++ b/deps/npm/docs/output/commands/npm-audit.html @@ -203,13 +203,13 @@

                            Audit Signatures

                            Keys response:

                              -
                            • expires: null or a simplified extended ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
                            • +
                            • expires: null or a simplified extended ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
                            • keydid: sha256 fingerprint of the public key
                            • keytype: only ecdsa-sha2-nistp256 is currently supported by the npm CLI
                            • scheme: only ecdsa-sha2-nistp256 is currently supported by the npm CLI
                            • key: base64 encoded public key
                            -

                            See this example key's response from the public npm registry.

                            +

                            See this example key's response from the public npm registry.

                            Audit Endpoints

                            There are two audit endpoints that npm may use to fetch vulnerability information: the Bulk Advisory endpoint and the Quick Audit endpoint.

                            diff --git a/deps/npm/docs/output/commands/npm-ls.html b/deps/npm/docs/output/commands/npm-ls.html index fda40e2beabf14..0c623b49378635 100644 --- a/deps/npm/docs/output/commands/npm-ls.html +++ b/deps/npm/docs/output/commands/npm-ls.html @@ -160,7 +160,7 @@

                            Description

                            the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

                            -
                            npm@10.2.0 /path/to/npm
                            +
                            npm@10.2.3 /path/to/npm
                             └─┬ init-package-json@0.0.4
                               └── promzard@0.1.5
                             
                            diff --git a/deps/npm/docs/output/commands/npm-rebuild.html b/deps/npm/docs/output/commands/npm-rebuild.html index 4d2ce115e6a362..3a1a5a401a6a06 100644 --- a/deps/npm/docs/output/commands/npm-rebuild.html +++ b/deps/npm/docs/output/commands/npm-rebuild.html @@ -151,13 +151,24 @@

                            Table of contents

                            alias: rb

                            Description

                            -

                            This command runs the npm build command on the matched folders. This is -useful when you install a new version of node, and must recompile all your -C++ addons with the new binary. It is also useful when installing with ---ignore-scripts and --no-bin-links, to explicitly choose which -packages to build and/or link bins.

                            -

                            If one or more package specs are provided, then only packages with a -name and version matching one of the specifiers will be rebuilt.

                            +

                            This command does the following:

                            +
                              +
                            1. Execute lifecycle scripts (preinstall, install, postinstall, prepare)
                            2. +
                            3. Links bins depending on whether bin links are enabled
                            4. +
                            +

                            This command is particularly useful in scenarios including but not limited to:

                            +
                              +
                            1. Installing a new version of node.js, where you need to recompile all your C++ add-ons with the updated binary.
                            2. +
                            3. Installing with --ignore-scripts and --no-bin-links, to explicitly choose which packages to build and/or link bins.
                            4. +
                            +

                            If one or more package specs are provided, then only packages with a name and version matching one of the specifiers will be rebuilt.

                            +

                            Usually, you should not need to run npm rebuild as it is already done for you as part of npm install (unless you suppressed these steps with --ignore-scripts or --no-bin-links).

                            +

                            If there is a binding.gyp file in the root of your package, then npm will use a default install hook:

                            +
                            "scripts": {
                            +    "install": "node-gyp rebuild"
                            +}
                            +
                            +

                            This default behavior is suppressed if the package.json has its own install or preinstall scripts. It is also suppressed if the package specifies "gypfile": false

                            Configuration

                            global

                              diff --git a/deps/npm/docs/output/commands/npm-team.html b/deps/npm/docs/output/commands/npm-team.html index ac8740e917cc8f..6752bb38102d7a 100644 --- a/deps/npm/docs/output/commands/npm-team.html +++ b/deps/npm/docs/output/commands/npm-team.html @@ -168,7 +168,7 @@

                              Description

                            • create / destroy: Create a new team, or destroy an existing one. Note: You cannot remove the -developers team, learn more.

                              +developers team, learn more.

                              Here's how to create a new team newteam under the org org:

                              npm team create @org:newteam
                               
                              diff --git a/deps/npm/docs/output/commands/npm-unpublish.html b/deps/npm/docs/output/commands/npm-unpublish.html index 98fa487e07775c..0c4776309b5640 100644 --- a/deps/npm/docs/output/commands/npm-unpublish.html +++ b/deps/npm/docs/output/commands/npm-unpublish.html @@ -148,7 +148,8 @@

                              Table of contents

                              Synopsis

                              npm unpublish [<package-spec>]
                               
                              -

                              To learn more about how the npm registry treats unpublish, see our unpublish policies

                              +

                              To learn more about how the npm registry treats unpublish, see our +unpublish policies.

                              Warning

                              Consider using the deprecate command instead, if your intent is to encourage users to upgrade, or if you no longer diff --git a/deps/npm/docs/output/commands/npm.html b/deps/npm/docs/output/commands/npm.html index dafc8c4f92c3e5..d1ca758360ff09 100644 --- a/deps/npm/docs/output/commands/npm.html +++ b/deps/npm/docs/output/commands/npm.html @@ -150,7 +150,7 @@

                              Table of contents

                              Note: This command is unaware of workspaces.

                              Version

                              -

                              10.2.0

                              +

                              10.2.3

                              Description

                              npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency diff --git a/deps/npm/docs/output/configuring-npm/package-lock-json.html b/deps/npm/docs/output/configuring-npm/package-lock-json.html index 7587b4ad6056a8..11e4ab79900e5a 100644 --- a/deps/npm/docs/output/configuring-npm/package-lock-json.html +++ b/deps/npm/docs/output/configuring-npm/package-lock-json.html @@ -241,7 +241,7 @@

                              lockfileVersion

                            • 1: The lockfile version used by npm v5 and v6.
                            • 2: The lockfile version used by npm v7 and v8. Backwards compatible to v1 lockfiles.
                            • -
                            • 3: The lockfile version used by npm v9. Backwards compatible to npm v7.
                            • +
                            • 3: The lockfile version used by npm v9 and above. Backwards compatible to npm v7.

                            npm will always attempt to get whatever data it can out of a lockfile, even if it is not a version that it was designed to support.

                            diff --git a/deps/npm/docs/output/using-npm/scripts.html b/deps/npm/docs/output/using-npm/scripts.html index 6cc14bff7aeabe..5628c7724f8ca7 100644 --- a/deps/npm/docs/output/using-npm/scripts.html +++ b/deps/npm/docs/output/using-npm/scripts.html @@ -293,7 +293,6 @@

                            npm publishpublish
                          • postpublish
                          • -

                            prepare will not run during --dry-run

                            npm rebuild

                            • preinstall
                            • diff --git a/deps/npm/lib/commands/audit.js b/deps/npm/lib/commands/audit.js index c95d992c05c99f..8c10a36cfee3cf 100644 --- a/deps/npm/lib/commands/audit.js +++ b/deps/npm/lib/commands/audit.js @@ -55,7 +55,7 @@ class VerifySignatures { // Didn't find any dependencies that could be verified, e.g. only local // deps, missing version, not on a registry etc. if (!this.auditedWithKeysCount) { - throw new Error('found no dependencies to audit that where installed from ' + + throw new Error('found no dependencies to audit that were installed from ' + 'a supported registry') } diff --git a/deps/npm/lib/commands/link.js b/deps/npm/lib/commands/link.js index 0c0929115a557f..cdc248569849c3 100644 --- a/deps/npm/lib/commands/link.js +++ b/deps/npm/lib/commands/link.js @@ -109,13 +109,13 @@ class Link extends ArboristWorkspaceCmd { // using any of --save-dev or other types const save = Boolean( - this.npm.config.find('save') !== 'default' || + (this.npm.config.find('save') !== 'default' && + this.npm.config.get('save')) || this.npm.config.get('save-optional') || this.npm.config.get('save-peer') || this.npm.config.get('save-dev') || this.npm.config.get('save-prod') ) - // create a new arborist instance for the local prefix and // reify all the pending names as symlinks there const localArb = new Arborist({ diff --git a/deps/npm/lib/commands/logout.js b/deps/npm/lib/commands/logout.js index aea5e93652b0e8..665580930639cf 100644 --- a/deps/npm/lib/commands/logout.js +++ b/deps/npm/lib/commands/logout.js @@ -1,5 +1,5 @@ -const getAuth = require('npm-registry-fetch/lib/auth.js') const npmFetch = require('npm-registry-fetch') +const { getAuth } = npmFetch const log = require('../utils/log-shim') const BaseCommand = require('../base-command.js') @@ -19,10 +19,14 @@ class Logout extends BaseCommand { const auth = getAuth(reg, this.npm.flatOptions) + const level = this.npm.config.find(`${auth.regKey}:${auth.authKey}`) + + // find the config level and only delete from there if (auth.token) { log.verbose('logout', `clearing token for ${reg}`) await npmFetch(`/-/user/token/${encodeURIComponent(auth.token)}`, { ...this.npm.flatOptions, + registry: reg, method: 'DELETE', ignoreBody: true, }) @@ -34,12 +38,12 @@ class Logout extends BaseCommand { } if (scope) { - this.npm.config.delete(regRef, 'user') + this.npm.config.delete(regRef, level) } - this.npm.config.clearCredentialsByURI(reg) + this.npm.config.clearCredentialsByURI(reg, level) - await this.npm.config.save('user') + await this.npm.config.save(level) } } module.exports = Logout diff --git a/deps/npm/lib/utils/error-message.js b/deps/npm/lib/utils/error-message.js index a2cdb0aa48068c..e3d6c3526936f8 100644 --- a/deps/npm/lib/utils/error-message.js +++ b/deps/npm/lib/utils/error-message.js @@ -182,7 +182,7 @@ const errorMessage = (er, npm) => { ]) detail.push([ '', - ['To correct this please trying logging in again with:', ' npm login'].join('\n'), + ['To correct this please try logging in again with:', ' npm login'].join('\n'), ]) } else if (auth.includes('Basic')) { short.push(['', 'Incorrect or missing password.']) diff --git a/deps/npm/lib/utils/queryable.js b/deps/npm/lib/utils/queryable.js index 5ddcf636e83836..69621d928e8ddc 100644 --- a/deps/npm/lib/utils/queryable.js +++ b/deps/npm/lib/utils/queryable.js @@ -111,13 +111,9 @@ const getter = ({ data, key }) => { }, {}) return _data } else { - // if can't find any more values, it means it's just over - // and there's nothing to return - if (!_data[k]) { + if (!Object.hasOwn(_data, k)) { return undefined } - - // otherwise sets the next value _data = _data[k] } diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 index 3973970b33e774..53fd371f3a67e2 100644 --- a/deps/npm/man/man1/npm-access.1 +++ b/deps/npm/man/man1/npm-access.1 @@ -1,4 +1,4 @@ -.TH "NPM-ACCESS" "1" "October 2023" "" "" +.TH "NPM-ACCESS" "1" "November 2023" "" "" .SH "NAME" \fBnpm-access\fR - Set access level on published packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index bed0126358ba71..2c55c56074528d 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -1,4 +1,4 @@ -.TH "NPM-ADDUSER" "1" "October 2023" "" "" +.TH "NPM-ADDUSER" "1" "November 2023" "" "" .SH "NAME" \fBnpm-adduser\fR - Add a registry user account .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1 index 2b354792825a2a..c3b84eef16325b 100644 --- a/deps/npm/man/man1/npm-audit.1 +++ b/deps/npm/man/man1/npm-audit.1 @@ -1,4 +1,4 @@ -.TH "NPM-AUDIT" "1" "October 2023" "" "" +.TH "NPM-AUDIT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-audit\fR - Run a security audit .SS "Synopsis" @@ -78,7 +78,7 @@ Public signing keys are provided at \fBregistry-host.tld/-/npm/v1/keys\fR in the Keys response: .RS 0 .IP \(bu 4 -\fBexpires\fR: null or a simplified extended ISO 8601 format: \fBYYYY-MM-DDTHH:mm:ss.sssZ\fR +\fBexpires\fR: null or a simplified extended \fBISO 8601 format\fR \fI\(lahttps://en.wikipedia.org/wiki/ISO_8601"\(ra\fR: \fBYYYY-MM-DDTHH:mm:ss.sssZ\fR .IP \(bu 4 \fBkeydid\fR: sha256 fingerprint of the public key .IP \(bu 4 @@ -90,7 +90,7 @@ Keys response: .RE 0 .P -See this example key's response from the public npm registry. +See this \fBexample key's response from the public npm registry\fR \fI\(lahttps://registry.npmjs.org/-/npm/v1/keys"\(ra\fR. .SS "Audit Endpoints" .P There are two audit endpoints that npm may use to fetch vulnerability information: the \fBBulk Advisory\fR endpoint and the \fBQuick Audit\fR endpoint. diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index 16fee0af9cf066..16a65feaa6d038 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,4 +1,4 @@ -.TH "NPM-BUGS" "1" "October 2023" "" "" +.TH "NPM-BUGS" "1" "November 2023" "" "" .SH "NAME" \fBnpm-bugs\fR - Report bugs for a package in a web browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index a0faa423af17a6..8f303d21c2c455 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,4 +1,4 @@ -.TH "NPM-CACHE" "1" "October 2023" "" "" +.TH "NPM-CACHE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-cache\fR - Manipulates packages cache .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1 index e22f3bd8ce4134..4d7a7a0c658742 100644 --- a/deps/npm/man/man1/npm-ci.1 +++ b/deps/npm/man/man1/npm-ci.1 @@ -1,4 +1,4 @@ -.TH "NPM-CI" "1" "October 2023" "" "" +.TH "NPM-CI" "1" "November 2023" "" "" .SH "NAME" \fBnpm-ci\fR - Clean install a project .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index b8f80ed6090c85..2597a926a124ac 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,4 +1,4 @@ -.TH "NPM-COMPLETION" "1" "October 2023" "" "" +.TH "NPM-COMPLETION" "1" "November 2023" "" "" .SH "NAME" \fBnpm-completion\fR - Tab Completion for npm .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index bdf56c7bdb49eb..02abc5c9d8f1d7 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,4 +1,4 @@ -.TH "NPM-CONFIG" "1" "October 2023" "" "" +.TH "NPM-CONFIG" "1" "November 2023" "" "" .SH "NAME" \fBnpm-config\fR - Manage the npm configuration files .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 7857da24d22227..6ed4db0a520e0d 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,4 +1,4 @@ -.TH "NPM-DEDUPE" "1" "October 2023" "" "" +.TH "NPM-DEDUPE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-dedupe\fR - Reduce duplication in the package tree .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index b58987d3afad92..faea73b948544f 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,4 +1,4 @@ -.TH "NPM-DEPRECATE" "1" "October 2023" "" "" +.TH "NPM-DEPRECATE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-deprecate\fR - Deprecate a version of a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-diff.1 b/deps/npm/man/man1/npm-diff.1 index 70227dc7aaff32..217e2ebf607019 100644 --- a/deps/npm/man/man1/npm-diff.1 +++ b/deps/npm/man/man1/npm-diff.1 @@ -1,4 +1,4 @@ -.TH "NPM-DIFF" "1" "October 2023" "" "" +.TH "NPM-DIFF" "1" "November 2023" "" "" .SH "NAME" \fBnpm-diff\fR - The registry diff command .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index a02570f24a6f9f..668b8963a57384 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -1,4 +1,4 @@ -.TH "NPM-DIST-TAG" "1" "October 2023" "" "" +.TH "NPM-DIST-TAG" "1" "November 2023" "" "" .SH "NAME" \fBnpm-dist-tag\fR - Modify package distribution tags .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index 81f53336cdb779..0f0d0f731b9bda 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,4 +1,4 @@ -.TH "NPM-DOCS" "1" "October 2023" "" "" +.TH "NPM-DOCS" "1" "November 2023" "" "" .SH "NAME" \fBnpm-docs\fR - Open documentation for a package in a web browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 index 17978d0d5e532a..4d2c2aa00f4e0f 100644 --- a/deps/npm/man/man1/npm-doctor.1 +++ b/deps/npm/man/man1/npm-doctor.1 @@ -1,4 +1,4 @@ -.TH "NPM-DOCTOR" "1" "October 2023" "" "" +.TH "NPM-DOCTOR" "1" "November 2023" "" "" .SH "NAME" \fBnpm-doctor\fR - Check the health of your npm environment .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 012aabad9f2858..cc1e9b5c8ede7f 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,4 +1,4 @@ -.TH "NPM-EDIT" "1" "October 2023" "" "" +.TH "NPM-EDIT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-edit\fR - Edit an installed package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-exec.1 b/deps/npm/man/man1/npm-exec.1 index 92e0cdb11895d7..8cb1010ffb552a 100644 --- a/deps/npm/man/man1/npm-exec.1 +++ b/deps/npm/man/man1/npm-exec.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXEC" "1" "October 2023" "" "" +.TH "NPM-EXEC" "1" "November 2023" "" "" .SH "NAME" \fBnpm-exec\fR - Run a command from a local or remote npm package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-explain.1 b/deps/npm/man/man1/npm-explain.1 index 667d46df151f40..6070bb24a24386 100644 --- a/deps/npm/man/man1/npm-explain.1 +++ b/deps/npm/man/man1/npm-explain.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXPLAIN" "1" "October 2023" "" "" +.TH "NPM-EXPLAIN" "1" "November 2023" "" "" .SH "NAME" \fBnpm-explain\fR - Explain installed packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index f30ffd4a5e27af..27371aa6c9e9e7 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -1,4 +1,4 @@ -.TH "NPM-EXPLORE" "1" "October 2023" "" "" +.TH "NPM-EXPLORE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-explore\fR - Browse an installed package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-find-dupes.1 b/deps/npm/man/man1/npm-find-dupes.1 index e4bcc8b85db3dd..d27a252baaca8d 100644 --- a/deps/npm/man/man1/npm-find-dupes.1 +++ b/deps/npm/man/man1/npm-find-dupes.1 @@ -1,4 +1,4 @@ -.TH "NPM-FIND-DUPES" "1" "October 2023" "" "" +.TH "NPM-FIND-DUPES" "1" "November 2023" "" "" .SH "NAME" \fBnpm-find-dupes\fR - Find duplication in the package tree .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-fund.1 b/deps/npm/man/man1/npm-fund.1 index afcbcfbbc85f41..88bf7caa0d5d83 100644 --- a/deps/npm/man/man1/npm-fund.1 +++ b/deps/npm/man/man1/npm-fund.1 @@ -1,4 +1,4 @@ -.TH "NPM-FUND" "1" "October 2023" "" "" +.TH "NPM-FUND" "1" "November 2023" "" "" .SH "NAME" \fBnpm-fund\fR - Retrieve funding information .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 2c5effe6c6e186..b98088152314b8 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,4 +1,4 @@ -.TH "NPM-HELP-SEARCH" "1" "October 2023" "" "" +.TH "NPM-HELP-SEARCH" "1" "November 2023" "" "" .SH "NAME" \fBnpm-help-search\fR - Search npm help documentation .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index b5f7e3bdd959ef..949e54c44eab08 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,4 +1,4 @@ -.TH "NPM-HELP" "1" "October 2023" "" "" +.TH "NPM-HELP" "1" "November 2023" "" "" .SH "NAME" \fBnpm-help\fR - Get help on npm .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1 index db68ce36d4d88a..145406b9d09877 100644 --- a/deps/npm/man/man1/npm-hook.1 +++ b/deps/npm/man/man1/npm-hook.1 @@ -1,4 +1,4 @@ -.TH "NPM-HOOK" "1" "October 2023" "" "" +.TH "NPM-HOOK" "1" "November 2023" "" "" .SH "NAME" \fBnpm-hook\fR - Manage registry hooks .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index f2e0a289b88561..a86a09b910a810 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,4 +1,4 @@ -.TH "NPM-INIT" "1" "October 2023" "" "" +.TH "NPM-INIT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-init\fR - Create a package.json file .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1 index 9f7c1a222ef31f..21320f9378b7d8 100644 --- a/deps/npm/man/man1/npm-install-ci-test.1 +++ b/deps/npm/man/man1/npm-install-ci-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL-CI-TEST" "1" "October 2023" "" "" +.TH "NPM-INSTALL-CI-TEST" "1" "November 2023" "" "" .SH "NAME" \fBnpm-install-ci-test\fR - Install a project with a clean slate and run tests .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 index c7361dcd7ac767..3e6efb819bc6e2 100644 --- a/deps/npm/man/man1/npm-install-test.1 +++ b/deps/npm/man/man1/npm-install-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL-TEST" "1" "October 2023" "" "" +.TH "NPM-INSTALL-TEST" "1" "November 2023" "" "" .SH "NAME" \fBnpm-install-test\fR - Install package(s) and run tests .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index 0d202d94814425..0493f5dc9577f0 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,4 +1,4 @@ -.TH "NPM-INSTALL" "1" "October 2023" "" "" +.TH "NPM-INSTALL" "1" "November 2023" "" "" .SH "NAME" \fBnpm-install\fR - Install a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 13c26b8b4043de..491cc6e45f066d 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,4 +1,4 @@ -.TH "NPM-LINK" "1" "October 2023" "" "" +.TH "NPM-LINK" "1" "November 2023" "" "" .SH "NAME" \fBnpm-link\fR - Symlink a package folder .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-login.1 b/deps/npm/man/man1/npm-login.1 index 86bc0a1f6162f3..dff4c54b206299 100644 --- a/deps/npm/man/man1/npm-login.1 +++ b/deps/npm/man/man1/npm-login.1 @@ -1,4 +1,4 @@ -.TH "NPM-LOGIN" "1" "October 2023" "" "" +.TH "NPM-LOGIN" "1" "November 2023" "" "" .SH "NAME" \fBnpm-login\fR - Login to a registry user account .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index 58c7f047db0086..f4e3525a9a43ad 100644 --- a/deps/npm/man/man1/npm-logout.1 +++ b/deps/npm/man/man1/npm-logout.1 @@ -1,4 +1,4 @@ -.TH "NPM-LOGOUT" "1" "October 2023" "" "" +.TH "NPM-LOGOUT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-logout\fR - Log out of the registry .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 385138d4876f99..25af64a1534878 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,4 +1,4 @@ -.TH "NPM-LS" "1" "October 2023" "" "" +.TH "NPM-LS" "1" "November 2023" "" "" .SH "NAME" \fBnpm-ls\fR - List installed packages .SS "Synopsis" @@ -20,7 +20,7 @@ Positional arguments are \fBname@version-range\fR identifiers, which will limit .P .RS 2 .nf -npm@10.2.0 /path/to/npm +npm@10.2.3 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 .fi diff --git a/deps/npm/man/man1/npm-org.1 b/deps/npm/man/man1/npm-org.1 index df0495c6c6aeea..182f84af28895f 100644 --- a/deps/npm/man/man1/npm-org.1 +++ b/deps/npm/man/man1/npm-org.1 @@ -1,4 +1,4 @@ -.TH "NPM-ORG" "1" "October 2023" "" "" +.TH "NPM-ORG" "1" "November 2023" "" "" .SH "NAME" \fBnpm-org\fR - Manage orgs .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 2935461bbedd0a..84351aeb35d4b9 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,4 +1,4 @@ -.TH "NPM-OUTDATED" "1" "October 2023" "" "" +.TH "NPM-OUTDATED" "1" "November 2023" "" "" .SH "NAME" \fBnpm-outdated\fR - Check for outdated packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index 288c891617d867..ceda18a6c31758 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,4 +1,4 @@ -.TH "NPM-OWNER" "1" "October 2023" "" "" +.TH "NPM-OWNER" "1" "November 2023" "" "" .SH "NAME" \fBnpm-owner\fR - Manage package owners .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index b6d8a6bff2d275..050c208ffd64e8 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,4 +1,4 @@ -.TH "NPM-PACK" "1" "October 2023" "" "" +.TH "NPM-PACK" "1" "November 2023" "" "" .SH "NAME" \fBnpm-pack\fR - Create a tarball from a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 index f5e3cc536030e8..6c6e1e28281664 100644 --- a/deps/npm/man/man1/npm-ping.1 +++ b/deps/npm/man/man1/npm-ping.1 @@ -1,4 +1,4 @@ -.TH "NPM-PING" "1" "October 2023" "" "" +.TH "NPM-PING" "1" "November 2023" "" "" .SH "NAME" \fBnpm-ping\fR - Ping npm registry .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-pkg.1 b/deps/npm/man/man1/npm-pkg.1 index 75d0791abbfed6..40b0329fef13f1 100644 --- a/deps/npm/man/man1/npm-pkg.1 +++ b/deps/npm/man/man1/npm-pkg.1 @@ -1,4 +1,4 @@ -.TH "NPM-PKG" "1" "October 2023" "" "" +.TH "NPM-PKG" "1" "November 2023" "" "" .SH "NAME" \fBnpm-pkg\fR - Manages your package.json .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index c63af6e4d99fbd..a0ab1560881243 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,4 +1,4 @@ -.TH "NPM-PREFIX" "1" "October 2023" "" "" +.TH "NPM-PREFIX" "1" "November 2023" "" "" .SH "NAME" \fBnpm-prefix\fR - Display prefix .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 index acc437b9b904f2..834c26428d94b8 100644 --- a/deps/npm/man/man1/npm-profile.1 +++ b/deps/npm/man/man1/npm-profile.1 @@ -1,4 +1,4 @@ -.TH "NPM-PROFILE" "1" "October 2023" "" "" +.TH "NPM-PROFILE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-profile\fR - Change settings on your registry profile .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index 1ccd763e2372f6..3ab15a55c879a1 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,4 +1,4 @@ -.TH "NPM-PRUNE" "1" "October 2023" "" "" +.TH "NPM-PRUNE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-prune\fR - Remove extraneous packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index 9d580de01e5ec5..5d8444e2fa2d04 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,4 +1,4 @@ -.TH "NPM-PUBLISH" "1" "October 2023" "" "" +.TH "NPM-PUBLISH" "1" "November 2023" "" "" .SH "NAME" \fBnpm-publish\fR - Publish a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-query.1 b/deps/npm/man/man1/npm-query.1 index 5a79a5c2fac37d..947a7b78397571 100644 --- a/deps/npm/man/man1/npm-query.1 +++ b/deps/npm/man/man1/npm-query.1 @@ -1,4 +1,4 @@ -.TH "NPM-QUERY" "1" "October 2023" "" "" +.TH "NPM-QUERY" "1" "November 2023" "" "" .SH "NAME" \fBnpm-query\fR - Dependency selector query .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index 882b27fa6e0722..b00eb2816eb116 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,4 +1,4 @@ -.TH "NPM-REBUILD" "1" "October 2023" "" "" +.TH "NPM-REBUILD" "1" "November 2023" "" "" .SH "NAME" \fBnpm-rebuild\fR - Rebuild a package .SS "Synopsis" @@ -12,9 +12,39 @@ alias: rb .RE .SS "Description" .P -This command runs the \fBnpm build\fR command on the matched folders. This is useful when you install a new version of node, and must recompile all your C++ addons with the new binary. It is also useful when installing with \fB--ignore-scripts\fR and \fB--no-bin-links\fR, to explicitly choose which packages to build and/or link bins. +This command does the following: +.RS 0 +.IP 1. 4 +Execute lifecycle scripts (\fBpreinstall\fR, \fBinstall\fR, \fBpostinstall\fR, \fBprepare\fR) +.IP 2. 4 +Links bins depending on whether bin links are enabled +.RE 0 + +.P +This command is particularly useful in scenarios including but not limited to: +.RS 0 +.IP 1. 4 +Installing a new version of \fBnode.js\fR, where you need to recompile all your C++ add-ons with the updated binary. +.IP 2. 4 +Installing with \fB--ignore-scripts\fR and \fB--no-bin-links\fR, to explicitly choose which packages to build and/or link bins. +.RE 0 + .P If one or more package specs are provided, then only packages with a name and version matching one of the specifiers will be rebuilt. +.P +Usually, you should not need to run \fBnpm rebuild\fR as it is already done for you as part of npm install (unless you suppressed these steps with \fB--ignore-scripts\fR or \fB--no-bin-links\fR). +.P +If there is a \fBbinding.gyp\fR file in the root of your package, then npm will use a default install hook: +.P +.RS 2 +.nf +"scripts": { + "install": "node-gyp rebuild" +} +.fi +.RE +.P +This default behavior is suppressed if the \fBpackage.json\fR has its own \fBinstall\fR or \fBpreinstall\fR scripts. It is also suppressed if the package specifies \fB"gypfile": false\fR .SS "Configuration" .SS "\fBglobal\fR" .RS 0 diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 85805cb46b07fc..1d89a9e85c7105 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,4 +1,4 @@ -.TH "NPM-REPO" "1" "October 2023" "" "" +.TH "NPM-REPO" "1" "November 2023" "" "" .SH "NAME" \fBnpm-repo\fR - Open package repository page in the browser .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index eea0fa265c0260..5f85577a45ac12 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,4 +1,4 @@ -.TH "NPM-RESTART" "1" "October 2023" "" "" +.TH "NPM-RESTART" "1" "November 2023" "" "" .SH "NAME" \fBnpm-restart\fR - Restart a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index eb0cfdb848c9ef..1dce718fc0f961 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,4 +1,4 @@ -.TH "NPM-ROOT" "1" "October 2023" "" "" +.TH "NPM-ROOT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-root\fR - Display npm root .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index df369cd43a6a7c..3718c9293d45a1 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,4 +1,4 @@ -.TH "NPM-RUN-SCRIPT" "1" "October 2023" "" "" +.TH "NPM-RUN-SCRIPT" "1" "November 2023" "" "" .SH "NAME" \fBnpm-run-script\fR - Run arbitrary package scripts .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-sbom.1 b/deps/npm/man/man1/npm-sbom.1 index f9f14670f55a67..21a18ac91dc953 100644 --- a/deps/npm/man/man1/npm-sbom.1 +++ b/deps/npm/man/man1/npm-sbom.1 @@ -1,4 +1,4 @@ -.TH "NPM-SBOM" "1" "October 2023" "" "" +.TH "NPM-SBOM" "1" "November 2023" "" "" .SH "NAME" \fBnpm-sbom\fR - Generate a Software Bill of Materials (SBOM) .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index 0dfb654fadf452..5aaeabd24af938 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -1,4 +1,4 @@ -.TH "NPM-SEARCH" "1" "October 2023" "" "" +.TH "NPM-SEARCH" "1" "November 2023" "" "" .SH "NAME" \fBnpm-search\fR - Search for packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 6457db0d7ecd7f..7e29d4151728c3 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -1,4 +1,4 @@ -.TH "NPM-SHRINKWRAP" "1" "October 2023" "" "" +.TH "NPM-SHRINKWRAP" "1" "November 2023" "" "" .SH "NAME" \fBnpm-shrinkwrap\fR - Lock down dependency versions for publication .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index 5656bc38c20ce6..b6a3f7e8f174a9 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -1,4 +1,4 @@ -.TH "NPM-STAR" "1" "October 2023" "" "" +.TH "NPM-STAR" "1" "November 2023" "" "" .SH "NAME" \fBnpm-star\fR - Mark your favorite packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index e57b1311062b70..ad66d694917f68 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -1,4 +1,4 @@ -.TH "NPM-STARS" "1" "October 2023" "" "" +.TH "NPM-STARS" "1" "November 2023" "" "" .SH "NAME" \fBnpm-stars\fR - View packages marked as favorites .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index d88f1e2478ec73..f35690a145e58c 100644 --- a/deps/npm/man/man1/npm-start.1 +++ b/deps/npm/man/man1/npm-start.1 @@ -1,4 +1,4 @@ -.TH "NPM-START" "1" "October 2023" "" "" +.TH "NPM-START" "1" "November 2023" "" "" .SH "NAME" \fBnpm-start\fR - Start a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 4980c16fc6ea90..2913641d2845d3 100644 --- a/deps/npm/man/man1/npm-stop.1 +++ b/deps/npm/man/man1/npm-stop.1 @@ -1,4 +1,4 @@ -.TH "NPM-STOP" "1" "October 2023" "" "" +.TH "NPM-STOP" "1" "November 2023" "" "" .SH "NAME" \fBnpm-stop\fR - Stop a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 index 28b7b904fe0456..729e9d3194dd49 100644 --- a/deps/npm/man/man1/npm-team.1 +++ b/deps/npm/man/man1/npm-team.1 @@ -1,4 +1,4 @@ -.TH "NPM-TEAM" "1" "October 2023" "" "" +.TH "NPM-TEAM" "1" "November 2023" "" "" .SH "NAME" \fBnpm-team\fR - Manage organization teams and team memberships .SS "Synopsis" @@ -23,7 +23,7 @@ Teams must always be fully qualified with the organization/scope they belong to If you have two-factor authentication enabled in \fBauth-and-writes\fR mode, then you can provide a code from your authenticator with \fB\[lB]--otp \[rB]\fR. If you don't include this then you will be taken through a second factor flow based on your \fBauthtype\fR. .RS 0 .IP \(bu 4 -create / destroy: Create a new team, or destroy an existing one. Note: You cannot remove the \fBdevelopers\fR team, learn more. +create / destroy: Create a new team, or destroy an existing one. Note: You cannot remove the \fBdevelopers\fR team, \fBlearn more.\fR \fI\(lahttps://docs.npmjs.com/about-developers-team\(ra\fR .P Here's how to create a new team \fBnewteam\fR under the \fBorg\fR org: .P diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index f2da6368450065..bfecac60a9a113 100644 --- a/deps/npm/man/man1/npm-test.1 +++ b/deps/npm/man/man1/npm-test.1 @@ -1,4 +1,4 @@ -.TH "NPM-TEST" "1" "October 2023" "" "" +.TH "NPM-TEST" "1" "November 2023" "" "" .SH "NAME" \fBnpm-test\fR - Test a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 index 8bbfaac64962aa..84e0e8ea0220a3 100644 --- a/deps/npm/man/man1/npm-token.1 +++ b/deps/npm/man/man1/npm-token.1 @@ -1,4 +1,4 @@ -.TH "NPM-TOKEN" "1" "October 2023" "" "" +.TH "NPM-TOKEN" "1" "November 2023" "" "" .SH "NAME" \fBnpm-token\fR - Manage your authentication tokens .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index 17e906228b57d2..749ae7533a4f5f 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNINSTALL" "1" "October 2023" "" "" +.TH "NPM-UNINSTALL" "1" "November 2023" "" "" .SH "NAME" \fBnpm-uninstall\fR - Remove a package .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 77eeb843b363b9..0b059350966a00 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNPUBLISH" "1" "October 2023" "" "" +.TH "NPM-UNPUBLISH" "1" "November 2023" "" "" .SH "NAME" \fBnpm-unpublish\fR - Remove a package from the registry .SS "Synopsis" @@ -9,7 +9,7 @@ npm unpublish \[lB]\[rB] .fi .RE .P -To learn more about how the npm registry treats unpublish, see our unpublish policies +To learn more about how the npm registry treats unpublish, see our \fBunpublish policies\fR \fI\(lahttps://docs.npmjs.com/policies/unpublish\(ra\fR. .SS "Warning" .P Consider using the npm help deprecate command instead, if your intent is to encourage users to upgrade, or if you no longer want to maintain a package. diff --git a/deps/npm/man/man1/npm-unstar.1 b/deps/npm/man/man1/npm-unstar.1 index d77464de965580..0e44709c83da65 100644 --- a/deps/npm/man/man1/npm-unstar.1 +++ b/deps/npm/man/man1/npm-unstar.1 @@ -1,4 +1,4 @@ -.TH "NPM-UNSTAR" "1" "October 2023" "" "" +.TH "NPM-UNSTAR" "1" "November 2023" "" "" .SH "NAME" \fBnpm-unstar\fR - Remove an item from your favorite packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index 4b59f8600e0a67..0b247f80d8d9f8 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -1,4 +1,4 @@ -.TH "NPM-UPDATE" "1" "October 2023" "" "" +.TH "NPM-UPDATE" "1" "November 2023" "" "" .SH "NAME" \fBnpm-update\fR - Update packages .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 03dd68d3e0956a..07f8352de3c7ce 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,4 +1,4 @@ -.TH "NPM-VERSION" "1" "October 2023" "" "" +.TH "NPM-VERSION" "1" "November 2023" "" "" .SH "NAME" \fBnpm-version\fR - Bump a package version .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index 73512687904971..decf76a1e9bfc7 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -1,4 +1,4 @@ -.TH "NPM-VIEW" "1" "October 2023" "" "" +.TH "NPM-VIEW" "1" "November 2023" "" "" .SH "NAME" \fBnpm-view\fR - View registry info .SS "Synopsis" diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index 67735a171494e1..6e182bbff873c2 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -1,4 +1,4 @@ -.TH "NPM-WHOAMI" "1" "October 2023" "" "" +.TH "NPM-WHOAMI" "1" "November 2023" "" "" .SH "NAME" \fBnpm-whoami\fR - Display npm username .SS "Synopsis" diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index 740c99ee0be370..2f08cb27dbbca5 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "October 2023" "" "" +.TH "NPM" "1" "November 2023" "" "" .SH "NAME" \fBnpm\fR - javascript package manager .SS "Synopsis" @@ -12,7 +12,7 @@ npm Note: This command is unaware of workspaces. .SS "Version" .P -10.2.0 +10.2.3 .SS "Description" .P npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently. diff --git a/deps/npm/man/man1/npx.1 b/deps/npm/man/man1/npx.1 index a280ca57f7a7ad..d318fa2a6ea6c6 100644 --- a/deps/npm/man/man1/npx.1 +++ b/deps/npm/man/man1/npx.1 @@ -1,4 +1,4 @@ -.TH "NPX" "1" "October 2023" "" "" +.TH "NPX" "1" "November 2023" "" "" .SH "NAME" \fBnpx\fR - Run a command from a local or remote npm package .SS "Synopsis" diff --git a/deps/npm/man/man5/folders.5 b/deps/npm/man/man5/folders.5 index d3e9e6fc78dffc..f6248235a2e9bd 100644 --- a/deps/npm/man/man5/folders.5 +++ b/deps/npm/man/man5/folders.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "October 2023" "" "" +.TH "FOLDERS" "5" "November 2023" "" "" .SH "NAME" \fBfolders\fR - Folder Structures Used by npm .SS "Description" diff --git a/deps/npm/man/man5/install.5 b/deps/npm/man/man5/install.5 index 3a8da18ba18544..5b32048710b9e0 100644 --- a/deps/npm/man/man5/install.5 +++ b/deps/npm/man/man5/install.5 @@ -1,4 +1,4 @@ -.TH "INSTALL" "5" "October 2023" "" "" +.TH "INSTALL" "5" "November 2023" "" "" .SH "NAME" \fBinstall\fR - Download and install node and npm .SS "Description" diff --git a/deps/npm/man/man5/npm-global.5 b/deps/npm/man/man5/npm-global.5 index d3e9e6fc78dffc..f6248235a2e9bd 100644 --- a/deps/npm/man/man5/npm-global.5 +++ b/deps/npm/man/man5/npm-global.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "October 2023" "" "" +.TH "FOLDERS" "5" "November 2023" "" "" .SH "NAME" \fBfolders\fR - Folder Structures Used by npm .SS "Description" diff --git a/deps/npm/man/man5/npm-json.5 b/deps/npm/man/man5/npm-json.5 index 71d630e750e645..8054048290285e 100644 --- a/deps/npm/man/man5/npm-json.5 +++ b/deps/npm/man/man5/npm-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE.JSON" "5" "October 2023" "" "" +.TH "PACKAGE.JSON" "5" "November 2023" "" "" .SH "NAME" \fBpackage.json\fR - Specifics of npm's package.json handling .SS "Description" diff --git a/deps/npm/man/man5/npm-shrinkwrap-json.5 b/deps/npm/man/man5/npm-shrinkwrap-json.5 index 8346df052db259..d1f8b923c2c0de 100644 --- a/deps/npm/man/man5/npm-shrinkwrap-json.5 +++ b/deps/npm/man/man5/npm-shrinkwrap-json.5 @@ -1,4 +1,4 @@ -.TH "NPM-SHRINKWRAP.JSON" "5" "October 2023" "" "" +.TH "NPM-SHRINKWRAP.JSON" "5" "November 2023" "" "" .SH "NAME" \fBnpm-shrinkwrap.json\fR - A publishable lockfile .SS "Description" diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index d7dc344865c4a0..2fe1d3eeba7cc7 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,4 +1,4 @@ -.TH "NPMRC" "5" "October 2023" "" "" +.TH "NPMRC" "5" "November 2023" "" "" .SH "NAME" \fBnpmrc\fR - The npm config files .SS "Description" diff --git a/deps/npm/man/man5/package-json.5 b/deps/npm/man/man5/package-json.5 index 71d630e750e645..8054048290285e 100644 --- a/deps/npm/man/man5/package-json.5 +++ b/deps/npm/man/man5/package-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE.JSON" "5" "October 2023" "" "" +.TH "PACKAGE.JSON" "5" "November 2023" "" "" .SH "NAME" \fBpackage.json\fR - Specifics of npm's package.json handling .SS "Description" diff --git a/deps/npm/man/man5/package-lock-json.5 b/deps/npm/man/man5/package-lock-json.5 index 22ae8cd1dd2d87..2f303d610ff127 100644 --- a/deps/npm/man/man5/package-lock-json.5 +++ b/deps/npm/man/man5/package-lock-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE-LOCK.JSON" "5" "October 2023" "" "" +.TH "PACKAGE-LOCK.JSON" "5" "November 2023" "" "" .SH "NAME" \fBpackage-lock.json\fR - A manifestation of the manifest .SS "Description" @@ -69,7 +69,7 @@ No version provided: an "ancient" shrinkwrap file from a version of npm prior to .IP \(bu 4 \fB2\fR: The lockfile version used by npm v7 and v8. Backwards compatible to v1 lockfiles. .IP \(bu 4 -\fB3\fR: The lockfile version used by npm v9. Backwards compatible to npm v7. +\fB3\fR: The lockfile version used by npm v9 and above. Backwards compatible to npm v7. .RE 0 .P diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7 index 496cfcb4ba71a2..73552f74e29746 100644 --- a/deps/npm/man/man7/config.7 +++ b/deps/npm/man/man7/config.7 @@ -1,4 +1,4 @@ -.TH "CONFIG" "7" "October 2023" "" "" +.TH "CONFIG" "7" "November 2023" "" "" .SH "NAME" \fBconfig\fR - More than you probably want to know about npm configuration .SS "Description" diff --git a/deps/npm/man/man7/dependency-selectors.7 b/deps/npm/man/man7/dependency-selectors.7 index fe78a200cb682f..78aaa5a18a9fff 100644 --- a/deps/npm/man/man7/dependency-selectors.7 +++ b/deps/npm/man/man7/dependency-selectors.7 @@ -1,4 +1,4 @@ -.TH "QUERYING" "7" "October 2023" "" "" +.TH "QUERYING" "7" "November 2023" "" "" .SH "NAME" \fBQuerying\fR - Dependency Selector Syntax & Querying .SS "Description" diff --git a/deps/npm/man/man7/developers.7 b/deps/npm/man/man7/developers.7 index e0748fe1960c7d..9516ee1030c22a 100644 --- a/deps/npm/man/man7/developers.7 +++ b/deps/npm/man/man7/developers.7 @@ -1,4 +1,4 @@ -.TH "DEVELOPERS" "7" "October 2023" "" "" +.TH "DEVELOPERS" "7" "November 2023" "" "" .SH "NAME" \fBdevelopers\fR - Developer Guide .SS "Description" diff --git a/deps/npm/man/man7/logging.7 b/deps/npm/man/man7/logging.7 index 767759fbb8249d..a6fb699796ea5d 100644 --- a/deps/npm/man/man7/logging.7 +++ b/deps/npm/man/man7/logging.7 @@ -1,4 +1,4 @@ -.TH "LOGGING" "7" "October 2023" "" "" +.TH "LOGGING" "7" "November 2023" "" "" .SH "NAME" \fBLogging\fR - Why, What & How We Log .SS "Description" diff --git a/deps/npm/man/man7/orgs.7 b/deps/npm/man/man7/orgs.7 index 68410b66be297b..2f282bc29165de 100644 --- a/deps/npm/man/man7/orgs.7 +++ b/deps/npm/man/man7/orgs.7 @@ -1,4 +1,4 @@ -.TH "ORGS" "7" "October 2023" "" "" +.TH "ORGS" "7" "November 2023" "" "" .SH "NAME" \fBorgs\fR - Working with Teams & Orgs .SS "Description" diff --git a/deps/npm/man/man7/package-spec.7 b/deps/npm/man/man7/package-spec.7 index 212d78dd71bf0b..6c38ccdcbf8434 100644 --- a/deps/npm/man/man7/package-spec.7 +++ b/deps/npm/man/man7/package-spec.7 @@ -1,4 +1,4 @@ -.TH "PACKAGE-SPEC" "7" "October 2023" "" "" +.TH "PACKAGE-SPEC" "7" "November 2023" "" "" .SH "NAME" \fBpackage-spec\fR - Package name specifier .SS "Description" diff --git a/deps/npm/man/man7/registry.7 b/deps/npm/man/man7/registry.7 index f1133f43666af7..a1dc9352fc706b 100644 --- a/deps/npm/man/man7/registry.7 +++ b/deps/npm/man/man7/registry.7 @@ -1,4 +1,4 @@ -.TH "REGISTRY" "7" "October 2023" "" "" +.TH "REGISTRY" "7" "November 2023" "" "" .SH "NAME" \fBregistry\fR - The JavaScript Package Registry .SS "Description" diff --git a/deps/npm/man/man7/removal.7 b/deps/npm/man/man7/removal.7 index f96bbe84a4ea5a..0047ac99fd5832 100644 --- a/deps/npm/man/man7/removal.7 +++ b/deps/npm/man/man7/removal.7 @@ -1,4 +1,4 @@ -.TH "REMOVAL" "7" "October 2023" "" "" +.TH "REMOVAL" "7" "November 2023" "" "" .SH "NAME" \fBremoval\fR - Cleaning the Slate .SS "Synopsis" diff --git a/deps/npm/man/man7/scope.7 b/deps/npm/man/man7/scope.7 index c2a6ecd8d25342..b7c6d0104ac3b8 100644 --- a/deps/npm/man/man7/scope.7 +++ b/deps/npm/man/man7/scope.7 @@ -1,4 +1,4 @@ -.TH "SCOPE" "7" "October 2023" "" "" +.TH "SCOPE" "7" "November 2023" "" "" .SH "NAME" \fBscope\fR - Scoped packages .SS "Description" diff --git a/deps/npm/man/man7/scripts.7 b/deps/npm/man/man7/scripts.7 index 8306b12e37fa8a..881e8202e086f3 100644 --- a/deps/npm/man/man7/scripts.7 +++ b/deps/npm/man/man7/scripts.7 @@ -1,4 +1,4 @@ -.TH "SCRIPTS" "7" "October 2023" "" "" +.TH "SCRIPTS" "7" "November 2023" "" "" .SH "NAME" \fBscripts\fR - How npm handles the "scripts" field .SS "Description" @@ -201,8 +201,6 @@ These are run from the scripts of \fB\fR \fBpostpublish\fR .RE 0 -.P -\fBprepare\fR will not run during \fB--dry-run\fR .SS "npm help rebuild" .RS 0 .IP \(bu 4 diff --git a/deps/npm/man/man7/workspaces.7 b/deps/npm/man/man7/workspaces.7 index 0558c8446399f6..a81dd84a928fb0 100644 --- a/deps/npm/man/man7/workspaces.7 +++ b/deps/npm/man/man7/workspaces.7 @@ -1,4 +1,4 @@ -.TH "WORKSPACES" "7" "October 2023" "" "" +.TH "WORKSPACES" "7" "November 2023" "" "" .SH "NAME" \fBworkspaces\fR - Working with workspaces .SS "Description" diff --git a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/index.js b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/index.js index e3bbfe632c454d..978af031baf3aa 100644 --- a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/index.js +++ b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/index.js @@ -81,7 +81,11 @@ class HttpsProxyAgent extends agent_base_1.Agent { let socket; if (proxy.protocol === 'https:') { debug('Creating `tls.Socket`: %o', this.connectOpts); - socket = tls.connect(this.connectOpts); + const servername = this.connectOpts.servername || this.connectOpts.host; + socket = tls.connect({ + ...this.connectOpts, + servername: servername && net.isIP(servername) ? undefined : servername + }); } else { debug('Creating `net.Socket`: %o', this.connectOpts); diff --git a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/parse-proxy-response.js b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/parse-proxy-response.js index a28f1d811805f8..d3f506f9413066 100644 --- a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/parse-proxy-response.js +++ b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/dist/parse-proxy-response.js @@ -47,7 +47,10 @@ function parseProxyResponse(socket) { read(); return; } - const headerParts = buffered.slice(0, endOfHeaders).toString('ascii').split('\r\n'); + const headerParts = buffered + .slice(0, endOfHeaders) + .toString('ascii') + .split('\r\n'); const firstLine = headerParts.shift(); if (!firstLine) { socket.destroy(); diff --git a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/package.json b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/package.json index fc5f988d3b02bf..07c04f82a9c3ab 100644 --- a/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/package.json +++ b/deps/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent/package.json @@ -1,6 +1,6 @@ { "name": "https-proxy-agent", - "version": "7.0.1", + "version": "7.0.2", "description": "An HTTP(s) proxy `http.Agent` implementation for HTTPS", "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/dist/index.js b/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/dist/index.js index 8189e014c13a0d..102ecd64c0b9d6 100644 --- a/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/dist/index.js +++ b/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/dist/index.js @@ -33,6 +33,7 @@ const debug_1 = __importDefault(require("debug")); const dns = __importStar(require("dns")); const net = __importStar(require("net")); const tls = __importStar(require("tls")); +const url_1 = require("url"); const debug = (0, debug_1.default)('socks-proxy-agent'); function parseSocksURL(url) { let lookup = false; @@ -88,7 +89,7 @@ function parseSocksURL(url) { class SocksProxyAgent extends agent_base_1.Agent { constructor(uri, opts) { super(opts); - const url = typeof uri === 'string' ? new URL(uri) : uri; + const url = typeof uri === 'string' ? new url_1.URL(uri) : uri; const { proxy, lookup } = parseSocksURL(url); this.shouldLookup = lookup; this.proxy = proxy; diff --git a/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/package.json index a6c7c0741641a1..6e1c2c12de3674 100644 --- a/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/package.json +++ b/deps/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent/package.json @@ -1,6 +1,6 @@ { "name": "socks-proxy-agent", - "version": "8.0.1", + "version": "8.0.2", "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -107,7 +107,7 @@ "socks5h" ], "dependencies": { - "agent-base": "^7.0.1", + "agent-base": "^7.0.2", "debug": "^4.3.4", "socks": "^2.7.1" }, @@ -117,7 +117,7 @@ "@types/dns2": "^2.0.3", "@types/jest": "^29.5.1", "@types/node": "^14.18.45", - "async-listen": "^2.1.0", + "async-listen": "^3.0.0", "async-retry": "^1.3.3", "cacheable-lookup": "^6.1.0", "dns2": "^2.1.0", @@ -125,8 +125,8 @@ "socksv5": "github:TooTallNate/socksv5#fix/dstSock-close-event", "ts-jest": "^29.1.0", "typescript": "^5.0.4", - "tsconfig": "0.0.0", - "proxy": "2.0.1" + "proxy": "2.1.1", + "tsconfig": "0.0.0" }, "engines": { "node": ">= 14" diff --git a/deps/npm/node_modules/@npmcli/arborist/package.json b/deps/npm/node_modules/@npmcli/arborist/package.json index 95d9bc7416905b..a4d47d5627031c 100644 --- a/deps/npm/node_modules/@npmcli/arborist/package.json +++ b/deps/npm/node_modules/@npmcli/arborist/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/arborist", - "version": "7.2.0", + "version": "7.2.1", "description": "Manage node_modules trees", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -12,7 +12,7 @@ "@npmcli/node-gyp": "^3.0.0", "@npmcli/package-json": "^5.0.0", "@npmcli/query": "^3.0.1", - "@npmcli/run-script": "^7.0.1", + "@npmcli/run-script": "^7.0.2", "bin-links": "^4.0.1", "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", diff --git a/deps/npm/node_modules/@npmcli/config/README.md b/deps/npm/node_modules/@npmcli/config/README.md index 32418381a4c76a..12a5e23331d3ae 100644 --- a/deps/npm/node_modules/@npmcli/config/README.md +++ b/deps/npm/node_modules/@npmcli/config/README.md @@ -55,20 +55,17 @@ The resulting hierarchy of configs: ```js const Config = require('@npmcli/config') -// the types of all the configs we know about -const types = require('./config/types.js') -// default values for all the configs we know about -const defaults = require('./config/defaults.js') -// if you want -c to be short for --call and so on, define it here -const shorthands = require('./config/shorthands.js') +const { shorthands, definitions, flatten } = require('@npmcli/config/lib/definitions') const conf = new Config({ // path to the npm module being run npmPath: resolve(__dirname, '..'), - types, + definitions, shorthands, - defaults, + flatten, // optional, defaults to process.argv + // argv: [] <- if you are using this package in your own cli + // and dont want to have colliding argv argv: process.argv, // optional, defaults to process.env env: process.env, diff --git a/deps/npm/node_modules/@npmcli/config/lib/index.js b/deps/npm/node_modules/@npmcli/config/lib/index.js index ad07fcdf51826a..b09ecc478f64fd 100644 --- a/deps/npm/node_modules/@npmcli/config/lib/index.js +++ b/deps/npm/node_modules/@npmcli/config/lib/index.js @@ -774,29 +774,29 @@ class Config { await chmod(conf.source, mode) } - clearCredentialsByURI (uri) { + clearCredentialsByURI (uri, level = 'user') { const nerfed = nerfDart(uri) const def = nerfDart(this.get('registry')) if (def === nerfed) { - this.delete(`-authtoken`, 'user') - this.delete(`_authToken`, 'user') - this.delete(`_authtoken`, 'user') - this.delete(`_auth`, 'user') - this.delete(`_password`, 'user') - this.delete(`username`, 'user') + this.delete(`-authtoken`, level) + this.delete(`_authToken`, level) + this.delete(`_authtoken`, level) + this.delete(`_auth`, level) + this.delete(`_password`, level) + this.delete(`username`, level) // de-nerf email if it's nerfed to the default registry - const email = this.get(`${nerfed}:email`, 'user') + const email = this.get(`${nerfed}:email`, level) if (email) { - this.set('email', email, 'user') + this.set('email', email, level) } } - this.delete(`${nerfed}:_authToken`, 'user') - this.delete(`${nerfed}:_auth`, 'user') - this.delete(`${nerfed}:_password`, 'user') - this.delete(`${nerfed}:username`, 'user') - this.delete(`${nerfed}:email`, 'user') - this.delete(`${nerfed}:certfile`, 'user') - this.delete(`${nerfed}:keyfile`, 'user') + this.delete(`${nerfed}:_authToken`, level) + this.delete(`${nerfed}:_auth`, level) + this.delete(`${nerfed}:_password`, level) + this.delete(`${nerfed}:username`, level) + this.delete(`${nerfed}:email`, level) + this.delete(`${nerfed}:certfile`, level) + this.delete(`${nerfed}:keyfile`, level) } setCredentialsByURI (uri, { token, username, password, email, certfile, keyfile }) { diff --git a/deps/npm/node_modules/@npmcli/config/package.json b/deps/npm/node_modules/@npmcli/config/package.json index 85af7ee1c7d405..2f30c7ff98a644 100644 --- a/deps/npm/node_modules/@npmcli/config/package.json +++ b/deps/npm/node_modules/@npmcli/config/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/config", - "version": "8.0.0", + "version": "8.0.1", "files": [ "bin/", "lib/" diff --git a/deps/npm/node_modules/@npmcli/run-script/package.json b/deps/npm/node_modules/@npmcli/run-script/package.json index 7e7d2561571566..21f00c7f1cbfbb 100644 --- a/deps/npm/node_modules/@npmcli/run-script/package.json +++ b/deps/npm/node_modules/@npmcli/run-script/package.json @@ -1,6 +1,6 @@ { "name": "@npmcli/run-script", - "version": "7.0.1", + "version": "7.0.2", "description": "Run a lifecycle script for a package (descendant of npm-lifecycle)", "author": "GitHub Inc.", "license": "ISC", @@ -16,14 +16,14 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.18.0", + "@npmcli/template-oss": "4.19.0", "require-inject": "^1.4.4", "tap": "^16.0.1" }, "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^9.0.0", + "node-gyp": "^10.0.0", "read-package-json-fast": "^3.0.0", "which": "^4.0.0" }, @@ -41,13 +41,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "ciVersions": [ - "16.14.0", - "16.x", - "18.0.0", - "18.x" - ], - "version": "4.18.0", + "version": "4.19.0", "publish": "true" }, "tap": { diff --git a/deps/npm/node_modules/@tootallnate/once/LICENSE b/deps/npm/node_modules/@tootallnate/once/LICENSE deleted file mode 100644 index c4c56a2a53b2fe..00000000000000 --- a/deps/npm/node_modules/@tootallnate/once/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Nathan Rajlich - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/deps/npm/node_modules/@tootallnate/once/dist/index.js b/deps/npm/node_modules/@tootallnate/once/dist/index.js deleted file mode 100644 index ca6385b1b82f88..00000000000000 --- a/deps/npm/node_modules/@tootallnate/once/dist/index.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function once(emitter, name, { signal } = {}) { - return new Promise((resolve, reject) => { - function cleanup() { - signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', cleanup); - emitter.removeListener(name, onEvent); - emitter.removeListener('error', onError); - } - function onEvent(...args) { - cleanup(); - resolve(args); - } - function onError(err) { - cleanup(); - reject(err); - } - signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', cleanup); - emitter.on(name, onEvent); - emitter.on('error', onError); - }); -} -exports.default = once; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/@tootallnate/once/dist/overloaded-parameters.js b/deps/npm/node_modules/@tootallnate/once/dist/overloaded-parameters.js deleted file mode 100644 index 207186d9e7cca0..00000000000000 --- a/deps/npm/node_modules/@tootallnate/once/dist/overloaded-parameters.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=overloaded-parameters.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/@tootallnate/once/dist/types.js b/deps/npm/node_modules/@tootallnate/once/dist/types.js deleted file mode 100644 index 11e638d1ee44ae..00000000000000 --- a/deps/npm/node_modules/@tootallnate/once/dist/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/@tootallnate/once/package.json b/deps/npm/node_modules/@tootallnate/once/package.json deleted file mode 100644 index 69ce947d9c3103..00000000000000 --- a/deps/npm/node_modules/@tootallnate/once/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "@tootallnate/once", - "version": "2.0.0", - "description": "Creates a Promise that waits for a single event", - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "test": "jest", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/once.git" - }, - "keywords": [], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/once/issues" - }, - "devDependencies": { - "@types/jest": "^27.0.2", - "@types/node": "^12.12.11", - "abort-controller": "^3.0.0", - "jest": "^27.2.1", - "rimraf": "^3.0.0", - "ts-jest": "^27.0.5", - "typescript": "^4.4.3" - }, - "engines": { - "node": ">= 10" - }, - "jest": { - "preset": "ts-jest", - "globals": { - "ts-jest": { - "diagnostics": false, - "isolatedModules": true - } - }, - "verbose": false, - "testEnvironment": "node", - "testMatch": [ - "/test/**/*.test.ts" - ] - } -} diff --git a/deps/npm/node_modules/agent-base/dist/src/index.js b/deps/npm/node_modules/agent-base/dist/src/index.js deleted file mode 100644 index bfd9e22071e7ee..00000000000000 --- a/deps/npm/node_modules/agent-base/dist/src/index.js +++ /dev/null @@ -1,203 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const events_1 = require("events"); -const debug_1 = __importDefault(require("debug")); -const promisify_1 = __importDefault(require("./promisify")); -const debug = debug_1.default('agent-base'); -function isAgent(v) { - return Boolean(v) && typeof v.addRequest === 'function'; -} -function isSecureEndpoint() { - const { stack } = new Error(); - if (typeof stack !== 'string') - return false; - return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); -} -function createAgent(callback, opts) { - return new createAgent.Agent(callback, opts); -} -(function (createAgent) { - /** - * Base `http.Agent` implementation. - * No pooling/keep-alive is implemented by default. - * - * @param {Function} callback - * @api public - */ - class Agent extends events_1.EventEmitter { - constructor(callback, _opts) { - super(); - let opts = _opts; - if (typeof callback === 'function') { - this.callback = callback; - } - else if (callback) { - opts = callback; - } - // Timeout for the socket to be returned from the callback - this.timeout = null; - if (opts && typeof opts.timeout === 'number') { - this.timeout = opts.timeout; - } - // These aren't actually used by `agent-base`, but are required - // for the TypeScript definition files in `@types/node` :/ - this.maxFreeSockets = 1; - this.maxSockets = 1; - this.maxTotalSockets = Infinity; - this.sockets = {}; - this.freeSockets = {}; - this.requests = {}; - this.options = {}; - } - get defaultPort() { - if (typeof this.explicitDefaultPort === 'number') { - return this.explicitDefaultPort; - } - return isSecureEndpoint() ? 443 : 80; - } - set defaultPort(v) { - this.explicitDefaultPort = v; - } - get protocol() { - if (typeof this.explicitProtocol === 'string') { - return this.explicitProtocol; - } - return isSecureEndpoint() ? 'https:' : 'http:'; - } - set protocol(v) { - this.explicitProtocol = v; - } - callback(req, opts, fn) { - throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); - } - /** - * Called by node-core's "_http_client.js" module when creating - * a new HTTP request with this Agent instance. - * - * @api public - */ - addRequest(req, _opts) { - const opts = Object.assign({}, _opts); - if (typeof opts.secureEndpoint !== 'boolean') { - opts.secureEndpoint = isSecureEndpoint(); - } - if (opts.host == null) { - opts.host = 'localhost'; - } - if (opts.port == null) { - opts.port = opts.secureEndpoint ? 443 : 80; - } - if (opts.protocol == null) { - opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; - } - if (opts.host && opts.path) { - // If both a `host` and `path` are specified then it's most - // likely the result of a `url.parse()` call... we need to - // remove the `path` portion so that `net.connect()` doesn't - // attempt to open that as a unix socket file. - delete opts.path; - } - delete opts.agent; - delete opts.hostname; - delete opts._defaultAgent; - delete opts.defaultPort; - delete opts.createConnection; - // Hint to use "Connection: close" - // XXX: non-documented `http` module API :( - req._last = true; - req.shouldKeepAlive = false; - let timedOut = false; - let timeoutId = null; - const timeoutMs = opts.timeout || this.timeout; - const onerror = (err) => { - if (req._hadError) - return; - req.emit('error', err); - // For Safety. Some additional errors might fire later on - // and we need to make sure we don't double-fire the error event. - req._hadError = true; - }; - const ontimeout = () => { - timeoutId = null; - timedOut = true; - const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); - err.code = 'ETIMEOUT'; - onerror(err); - }; - const callbackError = (err) => { - if (timedOut) - return; - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - onerror(err); - }; - const onsocket = (socket) => { - if (timedOut) - return; - if (timeoutId != null) { - clearTimeout(timeoutId); - timeoutId = null; - } - if (isAgent(socket)) { - // `socket` is actually an `http.Agent` instance, so - // relinquish responsibility for this `req` to the Agent - // from here on - debug('Callback returned another Agent instance %o', socket.constructor.name); - socket.addRequest(req, opts); - return; - } - if (socket) { - socket.once('free', () => { - this.freeSocket(socket, opts); - }); - req.onSocket(socket); - return; - } - const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); - onerror(err); - }; - if (typeof this.callback !== 'function') { - onerror(new Error('`callback` is not defined')); - return; - } - if (!this.promisifiedCallback) { - if (this.callback.length >= 3) { - debug('Converting legacy callback function to promise'); - this.promisifiedCallback = promisify_1.default(this.callback); - } - else { - this.promisifiedCallback = this.callback; - } - } - if (typeof timeoutMs === 'number' && timeoutMs > 0) { - timeoutId = setTimeout(ontimeout, timeoutMs); - } - if ('port' in opts && typeof opts.port !== 'number') { - opts.port = Number(opts.port); - } - try { - debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); - Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); - } - catch (err) { - Promise.reject(err).catch(callbackError); - } - } - freeSocket(socket, opts) { - debug('Freeing socket %o %o', socket.constructor.name, opts); - socket.destroy(); - } - destroy() { - debug('Destroying agent %o', this.constructor.name); - } - } - createAgent.Agent = Agent; - // So that `instanceof` works correctly - createAgent.prototype = createAgent.Agent.prototype; -})(createAgent || (createAgent = {})); -module.exports = createAgent; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/agent-base/dist/src/promisify.js b/deps/npm/node_modules/agent-base/dist/src/promisify.js deleted file mode 100644 index b2f6132a7beaa5..00000000000000 --- a/deps/npm/node_modules/agent-base/dist/src/promisify.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function promisify(fn) { - return function (req, opts) { - return new Promise((resolve, reject) => { - fn.call(this, req, opts, (err, rtn) => { - if (err) { - reject(err); - } - else { - resolve(rtn); - } - }); - }); - }; -} -exports.default = promisify; -//# sourceMappingURL=promisify.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/agent-base/package.json b/deps/npm/node_modules/agent-base/package.json deleted file mode 100644 index fadce3ad99f22d..00000000000000 --- a/deps/npm/node_modules/agent-base/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "agent-base", - "version": "6.0.2", - "description": "Turn a function into an `http.Agent` instance", - "main": "dist/src/index", - "typings": "dist/src/index", - "files": [ - "dist/src", - "src" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "postbuild": "cpy --parents src test '!**/*.ts' dist", - "test": "mocha --reporter spec dist/test/*.js", - "test-lint": "eslint src --ext .js,.ts", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-agent-base.git" - }, - "keywords": [ - "http", - "agent", - "base", - "barebones", - "https" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-agent-base/issues" - }, - "dependencies": { - "debug": "4" - }, - "devDependencies": { - "@types/debug": "4", - "@types/mocha": "^5.2.7", - "@types/node": "^14.0.20", - "@types/semver": "^7.1.0", - "@types/ws": "^6.0.3", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.1.0", - "async-listen": "^1.2.0", - "cpy-cli": "^2.0.0", - "eslint": "5.16.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "4.1.0", - "eslint-import-resolver-typescript": "1.1.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-react": "7.12.4", - "mocha": "^6.2.0", - "rimraf": "^3.0.0", - "semver": "^7.1.2", - "typescript": "^3.5.3", - "ws": "^3.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } -} diff --git a/deps/npm/node_modules/agentkeepalive/LICENSE b/deps/npm/node_modules/agentkeepalive/LICENSE deleted file mode 100644 index 941258ca703b30..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License - -Copyright(c) node-modules and other contributors. -Copyright(c) 2012 - 2015 fengmk2 - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/agentkeepalive/browser.js b/deps/npm/node_modules/agentkeepalive/browser.js deleted file mode 100644 index 29c9398aa567f9..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/browser.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = noop; -module.exports.HttpsAgent = noop; - -// Noop function for browser since native api's don't use agents. -function noop () {} diff --git a/deps/npm/node_modules/agentkeepalive/index.js b/deps/npm/node_modules/agentkeepalive/index.js deleted file mode 100644 index 6ca1513463724d..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = require('./lib/agent'); -module.exports.HttpsAgent = require('./lib/https_agent'); -module.exports.constants = require('./lib/constants'); diff --git a/deps/npm/node_modules/agentkeepalive/lib/agent.js b/deps/npm/node_modules/agentkeepalive/lib/agent.js deleted file mode 100644 index 8bd354effa05ec..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/lib/agent.js +++ /dev/null @@ -1,402 +0,0 @@ -'use strict'; - -const OriginalAgent = require('http').Agent; -const ms = require('humanize-ms'); -const debug = require('util').debuglog('agentkeepalive'); -const { - INIT_SOCKET, - CURRENT_ID, - CREATE_ID, - SOCKET_CREATED_TIME, - SOCKET_NAME, - SOCKET_REQUEST_COUNT, - SOCKET_REQUEST_FINISHED_COUNT, -} = require('./constants'); - -// OriginalAgent come from -// - https://github.com/nodejs/node/blob/v8.12.0/lib/_http_agent.js -// - https://github.com/nodejs/node/blob/v10.12.0/lib/_http_agent.js - -// node <= 10 -let defaultTimeoutListenerCount = 1; -const majorVersion = parseInt(process.version.split('.', 1)[0].substring(1)); -if (majorVersion >= 11 && majorVersion <= 12) { - defaultTimeoutListenerCount = 2; -} else if (majorVersion >= 13) { - defaultTimeoutListenerCount = 3; -} - -function deprecate(message) { - console.log('[agentkeepalive:deprecated] %s', message); -} - -class Agent extends OriginalAgent { - constructor(options) { - options = options || {}; - options.keepAlive = options.keepAlive !== false; - // default is keep-alive and 4s free socket timeout - // see https://medium.com/ssense-tech/reduce-networking-errors-in-nodejs-23b4eb9f2d83 - if (options.freeSocketTimeout === undefined) { - options.freeSocketTimeout = 4000; - } - // Legacy API: keepAliveTimeout should be rename to `freeSocketTimeout` - if (options.keepAliveTimeout) { - deprecate('options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead'); - options.freeSocketTimeout = options.keepAliveTimeout; - delete options.keepAliveTimeout; - } - // Legacy API: freeSocketKeepAliveTimeout should be rename to `freeSocketTimeout` - if (options.freeSocketKeepAliveTimeout) { - deprecate('options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead'); - options.freeSocketTimeout = options.freeSocketKeepAliveTimeout; - delete options.freeSocketKeepAliveTimeout; - } - - // Sets the socket to timeout after timeout milliseconds of inactivity on the socket. - // By default is double free socket timeout. - if (options.timeout === undefined) { - // make sure socket default inactivity timeout >= 8s - options.timeout = Math.max(options.freeSocketTimeout * 2, 8000); - } - - // support humanize format - options.timeout = ms(options.timeout); - options.freeSocketTimeout = ms(options.freeSocketTimeout); - options.socketActiveTTL = options.socketActiveTTL ? ms(options.socketActiveTTL) : 0; - - super(options); - - this[CURRENT_ID] = 0; - - // create socket success counter - this.createSocketCount = 0; - this.createSocketCountLastCheck = 0; - - this.createSocketErrorCount = 0; - this.createSocketErrorCountLastCheck = 0; - - this.closeSocketCount = 0; - this.closeSocketCountLastCheck = 0; - - // socket error event count - this.errorSocketCount = 0; - this.errorSocketCountLastCheck = 0; - - // request finished counter - this.requestCount = 0; - this.requestCountLastCheck = 0; - - // including free socket timeout counter - this.timeoutSocketCount = 0; - this.timeoutSocketCountLastCheck = 0; - - this.on('free', socket => { - // https://github.com/nodejs/node/pull/32000 - // Node.js native agent will check socket timeout eqs agent.options.timeout. - // Use the ttl or freeSocketTimeout to overwrite. - const timeout = this.calcSocketTimeout(socket); - if (timeout > 0 && socket.timeout !== timeout) { - socket.setTimeout(timeout); - } - }); - } - - get freeSocketKeepAliveTimeout() { - deprecate('agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead'); - return this.options.freeSocketTimeout; - } - - get timeout() { - deprecate('agent.timeout is deprecated, please use agent.options.timeout instead'); - return this.options.timeout; - } - - get socketActiveTTL() { - deprecate('agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead'); - return this.options.socketActiveTTL; - } - - calcSocketTimeout(socket) { - /** - * return <= 0: should free socket - * return > 0: should update socket timeout - * return undefined: not find custom timeout - */ - let freeSocketTimeout = this.options.freeSocketTimeout; - const socketActiveTTL = this.options.socketActiveTTL; - if (socketActiveTTL) { - // check socketActiveTTL - const aliveTime = Date.now() - socket[SOCKET_CREATED_TIME]; - const diff = socketActiveTTL - aliveTime; - if (diff <= 0) { - return diff; - } - if (freeSocketTimeout && diff < freeSocketTimeout) { - freeSocketTimeout = diff; - } - } - // set freeSocketTimeout - if (freeSocketTimeout) { - // set free keepalive timer - // try to use socket custom freeSocketTimeout first, support headers['keep-alive'] - // https://github.com/node-modules/urllib/blob/b76053020923f4d99a1c93cf2e16e0c5ba10bacf/lib/urllib.js#L498 - const customFreeSocketTimeout = socket.freeSocketTimeout || socket.freeSocketKeepAliveTimeout; - return customFreeSocketTimeout || freeSocketTimeout; - } - } - - keepSocketAlive(socket) { - const result = super.keepSocketAlive(socket); - // should not keepAlive, do nothing - if (!result) return result; - - const customTimeout = this.calcSocketTimeout(socket); - if (typeof customTimeout === 'undefined') { - return true; - } - if (customTimeout <= 0) { - debug('%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], customTimeout); - return false; - } - if (socket.timeout !== customTimeout) { - socket.setTimeout(customTimeout); - } - return true; - } - - // only call on addRequest - reuseSocket(...args) { - // reuseSocket(socket, req) - super.reuseSocket(...args); - const socket = args[0]; - const req = args[1]; - req.reusedSocket = true; - const agentTimeout = this.options.timeout; - if (getSocketTimeout(socket) !== agentTimeout) { - // reset timeout before use - socket.setTimeout(agentTimeout); - debug('%s reset timeout to %sms', socket[SOCKET_NAME], agentTimeout); - } - socket[SOCKET_REQUEST_COUNT]++; - debug('%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - getSocketTimeout(socket)); - } - - [CREATE_ID]() { - const id = this[CURRENT_ID]++; - if (this[CURRENT_ID] === Number.MAX_SAFE_INTEGER) this[CURRENT_ID] = 0; - return id; - } - - [INIT_SOCKET](socket, options) { - // bugfix here. - // https on node 8, 10 won't set agent.options.timeout by default - // TODO: need to fix on node itself - if (options.timeout) { - const timeout = getSocketTimeout(socket); - if (!timeout) { - socket.setTimeout(options.timeout); - } - } - - if (this.options.keepAlive) { - // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/ - // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html - socket.setNoDelay(true); - } - this.createSocketCount++; - if (this.options.socketActiveTTL) { - socket[SOCKET_CREATED_TIME] = Date.now(); - } - // don't show the hole '-----BEGIN CERTIFICATE----' key string - socket[SOCKET_NAME] = `sock[${this[CREATE_ID]()}#${options._agentKey}]`.split('-----BEGIN', 1)[0]; - socket[SOCKET_REQUEST_COUNT] = 1; - socket[SOCKET_REQUEST_FINISHED_COUNT] = 0; - installListeners(this, socket, options); - } - - createConnection(options, oncreate) { - let called = false; - const onNewCreate = (err, socket) => { - if (called) return; - called = true; - - if (err) { - this.createSocketErrorCount++; - return oncreate(err); - } - this[INIT_SOCKET](socket, options); - oncreate(err, socket); - }; - - const newSocket = super.createConnection(options, onNewCreate); - if (newSocket) onNewCreate(null, newSocket); - return newSocket; - } - - get statusChanged() { - const changed = this.createSocketCount !== this.createSocketCountLastCheck || - this.createSocketErrorCount !== this.createSocketErrorCountLastCheck || - this.closeSocketCount !== this.closeSocketCountLastCheck || - this.errorSocketCount !== this.errorSocketCountLastCheck || - this.timeoutSocketCount !== this.timeoutSocketCountLastCheck || - this.requestCount !== this.requestCountLastCheck; - if (changed) { - this.createSocketCountLastCheck = this.createSocketCount; - this.createSocketErrorCountLastCheck = this.createSocketErrorCount; - this.closeSocketCountLastCheck = this.closeSocketCount; - this.errorSocketCountLastCheck = this.errorSocketCount; - this.timeoutSocketCountLastCheck = this.timeoutSocketCount; - this.requestCountLastCheck = this.requestCount; - } - return changed; - } - - getCurrentStatus() { - return { - createSocketCount: this.createSocketCount, - createSocketErrorCount: this.createSocketErrorCount, - closeSocketCount: this.closeSocketCount, - errorSocketCount: this.errorSocketCount, - timeoutSocketCount: this.timeoutSocketCount, - requestCount: this.requestCount, - freeSockets: inspect(this.freeSockets), - sockets: inspect(this.sockets), - requests: inspect(this.requests), - }; - } -} - -// node 8 don't has timeout attribute on socket -// https://github.com/nodejs/node/pull/21204/files#diff-e6ef024c3775d787c38487a6309e491dR408 -function getSocketTimeout(socket) { - return socket.timeout || socket._idleTimeout; -} - -function installListeners(agent, socket, options) { - debug('%s create, timeout %sms', socket[SOCKET_NAME], getSocketTimeout(socket)); - - // listener socket events: close, timeout, error, free - function onFree() { - // create and socket.emit('free') logic - // https://github.com/nodejs/node/blob/master/lib/_http_agent.js#L311 - // no req on the socket, it should be the new socket - if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) return; - - socket[SOCKET_REQUEST_FINISHED_COUNT]++; - agent.requestCount++; - debug('%s(requests: %s, finished: %s) free', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - - // should reuse on pedding requests? - const name = agent.getName(options); - if (socket.writable && agent.requests[name] && agent.requests[name].length) { - // will be reuse on agent free listener - socket[SOCKET_REQUEST_COUNT]++; - debug('%s(requests: %s, finished: %s) will be reuse on agent free event', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - } - } - socket.on('free', onFree); - - function onClose(isError) { - debug('%s(requests: %s, finished: %s) close, isError: %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], isError); - agent.closeSocketCount++; - } - socket.on('close', onClose); - - // start socket timeout handler - function onTimeout() { - // onTimeout and emitRequestTimeout(_http_client.js) - // https://github.com/nodejs/node/blob/v12.x/lib/_http_client.js#L711 - const listenerCount = socket.listeners('timeout').length; - // node <= 10, default listenerCount is 1, onTimeout - // 11 < node <= 12, default listenerCount is 2, onTimeout and emitRequestTimeout - // node >= 13, default listenerCount is 3, onTimeout, - // onTimeout(https://github.com/nodejs/node/pull/32000/files#diff-5f7fb0850412c6be189faeddea6c5359R333) - // and emitRequestTimeout - const timeout = getSocketTimeout(socket); - const req = socket._httpMessage; - const reqTimeoutListenerCount = req && req.listeners('timeout').length || 0; - debug('%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - timeout, listenerCount, defaultTimeoutListenerCount, !!req, reqTimeoutListenerCount); - if (debug.enabled) { - debug('timeout listeners: %s', socket.listeners('timeout').map(f => f.name).join(', ')); - } - agent.timeoutSocketCount++; - const name = agent.getName(options); - if (agent.freeSockets[name] && agent.freeSockets[name].indexOf(socket) !== -1) { - // free socket timeout, destroy quietly - socket.destroy(); - // Remove it from freeSockets list immediately to prevent new requests - // from being sent through this socket. - agent.removeSocket(socket, options); - debug('%s is free, destroy quietly', socket[SOCKET_NAME]); - } else { - // if there is no any request socket timeout handler, - // agent need to handle socket timeout itself. - // - // custom request socket timeout handle logic must follow these rules: - // 1. Destroy socket first - // 2. Must emit socket 'agentRemove' event tell agent remove socket - // from freeSockets list immediately. - // Otherise you may be get 'socket hang up' error when reuse - // free socket and timeout happen in the same time. - if (reqTimeoutListenerCount === 0) { - const error = new Error('Socket timeout'); - error.code = 'ERR_SOCKET_TIMEOUT'; - error.timeout = timeout; - // must manually call socket.end() or socket.destroy() to end the connection. - // https://nodejs.org/dist/latest-v10.x/docs/api/net.html#net_socket_settimeout_timeout_callback - socket.destroy(error); - agent.removeSocket(socket, options); - debug('%s destroy with timeout error', socket[SOCKET_NAME]); - } - } - } - socket.on('timeout', onTimeout); - - function onError(err) { - const listenerCount = socket.listeners('error').length; - debug('%s(requests: %s, finished: %s) error: %s, listenerCount: %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - err, listenerCount); - agent.errorSocketCount++; - if (listenerCount === 1) { - // if socket don't contain error event handler, don't catch it, emit it again - debug('%s emit uncaught error event', socket[SOCKET_NAME]); - socket.removeListener('error', onError); - socket.emit('error', err); - } - } - socket.on('error', onError); - - function onRemove() { - debug('%s(requests: %s, finished: %s) agentRemove', - socket[SOCKET_NAME], - socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - // We need this function for cases like HTTP 'upgrade' - // (defined by WebSockets) where we need to remove a socket from the - // pool because it'll be locked up indefinitely - socket.removeListener('close', onClose); - socket.removeListener('error', onError); - socket.removeListener('free', onFree); - socket.removeListener('timeout', onTimeout); - socket.removeListener('agentRemove', onRemove); - } - socket.on('agentRemove', onRemove); -} - -module.exports = Agent; - -function inspect(obj) { - const res = {}; - for (const key in obj) { - res[key] = obj[key].length; - } - return res; -} diff --git a/deps/npm/node_modules/agentkeepalive/lib/constants.js b/deps/npm/node_modules/agentkeepalive/lib/constants.js deleted file mode 100644 index ca7ab97eacd9c9..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/lib/constants.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports = { - // agent - CURRENT_ID: Symbol('agentkeepalive#currentId'), - CREATE_ID: Symbol('agentkeepalive#createId'), - INIT_SOCKET: Symbol('agentkeepalive#initSocket'), - CREATE_HTTPS_CONNECTION: Symbol('agentkeepalive#createHttpsConnection'), - // socket - SOCKET_CREATED_TIME: Symbol('agentkeepalive#socketCreatedTime'), - SOCKET_NAME: Symbol('agentkeepalive#socketName'), - SOCKET_REQUEST_COUNT: Symbol('agentkeepalive#socketRequestCount'), - SOCKET_REQUEST_FINISHED_COUNT: Symbol('agentkeepalive#socketRequestFinishedCount'), -}; diff --git a/deps/npm/node_modules/agentkeepalive/lib/https_agent.js b/deps/npm/node_modules/agentkeepalive/lib/https_agent.js deleted file mode 100644 index 344fb32cadd862..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/lib/https_agent.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -const OriginalHttpsAgent = require('https').Agent; -const HttpAgent = require('./agent'); -const { - INIT_SOCKET, - CREATE_HTTPS_CONNECTION, -} = require('./constants'); - -class HttpsAgent extends HttpAgent { - constructor(options) { - super(options); - - this.defaultPort = 443; - this.protocol = 'https:'; - this.maxCachedSessions = this.options.maxCachedSessions; - /* istanbul ignore next */ - if (this.maxCachedSessions === undefined) { - this.maxCachedSessions = 100; - } - - this._sessionCache = { - map: {}, - list: [], - }; - } - - createConnection(options, oncreate) { - const socket = this[CREATE_HTTPS_CONNECTION](options, oncreate); - this[INIT_SOCKET](socket, options); - return socket; - } -} - -// https://github.com/nodejs/node/blob/master/lib/https.js#L89 -HttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection; - -[ - 'getName', - '_getSession', - '_cacheSession', - // https://github.com/nodejs/node/pull/4982 - '_evictSession', -].forEach(function(method) { - /* istanbul ignore next */ - if (typeof OriginalHttpsAgent.prototype[method] === 'function') { - HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; - } -}); - -module.exports = HttpsAgent; diff --git a/deps/npm/node_modules/agentkeepalive/package.json b/deps/npm/node_modules/agentkeepalive/package.json deleted file mode 100644 index d8e9aa7160d0b3..00000000000000 --- a/deps/npm/node_modules/agentkeepalive/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "agentkeepalive", - "version": "4.5.0", - "description": "Missing keepalive http.Agent", - "main": "index.js", - "browser": "browser.js", - "files": [ - "index.js", - "index.d.ts", - "browser.js", - "lib" - ], - "scripts": { - "contributor": "git-contributor", - "test": "npm run lint && egg-bin test --full-trace", - "test-local": "egg-bin test --full-trace", - "cov": "cross-env NODE_DEBUG=agentkeepalive egg-bin cov --full-trace", - "ci": "npm run lint && npm run cov", - "lint": "eslint lib test index.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/node-modules/agentkeepalive.git" - }, - "bugs": { - "url": "https://github.com/node-modules/agentkeepalive/issues" - }, - "keywords": [ - "http", - "https", - "agent", - "keepalive", - "agentkeepalive", - "HttpAgent", - "HttpsAgent" - ], - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "devDependencies": { - "coffee": "^5.3.0", - "cross-env": "^6.0.3", - "egg-bin": "^4.9.0", - "eslint": "^5.7.0", - "eslint-config-egg": "^7.1.0", - "git-contributor": "^2.0.0", - "mm": "^2.4.1", - "pedding": "^1.1.0", - "typescript": "^3.8.3" - }, - "engines": { - "node": ">= 8.0.0" - }, - "author": "fengmk2 (https://github.com/fengmk2)", - "license": "MIT" -} diff --git a/deps/npm/node_modules/are-we-there-yet/lib/tracker-base.js b/deps/npm/node_modules/are-we-there-yet/lib/tracker-base.js index 6f436875578a7a..1b5e0dc30c49bb 100644 --- a/deps/npm/node_modules/are-we-there-yet/lib/tracker-base.js +++ b/deps/npm/node_modules/are-we-there-yet/lib/tracker-base.js @@ -1,11 +1,13 @@ 'use strict' -var EventEmitter = require('events').EventEmitter -var util = require('util') +const EventEmitter = require('events') -var trackerId = 0 -var TrackerBase = module.exports = function (name) { - EventEmitter.call(this) - this.id = ++trackerId - this.name = name +let trackerId = 0 +class TrackerBase extends EventEmitter { + constructor (name) { + super() + this.id = ++trackerId + this.name = name + } } -util.inherits(TrackerBase, EventEmitter) + +module.exports = TrackerBase diff --git a/deps/npm/node_modules/are-we-there-yet/lib/tracker-group.js b/deps/npm/node_modules/are-we-there-yet/lib/tracker-group.js index a3c7af804c4d3b..162c22584cdc53 100644 --- a/deps/npm/node_modules/are-we-there-yet/lib/tracker-group.js +++ b/deps/npm/node_modules/are-we-there-yet/lib/tracker-group.js @@ -1,116 +1,112 @@ 'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') -var Tracker = require('./tracker.js') -var TrackerStream = require('./tracker-stream.js') +const TrackerBase = require('./tracker-base.js') +const Tracker = require('./tracker.js') +const TrackerStream = require('./tracker-stream.js') -var TrackerGroup = module.exports = function (name) { - TrackerBase.call(this, name) - this.parentGroup = null - this.trackers = [] - this.completion = {} - this.weight = {} - this.totalWeight = 0 - this.finished = false - this.bubbleChange = bubbleChange(this) -} -util.inherits(TrackerGroup, TrackerBase) +class TrackerGroup extends TrackerBase { + parentGroup = null + trackers = [] + completion = {} + weight = {} + totalWeight = 0 + finished = false + bubbleChange = bubbleChange(this) -function bubbleChange (trackerGroup) { - return function (name, completed, tracker) { - trackerGroup.completion[tracker.id] = completed - if (trackerGroup.finished) { - return + nameInTree () { + var names = [] + var from = this + while (from) { + names.unshift(from.name) + from = from.parentGroup } - trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup) + return names.join('/') } -} -TrackerGroup.prototype.nameInTree = function () { - var names = [] - var from = this - while (from) { - names.unshift(from.name) - from = from.parentGroup - } - return names.join('/') -} - -TrackerGroup.prototype.addUnit = function (unit, weight) { - if (unit.addUnit) { - var toTest = this - while (toTest) { - if (unit === toTest) { - throw new Error( - 'Attempted to add tracker group ' + - unit.name + ' to tree that already includes it ' + - this.nameInTree(this)) + addUnit (unit, weight) { + if (unit.addUnit) { + var toTest = this + while (toTest) { + if (unit === toTest) { + throw new Error( + 'Attempted to add tracker group ' + + unit.name + ' to tree that already includes it ' + + this.nameInTree(this)) + } + toTest = toTest.parentGroup } - toTest = toTest.parentGroup + unit.parentGroup = this } - unit.parentGroup = this + this.weight[unit.id] = weight || 1 + this.totalWeight += this.weight[unit.id] + this.trackers.push(unit) + this.completion[unit.id] = unit.completed() + unit.on('change', this.bubbleChange) + if (!this.finished) { + this.emit('change', unit.name, this.completion[unit.id], unit) + } + return unit } - this.weight[unit.id] = weight || 1 - this.totalWeight += this.weight[unit.id] - this.trackers.push(unit) - this.completion[unit.id] = unit.completed() - unit.on('change', this.bubbleChange) - if (!this.finished) { - this.emit('change', unit.name, this.completion[unit.id], unit) + + completed () { + if (this.trackers.length === 0) { + return 0 + } + var valPerWeight = 1 / this.totalWeight + var completed = 0 + for (var ii = 0; ii < this.trackers.length; ii++) { + var trackerId = this.trackers[ii].id + completed += + valPerWeight * this.weight[trackerId] * this.completion[trackerId] + } + return completed } - return unit -} -TrackerGroup.prototype.completed = function () { - if (this.trackers.length === 0) { - return 0 + newGroup (name, weight) { + return this.addUnit(new TrackerGroup(name), weight) } - var valPerWeight = 1 / this.totalWeight - var completed = 0 - for (var ii = 0; ii < this.trackers.length; ii++) { - var trackerId = this.trackers[ii].id - completed += - valPerWeight * this.weight[trackerId] * this.completion[trackerId] + + newItem (name, todo, weight) { + return this.addUnit(new Tracker(name, todo), weight) } - return completed -} -TrackerGroup.prototype.newGroup = function (name, weight) { - return this.addUnit(new TrackerGroup(name), weight) -} + newStream (name, todo, weight) { + return this.addUnit(new TrackerStream(name, todo), weight) + } -TrackerGroup.prototype.newItem = function (name, todo, weight) { - return this.addUnit(new Tracker(name, todo), weight) -} + finish () { + this.finished = true + if (!this.trackers.length) { + this.addUnit(new Tracker(), 1, true) + } + for (var ii = 0; ii < this.trackers.length; ii++) { + var tracker = this.trackers[ii] + tracker.finish() + tracker.removeListener('change', this.bubbleChange) + } + this.emit('change', this.name, 1, this) + } -TrackerGroup.prototype.newStream = function (name, todo, weight) { - return this.addUnit(new TrackerStream(name, todo), weight) -} + debug (depth = 0) { + const indent = ' '.repeat(depth) + let output = `${indent}${this.name || 'top'}: ${this.completed()}\n` -TrackerGroup.prototype.finish = function () { - this.finished = true - if (!this.trackers.length) { - this.addUnit(new Tracker(), 1, true) - } - for (var ii = 0; ii < this.trackers.length; ii++) { - var tracker = this.trackers[ii] - tracker.finish() - tracker.removeListener('change', this.bubbleChange) + this.trackers.forEach(function (tracker) { + output += tracker instanceof TrackerGroup + ? tracker.debug(depth + 1) + : `${indent} ${tracker.name}: ${tracker.completed()}\n` + }) + return output } - this.emit('change', this.name, 1, this) } -var buffer = ' ' -TrackerGroup.prototype.debug = function (depth) { - depth = depth || 0 - var indent = depth ? buffer.slice(0, depth) : '' - var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n' - this.trackers.forEach(function (tracker) { - if (tracker instanceof TrackerGroup) { - output += tracker.debug(depth + 1) - } else { - output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n' +function bubbleChange (trackerGroup) { + return function (name, completed, tracker) { + trackerGroup.completion[tracker.id] = completed + if (trackerGroup.finished) { + return } - }) - return output + trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup) + } } + +module.exports = TrackerGroup diff --git a/deps/npm/node_modules/are-we-there-yet/lib/tracker-stream.js b/deps/npm/node_modules/are-we-there-yet/lib/tracker-stream.js index e1cf85055702a7..4b111b6bae8a81 100644 --- a/deps/npm/node_modules/are-we-there-yet/lib/tracker-stream.js +++ b/deps/npm/node_modules/are-we-there-yet/lib/tracker-stream.js @@ -1,17 +1,28 @@ 'use strict' -var util = require('util') -var stream = require('readable-stream') -var delegate = require('delegates') -var Tracker = require('./tracker.js') +const stream = require('readable-stream') +const delegate = require('delegates') +const Tracker = require('./tracker.js') -var TrackerStream = module.exports = function (name, size, options) { - stream.Transform.call(this, options) - this.tracker = new Tracker(name, size) - this.name = name - this.id = this.tracker.id - this.tracker.on('change', delegateChange(this)) +class TrackerStream extends stream.Transform { + constructor (name, size, options) { + super(options) + this.tracker = new Tracker(name, size) + this.name = name + this.id = this.tracker.id + this.tracker.on('change', delegateChange(this)) + } + + _transform (data, encoding, cb) { + this.tracker.completeWork(data.length ? data.length : 1) + this.push(data) + cb() + } + + _flush (cb) { + this.tracker.finish() + cb() + } } -util.inherits(TrackerStream, stream.Transform) function delegateChange (trackerStream) { return function (name, completion, tracker) { @@ -19,18 +30,9 @@ function delegateChange (trackerStream) { } } -TrackerStream.prototype._transform = function (data, encoding, cb) { - this.tracker.completeWork(data.length ? data.length : 1) - this.push(data) - cb() -} - -TrackerStream.prototype._flush = function (cb) { - this.tracker.finish() - cb() -} - delegate(TrackerStream.prototype, 'tracker') .method('completed') .method('addWork') .method('finish') + +module.exports = TrackerStream diff --git a/deps/npm/node_modules/are-we-there-yet/lib/tracker.js b/deps/npm/node_modules/are-we-there-yet/lib/tracker.js index a8f8b3ba013915..02e879ce6e3e26 100644 --- a/deps/npm/node_modules/are-we-there-yet/lib/tracker.js +++ b/deps/npm/node_modules/are-we-there-yet/lib/tracker.js @@ -1,32 +1,34 @@ 'use strict' -var util = require('util') -var TrackerBase = require('./tracker-base.js') +const TrackerBase = require('./tracker-base.js') -var Tracker = module.exports = function (name, todo) { - TrackerBase.call(this, name) - this.workDone = 0 - this.workTodo = todo || 0 -} -util.inherits(Tracker, TrackerBase) +class Tracker extends TrackerBase { + constructor (name, todo) { + super(name) + this.workDone = 0 + this.workTodo = todo || 0 + } -Tracker.prototype.completed = function () { - return this.workTodo === 0 ? 0 : this.workDone / this.workTodo -} + completed () { + return this.workTodo === 0 ? 0 : this.workDone / this.workTodo + } -Tracker.prototype.addWork = function (work) { - this.workTodo += work - this.emit('change', this.name, this.completed(), this) -} + addWork (work) { + this.workTodo += work + this.emit('change', this.name, this.completed(), this) + } -Tracker.prototype.completeWork = function (work) { - this.workDone += work - if (this.workDone > this.workTodo) { - this.workDone = this.workTodo + completeWork (work) { + this.workDone += work + if (this.workDone > this.workTodo) { + this.workDone = this.workTodo + } + this.emit('change', this.name, this.completed(), this) } - this.emit('change', this.name, this.completed(), this) -} -Tracker.prototype.finish = function () { - this.workTodo = this.workDone = 1 - this.emit('change', this.name, 1, this) + finish () { + this.workTodo = this.workDone = 1 + this.emit('change', this.name, 1, this) + } } + +module.exports = Tracker diff --git a/deps/npm/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/are-we-there-yet/package.json index 919cb9a1dc5a73..e238c6581df667 100644 --- a/deps/npm/node_modules/are-we-there-yet/package.json +++ b/deps/npm/node_modules/are-we-there-yet/package.json @@ -1,6 +1,6 @@ { "name": "are-we-there-yet", - "version": "4.0.0", + "version": "4.0.1", "description": "Keep track of the overall completion of many disparate processes", "main": "lib/index.js", "scripts": { @@ -24,8 +24,8 @@ }, "homepage": "https://github.com/npm/are-we-there-yet", "devDependencies": { - "@npmcli/eslint-config": "^3.0.1", - "@npmcli/template-oss": "4.5.1", + "@npmcli/eslint-config": "^4.0.0", + "@npmcli/template-oss": "4.17.0", "tap": "^16.0.1" }, "dependencies": { @@ -51,6 +51,7 @@ }, "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.5.1" + "version": "4.17.0", + "publish": true } } diff --git a/deps/npm/node_modules/bin-links/lib/link-mans.js b/deps/npm/node_modules/bin-links/lib/link-mans.js index 656e179b6ca54b..b6dd214cebdfe7 100644 --- a/deps/npm/node_modules/bin-links/lib/link-mans.js +++ b/deps/npm/node_modules/bin-links/lib/link-mans.js @@ -2,22 +2,23 @@ const { dirname, relative, join, resolve, basename } = require('path') const linkGently = require('./link-gently.js') const manTarget = require('./man-target.js') -const linkMans = ({ path, pkg, top, force }) => { +const linkMans = async ({ path, pkg, top, force }) => { const target = manTarget({ path, top }) - if (!target || !pkg.man || !Array.isArray(pkg.man) || !pkg.man.length) { - return Promise.resolve([]) + if (!target || !Array.isArray(pkg?.man) || !pkg.man.length) { + return [] } - // break any links to c:\\blah or /foo/blah or ../blah - // and filter out duplicates - const set = [...new Set(pkg.man.map(man => - man ? join('/', man).replace(/\\|:/g, '/').slice(1) : null) - .filter(man => typeof man === 'string'))] - - return Promise.all(set.map(man => { - const parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/) + const links = [] + // `new Set` to filter out duplicates + for (let man of new Set(pkg.man)) { + if (!man || typeof man !== 'string') { + continue + } + // break any links to c:\\blah or /foo/blah or ../blah + man = join('/', man).replace(/\\|:/g, '/').slice(1) + const parseMan = man.match(/\.([0-9]+)(\.gz)?$/) if (!parseMan) { - return Promise.reject(Object.assign(new Error('invalid man entry name\n' + + throw Object.assign(new Error('invalid man entry name\n' + 'Man files must end with a number, ' + 'and optionally a .gz suffix if they are compressed.' ), { @@ -25,28 +26,28 @@ const linkMans = ({ path, pkg, top, force }) => { path, pkgid: pkg._id, man, - })) + }) } - const stem = parseMan[1] - const sxn = parseMan[2] - const base = basename(stem) + const section = parseMan[1] + const base = basename(man) const absFrom = resolve(path, man) /* istanbul ignore if - that unpossible */ if (absFrom.indexOf(path) !== 0) { - return Promise.reject(Object.assign(new Error('invalid man entry'), { + throw Object.assign(new Error('invalid man entry'), { code: 'EBADMAN', path, pkgid: pkg._id, man, - })) + }) } - const to = resolve(target, 'man' + sxn, base) + const to = resolve(target, 'man' + section, base) const from = relative(dirname(to), absFrom) - return linkGently({ from, to, path, absFrom, force }) - })) + links.push(linkGently({ from, to, path, absFrom, force })) + } + return Promise.all(links) } module.exports = linkMans diff --git a/deps/npm/node_modules/bin-links/package.json b/deps/npm/node_modules/bin-links/package.json index e6abb0b589808b..d5c11f7971f942 100644 --- a/deps/npm/node_modules/bin-links/package.json +++ b/deps/npm/node_modules/bin-links/package.json @@ -1,6 +1,6 @@ { "name": "bin-links", - "version": "4.0.2", + "version": "4.0.3", "description": "JavaScript package binary linker", "main": "./lib/index.js", "scripts": { @@ -30,7 +30,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.15.1", + "@npmcli/template-oss": "4.19.0", "require-inject": "^1.4.4", "tap": "^16.0.1" }, @@ -53,7 +53,7 @@ "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", "windowsCI": false, - "version": "4.15.1", + "version": "4.19.0", "publish": true } } diff --git a/deps/npm/node_modules/ci-info/LICENSE b/deps/npm/node_modules/ci-info/LICENSE index 44ca33aa611e73..95f61daaaf485f 100644 --- a/deps/npm/node_modules/ci-info/LICENSE +++ b/deps/npm/node_modules/ci-info/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016-2023 Thomas Watson Steen +Copyright (c) 2016 Thomas Watson Steen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/deps/npm/node_modules/ci-info/package.json b/deps/npm/node_modules/ci-info/package.json index 3edae7417a33ef..8d3ff0030cc919 100644 --- a/deps/npm/node_modules/ci-info/package.json +++ b/deps/npm/node_modules/ci-info/package.json @@ -1,6 +1,6 @@ { "name": "ci-info", - "version": "3.8.0", + "version": "3.9.0", "description": "Get details about the current Continuous Integration environment", "main": "index.js", "typings": "index.d.ts", @@ -35,9 +35,9 @@ }, "devDependencies": { "clear-module": "^4.1.2", - "husky": "^8.0.2", - "standard": "^17.0.0", - "tape": "^5.6.1" + "husky": "^8.0.3", + "standard": "^17.1.0", + "tape": "^5.7.0" }, "engines": { "node": ">=8" diff --git a/deps/npm/node_modules/ci-info/vendors.json b/deps/npm/node_modules/ci-info/vendors.json index 213711755273ae..7bedd96a7972fa 100644 --- a/deps/npm/node_modules/ci-info/vendors.json +++ b/deps/npm/node_modules/ci-info/vendors.json @@ -18,8 +18,10 @@ { "name": "Azure Pipelines", "constant": "AZURE_PIPELINES", - "env": "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI", - "pr": "SYSTEM_PULLREQUEST_PULLREQUESTID" + "env": "TF_BUILD", + "pr": { + "BUILD_REASON": "PullRequest" + } }, { "name": "Bamboo", @@ -287,7 +289,8 @@ "NOW_BUILDER", "VERCEL" ] - } + }, + "pr": "VERCEL_GIT_PULL_REQUEST_ID" }, { "name": "Visual Studio App Center", diff --git a/deps/npm/node_modules/cmd-shim/lib/index.js b/deps/npm/node_modules/cmd-shim/lib/index.js index 76ea2cb6d624d8..9cf2243ebf035f 100644 --- a/deps/npm/node_modules/cmd-shim/lib/index.js +++ b/deps/npm/node_modules/cmd-shim/lib/index.js @@ -122,7 +122,11 @@ const writeShim_ = (from, to, prog, args, variables) => { // basedir=`dirname "$0"` // // case `uname` in - // *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; + // *CYGWIN*|*MINGW*|*MSYS*) + // if command -v cygpath > /dev/null 2>&1; then + // basedir=`cygpath -w "$basedir"` + // fi + // ;; // esac // // if [ -x "$basedir/node.exe" ]; then @@ -137,7 +141,11 @@ const writeShim_ = (from, to, prog, args, variables) => { + `basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")\n` + '\n' + 'case `uname` in\n' - + ' *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;\n' + + ' *CYGWIN*|*MINGW*|*MSYS*)\n' + + ' if command -v cygpath > /dev/null 2>&1; then\n' + + ' basedir=`cygpath -w "$basedir"`\n' + + ' fi\n' + + ' ;;\n' + 'esac\n' + '\n' diff --git a/deps/npm/node_modules/cmd-shim/package.json b/deps/npm/node_modules/cmd-shim/package.json index 4e52de2412f24a..ec274b2768fbb7 100644 --- a/deps/npm/node_modules/cmd-shim/package.json +++ b/deps/npm/node_modules/cmd-shim/package.json @@ -1,6 +1,6 @@ { "name": "cmd-shim", - "version": "6.0.1", + "version": "6.0.2", "description": "Used in npm for command line application support", "scripts": { "test": "tap", @@ -18,7 +18,7 @@ "license": "ISC", "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.11.0", + "@npmcli/template-oss": "4.19.0", "tap": "^16.0.1" }, "files": [ @@ -41,6 +41,7 @@ "author": "GitHub Inc.", "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.11.0" + "version": "4.19.0", + "publish": true } } diff --git a/deps/npm/node_modules/concat-map/LICENSE b/deps/npm/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4b4412b0..00000000000000 --- a/deps/npm/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/concat-map/example/map.js b/deps/npm/node_modules/concat-map/example/map.js deleted file mode 100644 index 33656217b61d8f..00000000000000 --- a/deps/npm/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/deps/npm/node_modules/concat-map/index.js b/deps/npm/node_modules/concat-map/index.js deleted file mode 100644 index b29a7812e5055a..00000000000000 --- a/deps/npm/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/deps/npm/node_modules/concat-map/package.json b/deps/npm/node_modules/concat-map/package.json deleted file mode 100644 index d3640e6b027b9e..00000000000000 --- a/deps/npm/node_modules/concat-map/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name" : "concat-map", - "description" : "concatenative mapdashery", - "version" : "0.0.1", - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/node-concat-map.git" - }, - "main" : "index.js", - "keywords" : [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories" : { - "example" : "example", - "test" : "test" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "devDependencies" : { - "tape" : "~2.4.0" - }, - "license" : "MIT", - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "ie" : [ 6, 7, 8, 9 ], - "ff" : [ 3.5, 10, 15.0 ], - "chrome" : [ 10, 22 ], - "safari" : [ 5.1 ], - "opera" : [ 12 ] - } - } -} diff --git a/deps/npm/node_modules/concat-map/test/map.js b/deps/npm/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd7022f6da17..00000000000000 --- a/deps/npm/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/deps/npm/node_modules/fs.realpath/LICENSE b/deps/npm/node_modules/fs.realpath/LICENSE deleted file mode 100644 index 5bd884c252ac49..00000000000000 --- a/deps/npm/node_modules/fs.realpath/LICENSE +++ /dev/null @@ -1,43 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - Copyright Joyent, Inc. and other Node contributors. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation - the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. diff --git a/deps/npm/node_modules/fs.realpath/index.js b/deps/npm/node_modules/fs.realpath/index.js deleted file mode 100644 index b09c7c7e6364da..00000000000000 --- a/deps/npm/node_modules/fs.realpath/index.js +++ /dev/null @@ -1,66 +0,0 @@ -module.exports = realpath -realpath.realpath = realpath -realpath.sync = realpathSync -realpath.realpathSync = realpathSync -realpath.monkeypatch = monkeypatch -realpath.unmonkeypatch = unmonkeypatch - -var fs = require('fs') -var origRealpath = fs.realpath -var origRealpathSync = fs.realpathSync - -var version = process.version -var ok = /^v[0-5]\./.test(version) -var old = require('./old.js') - -function newError (er) { - return er && er.syscall === 'realpath' && ( - er.code === 'ELOOP' || - er.code === 'ENOMEM' || - er.code === 'ENAMETOOLONG' - ) -} - -function realpath (p, cache, cb) { - if (ok) { - return origRealpath(p, cache, cb) - } - - if (typeof cache === 'function') { - cb = cache - cache = null - } - origRealpath(p, cache, function (er, result) { - if (newError(er)) { - old.realpath(p, cache, cb) - } else { - cb(er, result) - } - }) -} - -function realpathSync (p, cache) { - if (ok) { - return origRealpathSync(p, cache) - } - - try { - return origRealpathSync(p, cache) - } catch (er) { - if (newError(er)) { - return old.realpathSync(p, cache) - } else { - throw er - } - } -} - -function monkeypatch () { - fs.realpath = realpath - fs.realpathSync = realpathSync -} - -function unmonkeypatch () { - fs.realpath = origRealpath - fs.realpathSync = origRealpathSync -} diff --git a/deps/npm/node_modules/fs.realpath/old.js b/deps/npm/node_modules/fs.realpath/old.js deleted file mode 100644 index b40305e73fd583..00000000000000 --- a/deps/npm/node_modules/fs.realpath/old.js +++ /dev/null @@ -1,303 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var pathModule = require('path'); -var isWindows = process.platform === 'win32'; -var fs = require('fs'); - -// JavaScript implementation of realpath, ported from node pre-v6 - -var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); - -function rethrow() { - // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and - // is fairly slow to generate. - var callback; - if (DEBUG) { - var backtrace = new Error; - callback = debugCallback; - } else - callback = missingCallback; - - return callback; - - function debugCallback(err) { - if (err) { - backtrace.message = err.message; - err = backtrace; - missingCallback(err); - } - } - - function missingCallback(err) { - if (err) { - if (process.throwDeprecation) - throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs - else if (!process.noDeprecation) { - var msg = 'fs: missing callback ' + (err.stack || err.message); - if (process.traceDeprecation) - console.trace(msg); - else - console.error(msg); - } - } - } -} - -function maybeCallback(cb) { - return typeof cb === 'function' ? cb : rethrow(); -} - -var normalize = pathModule.normalize; - -// Regexp that finds the next partion of a (partial) path -// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] -if (isWindows) { - var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; -} else { - var nextPartRe = /(.*?)(?:[\/]+|$)/g; -} - -// Regex to find the device root, including trailing slash. E.g. 'c:\\'. -if (isWindows) { - var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; -} else { - var splitRootRe = /^[\/]*/; -} - -exports.realpathSync = function realpathSync(p, cache) { - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return cache[p]; - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstatSync(base); - knownHard[base] = true; - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - // NB: p.length changes. - while (pos < p.length) { - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - continue; - } - - var resolvedLink; - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // some known symbolic link. no need to stat again. - resolvedLink = cache[base]; - } else { - var stat = fs.lstatSync(base); - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - continue; - } - - // read the link if it wasn't read before - // dev/ino always return 0 on windows, so skip the check. - var linkTarget = null; - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - linkTarget = seenLinks[id]; - } - } - if (linkTarget === null) { - fs.statSync(base); - linkTarget = fs.readlinkSync(base); - } - resolvedLink = pathModule.resolve(previous, linkTarget); - // track this, if given a cache. - if (cache) cache[base] = resolvedLink; - if (!isWindows) seenLinks[id] = linkTarget; - } - - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } - - if (cache) cache[original] = p; - - return p; -}; - - -exports.realpath = function realpath(p, cache, cb) { - if (typeof cb !== 'function') { - cb = maybeCallback(cache); - cache = null; - } - - // make p is absolute - p = pathModule.resolve(p); - - if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { - return process.nextTick(cb.bind(null, null, cache[p])); - } - - var original = p, - seenLinks = {}, - knownHard = {}; - - // current character position in p - var pos; - // the partial path so far, including a trailing slash if any - var current; - // the partial path without a trailing slash (except when pointing at a root) - var base; - // the partial path scanned in the previous round, with slash - var previous; - - start(); - - function start() { - // Skip over roots - var m = splitRootRe.exec(p); - pos = m[0].length; - current = m[0]; - base = m[0]; - previous = ''; - - // On windows, check that the root exists. On unix there is no need. - if (isWindows && !knownHard[base]) { - fs.lstat(base, function(err) { - if (err) return cb(err); - knownHard[base] = true; - LOOP(); - }); - } else { - process.nextTick(LOOP); - } - } - - // walk down the path, swapping out linked pathparts for their real - // values - function LOOP() { - // stop if scanned past end of path - if (pos >= p.length) { - if (cache) cache[original] = p; - return cb(null, p); - } - - // find the next part - nextPartRe.lastIndex = pos; - var result = nextPartRe.exec(p); - previous = current; - current += result[0]; - base = previous + result[1]; - pos = nextPartRe.lastIndex; - - // continue if not a symlink - if (knownHard[base] || (cache && cache[base] === base)) { - return process.nextTick(LOOP); - } - - if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { - // known symbolic link. no need to stat again. - return gotResolvedLink(cache[base]); - } - - return fs.lstat(base, gotStat); - } - - function gotStat(err, stat) { - if (err) return cb(err); - - // if not a symlink, skip to the next path part - if (!stat.isSymbolicLink()) { - knownHard[base] = true; - if (cache) cache[base] = base; - return process.nextTick(LOOP); - } - - // stat & read the link if not read before - // call gotTarget as soon as the link target is known - // dev/ino always return 0 on windows, so skip the check. - if (!isWindows) { - var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); - if (seenLinks.hasOwnProperty(id)) { - return gotTarget(null, seenLinks[id], base); - } - } - fs.stat(base, function(err) { - if (err) return cb(err); - - fs.readlink(base, function(err, target) { - if (!isWindows) seenLinks[id] = target; - gotTarget(err, target); - }); - }); - } - - function gotTarget(err, target, base) { - if (err) return cb(err); - - var resolvedLink = pathModule.resolve(previous, target); - if (cache) cache[base] = resolvedLink; - gotResolvedLink(resolvedLink); - } - - function gotResolvedLink(resolvedLink) { - // resolve the link, then start over - p = pathModule.resolve(resolvedLink, p.slice(pos)); - start(); - } -}; diff --git a/deps/npm/node_modules/fs.realpath/package.json b/deps/npm/node_modules/fs.realpath/package.json deleted file mode 100644 index 3edc57d21c7137..00000000000000 --- a/deps/npm/node_modules/fs.realpath/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "fs.realpath", - "version": "1.0.0", - "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", - "main": "index.js", - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "tap test/*.js --cov" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/fs.realpath.git" - }, - "keywords": [ - "realpath", - "fs", - "polyfill" - ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "ISC", - "files": [ - "old.js", - "index.js" - ] -} diff --git a/deps/npm/node_modules/http-proxy-agent/dist/agent.js b/deps/npm/node_modules/http-proxy-agent/dist/agent.js deleted file mode 100644 index aca82804314882..00000000000000 --- a/deps/npm/node_modules/http-proxy-agent/dist/agent.js +++ /dev/null @@ -1,145 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const net_1 = __importDefault(require("net")); -const tls_1 = __importDefault(require("tls")); -const url_1 = __importDefault(require("url")); -const debug_1 = __importDefault(require("debug")); -const once_1 = __importDefault(require("@tootallnate/once")); -const agent_base_1 = require("agent-base"); -const debug = (0, debug_1.default)('http-proxy-agent'); -function isHTTPS(protocol) { - return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; -} -/** - * The `HttpProxyAgent` implements an HTTP Agent subclass that connects - * to the specified "HTTP proxy server" in order to proxy HTTP requests. - * - * @api public - */ -class HttpProxyAgent extends agent_base_1.Agent { - constructor(_opts) { - let opts; - if (typeof _opts === 'string') { - opts = url_1.default.parse(_opts); - } - else { - opts = _opts; - } - if (!opts) { - throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); - } - debug('Creating new HttpProxyAgent instance: %o', opts); - super(opts); - const proxy = Object.assign({}, opts); - // If `true`, then connect to the proxy server over TLS. - // Defaults to `false`. - this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); - // Prefer `hostname` over `host`, and set the `port` if needed. - proxy.host = proxy.hostname || proxy.host; - if (typeof proxy.port === 'string') { - proxy.port = parseInt(proxy.port, 10); - } - if (!proxy.port && proxy.host) { - proxy.port = this.secureProxy ? 443 : 80; - } - if (proxy.host && proxy.path) { - // If both a `host` and `path` are specified then it's most likely - // the result of a `url.parse()` call... we need to remove the - // `path` portion so that `net.connect()` doesn't attempt to open - // that as a Unix socket file. - delete proxy.path; - delete proxy.pathname; - } - this.proxy = proxy; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - * - * @api protected - */ - callback(req, opts) { - return __awaiter(this, void 0, void 0, function* () { - const { proxy, secureProxy } = this; - const parsed = url_1.default.parse(req.path); - if (!parsed.protocol) { - parsed.protocol = 'http:'; - } - if (!parsed.hostname) { - parsed.hostname = opts.hostname || opts.host || null; - } - if (parsed.port == null && typeof opts.port) { - parsed.port = String(opts.port); - } - if (parsed.port === '80') { - // if port is 80, then we can remove the port so that the - // ":80" portion is not on the produced URL - parsed.port = ''; - } - // Change the `http.ClientRequest` instance's "path" field - // to the absolute path of the URL that will be requested. - req.path = url_1.default.format(parsed); - // Inject the `Proxy-Authorization` header if necessary. - if (proxy.auth) { - req.setHeader('Proxy-Authorization', `Basic ${Buffer.from(proxy.auth).toString('base64')}`); - } - // Create a socket connection to the proxy server. - let socket; - if (secureProxy) { - debug('Creating `tls.Socket`: %o', proxy); - socket = tls_1.default.connect(proxy); - } - else { - debug('Creating `net.Socket`: %o', proxy); - socket = net_1.default.connect(proxy); - } - // At this point, the http ClientRequest's internal `_header` field - // might have already been set. If this is the case then we'll need - // to re-generate the string since we just changed the `req.path`. - if (req._header) { - let first; - let endOfHeaders; - debug('Regenerating stored HTTP header string for request'); - req._header = null; - req._implicitHeader(); - if (req.output && req.output.length > 0) { - // Node < 12 - debug('Patching connection write() output buffer with updated header'); - first = req.output[0]; - endOfHeaders = first.indexOf('\r\n\r\n') + 4; - req.output[0] = req._header + first.substring(endOfHeaders); - debug('Output buffer: %o', req.output); - } - else if (req.outputData && req.outputData.length > 0) { - // Node >= 12 - debug('Patching connection write() output buffer with updated header'); - first = req.outputData[0].data; - endOfHeaders = first.indexOf('\r\n\r\n') + 4; - req.outputData[0].data = - req._header + first.substring(endOfHeaders); - debug('Output buffer: %o', req.outputData[0].data); - } - } - // Wait for the socket's `connect` event, so that this `callback()` - // function throws instead of the `http` request machinery. This is - // important for i.e. `PacProxyAgent` which determines a failed proxy - // connection via the `callback()` function throwing. - yield (0, once_1.default)(socket, 'connect'); - return socket; - }); - } -} -exports.default = HttpProxyAgent; -//# sourceMappingURL=agent.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/http-proxy-agent/dist/index.js b/deps/npm/node_modules/http-proxy-agent/dist/index.js deleted file mode 100644 index 0a71180594605b..00000000000000 --- a/deps/npm/node_modules/http-proxy-agent/dist/index.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const agent_1 = __importDefault(require("./agent")); -function createHttpProxyAgent(opts) { - return new agent_1.default(opts); -} -(function (createHttpProxyAgent) { - createHttpProxyAgent.HttpProxyAgent = agent_1.default; - createHttpProxyAgent.prototype = agent_1.default.prototype; -})(createHttpProxyAgent || (createHttpProxyAgent = {})); -module.exports = createHttpProxyAgent; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/http-proxy-agent/package.json b/deps/npm/node_modules/http-proxy-agent/package.json deleted file mode 100644 index 659d6e11e80e40..00000000000000 --- a/deps/npm/node_modules/http-proxy-agent/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "http-proxy-agent", - "version": "5.0.0", - "description": "An HTTP(s) proxy `http.Agent` implementation for HTTP", - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "test": "mocha", - "test-lint": "eslint src --ext .js,.ts", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-http-proxy-agent.git" - }, - "keywords": [ - "http", - "proxy", - "endpoint", - "agent" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-http-proxy-agent/issues" - }, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "devDependencies": { - "@types/debug": "4", - "@types/node": "^12.19.2", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.1.0", - "eslint": "5.16.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "4.1.0", - "eslint-import-resolver-typescript": "1.1.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-react": "7.12.4", - "mocha": "^6.2.2", - "proxy": "1", - "rimraf": "^3.0.0", - "typescript": "^4.4.3" - }, - "engines": { - "node": ">= 6" - } -} diff --git a/deps/npm/node_modules/https-proxy-agent/dist/agent.js b/deps/npm/node_modules/https-proxy-agent/dist/agent.js deleted file mode 100644 index 75d11364ed3001..00000000000000 --- a/deps/npm/node_modules/https-proxy-agent/dist/agent.js +++ /dev/null @@ -1,177 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const net_1 = __importDefault(require("net")); -const tls_1 = __importDefault(require("tls")); -const url_1 = __importDefault(require("url")); -const assert_1 = __importDefault(require("assert")); -const debug_1 = __importDefault(require("debug")); -const agent_base_1 = require("agent-base"); -const parse_proxy_response_1 = __importDefault(require("./parse-proxy-response")); -const debug = debug_1.default('https-proxy-agent:agent'); -/** - * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to - * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. - * - * Outgoing HTTP requests are first tunneled through the proxy server using the - * `CONNECT` HTTP request method to establish a connection to the proxy server, - * and then the proxy server connects to the destination target and issues the - * HTTP request from the proxy server. - * - * `https:` requests have their socket connection upgraded to TLS once - * the connection to the proxy server has been established. - * - * @api public - */ -class HttpsProxyAgent extends agent_base_1.Agent { - constructor(_opts) { - let opts; - if (typeof _opts === 'string') { - opts = url_1.default.parse(_opts); - } - else { - opts = _opts; - } - if (!opts) { - throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); - } - debug('creating new HttpsProxyAgent instance: %o', opts); - super(opts); - const proxy = Object.assign({}, opts); - // If `true`, then connect to the proxy server over TLS. - // Defaults to `false`. - this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); - // Prefer `hostname` over `host`, and set the `port` if needed. - proxy.host = proxy.hostname || proxy.host; - if (typeof proxy.port === 'string') { - proxy.port = parseInt(proxy.port, 10); - } - if (!proxy.port && proxy.host) { - proxy.port = this.secureProxy ? 443 : 80; - } - // ALPN is supported by Node.js >= v5. - // attempt to negotiate http/1.1 for proxy servers that support http/2 - if (this.secureProxy && !('ALPNProtocols' in proxy)) { - proxy.ALPNProtocols = ['http 1.1']; - } - if (proxy.host && proxy.path) { - // If both a `host` and `path` are specified then it's most likely - // the result of a `url.parse()` call... we need to remove the - // `path` portion so that `net.connect()` doesn't attempt to open - // that as a Unix socket file. - delete proxy.path; - delete proxy.pathname; - } - this.proxy = proxy; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - * - * @api protected - */ - callback(req, opts) { - return __awaiter(this, void 0, void 0, function* () { - const { proxy, secureProxy } = this; - // Create a socket connection to the proxy server. - let socket; - if (secureProxy) { - debug('Creating `tls.Socket`: %o', proxy); - socket = tls_1.default.connect(proxy); - } - else { - debug('Creating `net.Socket`: %o', proxy); - socket = net_1.default.connect(proxy); - } - const headers = Object.assign({}, proxy.headers); - const hostname = `${opts.host}:${opts.port}`; - let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; - // Inject the `Proxy-Authorization` header if necessary. - if (proxy.auth) { - headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; - } - // The `Host` header should only include the port - // number when it is not the default port. - let { host, port, secureEndpoint } = opts; - if (!isDefaultPort(port, secureEndpoint)) { - host += `:${port}`; - } - headers.Host = host; - headers.Connection = 'close'; - for (const name of Object.keys(headers)) { - payload += `${name}: ${headers[name]}\r\n`; - } - const proxyResponsePromise = parse_proxy_response_1.default(socket); - socket.write(`${payload}\r\n`); - const { statusCode, buffered } = yield proxyResponsePromise; - if (statusCode === 200) { - req.once('socket', resume); - if (opts.secureEndpoint) { - // The proxy is connecting to a TLS server, so upgrade - // this socket connection to a TLS connection. - debug('Upgrading socket connection to TLS'); - const servername = opts.servername || opts.host; - return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, - servername })); - } - return socket; - } - // Some other status code that's not 200... need to re-play the HTTP - // header "data" events onto the socket once the HTTP machinery is - // attached so that the node core `http` can parse and handle the - // error status code. - // Close the original socket, and a new "fake" socket is returned - // instead, so that the proxy doesn't get the HTTP request - // written to it (which may contain `Authorization` headers or other - // sensitive data). - // - // See: https://hackerone.com/reports/541502 - socket.destroy(); - const fakeSocket = new net_1.default.Socket({ writable: false }); - fakeSocket.readable = true; - // Need to wait for the "socket" event to re-play the "data" events. - req.once('socket', (s) => { - debug('replaying proxy buffer for failed request'); - assert_1.default(s.listenerCount('data') > 0); - // Replay the "buffered" Buffer onto the fake `socket`, since at - // this point the HTTP module machinery has been hooked up for - // the user. - s.push(buffered); - s.push(null); - }); - return fakeSocket; - }); - } -} -exports.default = HttpsProxyAgent; -function resume(socket) { - socket.resume(); -} -function isDefaultPort(port, secure) { - return Boolean((!secure && port === 80) || (secure && port === 443)); -} -function isHTTPS(protocol) { - return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; -} -function omit(obj, ...keys) { - const ret = {}; - let key; - for (key in obj) { - if (!keys.includes(key)) { - ret[key] = obj[key]; - } - } - return ret; -} -//# sourceMappingURL=agent.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/https-proxy-agent/dist/index.js b/deps/npm/node_modules/https-proxy-agent/dist/index.js deleted file mode 100644 index b03e7631a45a45..00000000000000 --- a/deps/npm/node_modules/https-proxy-agent/dist/index.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const agent_1 = __importDefault(require("./agent")); -function createHttpsProxyAgent(opts) { - return new agent_1.default(opts); -} -(function (createHttpsProxyAgent) { - createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; - createHttpsProxyAgent.prototype = agent_1.default.prototype; -})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); -module.exports = createHttpsProxyAgent; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js b/deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js deleted file mode 100644 index aa5ce3cc2d371f..00000000000000 --- a/deps/npm/node_modules/https-proxy-agent/dist/parse-proxy-response.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const debug_1 = __importDefault(require("debug")); -const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); -function parseProxyResponse(socket) { - return new Promise((resolve, reject) => { - // we need to buffer any HTTP traffic that happens with the proxy before we get - // the CONNECT response, so that if the response is anything other than an "200" - // response code, then we can re-play the "data" events on the socket once the - // HTTP parser is hooked up... - let buffersLength = 0; - const buffers = []; - function read() { - const b = socket.read(); - if (b) - ondata(b); - else - socket.once('readable', read); - } - function cleanup() { - socket.removeListener('end', onend); - socket.removeListener('error', onerror); - socket.removeListener('close', onclose); - socket.removeListener('readable', read); - } - function onclose(err) { - debug('onclose had error %o', err); - } - function onend() { - debug('onend'); - } - function onerror(err) { - cleanup(); - debug('onerror %o', err); - reject(err); - } - function ondata(b) { - buffers.push(b); - buffersLength += b.length; - const buffered = Buffer.concat(buffers, buffersLength); - const endOfHeaders = buffered.indexOf('\r\n\r\n'); - if (endOfHeaders === -1) { - // keep buffering - debug('have not received end of HTTP headers yet...'); - read(); - return; - } - const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); - const statusCode = +firstLine.split(' ')[1]; - debug('got proxy server response: %o', firstLine); - resolve({ - statusCode, - buffered - }); - } - socket.on('error', onerror); - socket.on('close', onclose); - socket.on('end', onend); - read(); - }); -} -exports.default = parseProxyResponse; -//# sourceMappingURL=parse-proxy-response.js.map \ No newline at end of file diff --git a/deps/npm/node_modules/https-proxy-agent/package.json b/deps/npm/node_modules/https-proxy-agent/package.json deleted file mode 100644 index fb2aba1b946951..00000000000000 --- a/deps/npm/node_modules/https-proxy-agent/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "https-proxy-agent", - "version": "5.0.1", - "description": "An HTTP(s) proxy `http.Agent` implementation for HTTPS", - "main": "dist/index", - "types": "dist/index", - "files": [ - "dist" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "test": "mocha --reporter spec", - "test-lint": "eslint src --ext .js,.ts", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-https-proxy-agent.git" - }, - "keywords": [ - "https", - "proxy", - "endpoint", - "agent" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-https-proxy-agent/issues" - }, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "devDependencies": { - "@types/debug": "4", - "@types/node": "^12.12.11", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.1.0", - "eslint": "5.16.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "4.1.0", - "eslint-import-resolver-typescript": "1.1.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-react": "7.12.4", - "mocha": "^6.2.2", - "proxy": "1", - "rimraf": "^3.0.0", - "typescript": "^3.5.3" - }, - "engines": { - "node": ">= 6" - } -} diff --git a/deps/npm/node_modules/humanize-ms/LICENSE b/deps/npm/node_modules/humanize-ms/LICENSE deleted file mode 100644 index 89de354795ec7a..00000000000000 --- a/deps/npm/node_modules/humanize-ms/LICENSE +++ /dev/null @@ -1,17 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/deps/npm/node_modules/humanize-ms/index.js b/deps/npm/node_modules/humanize-ms/index.js deleted file mode 100644 index 660df81def5120..00000000000000 --- a/deps/npm/node_modules/humanize-ms/index.js +++ /dev/null @@ -1,24 +0,0 @@ -/*! - * humanize-ms - index.js - * Copyright(c) 2014 dead_horse - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - */ - -var util = require('util'); -var ms = require('ms'); - -module.exports = function (t) { - if (typeof t === 'number') return t; - var r = ms(t); - if (r === undefined) { - var err = new Error(util.format('humanize-ms(%j) result undefined', t)); - console.warn(err.stack); - } - return r; -}; diff --git a/deps/npm/node_modules/humanize-ms/package.json b/deps/npm/node_modules/humanize-ms/package.json deleted file mode 100644 index da4ab7f571a686..00000000000000 --- a/deps/npm/node_modules/humanize-ms/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "humanize-ms", - "version": "1.2.1", - "description": "transform humanize time to ms", - "main": "index.js", - "files": [ - "index.js" - ], - "scripts": { - "test": "make test" - }, - "keywords": [ - "humanize", - "ms" - ], - "author": { - "name": "dead-horse", - "email": "dead_horse@qq.com", - "url": "http://deadhorse.me" - }, - "repository": { - "type": "git", - "url": "https://github.com/node-modules/humanize-ms" - }, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - }, - "devDependencies": { - "autod": "*", - "beautify-benchmark": "~0.2.4", - "benchmark": "~1.0.0", - "istanbul": "*", - "mocha": "*", - "should": "*" - } -} diff --git a/deps/npm/node_modules/inflight/LICENSE b/deps/npm/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb88c2ef4c..00000000000000 --- a/deps/npm/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/deps/npm/node_modules/inflight/inflight.js b/deps/npm/node_modules/inflight/inflight.js deleted file mode 100644 index 48202b3ca41d97..00000000000000 --- a/deps/npm/node_modules/inflight/inflight.js +++ /dev/null @@ -1,54 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/deps/npm/node_modules/inflight/package.json b/deps/npm/node_modules/inflight/package.json deleted file mode 100644 index 6084d3509a5d6d..00000000000000 --- a/deps/npm/node_modules/inflight/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "inflight", - "version": "1.0.6", - "description": "Add callbacks to requests in flight to avoid async duplication", - "main": "inflight.js", - "files": [ - "inflight.js" - ], - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "devDependencies": { - "tap": "^7.1.2" - }, - "scripts": { - "test": "tap test.js --100" - }, - "repository": { - "type": "git", - "url": "https://github.com/npm/inflight.git" - }, - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC" -} diff --git a/deps/npm/node_modules/inherits/LICENSE b/deps/npm/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013d6710ee..00000000000000 --- a/deps/npm/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/deps/npm/node_modules/inherits/inherits.js b/deps/npm/node_modules/inherits/inherits.js deleted file mode 100644 index f71f2d93294a67..00000000000000 --- a/deps/npm/node_modules/inherits/inherits.js +++ /dev/null @@ -1,9 +0,0 @@ -try { - var util = require('util'); - /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - /* istanbul ignore next */ - module.exports = require('./inherits_browser.js'); -} diff --git a/deps/npm/node_modules/inherits/inherits_browser.js b/deps/npm/node_modules/inherits/inherits_browser.js deleted file mode 100644 index 86bbb3dc29e484..00000000000000 --- a/deps/npm/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,27 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } -} diff --git a/deps/npm/node_modules/inherits/package.json b/deps/npm/node_modules/inherits/package.json deleted file mode 100644 index 37b4366b83e63e..00000000000000 --- a/deps/npm/node_modules/inherits/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "inherits", - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "version": "2.0.4", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "main": "./inherits.js", - "browser": "./inherits_browser.js", - "repository": "git://github.com/isaacs/inherits", - "license": "ISC", - "scripts": { - "test": "tap" - }, - "devDependencies": { - "tap": "^14.2.4" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ] -} diff --git a/deps/npm/node_modules/is-core-module/core.json b/deps/npm/node_modules/is-core-module/core.json index af29f0b734b225..3cda693d7d0fd3 100644 --- a/deps/npm/node_modules/is-core-module/core.json +++ b/deps/npm/node_modules/is-core-module/core.json @@ -115,7 +115,7 @@ "sys": [">= 0.4 && < 0.7", ">= 0.8"], "node:sys": [">= 14.18 && < 15", ">= 16"], "test/reporters": ">= 19.9 && < 20.2", - "node:test/reporters": [">= 19.9", ">= 20"], + "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], "node:test": [">= 16.17 && < 17", ">= 18"], "timers": true, "node:timers": [">= 14.18 && < 15", ">= 16"], @@ -149,8 +149,8 @@ "node:v8": [">= 14.18 && < 15", ">= 16"], "vm": true, "node:vm": [">= 14.18 && < 15", ">= 16"], - "wasi": [">= 13.4 && < 13.5", ">= 20"], - "node:wasi": ">= 20", + "wasi": [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], + "node:wasi": [">= 18.17 && < 19", ">= 20"], "worker_threads": ">= 11.7", "node:worker_threads": [">= 14.18 && < 15", ">= 16"], "zlib": ">= 0.5", diff --git a/deps/npm/node_modules/is-core-module/package.json b/deps/npm/node_modules/is-core-module/package.json index 62bb065e8364a8..1269c80c5520d8 100644 --- a/deps/npm/node_modules/is-core-module/package.json +++ b/deps/npm/node_modules/is-core-module/package.json @@ -1,6 +1,6 @@ { "name": "is-core-module", - "version": "2.12.1", + "version": "2.13.0", "description": "Is this specifier a node.js core module?", "main": "index.js", "sideEffects": false, @@ -45,8 +45,8 @@ "has": "^1.0.3" }, "devDependencies": { - "@ljharb/eslint-config": "^21.0.1", - "aud": "^2.0.2", + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", "auto-changelog": "^2.4.0", "eslint": "=8.8.0", "in-publish": "^2.0.1", @@ -54,8 +54,8 @@ "npmignore": "^0.3.0", "nyc": "^10.3.2", "safe-publish-latest": "^2.0.0", - "semver": "^6.3.0", - "tape": "^5.6.3" + "semver": "^6.3.1", + "tape": "^5.6.6" }, "auto-changelog": { "output": "CHANGELOG.md", diff --git a/deps/npm/node_modules/libnpmdiff/package.json b/deps/npm/node_modules/libnpmdiff/package.json index f54a35ff5f868d..54a54ece0f026a 100644 --- a/deps/npm/node_modules/libnpmdiff/package.json +++ b/deps/npm/node_modules/libnpmdiff/package.json @@ -1,6 +1,6 @@ { "name": "libnpmdiff", - "version": "6.0.2", + "version": "6.0.3", "description": "The registry diff", "repository": { "type": "git", @@ -46,7 +46,7 @@ "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.2.0", + "@npmcli/arborist": "^7.2.1", "@npmcli/disparity-colors": "^3.0.0", "@npmcli/installed-package-contents": "^2.0.2", "binary-extensions": "^2.2.0", diff --git a/deps/npm/node_modules/libnpmexec/package.json b/deps/npm/node_modules/libnpmexec/package.json index 5ab1484e216aba..5e4ae52a2fdddf 100644 --- a/deps/npm/node_modules/libnpmexec/package.json +++ b/deps/npm/node_modules/libnpmexec/package.json @@ -1,6 +1,6 @@ { "name": "libnpmexec", - "version": "7.0.2", + "version": "7.0.3", "files": [ "bin/", "lib/" @@ -59,8 +59,8 @@ "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.2.0", - "@npmcli/run-script": "^7.0.1", + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", "ci-info": "^3.7.1", "npm-package-arg": "^11.0.1", "npmlog": "^7.0.1", diff --git a/deps/npm/node_modules/libnpmfund/package.json b/deps/npm/node_modules/libnpmfund/package.json index 034e39c60d277d..9bacac4cdaabf6 100644 --- a/deps/npm/node_modules/libnpmfund/package.json +++ b/deps/npm/node_modules/libnpmfund/package.json @@ -1,6 +1,6 @@ { "name": "libnpmfund", - "version": "5.0.0", + "version": "5.0.1", "main": "lib/index.js", "files": [ "bin/", @@ -45,7 +45,7 @@ "tap": "^16.3.8" }, "dependencies": { - "@npmcli/arborist": "^7.2.0" + "@npmcli/arborist": "^7.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" diff --git a/deps/npm/node_modules/libnpmpack/package.json b/deps/npm/node_modules/libnpmpack/package.json index d3ceea0882fc3b..fbaa3dc256bc54 100644 --- a/deps/npm/node_modules/libnpmpack/package.json +++ b/deps/npm/node_modules/libnpmpack/package.json @@ -1,6 +1,6 @@ { "name": "libnpmpack", - "version": "6.0.2", + "version": "6.0.3", "description": "Programmatic API for the bits behind npm pack", "author": "GitHub Inc.", "main": "lib/index.js", @@ -36,8 +36,8 @@ "bugs": "https://github.com/npm/libnpmpack/issues", "homepage": "https://npmjs.com/package/libnpmpack", "dependencies": { - "@npmcli/arborist": "^7.2.0", - "@npmcli/run-script": "^7.0.1", + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^7.0.2", "npm-package-arg": "^11.0.1", "pacote": "^17.0.4" }, diff --git a/deps/npm/node_modules/libnpmversion/package.json b/deps/npm/node_modules/libnpmversion/package.json index a440ee75cec7fc..5baac0c437e8b6 100644 --- a/deps/npm/node_modules/libnpmversion/package.json +++ b/deps/npm/node_modules/libnpmversion/package.json @@ -1,6 +1,6 @@ { "name": "libnpmversion", - "version": "5.0.0", + "version": "5.0.1", "main": "lib/index.js", "files": [ "bin/", @@ -38,7 +38,7 @@ }, "dependencies": { "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.1", + "@npmcli/run-script": "^7.0.2", "json-parse-even-better-errors": "^3.0.0", "proc-log": "^3.0.0", "semver": "^7.3.7" diff --git a/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md b/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index c6b213d7be3663..00000000000000 --- a/deps/npm/node_modules/node-gyp/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,52 +0,0 @@ - - -Please look thru your error log for the string `gyp info using node-gyp@` and if the version number is less than the [current release of node-gyp](https://github.com/nodejs/node-gyp/releases) then __please upgrade__ using the instructions at https://github.com/nodejs/node-gyp/blob/master/docs/Updating-npm-bundled-node-gyp.md and try your command again. - -Requests for help with [`node-sass` are very common](https://github.com/nodejs/node-gyp/issues?q=label%3A%22Node+Sass+--%3E+Dart+Sass%22). Please be aware that this package is deprecated, you should seek alternatives and avoid opening new issues about it here. - -* **Node Version**: -* **Platform**: -* **Compiler**: -* **Module**: - -
                              Verbose output (from npm or node-gyp): - -``` -Paste your log here, between the backticks. It can be: - - npm --verbose output, - - or contents of npm-debug.log, - - or output of node-gyp rebuild --verbose. -Include the command you were trying to run. - -This should look like this: - ->npm --verbose -npm info it worked if it ends with ok -npm verb cli [ -npm verb cli 'C:\\...\\node\\13.9.0\\x64\\node.exe', -npm verb cli 'C:\\...\\node\\13.9.0\\x64\\node_modules\\npm\\bin\\npm-cli.js', -npm verb cli '--verbose' -npm verb cli ] -npm info using npm@6.13.7 -npm info using node@v13.9.0 - -Usage: npm -(...) -``` - -
                              - - diff --git a/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md b/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index bcc4bb1a048c80..00000000000000 --- a/deps/npm/node_modules/node-gyp/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,17 +0,0 @@ - - -##### Checklist - - -- [ ] `npm install && npm test` passes -- [ ] tests are included -- [ ] documentation is changed or added -- [ ] commit message follows [commit guidelines](https://github.com/googleapis/release-please#how-should-i-write-my-commits) - -##### Description of change - - diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml b/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml deleted file mode 100644 index c3057c3a3159ae..00000000000000 --- a/deps/npm/node_modules/node-gyp/.github/workflows/release-please.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: release-please - -on: - push: - branches: - - main - -jobs: - release-please: - runs-on: ubuntu-latest - steps: - - uses: google-github-actions/release-please-action@v2 - id: release - with: - package-name: node-gyp - release-type: node - changelog-types: > - [{"type":"feat","section":"Features","hidden":false}, - {"type":"fix","section":"Bug Fixes","hidden":false}, - {"type":"bin","section":"Core","hidden":false}, - {"type":"gyp","section":"Core","hidden":false}, - {"type":"lib","section":"Core","hidden":false}, - {"type":"src","section":"Core","hidden":false}, - {"type":"test","section":"Tests","hidden":false}, - {"type":"build","section":"Core","hidden":false}, - {"type":"clean","section":"Core","hidden":false}, - {"type":"configure","section":"Core","hidden":false}, - {"type":"install","section":"Core","hidden":false}, - {"type":"list","section":"Core","hidden":false}, - {"type":"rebuild","section":"Core","hidden":false}, - {"type":"remove","section":"Core","hidden":false}, - {"type":"deps","section":"Core","hidden":false}, - {"type":"python","section":"Core","hidden":false}, - {"type":"lin","section":"Core","hidden":false}, - {"type":"linux","section":"Core","hidden":false}, - {"type":"mac","section":"Core","hidden":false}, - {"type":"macos","section":"Core","hidden":false}, - {"type":"win","section":"Core","hidden":false}, - {"type":"windows","section":"Core","hidden":false}, - {"type":"zos","section":"Core","hidden":false}, - {"type":"doc","section":"Doc","hidden":false}, - {"type":"docs","section":"Doc","hidden":false}, - {"type":"readme","section":"Doc","hidden":false}, - {"type":"chore","section":"Miscellaneous","hidden":false}, - {"type":"refactor","section":"Miscellaneous","hidden":false}, - {"type":"ci","section":"Miscellaneous","hidden":false}, - {"type":"meta","section":"Miscellaneous","hidden":false}] - - # Standard Conventional Commits: `feat` and `fix` - # node-gyp subdirectories: `bin`, `gyp`, `lib`, `src`, `test` - # node-gyp subcommands: `build`, `clean`, `configure`, `install`, `list`, `rebuild`, `remove` - # Core abstract category: `deps` - # Languages/platforms: `python`, `lin`, `linux`, `mac`, `macos`, `win`, `window`, `zos` - # Documentation: `doc`, `docs`, `readme` - # Standard Conventional Commits: `chore` (under "Miscellaneous") - # Miscellaneous abstract categories: `refactor`, `ci`, `meta` diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml b/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml deleted file mode 100644 index 517b2d95a48c6f..00000000000000 --- a/deps/npm/node_modules/node-gyp/.github/workflows/tests.yml +++ /dev/null @@ -1,55 +0,0 @@ -# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources -# TODO: Line 48, enable pytest --doctest-modules - -name: Tests -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] -jobs: - Lint_Python: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: pip install --user ruff - - run: ruff --format=github --select="E,F,PLC,PLE,UP,W,YTT" --ignore="PLC1901,S101,UP031" --target-version=py37 . - Tests: - strategy: - fail-fast: false - max-parallel: 15 - matrix: - node: [16.x, 18.x, 20.x] - python: ["3.8", "3.11"] - os: [macos-latest, ubuntu-latest, windows-latest] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - name: Use Python ${{ matrix.python }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - env: - PYTHON_VERSION: ${{ matrix.python }} # Why do this? - - name: Install Dependencies - run: | - npm install --no-progress - pip install pytest - - name: Set Windows environment - if: startsWith(matrix.os, 'windows') - run: | - echo 'GYP_MSVS_VERSION=2015' >> $Env:GITHUB_ENV - echo 'GYP_MSVS_OVERRIDE_PATH=C:\\Dummy' >> $Env:GITHUB_ENV - - name: Run Python tests - run: python -m pytest - # - name: Run doctests with pytest - # run: python -m pytest --doctest-modules - - name: Environment Information - run: npx envinfo - - name: Run Node tests - run: npm test diff --git a/deps/npm/node_modules/node-gyp/.github/workflows/visual-studio.yml b/deps/npm/node_modules/node-gyp/.github/workflows/visual-studio.yml deleted file mode 100644 index 12125e54479b87..00000000000000 --- a/deps/npm/node_modules/node-gyp/.github/workflows/visual-studio.yml +++ /dev/null @@ -1,33 +0,0 @@ -# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources - -name: visual-studio -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] -jobs: - visual-studio: - strategy: - fail-fast: false - max-parallel: 8 - matrix: - os: [windows-latest] - msvs-version: [2016, 2019, 2022] # https://github.com/actions/virtual-environments/tree/main/images/win - runs-on: ${{ matrix.os }} - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - name: Install Dependencies - run: | - npm install --no-progress - # npm audit fix --force - - name: Set Windows environment - if: startsWith(matrix.os, 'windows') - run: | - echo 'GYP_MSVS_VERSION=${{ matrix.msvs-version }}' >> $Env:GITHUB_ENV - echo 'GYP_MSVS_OVERRIDE_PATH=C:\\Dummy' >> $Env:GITHUB_ENV - - name: Environment Information - run: npx envinfo - - name: Run Node tests - run: npm test diff --git a/deps/npm/node_modules/node-gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/CHANGELOG.md index 9fb5f11847bb26..98315add5e0d46 100644 --- a/deps/npm/node_modules/node-gyp/CHANGELOG.md +++ b/deps/npm/node_modules/node-gyp/CHANGELOG.md @@ -1,5 +1,83 @@ # Changelog +### [10.0.1](https://www.github.com/nodejs/node-gyp/compare/v10.0.0...v10.0.1) (2023-11-02) + + +### Bug Fixes + +* use local `util` for `findAccessibleSync()` ([b39e681](https://www.github.com/nodejs/node-gyp/commit/b39e6819aa9e2c45107d6e60a4913ca036ebfbfd)) + + +### Miscellaneous + +* add parallel test logging ([7de1f5f](https://www.github.com/nodejs/node-gyp/commit/7de1f5f32d550d26d48fe4f76aed5866744edcba)) +* lint fixes ([4e0ed99](https://www.github.com/nodejs/node-gyp/commit/4e0ed992566f43abc6e988af091ad07fde04acbf)) +* use platform specific timeouts in tests ([a68586a](https://www.github.com/nodejs/node-gyp/commit/a68586a67d0af238300662cc062422b42820044d)) + +## [10.0.0](https://www.github.com/nodejs/node-gyp/compare/v9.4.0...v10.0.0) (2023-10-28) + + +### ⚠ BREAKING CHANGES + +* use .npmignore file to limit which files are published (#2921) +* the `Gyp` class exported is now created using ECMAScript classes and therefore might have small differences to classes that were previously created with `util.inherits`. +* All internal functions have been coverted to return promises and no longer accept callbacks. This is not a breaking change for users but may be breaking to consumers of `node-gyp` if you are requiring internal functions directly. +* `node-gyp` now supports node `^16.14.0 || >=18.0.0` +* update engines.node to ^14.17.0 || ^16.13.0 || >=18.0.0 + +### Features + +* convert all internal functions to async/await ([355622f](https://www.github.com/nodejs/node-gyp/commit/355622f4aac3bd3056b9e03aac5fa2f42a4b3576)) +* convert internal classes from util.inherits to classes ([d52997e](https://www.github.com/nodejs/node-gyp/commit/d52997e975b9da6e0cea3d9b99873e9ddc768679)) +* drop node 14 support ([#2929](https://www.github.com/nodejs/node-gyp/issues/2929)) ([1b3bd34](https://www.github.com/nodejs/node-gyp/commit/1b3bd341b40f384988d03207ce8187e93ba609bc)) +* drop rimraf dependency ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* **gyp:** update gyp to v0.16.1 ([#2923](https://www.github.com/nodejs/node-gyp/issues/2923)) ([707927c](https://www.github.com/nodejs/node-gyp/commit/707927cd579205ef2b4b17e61c1cce24c056b452)) +* replace npmlog with proc-log ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* update engines.node to ^14.17.0 || ^16.13.0 || >=18.0.0 ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* use .npmignore file to limit which files are published ([#2921](https://www.github.com/nodejs/node-gyp/issues/2921)) ([864a979](https://www.github.com/nodejs/node-gyp/commit/864a979930cf0ef5ad64bc887b901fa8955d058f)) + + +### Bug Fixes + +* create Python symlink only during builds, and clean it up after ([#2721](https://www.github.com/nodejs/node-gyp/issues/2721)) ([0f1f667](https://www.github.com/nodejs/node-gyp/commit/0f1f667b737d21905e283df100a2cb639993562a)) +* promisify build command ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* use fs/promises in favor of fs.promises ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) + + +### Tests + +* increase mocha timeout ([#2887](https://www.github.com/nodejs/node-gyp/issues/2887)) ([445c28f](https://www.github.com/nodejs/node-gyp/commit/445c28fabc5fbdf9c3bb3341fb70660a3530f6ad)) +* update expired certs ([#2908](https://www.github.com/nodejs/node-gyp/issues/2908)) ([5746691](https://www.github.com/nodejs/node-gyp/commit/5746691a36f7b37019d4b8d4e9616aec43d20410)) + + +### Doc + +* Add note about Python symlinks (PR 2362) to CHANGELOG.md for 9.1.0 ([#2783](https://www.github.com/nodejs/node-gyp/issues/2783)) ([b3d41ae](https://www.github.com/nodejs/node-gyp/commit/b3d41aeb737ddd54cc292f363abc561dcc0a614e)) +* README.md Do not hardcode the supported versions of Python ([#2880](https://www.github.com/nodejs/node-gyp/issues/2880)) ([bb93b94](https://www.github.com/nodejs/node-gyp/commit/bb93b946a9c74934b59164deb52128cf913c97d5)) +* update applicable GitHub links from master to main ([#2843](https://www.github.com/nodejs/node-gyp/issues/2843)) ([d644ce4](https://www.github.com/nodejs/node-gyp/commit/d644ce48311edf090d0e920ad449e5766c757933)) +* Update windows installation instructions in README.md ([#2882](https://www.github.com/nodejs/node-gyp/issues/2882)) ([c9caa2e](https://www.github.com/nodejs/node-gyp/commit/c9caa2ecf3c7deae68444ce8fabb32d2dca651cd)) + + +### Core + +* find python checks order changed on windows ([#2872](https://www.github.com/nodejs/node-gyp/issues/2872)) ([b030555](https://www.github.com/nodejs/node-gyp/commit/b030555cdb754d9c23906e7e707115cd077bbf76)) +* glob@10.3.10 ([#2926](https://www.github.com/nodejs/node-gyp/issues/2926)) ([4bef1ec](https://www.github.com/nodejs/node-gyp/commit/4bef1ecc7554097d92beb397fbe1a546c5227545)) +* glob@8.0.3 ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* make-fetch-happen@13.0.0 ([#2927](https://www.github.com/nodejs/node-gyp/issues/2927)) ([059bb6f](https://www.github.com/nodejs/node-gyp/commit/059bb6fd41bb50955a9efbd97887773d60d53221)) +* nopt@^7.0.0 ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* standard@17.0.0 and fix linting errors ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* which@3.0.0 ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* which@4.0.0 ([#2928](https://www.github.com/nodejs/node-gyp/issues/2928)) ([e388255](https://www.github.com/nodejs/node-gyp/commit/e38825531403aabeae7abe58e76867f31b832f36)) + + +### Miscellaneous + +* add check engines script to CI ([#2922](https://www.github.com/nodejs/node-gyp/issues/2922)) ([21a7249](https://www.github.com/nodejs/node-gyp/commit/21a7249b40d8f95e7721e450fd18764adb1648a7)) +* empty commit to add changelog entries from [#2770](https://www.github.com/nodejs/node-gyp/issues/2770) ([4a50fe3](https://www.github.com/nodejs/node-gyp/commit/4a50fe31574217c4b2a798fc72b19947a64ceea1)) +* GitHub Workflows security hardening ([#2740](https://www.github.com/nodejs/node-gyp/issues/2740)) ([26683e9](https://www.github.com/nodejs/node-gyp/commit/26683e993df038fb94d89f2276f3535e4522d79a)) +* misc testing fixes ([#2930](https://www.github.com/nodejs/node-gyp/issues/2930)) ([4e493d4](https://www.github.com/nodejs/node-gyp/commit/4e493d4fb262d12ac52c84979071ccc79e666a1a)) +* run tests after release please PR ([3032e10](https://www.github.com/nodejs/node-gyp/commit/3032e1061cc2b7b49f83c397d385bafddc6b0214)) + ## [9.4.0](https://www.github.com/nodejs/node-gyp/compare/v9.3.1...v9.4.0) (2023-06-12) @@ -98,6 +176,7 @@ ### Core * update due to rename of primary branch ([ca1f068](https://www.github.com/nodejs/node-gyp/commit/ca1f0681a5567ca8cd51acebccd37a633f19bc6a)) +* Add Python symlink to path (for non-Windows OSes only) ([#2362](https://github.com/nodejs/node-gyp/pull/2362)) ([b9ddcd5](https://github.com/nodejs/node-gyp/commit/b9ddcd5bbd93b05b03674836b6ebdae2c2e74c8c)) ### Tests diff --git a/deps/npm/node_modules/node-gyp/CONTRIBUTING.md b/deps/npm/node_modules/node-gyp/CONTRIBUTING.md index c1c50eab4e58b7..5b977898f104b3 100644 --- a/deps/npm/node_modules/node-gyp/CONTRIBUTING.md +++ b/deps/npm/node_modules/node-gyp/CONTRIBUTING.md @@ -3,7 +3,7 @@ ## Code of Conduct Please read the -[Code of Conduct](https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md) +[Code of Conduct](https://github.com/nodejs/admin/blob/main/CODE_OF_CONDUCT.md) which explains the minimum behavior expectations for node-gyp contributors. diff --git a/deps/npm/node_modules/node-gyp/README.md b/deps/npm/node_modules/node-gyp/README.md index 99494a38d09b38..f46ee06308db1e 100644 --- a/deps/npm/node_modules/node-gyp/README.md +++ b/deps/npm/node_modules/node-gyp/README.md @@ -1,12 +1,13 @@ # `node-gyp` - Node.js native addon build tool -[![Build Status](https://github.com/nodejs/node-gyp/workflows/Tests/badge.svg?branch=master)](https://github.com/nodejs/node-gyp/actions?query=workflow%3ATests+branch%3Amaster) +[![Build Status](https://github.com/nodejs/node-gyp/workflows/Tests/badge.svg?branch=main)](https://github.com/nodejs/node-gyp/actions?query=workflow%3ATests+branch%3Amain) ![npm](https://img.shields.io/npm/dm/node-gyp) `node-gyp` is a cross-platform command-line tool written in Node.js for compiling native addon modules for Node.js. It contains a vendored copy of the [gyp-next](https://github.com/nodejs/gyp-next) project that was previously used -by the Chromium team, extended to support the development of Node.js native addons. +by the Chromium team and extended to support the development of Node.js native +addons. Note that `node-gyp` is _not_ used to build Node.js itself. @@ -31,27 +32,26 @@ Depending on your operating system, you will need to install: ### On Unix - * Python v3.7, v3.8, v3.9, or v3.10 + * [A supported version of Python](https://devguide.python.org/versions/) * `make` * A proper C/C++ compiler toolchain, like [GCC](https://gcc.gnu.org) ### On macOS -**ATTENTION**: If your Mac has been _upgraded_ to macOS Catalina (10.15) or higher, please read [macOS_Catalina.md](macOS_Catalina.md). - - * Python v3.7, v3.8, v3.9, or v3.10 - * `XCode Command Line Tools` which will install `clang`, `clang++`, and `make`. - * Install the `XCode Command Line Tools` standalone by running `xcode-select --install`. -- OR -- + * [A supported version of Python](https://devguide.python.org/versions/) + * `Xcode Command Line Tools` which will install `clang`, `clang++`, and `make`. + * Install the `Xcode Command Line Tools` standalone by running `xcode-select --install`. -- OR -- * Alternatively, if you already have the [full Xcode installed](https://developer.apple.com/xcode/download/), you can install the Command Line Tools under the menu `Xcode -> Open Developer Tool -> More Developer Tools...`. ### On Windows -Install the current version of Python from the [Microsoft Store package](https://www.microsoft.com/en-us/p/python-310/9pjpw5ldxlz5). +Install the current [version of Python](https://devguide.python.org/versions/) from the +[Microsoft Store](https://apps.microsoft.com/store/search?publisher=Python+Software+Foundation). Install tools and configuration manually: * Install Visual C++ Build Environment: [Visual Studio Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools) - (using "Visual C++ build tools" workload) or [Visual Studio Community](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community) + (using "Visual C++ build tools" if using a version older than VS2019, otherwise use "Desktop development with C++" workload) or [Visual Studio Community](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community) (using the "Desktop development with C++" workload) If the above steps didn't work for you, please visit [Microsoft's Node.js Guidelines for Windows](https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#compiling-native-addon-modules) for additional tips. @@ -62,9 +62,9 @@ Install tools and configuration manually: ### Configuring Python Dependency -`node-gyp` requires that you have installed a compatible version of Python, one of: v3.7, v3.8, -v3.9, or v3.10. If you have multiple Python versions installed, you can identify which Python -version `node-gyp` should use in one of the following ways: +`node-gyp` requires that you have installed a [supported version of Python](https://devguide.python.org/versions/). +If you have multiple versions of Python installed, you can identify which version +`node-gyp` should use in one of the following ways: 1. by setting the `--python` command-line option, e.g.: @@ -73,24 +73,28 @@ node-gyp --python /path/to/executable/python ``` 2. If `node-gyp` is called by way of `npm`, *and* you have multiple versions of -Python installed, then you can set `npm`'s 'python' config key to the appropriate -value: - +Python installed, then you can set the `npm_config_python` environment variable +to the appropriate path: ``` bash -npm config set python /path/to/executable/python +export npm_config_python=/path/to/executable/python +``` +    Or on Windows: +```console +py --list-paths # To see the installed Python versions +set npm_config_python=C:\path\to\python.exe ``` 3. If the `PYTHON` environment variable is set to the path of a Python executable, -then that version will be used, if it is a compatible version. +then that version will be used if it is a supported version. 4. If the `NODE_GYP_FORCE_PYTHON` environment variable is set to the path of a Python executable, it will be used instead of any of the other configured or -builtin Python search paths. If it's not a compatible version, no further +built-in Python search paths. If it's not a compatible version, no further searching will be done. ### Build for Third Party Node.js Runtimes -When building modules for third party Node.js runtimes like Electron, which have +When building modules for third-party Node.js runtimes like Electron, which have different build configurations from the official Node.js distribution, you should use `--dist-url` or `--nodedir` flags to specify the headers of the runtime to build for. @@ -106,7 +110,7 @@ to work around configuration errors. ## How to Use -To compile your native addon, first go to its root directory: +To compile your native addon first go to its root directory: ``` bash cd my_node_addon @@ -168,7 +172,7 @@ The **[docs](./docs/)** directory contains additional documentation on specific Some additional resources for Node.js native addons and writing `gyp` configuration files: * ["Going Native" a nodeschool.io tutorial](http://nodeschool.io/#goingnative) - * ["Hello World" node addon example](https://github.com/nodejs/node/tree/master/test/addons/hello-world) + * ["Hello World" node addon example](https://github.com/nodejs/node/tree/main/test/addons/hello-world) * [gyp user documentation](https://gyp.gsrc.io/docs/UserDocumentation.md) * [gyp input format reference](https://gyp.gsrc.io/docs/InputFormatReference.md) * [*"binding.gyp" files out in the wild* wiki page](./docs/binding.gyp-files-in-the-wild.md) @@ -240,7 +244,7 @@ Or this on Windows: set npm_config_devdir=c:\temp\.gyp ``` -### `npm` configuration +### `npm` configuration for npm versions before v9 Use the form `OPTION_NAME` for any of the command options listed above. diff --git a/deps/npm/node_modules/node-gyp/bin/node-gyp.js b/deps/npm/node_modules/node-gyp/bin/node-gyp.js index 8652ea21eceebb..f8317b47b34147 100755 --- a/deps/npm/node_modules/node-gyp/bin/node-gyp.js +++ b/deps/npm/node_modules/node-gyp/bin/node-gyp.js @@ -6,7 +6,7 @@ process.title = 'node-gyp' const envPaths = require('env-paths') const gyp = require('../') -const log = require('npmlog') +const log = require('../lib/log') const os = require('os') /** @@ -14,11 +14,11 @@ const os = require('os') */ const prog = gyp() -var completed = false +let completed = false prog.parseArgv(process.argv) prog.devDir = prog.opts.devdir -var homeDir = os.homedir() +const homeDir = os.homedir() if (prog.devDir) { prog.devDir = prog.devDir.replace(/^~/, homeDir) } else if (homeDir) { @@ -32,9 +32,9 @@ if (prog.devDir) { if (prog.todo.length === 0) { if (~process.argv.indexOf('-v') || ~process.argv.indexOf('--version')) { - console.log('v%s', prog.version) + log.stdout('v%s', prog.version) } else { - console.log('%s', prog.usage()) + log.stdout('%s', prog.usage()) } process.exit(0) } @@ -48,11 +48,11 @@ log.info('using', 'node@%s | %s | %s', process.versions.node, process.platform, * Change dir if -C/--directory was passed. */ -var dir = prog.opts.directory +const dir = prog.opts.directory if (dir) { - var fs = require('fs') + const fs = require('fs') try { - var stat = fs.statSync(dir) + const stat = fs.statSync(dir) if (stat.isDirectory()) { log.info('chdir', dir) process.chdir(dir) @@ -68,8 +68,8 @@ if (dir) { } } -function run () { - var command = prog.todo.shift() +async function run () { + const command = prog.todo.shift() if (!command) { // done! completed = true @@ -77,30 +77,28 @@ function run () { return } - prog.commands[command.name](command.args, function (err) { - if (err) { - log.error(command.name + ' error') - log.error('stack', err.stack) - errorMessage() - log.error('not ok') - return process.exit(1) - } + try { + const args = await prog.commands[command.name](command.args) ?? [] + if (command.name === 'list') { - var versions = arguments[1] - if (versions.length > 0) { - versions.forEach(function (version) { - console.log(version) - }) + if (args.length) { + args.forEach((version) => log.stdout(version)) } else { - console.log('No node development files installed. Use `node-gyp install` to install a version.') + log.stdout('No node development files installed. Use `node-gyp install` to install a version.') } - } else if (arguments.length >= 2) { - console.log.apply(console, [].slice.call(arguments, 1)) + } else if (args.length >= 1) { + log.stdout(...args.slice(1)) } // now run the next command in the queue - process.nextTick(run) - }) + return run() + } catch (err) { + log.error(command.name + ' error') + log.error('stack', err.stack) + errorMessage() + log.error('not ok') + return process.exit(1) + } } process.on('exit', function (code) { @@ -120,7 +118,7 @@ process.on('uncaughtException', function (err) { function errorMessage () { // copied from npm's lib/utils/error-handler.js - var os = require('os') + const os = require('os') log.error('System', os.type() + ' ' + os.release()) log.error('command', process.argv .map(JSON.stringify).join(' ')) diff --git a/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md b/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md deleted file mode 100644 index c1e1158d70190b..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/Error-pre-versions-of-node-cannot-be-installed.md +++ /dev/null @@ -1,94 +0,0 @@ -When using `node-gyp` you might see an error like this when attempting to compile/install a node.js native addon: - -``` -$ npm install bcrypt -npm http GET https://registry.npmjs.org/bcrypt/0.7.5 -npm http 304 https://registry.npmjs.org/bcrypt/0.7.5 -npm http GET https://registry.npmjs.org/bindings/1.0.0 -npm http 304 https://registry.npmjs.org/bindings/1.0.0 - -> bcrypt@0.7.5 install /home/ubuntu/public/song-swap/node_modules/bcrypt -> node-gyp rebuild - -gyp ERR! configure error -gyp ERR! stack Error: "pre" versions of node cannot be installed, use the --nodedir flag instead -gyp ERR! stack at install (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:69:16) -gyp ERR! stack at Object.self.commands.(anonymous function) [as install] (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js:56:37) -gyp ERR! stack at getNodeDir (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:219:20) -gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:105:9 -gyp ERR! stack at ChildProcess.exithandler (child_process.js:630:7) -gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:99:17) -gyp ERR! stack at maybeClose (child_process.js:730:16) -gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:5) -gyp ERR! System Linux 3.5.0-21-generic -gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" -gyp ERR! cwd /home/ubuntu/public/song-swap/node_modules/bcrypt -gyp ERR! node -v v0.11.2-pre -gyp ERR! node-gyp -v v0.9.5 -gyp ERR! not ok -npm ERR! bcrypt@0.7.5 install: `node-gyp rebuild` -npm ERR! `sh "-c" "node-gyp rebuild"` failed with 1 -npm ERR! -npm ERR! Failed at the bcrypt@0.7.5 install script. -npm ERR! This is most likely a problem with the bcrypt package, -npm ERR! not with npm itself. -npm ERR! Tell the author that this fails on your system: -npm ERR! node-gyp rebuild -npm ERR! You can get their info via: -npm ERR! npm owner ls bcrypt -npm ERR! There is likely additional logging output above. - -npm ERR! System Linux 3.5.0-21-generic -npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "bcrypt" -npm ERR! cwd /home/ubuntu/public/song-swap -npm ERR! node -v v0.11.2-pre -npm ERR! npm -v 1.2.18 -npm ERR! code ELIFECYCLE -npm ERR! -npm ERR! Additional logging details can be found in: -npm ERR! /home/ubuntu/public/song-swap/npm-debug.log -npm ERR! not ok code 0 -``` - -The main error here is: - -``` -Error: "pre" versions of node cannot be installed, use the --nodedir flag instead -``` - -This error is caused when you attempt to compile a native addon using a version of node.js with `-pre` at the end of the version number: - -``` bash -$ node -v -v0.10.4-pre -``` - -## How to avoid (the short answer) - -To avoid this error completely just use a stable release of node.js. i.e. `v0.10.4`, and __not__ `v0.10.4-pre`. - -## How to fix (the long answer) - -This error happens because `node-gyp` does not know what header files were used to compile your "pre" version of node, and therefore it needs you to specify the node source code directory path using the `--nodedir` flag. - -For example, if I compiled my development ("pre") version of node.js using the source code in `/Users/nrajlich/node`, then I could invoke `node-gyp` like: - -``` bash -$ node-gyp rebuild --nodedir=/Users/nrajlich/node -``` - -Or install an native addon through `npm` like: - -``` bash -$ npm install bcrypt --nodedir=/Users/nrajlich/node -``` - -### Always use `--nodedir` - -__Note:__ This is for advanced users who use `-pre` versions of node more often than tagged releases. - -If you're invoking `node-gyp` through `npm`, then you can leverage `npm`'s configuration system and not have to specify the `--nodedir` flag all the time: - -``` bash -$ npm config set nodedir /Users/nrajlich/node -``` \ No newline at end of file diff --git a/deps/npm/node_modules/node-gyp/docs/Force-npm-to-use-global-node-gyp.md b/deps/npm/node_modules/node-gyp/docs/Force-npm-to-use-global-node-gyp.md deleted file mode 100644 index c6304e490a75d9..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/Force-npm-to-use-global-node-gyp.md +++ /dev/null @@ -1,47 +0,0 @@ -# Force npm to use global installed node-gyp - -**Note: These instructions only work with npm 6 or older. For a solution that works with npm 8 (or older), see [Updating-npm-bundled-node-gyp.md](Updating-npm-bundled-node-gyp.md).** - -[Many issues](https://github.com/nodejs/node-gyp/labels/ERR%21%20node-gyp%20-v%20%3C%3D%20v5.1.0) are opened by users who are -not running a [current version of node-gyp](https://github.com/nodejs/node-gyp/releases). - -npm bundles its own, internal, copy of node-gyp located at `npm/node_modules`, within npm's private dependencies which are separate from *globally* accessible packages. Therefore this internal copy of node-gyp is independent from any globally installed copy of node-gyp that -may have been installed via `npm install -g node-gyp`. - -So npm's internal copy of node-gyp **isn't** stored inside *global* `node_modules` and thus isn't available for use as a standalone package. npm uses it's *internal* copy of `node-gyp` to automatically build native addons. - -When you install a _new_ version of node-gyp outside of npm, it'll go into your *global* `node_modules`, but not under the `npm/node_modules` (where internal copy of node-gyp is stored). So it will get into your `$PATH` and you will be able to use this globally installed version (**but not internal node-gyp of npm**) as any other globally installed package. - -The catch is that npm **won't** use global version unless you tell it to, it'll keep on using the **internal one**. You need to instruct it to by setting the `node_gyp` config variable (which goes into your `~/.npmrc`). You do this by running the `npm config set` command as below. Then npm will use the command in the path you supply whenever it needs to build a native addon. - -**Important**: You also need to remember to unset this when you upgrade npm with a newer version of node-gyp, or you have to manually keep your globally installed node-gyp to date. See "Undo" below. - -## Linux and macOS -``` -npm install --global node-gyp@latest -npm config set node_gyp $(npm prefix -g)/lib/node_modules/node-gyp/bin/node-gyp.js -``` - -`sudo` may be required for the first command if you get a permission error. - -## Windows - -### Windows Command Prompt -``` -npm install --global node-gyp@latest -for /f "delims=" %P in ('npm prefix -g') do npm config set node_gyp "%P\node_modules\node-gyp\bin\node-gyp.js" -``` - -### Powershell -``` -npm install --global node-gyp@latest -npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"} -``` - -## Undo -**Beware** if you don't unset the `node_gyp` config option, npm will continue to use the globally installed version of node-gyp rather than the one it ships with, which may end up being newer. - -``` -npm config delete node_gyp -npm uninstall --global node-gyp -``` diff --git a/deps/npm/node_modules/node-gyp/docs/Home.md b/deps/npm/node_modules/node-gyp/docs/Home.md deleted file mode 100644 index fe099868b28225..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/Home.md +++ /dev/null @@ -1,7 +0,0 @@ -Welcome to the node-gyp wiki! - - * [["binding.gyp" files out in the wild]] - * [[Linking to OpenSSL]] - * [[Common Issues]] - * [[Updating npm's bundled node-gyp]] - * [[Error: "pre" versions of node cannot be installed]] diff --git a/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md b/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md deleted file mode 100644 index 1c17ab8e313667..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/Linking-to-OpenSSL.md +++ /dev/null @@ -1,86 +0,0 @@ -A handful of native addons require linking to OpenSSL in one way or another. This introduces a small challenge since node will sometimes bundle OpenSSL statically (the default for node >= v0.8.x), or sometimes dynamically link to the system OpenSSL (default for node <= v0.6.x). - -Good native addons should account for both scenarios. It's recommended that you use the `binding.gyp` file provided below as a starting-point for any addon that needs to use OpenSSL: - -``` python -{ - 'variables': { - # node v0.6.x doesn't give us its build variables, - # but on Unix it was only possible to use the system OpenSSL library, - # so default the variable to "true", v0.8.x node and up will overwrite it. - 'node_shared_openssl%': 'true' - }, - 'targets': [ - { - 'target_name': 'binding', - 'sources': [ - 'src/binding.cc' - ], - 'conditions': [ - ['node_shared_openssl=="false"', { - # so when "node_shared_openssl" is "false", then OpenSSL has been - # bundled into the node executable. So we need to include the same - # header files that were used when building node. - 'include_dirs': [ - '<(node_root_dir)/deps/openssl/openssl/include' - ], - "conditions" : [ - ["target_arch=='ia32'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/piii" ] - }], - ["target_arch=='x64'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/k8" ] - }], - ["target_arch=='arm'", { - "include_dirs": [ "<(node_root_dir)/deps/openssl/config/arm" ] - }] - ] - }] - ] - } - ] -} -``` - -This ensures that when OpenSSL is statically linked into `node` then, the bundled OpenSSL headers are included, but when the system OpenSSL is in use, then only those headers will be used. - -## Windows? - -As you can see this baseline `binding.gyp` file only accounts for the Unix scenario. Currently on Windows the situation is a little less ideal. On Windows, OpenSSL is _always_ statically compiled into the `node` executable, so ideally it would be possible to use that copy of OpenSSL when building native addons. - -Unfortunately it doesn't seem like that is possible at the moment, as there would need to be tweaks made to the generated `node.lib` file to include the openssl glue functions, or a new `openssl.lib` file would need to be created during the node build. I'm not sure which is the easiest/most feasible. - -In the meantime, one possible solution is using another copy of OpenSSL, which is what [`node-bcrypt`](https://github.com/ncb000gt/node.bcrypt.js) currently does. Adding something like this to your `binding.gyp` file's `"conditions"` block would enable this: - -``` python - [ 'OS=="win"', { - 'conditions': [ - # "openssl_root" is the directory on Windows of the OpenSSL files. - # Check the "target_arch" variable to set good default values for - # both 64-bit and 32-bit builds of the module. - ['target_arch=="x64"', { - 'variables': { - 'openssl_root%': 'C:/OpenSSL-Win64' - }, - }, { - 'variables': { - 'openssl_root%': 'C:/OpenSSL-Win32' - }, - }], - ], - 'libraries': [ - '-l<(openssl_root)/lib/libeay32.lib', - ], - 'include_dirs': [ - '<(openssl_root)/include', - ], - }] -``` - -Now you can direct your users to install OpenSSL on Windows from here (be sure to tell them to install the 64-bit version if they're compiling against a 64-bit version of node): http://slproweb.com/products/Win32OpenSSL.html - -Also note that both `node-gyp` and `npm` allow you to overwrite that default `openssl_root` variable on the command line: - -``` bash -$ node-gyp rebuild --openssl-root="C:\Users\Nathan\Desktop\openssl" -``` \ No newline at end of file diff --git a/deps/npm/node_modules/node-gyp/docs/README.md b/deps/npm/node_modules/node-gyp/docs/README.md deleted file mode 100644 index 487fb0a57edbfa..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/README.md +++ /dev/null @@ -1,19 +0,0 @@ -## Versions of `node-gyp` that are earlier than v9.x.x - -Please look thru your error log for the string `gyp info using node-gyp@` and if that version number is less than the [current release of node-gyp](https://github.com/nodejs/node-gyp/releases) then __please upgrade__ using [these instructions](https://github.com/nodejs/node-gyp/blob/master/docs/Updating-npm-bundled-node-gyp.md) and then try your command again. - -## `node-sass` is deprecated - -Please be aware that the package [`node-sass` is deprecated](https://github.com/sass/node-sass#node-sass) so you should actively seek alternatives. You can try: -``` -npm uninstall node-sass -npm install sass --save -# or ... -npm install --global node-sass@latest -``` -`node-sass` projects _may_ work by downgrading to Node.js v14 but [that release is end-of-life](https://github.com/nodejs/release#release-schedule). -But in any case, please avoid opening new `node-sass` issues on this repo because we [cannot help much](https://github.com/nodejs/node-gyp/issues?q=is%3Aissue+label%3A%22Node+Sass+--%3E+Dart+Sass%22+). - -## Issues finding the installed Visual Studio - -In cmd, [`npm config set msvs_version 20xx`](https://github.com/nodejs/node-gyp#on-windows) with ___xx___ matching your locally installed version of Visual Studio. diff --git a/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md b/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md deleted file mode 100644 index 5759add3fee572..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/Updating-npm-bundled-node-gyp.md +++ /dev/null @@ -1,72 +0,0 @@ -# Updating the npm-bundled version of node-gyp - -**Note: These instructions are (only) tested and known to work with npm 8 and older.** - -**Note: These instructions will be undone if you reinstall or upgrade npm or node! For a more permanent (and simpler) solution, see [Force-npm-to-use-global-node-gyp.md](Force-npm-to-use-global-node-gyp.md). (npm 6 or older only!)** - -[Many issues](https://github.com/nodejs/node-gyp/issues?q=label%3A"ERR!+node-gyp+-v+<%3D+v9.x.x") are opened by users who are -not running a [current version of node-gyp](https://github.com/nodejs/node-gyp/releases). - -`npm` bundles its own, internal, copy of `node-gyp`. This internal copy is independent of any globally installed copy of node-gyp that -may have been installed via `npm install -g node-gyp`. - -This means that while `node-gyp` doesn't get installed into your `$PATH` by default, npm still keeps its own copy to invoke when you -attempt to `npm install` a native add-on. - -Sometimes, you may need to update npm's internal node-gyp to a newer version than what is installed. A simple `npm install -g node-gyp` -_won't_ do the trick since npm will still continue to use its internal copy over the global one. - -So instead: - -## Version of npm - -We need to start by knowing your version of `npm`: -```bash -npm --version -``` - -## Linux, macOS, Solaris, etc. - -Unix is easy. Just run the following command. - -If your npm is version ___7 or 8___, do: -```bash -$ npm explore npm/node_modules/@npmcli/run-script -g -- npm_config_global=false npm install node-gyp@latest -``` - -Else if your npm is version ___less than 7___, do: -```bash -$ npm explore npm/node_modules/npm-lifecycle -g -- npm install node-gyp@latest -``` - -If the command fails with a permissions error, please try `sudo` and then the command. - -## Windows - -Windows is a bit trickier, since `npm` might be installed to the "Program Files" directory, which needs admin privileges in order to -modify on current Windows. Therefore, run the following commands __inside a `cmd.exe` started with "Run as Administrator"__: - -First we need to find the location of `node`. If you don't already know the location that `node.exe` got installed to, then run: -```bash -$ where node -``` - -Now `cd` to the directory that `node.exe` is contained in e.g.: -```bash -$ cd "C:\Program Files\nodejs" -``` - -If your npm version is ___7 or 8___, do: -```bash -cd node_modules\npm\node_modules\@npmcli\run-script -``` - -Else if your npm version is ___less than 7___, do: -```bash -cd node_modules\npm\node_modules\npm-lifecycle -``` - -Finish by running: -```bash -$ npm install node-gyp@latest -``` diff --git a/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md b/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md deleted file mode 100644 index 78afb32544776f..00000000000000 --- a/deps/npm/node_modules/node-gyp/docs/binding.gyp-files-in-the-wild.md +++ /dev/null @@ -1,49 +0,0 @@ -This page contains links to some examples of existing `binding.gyp` files that other node modules are using. Take a look at them for inspiration. - -To add to this page, just add the link to the project's `binding.gyp` file below: - - * [ons](https://github.com/XadillaX/aliyun-ons/blob/master/binding.gyp) - * [thmclrx](https://github.com/XadillaX/thmclrx/blob/master/binding.gyp) - * [libxmljs](https://github.com/polotek/libxmljs/blob/master/binding.gyp) - * [node-buffertools](https://github.com/bnoordhuis/node-buffertools/blob/master/binding.gyp) - * [node-canvas](https://github.com/LearnBoost/node-canvas/blob/master/binding.gyp) - * [node-ffi](https://github.com/rbranson/node-ffi/blob/master/binding.gyp) + [libffi](https://github.com/rbranson/node-ffi/blob/master/deps/libffi/libffi.gyp) - * [node-time](https://github.com/TooTallNate/node-time/blob/master/binding.gyp) - * [node-sass](https://github.com/sass/node-sass/blob/master/binding.gyp) + [libsass](https://github.com/sass/node-sass/blob/master/src/libsass.gyp) - * [node-serialport](https://github.com/voodootikigod/node-serialport/blob/master/binding.gyp) - * [node-weak](https://github.com/TooTallNate/node-weak/blob/master/binding.gyp) - * [pty.js](https://github.com/chjj/pty.js/blob/master/binding.gyp) - * [ref](https://github.com/TooTallNate/ref/blob/master/binding.gyp) - * [appjs](https://github.com/milani/appjs/blob/master/binding.gyp) - * [nwm](https://github.com/mixu/nwm/blob/master/binding.gyp) - * [bcrypt](https://github.com/ncb000gt/node.bcrypt.js/blob/master/binding.gyp) - * [nk-mysql](https://github.com/mmod/nodamysql/blob/master/binding.gyp) - * [nk-xrm-installer](https://github.com/mmod/nk-xrm-installer/blob/master/binding.gyp) + [includable.gypi](https://github.com/mmod/nk-xrm-installer/blob/master/includable.gypi) + [unpack.py](https://github.com/mmod/nk-xrm-installer/blob/master/unpack.py) + [disburse.py](https://github.com/mmod/nk-xrm-installer/blob/master/disburse.py) - .py files above provide complete reference for examples of fetching source via http, extracting, and moving files. - * [node-memwatch](https://github.com/lloyd/node-memwatch/blob/master/binding.gyp) - * [node-ip2location](https://github.com/bolgovr/node-ip2location/blob/master/binding.gyp) - * [node-midi](https://github.com/justinlatimer/node-midi/blob/master/binding.gyp) - * [node-sqlite3](https://github.com/developmentseed/node-sqlite3/blob/master/binding.gyp) + [libsqlite3](https://github.com/developmentseed/node-sqlite3/blob/master/deps/sqlite3.gyp) - * [node-zipfile](https://github.com/mapbox/node-zipfile/blob/master/binding.gyp) - * [node-mapnik](https://github.com/mapnik/node-mapnik/blob/master/binding.gyp) - * [node-inotify](https://github.com/c4milo/node-inotify/blob/master/binding.gyp) - * [v8-profiler](https://github.com/c4milo/v8-profiler/blob/master/binding.gyp) - * [airtunes](https://github.com/radioline/node_airtunes/blob/master/binding.gyp) - * [node-fann](https://github.com/c4milo/node-fann/blob/master/binding.gyp) - * [node-talib](https://github.com/oransel/node-talib/blob/master/binding.gyp) - * [node-leveldown](https://github.com/rvagg/node-leveldown/blob/master/binding.gyp) + [leveldb.gyp](https://github.com/rvagg/node-leveldown/blob/master/deps/leveldb/leveldb.gyp) + [snappy.gyp](https://github.com/rvagg/node-leveldown/blob/master/deps/snappy/snappy.gyp) - * [node-expat](https://github.com/astro/node-expat/blob/master/binding.gyp) + [libexpat](https://github.com/astro/node-expat/blob/master/deps/libexpat/libexpat.gyp) - * [node-openvg-canvas](https://github.com/luismreis/node-openvg-canvas/blob/master/binding.gyp) + [node-openvg](https://github.com/luismreis/node-openvg/blob/master/binding.gyp) - * [node-cryptopp](https://github.com/BatikhSouri/node-cryptopp/blob/master/binding.gyp) - * [topcube](https://github.com/creationix/topcube/blob/master/binding.gyp) - * [node-osmium](https://github.com/osmcode/node-osmium/blob/master/binding.gyp) - * [node-osrm](https://github.com/DennisOSRM/node-osrm) - * [node-oracle](https://github.com/joeferner/node-oracle/blob/master/binding.gyp) - * [node-process-list](https://github.com/ReklatsMasters/node-process-list/blob/master/binding.gyp) - * [node-nanomsg](https://github.com/nickdesaulniers/node-nanomsg/blob/master/binding.gyp) - * [Ghostscript4JS](https://github.com/NickNaso/ghostscript4js/blob/master/binding.gyp) - * [nodecv](https://github.com/xudafeng/nodecv/blob/master/binding.gyp) - * [magick-cli](https://github.com/NickNaso/magick-cli/blob/master/binding.gyp) - * [sharp](https://github.com/lovell/sharp/blob/master/binding.gyp) - * [krb5](https://github.com/adaltas/node-krb5/blob/master/binding.gyp) - * [node-heapdump](https://github.com/bnoordhuis/node-heapdump/blob/master/binding.gyp) diff --git a/deps/npm/node_modules/node-gyp/gyp/.flake8 b/deps/npm/node_modules/node-gyp/gyp/.flake8 deleted file mode 100644 index ea0c7680ef87b2..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/.flake8 +++ /dev/null @@ -1,4 +0,0 @@ -[flake8] -max-complexity = 101 -max-line-length = 88 -extend-ignore = E203 # whitespace before ':' to agree with psf/black diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml deleted file mode 100644 index aad135027ce8fc..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/Python_tests.yml +++ /dev/null @@ -1,36 +0,0 @@ -# TODO: Enable os: windows-latest -# TODO: Enable pytest --doctest-modules - -name: Python_tests -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - workflow_dispatch: -jobs: - Python_tests: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - max-parallel: 8 - matrix: - os: [macos-latest, ubuntu-latest] # , windows-latest] - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11-dev"] - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip setuptools - pip install --editable ".[dev]" - - run: ./gyp -V && ./gyp --version && gyp -V && gyp --version - - name: Lint with flake8 - run: flake8 . --ignore=E203,W503 --max-complexity=101 --max-line-length=88 --show-source --statistics - - name: Test with pytest - run: pytest - # - name: Run doctests with pytest - # run: pytest --doctest-modules diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml deleted file mode 100644 index 7cc1f9e0754365..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/node-gyp.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: node-gyp integration -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - workflow_dispatch: -jobs: - integration: - strategy: - fail-fast: false - matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - python: ["3.7", "3.10"] - - runs-on: ${{ matrix.os }} - steps: - - name: Clone gyp-next - uses: actions/checkout@v3 - with: - path: gyp-next - - name: Clone nodejs/node-gyp - uses: actions/checkout@v3 - with: - repository: nodejs/node-gyp - path: node-gyp - - uses: actions/setup-node@v3 - with: - node-version: 14.x - - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - - name: Install dependencies - run: | - cd node-gyp - npm install --no-progress - - name: Replace gyp in node-gyp - shell: bash - run: | - rm -rf node-gyp/gyp - cp -r gyp-next node-gyp/gyp - - name: Run tests - run: | - cd node-gyp - npm test diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml deleted file mode 100644 index 4e6c9548ff5c59..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/nodejs-windows.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Node.js Windows integration - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - workflow_dispatch: - -jobs: - build-windows: - runs-on: windows-2019 - steps: - - name: Clone gyp-next - uses: actions/checkout@v3 - with: - path: gyp-next - - name: Clone nodejs/node - uses: actions/checkout@v3 - with: - repository: nodejs/node - path: node - - name: Install deps - run: choco install nasm - - name: Replace gyp in Node.js - run: | - rm -Recurse node/tools/gyp - cp -Recurse gyp-next node/tools/gyp - - name: Build Node.js - run: | - cd node - ./vcbuild.bat diff --git a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml b/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml deleted file mode 100644 index 665c4c48fed210..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/.github/workflows/release-please.yml +++ /dev/null @@ -1,16 +0,0 @@ -on: - push: - branches: - - main - -name: release-please -jobs: - release-please: - runs-on: ubuntu-latest - steps: - - uses: google-github-actions/release-please-action@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - release-type: python - package-name: gyp-next - bump-minor-pre-major: true diff --git a/deps/npm/node_modules/node-gyp/gyp/AUTHORS b/deps/npm/node_modules/node-gyp/gyp/AUTHORS deleted file mode 100644 index f49a357b9ed104..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/AUTHORS +++ /dev/null @@ -1,16 +0,0 @@ -# Names should be added to this file like so: -# Name or Organization - -Google Inc. <*@google.com> -Bloomberg Finance L.P. <*@bloomberg.net> -IBM Inc. <*@*.ibm.com> -Yandex LLC <*@yandex-team.ru> - -Steven Knight -Ryan Norton -David J. Sankel -Eric N. Vander Weele -Tom Freudenberg -Julien Brianceau -Refael Ackermann -Ujjwal Sharma diff --git a/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md b/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md deleted file mode 100644 index 4b4968f6a4ca8e..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/CHANGELOG.md +++ /dev/null @@ -1,233 +0,0 @@ -# Changelog - -## [0.14.0](https://github.com/nodejs/gyp-next/compare/v0.13.0...v0.14.0) (2022-10-08) - - -### Features - -* Add command line argument for `gyp --version` ([#164](https://github.com/nodejs/gyp-next/issues/164)) ([5c9f4d0](https://github.com/nodejs/gyp-next/commit/5c9f4d05678dd855e18ed2327219e5d18e5374db)) -* ninja build for iOS ([#174](https://github.com/nodejs/gyp-next/issues/174)) ([b6f2714](https://github.com/nodejs/gyp-next/commit/b6f271424e0033d7ed54d437706695af2ba7a1bf)) -* **zos:** support IBM Open XL C/C++ & PL/I compilers on z/OS ([#178](https://github.com/nodejs/gyp-next/issues/178)) ([43a7211](https://github.com/nodejs/gyp-next/commit/43a72110ae3fafb13c9625cc7a969624b27cda47)) - - -### Bug Fixes - -* lock windows env ([#163](https://github.com/nodejs/gyp-next/issues/163)) ([44bd0dd](https://github.com/nodejs/gyp-next/commit/44bd0ddc93ea0b5770a44dd326a2e4ae62c21442)) -* move configuration information into pyproject.toml ([#176](https://github.com/nodejs/gyp-next/issues/176)) ([d69d8ec](https://github.com/nodejs/gyp-next/commit/d69d8ece6dbff7af4f2ea073c9fd170baf8cb7f7)) -* node.js debugger adds stderr (but exit code is 0) -> shouldn't throw ([#179](https://github.com/nodejs/gyp-next/issues/179)) ([1a457d9](https://github.com/nodejs/gyp-next/commit/1a457d9ed08cfd30c9fa551bc5cf0d90fb583787)) - -## [0.13.0](https://www.github.com/nodejs/gyp-next/compare/v0.12.1...v0.13.0) (2022-05-11) - - -### Features - -* add PRODUCT_DIR_ABS variable ([#151](https://www.github.com/nodejs/gyp-next/issues/151)) ([80d2626](https://www.github.com/nodejs/gyp-next/commit/80d26263581db829b61b312a7bdb5cc791df7824)) - - -### Bug Fixes - -* execvp: printf: Argument list too long ([#147](https://www.github.com/nodejs/gyp-next/issues/147)) ([c4e14f3](https://www.github.com/nodejs/gyp-next/commit/c4e14f301673fadbac3ab7882d0b5f4d02530cb9)) - -### [0.12.1](https://www.github.com/nodejs/gyp-next/compare/v0.12.0...v0.12.1) (2022-04-06) - - -### Bug Fixes - -* **msvs:** avoid fixing path for arguments with "=" ([#143](https://www.github.com/nodejs/gyp-next/issues/143)) ([7e8f16e](https://www.github.com/nodejs/gyp-next/commit/7e8f16eb165e042e64bec98fa6c2a0232a42c26b)) - -## [0.12.0](https://www.github.com/nodejs/gyp-next/compare/v0.11.0...v0.12.0) (2022-04-04) - - -### Features - -* support building shared libraries on z/OS ([#137](https://www.github.com/nodejs/gyp-next/issues/137)) ([293bcfa](https://www.github.com/nodejs/gyp-next/commit/293bcfa4c25c6adb743377adafc45a80fee492c6)) - -## [0.11.0](https://www.github.com/nodejs/gyp-next/compare/v0.10.1...v0.11.0) (2022-03-04) - - -### Features - -* Add proper support for IBM i ([#140](https://www.github.com/nodejs/gyp-next/issues/140)) ([fdda4a3](https://www.github.com/nodejs/gyp-next/commit/fdda4a3038b8a7042ad960ce7a223687c24a21b1)) - -### [0.10.1](https://www.github.com/nodejs/gyp-next/compare/v0.10.0...v0.10.1) (2021-11-24) - - -### Bug Fixes - -* **make:** only generate makefile for multiple toolsets if requested ([#133](https://www.github.com/nodejs/gyp-next/issues/133)) ([f463a77](https://www.github.com/nodejs/gyp-next/commit/f463a77705973289ea38fec1b244c922ac438e26)) - -## [0.10.0](https://www.github.com/nodejs/gyp-next/compare/v0.9.6...v0.10.0) (2021-08-26) - - -### Features - -* **msvs:** add support for Visual Studio 2022 ([#124](https://www.github.com/nodejs/gyp-next/issues/124)) ([4bd9215](https://www.github.com/nodejs/gyp-next/commit/4bd9215c44d300f06e916aec1d6327c22b78272d)) - -### [0.9.6](https://www.github.com/nodejs/gyp-next/compare/v0.9.5...v0.9.6) (2021-08-23) - - -### Bug Fixes - -* align flake8 test ([#122](https://www.github.com/nodejs/gyp-next/issues/122)) ([f1faa8d](https://www.github.com/nodejs/gyp-next/commit/f1faa8d3081e1a47e917ff910892f00dff16cf8a)) -* **msvs:** fix paths again in action command arguments ([#121](https://www.github.com/nodejs/gyp-next/issues/121)) ([7159dfb](https://www.github.com/nodejs/gyp-next/commit/7159dfbc5758c9ec717e215f2c36daf482c846a1)) - -### [0.9.5](https://www.github.com/nodejs/gyp-next/compare/v0.9.4...v0.9.5) (2021-08-18) - - -### Bug Fixes - -* add python 3.6 to node-gyp integration test ([3462d4c](https://www.github.com/nodejs/gyp-next/commit/3462d4ce3c31cce747513dc7ca9760c81d57c60e)) -* revert for windows compatibility ([d078e7d](https://www.github.com/nodejs/gyp-next/commit/d078e7d7ae080ddae243188f6415f940376a7368)) -* support msvs_quote_cmd in ninja generator ([#117](https://www.github.com/nodejs/gyp-next/issues/117)) ([46486ac](https://www.github.com/nodejs/gyp-next/commit/46486ac6e9329529d51061e006a5b39631e46729)) - -### [0.9.4](https://www.github.com/nodejs/gyp-next/compare/v0.9.3...v0.9.4) (2021-08-09) - - -### Bug Fixes - -* .S is an extension for asm file on Windows ([#115](https://www.github.com/nodejs/gyp-next/issues/115)) ([d2fad44](https://www.github.com/nodejs/gyp-next/commit/d2fad44ef3a79ca8900f1307060153ded57053fc)) - -### [0.9.3](https://www.github.com/nodejs/gyp-next/compare/v0.9.2...v0.9.3) (2021-07-07) - - -### Bug Fixes - -* build failure with ninja and Python 3 on Windows ([#113](https://www.github.com/nodejs/gyp-next/issues/113)) ([c172d10](https://www.github.com/nodejs/gyp-next/commit/c172d105deff5db4244e583942215918fa80dd3c)) - -### [0.9.2](https://www.github.com/nodejs/gyp-next/compare/v0.9.1...v0.9.2) (2021-05-21) - - -### Bug Fixes - -* add support of utf8 encoding ([#105](https://www.github.com/nodejs/gyp-next/issues/105)) ([4d0f93c](https://www.github.com/nodejs/gyp-next/commit/4d0f93c249286d1f0c0f665f5fe7346119f98cf1)) - -### [0.9.1](https://www.github.com/nodejs/gyp-next/compare/v0.9.0...v0.9.1) (2021-05-14) - - -### Bug Fixes - -* py lint ([3b6a8ee](https://www.github.com/nodejs/gyp-next/commit/3b6a8ee7a66193a8a6867eba9e1d2b70bdf04402)) - -## [0.9.0](https://www.github.com/nodejs/gyp-next/compare/v0.8.1...v0.9.0) (2021-05-13) - - -### Features - -* use LDFLAGS_host for host toolset ([#98](https://www.github.com/nodejs/gyp-next/issues/98)) ([bea5c7b](https://www.github.com/nodejs/gyp-next/commit/bea5c7bd67d6ad32acbdce79767a5481c70675a2)) - - -### Bug Fixes - -* msvs.py: remove overindentation ([#102](https://www.github.com/nodejs/gyp-next/issues/102)) ([3f83e99](https://www.github.com/nodejs/gyp-next/commit/3f83e99056d004d9579ceb786e06b624ddc36529)) -* update gyp.el to change case to cl-case ([#93](https://www.github.com/nodejs/gyp-next/issues/93)) ([13d5b66](https://www.github.com/nodejs/gyp-next/commit/13d5b66aab35985af9c2fb1174fdc6e1c1407ecc)) - -### [0.8.1](https://www.github.com/nodejs/gyp-next/compare/v0.8.0...v0.8.1) (2021-02-18) - - -### Bug Fixes - -* update shebang lines from python to python3 ([#94](https://www.github.com/nodejs/gyp-next/issues/94)) ([a1b0d41](https://www.github.com/nodejs/gyp-next/commit/a1b0d4171a8049a4ab7a614202063dec332f2df4)) - -## [0.8.0](https://www.github.com/nodejs/gyp-next/compare/v0.7.0...v0.8.0) (2021-01-15) - - -### ⚠ BREAKING CHANGES - -* remove support for Python 2 - -### Bug Fixes - -* revert posix build job ([#86](https://www.github.com/nodejs/gyp-next/issues/86)) ([39dc34f](https://www.github.com/nodejs/gyp-next/commit/39dc34f0799c074624005fb9bbccf6e028607f9d)) - - -### gyp - -* Remove support for Python 2 ([#88](https://www.github.com/nodejs/gyp-next/issues/88)) ([22e4654](https://www.github.com/nodejs/gyp-next/commit/22e465426fd892403c95534229af819a99c3f8dc)) - -## [0.7.0](https://www.github.com/nodejs/gyp-next/compare/v0.6.2...v0.7.0) (2020-12-17) - - -### ⚠ BREAKING CHANGES - -* **msvs:** On Windows, arguments passed to the "action" commands are no longer transformed to replace slashes with backslashes. - -### Features - -* **xcode:** --cross-compiling overrides arch-specific settings ([973bae0](https://www.github.com/nodejs/gyp-next/commit/973bae0b7b08be7b680ecae9565fbd04b3e0787d)) - - -### Bug Fixes - -* **msvs:** do not fix paths in action command arguments ([fc22f83](https://www.github.com/nodejs/gyp-next/commit/fc22f8335e2016da4aae4f4233074bd651d2faea)) -* cmake on python 3 ([fd61f5f](https://www.github.com/nodejs/gyp-next/commit/fd61f5faa5275ec8fc98e3c7868c0dd46f109540)) -* ValueError: invalid mode: 'rU' while trying to load binding.gyp ([d0504e6](https://www.github.com/nodejs/gyp-next/commit/d0504e6700ce48f44957a4d5891b142a60be946f)) -* xcode cmake parsing ([eefe8d1](https://www.github.com/nodejs/gyp-next/commit/eefe8d10e99863bc4ac7e2ed32facd608d400d4b)) - -### [0.6.2](https://www.github.com/nodejs/gyp-next/compare/v0.6.1...v0.6.2) (2020-10-16) - - -### Bug Fixes - -* do not rewrite absolute paths to avoid long paths ([#74](https://www.github.com/nodejs/gyp-next/issues/74)) ([c2ccc1a](https://www.github.com/nodejs/gyp-next/commit/c2ccc1a81f7f94433a94f4d01a2e820db4c4331a)) -* only include MARMASM when toolset is target ([5a2794a](https://www.github.com/nodejs/gyp-next/commit/5a2794aefb58f0c00404ff042b61740bc8b8d5cd)) - -### [0.6.1](https://github.com/nodejs/gyp-next/compare/v0.6.0...v0.6.1) (2020-10-14) - - -### Bug Fixes - -* Correctly rename object files for absolute paths in MSVS generator. - -## [0.6.0](https://github.com/nodejs/gyp-next/compare/v0.5.0...v0.6.0) (2020-10-13) - - -### Features - -* The Makefile generator will now output shared libraries directly to the product directory on all platforms (previously only macOS). - -## [0.5.0](https://github.com/nodejs/gyp-next/compare/v0.4.0...v0.5.0) (2020-09-30) - - -### Features - -* Extended compile_commands_json generator to consider more file extensions than just `c` and `cc`. `cpp` and `cxx` are now supported. -* Source files with duplicate basenames are now supported. - -### Removed - -* The `--no-duplicate-basename-check` option was removed. -* The `msvs_enable_marmasm` configuration option was removed in favor of auto-inclusion of the "marmasm" sections for Windows on ARM. - -## [0.4.0](https://github.com/nodejs/gyp-next/compare/v0.3.0...v0.4.0) (2020-07-14) - - -### Features - -* Added support for passing arbitrary architectures to Xcode builds, enables `arm64` builds. - -### Bug Fixes - -* Fixed a bug on Solaris where copying archives failed. - -## [0.3.0](https://github.com/nodejs/gyp-next/compare/v0.2.1...v0.3.0) (2020-06-06) - - -### Features - -* Added support for MSVC cross-compilation. This allows compilation on x64 for a Windows ARM target. - -### Bug Fixes - -* Fixed XCode CLT version detection on macOS Catalina. - -### [0.2.1](https://github.com/nodejs/gyp-next/compare/v0.2.0...v0.2.1) (2020-05-05) - - -### Bug Fixes - -* Relicensed to Node.js contributors. -* Fixed Windows bug introduced in v0.2.0. - -## [0.2.0](https://github.com/nodejs/gyp-next/releases/tag/v0.2.0) (2020-04-06) - -This is the first release of this project, based on https://chromium.googlesource.com/external/gyp with changes made over the years in Node.js and node-gyp. diff --git a/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md b/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md deleted file mode 100644 index d724027fd9aadb..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,4 +0,0 @@ -# Code of Conduct - -* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md) -* [Node.js Moderation Policy](https://github.com/nodejs/admin/blob/HEAD/Moderation-Policy.md) diff --git a/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md b/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md deleted file mode 100644 index 1a0bcde2b48d8e..00000000000000 --- a/deps/npm/node_modules/node-gyp/gyp/CONTRIBUTING.md +++ /dev/null @@ -1,32 +0,0 @@ -# Contributing to gyp-next - -## Code of Conduct - -This project is bound to the [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md). - - -## Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -* (a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -* (b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -* (c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -* (d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. diff --git a/deps/npm/node_modules/node-gyp/gyp/README.md b/deps/npm/node_modules/node-gyp/gyp/README.md index 9ffc2b21e81b8b..be1d7b9ebf6611 100644 --- a/deps/npm/node_modules/node-gyp/gyp/README.md +++ b/deps/npm/node_modules/node-gyp/gyp/README.md @@ -5,3 +5,26 @@ Documents are available at [gyp.gsrc.io](https://gyp.gsrc.io), or you can check __gyp-next__ is [released](https://github.com/nodejs/gyp-next/releases) to the [__Python Packaging Index__](https://pypi.org/project/gyp-next) (PyPI) and can be installed with the command: * `python3 -m pip install gyp-next` + +When used as a command line utility, __gyp-next__ can also be installed with [pipx](https://pypa.github.io/pipx): +* `pipx install gyp-next` +``` +Installing to a new venv 'gyp-next' + installed package gyp-next 0.13.0, installed using Python 3.10.6 + These apps are now globally available + - gyp +done! ✨ 🌟 ✨ +``` + +Or to run __gyp-next__ directly without installing it: +* `pipx run gyp-next --help` +``` +NOTE: running app 'gyp' from 'gyp-next' +usage: usage: gyp [options ...] [build_file ...] + +options: + -h, --help show this help message and exit + --build CONFIGS configuration for build after project generation + --check check format of gyp files + [ ... ] +``` diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py index d6b189760cef99..bc0e93d07f8900 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py @@ -285,19 +285,17 @@ def Write(self, writer=gyp.common.WriteOnDiff): "\tEndProjectSection\r\n" ) - if isinstance(e, MSVSFolder): - if e.items: - f.write("\tProjectSection(SolutionItems) = preProject\r\n") - for i in e.items: - f.write(f"\t\t{i} = {i}\r\n") - f.write("\tEndProjectSection\r\n") - - if isinstance(e, MSVSProject): - if e.dependencies: - f.write("\tProjectSection(ProjectDependencies) = postProject\r\n") - for d in e.dependencies: - f.write(f"\t\t{d.get_guid()} = {d.get_guid()}\r\n") - f.write("\tEndProjectSection\r\n") + if isinstance(e, MSVSFolder) and e.items: + f.write("\tProjectSection(SolutionItems) = preProject\r\n") + for i in e.items: + f.write(f"\t\t{i} = {i}\r\n") + f.write("\tEndProjectSection\r\n") + + if isinstance(e, MSVSProject) and e.dependencies: + f.write("\tProjectSection(ProjectDependencies) = postProject\r\n") + for d in e.dependencies: + f.write(f"\t\t{d.get_guid()} = {d.get_guid()}\r\n") + f.write("\tEndProjectSection\r\n") f.write("EndProject\r\n") @@ -353,7 +351,7 @@ def Write(self, writer=gyp.common.WriteOnDiff): # Folder mappings # Omit this section if there are no folders - if any([e.entries for e in all_entries if isinstance(e, MSVSFolder)]): + if any(e.entries for e in all_entries if isinstance(e, MSVSFolder)): f.write("\tGlobalSection(NestedProjects) = preSolution\r\n") for e in all_entries: if not isinstance(e, MSVSFolder): diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py index f0cfabe8349099..629f3f61b4819d 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py @@ -79,7 +79,7 @@ def __init__(self, project_path, version, name, guid=None, platforms=None): self.files_section = ["Files"] # Keep a dict keyed on filename to speed up access. - self.files_dict = dict() + self.files_dict = {} def AddToolFile(self, path): """Adds a tool file to the project. diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py index e89a971a3bb4fd..93633dbca133c7 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py @@ -141,7 +141,7 @@ class _Boolean(_Type): """Boolean settings, can have the values 'false' or 'true'.""" def _Validate(self, value): - if value != "true" and value != "false": + if value not in {"true", "false"}: raise ValueError("expected bool; got %r" % value) def ValidateMSVS(self, value): diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py index 2aa39d0318860f..d6cc01307d997c 100755 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py @@ -108,7 +108,9 @@ def Load( if default_variables["GENERATOR"] == "ninja": default_variables.setdefault( "PRODUCT_DIR_ABS", - os.path.join(output_dir, "out", default_variables["build_type"]), + os.path.join( + output_dir, "out", default_variables.get("build_type", "default") + ), ) else: default_variables.setdefault( @@ -622,7 +624,7 @@ def gyp_main(args): if options.generator_flags: gen_flags += options.generator_flags generator_flags = NameValueListToDict(gen_flags) - if DEBUG_GENERAL in gyp.debug.keys(): + if DEBUG_GENERAL in gyp.debug: DebugOutput(DEBUG_GENERAL, "generator_flags: %s", generator_flags) # Generate all requested formats (use a set in case we got one format request diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py index d77adee8afd55d..b73a0c55b1e349 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/common.py @@ -144,20 +144,16 @@ def RelativePath(path, relative_to, follow_path_symlink=True): # symlink, this option has no effect. # Convert to normalized (and therefore absolute paths). - if follow_path_symlink: - path = os.path.realpath(path) - else: - path = os.path.abspath(path) + path = os.path.realpath(path) if follow_path_symlink else os.path.abspath(path) relative_to = os.path.realpath(relative_to) # On Windows, we can't create a relative path to a different drive, so just # use the absolute path. - if sys.platform == "win32": - if ( - os.path.splitdrive(path)[0].lower() - != os.path.splitdrive(relative_to)[0].lower() - ): - return path + if sys.platform == "win32" and ( + os.path.splitdrive(path)[0].lower() + != os.path.splitdrive(relative_to)[0].lower() + ): + return path # Split the paths into components. path_split = path.split(os.path.sep) @@ -277,10 +273,7 @@ def EncodePOSIXShellArgument(argument): if not isinstance(argument, str): argument = str(argument) - if _quote.search(argument): - quote = '"' - else: - quote = "" + quote = '"' if _quote.search(argument) else "" encoded = quote + re.sub(_escape, r"\\\1", argument) + quote diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py index bda1a47468ae2b..02567b251446d7 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py @@ -121,7 +121,11 @@ def WriteXmlIfChanged(content, path, encoding="utf-8", pretty=False, if win32 and os.linesep != "\r\n": xml_string = xml_string.replace("\n", "\r\n") - default_encoding = locale.getdefaultlocale()[1] + try: # getdefaultlocale() was removed in Python 3.11 + default_encoding = locale.getdefaultlocale()[1] + except AttributeError: + default_encoding = locale.getencoding() + if default_encoding and default_encoding.upper() != encoding.upper(): xml_string = xml_string.encode(encoding) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py index 342f693a329d26..2d9b15210dc126 100755 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py @@ -76,6 +76,8 @@ def test_EasyXml_complex(self): '\'Debug|Win32\'" Label="Configuration">' "Application" "Unicode" + "SpectreLoadCF" + "14.36.32532" "" "" ) @@ -99,6 +101,8 @@ def test_EasyXml_complex(self): }, ["ConfigurationType", "Application"], ["CharacterSet", "Unicode"], + ["SpectreMitigation", "SpectreLoadCF"], + ["VCToolsVersion", "14.36.32532"], ], ] ) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py index f15df00c36373e..1334f2fca9967c 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py @@ -379,7 +379,7 @@ def _GenerateTargets(data, target_list, target_dicts, toplevel_dir, files, build target.is_executable = target_type == "executable" target.is_static_library = target_type == "static_library" target.is_or_has_linked_ancestor = ( - target_type == "executable" or target_type == "shared_library" + target_type in {"executable", "shared_library"} ) build_file = gyp.common.ParseQualifiedTarget(target_name)[0] @@ -433,14 +433,14 @@ def _GetUnqualifiedToTargetMapping(all_targets, to_find): if not to_find: return {}, [] to_find = set(to_find) - for target_name in all_targets.keys(): + for target_name in all_targets: extracted = gyp.common.ParseQualifiedTarget(target_name) if len(extracted) > 1 and extracted[1] in to_find: to_find.remove(extracted[1]) result[extracted[1]] = all_targets[target_name] if not to_find: return result, [] - return result, [x for x in to_find] + return result, list(to_find) def _DoesTargetDependOnMatchingTargets(target): @@ -451,8 +451,8 @@ def _DoesTargetDependOnMatchingTargets(target): if target.match_status == MATCH_STATUS_DOESNT_MATCH: return False if ( - target.match_status == MATCH_STATUS_MATCHES - or target.match_status == MATCH_STATUS_MATCHES_BY_DEPENDENCY + target.match_status in {MATCH_STATUS_MATCHES, + MATCH_STATUS_MATCHES_BY_DEPENDENCY} ): return True for dep in target.deps: @@ -683,11 +683,9 @@ def find_matching_test_target_names(self): ) test_target_names_contains_all = "all" in self._test_target_names if test_target_names_contains_all: - test_targets = [ - x for x in (set(test_targets_no_all) | set(self._root_targets)) - ] + test_targets = list(set(test_targets_no_all) | set(self._root_targets)) else: - test_targets = [x for x in test_targets_no_all] + test_targets = list(test_targets_no_all) print("supplied test_targets") for target_name in self._test_target_names: print("\t", target_name) @@ -702,9 +700,9 @@ def find_matching_test_target_names(self): if matching_test_targets_contains_all: # Remove any of the targets for all that were not explicitly supplied, # 'all' is subsequentely added to the matching names below. - matching_test_targets = [ - x for x in (set(matching_test_targets) & set(test_targets_no_all)) - ] + matching_test_targets = list( + set(matching_test_targets) & set(test_targets_no_all) + ) print("matched test_targets") for target in matching_test_targets: print("\t", target.name) @@ -729,9 +727,7 @@ def find_matching_compile_target_names(self): self._supplied_target_names_no_all(), self._unqualified_mapping ) if "all" in self._supplied_target_names(): - supplied_targets = [ - x for x in (set(supplied_targets) | set(self._root_targets)) - ] + supplied_targets = list(set(supplied_targets) | set(self._root_targets)) print("Supplied test_targets & compile_targets") for target in supplied_targets: print("\t", target.name) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py index cdf1a4832cf1ad..d3c97c666db077 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py @@ -697,7 +697,7 @@ def ComputeOutputParts(self, spec): target, ) - if self.type != "static_library" and self.type != "shared_library": + if self.type not in {"static_library", "shared_library"}: target_prefix = spec.get("product_prefix", target_prefix) target = spec.get("product_name", target) product_ext = spec.get("product_extension") diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py index c95d18415cdb37..320a891aa8adc9 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py @@ -103,7 +103,7 @@ def NormjoinPathForceCMakeSource(base_path, rel_path): """ if os.path.isabs(rel_path): return rel_path - if any([rel_path.startswith(var) for var in FULL_PATH_VARS]): + if any(rel_path.startswith(var) for var in FULL_PATH_VARS): return rel_path # TODO: do we need to check base_path for absolute variables as well? return os.path.join( @@ -328,7 +328,7 @@ def WriteActions(target_name, actions, extra_sources, extra_deps, path_to_gyp, o def NormjoinRulePathForceCMakeSource(base_path, rel_path, rule_source): if rel_path.startswith(("${RULE_INPUT_PATH}", "${RULE_INPUT_DIRNAME}")): - if any([rule_source.startswith(var) for var in FULL_PATH_VARS]): + if any(rule_source.startswith(var) for var in FULL_PATH_VARS): return rel_path return NormjoinPathForceCMakeSource(base_path, rel_path) @@ -929,10 +929,7 @@ def WriteTarget( product_prefix = spec.get("product_prefix", default_product_prefix) product_name = spec.get("product_name", default_product_name) product_ext = spec.get("product_extension") - if product_ext: - product_ext = "." + product_ext - else: - product_ext = default_product_ext + product_ext = "." + product_ext if product_ext else default_product_ext SetTargetProperty(output, cmake_target_name, "PREFIX", product_prefix) SetTargetProperty( diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py index f330a04dea4c53..0ffa3bb5980fe9 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py @@ -34,7 +34,7 @@ def IsMac(params): - return "mac" == gyp.common.GetFlavor(params) + return gyp.common.GetFlavor(params) == "mac" def CalculateVariables(default_variables, params): @@ -93,7 +93,7 @@ def resolve(filename): gyp.common.EncodePOSIXShellArgument(file), ) ) - commands.append(dict(command=command, directory=output_dir, file=file)) + commands.append({"command": command, "directory": output_dir, "file": file}) def GenerateOutput(target_list, target_dicts, data, params): @@ -108,7 +108,10 @@ def GenerateOutput(target_list, target_dicts, data, params): cwd = os.path.dirname(build_file) AddCommandsForTarget(cwd, target, params, per_config_commands) - output_dir = params["generator_flags"].get("output_dir", "out") + try: + output_dir = params["options"].generator_output + except (AttributeError, KeyError): + output_dir = params["generator_flags"].get("output_dir", "out") for configuration_name, commands in per_config_commands.items(): filename = os.path.join(output_dir, configuration_name, "compile_commands.json") gyp.common.EnsureDirExists(filename) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py index a851b4db757eda..52aeae6050990b 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py @@ -248,10 +248,7 @@ def GetAllDefines(target_list, target_dicts, data, config_name, params, compiler continue cpp_line_parts = cpp_line.split(" ", 2) key = cpp_line_parts[1] - if len(cpp_line_parts) >= 3: - val = cpp_line_parts[2] - else: - val = "1" + val = cpp_line_parts[2] if len(cpp_line_parts) >= 3 else "1" all_defines[key] = val return all_defines diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py index f1d01a629d435f..1b9974948e4de5 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py @@ -681,10 +681,7 @@ def WriteRootHeaderSuffixRules(writer): def Compilable(filename): """Return true if the file is compilable (should be in OBJS).""" - for res in (filename.endswith(e) for e in COMPILABLE_EXTENSIONS): - if res: - return True - return False + return any(res for res in (filename.endswith(e) for e in COMPILABLE_EXTENSIONS)) def Linkable(filename): @@ -778,7 +775,7 @@ def __init__(self, generator_flags, flavor): self.suffix_rules_objdir2 = {} # Generate suffix rules for all compilable extensions. - for ext in COMPILABLE_EXTENSIONS.keys(): + for ext in COMPILABLE_EXTENSIONS: # Suffix rules for source folder. self.suffix_rules_srcdir.update( { @@ -1066,7 +1063,7 @@ def WriteActions( # libraries, but until everything is made cross-compile safe, also use # target libraries. # TODO(piman): when everything is cross-compile safe, remove lib.target - if self.flavor == "zos" or self.flavor == "aix": + if self.flavor in {"zos", "aix"}: self.WriteLn( "cmd_%s = LIBPATH=$(builddir)/lib.host:" "$(builddir)/lib.target:$$LIBPATH; " @@ -1992,10 +1989,7 @@ def WriteTarget( and self.toolset == "target" ): # On mac, products are created in install_path immediately. - assert install_path == self.output, "{} != {}".format( - install_path, - self.output, - ) + assert install_path == self.output, f"{install_path} != {self.output}" # Point the target alias to the final binary output. self.WriteMakeRule( @@ -2034,7 +2028,7 @@ def WriteTarget( installable_deps.append( self.GetUnversionedSidedeckFromSidedeck(install_path) ) - if self.output != self.alias and self.alias != self.target: + if self.alias not in (self.output, self.target): self.WriteMakeRule( [self.alias], installable_deps, diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py index fd950057847980..13b0794b4dccc3 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py @@ -164,7 +164,7 @@ def _FixPath(path, separator="\\"): fixpath_prefix and path and not os.path.isabs(path) - and not path[0] == "$" + and path[0] != "$" and not _IsWindowsAbsPath(path) ): path = os.path.join(fixpath_prefix, path) @@ -281,9 +281,9 @@ def _ToolSetOrAppend(tools, tool_name, setting, value, only_if_unset=False): else: value = [i.replace("/", "\\") for i in value] if not tools.get(tool_name): - tools[tool_name] = dict() + tools[tool_name] = {} tool = tools[tool_name] - if "CompileAsWinRT" == setting: + if setting == "CompileAsWinRT": return if tool.get(setting): if only_if_unset: @@ -412,10 +412,7 @@ def _BuildCommandLineForRuleRaw( return input_dir_preamble + cmd else: # Convert cat --> type to mimic unix. - if cmd[0] == "cat": - command = ["type"] - else: - command = [cmd[0].replace("/", "\\")] + command = ["type"] if cmd[0] == "cat" else [cmd[0].replace("/", "\\")] # Add call before command to ensure that commands can be tied together one # after the other without aborting in Incredibuild, since IB makes a bat # file out of the raw command string, and some commands (like python) are @@ -438,6 +435,7 @@ def _BuildCommandLineForRuleRaw( # Support a mode for using cmd directly. # Convert any paths to native form (first element is used directly). # TODO(quote): regularize quoting path names throughout the module + command[1] = '"%s"' % command[1] arguments = ['"%s"' % i for i in arguments] # Collapse into a single command. return input_dir_preamble + " ".join(command + arguments) @@ -687,7 +685,7 @@ def _GenerateExternalRules(rules, output_dir, spec, sources, options, actions_to all_outputs.update(OrderedSet(outputs)) # Only use one target from each rule as the dependency for # 'all' so we don't try to build each rule multiple times. - first_outputs.append(list(outputs)[0]) + first_outputs.append(next(iter(outputs))) # Get the unique output directories for this rule. output_dirs = [os.path.split(i)[0] for i in outputs] for od in output_dirs: @@ -756,7 +754,7 @@ def _EscapeEnvironmentVariableExpansion(s): Returns: The escaped string. - """ # noqa: E731,E123,E501 + """ s = s.replace("%", "%%") return s @@ -1189,7 +1187,7 @@ def _AddConfigurationToMSVSProject(p, spec, config_type, config_name, config): precompiled_header = config.get("msvs_precompiled_header") # Prepare the list of tools as a dictionary. - tools = dict() + tools = {} # Add in user specified msvs_settings. msvs_settings = config.get("msvs_settings", {}) MSVSSettings.ValidateMSVSSettings(msvs_settings) @@ -1384,10 +1382,7 @@ def _GetDefines(config): """ defines = [] for d in config.get("defines", []): - if type(d) == list: - fd = "=".join([str(dpart) for dpart in d]) - else: - fd = str(d) + fd = "=".join([str(dpart) for dpart in d]) if isinstance(d, list) else str(d) defines.append(fd) return defines @@ -1578,10 +1573,10 @@ def _AdjustSourcesAndConvertToFilterHierarchy( # such as ../../src/modules/module1 etc. if version.UsesVcxproj(): while ( - all([isinstance(s, MSVSProject.Filter) for s in sources]) + all(isinstance(s, MSVSProject.Filter) for s in sources) and len({s.name for s in sources}) == 1 ): - assert all([len(s.contents) == 1 for s in sources]) + assert all(len(s.contents) == 1 for s in sources) sources = [s.contents[0] for s in sources] else: while len(sources) == 1 and isinstance(sources[0], MSVSProject.Filter): @@ -1598,10 +1593,7 @@ def _IdlFilesHandledNonNatively(spec, sources): if rule["extension"] == "idl" and int(rule.get("msvs_external_rule", 0)): using_idl = True break - if using_idl: - excluded_idl = [i for i in sources if i.endswith(".idl")] - else: - excluded_idl = [] + excluded_idl = [i for i in sources if i.endswith(".idl")] if using_idl else [] return excluded_idl @@ -1819,7 +1811,7 @@ def _GetPathDict(root, path): parent, folder = os.path.split(path) parent_dict = _GetPathDict(root, parent) if folder not in parent_dict: - parent_dict[folder] = dict() + parent_dict[folder] = {} return parent_dict[folder] @@ -3013,18 +3005,26 @@ def _GetMSBuildConfigurationDetails(spec, build_file): msbuild_attributes = _GetMSBuildAttributes(spec, settings, build_file) condition = _GetConfigurationCondition(name, settings, spec) character_set = msbuild_attributes.get("CharacterSet") + vctools_version = msbuild_attributes.get("VCToolsVersion") config_type = msbuild_attributes.get("ConfigurationType") _AddConditionalProperty(properties, condition, "ConfigurationType", config_type) + spectre_mitigation = msbuild_attributes.get('SpectreMitigation') + if spectre_mitigation: + _AddConditionalProperty(properties, condition, "SpectreMitigation", + spectre_mitigation) if config_type == "Driver": _AddConditionalProperty(properties, condition, "DriverType", "WDM") _AddConditionalProperty( properties, condition, "TargetVersion", _ConfigTargetVersion(settings) ) - if character_set: - if "msvs_enable_winrt" not in spec: - _AddConditionalProperty( - properties, condition, "CharacterSet", character_set - ) + if character_set and "msvs_enable_winrt" not in spec: + _AddConditionalProperty( + properties, condition, "CharacterSet", character_set + ) + if vctools_version and "msvs_enable_winrt" not in spec: + _AddConditionalProperty( + properties, condition, "VCToolsVersion", vctools_version + ) return _GetMSBuildPropertyGroup(spec, "Configuration", properties) @@ -3104,6 +3104,10 @@ def _ConvertMSVSBuildAttributes(spec, config, build_file): msbuild_attributes[a] = _ConvertMSVSCharacterSet(msvs_attributes[a]) elif a == "ConfigurationType": msbuild_attributes[a] = _ConvertMSVSConfigurationType(msvs_attributes[a]) + elif a == "SpectreMitigation": + msbuild_attributes[a] = msvs_attributes[a] + elif a == "VCToolsVersion": + msbuild_attributes[a] = msvs_attributes[a] else: print("Warning: Do not know how to convert MSVS attribute " + a) return msbuild_attributes @@ -3326,15 +3330,14 @@ def _GetMSBuildToolSettingsSections(spec, configurations): for tool_name, tool_settings in sorted(msbuild_settings.items()): # Skip the tool named '' which is a holder of global settings handled # by _GetMSBuildConfigurationGlobalProperties. - if tool_name: - if tool_settings: - tool = [tool_name] - for name, value in sorted(tool_settings.items()): - formatted_value = _GetValueFormattedForMSBuild( - tool_name, name, value - ) - tool.append([name, formatted_value]) - group.append(tool) + if tool_name and tool_settings: + tool = [tool_name] + for name, value in sorted(tool_settings.items()): + formatted_value = _GetValueFormattedForMSBuild( + tool_name, name, value + ) + tool.append([name, formatted_value]) + group.append(tool) groups.append(group) return groups @@ -3462,10 +3465,7 @@ def _GetValueFormattedForMSBuild(tool_name, name, value): "Link": ["AdditionalOptions"], "Lib": ["AdditionalOptions"], } - if tool_name in exceptions and name in exceptions[tool_name]: - char = " " - else: - char = ";" + char = " " if name in exceptions.get(tool_name, []) else ";" formatted_value = char.join( [MSVSSettings.ConvertVCMacrosToMSBuild(i) for i in value] ) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py index ca04ee13a1c1bf..8ba341e96d3f0d 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py @@ -1815,10 +1815,7 @@ def ComputeOutputFileName(self, spec, type=None): "executable": default_variables["EXECUTABLE_SUFFIX"], } extension = spec.get("product_extension") - if extension: - extension = "." + extension - else: - extension = DEFAULT_EXTENSION.get(type, "") + extension = "." + extension if extension else DEFAULT_EXTENSION.get(type, "") if "product_name" in spec: # If we were given an explicit name, use that. @@ -2533,7 +2530,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, config_name description="SOLINK $lib", restat=True, command=mtime_preserving_solink_base - % {"suffix": "@$link_file_list"}, # noqa: E501 + % {"suffix": "@$link_file_list"}, rspfile="$link_file_list", rspfile_content=( "-Wl,--whole-archive $in $solibs -Wl," "--no-whole-archive $libs" diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py index 2f4d17e514e439..1ac672c3876bd9 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py @@ -439,7 +439,7 @@ def Finalize2(self, xcode_targets, xcode_target_to_target_dict): # it opens the project file, which will result in unnecessary diffs. # TODO(mark): This is evil because it relies on internal knowledge of # PBXProject._other_pbxprojects. - for other_pbxproject in self.project._other_pbxprojects.keys(): + for other_pbxproject in self.project._other_pbxprojects: self.project.AddOrGetProjectReference(other_pbxproject) self.project.SortRemoteProductReferences() @@ -1118,10 +1118,7 @@ def GenerateOutput(target_list, target_dicts, data, params): for concrete_output_index, concrete_output in enumerate( concrete_outputs ): - if concrete_output_index == 0: - bol = "" - else: - bol = " " + bol = "" if concrete_output_index == 0 else " " makefile.write(f"{bol}{concrete_output} \\\n") concrete_output_dir = posixpath.dirname(concrete_output) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py index d9699a0a502183..8f39519dee51fb 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py @@ -16,9 +16,9 @@ import sys import threading import traceback -from distutils.version import StrictVersion from gyp.common import GypError from gyp.common import OrderedSet +from packaging.version import Version # A list of types that are treated as linkable. linkable_types = [ @@ -225,7 +225,7 @@ def LoadOneBuildFile(build_file_path, data, aux_data, includes, is_target, check return data[build_file_path] if os.path.exists(build_file_path): - build_file_contents = open(build_file_path, encoding='utf-8').read() + build_file_contents = open(build_file_path, encoding="utf-8").read() else: raise GypError(f"{build_file_path} not found (cwd: {os.getcwd()})") @@ -870,10 +870,7 @@ def ExpandVariables(input, phase, variables, build_file): # This works around actions/rules which have more inputs than will # fit on the command line. if file_list: - if type(contents) is list: - contents_list = contents - else: - contents_list = contents.split(" ") + contents_list = contents if type(contents) is list else contents.split(" ") replacement = contents_list[0] if os.path.isabs(replacement): raise GypError('| cannot handle absolute paths, got "%s"' % replacement) @@ -1183,7 +1180,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil else: ast_code = compile(cond_expr_expanded, "", "eval") cached_conditions_asts[cond_expr_expanded] = ast_code - env = {"__builtins__": {}, "v": StrictVersion} + env = {"__builtins__": {}, "v": Version} if eval(ast_code, env, variables): return true_dict return false_dict @@ -1579,14 +1576,12 @@ def ExpandWildcardDependencies(targets, data): continue dependency_target_name = dependency_target_dict["target_name"] if ( - dependency_target != "*" - and dependency_target != dependency_target_name + dependency_target not in {"*", dependency_target_name} ): continue dependency_target_toolset = dependency_target_dict["toolset"] if ( - dependency_toolset != "*" - and dependency_toolset != dependency_target_toolset + dependency_toolset not in {"*", dependency_target_toolset} ): continue dependency = gyp.common.QualifiedTarget( @@ -1630,15 +1625,14 @@ def RemoveSelfDependencies(targets): dependencies = target_dict.get(dependency_key, []) if dependencies: for t in dependencies: - if t == target_name: - if ( - targets[t] - .get("variables", {}) - .get("prune_self_dependency", 0) - ): - target_dict[dependency_key] = Filter( - dependencies, target_name - ) + if t == target_name and ( + targets[t] + .get("variables", {}) + .get("prune_self_dependency", 0) + ): + target_dict[dependency_key] = Filter( + dependencies, target_name + ) def RemoveLinkDependenciesFromNoneTargets(targets): @@ -2238,10 +2232,7 @@ def is_in_set_or_list(x, s, items): singleton = False if type(item) in (str, int): # The cheap and easy case. - if is_paths: - to_item = MakePathRelative(to_file, fro_file, item) - else: - to_item = item + to_item = MakePathRelative(to_file, fro_file, item) if is_paths else item if not (type(item) is str and item.startswith("-")): # Any string that doesn't begin with a "-" is a singleton - it can @@ -2467,10 +2458,7 @@ def SetUpConfigurations(target, target_dict): new_configuration_dict = {} for (key, target_val) in target_dict.items(): key_ext = key[-1:] - if key_ext in key_suffixes: - key_base = key[:-1] - else: - key_base = key + key_base = key[:-1] if key_ext in key_suffixes else key if key_base not in non_configuration_keys: new_configuration_dict[key] = gyp.simple_copy.deepcopy(target_val) @@ -2482,7 +2470,7 @@ def SetUpConfigurations(target, target_dict): merged_configurations[configuration] = new_configuration_dict # Put the new configurations back into the target dict as a configuration. - for configuration in merged_configurations.keys(): + for configuration in merged_configurations: target_dict["configurations"][configuration] = merged_configurations[ configuration ] @@ -2499,19 +2487,16 @@ def SetUpConfigurations(target, target_dict): delete_keys = [] for key in target_dict: key_ext = key[-1:] - if key_ext in key_suffixes: - key_base = key[:-1] - else: - key_base = key + key_base = key[:-1] if key_ext in key_suffixes else key if key_base not in non_configuration_keys: delete_keys.append(key) for key in delete_keys: del target_dict[key] # Check the configurations to see if they contain invalid keys. - for configuration in target_dict["configurations"].keys(): + for configuration in target_dict["configurations"]: configuration_dict = target_dict["configurations"][configuration] - for key in configuration_dict.keys(): + for key in configuration_dict: if key in invalid_configuration_keys: raise GypError( "%s not allowed in the %s configuration, found in " @@ -2554,7 +2539,7 @@ def ProcessListFiltersInDict(name, the_dict): del_lists = [] for key, value in the_dict.items(): operation = key[-1] - if operation != "!" and operation != "/": + if operation not in {"!", "/"}: continue if type(value) is not list: diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py index 5b9c2712e091b4..38fa21dd666697 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py @@ -93,7 +93,7 @@ def _AddPrefix(element, prefix): if element is None: return element # Note, not Iterable because we don't want to handle strings like that. - if isinstance(element, list) or isinstance(element, tuple): + if isinstance(element, (list, tuple)): return [prefix + e for e in element] else: return prefix + element @@ -105,7 +105,7 @@ def _DoRemapping(element, map): if map is not None and element is not None: if not callable(map): map = map.get # Assume it's a dict, otherwise a callable to do the remap. - if isinstance(element, list) or isinstance(element, tuple): + if isinstance(element, (list, tuple)): element = filter(None, [map(elem) for elem in element]) else: element = map(element) @@ -117,7 +117,7 @@ def _AppendOrReturn(append, element): then add |element| to it, adding each item in |element| if it's a list or tuple.""" if append is not None and element is not None: - if isinstance(element, list) or isinstance(element, tuple): + if isinstance(element, (list, tuple)): append.extend(element) else: append.append(element) @@ -183,7 +183,7 @@ def ExtractSharedMSVSSystemIncludes(configs, generator_flags): expanded_system_includes = OrderedSet( [ExpandMacros(include, env) for include in all_system_includes] ) - if any(["$" in include for include in expanded_system_includes]): + if any("$" in include for include in expanded_system_includes): # Some path relies on target-specific variables, bail. return None @@ -255,10 +255,7 @@ def GetVSMacroEnv(self, base_to_build=None, config=None): """Get a dict of variables mapping internal VS macro names to their gyp equivalents.""" target_arch = self.GetArch(config) - if target_arch == "x86": - target_platform = "Win32" - else: - target_platform = target_arch + target_platform = "Win32" if target_arch == "x86" else target_arch target_name = self.spec.get("product_prefix", "") + self.spec.get( "product_name", self.spec["target_name"] ) @@ -738,10 +735,7 @@ def GetLdflags( # TODO(scottmg): This should sort of be somewhere else (not really a flag). ld("AdditionalDependencies", prefix="") - if self.GetArch(config) == "x86": - safeseh_default = "true" - else: - safeseh_default = None + safeseh_default = "true" if self.GetArch(config) == "x86" else None ld( "ImageHasSafeExceptionHandlers", map={"false": ":NO", "true": ""}, @@ -960,15 +954,12 @@ def GetRuleShellFlags(self, rule): def _HasExplicitRuleForExtension(self, spec, extension): """Determine if there's an explicit rule for a particular extension.""" - for rule in spec.get("rules", []): - if rule["extension"] == extension: - return True - return False + return any(rule["extension"] == extension for rule in spec.get("rules", [])) def _HasExplicitIdlActions(self, spec): """Determine if an action should not run midl for .idl files.""" return any( - [action.get("explicit_idl_action", 0) for action in spec.get("actions", [])] + action.get("explicit_idl_action", 0) for action in spec.get("actions", []) ) def HasExplicitIdlRulesOrActions(self, spec): diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py index 638eee40029411..171d7295747fcd 100755 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py @@ -219,11 +219,10 @@ def ExecLinkWithManifests( our_manifest = "%(out)s.manifest" % variables # Load and normalize the manifests. mt.exe sometimes removes whitespace, # and sometimes doesn't unfortunately. - with open(our_manifest) as our_f: - with open(assert_manifest) as assert_f: - translator = str.maketrans('', '', string.whitespace) - our_data = our_f.read().translate(translator) - assert_data = assert_f.read().translate(translator) + with open(our_manifest) as our_f, open(assert_manifest) as assert_f: + translator = str.maketrans("", "", string.whitespace) + our_data = our_f.read().translate(translator) + assert_data = assert_f.read().translate(translator) if our_data != assert_data: os.unlink(out) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py index a75d8eeab7bda0..29caf1ce7fbb97 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py @@ -685,10 +685,7 @@ def GetCflags(self, configname, arch=None): if platform_root: cflags.append("-F" + platform_root + "/Developer/Library/Frameworks/") - if sdk_root: - framework_root = sdk_root - else: - framework_root = "" + framework_root = sdk_root if sdk_root else "" config = self.spec["configurations"][self.configname] framework_dirs = config.get("mac_framework_dirs", []) for directory in framework_dirs: @@ -1248,10 +1245,7 @@ def _AdjustLibrary(self, library, config_name=None): l_flag = "-framework " + os.path.splitext(os.path.basename(library))[0] else: m = self.library_re.match(library) - if m: - l_flag = "-l" + m.group(1) - else: - l_flag = library + l_flag = "-l" + m.group(1) if m else library sdk_root = self._SdkPath(config_name) if not sdk_root: @@ -1545,7 +1539,7 @@ def CLTVersion(): except GypError: continue - regex = re.compile(r'Command Line Tools for Xcode\s+(?P\S+)') + regex = re.compile(r"Command Line Tools for Xcode\s+(?P\S+)") try: output = GetStdout(["/usr/sbin/softwareupdate", "--history"]) return re.search(regex, output).groupdict()["version"] diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py index 4e0ec5e8828f79..33c667c266bf69 100644 --- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py @@ -971,7 +971,7 @@ def __init__(self, properties=None, id=None, parent=None): if "path" in self._properties and "name" not in self._properties: path = self._properties["path"] name = posixpath.basename(path) - if name != "" and path != name: + if name not in ("", path): self.SetProperty("name", name) if "path" in self._properties and ( @@ -2355,9 +2355,8 @@ def __init__( # property was supplied, set "productName" if it is not present. Also set # the "PRODUCT_NAME" build setting in each configuration, but only if # the setting is not present in any build configuration. - if "name" in self._properties: - if "productName" not in self._properties: - self.SetProperty("productName", self._properties["name"]) + if "name" in self._properties and "productName" not in self._properties: + self.SetProperty("productName", self._properties["name"]) if "productName" in self._properties: if "buildConfigurationList" in self._properties: @@ -2547,13 +2546,12 @@ def __init__( force_extension = suffix[1:] if ( - self._properties["productType"] - == "com.apple.product-type-bundle.unit.test" - or self._properties["productType"] - == "com.apple.product-type-bundle.ui-testing" - ): - if force_extension is None: - force_extension = suffix[1:] + self._properties["productType"] in { + "com.apple.product-type-bundle.unit.test", + "com.apple.product-type-bundle.ui-testing" + } + ) and force_extension is None: + force_extension = suffix[1:] if force_extension is not None: # If it's a wrapper (bundle), set WRAPPER_EXTENSION. @@ -2636,10 +2634,13 @@ def HeadersPhase(self): # frameworks phases, if any. insert_at = len(self._properties["buildPhases"]) for index, phase in enumerate(self._properties["buildPhases"]): - if ( - isinstance(phase, PBXResourcesBuildPhase) - or isinstance(phase, PBXSourcesBuildPhase) - or isinstance(phase, PBXFrameworksBuildPhase) + if isinstance( + phase, + ( + PBXResourcesBuildPhase, + PBXSourcesBuildPhase, + PBXFrameworksBuildPhase, + ), ): insert_at = index break @@ -2658,9 +2659,7 @@ def ResourcesPhase(self): # phases, if any. insert_at = len(self._properties["buildPhases"]) for index, phase in enumerate(self._properties["buildPhases"]): - if isinstance(phase, PBXSourcesBuildPhase) or isinstance( - phase, PBXFrameworksBuildPhase - ): + if isinstance(phase, (PBXSourcesBuildPhase, PBXFrameworksBuildPhase)): insert_at = index break @@ -2701,8 +2700,10 @@ def AddDependency(self, other): other._properties["productType"] == static_library_type or ( ( - other._properties["productType"] == shared_library_type - or other._properties["productType"] == framework_type + other._properties["productType"] in { + shared_library_type, + framework_type + } ) and ( (not other.HasBuildSetting("MACH_O_TYPE")) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE new file mode 100644 index 00000000000000..6f62d44e4ef733 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE @@ -0,0 +1,3 @@ +This software is made available under the terms of *either* of the licenses +found in LICENSE.APACHE or LICENSE.BSD. Contributions to this software is made +under the terms of *both* these licenses. diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE new file mode 100644 index 00000000000000..f433b1a53f5b83 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD new file mode 100644 index 00000000000000..42ce7b75c92fb0 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD @@ -0,0 +1,23 @@ +Copyright (c) Donald Stufft and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/__init__.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/__init__.py new file mode 100644 index 00000000000000..5fd91838316fbe --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/__init__.py @@ -0,0 +1,15 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +__title__ = "packaging" +__summary__ = "Core utilities for Python packages" +__uri__ = "https://github.com/pypa/packaging" + +__version__ = "23.3.dev0" + +__author__ = "Donald Stufft and individual contributors" +__email__ = "donald@stufft.io" + +__license__ = "BSD-2-Clause or Apache-2.0" +__copyright__ = "2014 %s" % __author__ diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py new file mode 100644 index 00000000000000..6fb19b30bb53c1 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py @@ -0,0 +1,108 @@ +""" +ELF file parser. + +This provides a class ``ELFFile`` that parses an ELF executable in a similar +interface to ``ZipFile``. Only the read interface is implemented. + +Based on: https://gist.github.com/lyssdod/f51579ae8d93c8657a5564aefc2ffbca +ELF header: https://refspecs.linuxfoundation.org/elf/gabi4+/ch4.eheader.html +""" + +import enum +import os +import struct +from typing import IO, Optional, Tuple + + +class ELFInvalid(ValueError): + pass + + +class EIClass(enum.IntEnum): + C32 = 1 + C64 = 2 + + +class EIData(enum.IntEnum): + Lsb = 1 + Msb = 2 + + +class EMachine(enum.IntEnum): + I386 = 3 + S390 = 22 + Arm = 40 + X8664 = 62 + AArc64 = 183 + + +class ELFFile: + """ + Representation of an ELF executable. + """ + + def __init__(self, f: IO[bytes]) -> None: + self._f = f + + try: + ident = self._read("16B") + except struct.error: + raise ELFInvalid("unable to parse identification") + magic = bytes(ident[:4]) + if magic != b"\x7fELF": + raise ELFInvalid(f"invalid magic: {magic!r}") + + self.capacity = ident[4] # Format for program header (bitness). + self.encoding = ident[5] # Data structure encoding (endianness). + + try: + # e_fmt: Format for program header. + # p_fmt: Format for section header. + # p_idx: Indexes to find p_type, p_offset, and p_filesz. + e_fmt, self._p_fmt, self._p_idx = { + (1, 1): ("HHIIIIIHHH", ">IIIIIIII", (0, 1, 4)), # 32-bit MSB. + (2, 1): ("HHIQQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB. + }[(self.capacity, self.encoding)] + except KeyError: + raise ELFInvalid( + f"unrecognized capacity ({self.capacity}) or " + f"encoding ({self.encoding})" + ) + + try: + ( + _, + self.machine, # Architecture type. + _, + _, + self._e_phoff, # Offset of program header. + _, + self.flags, # Processor-specific flags. + _, + self._e_phentsize, # Size of section. + self._e_phnum, # Number of sections. + ) = self._read(e_fmt) + except struct.error as e: + raise ELFInvalid("unable to parse machine and section information") from e + + def _read(self, fmt: str) -> Tuple[int, ...]: + return struct.unpack(fmt, self._f.read(struct.calcsize(fmt))) + + @property + def interpreter(self) -> Optional[str]: + """ + The path recorded in the ``PT_INTERP`` section header. + """ + for index in range(self._e_phnum): + self._f.seek(self._e_phoff + self._e_phentsize * index) + try: + data = self._read(self._p_fmt) + except struct.error: + continue + if data[self._p_idx[0]] != 3: # Not PT_INTERP. + continue + self._f.seek(data[self._p_idx[1]]) + return os.fsdecode(self._f.read(data[self._p_idx[2]])).strip("\0") + return None diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py new file mode 100644 index 00000000000000..3705d50db9193e --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py @@ -0,0 +1,252 @@ +import collections +import contextlib +import functools +import os +import re +import sys +import warnings +from typing import Dict, Generator, Iterator, NamedTuple, Optional, Sequence, Tuple + +from ._elffile import EIClass, EIData, ELFFile, EMachine + +EF_ARM_ABIMASK = 0xFF000000 +EF_ARM_ABI_VER5 = 0x05000000 +EF_ARM_ABI_FLOAT_HARD = 0x00000400 + + +# `os.PathLike` not a generic type until Python 3.9, so sticking with `str` +# as the type for `path` until then. +@contextlib.contextmanager +def _parse_elf(path: str) -> Generator[Optional[ELFFile], None, None]: + try: + with open(path, "rb") as f: + yield ELFFile(f) + except (OSError, TypeError, ValueError): + yield None + + +def _is_linux_armhf(executable: str) -> bool: + # hard-float ABI can be detected from the ELF header of the running + # process + # https://static.docs.arm.com/ihi0044/g/aaelf32.pdf + with _parse_elf(executable) as f: + return ( + f is not None + and f.capacity == EIClass.C32 + and f.encoding == EIData.Lsb + and f.machine == EMachine.Arm + and f.flags & EF_ARM_ABIMASK == EF_ARM_ABI_VER5 + and f.flags & EF_ARM_ABI_FLOAT_HARD == EF_ARM_ABI_FLOAT_HARD + ) + + +def _is_linux_i686(executable: str) -> bool: + with _parse_elf(executable) as f: + return ( + f is not None + and f.capacity == EIClass.C32 + and f.encoding == EIData.Lsb + and f.machine == EMachine.I386 + ) + + +def _have_compatible_abi(executable: str, archs: Sequence[str]) -> bool: + if "armv7l" in archs: + return _is_linux_armhf(executable) + if "i686" in archs: + return _is_linux_i686(executable) + allowed_archs = {"x86_64", "aarch64", "ppc64", "ppc64le", "s390x", "loongarch64"} + return any(arch in allowed_archs for arch in archs) + + +# If glibc ever changes its major version, we need to know what the last +# minor version was, so we can build the complete list of all versions. +# For now, guess what the highest minor version might be, assume it will +# be 50 for testing. Once this actually happens, update the dictionary +# with the actual value. +_LAST_GLIBC_MINOR: Dict[int, int] = collections.defaultdict(lambda: 50) + + +class _GLibCVersion(NamedTuple): + major: int + minor: int + + +def _glibc_version_string_confstr() -> Optional[str]: + """ + Primary implementation of glibc_version_string using os.confstr. + """ + # os.confstr is quite a bit faster than ctypes.DLL. It's also less likely + # to be broken or missing. This strategy is used in the standard library + # platform module. + # https://github.com/python/cpython/blob/fcf1d003bf4f0100c/Lib/platform.py#L175-L183 + try: + # Should be a string like "glibc 2.17". + version_string: str = getattr(os, "confstr")("CS_GNU_LIBC_VERSION") + assert version_string is not None + _, version = version_string.rsplit() + except (AssertionError, AttributeError, OSError, ValueError): + # os.confstr() or CS_GNU_LIBC_VERSION not available (or a bad value)... + return None + return version + + +def _glibc_version_string_ctypes() -> Optional[str]: + """ + Fallback implementation of glibc_version_string using ctypes. + """ + try: + import ctypes + except ImportError: + return None + + # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen + # manpage says, "If filename is NULL, then the returned handle is for the + # main program". This way we can let the linker do the work to figure out + # which libc our process is actually using. + # + # We must also handle the special case where the executable is not a + # dynamically linked executable. This can occur when using musl libc, + # for example. In this situation, dlopen() will error, leading to an + # OSError. Interestingly, at least in the case of musl, there is no + # errno set on the OSError. The single string argument used to construct + # OSError comes from libc itself and is therefore not portable to + # hard code here. In any case, failure to call dlopen() means we + # can proceed, so we bail on our attempt. + try: + process_namespace = ctypes.CDLL(None) + except OSError: + return None + + try: + gnu_get_libc_version = process_namespace.gnu_get_libc_version + except AttributeError: + # Symbol doesn't exist -> therefore, we are not linked to + # glibc. + return None + + # Call gnu_get_libc_version, which returns a string like "2.5" + gnu_get_libc_version.restype = ctypes.c_char_p + version_str: str = gnu_get_libc_version() + # py2 / py3 compatibility: + if not isinstance(version_str, str): + version_str = version_str.decode("ascii") + + return version_str + + +def _glibc_version_string() -> Optional[str]: + """Returns glibc version string, or None if not using glibc.""" + return _glibc_version_string_confstr() or _glibc_version_string_ctypes() + + +def _parse_glibc_version(version_str: str) -> Tuple[int, int]: + """Parse glibc version. + + We use a regexp instead of str.split because we want to discard any + random junk that might come after the minor version -- this might happen + in patched/forked versions of glibc (e.g. Linaro's version of glibc + uses version strings like "2.20-2014.11"). See gh-3588. + """ + m = re.match(r"(?P[0-9]+)\.(?P[0-9]+)", version_str) + if not m: + warnings.warn( + f"Expected glibc version with 2 components major.minor," + f" got: {version_str}", + RuntimeWarning, + ) + return -1, -1 + return int(m.group("major")), int(m.group("minor")) + + +@functools.lru_cache() +def _get_glibc_version() -> Tuple[int, int]: + version_str = _glibc_version_string() + if version_str is None: + return (-1, -1) + return _parse_glibc_version(version_str) + + +# From PEP 513, PEP 600 +def _is_compatible(arch: str, version: _GLibCVersion) -> bool: + sys_glibc = _get_glibc_version() + if sys_glibc < version: + return False + # Check for presence of _manylinux module. + try: + import _manylinux # noqa + except ImportError: + return True + if hasattr(_manylinux, "manylinux_compatible"): + result = _manylinux.manylinux_compatible(version[0], version[1], arch) + if result is not None: + return bool(result) + return True + if version == _GLibCVersion(2, 5): + if hasattr(_manylinux, "manylinux1_compatible"): + return bool(_manylinux.manylinux1_compatible) + if version == _GLibCVersion(2, 12): + if hasattr(_manylinux, "manylinux2010_compatible"): + return bool(_manylinux.manylinux2010_compatible) + if version == _GLibCVersion(2, 17): + if hasattr(_manylinux, "manylinux2014_compatible"): + return bool(_manylinux.manylinux2014_compatible) + return True + + +_LEGACY_MANYLINUX_MAP = { + # CentOS 7 w/ glibc 2.17 (PEP 599) + (2, 17): "manylinux2014", + # CentOS 6 w/ glibc 2.12 (PEP 571) + (2, 12): "manylinux2010", + # CentOS 5 w/ glibc 2.5 (PEP 513) + (2, 5): "manylinux1", +} + + +def platform_tags(archs: Sequence[str]) -> Iterator[str]: + """Generate manylinux tags compatible to the current platform. + + :param archs: Sequence of compatible architectures. + The first one shall be the closest to the actual architecture and be the part of + platform tag after the ``linux_`` prefix, e.g. ``x86_64``. + The ``linux_`` prefix is assumed as a prerequisite for the current platform to + be manylinux-compatible. + + :returns: An iterator of compatible manylinux tags. + """ + if not _have_compatible_abi(sys.executable, archs): + return + # Oldest glibc to be supported regardless of architecture is (2, 17). + too_old_glibc2 = _GLibCVersion(2, 16) + if set(archs) & {"x86_64", "i686"}: + # On x86/i686 also oldest glibc to be supported is (2, 5). + too_old_glibc2 = _GLibCVersion(2, 4) + current_glibc = _GLibCVersion(*_get_glibc_version()) + glibc_max_list = [current_glibc] + # We can assume compatibility across glibc major versions. + # https://sourceware.org/bugzilla/show_bug.cgi?id=24636 + # + # Build a list of maximum glibc versions so that we can + # output the canonical list of all glibc from current_glibc + # down to too_old_glibc2, including all intermediary versions. + for glibc_major in range(current_glibc.major - 1, 1, -1): + glibc_minor = _LAST_GLIBC_MINOR[glibc_major] + glibc_max_list.append(_GLibCVersion(glibc_major, glibc_minor)) + for arch in archs: + for glibc_max in glibc_max_list: + if glibc_max.major == too_old_glibc2.major: + min_minor = too_old_glibc2.minor + else: + # For other glibc major versions oldest supported is (x, 0). + min_minor = -1 + for glibc_minor in range(glibc_max.minor, min_minor, -1): + glibc_version = _GLibCVersion(glibc_max.major, glibc_minor) + tag = "manylinux_{}_{}".format(*glibc_version) + if _is_compatible(arch, glibc_version): + yield f"{tag}_{arch}" + # Handle the legacy manylinux1, manylinux2010, manylinux2014 tags. + if glibc_version in _LEGACY_MANYLINUX_MAP: + legacy_tag = _LEGACY_MANYLINUX_MAP[glibc_version] + if _is_compatible(arch, glibc_version): + yield f"{legacy_tag}_{arch}" diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py new file mode 100644 index 00000000000000..86419df9d7087f --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py @@ -0,0 +1,83 @@ +"""PEP 656 support. + +This module implements logic to detect if the currently running Python is +linked against musl, and what musl version is used. +""" + +import functools +import re +import subprocess +import sys +from typing import Iterator, NamedTuple, Optional, Sequence + +from ._elffile import ELFFile + + +class _MuslVersion(NamedTuple): + major: int + minor: int + + +def _parse_musl_version(output: str) -> Optional[_MuslVersion]: + lines = [n for n in (n.strip() for n in output.splitlines()) if n] + if len(lines) < 2 or lines[0][:4] != "musl": + return None + m = re.match(r"Version (\d+)\.(\d+)", lines[1]) + if not m: + return None + return _MuslVersion(major=int(m.group(1)), minor=int(m.group(2))) + + +@functools.lru_cache() +def _get_musl_version(executable: str) -> Optional[_MuslVersion]: + """Detect currently-running musl runtime version. + + This is done by checking the specified executable's dynamic linking + information, and invoking the loader to parse its output for a version + string. If the loader is musl, the output would be something like:: + + musl libc (x86_64) + Version 1.2.2 + Dynamic Program Loader + """ + try: + with open(executable, "rb") as f: + ld = ELFFile(f).interpreter + except (OSError, TypeError, ValueError): + return None + if ld is None or "musl" not in ld: + return None + proc = subprocess.run([ld], stderr=subprocess.PIPE, text=True) + return _parse_musl_version(proc.stderr) + + +def platform_tags(archs: Sequence[str]) -> Iterator[str]: + """Generate musllinux tags compatible to the current platform. + + :param archs: Sequence of compatible architectures. + The first one shall be the closest to the actual architecture and be the part of + platform tag after the ``linux_`` prefix, e.g. ``x86_64``. + The ``linux_`` prefix is assumed as a prerequisite for the current platform to + be musllinux-compatible. + + :returns: An iterator of compatible musllinux tags. + """ + sys_musl = _get_musl_version(sys.executable) + if sys_musl is None: # Python not dynamically linked against musl. + return + for arch in archs: + for minor in range(sys_musl.minor, -1, -1): + yield f"musllinux_{sys_musl.major}_{minor}_{arch}" + + +if __name__ == "__main__": # pragma: no cover + import sysconfig + + plat = sysconfig.get_platform() + assert plat.startswith("linux-"), "not linux" + + print("plat:", plat) + print("musl:", _get_musl_version(sys.executable)) + print("tags:", end=" ") + for t in platform_tags(re.sub(r"[.-]", "_", plat.split("-", 1)[-1])): + print(t, end="\n ") diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_parser.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_parser.py new file mode 100644 index 00000000000000..4576981c2dd755 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_parser.py @@ -0,0 +1,359 @@ +"""Handwritten parser of dependency specifiers. + +The docstring for each __parse_* function contains ENBF-inspired grammar representing +the implementation. +""" + +import ast +from typing import Any, List, NamedTuple, Optional, Tuple, Union + +from ._tokenizer import DEFAULT_RULES, Tokenizer + + +class Node: + def __init__(self, value: str) -> None: + self.value = value + + def __str__(self) -> str: + return self.value + + def __repr__(self) -> str: + return f"<{self.__class__.__name__}('{self}')>" + + def serialize(self) -> str: + raise NotImplementedError + + +class Variable(Node): + def serialize(self) -> str: + return str(self) + + +class Value(Node): + def serialize(self) -> str: + return f'"{self}"' + + +class Op(Node): + def serialize(self) -> str: + return str(self) + + +MarkerVar = Union[Variable, Value] +MarkerItem = Tuple[MarkerVar, Op, MarkerVar] +# MarkerAtom = Union[MarkerItem, List["MarkerAtom"]] +# MarkerList = List[Union["MarkerList", MarkerAtom, str]] +# mypy does not support recursive type definition +# https://github.com/python/mypy/issues/731 +MarkerAtom = Any +MarkerList = List[Any] + + +class ParsedRequirement(NamedTuple): + name: str + url: str + extras: List[str] + specifier: str + marker: Optional[MarkerList] + + +# -------------------------------------------------------------------------------------- +# Recursive descent parser for dependency specifier +# -------------------------------------------------------------------------------------- +def parse_requirement(source: str) -> ParsedRequirement: + return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES)) + + +def _parse_requirement(tokenizer: Tokenizer) -> ParsedRequirement: + """ + requirement = WS? IDENTIFIER WS? extras WS? requirement_details + """ + tokenizer.consume("WS") + + name_token = tokenizer.expect( + "IDENTIFIER", expected="package name at the start of dependency specifier" + ) + name = name_token.text + tokenizer.consume("WS") + + extras = _parse_extras(tokenizer) + tokenizer.consume("WS") + + url, specifier, marker = _parse_requirement_details(tokenizer) + tokenizer.expect("END", expected="end of dependency specifier") + + return ParsedRequirement(name, url, extras, specifier, marker) + + +def _parse_requirement_details( + tokenizer: Tokenizer, +) -> Tuple[str, str, Optional[MarkerList]]: + """ + requirement_details = AT URL (WS requirement_marker?)? + | specifier WS? (requirement_marker)? + """ + + specifier = "" + url = "" + marker = None + + if tokenizer.check("AT"): + tokenizer.read() + tokenizer.consume("WS") + + url_start = tokenizer.position + url = tokenizer.expect("URL", expected="URL after @").text + if tokenizer.check("END", peek=True): + return (url, specifier, marker) + + tokenizer.expect("WS", expected="whitespace after URL") + + # The input might end after whitespace. + if tokenizer.check("END", peek=True): + return (url, specifier, marker) + + marker = _parse_requirement_marker( + tokenizer, span_start=url_start, after="URL and whitespace" + ) + else: + specifier_start = tokenizer.position + specifier = _parse_specifier(tokenizer) + tokenizer.consume("WS") + + if tokenizer.check("END", peek=True): + return (url, specifier, marker) + + marker = _parse_requirement_marker( + tokenizer, + span_start=specifier_start, + after=( + "version specifier" + if specifier + else "name and no valid version specifier" + ), + ) + + return (url, specifier, marker) + + +def _parse_requirement_marker( + tokenizer: Tokenizer, *, span_start: int, after: str +) -> MarkerList: + """ + requirement_marker = SEMICOLON marker WS? + """ + + if not tokenizer.check("SEMICOLON"): + tokenizer.raise_syntax_error( + f"Expected end or semicolon (after {after})", + span_start=span_start, + ) + tokenizer.read() + + marker = _parse_marker(tokenizer) + tokenizer.consume("WS") + + return marker + + +def _parse_extras(tokenizer: Tokenizer) -> List[str]: + """ + extras = (LEFT_BRACKET wsp* extras_list? wsp* RIGHT_BRACKET)? + """ + if not tokenizer.check("LEFT_BRACKET", peek=True): + return [] + + with tokenizer.enclosing_tokens( + "LEFT_BRACKET", + "RIGHT_BRACKET", + around="extras", + ): + tokenizer.consume("WS") + extras = _parse_extras_list(tokenizer) + tokenizer.consume("WS") + + return extras + + +def _parse_extras_list(tokenizer: Tokenizer) -> List[str]: + """ + extras_list = identifier (wsp* ',' wsp* identifier)* + """ + extras: List[str] = [] + + if not tokenizer.check("IDENTIFIER"): + return extras + + extras.append(tokenizer.read().text) + + while True: + tokenizer.consume("WS") + if tokenizer.check("IDENTIFIER", peek=True): + tokenizer.raise_syntax_error("Expected comma between extra names") + elif not tokenizer.check("COMMA"): + break + + tokenizer.read() + tokenizer.consume("WS") + + extra_token = tokenizer.expect("IDENTIFIER", expected="extra name after comma") + extras.append(extra_token.text) + + return extras + + +def _parse_specifier(tokenizer: Tokenizer) -> str: + """ + specifier = LEFT_PARENTHESIS WS? version_many WS? RIGHT_PARENTHESIS + | WS? version_many WS? + """ + with tokenizer.enclosing_tokens( + "LEFT_PARENTHESIS", + "RIGHT_PARENTHESIS", + around="version specifier", + ): + tokenizer.consume("WS") + parsed_specifiers = _parse_version_many(tokenizer) + tokenizer.consume("WS") + + return parsed_specifiers + + +def _parse_version_many(tokenizer: Tokenizer) -> str: + """ + version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)? + """ + parsed_specifiers = "" + while tokenizer.check("SPECIFIER"): + span_start = tokenizer.position + parsed_specifiers += tokenizer.read().text + if tokenizer.check("VERSION_PREFIX_TRAIL", peek=True): + tokenizer.raise_syntax_error( + ".* suffix can only be used with `==` or `!=` operators", + span_start=span_start, + span_end=tokenizer.position + 1, + ) + if tokenizer.check("VERSION_LOCAL_LABEL_TRAIL", peek=True): + tokenizer.raise_syntax_error( + "Local version label can only be used with `==` or `!=` operators", + span_start=span_start, + span_end=tokenizer.position, + ) + tokenizer.consume("WS") + if not tokenizer.check("COMMA"): + break + parsed_specifiers += tokenizer.read().text + tokenizer.consume("WS") + + return parsed_specifiers + + +# -------------------------------------------------------------------------------------- +# Recursive descent parser for marker expression +# -------------------------------------------------------------------------------------- +def parse_marker(source: str) -> MarkerList: + return _parse_full_marker(Tokenizer(source, rules=DEFAULT_RULES)) + + +def _parse_full_marker(tokenizer: Tokenizer) -> MarkerList: + retval = _parse_marker(tokenizer) + tokenizer.expect("END", expected="end of marker expression") + return retval + + +def _parse_marker(tokenizer: Tokenizer) -> MarkerList: + """ + marker = marker_atom (BOOLOP marker_atom)+ + """ + expression = [_parse_marker_atom(tokenizer)] + while tokenizer.check("BOOLOP"): + token = tokenizer.read() + expr_right = _parse_marker_atom(tokenizer) + expression.extend((token.text, expr_right)) + return expression + + +def _parse_marker_atom(tokenizer: Tokenizer) -> MarkerAtom: + """ + marker_atom = WS? LEFT_PARENTHESIS WS? marker WS? RIGHT_PARENTHESIS WS? + | WS? marker_item WS? + """ + + tokenizer.consume("WS") + if tokenizer.check("LEFT_PARENTHESIS", peek=True): + with tokenizer.enclosing_tokens( + "LEFT_PARENTHESIS", + "RIGHT_PARENTHESIS", + around="marker expression", + ): + tokenizer.consume("WS") + marker: MarkerAtom = _parse_marker(tokenizer) + tokenizer.consume("WS") + else: + marker = _parse_marker_item(tokenizer) + tokenizer.consume("WS") + return marker + + +def _parse_marker_item(tokenizer: Tokenizer) -> MarkerItem: + """ + marker_item = WS? marker_var WS? marker_op WS? marker_var WS? + """ + tokenizer.consume("WS") + marker_var_left = _parse_marker_var(tokenizer) + tokenizer.consume("WS") + marker_op = _parse_marker_op(tokenizer) + tokenizer.consume("WS") + marker_var_right = _parse_marker_var(tokenizer) + tokenizer.consume("WS") + return (marker_var_left, marker_op, marker_var_right) + + +def _parse_marker_var(tokenizer: Tokenizer) -> MarkerVar: + """ + marker_var = VARIABLE | QUOTED_STRING + """ + if tokenizer.check("VARIABLE"): + return process_env_var(tokenizer.read().text.replace(".", "_")) + elif tokenizer.check("QUOTED_STRING"): + return process_python_str(tokenizer.read().text) + else: + tokenizer.raise_syntax_error( + message="Expected a marker variable or quoted string" + ) + + +def process_env_var(env_var: str) -> Variable: + if ( + env_var == "platform_python_implementation" + or env_var == "python_implementation" + ): + return Variable("platform_python_implementation") + else: + return Variable(env_var) + + +def process_python_str(python_str: str) -> Value: + value = ast.literal_eval(python_str) + return Value(str(value)) + + +def _parse_marker_op(tokenizer: Tokenizer) -> Op: + """ + marker_op = IN | NOT IN | OP + """ + if tokenizer.check("IN"): + tokenizer.read() + return Op("in") + elif tokenizer.check("NOT"): + tokenizer.read() + tokenizer.expect("WS", expected="whitespace after 'not'") + tokenizer.expect("IN", expected="'in' after 'not'") + return Op("not in") + elif tokenizer.check("OP"): + return Op(tokenizer.read().text) + else: + return tokenizer.raise_syntax_error( + "Expected marker operator, one of " + "<=, <, !=, ==, >=, >, ~=, ===, in, not in" + ) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_structures.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_structures.py new file mode 100644 index 00000000000000..90a6465f9682c8 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_structures.py @@ -0,0 +1,61 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + + +class InfinityType: + def __repr__(self) -> str: + return "Infinity" + + def __hash__(self) -> int: + return hash(repr(self)) + + def __lt__(self, other: object) -> bool: + return False + + def __le__(self, other: object) -> bool: + return False + + def __eq__(self, other: object) -> bool: + return isinstance(other, self.__class__) + + def __gt__(self, other: object) -> bool: + return True + + def __ge__(self, other: object) -> bool: + return True + + def __neg__(self: object) -> "NegativeInfinityType": + return NegativeInfinity + + +Infinity = InfinityType() + + +class NegativeInfinityType: + def __repr__(self) -> str: + return "-Infinity" + + def __hash__(self) -> int: + return hash(repr(self)) + + def __lt__(self, other: object) -> bool: + return True + + def __le__(self, other: object) -> bool: + return True + + def __eq__(self, other: object) -> bool: + return isinstance(other, self.__class__) + + def __gt__(self, other: object) -> bool: + return False + + def __ge__(self, other: object) -> bool: + return False + + def __neg__(self: object) -> InfinityType: + return Infinity + + +NegativeInfinity = NegativeInfinityType() diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py new file mode 100644 index 00000000000000..dd0d648d49a7c1 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py @@ -0,0 +1,192 @@ +import contextlib +import re +from dataclasses import dataclass +from typing import Dict, Iterator, NoReturn, Optional, Tuple, Union + +from .specifiers import Specifier + + +@dataclass +class Token: + name: str + text: str + position: int + + +class ParserSyntaxError(Exception): + """The provided source text could not be parsed correctly.""" + + def __init__( + self, + message: str, + *, + source: str, + span: Tuple[int, int], + ) -> None: + self.span = span + self.message = message + self.source = source + + super().__init__() + + def __str__(self) -> str: + marker = " " * self.span[0] + "~" * (self.span[1] - self.span[0]) + "^" + return "\n ".join([self.message, self.source, marker]) + + +DEFAULT_RULES: "Dict[str, Union[str, re.Pattern[str]]]" = { + "LEFT_PARENTHESIS": r"\(", + "RIGHT_PARENTHESIS": r"\)", + "LEFT_BRACKET": r"\[", + "RIGHT_BRACKET": r"\]", + "SEMICOLON": r";", + "COMMA": r",", + "QUOTED_STRING": re.compile( + r""" + ( + ('[^']*') + | + ("[^"]*") + ) + """, + re.VERBOSE, + ), + "OP": r"(===|==|~=|!=|<=|>=|<|>)", + "BOOLOP": r"\b(or|and)\b", + "IN": r"\bin\b", + "NOT": r"\bnot\b", + "VARIABLE": re.compile( + r""" + \b( + python_version + |python_full_version + |os[._]name + |sys[._]platform + |platform_(release|system) + |platform[._](version|machine|python_implementation) + |python_implementation + |implementation_(name|version) + |extra + )\b + """, + re.VERBOSE, + ), + "SPECIFIER": re.compile( + Specifier._operator_regex_str + Specifier._version_regex_str, + re.VERBOSE | re.IGNORECASE, + ), + "AT": r"\@", + "URL": r"[^ \t]+", + "IDENTIFIER": r"\b[a-zA-Z0-9][a-zA-Z0-9._-]*\b", + "VERSION_PREFIX_TRAIL": r"\.\*", + "VERSION_LOCAL_LABEL_TRAIL": r"\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*", + "WS": r"[ \t]+", + "END": r"$", +} + + +class Tokenizer: + """Context-sensitive token parsing. + + Provides methods to examine the input stream to check whether the next token + matches. + """ + + def __init__( + self, + source: str, + *, + rules: "Dict[str, Union[str, re.Pattern[str]]]", + ) -> None: + self.source = source + self.rules: Dict[str, re.Pattern[str]] = { + name: re.compile(pattern) for name, pattern in rules.items() + } + self.next_token: Optional[Token] = None + self.position = 0 + + def consume(self, name: str) -> None: + """Move beyond provided token name, if at current position.""" + if self.check(name): + self.read() + + def check(self, name: str, *, peek: bool = False) -> bool: + """Check whether the next token has the provided name. + + By default, if the check succeeds, the token *must* be read before + another check. If `peek` is set to `True`, the token is not loaded and + would need to be checked again. + """ + assert ( + self.next_token is None + ), f"Cannot check for {name!r}, already have {self.next_token!r}" + assert name in self.rules, f"Unknown token name: {name!r}" + + expression = self.rules[name] + + match = expression.match(self.source, self.position) + if match is None: + return False + if not peek: + self.next_token = Token(name, match[0], self.position) + return True + + def expect(self, name: str, *, expected: str) -> Token: + """Expect a certain token name next, failing with a syntax error otherwise. + + The token is *not* read. + """ + if not self.check(name): + raise self.raise_syntax_error(f"Expected {expected}") + return self.read() + + def read(self) -> Token: + """Consume the next token and return it.""" + token = self.next_token + assert token is not None + + self.position += len(token.text) + self.next_token = None + + return token + + def raise_syntax_error( + self, + message: str, + *, + span_start: Optional[int] = None, + span_end: Optional[int] = None, + ) -> NoReturn: + """Raise ParserSyntaxError at the given position.""" + span = ( + self.position if span_start is None else span_start, + self.position if span_end is None else span_end, + ) + raise ParserSyntaxError( + message, + source=self.source, + span=span, + ) + + @contextlib.contextmanager + def enclosing_tokens( + self, open_token: str, close_token: str, *, around: str + ) -> Iterator[None]: + if self.check(open_token): + open_position = self.position + self.read() + else: + open_position = None + + yield + + if open_position is None: + return + + if not self.check(close_token): + self.raise_syntax_error( + f"Expected matching {close_token} for {open_token}, after {around}", + span_start=open_position, + ) + + self.read() diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/markers.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/markers.py new file mode 100644 index 00000000000000..8b98fca7233be6 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/markers.py @@ -0,0 +1,252 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +import operator +import os +import platform +import sys +from typing import Any, Callable, Dict, List, Optional, Tuple, Union + +from ._parser import ( + MarkerAtom, + MarkerList, + Op, + Value, + Variable, + parse_marker as _parse_marker, +) +from ._tokenizer import ParserSyntaxError +from .specifiers import InvalidSpecifier, Specifier +from .utils import canonicalize_name + +__all__ = [ + "InvalidMarker", + "UndefinedComparison", + "UndefinedEnvironmentName", + "Marker", + "default_environment", +] + +Operator = Callable[[str, str], bool] + + +class InvalidMarker(ValueError): + """ + An invalid marker was found, users should refer to PEP 508. + """ + + +class UndefinedComparison(ValueError): + """ + An invalid operation was attempted on a value that doesn't support it. + """ + + +class UndefinedEnvironmentName(ValueError): + """ + A name was attempted to be used that does not exist inside of the + environment. + """ + + +def _normalize_extra_values(results: Any) -> Any: + """ + Normalize extra values. + """ + if isinstance(results[0], tuple): + lhs, op, rhs = results[0] + if isinstance(lhs, Variable) and lhs.value == "extra": + normalized_extra = canonicalize_name(rhs.value) + rhs = Value(normalized_extra) + elif isinstance(rhs, Variable) and rhs.value == "extra": + normalized_extra = canonicalize_name(lhs.value) + lhs = Value(normalized_extra) + results[0] = lhs, op, rhs + return results + + +def _format_marker( + marker: Union[List[str], MarkerAtom, str], first: Optional[bool] = True +) -> str: + + assert isinstance(marker, (list, tuple, str)) + + # Sometimes we have a structure like [[...]] which is a single item list + # where the single item is itself it's own list. In that case we want skip + # the rest of this function so that we don't get extraneous () on the + # outside. + if ( + isinstance(marker, list) + and len(marker) == 1 + and isinstance(marker[0], (list, tuple)) + ): + return _format_marker(marker[0]) + + if isinstance(marker, list): + inner = (_format_marker(m, first=False) for m in marker) + if first: + return " ".join(inner) + else: + return "(" + " ".join(inner) + ")" + elif isinstance(marker, tuple): + return " ".join([m.serialize() for m in marker]) + else: + return marker + + +_operators: Dict[str, Operator] = { + "in": lambda lhs, rhs: lhs in rhs, + "not in": lambda lhs, rhs: lhs not in rhs, + "<": operator.lt, + "<=": operator.le, + "==": operator.eq, + "!=": operator.ne, + ">=": operator.ge, + ">": operator.gt, +} + + +def _eval_op(lhs: str, op: Op, rhs: str) -> bool: + try: + spec = Specifier("".join([op.serialize(), rhs])) + except InvalidSpecifier: + pass + else: + return spec.contains(lhs, prereleases=True) + + oper: Optional[Operator] = _operators.get(op.serialize()) + if oper is None: + raise UndefinedComparison(f"Undefined {op!r} on {lhs!r} and {rhs!r}.") + + return oper(lhs, rhs) + + +def _normalize(*values: str, key: str) -> Tuple[str, ...]: + # PEP 685 – Comparison of extra names for optional distribution dependencies + # https://peps.python.org/pep-0685/ + # > When comparing extra names, tools MUST normalize the names being + # > compared using the semantics outlined in PEP 503 for names + if key == "extra": + return tuple(canonicalize_name(v) for v in values) + + # other environment markers don't have such standards + return values + + +def _evaluate_markers(markers: MarkerList, environment: Dict[str, str]) -> bool: + groups: List[List[bool]] = [[]] + + for marker in markers: + assert isinstance(marker, (list, tuple, str)) + + if isinstance(marker, list): + groups[-1].append(_evaluate_markers(marker, environment)) + elif isinstance(marker, tuple): + lhs, op, rhs = marker + + if isinstance(lhs, Variable): + environment_key = lhs.value + lhs_value = environment[environment_key] + rhs_value = rhs.value + else: + lhs_value = lhs.value + environment_key = rhs.value + rhs_value = environment[environment_key] + + lhs_value, rhs_value = _normalize(lhs_value, rhs_value, key=environment_key) + groups[-1].append(_eval_op(lhs_value, op, rhs_value)) + else: + assert marker in ["and", "or"] + if marker == "or": + groups.append([]) + + return any(all(item) for item in groups) + + +def format_full_version(info: "sys._version_info") -> str: + version = "{0.major}.{0.minor}.{0.micro}".format(info) + kind = info.releaselevel + if kind != "final": + version += kind[0] + str(info.serial) + return version + + +def default_environment() -> Dict[str, str]: + iver = format_full_version(sys.implementation.version) + implementation_name = sys.implementation.name + return { + "implementation_name": implementation_name, + "implementation_version": iver, + "os_name": os.name, + "platform_machine": platform.machine(), + "platform_release": platform.release(), + "platform_system": platform.system(), + "platform_version": platform.version(), + "python_full_version": platform.python_version(), + "platform_python_implementation": platform.python_implementation(), + "python_version": ".".join(platform.python_version_tuple()[:2]), + "sys_platform": sys.platform, + } + + +class Marker: + def __init__(self, marker: str) -> None: + # Note: We create a Marker object without calling this constructor in + # packaging.requirements.Requirement. If any additional logic is + # added here, make sure to mirror/adapt Requirement. + try: + self._markers = _normalize_extra_values(_parse_marker(marker)) + # The attribute `_markers` can be described in terms of a recursive type: + # MarkerList = List[Union[Tuple[Node, ...], str, MarkerList]] + # + # For example, the following expression: + # python_version > "3.6" or (python_version == "3.6" and os_name == "unix") + # + # is parsed into: + # [ + # (, ')>, ), + # 'and', + # [ + # (, , ), + # 'or', + # (, , ) + # ] + # ] + except ParserSyntaxError as e: + raise InvalidMarker(str(e)) from e + + def __str__(self) -> str: + return _format_marker(self._markers) + + def __repr__(self) -> str: + return f"" + + def __hash__(self) -> int: + return hash((self.__class__.__name__, str(self))) + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, Marker): + return NotImplemented + + return str(self) == str(other) + + def evaluate(self, environment: Optional[Dict[str, str]] = None) -> bool: + """Evaluate a marker. + + Return the boolean from evaluating the given marker against the + environment. environment is an optional argument to override all or + part of the determined environment. + + The environment is determined from the current Python process. + """ + current_environment = default_environment() + current_environment["extra"] = "" + if environment is not None: + current_environment.update(environment) + # The API used to allow setting extra to None. We need to handle this + # case for backwards compatibility. + if current_environment["extra"] is None: + current_environment["extra"] = "" + + return _evaluate_markers(self._markers, current_environment) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/metadata.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/metadata.py new file mode 100644 index 00000000000000..fb274930799da0 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/metadata.py @@ -0,0 +1,825 @@ +import email.feedparser +import email.header +import email.message +import email.parser +import email.policy +import sys +import typing +from typing import ( + Any, + Callable, + Dict, + Generic, + List, + Optional, + Tuple, + Type, + Union, + cast, +) + +from . import requirements, specifiers, utils, version as version_module + +T = typing.TypeVar("T") +if sys.version_info[:2] >= (3, 8): # pragma: no cover + from typing import Literal, TypedDict +else: # pragma: no cover + if typing.TYPE_CHECKING: + from typing_extensions import Literal, TypedDict + else: + try: + from typing_extensions import Literal, TypedDict + except ImportError: + + class Literal: + def __init_subclass__(*_args, **_kwargs): + pass + + class TypedDict: + def __init_subclass__(*_args, **_kwargs): + pass + + +try: + ExceptionGroup +except NameError: # pragma: no cover + + class ExceptionGroup(Exception): # noqa: N818 + """A minimal implementation of :external:exc:`ExceptionGroup` from Python 3.11. + + If :external:exc:`ExceptionGroup` is already defined by Python itself, + that version is used instead. + """ + + message: str + exceptions: List[Exception] + + def __init__(self, message: str, exceptions: List[Exception]) -> None: + self.message = message + self.exceptions = exceptions + + def __repr__(self) -> str: + return f"{self.__class__.__name__}({self.message!r}, {self.exceptions!r})" + +else: # pragma: no cover + ExceptionGroup = ExceptionGroup + + +class InvalidMetadata(ValueError): + """A metadata field contains invalid data.""" + + field: str + """The name of the field that contains invalid data.""" + + def __init__(self, field: str, message: str) -> None: + self.field = field + super().__init__(message) + + +# The RawMetadata class attempts to make as few assumptions about the underlying +# serialization formats as possible. The idea is that as long as a serialization +# formats offer some very basic primitives in *some* way then we can support +# serializing to and from that format. +class RawMetadata(TypedDict, total=False): + """A dictionary of raw core metadata. + + Each field in core metadata maps to a key of this dictionary (when data is + provided). The key is lower-case and underscores are used instead of dashes + compared to the equivalent core metadata field. Any core metadata field that + can be specified multiple times or can hold multiple values in a single + field have a key with a plural name. See :class:`Metadata` whose attributes + match the keys of this dictionary. + + Core metadata fields that can be specified multiple times are stored as a + list or dict depending on which is appropriate for the field. Any fields + which hold multiple values in a single field are stored as a list. + + """ + + # Metadata 1.0 - PEP 241 + metadata_version: str + name: str + version: str + platforms: List[str] + summary: str + description: str + keywords: List[str] + home_page: str + author: str + author_email: str + license: str + + # Metadata 1.1 - PEP 314 + supported_platforms: List[str] + download_url: str + classifiers: List[str] + requires: List[str] + provides: List[str] + obsoletes: List[str] + + # Metadata 1.2 - PEP 345 + maintainer: str + maintainer_email: str + requires_dist: List[str] + provides_dist: List[str] + obsoletes_dist: List[str] + requires_python: str + requires_external: List[str] + project_urls: Dict[str, str] + + # Metadata 2.0 + # PEP 426 attempted to completely revamp the metadata format + # but got stuck without ever being able to build consensus on + # it and ultimately ended up withdrawn. + # + # However, a number of tools had started emitting METADATA with + # `2.0` Metadata-Version, so for historical reasons, this version + # was skipped. + + # Metadata 2.1 - PEP 566 + description_content_type: str + provides_extra: List[str] + + # Metadata 2.2 - PEP 643 + dynamic: List[str] + + # Metadata 2.3 - PEP 685 + # No new fields were added in PEP 685, just some edge case were + # tightened up to provide better interoptability. + + +_STRING_FIELDS = { + "author", + "author_email", + "description", + "description_content_type", + "download_url", + "home_page", + "license", + "maintainer", + "maintainer_email", + "metadata_version", + "name", + "requires_python", + "summary", + "version", +} + +_LIST_FIELDS = { + "classifiers", + "dynamic", + "obsoletes", + "obsoletes_dist", + "platforms", + "provides", + "provides_dist", + "provides_extra", + "requires", + "requires_dist", + "requires_external", + "supported_platforms", +} + +_DICT_FIELDS = { + "project_urls", +} + + +def _parse_keywords(data: str) -> List[str]: + """Split a string of comma-separate keyboards into a list of keywords.""" + return [k.strip() for k in data.split(",")] + + +def _parse_project_urls(data: List[str]) -> Dict[str, str]: + """Parse a list of label/URL string pairings separated by a comma.""" + urls = {} + for pair in data: + # Our logic is slightly tricky here as we want to try and do + # *something* reasonable with malformed data. + # + # The main thing that we have to worry about, is data that does + # not have a ',' at all to split the label from the Value. There + # isn't a singular right answer here, and we will fail validation + # later on (if the caller is validating) so it doesn't *really* + # matter, but since the missing value has to be an empty str + # and our return value is dict[str, str], if we let the key + # be the missing value, then they'd have multiple '' values that + # overwrite each other in a accumulating dict. + # + # The other potentional issue is that it's possible to have the + # same label multiple times in the metadata, with no solid "right" + # answer with what to do in that case. As such, we'll do the only + # thing we can, which is treat the field as unparseable and add it + # to our list of unparsed fields. + parts = [p.strip() for p in pair.split(",", 1)] + parts.extend([""] * (max(0, 2 - len(parts)))) # Ensure 2 items + + # TODO: The spec doesn't say anything about if the keys should be + # considered case sensitive or not... logically they should + # be case-preserving and case-insensitive, but doing that + # would open up more cases where we might have duplicate + # entries. + label, url = parts + if label in urls: + # The label already exists in our set of urls, so this field + # is unparseable, and we can just add the whole thing to our + # unparseable data and stop processing it. + raise KeyError("duplicate labels in project urls") + urls[label] = url + + return urls + + +def _get_payload(msg: email.message.Message, source: Union[bytes, str]) -> str: + """Get the body of the message.""" + # If our source is a str, then our caller has managed encodings for us, + # and we don't need to deal with it. + if isinstance(source, str): + payload: str = msg.get_payload() + return payload + # If our source is a bytes, then we're managing the encoding and we need + # to deal with it. + else: + bpayload: bytes = msg.get_payload(decode=True) + try: + return bpayload.decode("utf8", "strict") + except UnicodeDecodeError: + raise ValueError("payload in an invalid encoding") + + +# The various parse_FORMAT functions here are intended to be as lenient as +# possible in their parsing, while still returning a correctly typed +# RawMetadata. +# +# To aid in this, we also generally want to do as little touching of the +# data as possible, except where there are possibly some historic holdovers +# that make valid data awkward to work with. +# +# While this is a lower level, intermediate format than our ``Metadata`` +# class, some light touch ups can make a massive difference in usability. + +# Map METADATA fields to RawMetadata. +_EMAIL_TO_RAW_MAPPING = { + "author": "author", + "author-email": "author_email", + "classifier": "classifiers", + "description": "description", + "description-content-type": "description_content_type", + "download-url": "download_url", + "dynamic": "dynamic", + "home-page": "home_page", + "keywords": "keywords", + "license": "license", + "maintainer": "maintainer", + "maintainer-email": "maintainer_email", + "metadata-version": "metadata_version", + "name": "name", + "obsoletes": "obsoletes", + "obsoletes-dist": "obsoletes_dist", + "platform": "platforms", + "project-url": "project_urls", + "provides": "provides", + "provides-dist": "provides_dist", + "provides-extra": "provides_extra", + "requires": "requires", + "requires-dist": "requires_dist", + "requires-external": "requires_external", + "requires-python": "requires_python", + "summary": "summary", + "supported-platform": "supported_platforms", + "version": "version", +} +_RAW_TO_EMAIL_MAPPING = {raw: email for email, raw in _EMAIL_TO_RAW_MAPPING.items()} + + +def parse_email(data: Union[bytes, str]) -> Tuple[RawMetadata, Dict[str, List[str]]]: + """Parse a distribution's metadata stored as email headers (e.g. from ``METADATA``). + + This function returns a two-item tuple of dicts. The first dict is of + recognized fields from the core metadata specification. Fields that can be + parsed and translated into Python's built-in types are converted + appropriately. All other fields are left as-is. Fields that are allowed to + appear multiple times are stored as lists. + + The second dict contains all other fields from the metadata. This includes + any unrecognized fields. It also includes any fields which are expected to + be parsed into a built-in type but were not formatted appropriately. Finally, + any fields that are expected to appear only once but are repeated are + included in this dict. + + """ + raw: Dict[str, Union[str, List[str], Dict[str, str]]] = {} + unparsed: Dict[str, List[str]] = {} + + if isinstance(data, str): + parsed = email.parser.Parser(policy=email.policy.compat32).parsestr(data) + else: + parsed = email.parser.BytesParser(policy=email.policy.compat32).parsebytes(data) + + # We have to wrap parsed.keys() in a set, because in the case of multiple + # values for a key (a list), the key will appear multiple times in the + # list of keys, but we're avoiding that by using get_all(). + for name in frozenset(parsed.keys()): + # Header names in RFC are case insensitive, so we'll normalize to all + # lower case to make comparisons easier. + name = name.lower() + + # We use get_all() here, even for fields that aren't multiple use, + # because otherwise someone could have e.g. two Name fields, and we + # would just silently ignore it rather than doing something about it. + headers = parsed.get_all(name) or [] + + # The way the email module works when parsing bytes is that it + # unconditionally decodes the bytes as ascii using the surrogateescape + # handler. When you pull that data back out (such as with get_all() ), + # it looks to see if the str has any surrogate escapes, and if it does + # it wraps it in a Header object instead of returning the string. + # + # As such, we'll look for those Header objects, and fix up the encoding. + value = [] + # Flag if we have run into any issues processing the headers, thus + # signalling that the data belongs in 'unparsed'. + valid_encoding = True + for h in headers: + # It's unclear if this can return more types than just a Header or + # a str, so we'll just assert here to make sure. + assert isinstance(h, (email.header.Header, str)) + + # If it's a header object, we need to do our little dance to get + # the real data out of it. In cases where there is invalid data + # we're going to end up with mojibake, but there's no obvious, good + # way around that without reimplementing parts of the Header object + # ourselves. + # + # That should be fine since, if mojibacked happens, this key is + # going into the unparsed dict anyways. + if isinstance(h, email.header.Header): + # The Header object stores it's data as chunks, and each chunk + # can be independently encoded, so we'll need to check each + # of them. + chunks: List[Tuple[bytes, Optional[str]]] = [] + for bin, encoding in email.header.decode_header(h): + try: + bin.decode("utf8", "strict") + except UnicodeDecodeError: + # Enable mojibake. + encoding = "latin1" + valid_encoding = False + else: + encoding = "utf8" + chunks.append((bin, encoding)) + + # Turn our chunks back into a Header object, then let that + # Header object do the right thing to turn them into a + # string for us. + value.append(str(email.header.make_header(chunks))) + # This is already a string, so just add it. + else: + value.append(h) + + # We've processed all of our values to get them into a list of str, + # but we may have mojibake data, in which case this is an unparsed + # field. + if not valid_encoding: + unparsed[name] = value + continue + + raw_name = _EMAIL_TO_RAW_MAPPING.get(name) + if raw_name is None: + # This is a bit of a weird situation, we've encountered a key that + # we don't know what it means, so we don't know whether it's meant + # to be a list or not. + # + # Since we can't really tell one way or another, we'll just leave it + # as a list, even though it may be a single item list, because that's + # what makes the most sense for email headers. + unparsed[name] = value + continue + + # If this is one of our string fields, then we'll check to see if our + # value is a list of a single item. If it is then we'll assume that + # it was emitted as a single string, and unwrap the str from inside + # the list. + # + # If it's any other kind of data, then we haven't the faintest clue + # what we should parse it as, and we have to just add it to our list + # of unparsed stuff. + if raw_name in _STRING_FIELDS and len(value) == 1: + raw[raw_name] = value[0] + # If this is one of our list of string fields, then we can just assign + # the value, since email *only* has strings, and our get_all() call + # above ensures that this is a list. + elif raw_name in _LIST_FIELDS: + raw[raw_name] = value + # Special Case: Keywords + # The keywords field is implemented in the metadata spec as a str, + # but it conceptually is a list of strings, and is serialized using + # ", ".join(keywords), so we'll do some light data massaging to turn + # this into what it logically is. + elif raw_name == "keywords" and len(value) == 1: + raw[raw_name] = _parse_keywords(value[0]) + # Special Case: Project-URL + # The project urls is implemented in the metadata spec as a list of + # specially-formatted strings that represent a key and a value, which + # is fundamentally a mapping, however the email format doesn't support + # mappings in a sane way, so it was crammed into a list of strings + # instead. + # + # We will do a little light data massaging to turn this into a map as + # it logically should be. + elif raw_name == "project_urls": + try: + raw[raw_name] = _parse_project_urls(value) + except KeyError: + unparsed[name] = value + # Nothing that we've done has managed to parse this, so it'll just + # throw it in our unparseable data and move on. + else: + unparsed[name] = value + + # We need to support getting the Description from the message payload in + # addition to getting it from the the headers. This does mean, though, there + # is the possibility of it being set both ways, in which case we put both + # in 'unparsed' since we don't know which is right. + try: + payload = _get_payload(parsed, data) + except ValueError: + unparsed.setdefault("description", []).append( + parsed.get_payload(decode=isinstance(data, bytes)) + ) + else: + if payload: + # Check to see if we've already got a description, if so then both + # it, and this body move to unparseable. + if "description" in raw: + description_header = cast(str, raw.pop("description")) + unparsed.setdefault("description", []).extend( + [description_header, payload] + ) + elif "description" in unparsed: + unparsed["description"].append(payload) + else: + raw["description"] = payload + + # We need to cast our `raw` to a metadata, because a TypedDict only support + # literal key names, but we're computing our key names on purpose, but the + # way this function is implemented, our `TypedDict` can only have valid key + # names. + return cast(RawMetadata, raw), unparsed + + +_NOT_FOUND = object() + + +# Keep the two values in sync. +_VALID_METADATA_VERSIONS = ["1.0", "1.1", "1.2", "2.1", "2.2", "2.3"] +_MetadataVersion = Literal["1.0", "1.1", "1.2", "2.1", "2.2", "2.3"] + +_REQUIRED_ATTRS = frozenset(["metadata_version", "name", "version"]) + + +class _Validator(Generic[T]): + """Validate a metadata field. + + All _process_*() methods correspond to a core metadata field. The method is + called with the field's raw value. If the raw value is valid it is returned + in its "enriched" form (e.g. ``version.Version`` for the ``Version`` field). + If the raw value is invalid, :exc:`InvalidMetadata` is raised (with a cause + as appropriate). + """ + + name: str + raw_name: str + added: _MetadataVersion + + def __init__( + self, + *, + added: _MetadataVersion = "1.0", + ) -> None: + self.added = added + + def __set_name__(self, _owner: "Metadata", name: str) -> None: + self.name = name + self.raw_name = _RAW_TO_EMAIL_MAPPING[name] + + def __get__(self, instance: "Metadata", _owner: Type["Metadata"]) -> T: + # With Python 3.8, the caching can be replaced with functools.cached_property(). + # No need to check the cache as attribute lookup will resolve into the + # instance's __dict__ before __get__ is called. + cache = instance.__dict__ + value = instance._raw.get(self.name) + + # To make the _process_* methods easier, we'll check if the value is None + # and if this field is NOT a required attribute, and if both of those + # things are true, we'll skip the the converter. This will mean that the + # converters never have to deal with the None union. + if self.name in _REQUIRED_ATTRS or value is not None: + try: + converter: Callable[[Any], T] = getattr(self, f"_process_{self.name}") + except AttributeError: + pass + else: + value = converter(value) + + cache[self.name] = value + try: + del instance._raw[self.name] # type: ignore[misc] + except KeyError: + pass + + return cast(T, value) + + def _invalid_metadata( + self, msg: str, cause: Optional[Exception] = None + ) -> InvalidMetadata: + exc = InvalidMetadata( + self.raw_name, msg.format_map({"field": repr(self.raw_name)}) + ) + exc.__cause__ = cause + return exc + + def _process_metadata_version(self, value: str) -> _MetadataVersion: + # Implicitly makes Metadata-Version required. + if value not in _VALID_METADATA_VERSIONS: + raise self._invalid_metadata(f"{value!r} is not a valid metadata version") + return cast(_MetadataVersion, value) + + def _process_name(self, value: str) -> str: + if not value: + raise self._invalid_metadata("{field} is a required field") + # Validate the name as a side-effect. + try: + utils.canonicalize_name(value, validate=True) + except utils.InvalidName as exc: + raise self._invalid_metadata( + f"{value!r} is invalid for {{field}}", cause=exc + ) + else: + return value + + def _process_version(self, value: str) -> version_module.Version: + if not value: + raise self._invalid_metadata("{field} is a required field") + try: + return version_module.parse(value) + except version_module.InvalidVersion as exc: + raise self._invalid_metadata( + f"{value!r} is invalid for {{field}}", cause=exc + ) + + def _process_summary(self, value: str) -> str: + """Check the field contains no newlines.""" + if "\n" in value: + raise self._invalid_metadata("{field} must be a single line") + return value + + def _process_description_content_type(self, value: str) -> str: + content_types = {"text/plain", "text/x-rst", "text/markdown"} + message = email.message.EmailMessage() + message["content-type"] = value + + content_type, parameters = ( + # Defaults to `text/plain` if parsing failed. + message.get_content_type().lower(), + message["content-type"].params, + ) + # Check if content-type is valid or defaulted to `text/plain` and thus was + # not parseable. + if content_type not in content_types or content_type not in value.lower(): + raise self._invalid_metadata( + f"{{field}} must be one of {list(content_types)}, not {value!r}" + ) + + charset = parameters.get("charset", "UTF-8") + if charset != "UTF-8": + raise self._invalid_metadata( + f"{{field}} can only specify the UTF-8 charset, not {list(charset)}" + ) + + markdown_variants = {"GFM", "CommonMark"} + variant = parameters.get("variant", "GFM") # Use an acceptable default. + if content_type == "text/markdown" and variant not in markdown_variants: + raise self._invalid_metadata( + f"valid Markdown variants for {{field}} are {list(markdown_variants)}, " + f"not {variant!r}", + ) + return value + + def _process_dynamic(self, value: List[str]) -> List[str]: + for dynamic_field in map(str.lower, value): + if dynamic_field in {"name", "version", "metadata-version"}: + raise self._invalid_metadata( + f"{value!r} is not allowed as a dynamic field" + ) + elif dynamic_field not in _EMAIL_TO_RAW_MAPPING: + raise self._invalid_metadata(f"{value!r} is not a valid dynamic field") + return list(map(str.lower, value)) + + def _process_provides_extra( + self, + value: List[str], + ) -> List[utils.NormalizedName]: + normalized_names = [] + try: + for name in value: + normalized_names.append(utils.canonicalize_name(name, validate=True)) + except utils.InvalidName as exc: + raise self._invalid_metadata( + f"{name!r} is invalid for {{field}}", cause=exc + ) + else: + return normalized_names + + def _process_requires_python(self, value: str) -> specifiers.SpecifierSet: + try: + return specifiers.SpecifierSet(value) + except specifiers.InvalidSpecifier as exc: + raise self._invalid_metadata( + f"{value!r} is invalid for {{field}}", cause=exc + ) + + def _process_requires_dist( + self, + value: List[str], + ) -> List[requirements.Requirement]: + reqs = [] + try: + for req in value: + reqs.append(requirements.Requirement(req)) + except requirements.InvalidRequirement as exc: + raise self._invalid_metadata(f"{req!r} is invalid for {{field}}", cause=exc) + else: + return reqs + + +class Metadata: + """Representation of distribution metadata. + + Compared to :class:`RawMetadata`, this class provides objects representing + metadata fields instead of only using built-in types. Any invalid metadata + will cause :exc:`InvalidMetadata` to be raised (with a + :py:attr:`~BaseException.__cause__` attribute as appropriate). + """ + + _raw: RawMetadata + + @classmethod + def from_raw(cls, data: RawMetadata, *, validate: bool = True) -> "Metadata": + """Create an instance from :class:`RawMetadata`. + + If *validate* is true, all metadata will be validated. All exceptions + related to validation will be gathered and raised as an :class:`ExceptionGroup`. + """ + ins = cls() + ins._raw = data.copy() # Mutations occur due to caching enriched values. + + if validate: + exceptions: List[Exception] = [] + try: + metadata_version = ins.metadata_version + metadata_age = _VALID_METADATA_VERSIONS.index(metadata_version) + except InvalidMetadata as metadata_version_exc: + exceptions.append(metadata_version_exc) + metadata_version = None + + # Make sure to check for the fields that are present, the required + # fields (so their absence can be reported). + fields_to_check = frozenset(ins._raw) | _REQUIRED_ATTRS + # Remove fields that have already been checked. + fields_to_check -= {"metadata_version"} + + for key in fields_to_check: + try: + if metadata_version: + # Can't use getattr() as that triggers descriptor protocol which + # will fail due to no value for the instance argument. + try: + field_metadata_version = cls.__dict__[key].added + except KeyError: + exc = InvalidMetadata(key, f"unrecognized field: {key!r}") + exceptions.append(exc) + continue + field_age = _VALID_METADATA_VERSIONS.index( + field_metadata_version + ) + if field_age > metadata_age: + field = _RAW_TO_EMAIL_MAPPING[key] + exc = InvalidMetadata( + field, + "{field} introduced in metadata version " + "{field_metadata_version}, not {metadata_version}", + ) + exceptions.append(exc) + continue + getattr(ins, key) + except InvalidMetadata as exc: + exceptions.append(exc) + + if exceptions: + raise ExceptionGroup("invalid metadata", exceptions) + + return ins + + @classmethod + def from_email( + cls, data: Union[bytes, str], *, validate: bool = True + ) -> "Metadata": + """Parse metadata from email headers. + + If *validate* is true, the metadata will be validated. All exceptions + related to validation will be gathered and raised as an :class:`ExceptionGroup`. + """ + raw, unparsed = parse_email(data) + + if validate: + exceptions: list[Exception] = [] + for unparsed_key in unparsed: + if unparsed_key in _EMAIL_TO_RAW_MAPPING: + message = f"{unparsed_key!r} has invalid data" + else: + message = f"unrecognized field: {unparsed_key!r}" + exceptions.append(InvalidMetadata(unparsed_key, message)) + + if exceptions: + raise ExceptionGroup("unparsed", exceptions) + + try: + return cls.from_raw(raw, validate=validate) + except ExceptionGroup as exc_group: + raise ExceptionGroup( + "invalid or unparsed metadata", exc_group.exceptions + ) from None + + metadata_version: _Validator[_MetadataVersion] = _Validator() + """:external:ref:`core-metadata-metadata-version` + (required; validated to be a valid metadata version)""" + name: _Validator[str] = _Validator() + """:external:ref:`core-metadata-name` + (required; validated using :func:`~packaging.utils.canonicalize_name` and its + *validate* parameter)""" + version: _Validator[version_module.Version] = _Validator() + """:external:ref:`core-metadata-version` (required)""" + dynamic: _Validator[Optional[List[str]]] = _Validator( + added="2.2", + ) + """:external:ref:`core-metadata-dynamic` + (validated against core metadata field names and lowercased)""" + platforms: _Validator[Optional[List[str]]] = _Validator() + """:external:ref:`core-metadata-platform`""" + supported_platforms: _Validator[Optional[List[str]]] = _Validator(added="1.1") + """:external:ref:`core-metadata-supported-platform`""" + summary: _Validator[Optional[str]] = _Validator() + """:external:ref:`core-metadata-summary` (validated to contain no newlines)""" + description: _Validator[Optional[str]] = _Validator() # TODO 2.1: can be in body + """:external:ref:`core-metadata-description`""" + description_content_type: _Validator[Optional[str]] = _Validator(added="2.1") + """:external:ref:`core-metadata-description-content-type` (validated)""" + keywords: _Validator[Optional[List[str]]] = _Validator() + """:external:ref:`core-metadata-keywords`""" + home_page: _Validator[Optional[str]] = _Validator() + """:external:ref:`core-metadata-home-page`""" + download_url: _Validator[Optional[str]] = _Validator(added="1.1") + """:external:ref:`core-metadata-download-url`""" + author: _Validator[Optional[str]] = _Validator() + """:external:ref:`core-metadata-author`""" + author_email: _Validator[Optional[str]] = _Validator() + """:external:ref:`core-metadata-author-email`""" + maintainer: _Validator[Optional[str]] = _Validator(added="1.2") + """:external:ref:`core-metadata-maintainer`""" + maintainer_email: _Validator[Optional[str]] = _Validator(added="1.2") + """:external:ref:`core-metadata-maintainer-email`""" + license: _Validator[Optional[str]] = _Validator() + """:external:ref:`core-metadata-license`""" + classifiers: _Validator[Optional[List[str]]] = _Validator(added="1.1") + """:external:ref:`core-metadata-classifier`""" + requires_dist: _Validator[Optional[List[requirements.Requirement]]] = _Validator( + added="1.2" + ) + """:external:ref:`core-metadata-requires-dist`""" + requires_python: _Validator[Optional[specifiers.SpecifierSet]] = _Validator( + added="1.2" + ) + """:external:ref:`core-metadata-requires-python`""" + # Because `Requires-External` allows for non-PEP 440 version specifiers, we + # don't do any processing on the values. + requires_external: _Validator[Optional[List[str]]] = _Validator(added="1.2") + """:external:ref:`core-metadata-requires-external`""" + project_urls: _Validator[Optional[Dict[str, str]]] = _Validator(added="1.2") + """:external:ref:`core-metadata-project-url`""" + # PEP 685 lets us raise an error if an extra doesn't pass `Name` validation + # regardless of metadata version. + provides_extra: _Validator[Optional[List[utils.NormalizedName]]] = _Validator( + added="2.1", + ) + """:external:ref:`core-metadata-provides-extra`""" + provides_dist: _Validator[Optional[List[str]]] = _Validator(added="1.2") + """:external:ref:`core-metadata-provides-dist`""" + obsoletes_dist: _Validator[Optional[List[str]]] = _Validator(added="1.2") + """:external:ref:`core-metadata-obsoletes-dist`""" + requires: _Validator[Optional[List[str]]] = _Validator(added="1.1") + """``Requires`` (deprecated)""" + provides: _Validator[Optional[List[str]]] = _Validator(added="1.1") + """``Provides`` (deprecated)""" + obsoletes: _Validator[Optional[List[str]]] = _Validator(added="1.1") + """``Obsoletes`` (deprecated)""" diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/py.typed b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/py.typed new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/requirements.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/requirements.py new file mode 100644 index 00000000000000..0c00eba331b736 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/requirements.py @@ -0,0 +1,90 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +from typing import Any, Iterator, Optional, Set + +from ._parser import parse_requirement as _parse_requirement +from ._tokenizer import ParserSyntaxError +from .markers import Marker, _normalize_extra_values +from .specifiers import SpecifierSet +from .utils import canonicalize_name + + +class InvalidRequirement(ValueError): + """ + An invalid requirement was found, users should refer to PEP 508. + """ + + +class Requirement: + """Parse a requirement. + + Parse a given requirement string into its parts, such as name, specifier, + URL, and extras. Raises InvalidRequirement on a badly-formed requirement + string. + """ + + # TODO: Can we test whether something is contained within a requirement? + # If so how do we do that? Do we need to test against the _name_ of + # the thing as well as the version? What about the markers? + # TODO: Can we normalize the name and extra name? + + def __init__(self, requirement_string: str) -> None: + try: + parsed = _parse_requirement(requirement_string) + except ParserSyntaxError as e: + raise InvalidRequirement(str(e)) from e + + self.name: str = parsed.name + self.url: Optional[str] = parsed.url or None + self.extras: Set[str] = set(parsed.extras if parsed.extras else []) + self.specifier: SpecifierSet = SpecifierSet(parsed.specifier) + self.marker: Optional[Marker] = None + if parsed.marker is not None: + self.marker = Marker.__new__(Marker) + self.marker._markers = _normalize_extra_values(parsed.marker) + + def _iter_parts(self, name: str) -> Iterator[str]: + yield name + + if self.extras: + formatted_extras = ",".join(sorted(self.extras)) + yield f"[{formatted_extras}]" + + if self.specifier: + yield str(self.specifier) + + if self.url: + yield f"@ {self.url}" + if self.marker: + yield " " + + if self.marker: + yield f"; {self.marker}" + + def __str__(self) -> str: + return "".join(self._iter_parts(self.name)) + + def __repr__(self) -> str: + return f"" + + def __hash__(self) -> int: + return hash( + ( + self.__class__.__name__, + *self._iter_parts(canonicalize_name(self.name)), + ) + ) + + def __eq__(self, other: Any) -> bool: + if not isinstance(other, Requirement): + return NotImplemented + + return ( + canonicalize_name(self.name) == canonicalize_name(other.name) + and self.extras == other.extras + and self.specifier == other.specifier + and self.url == other.url + and self.marker == other.marker + ) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py new file mode 100644 index 00000000000000..94448327ae2d44 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py @@ -0,0 +1,1030 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +""" +.. testsetup:: + + from packaging.specifiers import Specifier, SpecifierSet, InvalidSpecifier + from packaging.version import Version +""" + +import abc +import itertools +import re +from typing import ( + Callable, + Iterable, + Iterator, + List, + Optional, + Set, + Tuple, + TypeVar, + Union, +) + +from .utils import canonicalize_version +from .version import Version + +UnparsedVersion = Union[Version, str] +UnparsedVersionVar = TypeVar("UnparsedVersionVar", bound=UnparsedVersion) +CallableOperator = Callable[[Version, str], bool] + + +def _coerce_version(version: UnparsedVersion) -> Version: + if not isinstance(version, Version): + version = Version(version) + return version + + +class InvalidSpecifier(ValueError): + """ + Raised when attempting to create a :class:`Specifier` with a specifier + string that is invalid. + + >>> Specifier("lolwat") + Traceback (most recent call last): + ... + packaging.specifiers.InvalidSpecifier: Invalid specifier: 'lolwat' + """ + + +class BaseSpecifier(metaclass=abc.ABCMeta): + @abc.abstractmethod + def __str__(self) -> str: + """ + Returns the str representation of this Specifier-like object. This + should be representative of the Specifier itself. + """ + + @abc.abstractmethod + def __hash__(self) -> int: + """ + Returns a hash value for this Specifier-like object. + """ + + @abc.abstractmethod + def __eq__(self, other: object) -> bool: + """ + Returns a boolean representing whether or not the two Specifier-like + objects are equal. + + :param other: The other object to check against. + """ + + @property + @abc.abstractmethod + def prereleases(self) -> Optional[bool]: + """Whether or not pre-releases as a whole are allowed. + + This can be set to either ``True`` or ``False`` to explicitly enable or disable + prereleases or it can be set to ``None`` (the default) to use default semantics. + """ + + @prereleases.setter + def prereleases(self, value: bool) -> None: + """Setter for :attr:`prereleases`. + + :param value: The value to set. + """ + + @abc.abstractmethod + def contains(self, item: str, prereleases: Optional[bool] = None) -> bool: + """ + Determines if the given item is contained within this specifier. + """ + + @abc.abstractmethod + def filter( + self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None + ) -> Iterator[UnparsedVersionVar]: + """ + Takes an iterable of items and filters them so that only items which + are contained within this specifier are allowed in it. + """ + + +class Specifier(BaseSpecifier): + """This class abstracts handling of version specifiers. + + .. tip:: + + It is generally not required to instantiate this manually. You should instead + prefer to work with :class:`SpecifierSet` instead, which can parse + comma-separated version specifiers (which is what package metadata contains). + """ + + _operator_regex_str = r""" + (?P(~=|==|!=|<=|>=|<|>|===)) + """ + _version_regex_str = r""" + (?P + (?: + # The identity operators allow for an escape hatch that will + # do an exact string match of the version you wish to install. + # This will not be parsed by PEP 440 and we cannot determine + # any semantic meaning from it. This operator is discouraged + # but included entirely as an escape hatch. + (?<====) # Only match for the identity operator + \s* + [^\s;)]* # The arbitrary version can be just about anything, + # we match everything except for whitespace, a + # semi-colon for marker support, and a closing paren + # since versions can be enclosed in them. + ) + | + (?: + # The (non)equality operators allow for wild card and local + # versions to be specified so we have to define these two + # operators separately to enable that. + (?<===|!=) # Only match for equals and not equals + + \s* + v? + (?:[0-9]+!)? # epoch + [0-9]+(?:\.[0-9]+)* # release + + # You cannot use a wild card and a pre-release, post-release, a dev or + # local version together so group them with a | and make them optional. + (?: + \.\* # Wild card syntax of .* + | + (?: # pre release + [-_\.]? + (alpha|beta|preview|pre|a|b|c|rc) + [-_\.]? + [0-9]* + )? + (?: # post release + (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) + )? + (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release + (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local + )? + ) + | + (?: + # The compatible operator requires at least two digits in the + # release segment. + (?<=~=) # Only match for the compatible operator + + \s* + v? + (?:[0-9]+!)? # epoch + [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *) + (?: # pre release + [-_\.]? + (alpha|beta|preview|pre|a|b|c|rc) + [-_\.]? + [0-9]* + )? + (?: # post release + (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) + )? + (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release + ) + | + (?: + # All other operators only allow a sub set of what the + # (non)equality operators do. Specifically they do not allow + # local versions to be specified nor do they allow the prefix + # matching wild cards. + (?=": "greater_than_equal", + "<": "less_than", + ">": "greater_than", + "===": "arbitrary", + } + + def __init__(self, spec: str = "", prereleases: Optional[bool] = None) -> None: + """Initialize a Specifier instance. + + :param spec: + The string representation of a specifier which will be parsed and + normalized before use. + :param prereleases: + This tells the specifier if it should accept prerelease versions if + applicable or not. The default of ``None`` will autodetect it from the + given specifiers. + :raises InvalidSpecifier: + If the given specifier is invalid (i.e. bad syntax). + """ + match = self._regex.search(spec) + if not match: + raise InvalidSpecifier(f"Invalid specifier: '{spec}'") + + self._spec: Tuple[str, str] = ( + match.group("operator").strip(), + match.group("version").strip(), + ) + + # Store whether or not this Specifier should accept prereleases + self._prereleases = prereleases + + # https://github.com/python/mypy/pull/13475#pullrequestreview-1079784515 + @property # type: ignore[override] + def prereleases(self) -> bool: + # If there is an explicit prereleases set for this, then we'll just + # blindly use that. + if self._prereleases is not None: + return self._prereleases + + # Look at all of our specifiers and determine if they are inclusive + # operators, and if they are if they are including an explicit + # prerelease. + operator, version = self._spec + if operator in ["==", ">=", "<=", "~=", "==="]: + # The == specifier can include a trailing .*, if it does we + # want to remove before parsing. + if operator == "==" and version.endswith(".*"): + version = version[:-2] + + # Parse the version, and if it is a pre-release than this + # specifier allows pre-releases. + if Version(version).is_prerelease: + return True + + return False + + @prereleases.setter + def prereleases(self, value: bool) -> None: + self._prereleases = value + + @property + def operator(self) -> str: + """The operator of this specifier. + + >>> Specifier("==1.2.3").operator + '==' + """ + return self._spec[0] + + @property + def version(self) -> str: + """The version of this specifier. + + >>> Specifier("==1.2.3").version + '1.2.3' + """ + return self._spec[1] + + def __repr__(self) -> str: + """A representation of the Specifier that shows all internal state. + + >>> Specifier('>=1.0.0') + =1.0.0')> + >>> Specifier('>=1.0.0', prereleases=False) + =1.0.0', prereleases=False)> + >>> Specifier('>=1.0.0', prereleases=True) + =1.0.0', prereleases=True)> + """ + pre = ( + f", prereleases={self.prereleases!r}" + if self._prereleases is not None + else "" + ) + + return f"<{self.__class__.__name__}({str(self)!r}{pre})>" + + def __str__(self) -> str: + """A string representation of the Specifier that can be round-tripped. + + >>> str(Specifier('>=1.0.0')) + '>=1.0.0' + >>> str(Specifier('>=1.0.0', prereleases=False)) + '>=1.0.0' + """ + return "{}{}".format(*self._spec) + + @property + def _canonical_spec(self) -> Tuple[str, str]: + canonical_version = canonicalize_version( + self._spec[1], + strip_trailing_zero=(self._spec[0] != "~="), + ) + return self._spec[0], canonical_version + + def __hash__(self) -> int: + return hash(self._canonical_spec) + + def __eq__(self, other: object) -> bool: + """Whether or not the two Specifier-like objects are equal. + + :param other: The other object to check against. + + The value of :attr:`prereleases` is ignored. + + >>> Specifier("==1.2.3") == Specifier("== 1.2.3.0") + True + >>> (Specifier("==1.2.3", prereleases=False) == + ... Specifier("==1.2.3", prereleases=True)) + True + >>> Specifier("==1.2.3") == "==1.2.3" + True + >>> Specifier("==1.2.3") == Specifier("==1.2.4") + False + >>> Specifier("==1.2.3") == Specifier("~=1.2.3") + False + """ + if isinstance(other, str): + try: + other = self.__class__(str(other)) + except InvalidSpecifier: + return NotImplemented + elif not isinstance(other, self.__class__): + return NotImplemented + + return self._canonical_spec == other._canonical_spec + + def _get_operator(self, op: str) -> CallableOperator: + operator_callable: CallableOperator = getattr( + self, f"_compare_{self._operators[op]}" + ) + return operator_callable + + def _compare_compatible(self, prospective: Version, spec: str) -> bool: + + # Compatible releases have an equivalent combination of >= and ==. That + # is that ~=2.2 is equivalent to >=2.2,==2.*. This allows us to + # implement this in terms of the other specifiers instead of + # implementing it ourselves. The only thing we need to do is construct + # the other specifiers. + + # We want everything but the last item in the version, but we want to + # ignore suffix segments. + prefix = _version_join( + list(itertools.takewhile(_is_not_suffix, _version_split(spec)))[:-1] + ) + + # Add the prefix notation to the end of our string + prefix += ".*" + + return self._get_operator(">=")(prospective, spec) and self._get_operator("==")( + prospective, prefix + ) + + def _compare_equal(self, prospective: Version, spec: str) -> bool: + + # We need special logic to handle prefix matching + if spec.endswith(".*"): + # In the case of prefix matching we want to ignore local segment. + normalized_prospective = canonicalize_version( + prospective.public, strip_trailing_zero=False + ) + # Get the normalized version string ignoring the trailing .* + normalized_spec = canonicalize_version(spec[:-2], strip_trailing_zero=False) + # Split the spec out by bangs and dots, and pretend that there is + # an implicit dot in between a release segment and a pre-release segment. + split_spec = _version_split(normalized_spec) + + # Split the prospective version out by bangs and dots, and pretend + # that there is an implicit dot in between a release segment and + # a pre-release segment. + split_prospective = _version_split(normalized_prospective) + + # 0-pad the prospective version before shortening it to get the correct + # shortened version. + padded_prospective, _ = _pad_version(split_prospective, split_spec) + + # Shorten the prospective version to be the same length as the spec + # so that we can determine if the specifier is a prefix of the + # prospective version or not. + shortened_prospective = padded_prospective[: len(split_spec)] + + return shortened_prospective == split_spec + else: + # Convert our spec string into a Version + spec_version = Version(spec) + + # If the specifier does not have a local segment, then we want to + # act as if the prospective version also does not have a local + # segment. + if not spec_version.local: + prospective = Version(prospective.public) + + return prospective == spec_version + + def _compare_not_equal(self, prospective: Version, spec: str) -> bool: + return not self._compare_equal(prospective, spec) + + def _compare_less_than_equal(self, prospective: Version, spec: str) -> bool: + + # NB: Local version identifiers are NOT permitted in the version + # specifier, so local version labels can be universally removed from + # the prospective version. + return Version(prospective.public) <= Version(spec) + + def _compare_greater_than_equal(self, prospective: Version, spec: str) -> bool: + + # NB: Local version identifiers are NOT permitted in the version + # specifier, so local version labels can be universally removed from + # the prospective version. + return Version(prospective.public) >= Version(spec) + + def _compare_less_than(self, prospective: Version, spec_str: str) -> bool: + + # Convert our spec to a Version instance, since we'll want to work with + # it as a version. + spec = Version(spec_str) + + # Check to see if the prospective version is less than the spec + # version. If it's not we can short circuit and just return False now + # instead of doing extra unneeded work. + if not prospective < spec: + return False + + # This special case is here so that, unless the specifier itself + # includes is a pre-release version, that we do not accept pre-release + # versions for the version mentioned in the specifier (e.g. <3.1 should + # not match 3.1.dev0, but should match 3.0.dev0). + if not spec.is_prerelease and prospective.is_prerelease: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # If we've gotten to here, it means that prospective version is both + # less than the spec version *and* it's not a pre-release of the same + # version in the spec. + return True + + def _compare_greater_than(self, prospective: Version, spec_str: str) -> bool: + + # Convert our spec to a Version instance, since we'll want to work with + # it as a version. + spec = Version(spec_str) + + # Check to see if the prospective version is greater than the spec + # version. If it's not we can short circuit and just return False now + # instead of doing extra unneeded work. + if not prospective > spec: + return False + + # This special case is here so that, unless the specifier itself + # includes is a post-release version, that we do not accept + # post-release versions for the version mentioned in the specifier + # (e.g. >3.1 should not match 3.0.post0, but should match 3.2.post0). + if not spec.is_postrelease and prospective.is_postrelease: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # Ensure that we do not allow a local version of the version mentioned + # in the specifier, which is technically greater than, to match. + if prospective.local is not None: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # If we've gotten to here, it means that prospective version is both + # greater than the spec version *and* it's not a pre-release of the + # same version in the spec. + return True + + def _compare_arbitrary(self, prospective: Version, spec: str) -> bool: + return str(prospective).lower() == str(spec).lower() + + def __contains__(self, item: Union[str, Version]) -> bool: + """Return whether or not the item is contained in this specifier. + + :param item: The item to check for. + + This is used for the ``in`` operator and behaves the same as + :meth:`contains` with no ``prereleases`` argument passed. + + >>> "1.2.3" in Specifier(">=1.2.3") + True + >>> Version("1.2.3") in Specifier(">=1.2.3") + True + >>> "1.0.0" in Specifier(">=1.2.3") + False + >>> "1.3.0a1" in Specifier(">=1.2.3") + False + >>> "1.3.0a1" in Specifier(">=1.2.3", prereleases=True) + True + """ + return self.contains(item) + + def contains( + self, item: UnparsedVersion, prereleases: Optional[bool] = None + ) -> bool: + """Return whether or not the item is contained in this specifier. + + :param item: + The item to check for, which can be a version string or a + :class:`Version` instance. + :param prereleases: + Whether or not to match prereleases with this Specifier. If set to + ``None`` (the default), it uses :attr:`prereleases` to determine + whether or not prereleases are allowed. + + >>> Specifier(">=1.2.3").contains("1.2.3") + True + >>> Specifier(">=1.2.3").contains(Version("1.2.3")) + True + >>> Specifier(">=1.2.3").contains("1.0.0") + False + >>> Specifier(">=1.2.3").contains("1.3.0a1") + False + >>> Specifier(">=1.2.3", prereleases=True).contains("1.3.0a1") + True + >>> Specifier(">=1.2.3").contains("1.3.0a1", prereleases=True) + True + """ + + # Determine if prereleases are to be allowed or not. + if prereleases is None: + prereleases = self.prereleases + + # Normalize item to a Version, this allows us to have a shortcut for + # "2.0" in Specifier(">=2") + normalized_item = _coerce_version(item) + + # Determine if we should be supporting prereleases in this specifier + # or not, if we do not support prereleases than we can short circuit + # logic if this version is a prereleases. + if normalized_item.is_prerelease and not prereleases: + return False + + # Actually do the comparison to determine if this item is contained + # within this Specifier or not. + operator_callable: CallableOperator = self._get_operator(self.operator) + return operator_callable(normalized_item, self.version) + + def filter( + self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None + ) -> Iterator[UnparsedVersionVar]: + """Filter items in the given iterable, that match the specifier. + + :param iterable: + An iterable that can contain version strings and :class:`Version` instances. + The items in the iterable will be filtered according to the specifier. + :param prereleases: + Whether or not to allow prereleases in the returned iterator. If set to + ``None`` (the default), it will be intelligently decide whether to allow + prereleases or not (based on the :attr:`prereleases` attribute, and + whether the only versions matching are prereleases). + + This method is smarter than just ``filter(Specifier().contains, [...])`` + because it implements the rule from :pep:`440` that a prerelease item + SHOULD be accepted if no other versions match the given specifier. + + >>> list(Specifier(">=1.2.3").filter(["1.2", "1.3", "1.5a1"])) + ['1.3'] + >>> list(Specifier(">=1.2.3").filter(["1.2", "1.2.3", "1.3", Version("1.4")])) + ['1.2.3', '1.3', ] + >>> list(Specifier(">=1.2.3").filter(["1.2", "1.5a1"])) + ['1.5a1'] + >>> list(Specifier(">=1.2.3").filter(["1.3", "1.5a1"], prereleases=True)) + ['1.3', '1.5a1'] + >>> list(Specifier(">=1.2.3", prereleases=True).filter(["1.3", "1.5a1"])) + ['1.3', '1.5a1'] + """ + + yielded = False + found_prereleases = [] + + kw = {"prereleases": prereleases if prereleases is not None else True} + + # Attempt to iterate over all the values in the iterable and if any of + # them match, yield them. + for version in iterable: + parsed_version = _coerce_version(version) + + if self.contains(parsed_version, **kw): + # If our version is a prerelease, and we were not set to allow + # prereleases, then we'll store it for later in case nothing + # else matches this specifier. + if parsed_version.is_prerelease and not ( + prereleases or self.prereleases + ): + found_prereleases.append(version) + # Either this is not a prerelease, or we should have been + # accepting prereleases from the beginning. + else: + yielded = True + yield version + + # Now that we've iterated over everything, determine if we've yielded + # any values, and if we have not and we have any prereleases stored up + # then we will go ahead and yield the prereleases. + if not yielded and found_prereleases: + for version in found_prereleases: + yield version + + +_prefix_regex = re.compile(r"^([0-9]+)((?:a|b|c|rc)[0-9]+)$") + + +def _version_split(version: str) -> List[str]: + """Split version into components. + + The split components are intended for version comparison. The logic does + not attempt to retain the original version string, so joining the + components back with :func:`_version_join` may not produce the original + version string. + """ + result: List[str] = [] + + epoch, _, rest = version.rpartition("!") + result.append(epoch or "0") + + for item in rest.split("."): + match = _prefix_regex.search(item) + if match: + result.extend(match.groups()) + else: + result.append(item) + return result + + +def _version_join(components: List[str]) -> str: + """Join split version components into a version string. + + This function assumes the input came from :func:`_version_split`, where the + first component must be the epoch (either empty or numeric), and all other + components numeric. + """ + epoch, *rest = components + return f"{epoch}!{'.'.join(rest)}" + + +def _is_not_suffix(segment: str) -> bool: + return not any( + segment.startswith(prefix) for prefix in ("dev", "a", "b", "rc", "post") + ) + + +def _pad_version(left: List[str], right: List[str]) -> Tuple[List[str], List[str]]: + left_split, right_split = [], [] + + # Get the release segment of our versions + left_split.append(list(itertools.takewhile(lambda x: x.isdigit(), left))) + right_split.append(list(itertools.takewhile(lambda x: x.isdigit(), right))) + + # Get the rest of our versions + left_split.append(left[len(left_split[0]) :]) + right_split.append(right[len(right_split[0]) :]) + + # Insert our padding + left_split.insert(1, ["0"] * max(0, len(right_split[0]) - len(left_split[0]))) + right_split.insert(1, ["0"] * max(0, len(left_split[0]) - len(right_split[0]))) + + return (list(itertools.chain(*left_split)), list(itertools.chain(*right_split))) + + +class SpecifierSet(BaseSpecifier): + """This class abstracts handling of a set of version specifiers. + + It can be passed a single specifier (``>=3.0``), a comma-separated list of + specifiers (``>=3.0,!=3.1``), or no specifier at all. + """ + + def __init__( + self, specifiers: str = "", prereleases: Optional[bool] = None + ) -> None: + """Initialize a SpecifierSet instance. + + :param specifiers: + The string representation of a specifier or a comma-separated list of + specifiers which will be parsed and normalized before use. + :param prereleases: + This tells the SpecifierSet if it should accept prerelease versions if + applicable or not. The default of ``None`` will autodetect it from the + given specifiers. + + :raises InvalidSpecifier: + If the given ``specifiers`` are not parseable than this exception will be + raised. + """ + + # Split on `,` to break each individual specifier into it's own item, and + # strip each item to remove leading/trailing whitespace. + split_specifiers = [s.strip() for s in specifiers.split(",") if s.strip()] + + # Parsed each individual specifier, attempting first to make it a + # Specifier. + parsed: Set[Specifier] = set() + for specifier in split_specifiers: + parsed.add(Specifier(specifier)) + + # Turn our parsed specifiers into a frozen set and save them for later. + self._specs = frozenset(parsed) + + # Store our prereleases value so we can use it later to determine if + # we accept prereleases or not. + self._prereleases = prereleases + + @property + def prereleases(self) -> Optional[bool]: + # If we have been given an explicit prerelease modifier, then we'll + # pass that through here. + if self._prereleases is not None: + return self._prereleases + + # If we don't have any specifiers, and we don't have a forced value, + # then we'll just return None since we don't know if this should have + # pre-releases or not. + if not self._specs: + return None + + # Otherwise we'll see if any of the given specifiers accept + # prereleases, if any of them do we'll return True, otherwise False. + return any(s.prereleases for s in self._specs) + + @prereleases.setter + def prereleases(self, value: bool) -> None: + self._prereleases = value + + def __repr__(self) -> str: + """A representation of the specifier set that shows all internal state. + + Note that the ordering of the individual specifiers within the set may not + match the input string. + + >>> SpecifierSet('>=1.0.0,!=2.0.0') + =1.0.0')> + >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=False) + =1.0.0', prereleases=False)> + >>> SpecifierSet('>=1.0.0,!=2.0.0', prereleases=True) + =1.0.0', prereleases=True)> + """ + pre = ( + f", prereleases={self.prereleases!r}" + if self._prereleases is not None + else "" + ) + + return f"" + + def __str__(self) -> str: + """A string representation of the specifier set that can be round-tripped. + + Note that the ordering of the individual specifiers within the set may not + match the input string. + + >>> str(SpecifierSet(">=1.0.0,!=1.0.1")) + '!=1.0.1,>=1.0.0' + >>> str(SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False)) + '!=1.0.1,>=1.0.0' + """ + return ",".join(sorted(str(s) for s in self._specs)) + + def __hash__(self) -> int: + return hash(self._specs) + + def __and__(self, other: Union["SpecifierSet", str]) -> "SpecifierSet": + """Return a SpecifierSet which is a combination of the two sets. + + :param other: The other object to combine with. + + >>> SpecifierSet(">=1.0.0,!=1.0.1") & '<=2.0.0,!=2.0.1' + =1.0.0')> + >>> SpecifierSet(">=1.0.0,!=1.0.1") & SpecifierSet('<=2.0.0,!=2.0.1') + =1.0.0')> + """ + if isinstance(other, str): + other = SpecifierSet(other) + elif not isinstance(other, SpecifierSet): + return NotImplemented + + specifier = SpecifierSet() + specifier._specs = frozenset(self._specs | other._specs) + + if self._prereleases is None and other._prereleases is not None: + specifier._prereleases = other._prereleases + elif self._prereleases is not None and other._prereleases is None: + specifier._prereleases = self._prereleases + elif self._prereleases == other._prereleases: + specifier._prereleases = self._prereleases + else: + raise ValueError( + "Cannot combine SpecifierSets with True and False prerelease " + "overrides." + ) + + return specifier + + def __eq__(self, other: object) -> bool: + """Whether or not the two SpecifierSet-like objects are equal. + + :param other: The other object to check against. + + The value of :attr:`prereleases` is ignored. + + >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0,!=1.0.1") + True + >>> (SpecifierSet(">=1.0.0,!=1.0.1", prereleases=False) == + ... SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True)) + True + >>> SpecifierSet(">=1.0.0,!=1.0.1") == ">=1.0.0,!=1.0.1" + True + >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0") + False + >>> SpecifierSet(">=1.0.0,!=1.0.1") == SpecifierSet(">=1.0.0,!=1.0.2") + False + """ + if isinstance(other, (str, Specifier)): + other = SpecifierSet(str(other)) + elif not isinstance(other, SpecifierSet): + return NotImplemented + + return self._specs == other._specs + + def __len__(self) -> int: + """Returns the number of specifiers in this specifier set.""" + return len(self._specs) + + def __iter__(self) -> Iterator[Specifier]: + """ + Returns an iterator over all the underlying :class:`Specifier` instances + in this specifier set. + + >>> sorted(SpecifierSet(">=1.0.0,!=1.0.1"), key=str) + [, =1.0.0')>] + """ + return iter(self._specs) + + def __contains__(self, item: UnparsedVersion) -> bool: + """Return whether or not the item is contained in this specifier. + + :param item: The item to check for. + + This is used for the ``in`` operator and behaves the same as + :meth:`contains` with no ``prereleases`` argument passed. + + >>> "1.2.3" in SpecifierSet(">=1.0.0,!=1.0.1") + True + >>> Version("1.2.3") in SpecifierSet(">=1.0.0,!=1.0.1") + True + >>> "1.0.1" in SpecifierSet(">=1.0.0,!=1.0.1") + False + >>> "1.3.0a1" in SpecifierSet(">=1.0.0,!=1.0.1") + False + >>> "1.3.0a1" in SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True) + True + """ + return self.contains(item) + + def contains( + self, + item: UnparsedVersion, + prereleases: Optional[bool] = None, + installed: Optional[bool] = None, + ) -> bool: + """Return whether or not the item is contained in this SpecifierSet. + + :param item: + The item to check for, which can be a version string or a + :class:`Version` instance. + :param prereleases: + Whether or not to match prereleases with this SpecifierSet. If set to + ``None`` (the default), it uses :attr:`prereleases` to determine + whether or not prereleases are allowed. + + >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.2.3") + True + >>> SpecifierSet(">=1.0.0,!=1.0.1").contains(Version("1.2.3")) + True + >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.0.1") + False + >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.3.0a1") + False + >>> SpecifierSet(">=1.0.0,!=1.0.1", prereleases=True).contains("1.3.0a1") + True + >>> SpecifierSet(">=1.0.0,!=1.0.1").contains("1.3.0a1", prereleases=True) + True + """ + # Ensure that our item is a Version instance. + if not isinstance(item, Version): + item = Version(item) + + # Determine if we're forcing a prerelease or not, if we're not forcing + # one for this particular filter call, then we'll use whatever the + # SpecifierSet thinks for whether or not we should support prereleases. + if prereleases is None: + prereleases = self.prereleases + + # We can determine if we're going to allow pre-releases by looking to + # see if any of the underlying items supports them. If none of them do + # and this item is a pre-release then we do not allow it and we can + # short circuit that here. + # Note: This means that 1.0.dev1 would not be contained in something + # like >=1.0.devabc however it would be in >=1.0.debabc,>0.0.dev0 + if not prereleases and item.is_prerelease: + return False + + if installed and item.is_prerelease: + item = Version(item.base_version) + + # We simply dispatch to the underlying specs here to make sure that the + # given version is contained within all of them. + # Note: This use of all() here means that an empty set of specifiers + # will always return True, this is an explicit design decision. + return all(s.contains(item, prereleases=prereleases) for s in self._specs) + + def filter( + self, iterable: Iterable[UnparsedVersionVar], prereleases: Optional[bool] = None + ) -> Iterator[UnparsedVersionVar]: + """Filter items in the given iterable, that match the specifiers in this set. + + :param iterable: + An iterable that can contain version strings and :class:`Version` instances. + The items in the iterable will be filtered according to the specifier. + :param prereleases: + Whether or not to allow prereleases in the returned iterator. If set to + ``None`` (the default), it will be intelligently decide whether to allow + prereleases or not (based on the :attr:`prereleases` attribute, and + whether the only versions matching are prereleases). + + This method is smarter than just ``filter(SpecifierSet(...).contains, [...])`` + because it implements the rule from :pep:`440` that a prerelease item + SHOULD be accepted if no other versions match the given specifier. + + >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.3", "1.5a1"])) + ['1.3'] + >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.3", Version("1.4")])) + ['1.3', ] + >>> list(SpecifierSet(">=1.2.3").filter(["1.2", "1.5a1"])) + [] + >>> list(SpecifierSet(">=1.2.3").filter(["1.3", "1.5a1"], prereleases=True)) + ['1.3', '1.5a1'] + >>> list(SpecifierSet(">=1.2.3", prereleases=True).filter(["1.3", "1.5a1"])) + ['1.3', '1.5a1'] + + An "empty" SpecifierSet will filter items based on the presence of prerelease + versions in the set. + + >>> list(SpecifierSet("").filter(["1.3", "1.5a1"])) + ['1.3'] + >>> list(SpecifierSet("").filter(["1.5a1"])) + ['1.5a1'] + >>> list(SpecifierSet("", prereleases=True).filter(["1.3", "1.5a1"])) + ['1.3', '1.5a1'] + >>> list(SpecifierSet("").filter(["1.3", "1.5a1"], prereleases=True)) + ['1.3', '1.5a1'] + """ + # Determine if we're forcing a prerelease or not, if we're not forcing + # one for this particular filter call, then we'll use whatever the + # SpecifierSet thinks for whether or not we should support prereleases. + if prereleases is None: + prereleases = self.prereleases + + # If we have any specifiers, then we want to wrap our iterable in the + # filter method for each one, this will act as a logical AND amongst + # each specifier. + if self._specs: + for spec in self._specs: + iterable = spec.filter(iterable, prereleases=bool(prereleases)) + return iter(iterable) + # If we do not have any specifiers, then we need to have a rough filter + # which will filter out any pre-releases, unless there are no final + # releases. + else: + filtered: List[UnparsedVersionVar] = [] + found_prereleases: List[UnparsedVersionVar] = [] + + for item in iterable: + parsed_version = _coerce_version(item) + + # Store any item which is a pre-release for later unless we've + # already found a final version or we are accepting prereleases + if parsed_version.is_prerelease and not prereleases: + if not filtered: + found_prereleases.append(item) + else: + filtered.append(item) + + # If we've found no items except for pre-releases, then we'll go + # ahead and use the pre-releases + if not filtered and found_prereleases and prereleases is None: + return iter(found_prereleases) + + return iter(filtered) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/tags.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/tags.py new file mode 100644 index 00000000000000..37f33b1ef849ed --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/tags.py @@ -0,0 +1,553 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +import logging +import platform +import struct +import subprocess +import sys +import sysconfig +from importlib.machinery import EXTENSION_SUFFIXES +from typing import ( + Dict, + FrozenSet, + Iterable, + Iterator, + List, + Optional, + Sequence, + Tuple, + Union, + cast, +) + +from . import _manylinux, _musllinux + +logger = logging.getLogger(__name__) + +PythonVersion = Sequence[int] +MacVersion = Tuple[int, int] + +INTERPRETER_SHORT_NAMES: Dict[str, str] = { + "python": "py", # Generic. + "cpython": "cp", + "pypy": "pp", + "ironpython": "ip", + "jython": "jy", +} + + +_32_BIT_INTERPRETER = struct.calcsize("P") == 4 + + +class Tag: + """ + A representation of the tag triple for a wheel. + + Instances are considered immutable and thus are hashable. Equality checking + is also supported. + """ + + __slots__ = ["_interpreter", "_abi", "_platform", "_hash"] + + def __init__(self, interpreter: str, abi: str, platform: str) -> None: + self._interpreter = interpreter.lower() + self._abi = abi.lower() + self._platform = platform.lower() + # The __hash__ of every single element in a Set[Tag] will be evaluated each time + # that a set calls its `.disjoint()` method, which may be called hundreds of + # times when scanning a page of links for packages with tags matching that + # Set[Tag]. Pre-computing the value here produces significant speedups for + # downstream consumers. + self._hash = hash((self._interpreter, self._abi, self._platform)) + + @property + def interpreter(self) -> str: + return self._interpreter + + @property + def abi(self) -> str: + return self._abi + + @property + def platform(self) -> str: + return self._platform + + def __eq__(self, other: object) -> bool: + if not isinstance(other, Tag): + return NotImplemented + + return ( + (self._hash == other._hash) # Short-circuit ASAP for perf reasons. + and (self._platform == other._platform) + and (self._abi == other._abi) + and (self._interpreter == other._interpreter) + ) + + def __hash__(self) -> int: + return self._hash + + def __str__(self) -> str: + return f"{self._interpreter}-{self._abi}-{self._platform}" + + def __repr__(self) -> str: + return f"<{self} @ {id(self)}>" + + +def parse_tag(tag: str) -> FrozenSet[Tag]: + """ + Parses the provided tag (e.g. `py3-none-any`) into a frozenset of Tag instances. + + Returning a set is required due to the possibility that the tag is a + compressed tag set. + """ + tags = set() + interpreters, abis, platforms = tag.split("-") + for interpreter in interpreters.split("."): + for abi in abis.split("."): + for platform_ in platforms.split("."): + tags.add(Tag(interpreter, abi, platform_)) + return frozenset(tags) + + +def _get_config_var(name: str, warn: bool = False) -> Union[int, str, None]: + value: Union[int, str, None] = sysconfig.get_config_var(name) + if value is None and warn: + logger.debug( + "Config variable '%s' is unset, Python ABI tag may be incorrect", name + ) + return value + + +def _normalize_string(string: str) -> str: + return string.replace(".", "_").replace("-", "_").replace(" ", "_") + + +def _abi3_applies(python_version: PythonVersion) -> bool: + """ + Determine if the Python version supports abi3. + + PEP 384 was first implemented in Python 3.2. + """ + return len(python_version) > 1 and tuple(python_version) >= (3, 2) + + +def _cpython_abis(py_version: PythonVersion, warn: bool = False) -> List[str]: + py_version = tuple(py_version) # To allow for version comparison. + abis = [] + version = _version_nodot(py_version[:2]) + debug = pymalloc = ucs4 = "" + with_debug = _get_config_var("Py_DEBUG", warn) + has_refcount = hasattr(sys, "gettotalrefcount") + # Windows doesn't set Py_DEBUG, so checking for support of debug-compiled + # extension modules is the best option. + # https://github.com/pypa/pip/issues/3383#issuecomment-173267692 + has_ext = "_d.pyd" in EXTENSION_SUFFIXES + if with_debug or (with_debug is None and (has_refcount or has_ext)): + debug = "d" + if py_version < (3, 8): + with_pymalloc = _get_config_var("WITH_PYMALLOC", warn) + if with_pymalloc or with_pymalloc is None: + pymalloc = "m" + if py_version < (3, 3): + unicode_size = _get_config_var("Py_UNICODE_SIZE", warn) + if unicode_size == 4 or ( + unicode_size is None and sys.maxunicode == 0x10FFFF + ): + ucs4 = "u" + elif debug: + # Debug builds can also load "normal" extension modules. + # We can also assume no UCS-4 or pymalloc requirement. + abis.append(f"cp{version}") + abis.insert( + 0, + "cp{version}{debug}{pymalloc}{ucs4}".format( + version=version, debug=debug, pymalloc=pymalloc, ucs4=ucs4 + ), + ) + return abis + + +def cpython_tags( + python_version: Optional[PythonVersion] = None, + abis: Optional[Iterable[str]] = None, + platforms: Optional[Iterable[str]] = None, + *, + warn: bool = False, +) -> Iterator[Tag]: + """ + Yields the tags for a CPython interpreter. + + The tags consist of: + - cp-- + - cp-abi3- + - cp-none- + - cp-abi3- # Older Python versions down to 3.2. + + If python_version only specifies a major version then user-provided ABIs and + the 'none' ABItag will be used. + + If 'abi3' or 'none' are specified in 'abis' then they will be yielded at + their normal position and not at the beginning. + """ + if not python_version: + python_version = sys.version_info[:2] + + interpreter = f"cp{_version_nodot(python_version[:2])}" + + if abis is None: + if len(python_version) > 1: + abis = _cpython_abis(python_version, warn) + else: + abis = [] + abis = list(abis) + # 'abi3' and 'none' are explicitly handled later. + for explicit_abi in ("abi3", "none"): + try: + abis.remove(explicit_abi) + except ValueError: + pass + + platforms = list(platforms or platform_tags()) + for abi in abis: + for platform_ in platforms: + yield Tag(interpreter, abi, platform_) + if _abi3_applies(python_version): + yield from (Tag(interpreter, "abi3", platform_) for platform_ in platforms) + yield from (Tag(interpreter, "none", platform_) for platform_ in platforms) + + if _abi3_applies(python_version): + for minor_version in range(python_version[1] - 1, 1, -1): + for platform_ in platforms: + interpreter = "cp{version}".format( + version=_version_nodot((python_version[0], minor_version)) + ) + yield Tag(interpreter, "abi3", platform_) + + +def _generic_abi() -> List[str]: + """ + Return the ABI tag based on EXT_SUFFIX. + """ + # The following are examples of `EXT_SUFFIX`. + # We want to keep the parts which are related to the ABI and remove the + # parts which are related to the platform: + # - linux: '.cpython-310-x86_64-linux-gnu.so' => cp310 + # - mac: '.cpython-310-darwin.so' => cp310 + # - win: '.cp310-win_amd64.pyd' => cp310 + # - win: '.pyd' => cp37 (uses _cpython_abis()) + # - pypy: '.pypy38-pp73-x86_64-linux-gnu.so' => pypy38_pp73 + # - graalpy: '.graalpy-38-native-x86_64-darwin.dylib' + # => graalpy_38_native + + ext_suffix = _get_config_var("EXT_SUFFIX", warn=True) + if not isinstance(ext_suffix, str) or ext_suffix[0] != ".": + raise SystemError("invalid sysconfig.get_config_var('EXT_SUFFIX')") + parts = ext_suffix.split(".") + if len(parts) < 3: + # CPython3.7 and earlier uses ".pyd" on Windows. + return _cpython_abis(sys.version_info[:2]) + soabi = parts[1] + if soabi.startswith("cpython"): + # non-windows + abi = "cp" + soabi.split("-")[1] + elif soabi.startswith("cp"): + # windows + abi = soabi.split("-")[0] + elif soabi.startswith("pypy"): + abi = "-".join(soabi.split("-")[:2]) + elif soabi.startswith("graalpy"): + abi = "-".join(soabi.split("-")[:3]) + elif soabi: + # pyston, ironpython, others? + abi = soabi + else: + return [] + return [_normalize_string(abi)] + + +def generic_tags( + interpreter: Optional[str] = None, + abis: Optional[Iterable[str]] = None, + platforms: Optional[Iterable[str]] = None, + *, + warn: bool = False, +) -> Iterator[Tag]: + """ + Yields the tags for a generic interpreter. + + The tags consist of: + - -- + + The "none" ABI will be added if it was not explicitly provided. + """ + if not interpreter: + interp_name = interpreter_name() + interp_version = interpreter_version(warn=warn) + interpreter = "".join([interp_name, interp_version]) + if abis is None: + abis = _generic_abi() + else: + abis = list(abis) + platforms = list(platforms or platform_tags()) + if "none" not in abis: + abis.append("none") + for abi in abis: + for platform_ in platforms: + yield Tag(interpreter, abi, platform_) + + +def _py_interpreter_range(py_version: PythonVersion) -> Iterator[str]: + """ + Yields Python versions in descending order. + + After the latest version, the major-only version will be yielded, and then + all previous versions of that major version. + """ + if len(py_version) > 1: + yield f"py{_version_nodot(py_version[:2])}" + yield f"py{py_version[0]}" + if len(py_version) > 1: + for minor in range(py_version[1] - 1, -1, -1): + yield f"py{_version_nodot((py_version[0], minor))}" + + +def compatible_tags( + python_version: Optional[PythonVersion] = None, + interpreter: Optional[str] = None, + platforms: Optional[Iterable[str]] = None, +) -> Iterator[Tag]: + """ + Yields the sequence of tags that are compatible with a specific version of Python. + + The tags consist of: + - py*-none- + - -none-any # ... if `interpreter` is provided. + - py*-none-any + """ + if not python_version: + python_version = sys.version_info[:2] + platforms = list(platforms or platform_tags()) + for version in _py_interpreter_range(python_version): + for platform_ in platforms: + yield Tag(version, "none", platform_) + if interpreter: + yield Tag(interpreter, "none", "any") + for version in _py_interpreter_range(python_version): + yield Tag(version, "none", "any") + + +def _mac_arch(arch: str, is_32bit: bool = _32_BIT_INTERPRETER) -> str: + if not is_32bit: + return arch + + if arch.startswith("ppc"): + return "ppc" + + return "i386" + + +def _mac_binary_formats(version: MacVersion, cpu_arch: str) -> List[str]: + formats = [cpu_arch] + if cpu_arch == "x86_64": + if version < (10, 4): + return [] + formats.extend(["intel", "fat64", "fat32"]) + + elif cpu_arch == "i386": + if version < (10, 4): + return [] + formats.extend(["intel", "fat32", "fat"]) + + elif cpu_arch == "ppc64": + # TODO: Need to care about 32-bit PPC for ppc64 through 10.2? + if version > (10, 5) or version < (10, 4): + return [] + formats.append("fat64") + + elif cpu_arch == "ppc": + if version > (10, 6): + return [] + formats.extend(["fat32", "fat"]) + + if cpu_arch in {"arm64", "x86_64"}: + formats.append("universal2") + + if cpu_arch in {"x86_64", "i386", "ppc64", "ppc", "intel"}: + formats.append("universal") + + return formats + + +def mac_platforms( + version: Optional[MacVersion] = None, arch: Optional[str] = None +) -> Iterator[str]: + """ + Yields the platform tags for a macOS system. + + The `version` parameter is a two-item tuple specifying the macOS version to + generate platform tags for. The `arch` parameter is the CPU architecture to + generate platform tags for. Both parameters default to the appropriate value + for the current system. + """ + version_str, _, cpu_arch = platform.mac_ver() + if version is None: + version = cast("MacVersion", tuple(map(int, version_str.split(".")[:2]))) + if version == (10, 16): + # When built against an older macOS SDK, Python will report macOS 10.16 + # instead of the real version. + version_str = subprocess.run( + [ + sys.executable, + "-sS", + "-c", + "import platform; print(platform.mac_ver()[0])", + ], + check=True, + env={"SYSTEM_VERSION_COMPAT": "0"}, + stdout=subprocess.PIPE, + text=True, + ).stdout + version = cast("MacVersion", tuple(map(int, version_str.split(".")[:2]))) + else: + version = version + if arch is None: + arch = _mac_arch(cpu_arch) + else: + arch = arch + + if (10, 0) <= version and version < (11, 0): + # Prior to Mac OS 11, each yearly release of Mac OS bumped the + # "minor" version number. The major version was always 10. + for minor_version in range(version[1], -1, -1): + compat_version = 10, minor_version + binary_formats = _mac_binary_formats(compat_version, arch) + for binary_format in binary_formats: + yield "macosx_{major}_{minor}_{binary_format}".format( + major=10, minor=minor_version, binary_format=binary_format + ) + + if version >= (11, 0): + # Starting with Mac OS 11, each yearly release bumps the major version + # number. The minor versions are now the midyear updates. + for major_version in range(version[0], 10, -1): + compat_version = major_version, 0 + binary_formats = _mac_binary_formats(compat_version, arch) + for binary_format in binary_formats: + yield "macosx_{major}_{minor}_{binary_format}".format( + major=major_version, minor=0, binary_format=binary_format + ) + + if version >= (11, 0): + # Mac OS 11 on x86_64 is compatible with binaries from previous releases. + # Arm64 support was introduced in 11.0, so no Arm binaries from previous + # releases exist. + # + # However, the "universal2" binary format can have a + # macOS version earlier than 11.0 when the x86_64 part of the binary supports + # that version of macOS. + if arch == "x86_64": + for minor_version in range(16, 3, -1): + compat_version = 10, minor_version + binary_formats = _mac_binary_formats(compat_version, arch) + for binary_format in binary_formats: + yield "macosx_{major}_{minor}_{binary_format}".format( + major=compat_version[0], + minor=compat_version[1], + binary_format=binary_format, + ) + else: + for minor_version in range(16, 3, -1): + compat_version = 10, minor_version + binary_format = "universal2" + yield "macosx_{major}_{minor}_{binary_format}".format( + major=compat_version[0], + minor=compat_version[1], + binary_format=binary_format, + ) + + +def _linux_platforms(is_32bit: bool = _32_BIT_INTERPRETER) -> Iterator[str]: + linux = _normalize_string(sysconfig.get_platform()) + if not linux.startswith("linux_"): + # we should never be here, just yield the sysconfig one and return + yield linux + return + if is_32bit: + if linux == "linux_x86_64": + linux = "linux_i686" + elif linux == "linux_aarch64": + linux = "linux_armv8l" + _, arch = linux.split("_", 1) + archs = {"armv8l": ["armv8l", "armv7l"]}.get(arch, [arch]) + yield from _manylinux.platform_tags(archs) + yield from _musllinux.platform_tags(archs) + for arch in archs: + yield f"linux_{arch}" + + +def _generic_platforms() -> Iterator[str]: + yield _normalize_string(sysconfig.get_platform()) + + +def platform_tags() -> Iterator[str]: + """ + Provides the platform tags for this installation. + """ + if platform.system() == "Darwin": + return mac_platforms() + elif platform.system() == "Linux": + return _linux_platforms() + else: + return _generic_platforms() + + +def interpreter_name() -> str: + """ + Returns the name of the running interpreter. + + Some implementations have a reserved, two-letter abbreviation which will + be returned when appropriate. + """ + name = sys.implementation.name + return INTERPRETER_SHORT_NAMES.get(name) or name + + +def interpreter_version(*, warn: bool = False) -> str: + """ + Returns the version of the running interpreter. + """ + version = _get_config_var("py_version_nodot", warn=warn) + if version: + version = str(version) + else: + version = _version_nodot(sys.version_info[:2]) + return version + + +def _version_nodot(version: PythonVersion) -> str: + return "".join(map(str, version)) + + +def sys_tags(*, warn: bool = False) -> Iterator[Tag]: + """ + Returns the sequence of tag triples for the running interpreter. + + The order of the sequence corresponds to priority order for the + interpreter, from most to least important. + """ + + interp_name = interpreter_name() + if interp_name == "cp": + yield from cpython_tags(warn=warn) + else: + yield from generic_tags() + + if interp_name == "pp": + interp = "pp3" + elif interp_name == "cp": + interp = "cp" + interpreter_version(warn=warn) + else: + interp = None + yield from compatible_tags(interpreter=interp) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/utils.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/utils.py new file mode 100644 index 00000000000000..c2c2f75aa80628 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/utils.py @@ -0,0 +1,172 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +import re +from typing import FrozenSet, NewType, Tuple, Union, cast + +from .tags import Tag, parse_tag +from .version import InvalidVersion, Version + +BuildTag = Union[Tuple[()], Tuple[int, str]] +NormalizedName = NewType("NormalizedName", str) + + +class InvalidName(ValueError): + """ + An invalid distribution name; users should refer to the packaging user guide. + """ + + +class InvalidWheelFilename(ValueError): + """ + An invalid wheel filename was found, users should refer to PEP 427. + """ + + +class InvalidSdistFilename(ValueError): + """ + An invalid sdist filename was found, users should refer to the packaging user guide. + """ + + +# Core metadata spec for `Name` +_validate_regex = re.compile( + r"^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$", re.IGNORECASE +) +_canonicalize_regex = re.compile(r"[-_.]+") +_normalized_regex = re.compile(r"^([a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9])$") +# PEP 427: The build number must start with a digit. +_build_tag_regex = re.compile(r"(\d+)(.*)") + + +def canonicalize_name(name: str, *, validate: bool = False) -> NormalizedName: + if validate and not _validate_regex.match(name): + raise InvalidName(f"name is invalid: {name!r}") + # This is taken from PEP 503. + value = _canonicalize_regex.sub("-", name).lower() + return cast(NormalizedName, value) + + +def is_normalized_name(name: str) -> bool: + return _normalized_regex.match(name) is not None + + +def canonicalize_version( + version: Union[Version, str], *, strip_trailing_zero: bool = True +) -> str: + """ + This is very similar to Version.__str__, but has one subtle difference + with the way it handles the release segment. + """ + if isinstance(version, str): + try: + parsed = Version(version) + except InvalidVersion: + # Legacy versions cannot be normalized + return version + else: + parsed = version + + parts = [] + + # Epoch + if parsed.epoch != 0: + parts.append(f"{parsed.epoch}!") + + # Release segment + release_segment = ".".join(str(x) for x in parsed.release) + if strip_trailing_zero: + # NB: This strips trailing '.0's to normalize + release_segment = re.sub(r"(\.0)+$", "", release_segment) + parts.append(release_segment) + + # Pre-release + if parsed.pre is not None: + parts.append("".join(str(x) for x in parsed.pre)) + + # Post-release + if parsed.post is not None: + parts.append(f".post{parsed.post}") + + # Development release + if parsed.dev is not None: + parts.append(f".dev{parsed.dev}") + + # Local version segment + if parsed.local is not None: + parts.append(f"+{parsed.local}") + + return "".join(parts) + + +def parse_wheel_filename( + filename: str, +) -> Tuple[NormalizedName, Version, BuildTag, FrozenSet[Tag]]: + if not filename.endswith(".whl"): + raise InvalidWheelFilename( + f"Invalid wheel filename (extension must be '.whl'): {filename}" + ) + + filename = filename[:-4] + dashes = filename.count("-") + if dashes not in (4, 5): + raise InvalidWheelFilename( + f"Invalid wheel filename (wrong number of parts): {filename}" + ) + + parts = filename.split("-", dashes - 2) + name_part = parts[0] + # See PEP 427 for the rules on escaping the project name. + if "__" in name_part or re.match(r"^[\w\d._]*$", name_part, re.UNICODE) is None: + raise InvalidWheelFilename(f"Invalid project name: {filename}") + name = canonicalize_name(name_part) + + try: + version = Version(parts[1]) + except InvalidVersion as e: + raise InvalidWheelFilename( + f"Invalid wheel filename (invalid version): {filename}" + ) from e + + if dashes == 5: + build_part = parts[2] + build_match = _build_tag_regex.match(build_part) + if build_match is None: + raise InvalidWheelFilename( + f"Invalid build number: {build_part} in '{filename}'" + ) + build = cast(BuildTag, (int(build_match.group(1)), build_match.group(2))) + else: + build = () + tags = parse_tag(parts[-1]) + return (name, version, build, tags) + + +def parse_sdist_filename(filename: str) -> Tuple[NormalizedName, Version]: + if filename.endswith(".tar.gz"): + file_stem = filename[: -len(".tar.gz")] + elif filename.endswith(".zip"): + file_stem = filename[: -len(".zip")] + else: + raise InvalidSdistFilename( + f"Invalid sdist filename (extension must be '.tar.gz' or '.zip'):" + f" {filename}" + ) + + # We are requiring a PEP 440 version, which cannot contain dashes, + # so we split on the last dash. + name_part, sep, version_part = file_stem.rpartition("-") + if not sep: + raise InvalidSdistFilename(f"Invalid sdist filename: {filename}") + + name = canonicalize_name(name_part) + + try: + version = Version(version_part) + except InvalidVersion as e: + raise InvalidSdistFilename( + f"Invalid sdist filename (invalid version): {filename}" + ) from e + + return (name, version) diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/version.py b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/version.py new file mode 100644 index 00000000000000..5faab9bd0dcf28 --- /dev/null +++ b/deps/npm/node_modules/node-gyp/gyp/pylib/packaging/version.py @@ -0,0 +1,563 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +""" +.. testsetup:: + + from packaging.version import parse, Version +""" + +import itertools +import re +from typing import Any, Callable, NamedTuple, Optional, SupportsInt, Tuple, Union + +from ._structures import Infinity, InfinityType, NegativeInfinity, NegativeInfinityType + +__all__ = ["VERSION_PATTERN", "parse", "Version", "InvalidVersion"] + +LocalType = Tuple[Union[int, str], ...] + +CmpPrePostDevType = Union[InfinityType, NegativeInfinityType, Tuple[str, int]] +CmpLocalType = Union[ + NegativeInfinityType, + Tuple[Union[Tuple[int, str], Tuple[NegativeInfinityType, Union[int, str]]], ...], +] +CmpKey = Tuple[ + int, + Tuple[int, ...], + CmpPrePostDevType, + CmpPrePostDevType, + CmpPrePostDevType, + CmpLocalType, +] +VersionComparisonMethod = Callable[[CmpKey, CmpKey], bool] + + +class _Version(NamedTuple): + epoch: int + release: Tuple[int, ...] + dev: Optional[Tuple[str, int]] + pre: Optional[Tuple[str, int]] + post: Optional[Tuple[str, int]] + local: Optional[LocalType] + + +def parse(version: str) -> "Version": + """Parse the given version string. + + >>> parse('1.0.dev1') + + + :param version: The version string to parse. + :raises InvalidVersion: When the version string is not a valid version. + """ + return Version(version) + + +class InvalidVersion(ValueError): + """Raised when a version string is not a valid version. + + >>> Version("invalid") + Traceback (most recent call last): + ... + packaging.version.InvalidVersion: Invalid version: 'invalid' + """ + + +class _BaseVersion: + _key: Tuple[Any, ...] + + def __hash__(self) -> int: + return hash(self._key) + + # Please keep the duplicated `isinstance` check + # in the six comparisons hereunder + # unless you find a way to avoid adding overhead function calls. + def __lt__(self, other: "_BaseVersion") -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key < other._key + + def __le__(self, other: "_BaseVersion") -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key <= other._key + + def __eq__(self, other: object) -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key == other._key + + def __ge__(self, other: "_BaseVersion") -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key >= other._key + + def __gt__(self, other: "_BaseVersion") -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key > other._key + + def __ne__(self, other: object) -> bool: + if not isinstance(other, _BaseVersion): + return NotImplemented + + return self._key != other._key + + +# Deliberately not anchored to the start and end of the string, to make it +# easier for 3rd party code to reuse +_VERSION_PATTERN = r""" + v? + (?: + (?:(?P[0-9]+)!)? # epoch + (?P[0-9]+(?:\.[0-9]+)*) # release segment + (?P
                                                                        # pre-release
                              +            [-_\.]?
                              +            (?Palpha|a|beta|b|preview|pre|c|rc)
                              +            [-_\.]?
                              +            (?P[0-9]+)?
                              +        )?
                              +        (?P                                         # post release
                              +            (?:-(?P[0-9]+))
                              +            |
                              +            (?:
                              +                [-_\.]?
                              +                (?Ppost|rev|r)
                              +                [-_\.]?
                              +                (?P[0-9]+)?
                              +            )
                              +        )?
                              +        (?P                                          # dev release
                              +            [-_\.]?
                              +            (?Pdev)
                              +            [-_\.]?
                              +            (?P[0-9]+)?
                              +        )?
                              +    )
                              +    (?:\+(?P[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
                              +"""
                              +
                              +VERSION_PATTERN = _VERSION_PATTERN
                              +"""
                              +A string containing the regular expression used to match a valid version.
                              +
                              +The pattern is not anchored at either end, and is intended for embedding in larger
                              +expressions (for example, matching a version number as part of a file name). The
                              +regular expression should be compiled with the ``re.VERBOSE`` and ``re.IGNORECASE``
                              +flags set.
                              +
                              +:meta hide-value:
                              +"""
                              +
                              +
                              +class Version(_BaseVersion):
                              +    """This class abstracts handling of a project's versions.
                              +
                              +    A :class:`Version` instance is comparison aware and can be compared and
                              +    sorted using the standard Python interfaces.
                              +
                              +    >>> v1 = Version("1.0a5")
                              +    >>> v2 = Version("1.0")
                              +    >>> v1
                              +    
                              +    >>> v2
                              +    
                              +    >>> v1 < v2
                              +    True
                              +    >>> v1 == v2
                              +    False
                              +    >>> v1 > v2
                              +    False
                              +    >>> v1 >= v2
                              +    False
                              +    >>> v1 <= v2
                              +    True
                              +    """
                              +
                              +    _regex = re.compile(r"^\s*" + VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE)
                              +    _key: CmpKey
                              +
                              +    def __init__(self, version: str) -> None:
                              +        """Initialize a Version object.
                              +
                              +        :param version:
                              +            The string representation of a version which will be parsed and normalized
                              +            before use.
                              +        :raises InvalidVersion:
                              +            If the ``version`` does not conform to PEP 440 in any way then this
                              +            exception will be raised.
                              +        """
                              +
                              +        # Validate the version and parse it into pieces
                              +        match = self._regex.search(version)
                              +        if not match:
                              +            raise InvalidVersion(f"Invalid version: '{version}'")
                              +
                              +        # Store the parsed out pieces of the version
                              +        self._version = _Version(
                              +            epoch=int(match.group("epoch")) if match.group("epoch") else 0,
                              +            release=tuple(int(i) for i in match.group("release").split(".")),
                              +            pre=_parse_letter_version(match.group("pre_l"), match.group("pre_n")),
                              +            post=_parse_letter_version(
                              +                match.group("post_l"), match.group("post_n1") or match.group("post_n2")
                              +            ),
                              +            dev=_parse_letter_version(match.group("dev_l"), match.group("dev_n")),
                              +            local=_parse_local_version(match.group("local")),
                              +        )
                              +
                              +        # Generate a key which will be used for sorting
                              +        self._key = _cmpkey(
                              +            self._version.epoch,
                              +            self._version.release,
                              +            self._version.pre,
                              +            self._version.post,
                              +            self._version.dev,
                              +            self._version.local,
                              +        )
                              +
                              +    def __repr__(self) -> str:
                              +        """A representation of the Version that shows all internal state.
                              +
                              +        >>> Version('1.0.0')
                              +        
                              +        """
                              +        return f""
                              +
                              +    def __str__(self) -> str:
                              +        """A string representation of the version that can be rounded-tripped.
                              +
                              +        >>> str(Version("1.0a5"))
                              +        '1.0a5'
                              +        """
                              +        parts = []
                              +
                              +        # Epoch
                              +        if self.epoch != 0:
                              +            parts.append(f"{self.epoch}!")
                              +
                              +        # Release segment
                              +        parts.append(".".join(str(x) for x in self.release))
                              +
                              +        # Pre-release
                              +        if self.pre is not None:
                              +            parts.append("".join(str(x) for x in self.pre))
                              +
                              +        # Post-release
                              +        if self.post is not None:
                              +            parts.append(f".post{self.post}")
                              +
                              +        # Development release
                              +        if self.dev is not None:
                              +            parts.append(f".dev{self.dev}")
                              +
                              +        # Local version segment
                              +        if self.local is not None:
                              +            parts.append(f"+{self.local}")
                              +
                              +        return "".join(parts)
                              +
                              +    @property
                              +    def epoch(self) -> int:
                              +        """The epoch of the version.
                              +
                              +        >>> Version("2.0.0").epoch
                              +        0
                              +        >>> Version("1!2.0.0").epoch
                              +        1
                              +        """
                              +        return self._version.epoch
                              +
                              +    @property
                              +    def release(self) -> Tuple[int, ...]:
                              +        """The components of the "release" segment of the version.
                              +
                              +        >>> Version("1.2.3").release
                              +        (1, 2, 3)
                              +        >>> Version("2.0.0").release
                              +        (2, 0, 0)
                              +        >>> Version("1!2.0.0.post0").release
                              +        (2, 0, 0)
                              +
                              +        Includes trailing zeroes but not the epoch or any pre-release / development /
                              +        post-release suffixes.
                              +        """
                              +        return self._version.release
                              +
                              +    @property
                              +    def pre(self) -> Optional[Tuple[str, int]]:
                              +        """The pre-release segment of the version.
                              +
                              +        >>> print(Version("1.2.3").pre)
                              +        None
                              +        >>> Version("1.2.3a1").pre
                              +        ('a', 1)
                              +        >>> Version("1.2.3b1").pre
                              +        ('b', 1)
                              +        >>> Version("1.2.3rc1").pre
                              +        ('rc', 1)
                              +        """
                              +        return self._version.pre
                              +
                              +    @property
                              +    def post(self) -> Optional[int]:
                              +        """The post-release number of the version.
                              +
                              +        >>> print(Version("1.2.3").post)
                              +        None
                              +        >>> Version("1.2.3.post1").post
                              +        1
                              +        """
                              +        return self._version.post[1] if self._version.post else None
                              +
                              +    @property
                              +    def dev(self) -> Optional[int]:
                              +        """The development number of the version.
                              +
                              +        >>> print(Version("1.2.3").dev)
                              +        None
                              +        >>> Version("1.2.3.dev1").dev
                              +        1
                              +        """
                              +        return self._version.dev[1] if self._version.dev else None
                              +
                              +    @property
                              +    def local(self) -> Optional[str]:
                              +        """The local version segment of the version.
                              +
                              +        >>> print(Version("1.2.3").local)
                              +        None
                              +        >>> Version("1.2.3+abc").local
                              +        'abc'
                              +        """
                              +        if self._version.local:
                              +            return ".".join(str(x) for x in self._version.local)
                              +        else:
                              +            return None
                              +
                              +    @property
                              +    def public(self) -> str:
                              +        """The public portion of the version.
                              +
                              +        >>> Version("1.2.3").public
                              +        '1.2.3'
                              +        >>> Version("1.2.3+abc").public
                              +        '1.2.3'
                              +        >>> Version("1.2.3+abc.dev1").public
                              +        '1.2.3'
                              +        """
                              +        return str(self).split("+", 1)[0]
                              +
                              +    @property
                              +    def base_version(self) -> str:
                              +        """The "base version" of the version.
                              +
                              +        >>> Version("1.2.3").base_version
                              +        '1.2.3'
                              +        >>> Version("1.2.3+abc").base_version
                              +        '1.2.3'
                              +        >>> Version("1!1.2.3+abc.dev1").base_version
                              +        '1!1.2.3'
                              +
                              +        The "base version" is the public version of the project without any pre or post
                              +        release markers.
                              +        """
                              +        parts = []
                              +
                              +        # Epoch
                              +        if self.epoch != 0:
                              +            parts.append(f"{self.epoch}!")
                              +
                              +        # Release segment
                              +        parts.append(".".join(str(x) for x in self.release))
                              +
                              +        return "".join(parts)
                              +
                              +    @property
                              +    def is_prerelease(self) -> bool:
                              +        """Whether this version is a pre-release.
                              +
                              +        >>> Version("1.2.3").is_prerelease
                              +        False
                              +        >>> Version("1.2.3a1").is_prerelease
                              +        True
                              +        >>> Version("1.2.3b1").is_prerelease
                              +        True
                              +        >>> Version("1.2.3rc1").is_prerelease
                              +        True
                              +        >>> Version("1.2.3dev1").is_prerelease
                              +        True
                              +        """
                              +        return self.dev is not None or self.pre is not None
                              +
                              +    @property
                              +    def is_postrelease(self) -> bool:
                              +        """Whether this version is a post-release.
                              +
                              +        >>> Version("1.2.3").is_postrelease
                              +        False
                              +        >>> Version("1.2.3.post1").is_postrelease
                              +        True
                              +        """
                              +        return self.post is not None
                              +
                              +    @property
                              +    def is_devrelease(self) -> bool:
                              +        """Whether this version is a development release.
                              +
                              +        >>> Version("1.2.3").is_devrelease
                              +        False
                              +        >>> Version("1.2.3.dev1").is_devrelease
                              +        True
                              +        """
                              +        return self.dev is not None
                              +
                              +    @property
                              +    def major(self) -> int:
                              +        """The first item of :attr:`release` or ``0`` if unavailable.
                              +
                              +        >>> Version("1.2.3").major
                              +        1
                              +        """
                              +        return self.release[0] if len(self.release) >= 1 else 0
                              +
                              +    @property
                              +    def minor(self) -> int:
                              +        """The second item of :attr:`release` or ``0`` if unavailable.
                              +
                              +        >>> Version("1.2.3").minor
                              +        2
                              +        >>> Version("1").minor
                              +        0
                              +        """
                              +        return self.release[1] if len(self.release) >= 2 else 0
                              +
                              +    @property
                              +    def micro(self) -> int:
                              +        """The third item of :attr:`release` or ``0`` if unavailable.
                              +
                              +        >>> Version("1.2.3").micro
                              +        3
                              +        >>> Version("1").micro
                              +        0
                              +        """
                              +        return self.release[2] if len(self.release) >= 3 else 0
                              +
                              +
                              +def _parse_letter_version(
                              +    letter: Optional[str], number: Union[str, bytes, SupportsInt, None]
                              +) -> Optional[Tuple[str, int]]:
                              +
                              +    if letter:
                              +        # We consider there to be an implicit 0 in a pre-release if there is
                              +        # not a numeral associated with it.
                              +        if number is None:
                              +            number = 0
                              +
                              +        # We normalize any letters to their lower case form
                              +        letter = letter.lower()
                              +
                              +        # We consider some words to be alternate spellings of other words and
                              +        # in those cases we want to normalize the spellings to our preferred
                              +        # spelling.
                              +        if letter == "alpha":
                              +            letter = "a"
                              +        elif letter == "beta":
                              +            letter = "b"
                              +        elif letter in ["c", "pre", "preview"]:
                              +            letter = "rc"
                              +        elif letter in ["rev", "r"]:
                              +            letter = "post"
                              +
                              +        return letter, int(number)
                              +    if not letter and number:
                              +        # We assume if we are given a number, but we are not given a letter
                              +        # then this is using the implicit post release syntax (e.g. 1.0-1)
                              +        letter = "post"
                              +
                              +        return letter, int(number)
                              +
                              +    return None
                              +
                              +
                              +_local_version_separators = re.compile(r"[\._-]")
                              +
                              +
                              +def _parse_local_version(local: Optional[str]) -> Optional[LocalType]:
                              +    """
                              +    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
                              +    """
                              +    if local is not None:
                              +        return tuple(
                              +            part.lower() if not part.isdigit() else int(part)
                              +            for part in _local_version_separators.split(local)
                              +        )
                              +    return None
                              +
                              +
                              +def _cmpkey(
                              +    epoch: int,
                              +    release: Tuple[int, ...],
                              +    pre: Optional[Tuple[str, int]],
                              +    post: Optional[Tuple[str, int]],
                              +    dev: Optional[Tuple[str, int]],
                              +    local: Optional[LocalType],
                              +) -> CmpKey:
                              +
                              +    # When we compare a release version, we want to compare it with all of the
                              +    # trailing zeros removed. So we'll use a reverse the list, drop all the now
                              +    # leading zeros until we come to something non zero, then take the rest
                              +    # re-reverse it back into the correct order and make it a tuple and use
                              +    # that for our sorting key.
                              +    _release = tuple(
                              +        reversed(list(itertools.dropwhile(lambda x: x == 0, reversed(release))))
                              +    )
                              +
                              +    # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
                              +    # We'll do this by abusing the pre segment, but we _only_ want to do this
                              +    # if there is not a pre or a post segment. If we have one of those then
                              +    # the normal sorting rules will handle this case correctly.
                              +    if pre is None and post is None and dev is not None:
                              +        _pre: CmpPrePostDevType = NegativeInfinity
                              +    # Versions without a pre-release (except as noted above) should sort after
                              +    # those with one.
                              +    elif pre is None:
                              +        _pre = Infinity
                              +    else:
                              +        _pre = pre
                              +
                              +    # Versions without a post segment should sort before those with one.
                              +    if post is None:
                              +        _post: CmpPrePostDevType = NegativeInfinity
                              +
                              +    else:
                              +        _post = post
                              +
                              +    # Versions without a development segment should sort after those with one.
                              +    if dev is None:
                              +        _dev: CmpPrePostDevType = Infinity
                              +
                              +    else:
                              +        _dev = dev
                              +
                              +    if local is None:
                              +        # Versions without a local segment should sort before those with one.
                              +        _local: CmpLocalType = NegativeInfinity
                              +    else:
                              +        # Versions with a local segment need that segment parsed to implement
                              +        # the sorting rules in PEP440.
                              +        # - Alpha numeric segments sort before numeric segments
                              +        # - Alpha numeric segments sort lexicographically
                              +        # - Numeric segments sort numerically
                              +        # - Shorter versions sort before longer versions when the prefixes
                              +        #   match exactly
                              +        _local = tuple(
                              +            (i, "") if isinstance(i, int) else (NegativeInfinity, i) for i in local
                              +        )
                              +
                              +    return epoch, _release, _pre, _post, _dev, _local
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/pyproject.toml b/deps/npm/node_modules/node-gyp/gyp/pyproject.toml
                              index d8a5451520cc3c..0c25d0b3c1a065 100644
                              --- a/deps/npm/node_modules/node-gyp/gyp/pyproject.toml
                              +++ b/deps/npm/node_modules/node-gyp/gyp/pyproject.toml
                              @@ -4,14 +4,16 @@ build-backend = "setuptools.build_meta"
                               
                               [project]
                               name = "gyp-next"
                              -version = "0.14.0"
                              +version = "0.16.1"
                               authors = [
                                 { name="Node.js contributors", email="ryzokuken@disroot.org" },
                               ]
                               description = "A fork of the GYP build system for use in the Node.js projects"
                               readme = "README.md"
                               license = { file="LICENSE" }
                              -requires-python = ">=3.6"
                              +requires-python = ">=3.8"
                              +# The Python module "packaging" is vendored in the "pylib/packaging" directory to support Python >= 3.12.
                              +# dependencies = ["packaging>=23.1"]  # Uncomment this line if the vendored version is removed.
                               classifiers = [
                                   "Development Status :: 3 - Alpha",
                                   "Environment :: Console",
                              @@ -20,15 +22,14 @@ classifiers = [
                                   "Natural Language :: English",
                                   "Programming Language :: Python",
                                   "Programming Language :: Python :: 3",
                              -    "Programming Language :: Python :: 3.6",
                              -    "Programming Language :: Python :: 3.7",
                                   "Programming Language :: Python :: 3.8",
                                   "Programming Language :: Python :: 3.9",
                                   "Programming Language :: Python :: 3.10",
                              +    "Programming Language :: Python :: 3.11",
                               ]
                               
                               [project.optional-dependencies]
                              -dev = ["flake8", "pytest"]
                              +dev = ["flake8", "ruff", "pytest"]
                               
                               [project.scripts]
                               gyp = "gyp:script_main"
                              @@ -36,6 +37,83 @@ gyp = "gyp:script_main"
                               [project.urls]
                               "Homepage" = "https://github.com/nodejs/gyp-next"
                               
                              +[tool.ruff]
                              +select = [
                              +  "C4",   # flake8-comprehensions
                              +  "C90",  # McCabe cyclomatic complexity
                              +  "DTZ",  # flake8-datetimez
                              +  "E",    # pycodestyle
                              +  "F",    # Pyflakes
                              +  "G",    # flake8-logging-format
                              +  "ICN",  # flake8-import-conventions
                              +  "INT",  # flake8-gettext
                              +  "PL",   # Pylint
                              +  "PYI",  # flake8-pyi
                              +  "RSE",  # flake8-raise
                              +  "RUF",  # Ruff-specific rules
                              +  "T10",  # flake8-debugger
                              +  "TCH",  # flake8-type-checking
                              +  "TID",  # flake8-tidy-imports
                              +  "UP",   # pyupgrade
                              +  "W",    # pycodestyle
                              +  "YTT",  # flake8-2020
                              +  # "A",    # flake8-builtins
                              +  # "ANN",  # flake8-annotations
                              +  # "ARG",  # flake8-unused-arguments
                              +  # "B",    # flake8-bugbear
                              +  # "BLE",  # flake8-blind-except
                              +  # "COM",  # flake8-commas
                              +  # "D",    # pydocstyle
                              +  # "DJ",   # flake8-django
                              +  # "EM",   # flake8-errmsg
                              +  # "ERA",  # eradicate
                              +  # "EXE",  # flake8-executable
                              +  # "FBT",  # flake8-boolean-trap
                              +  # "I",    # isort
                              +  # "INP",  # flake8-no-pep420
                              +  # "ISC",  # flake8-implicit-str-concat
                              +  # "N",    # pep8-naming
                              +  # "NPY",  # NumPy-specific rules
                              +  # "PD",   # pandas-vet
                              +  # "PGH",  # pygrep-hooks
                              +  # "PIE",  # flake8-pie
                              +  # "PT",   # flake8-pytest-style
                              +  # "PTH",  # flake8-use-pathlib
                              +  # "Q",    # flake8-quotes
                              +  # "RET",  # flake8-return
                              +  # "S",    # flake8-bandit
                              +  # "SIM",  # flake8-simplify
                              +  # "SLF",  # flake8-self
                              +  # "T20",  # flake8-print
                              +  # "TRY",  # tryceratops
                              +]
                              +ignore = [
                              +  "E721",
                              +  "PLC1901",
                              +  "PLR0402",
                              +  "PLR1714",
                              +  "PLR2004",
                              +  "PLR5501",
                              +  "PLW0603",
                              +  "PLW2901",
                              +  "PYI024",
                              +  "RUF005",
                              +  "RUF012",
                              +  "UP031",
                              +]
                              +extend-exclude = ["pylib/packaging"]
                              +line-length = 88
                              +target-version = "py37"
                              +
                              +[tool.ruff.mccabe]
                              +max-complexity = 101
                              +
                              +[tool.ruff.pylint]
                              +max-args = 11
                              +max-branches = 108
                              +max-returns = 10
                              +max-statements = 286
                              +
                               [tool.setuptools]
                               package-dir = {"" = "pylib"}
                               packages = ["gyp", "gyp.generator"]
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/README b/deps/npm/node_modules/node-gyp/gyp/tools/README
                              deleted file mode 100644
                              index 84a73d15214b68..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/README
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -pretty_vcproj:
                              -  Usage: pretty_vcproj.py "c:\path\to\vcproj.vcproj" [key1=value1] [key2=value2]
                              -
                              -  They key/value pair are used to resolve vsprops name.
                              -
                              -  For example, if I want to diff the base.vcproj project:
                              -
                              -  pretty_vcproj.py z:\dev\src-chrome\src\base\build\base.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > original.txt
                              -  pretty_vcproj.py z:\dev\src-chrome\src\base\base_gyp.vcproj "$(SolutionDir)=z:\dev\src-chrome\src\chrome\\" "$(CHROMIUM_BUILD)=" "$(CHROME_BUILD_TYPE)=" > gyp.txt
                              -
                              -  And you can use your favorite diff tool to see the changes.
                              -
                              -  Note: In the case of base.vcproj, the original vcproj is one level up the generated one.
                              -        I suggest you do a search and replace for '"..\' and replace it with '"' in original.txt
                              -        before you perform the diff.
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README b/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README
                              deleted file mode 100644
                              index 2492a2c2f8f170..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/README
                              +++ /dev/null
                              @@ -1,5 +0,0 @@
                              -Specifications contains syntax formatters for Xcode 3. These do not appear to be supported yet on Xcode 4. To use these with Xcode 3 please install both the gyp.pbfilespec and gyp.xclangspec files in
                              -
                              -~/Library/Application Support/Developer/Shared/Xcode/Specifications/
                              -
                              -and restart Xcode.
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec b/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec
                              deleted file mode 100644
                              index 85e2e268a51b76..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.pbfilespec
                              +++ /dev/null
                              @@ -1,27 +0,0 @@
                              -/*
                              -	gyp.pbfilespec
                              -	GYP source file spec for Xcode 3
                              -
                              -	There is not much documentation available regarding the format
                              -	of .pbfilespec files. As a starting point, see for instance the
                              -	outdated documentation at:
                              -	http://maxao.free.fr/xcode-plugin-interface/specifications.html
                              -	and the files in:
                              -	/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
                              -
                              -	Place this file in directory:
                              -	~/Library/Application Support/Developer/Shared/Xcode/Specifications/
                              -*/
                              -
                              -(
                              -	{
                              -		Identifier = sourcecode.gyp;
                              -		BasedOn = sourcecode;
                              -		Name = "GYP Files";
                              -		Extensions = ("gyp", "gypi");
                              -		MIMETypes = ("text/gyp");
                              -		Language = "xcode.lang.gyp";
                              -		IsTextFile = YES;
                              -		IsSourceFile = YES;
                              -	}
                              -)
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec b/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec
                              deleted file mode 100644
                              index 3b3506d319e0f2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/Xcode/Specifications/gyp.xclangspec
                              +++ /dev/null
                              @@ -1,226 +0,0 @@
                              -/*
                              -	Copyright (c) 2011 Google Inc. All rights reserved.
                              -	Use of this source code is governed by a BSD-style license that can be
                              -	found in the LICENSE file.
                              -	
                              -	gyp.xclangspec
                              -	GYP language specification for Xcode 3
                              -
                              -	There is not much documentation available regarding the format
                              -	of .xclangspec files. As a starting point, see for instance the
                              -	outdated documentation at:
                              -	http://maxao.free.fr/xcode-plugin-interface/specifications.html
                              -	and the files in:
                              -	/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
                              -
                              -	Place this file in directory:
                              -	~/Library/Application Support/Developer/Shared/Xcode/Specifications/
                              -*/
                              -
                              -(
                              -
                              -    {
                              -        Identifier = "xcode.lang.gyp.keyword";
                              -        Syntax = {
                              -            Words = (
                              -                "and",
                              -                "or",
                              -                " (caar gyp-parse-history) target-point)
                              -    (setq gyp-parse-history (cdr gyp-parse-history))))
                              -
                              -(defun gyp-parse-point ()
                              -  "The point of the last parse state added by gyp-parse-to."
                              -  (caar gyp-parse-history))
                              -
                              -(defun gyp-parse-sections ()
                              -  "A list of section symbols holding at the last parse state point."
                              -  (cdar gyp-parse-history))
                              -
                              -(defun gyp-inside-dictionary-p ()
                              -  "Predicate returning true if the parser is inside a dictionary."
                              -  (not (eq (cadar gyp-parse-history) 'list)))
                              -
                              -(defun gyp-add-parse-history (point sections)
                              -  "Add parse state SECTIONS to the parse history at POINT so that parsing can be
                              -   resumed instantly."
                              -  (while (>= (caar gyp-parse-history) point)
                              -    (setq gyp-parse-history (cdr gyp-parse-history)))
                              -  (setq gyp-parse-history (cons (cons point sections) gyp-parse-history)))
                              -
                              -(defun gyp-parse-to (target-point)
                              -  "Parses from (point) to TARGET-POINT adding the parse state information to
                              -   gyp-parse-state-history. Parsing stops if TARGET-POINT is reached or if a
                              -   string literal has been parsed. Returns nil if no further parsing can be
                              -   done, otherwise returns the position of the start of a parsed string, leaving
                              -   the point at the end of the string."
                              -  (let ((parsing t)
                              -        string-start)
                              -    (while parsing
                              -      (setq string-start nil)
                              -      ;; Parse up to a character that starts a sexp, or if the nesting
                              -      ;; level decreases.
                              -      (let ((state (parse-partial-sexp (gyp-parse-point)
                              -                                       target-point
                              -                                       -1
                              -                                       t))
                              -            (sections (gyp-parse-sections)))
                              -        (if (= (nth 0 state) -1)
                              -            (setq sections (cdr sections)) ; pop out a level
                              -          (cond ((looking-at-p "['\"]") ; a string
                              -                 (setq string-start (point))
                              -                 (goto-char (scan-sexps (point) 1))
                              -                 (if (gyp-inside-dictionary-p)
                              -                     ;; Look for sections inside a dictionary
                              -                     (let ((section (gyp-section-name
                              -                                     (buffer-substring-no-properties
                              -                                      (+ 1 string-start)
                              -                                      (- (point) 1)))))
                              -                       (setq sections (cons section (cdr sections)))))
                              -                 ;; Stop after the string so it can be fontified.
                              -                 (setq target-point (point)))
                              -                ((looking-at-p "{")
                              -                 ;; Inside a dictionary. Increase nesting.
                              -                 (forward-char 1)
                              -                 (setq sections (cons 'unknown sections)))
                              -                ((looking-at-p "\\[")
                              -                 ;; Inside a list. Increase nesting
                              -                 (forward-char 1)
                              -                 (setq sections (cons 'list sections)))
                              -                ((not (eobp))
                              -                 ;; other
                              -                 (forward-char 1))))
                              -        (gyp-add-parse-history (point) sections)
                              -        (setq parsing (< (point) target-point))))
                              -    string-start))
                              -
                              -(defun gyp-section-at-point ()
                              -  "Transform the last parse state, which is a list of nested sections and return
                              -   the section symbol that should be used to determine font-lock information for
                              -   the string. Can return nil indicating the string should not have any attached
                              -   section."
                              -  (let ((sections (gyp-parse-sections)))
                              -    (cond
                              -     ((eq (car sections) 'conditions)
                              -      ;; conditions can occur in a variables section, but we still want to
                              -      ;; highlight it as a keyword.
                              -      nil)
                              -     ((and (eq (car sections) 'list)
                              -           (eq (cadr sections) 'list))
                              -      ;; conditions and sources can have items in [[ ]]
                              -      (caddr sections))
                              -     (t (cadr sections)))))
                              -
                              -(defun gyp-section-match (limit)
                              -  "Parse from (point) to LIMIT returning by means of match data what was
                              -   matched. The group of the match indicates what style font-lock should apply.
                              -   See also `gyp-add-font-lock-keywords'."
                              -  (gyp-invalidate-parse-states-after (point))
                              -  (let ((group nil)
                              -        (string-start t))
                              -    (while (and (< (point) limit)
                              -                (not group)
                              -                string-start)
                              -      (setq string-start (gyp-parse-to limit))
                              -      (if string-start
                              -          (setq group (cl-case (gyp-section-at-point)
                              -                        ('dependencies 1)
                              -                        ('variables 2)
                              -                        ('conditions 2)
                              -                        ('sources 3)
                              -                        ('defines 4)
                              -                        (nil nil)))))
                              -    (if group
                              -        (progn
                              -          ;; Set the match data to indicate to the font-lock mechanism the
                              -          ;; highlighting to be performed.
                              -          (set-match-data (append (list string-start (point))
                              -                                  (make-list (* (1- group) 2) nil)
                              -                                  (list (1+ string-start) (1- (point)))))
                              -          t))))
                              -
                              -;;; Please see http://code.google.com/p/gyp/wiki/GypLanguageSpecification for
                              -;;; canonical list of keywords.
                              -(defun gyp-add-font-lock-keywords ()
                              -  "Add gyp-mode keywords to font-lock mechanism."
                              -  ;; TODO(jknotten): Move all the keyword highlighting into gyp-section-match
                              -  ;; so that we can do the font-locking in a single font-lock pass.
                              -  (font-lock-add-keywords
                              -   nil
                              -   (list
                              -    ;; Top-level keywords
                              -    (list (concat "['\"]\\("
                              -              (regexp-opt (list "action" "action_name" "actions" "cflags"
                              -                                "cflags_cc" "conditions" "configurations"
                              -                                "copies" "defines" "dependencies" "destination"
                              -                                "direct_dependent_settings"
                              -                                "export_dependent_settings" "extension" "files"
                              -                                "include_dirs" "includes" "inputs" "ldflags" "libraries"
                              -                                "link_settings" "mac_bundle" "message"
                              -                                "msvs_external_rule" "outputs" "product_name"
                              -                                "process_outputs_as_sources" "rules" "rule_name"
                              -                                "sources" "suppress_wildcard"
                              -                                "target_conditions" "target_defaults"
                              -                                "target_defines" "target_name" "toolsets"
                              -                                "targets" "type" "variables" "xcode_settings"))
                              -              "[!/+=]?\\)") 1 'font-lock-keyword-face t)
                              -    ;; Type of target
                              -    (list (concat "['\"]\\("
                              -              (regexp-opt (list "loadable_module" "static_library"
                              -                                "shared_library" "executable" "none"))
                              -              "\\)") 1 'font-lock-type-face t)
                              -    (list "\\(?:target\\|action\\)_name['\"]\\s-*:\\s-*['\"]\\([^ '\"]*\\)" 1
                              -          'font-lock-function-name-face t)
                              -    (list 'gyp-section-match
                              -          (list 1 'font-lock-function-name-face t t) ; dependencies
                              -          (list 2 'font-lock-variable-name-face t t) ; variables, conditions
                              -          (list 3 'font-lock-constant-face t t) ; sources
                              -          (list 4 'font-lock-preprocessor-face t t)) ; preprocessor
                              -    ;; Variable expansion
                              -    (list "<@?(\\([^\n )]+\\))" 1 'font-lock-variable-name-face t)
                              -    ;; Command expansion
                              -    (list " "{dst}"')
                              -
                              -    print("}")
                              -
                              -
                              -def main():
                              -    if len(sys.argv) < 2:
                              -        print(__doc__, file=sys.stderr)
                              -        print(file=sys.stderr)
                              -        print("usage: %s target1 target2..." % (sys.argv[0]), file=sys.stderr)
                              -        return 1
                              -
                              -    edges = LoadEdges("dump.json", sys.argv[1:])
                              -
                              -    WriteGraph(edges)
                              -    return 0
                              -
                              -
                              -if __name__ == "__main__":
                              -    sys.exit(main())
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
                              deleted file mode 100755
                              index 6eef3a1bbf02a5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_gyp.py
                              +++ /dev/null
                              @@ -1,156 +0,0 @@
                              -#!/usr/bin/env python3
                              -
                              -# Copyright (c) 2012 Google Inc. All rights reserved.
                              -# Use of this source code is governed by a BSD-style license that can be
                              -# found in the LICENSE file.
                              -
                              -"""Pretty-prints the contents of a GYP file."""
                              -
                              -
                              -import sys
                              -import re
                              -
                              -
                              -# Regex to remove comments when we're counting braces.
                              -COMMENT_RE = re.compile(r"\s*#.*")
                              -
                              -# Regex to remove quoted strings when we're counting braces.
                              -# It takes into account quoted quotes, and makes sure that the quotes match.
                              -# NOTE: It does not handle quotes that span more than one line, or
                              -# cases where an escaped quote is preceded by an escaped backslash.
                              -QUOTE_RE_STR = r'(?P[\'"])(.*?)(? 0:
                              -        after = True
                              -
                              -    # This catches the special case of a closing brace having something
                              -    # other than just whitespace ahead of it -- we don't want to
                              -    # unindent that until after this line is printed so it stays with
                              -    # the previous indentation level.
                              -    if cnt < 0 and closing_prefix_re.match(stripline):
                              -        after = True
                              -    return (cnt, after)
                              -
                              -
                              -def prettyprint_input(lines):
                              -    """Does the main work of indenting the input based on the brace counts."""
                              -    indent = 0
                              -    basic_offset = 2
                              -    for line in lines:
                              -        if COMMENT_RE.match(line):
                              -            print(line)
                              -        else:
                              -            line = line.strip("\r\n\t ")  # Otherwise doesn't strip \r on Unix.
                              -            if len(line) > 0:
                              -                (brace_diff, after) = count_braces(line)
                              -                if brace_diff != 0:
                              -                    if after:
                              -                        print(" " * (basic_offset * indent) + line)
                              -                        indent += brace_diff
                              -                    else:
                              -                        indent += brace_diff
                              -                        print(" " * (basic_offset * indent) + line)
                              -                else:
                              -                    print(" " * (basic_offset * indent) + line)
                              -            else:
                              -                print("")
                              -
                              -
                              -def main():
                              -    if len(sys.argv) > 1:
                              -        data = open(sys.argv[1]).read().splitlines()
                              -    else:
                              -        data = sys.stdin.read().splitlines()
                              -    # Split up the double braces.
                              -    lines = split_double_braces(data)
                              -
                              -    # Indent and print the output.
                              -    prettyprint_input(lines)
                              -    return 0
                              -
                              -
                              -if __name__ == "__main__":
                              -    sys.exit(main())
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
                              deleted file mode 100755
                              index 6ca0cd12a7ba06..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_sln.py
                              +++ /dev/null
                              @@ -1,181 +0,0 @@
                              -#!/usr/bin/env python3
                              -
                              -# Copyright (c) 2012 Google Inc. All rights reserved.
                              -# Use of this source code is governed by a BSD-style license that can be
                              -# found in the LICENSE file.
                              -
                              -"""Prints the information in a sln file in a diffable way.
                              -
                              -   It first outputs each projects in alphabetical order with their
                              -   dependencies.
                              -
                              -   Then it outputs a possible build order.
                              -"""
                              -
                              -
                              -import os
                              -import re
                              -import sys
                              -import pretty_vcproj
                              -
                              -__author__ = "nsylvain (Nicolas Sylvain)"
                              -
                              -
                              -def BuildProject(project, built, projects, deps):
                              -    # if all dependencies are done, we can build it, otherwise we try to build the
                              -    # dependency.
                              -    # This is not infinite-recursion proof.
                              -    for dep in deps[project]:
                              -        if dep not in built:
                              -            BuildProject(dep, built, projects, deps)
                              -    print(project)
                              -    built.append(project)
                              -
                              -
                              -def ParseSolution(solution_file):
                              -    # All projects, their clsid and paths.
                              -    projects = dict()
                              -
                              -    # A list of dependencies associated with a project.
                              -    dependencies = dict()
                              -
                              -    # Regular expressions that matches the SLN format.
                              -    # The first line of a project definition.
                              -    begin_project = re.compile(
                              -        r'^Project\("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942'
                              -        r'}"\) = "(.*)", "(.*)", "(.*)"$'
                              -    )
                              -    # The last line of a project definition.
                              -    end_project = re.compile("^EndProject$")
                              -    # The first line of a dependency list.
                              -    begin_dep = re.compile(r"ProjectSection\(ProjectDependencies\) = postProject$")
                              -    # The last line of a dependency list.
                              -    end_dep = re.compile("EndProjectSection$")
                              -    # A line describing a dependency.
                              -    dep_line = re.compile(" *({.*}) = ({.*})$")
                              -
                              -    in_deps = False
                              -    solution = open(solution_file)
                              -    for line in solution:
                              -        results = begin_project.search(line)
                              -        if results:
                              -            # Hack to remove icu because the diff is too different.
                              -            if results.group(1).find("icu") != -1:
                              -                continue
                              -            # We remove "_gyp" from the names because it helps to diff them.
                              -            current_project = results.group(1).replace("_gyp", "")
                              -            projects[current_project] = [
                              -                results.group(2).replace("_gyp", ""),
                              -                results.group(3),
                              -                results.group(2),
                              -            ]
                              -            dependencies[current_project] = []
                              -            continue
                              -
                              -        results = end_project.search(line)
                              -        if results:
                              -            current_project = None
                              -            continue
                              -
                              -        results = begin_dep.search(line)
                              -        if results:
                              -            in_deps = True
                              -            continue
                              -
                              -        results = end_dep.search(line)
                              -        if results:
                              -            in_deps = False
                              -            continue
                              -
                              -        results = dep_line.search(line)
                              -        if results and in_deps and current_project:
                              -            dependencies[current_project].append(results.group(1))
                              -            continue
                              -
                              -    # Change all dependencies clsid to name instead.
                              -    for project in dependencies:
                              -        # For each dependencies in this project
                              -        new_dep_array = []
                              -        for dep in dependencies[project]:
                              -            # Look for the project name matching this cldis
                              -            for project_info in projects:
                              -                if projects[project_info][1] == dep:
                              -                    new_dep_array.append(project_info)
                              -        dependencies[project] = sorted(new_dep_array)
                              -
                              -    return (projects, dependencies)
                              -
                              -
                              -def PrintDependencies(projects, deps):
                              -    print("---------------------------------------")
                              -    print("Dependencies for all projects")
                              -    print("---------------------------------------")
                              -    print("--                                   --")
                              -
                              -    for (project, dep_list) in sorted(deps.items()):
                              -        print("Project : %s" % project)
                              -        print("Path : %s" % projects[project][0])
                              -        if dep_list:
                              -            for dep in dep_list:
                              -                print("  - %s" % dep)
                              -        print("")
                              -
                              -    print("--                                   --")
                              -
                              -
                              -def PrintBuildOrder(projects, deps):
                              -    print("---------------------------------------")
                              -    print("Build order                            ")
                              -    print("---------------------------------------")
                              -    print("--                                   --")
                              -
                              -    built = []
                              -    for (project, _) in sorted(deps.items()):
                              -        if project not in built:
                              -            BuildProject(project, built, projects, deps)
                              -
                              -    print("--                                   --")
                              -
                              -
                              -def PrintVCProj(projects):
                              -
                              -    for project in projects:
                              -        print("-------------------------------------")
                              -        print("-------------------------------------")
                              -        print(project)
                              -        print(project)
                              -        print(project)
                              -        print("-------------------------------------")
                              -        print("-------------------------------------")
                              -
                              -        project_path = os.path.abspath(
                              -            os.path.join(os.path.dirname(sys.argv[1]), projects[project][2])
                              -        )
                              -
                              -        pretty = pretty_vcproj
                              -        argv = [
                              -            "",
                              -            project_path,
                              -            "$(SolutionDir)=%s\\" % os.path.dirname(sys.argv[1]),
                              -        ]
                              -        argv.extend(sys.argv[3:])
                              -        pretty.main(argv)
                              -
                              -
                              -def main():
                              -    # check if we have exactly 1 parameter.
                              -    if len(sys.argv) < 2:
                              -        print('Usage: %s "c:\\path\\to\\project.sln"' % sys.argv[0])
                              -        return 1
                              -
                              -    (projects, deps) = ParseSolution(sys.argv[1])
                              -    PrintDependencies(projects, deps)
                              -    PrintBuildOrder(projects, deps)
                              -
                              -    if "--recursive" in sys.argv:
                              -        PrintVCProj(projects)
                              -    return 0
                              -
                              -
                              -if __name__ == "__main__":
                              -    sys.exit(main())
                              diff --git a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py b/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
                              deleted file mode 100755
                              index 00d32debda51f0..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/gyp/tools/pretty_vcproj.py
                              +++ /dev/null
                              @@ -1,339 +0,0 @@
                              -#!/usr/bin/env python3
                              -
                              -# Copyright (c) 2012 Google Inc. All rights reserved.
                              -# Use of this source code is governed by a BSD-style license that can be
                              -# found in the LICENSE file.
                              -
                              -"""Make the format of a vcproj really pretty.
                              -
                              -   This script normalize and sort an xml. It also fetches all the properties
                              -   inside linked vsprops and include them explicitly in the vcproj.
                              -
                              -   It outputs the resulting xml to stdout.
                              -"""
                              -
                              -
                              -import os
                              -import sys
                              -
                              -from xml.dom.minidom import parse
                              -from xml.dom.minidom import Node
                              -
                              -__author__ = "nsylvain (Nicolas Sylvain)"
                              -ARGUMENTS = None
                              -REPLACEMENTS = dict()
                              -
                              -
                              -def cmp(x, y):
                              -    return (x > y) - (x < y)
                              -
                              -
                              -class CmpTuple:
                              -    """Compare function between 2 tuple."""
                              -
                              -    def __call__(self, x, y):
                              -        return cmp(x[0], y[0])
                              -
                              -
                              -class CmpNode:
                              -    """Compare function between 2 xml nodes."""
                              -
                              -    def __call__(self, x, y):
                              -        def get_string(node):
                              -            node_string = "node"
                              -            node_string += node.nodeName
                              -            if node.nodeValue:
                              -                node_string += node.nodeValue
                              -
                              -            if node.attributes:
                              -                # We first sort by name, if present.
                              -                node_string += node.getAttribute("Name")
                              -
                              -                all_nodes = []
                              -                for (name, value) in node.attributes.items():
                              -                    all_nodes.append((name, value))
                              -
                              -                all_nodes.sort(CmpTuple())
                              -                for (name, value) in all_nodes:
                              -                    node_string += name
                              -                    node_string += value
                              -
                              -            return node_string
                              -
                              -        return cmp(get_string(x), get_string(y))
                              -
                              -
                              -def PrettyPrintNode(node, indent=0):
                              -    if node.nodeType == Node.TEXT_NODE:
                              -        if node.data.strip():
                              -            print("{}{}".format(" " * indent, node.data.strip()))
                              -        return
                              -
                              -    if node.childNodes:
                              -        node.normalize()
                              -    # Get the number of attributes
                              -    attr_count = 0
                              -    if node.attributes:
                              -        attr_count = node.attributes.length
                              -
                              -    # Print the main tag
                              -    if attr_count == 0:
                              -        print("{}<{}>".format(" " * indent, node.nodeName))
                              -    else:
                              -        print("{}<{}".format(" " * indent, node.nodeName))
                              -
                              -        all_attributes = []
                              -        for (name, value) in node.attributes.items():
                              -            all_attributes.append((name, value))
                              -            all_attributes.sort(CmpTuple())
                              -        for (name, value) in all_attributes:
                              -            print('{}  {}="{}"'.format(" " * indent, name, value))
                              -        print("%s>" % (" " * indent))
                              -    if node.nodeValue:
                              -        print("{}  {}".format(" " * indent, node.nodeValue))
                              -
                              -    for sub_node in node.childNodes:
                              -        PrettyPrintNode(sub_node, indent=indent + 2)
                              -    print("{}".format(" " * indent, node.nodeName))
                              -
                              -
                              -def FlattenFilter(node):
                              -    """Returns a list of all the node and sub nodes."""
                              -    node_list = []
                              -
                              -    if node.attributes and node.getAttribute("Name") == "_excluded_files":
                              -        # We don't add the "_excluded_files" filter.
                              -        return []
                              -
                              -    for current in node.childNodes:
                              -        if current.nodeName == "Filter":
                              -            node_list.extend(FlattenFilter(current))
                              -        else:
                              -            node_list.append(current)
                              -
                              -    return node_list
                              -
                              -
                              -def FixFilenames(filenames, current_directory):
                              -    new_list = []
                              -    for filename in filenames:
                              -        if filename:
                              -            for key in REPLACEMENTS:
                              -                filename = filename.replace(key, REPLACEMENTS[key])
                              -            os.chdir(current_directory)
                              -            filename = filename.strip("\"' ")
                              -            if filename.startswith("$"):
                              -                new_list.append(filename)
                              -            else:
                              -                new_list.append(os.path.abspath(filename))
                              -    return new_list
                              -
                              -
                              -def AbsoluteNode(node):
                              -    """Makes all the properties we know about in this node absolute."""
                              -    if node.attributes:
                              -        for (name, value) in node.attributes.items():
                              -            if name in [
                              -                "InheritedPropertySheets",
                              -                "RelativePath",
                              -                "AdditionalIncludeDirectories",
                              -                "IntermediateDirectory",
                              -                "OutputDirectory",
                              -                "AdditionalLibraryDirectories",
                              -            ]:
                              -                # We want to fix up these paths
                              -                path_list = value.split(";")
                              -                new_list = FixFilenames(path_list, os.path.dirname(ARGUMENTS[1]))
                              -                node.setAttribute(name, ";".join(new_list))
                              -            if not value:
                              -                node.removeAttribute(name)
                              -
                              -
                              -def CleanupVcproj(node):
                              -    """For each sub node, we call recursively this function."""
                              -    for sub_node in node.childNodes:
                              -        AbsoluteNode(sub_node)
                              -        CleanupVcproj(sub_node)
                              -
                              -    # Normalize the node, and remove all extraneous whitespaces.
                              -    for sub_node in node.childNodes:
                              -        if sub_node.nodeType == Node.TEXT_NODE:
                              -            sub_node.data = sub_node.data.replace("\r", "")
                              -            sub_node.data = sub_node.data.replace("\n", "")
                              -            sub_node.data = sub_node.data.rstrip()
                              -
                              -    # Fix all the semicolon separated attributes to be sorted, and we also
                              -    # remove the dups.
                              -    if node.attributes:
                              -        for (name, value) in node.attributes.items():
                              -            sorted_list = sorted(value.split(";"))
                              -            unique_list = []
                              -            for i in sorted_list:
                              -                if not unique_list.count(i):
                              -                    unique_list.append(i)
                              -            node.setAttribute(name, ";".join(unique_list))
                              -            if not value:
                              -                node.removeAttribute(name)
                              -
                              -    if node.childNodes:
                              -        node.normalize()
                              -
                              -    # For each node, take a copy, and remove it from the list.
                              -    node_array = []
                              -    while node.childNodes and node.childNodes[0]:
                              -        # Take a copy of the node and remove it from the list.
                              -        current = node.childNodes[0]
                              -        node.removeChild(current)
                              -
                              -        # If the child is a filter, we want to append all its children
                              -        # to this same list.
                              -        if current.nodeName == "Filter":
                              -            node_array.extend(FlattenFilter(current))
                              -        else:
                              -            node_array.append(current)
                              -
                              -    # Sort the list.
                              -    node_array.sort(CmpNode())
                              -
                              -    # Insert the nodes in the correct order.
                              -    for new_node in node_array:
                              -        # But don't append empty tool node.
                              -        if new_node.nodeName == "Tool":
                              -            if new_node.attributes and new_node.attributes.length == 1:
                              -                # This one was empty.
                              -                continue
                              -        if new_node.nodeName == "UserMacro":
                              -            continue
                              -        node.appendChild(new_node)
                              -
                              -
                              -def GetConfiguationNodes(vcproj):
                              -    # TODO(nsylvain): Find a better way to navigate the xml.
                              -    nodes = []
                              -    for node in vcproj.childNodes:
                              -        if node.nodeName == "Configurations":
                              -            for sub_node in node.childNodes:
                              -                if sub_node.nodeName == "Configuration":
                              -                    nodes.append(sub_node)
                              -
                              -    return nodes
                              -
                              -
                              -def GetChildrenVsprops(filename):
                              -    dom = parse(filename)
                              -    if dom.documentElement.attributes:
                              -        vsprops = dom.documentElement.getAttribute("InheritedPropertySheets")
                              -        return FixFilenames(vsprops.split(";"), os.path.dirname(filename))
                              -    return []
                              -
                              -
                              -def SeekToNode(node1, child2):
                              -    # A text node does not have properties.
                              -    if child2.nodeType == Node.TEXT_NODE:
                              -        return None
                              -
                              -    # Get the name of the current node.
                              -    current_name = child2.getAttribute("Name")
                              -    if not current_name:
                              -        # There is no name. We don't know how to merge.
                              -        return None
                              -
                              -    # Look through all the nodes to find a match.
                              -    for sub_node in node1.childNodes:
                              -        if sub_node.nodeName == child2.nodeName:
                              -            name = sub_node.getAttribute("Name")
                              -            if name == current_name:
                              -                return sub_node
                              -
                              -    # No match. We give up.
                              -    return None
                              -
                              -
                              -def MergeAttributes(node1, node2):
                              -    # No attributes to merge?
                              -    if not node2.attributes:
                              -        return
                              -
                              -    for (name, value2) in node2.attributes.items():
                              -        # Don't merge the 'Name' attribute.
                              -        if name == "Name":
                              -            continue
                              -        value1 = node1.getAttribute(name)
                              -        if value1:
                              -            # The attribute exist in the main node. If it's equal, we leave it
                              -            # untouched, otherwise we concatenate it.
                              -            if value1 != value2:
                              -                node1.setAttribute(name, ";".join([value1, value2]))
                              -        else:
                              -            # The attribute does not exist in the main node. We append this one.
                              -            node1.setAttribute(name, value2)
                              -
                              -        # If the attribute was a property sheet attributes, we remove it, since
                              -        # they are useless.
                              -        if name == "InheritedPropertySheets":
                              -            node1.removeAttribute(name)
                              -
                              -
                              -def MergeProperties(node1, node2):
                              -    MergeAttributes(node1, node2)
                              -    for child2 in node2.childNodes:
                              -        child1 = SeekToNode(node1, child2)
                              -        if child1:
                              -            MergeProperties(child1, child2)
                              -        else:
                              -            node1.appendChild(child2.cloneNode(True))
                              -
                              -
                              -def main(argv):
                              -    """Main function of this vcproj prettifier."""
                              -    global ARGUMENTS
                              -    ARGUMENTS = argv
                              -
                              -    # check if we have exactly 1 parameter.
                              -    if len(argv) < 2:
                              -        print(
                              -            'Usage: %s "c:\\path\\to\\vcproj.vcproj" [key1=value1] '
                              -            "[key2=value2]" % argv[0]
                              -        )
                              -        return 1
                              -
                              -    # Parse the keys
                              -    for i in range(2, len(argv)):
                              -        (key, value) = argv[i].split("=")
                              -        REPLACEMENTS[key] = value
                              -
                              -    # Open the vcproj and parse the xml.
                              -    dom = parse(argv[1])
                              -
                              -    # First thing we need to do is find the Configuration Node and merge them
                              -    # with the vsprops they include.
                              -    for configuration_node in GetConfiguationNodes(dom.documentElement):
                              -        # Get the property sheets associated with this configuration.
                              -        vsprops = configuration_node.getAttribute("InheritedPropertySheets")
                              -
                              -        # Fix the filenames to be absolute.
                              -        vsprops_list = FixFilenames(
                              -            vsprops.strip().split(";"), os.path.dirname(argv[1])
                              -        )
                              -
                              -        # Extend the list of vsprops with all vsprops contained in the current
                              -        # vsprops.
                              -        for current_vsprops in vsprops_list:
                              -            vsprops_list.extend(GetChildrenVsprops(current_vsprops))
                              -
                              -        # Now that we have all the vsprops, we need to merge them.
                              -        for current_vsprops in vsprops_list:
                              -            MergeProperties(configuration_node, parse(current_vsprops).documentElement)
                              -
                              -    # Now that everything is merged, we need to cleanup the xml.
                              -    CleanupVcproj(dom.documentElement)
                              -
                              -    # Finally, we use the prett xml function to print the vcproj back to the
                              -    # user.
                              -    # print dom.toprettyxml(newl="\n")
                              -    PrettyPrintNode(dom.documentElement)
                              -    return 0
                              -
                              -
                              -if __name__ == "__main__":
                              -    sys.exit(main(sys.argv))
                              diff --git a/deps/npm/node_modules/node-gyp/lib/build.js b/deps/npm/node_modules/node-gyp/lib/build.js
                              index ea1f90652a05d8..6b8d84d3ede344 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/build.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/build.js
                              @@ -1,14 +1,14 @@
                               'use strict'
                               
                              -const fs = require('graceful-fs')
                              +const fs = require('graceful-fs').promises
                               const path = require('path')
                              -const glob = require('glob')
                              -const log = require('npmlog')
                              +const { glob } = require('glob')
                              +const log = require('./log')
                               const which = require('which')
                               const win = process.platform === 'win32'
                               
                              -function build (gyp, argv, callback) {
                              -  var platformMake = 'make'
                              +async function build (gyp, argv) {
                              +  let platformMake = 'make'
                                 if (process.platform === 'aix') {
                                   platformMake = 'gmake'
                                 } else if (process.platform === 'os400') {
                              @@ -21,113 +21,107 @@ function build (gyp, argv, callback) {
                                   })
                                 }
                               
                              -  var makeCommand = gyp.opts.make || process.env.MAKE || platformMake
                              -  var command = win ? 'msbuild' : makeCommand
                              -  var jobs = gyp.opts.jobs || process.env.JOBS
                              -  var buildType
                              -  var config
                              -  var arch
                              -  var nodeDir
                              -  var guessedSolution
                              +  const makeCommand = gyp.opts.make || process.env.MAKE || platformMake
                              +  let command = win ? 'msbuild' : makeCommand
                              +  const jobs = gyp.opts.jobs || process.env.JOBS
                              +  let buildType
                              +  let config
                              +  let arch
                              +  let nodeDir
                              +  let guessedSolution
                              +  let python
                              +  let buildBinsDir
                               
                              -  loadConfigGypi()
                              +  await loadConfigGypi()
                               
                                 /**
                                  * Load the "config.gypi" file that was generated during "configure".
                                  */
                               
                              -  function loadConfigGypi () {
                              -    var configPath = path.resolve('build', 'config.gypi')
                              -
                              -    fs.readFile(configPath, 'utf8', function (err, data) {
                              -      if (err) {
                              -        if (err.code === 'ENOENT') {
                              -          callback(new Error('You must run `node-gyp configure` first!'))
                              -        } else {
                              -          callback(err)
                              -        }
                              -        return
                              +  async function loadConfigGypi () {
                              +    let data
                              +    try {
                              +      const configPath = path.resolve('build', 'config.gypi')
                              +      data = await fs.readFile(configPath, 'utf8')
                              +    } catch (err) {
                              +      if (err.code === 'ENOENT') {
                              +        throw new Error('You must run `node-gyp configure` first!')
                              +      } else {
                              +        throw err
                                     }
                              -      config = JSON.parse(data.replace(/#.+\n/, ''))
                              +    }
                               
                              -      // get the 'arch', 'buildType', and 'nodeDir' vars from the config
                              -      buildType = config.target_defaults.default_configuration
                              -      arch = config.variables.target_arch
                              -      nodeDir = config.variables.nodedir
                              +    config = JSON.parse(data.replace(/#.+\n/, ''))
                               
                              -      if ('debug' in gyp.opts) {
                              -        buildType = gyp.opts.debug ? 'Debug' : 'Release'
                              -      }
                              -      if (!buildType) {
                              -        buildType = 'Release'
                              -      }
                              +    // get the 'arch', 'buildType', and 'nodeDir' vars from the config
                              +    buildType = config.target_defaults.default_configuration
                              +    arch = config.variables.target_arch
                              +    nodeDir = config.variables.nodedir
                              +    python = config.variables.python
                               
                              -      log.verbose('build type', buildType)
                              -      log.verbose('architecture', arch)
                              -      log.verbose('node dev dir', nodeDir)
                              +    if ('debug' in gyp.opts) {
                              +      buildType = gyp.opts.debug ? 'Debug' : 'Release'
                              +    }
                              +    if (!buildType) {
                              +      buildType = 'Release'
                              +    }
                               
                              -      if (win) {
                              -        findSolutionFile()
                              -      } else {
                              -        doWhich()
                              -      }
                              -    })
                              +    log.verbose('build type', buildType)
                              +    log.verbose('architecture', arch)
                              +    log.verbose('node dev dir', nodeDir)
                              +    log.verbose('python', python)
                              +
                              +    if (win) {
                              +      await findSolutionFile()
                              +    } else {
                              +      await doWhich()
                              +    }
                                 }
                               
                                 /**
                                  * On Windows, find the first build/*.sln file.
                                  */
                               
                              -  function findSolutionFile () {
                              -    glob('build/*.sln', function (err, files) {
                              -      if (err) {
                              -        return callback(err)
                              -      }
                              -      if (files.length === 0) {
                              -        return callback(new Error('Could not find *.sln file. Did you run "configure"?'))
                              -      }
                              -      guessedSolution = files[0]
                              -      log.verbose('found first Solution file', guessedSolution)
                              -      doWhich()
                              -    })
                              +  async function findSolutionFile () {
                              +    const files = await glob('build/*.sln')
                              +    if (files.length === 0) {
                              +      throw new Error('Could not find *.sln file. Did you run "configure"?')
                              +    }
                              +    guessedSolution = files[0]
                              +    log.verbose('found first Solution file', guessedSolution)
                              +    await doWhich()
                                 }
                               
                                 /**
                                  * Uses node-which to locate the msbuild / make executable.
                                  */
                               
                              -  function doWhich () {
                              +  async function doWhich () {
                                   // On Windows use msbuild provided by node-gyp configure
                                   if (win) {
                                     if (!config.variables.msbuild_path) {
                              -        return callback(new Error(
                              -          'MSBuild is not set, please run `node-gyp configure`.'))
                              +        throw new Error('MSBuild is not set, please run `node-gyp configure`.')
                                     }
                                     command = config.variables.msbuild_path
                                     log.verbose('using MSBuild:', command)
                              -      doBuild()
                              +      await doBuild()
                                     return
                                   }
                              +
                                   // First make sure we have the build command in the PATH
                              -    which(command, function (err, execPath) {
                              -      if (err) {
                              -        // Some other error or 'make' not found on Unix, report that to the user
                              -        callback(err)
                              -        return
                              -      }
                              -      log.verbose('`which` succeeded for `' + command + '`', execPath)
                              -      doBuild()
                              -    })
                              +    const execPath = await which(command)
                              +    log.verbose('`which` succeeded for `' + command + '`', execPath)
                              +    await doBuild()
                                 }
                               
                                 /**
                                  * Actually spawn the process and compile the module.
                                  */
                               
                              -  function doBuild () {
                              +  async function doBuild () {
                                   // Enable Verbose build
                              -    var verbose = log.levels[log.level] <= log.levels.verbose
                              -    var j
                              +    const verbose = log.logger.isVisible('verbose')
                              +    let j
                               
                                   if (!win && verbose) {
                                     argv.push('V=1')
                              @@ -147,10 +141,12 @@ function build (gyp, argv, callback) {
                                     // Convert .gypi config target_arch to MSBuild /Platform
                                     // Since there are many ways to state '32-bit Intel', default to it.
                                     // N.B. msbuild's Condition string equality tests are case-insensitive.
                              -      var archLower = arch.toLowerCase()
                              -      var p = archLower === 'x64' ? 'x64'
                              -        : (archLower === 'arm' ? 'ARM'
                              -          : (archLower === 'arm64' ? 'ARM64' : 'Win32'))
                              +      const archLower = arch.toLowerCase()
                              +      const p = archLower === 'x64'
                              +        ? 'x64'
                              +        : (archLower === 'arm'
                              +            ? 'ARM'
                              +            : (archLower === 'arm64' ? 'ARM64' : 'Win32'))
                                     argv.push('/p:Configuration=' + buildType + ';Platform=' + p)
                                     if (jobs) {
                                       j = parseInt(jobs, 10)
                              @@ -179,7 +175,7 @@ function build (gyp, argv, callback) {
                               
                                   if (win) {
                                     // did the user specify their own .sln file?
                              -      var hasSln = argv.some(function (arg) {
                              +      const hasSln = argv.some(function (arg) {
                                       return path.extname(arg) === '.sln'
                                     })
                                     if (!hasSln) {
                              @@ -189,23 +185,34 @@ function build (gyp, argv, callback) {
                               
                                   if (!win) {
                                     // Add build-time dependency symlinks (such as Python) to PATH
                              -      const buildBinsDir = path.resolve('build', 'node_gyp_bins')
                              +      buildBinsDir = path.resolve('build', 'node_gyp_bins')
                                     process.env.PATH = `${buildBinsDir}:${process.env.PATH}`
                              -      log.verbose('bin symlinks', `adding symlinks (such as Python), at "${buildBinsDir}", to PATH`)
                              +      await fs.mkdir(buildBinsDir, { recursive: true })
                              +      const symlinkDestination = path.join(buildBinsDir, 'python3')
                              +      try {
                              +        await fs.unlink(symlinkDestination)
                              +      } catch (err) {
                              +        if (err.code !== 'ENOENT') throw err
                              +      }
                              +      await fs.symlink(python, symlinkDestination)
                              +      log.verbose('bin symlinks', `created symlink to "${python}" in "${buildBinsDir}" and added to PATH`)
                                   }
                               
                              -    var proc = gyp.spawn(command, argv)
                              -    proc.on('exit', onExit)
                              -  }
                              +    const proc = gyp.spawn(command, argv)
                              +    await new Promise((resolve, reject) => proc.on('exit', async (code, signal) => {
                              +      if (buildBinsDir) {
                              +        // Clean up the build-time dependency symlinks:
                              +        await fs.rm(buildBinsDir, { recursive: true })
                              +      }
                               
                              -  function onExit (code, signal) {
                              -    if (code !== 0) {
                              -      return callback(new Error('`' + command + '` failed with exit code: ' + code))
                              -    }
                              -    if (signal) {
                              -      return callback(new Error('`' + command + '` got signal: ' + signal))
                              -    }
                              -    callback()
                              +      if (code !== 0) {
                              +        return reject(new Error('`' + command + '` failed with exit code: ' + code))
                              +      }
                              +      if (signal) {
                              +        return reject(new Error('`' + command + '` got signal: ' + signal))
                              +      }
                              +      resolve()
                              +    }))
                                 }
                               }
                               
                              diff --git a/deps/npm/node_modules/node-gyp/lib/clean.js b/deps/npm/node_modules/node-gyp/lib/clean.js
                              index dbfa4dbb99d3cb..523f8016caecef 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/clean.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/clean.js
                              @@ -1,14 +1,14 @@
                               'use strict'
                               
                              -const rm = require('rimraf')
                              -const log = require('npmlog')
                              +const fs = require('graceful-fs').promises
                              +const log = require('./log')
                               
                              -function clean (gyp, argv, callback) {
                              +async function clean (gyp, argv) {
                                 // Remove the 'build' dir
                              -  var buildDir = 'build'
                              +  const buildDir = 'build'
                               
                                 log.verbose('clean', 'removing "%s" directory', buildDir)
                              -  rm(buildDir, callback)
                              +  await fs.rm(buildDir, { recursive: true, force: true })
                               }
                               
                               module.exports = clean
                              diff --git a/deps/npm/node_modules/node-gyp/lib/configure.js b/deps/npm/node_modules/node-gyp/lib/configure.js
                              index 1ca3ade70935ee..8da41a849dfcf6 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/configure.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/configure.js
                              @@ -1,47 +1,36 @@
                               'use strict'
                               
                              -const fs = require('graceful-fs')
                              +const { promises: fs } = require('graceful-fs')
                               const path = require('path')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               const os = require('os')
                               const processRelease = require('./process-release')
                               const win = process.platform === 'win32'
                               const findNodeDirectory = require('./find-node-directory')
                              -const createConfigGypi = require('./create-config-gypi')
                              -const msgFormat = require('util').format
                              -var findPython = require('./find-python')
                              -if (win) {
                              -  var findVisualStudio = require('./find-visualstudio')
                              -}
                              -
                              -function configure (gyp, argv, callback) {
                              -  var python
                              -  var buildDir = path.resolve('build')
                              -  var buildBinsDir = path.join(buildDir, 'node_gyp_bins')
                              -  var configNames = ['config.gypi', 'common.gypi']
                              -  var configs = []
                              -  var nodeDir
                              -  var release = processRelease(argv, gyp, process.version, process.release)
                              -
                              -  findPython(gyp.opts.python, function (err, found) {
                              -    if (err) {
                              -      callback(err)
                              -    } else {
                              -      python = found
                              -      getNodeDir()
                              -    }
                              -  })
                              -
                              -  function getNodeDir () {
                              +const { createConfigGypi } = require('./create-config-gypi')
                              +const { format: msgFormat } = require('util')
                              +const { findAccessibleSync } = require('./util')
                              +const { findPython } = require('./find-python')
                              +const { findVisualStudio } = win ? require('./find-visualstudio') : {}
                              +
                              +async function configure (gyp, argv) {
                              +  const buildDir = path.resolve('build')
                              +  const configNames = ['config.gypi', 'common.gypi']
                              +  const configs = []
                              +  let nodeDir
                              +  const release = processRelease(argv, gyp, process.version, process.release)
                              +
                              +  const python = await findPython(gyp.opts.python)
                              +  return getNodeDir()
                              +
                              +  async function getNodeDir () {
                                   // 'python' should be set by now
                                   process.env.PYTHON = python
                               
                                   if (gyp.opts.nodedir) {
                                     // --nodedir was specified. use that for the dev files
                                     nodeDir = gyp.opts.nodedir.replace(/^~/, os.homedir())
                              -
                                     log.verbose('get node dir', 'compiling against specified --nodedir dev files: %s', nodeDir)
                              -      createBuildDir()
                                   } else {
                                     // if no --nodedir specified, ensure node dependencies are installed
                                     if ('v' + release.version !== process.version) {
                              @@ -54,108 +43,66 @@ function configure (gyp, argv, callback) {
                               
                                     if (!release.semver) {
                                       // could not parse the version string with semver
                              -        return callback(new Error('Invalid version number: ' + release.version))
                              +        throw new Error('Invalid version number: ' + release.version)
                                     }
                               
                                     // If the tarball option is set, always remove and reinstall the headers
                                     // into devdir. Otherwise only install if they're not already there.
                                     gyp.opts.ensure = !gyp.opts.tarball
                               
                              -      gyp.commands.install([release.version], function (err) {
                              -        if (err) {
                              -          return callback(err)
                              -        }
                              -        log.verbose('get node dir', 'target node version installed:', release.versionDir)
                              -        nodeDir = path.resolve(gyp.devDir, release.versionDir)
                              -        createBuildDir()
                              -      })
                              -    }
                              -  }
                              +      await gyp.commands.install([release.version])
                               
                              -  function createBuildDir () {
                              -    log.verbose('build dir', 'attempting to create "build" dir: %s', buildDir)
                              +      log.verbose('get node dir', 'target node version installed:', release.versionDir)
                              +      nodeDir = path.resolve(gyp.devDir, release.versionDir)
                              +    }
                               
                              -    const deepestBuildDirSubdirectory = win ? buildDir : buildBinsDir
                              -    fs.mkdir(deepestBuildDirSubdirectory, { recursive: true }, function (err, isNew) {
                              -      if (err) {
                              -        return callback(err)
                              -      }
                              -      log.verbose(
                              -        'build dir', '"build" dir needed to be created?', isNew ? 'Yes' : 'No'
                              -      )
                              -      if (win) {
                              -        findVisualStudio(release.semver, gyp.opts.msvs_version,
                              -          createConfigFile)
                              -      } else {
                              -        createPythonSymlink()
                              -        createConfigFile()
                              -      }
                              -    })
                              +    return createBuildDir()
                                 }
                               
                              -  function createPythonSymlink () {
                              -    const symlinkDestination = path.join(buildBinsDir, 'python3')
                              -
                              -    log.verbose('python symlink', `creating symlink to "${python}" at "${symlinkDestination}"`)
                              +  async function createBuildDir () {
                              +    log.verbose('build dir', 'attempting to create "build" dir: %s', buildDir)
                               
                              -    fs.unlink(symlinkDestination, function (err) {
                              -      if (err && err.code !== 'ENOENT') {
                              -        log.verbose('python symlink', 'error when attempting to remove existing symlink')
                              -        log.verbose('python symlink', err.stack, 'errno: ' + err.errno)
                              -      }
                              -      fs.symlink(python, symlinkDestination, function (err) {
                              -        if (err) {
                              -          log.verbose('python symlink', 'error when attempting to create Python symlink')
                              -          log.verbose('python symlink', err.stack, 'errno: ' + err.errno)
                              -        }
                              -      })
                              -    })
                              +    const isNew = await fs.mkdir(buildDir, { recursive: true })
                              +    log.verbose(
                              +      'build dir', '"build" dir needed to be created?', isNew ? 'Yes' : 'No'
                              +    )
                              +    const vsInfo = win ? await findVisualStudio(release.semver, gyp.opts['msvs-version']) : null
                              +    return createConfigFile(vsInfo)
                                 }
                               
                              -  function createConfigFile (err, vsInfo) {
                              -    if (err) {
                              -      return callback(err)
                              -    }
                              -    if (process.platform === 'win32') {
                              +  async function createConfigFile (vsInfo) {
                              +    if (win) {
                                     process.env.GYP_MSVS_VERSION = Math.min(vsInfo.versionYear, 2015)
                                     process.env.GYP_MSVS_OVERRIDE_PATH = vsInfo.path
                                   }
                              -    createConfigGypi({ gyp, buildDir, nodeDir, vsInfo }).then(configPath => {
                              -      configs.push(configPath)
                              -      findConfigs()
                              -    }).catch(err => {
                              -      callback(err)
                              -    })
                              +    const configPath = await createConfigGypi({ gyp, buildDir, nodeDir, vsInfo, python })
                              +    configs.push(configPath)
                              +    return findConfigs()
                                 }
                               
                              -  function findConfigs () {
                              -    var name = configNames.shift()
                              +  async function findConfigs () {
                              +    const name = configNames.shift()
                                   if (!name) {
                                     return runGyp()
                                   }
                              -    var fullPath = path.resolve(name)
                               
                              +    const fullPath = path.resolve(name)
                                   log.verbose(name, 'checking for gypi file: %s', fullPath)
                              -    fs.stat(fullPath, function (err) {
                              -      if (err) {
                              -        if (err.code === 'ENOENT') {
                              -          findConfigs() // check next gypi filename
                              -        } else {
                              -          callback(err)
                              -        }
                              -      } else {
                              -        log.verbose(name, 'found gypi file')
                              -        configs.push(fullPath)
                              -        findConfigs()
                              +    try {
                              +      await fs.stat(fullPath)
                              +      log.verbose(name, 'found gypi file')
                              +      configs.push(fullPath)
                              +    } catch (err) {
                              +      // ENOENT will check next gypi filename
                              +      if (err.code !== 'ENOENT') {
                              +        throw err
                                     }
                              -    })
                              -  }
                              -
                              -  function runGyp (err) {
                              -    if (err) {
                              -      return callback(err)
                                   }
                               
                              +    return findConfigs()
                              +  }
                              +
                              +  async function runGyp () {
                                   if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) {
                                     if (win) {
                                       log.verbose('gyp', 'gyp format was not specified; forcing "msvs"')
                              @@ -175,11 +122,13 @@ function configure (gyp, argv, callback) {
                               
                                   // For AIX and z/OS we need to set up the path to the exports file
                                   // which contains the symbols needed for linking.
                              -    var nodeExpFile
                              +    let nodeExpFile
                              +    let nodeRootDir
                              +    let candidates
                              +    let logprefix = 'find exports file'
                                   if (process.platform === 'aix' || process.platform === 'os390' || process.platform === 'os400') {
                              -      var ext = process.platform === 'os390' ? 'x' : 'exp'
                              -      var nodeRootDir = findNodeDirectory()
                              -      var candidates
                              +      const ext = process.platform === 'os390' ? 'x' : 'exp'
                              +      nodeRootDir = findNodeDirectory()
                               
                                     if (process.platform === 'aix' || process.platform === 'os400') {
                                       candidates = [
                              @@ -202,24 +151,23 @@ function configure (gyp, argv, callback) {
                                       })
                                     }
                               
                              -      var logprefix = 'find exports file'
                                     nodeExpFile = findAccessibleSync(logprefix, nodeRootDir, candidates)
                                     if (nodeExpFile !== undefined) {
                                       log.verbose(logprefix, 'Found exports file: %s', nodeExpFile)
                                     } else {
                              -        var msg = msgFormat('Could not find node.%s file in %s', ext, nodeRootDir)
                              +        const msg = msgFormat('Could not find node.%s file in %s', ext, nodeRootDir)
                                       log.error(logprefix, 'Could not find exports file')
                              -        return callback(new Error(msg))
                              +        throw new Error(msg)
                                     }
                                   }
                               
                                   // For z/OS we need to set up the path to zoslib include directory,
                                   // which contains headers included in v8config.h.
                              -    var zoslibIncDir
                              +    let zoslibIncDir
                                   if (process.platform === 'os390') {
                                     logprefix = "find zoslib's zos-base.h:"
                                     let msg
                              -      var zoslibIncPath = process.env.ZOSLIB_INCLUDES
                              +      let zoslibIncPath = process.env.ZOSLIB_INCLUDES
                                     if (zoslibIncPath) {
                                       zoslibIncPath = findAccessibleSync(logprefix, zoslibIncPath, ['zos-base.h'])
                                       if (zoslibIncPath === undefined) {
                              @@ -247,114 +195,88 @@ function configure (gyp, argv, callback) {
                                     } else if (release.version.split('.')[0] >= 16) {
                                       // zoslib is only shipped in Node v16 and above.
                                       log.error(logprefix, msg)
                              -        return callback(new Error(msg))
                              +        throw new Error(msg)
                                     }
                                   }
                               
                                   // this logic ported from the old `gyp_addon` python file
                              -    var gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
                              -    var addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
                              -    var commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
                              -    fs.stat(commonGypi, function (err) {
                              -      if (err) {
                              -        commonGypi = path.resolve(nodeDir, 'common.gypi')
                              -      }
                              +    const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
                              +    const addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
                              +    let commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
                              +    try {
                              +      await fs.stat(commonGypi)
                              +    } catch (err) {
                              +      commonGypi = path.resolve(nodeDir, 'common.gypi')
                              +    }
                               
                              -      var outputDir = 'build'
                              -      if (win) {
                              -        // Windows expects an absolute path
                              -        outputDir = buildDir
                              -      }
                              -      var nodeGypDir = path.resolve(__dirname, '..')
                              -
                              -      var nodeLibFile = path.join(nodeDir,
                              -        !gyp.opts.nodedir ? '<(target_arch)' : '$(Configuration)',
                              -        release.name + '.lib')
                              -
                              -      argv.push('-I', addonGypi)
                              -      argv.push('-I', commonGypi)
                              -      argv.push('-Dlibrary=shared_library')
                              -      argv.push('-Dvisibility=default')
                              -      argv.push('-Dnode_root_dir=' + nodeDir)
                              -      if (process.platform === 'aix' || process.platform === 'os390' || process.platform === 'os400') {
                              -        argv.push('-Dnode_exp_file=' + nodeExpFile)
                              -        if (process.platform === 'os390' && zoslibIncDir) {
                              -          argv.push('-Dzoslib_include_dir=' + zoslibIncDir)
                              -        }
                              -      }
                              -      argv.push('-Dnode_gyp_dir=' + nodeGypDir)
                              +    let outputDir = 'build'
                              +    if (win) {
                              +      // Windows expects an absolute path
                              +      outputDir = buildDir
                              +    }
                              +    const nodeGypDir = path.resolve(__dirname, '..')
                               
                              -      // Do this to keep Cygwin environments happy, else the unescaped '\' gets eaten up,
                              -      // resulting in bad paths, Ex c:parentFolderfolderanotherFolder instead of c:\parentFolder\folder\anotherFolder
                              -      if (win) {
                              -        nodeLibFile = nodeLibFile.replace(/\\/g, '\\\\')
                              -      }
                              -      argv.push('-Dnode_lib_file=' + nodeLibFile)
                              -      argv.push('-Dmodule_root_dir=' + process.cwd())
                              -      argv.push('-Dnode_engine=' +
                              -        (gyp.opts.node_engine || process.jsEngine || 'v8'))
                              -      argv.push('--depth=.')
                              -      argv.push('--no-parallel')
                              +    let nodeLibFile = path.join(nodeDir,
                              +      !gyp.opts.nodedir ? '<(target_arch)' : '$(Configuration)',
                              +      release.name + '.lib')
                               
                              -      // tell gyp to write the Makefile/Solution files into output_dir
                              -      argv.push('--generator-output', outputDir)
                              +    argv.push('-I', addonGypi)
                              +    argv.push('-I', commonGypi)
                              +    argv.push('-Dlibrary=shared_library')
                              +    argv.push('-Dvisibility=default')
                              +    argv.push('-Dnode_root_dir=' + nodeDir)
                              +    if (process.platform === 'aix' || process.platform === 'os390' || process.platform === 'os400') {
                              +      argv.push('-Dnode_exp_file=' + nodeExpFile)
                              +      if (process.platform === 'os390' && zoslibIncDir) {
                              +        argv.push('-Dzoslib_include_dir=' + zoslibIncDir)
                              +      }
                              +    }
                              +    argv.push('-Dnode_gyp_dir=' + nodeGypDir)
                               
                              -      // tell make to write its output into the same dir
                              -      argv.push('-Goutput_dir=.')
                              +    // Do this to keep Cygwin environments happy, else the unescaped '\' gets eaten up,
                              +    // resulting in bad paths, Ex c:parentFolderfolderanotherFolder instead of c:\parentFolder\folder\anotherFolder
                              +    if (win) {
                              +      nodeLibFile = nodeLibFile.replace(/\\/g, '\\\\')
                              +    }
                              +    argv.push('-Dnode_lib_file=' + nodeLibFile)
                              +    argv.push('-Dmodule_root_dir=' + process.cwd())
                              +    argv.push('-Dnode_engine=' +
                              +        (gyp.opts.node_engine || process.jsEngine || 'v8'))
                              +    argv.push('--depth=.')
                              +    argv.push('--no-parallel')
                               
                              -      // enforce use of the "binding.gyp" file
                              -      argv.unshift('binding.gyp')
                              +    // tell gyp to write the Makefile/Solution files into output_dir
                              +    argv.push('--generator-output', outputDir)
                               
                              -      // execute `gyp` from the current target nodedir
                              -      argv.unshift(gypScript)
                              +    // tell make to write its output into the same dir
                              +    argv.push('-Goutput_dir=.')
                               
                              -      // make sure python uses files that came with this particular node package
                              -      var pypath = [path.join(__dirname, '..', 'gyp', 'pylib')]
                              -      if (process.env.PYTHONPATH) {
                              -        pypath.push(process.env.PYTHONPATH)
                              -      }
                              -      process.env.PYTHONPATH = pypath.join(win ? ';' : ':')
                              +    // enforce use of the "binding.gyp" file
                              +    argv.unshift('binding.gyp')
                               
                              -      var cp = gyp.spawn(python, argv)
                              -      cp.on('exit', onCpExit)
                              -    })
                              -  }
                              +    // execute `gyp` from the current target nodedir
                              +    argv.unshift(gypScript)
                               
                              -  function onCpExit (code) {
                              -    if (code !== 0) {
                              -      callback(new Error('`gyp` failed with exit code: ' + code))
                              -    } else {
                              -      // we're done
                              -      callback()
                              +    // make sure python uses files that came with this particular node package
                              +    const pypath = [path.join(__dirname, '..', 'gyp', 'pylib')]
                              +    if (process.env.PYTHONPATH) {
                              +      pypath.push(process.env.PYTHONPATH)
                                   }
                              -  }
                              -}
                              +    process.env.PYTHONPATH = pypath.join(win ? ';' : ':')
                               
                              -/**
                              - * Returns the first file or directory from an array of candidates that is
                              - * readable by the current user, or undefined if none of the candidates are
                              - * readable.
                              - */
                              -function findAccessibleSync (logprefix, dir, candidates) {
                              -  for (var next = 0; next < candidates.length; next++) {
                              -    var candidate = path.resolve(dir, candidates[next])
                              -    try {
                              -      var fd = fs.openSync(candidate, 'r')
                              -    } catch (e) {
                              -      // this candidate was not found or not readable, do nothing
                              -      log.silly(logprefix, 'Could not open %s: %s', candidate, e.message)
                              -      continue
                              -    }
                              -    fs.closeSync(fd)
                              -    log.silly(logprefix, 'Found readable %s', candidate)
                              -    return candidate
                              +    await new Promise((resolve, reject) => {
                              +      const cp = gyp.spawn(python, argv)
                              +      cp.on('exit', (code) => {
                              +        if (code !== 0) {
                              +          reject(new Error('`gyp` failed with exit code: ' + code))
                              +        } else {
                              +          // we're done
                              +          resolve()
                              +        }
                              +      })
                              +    })
                                 }
                              -
                              -  return undefined
                               }
                               
                               module.exports = configure
                              -module.exports.test = {
                              -  findAccessibleSync: findAccessibleSync
                              -}
                               module.exports.usage = 'Generates ' + (win ? 'MSVC project files' : 'a Makefile') + ' for the current module'
                              diff --git a/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js b/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js
                              index ced49115027336..d598dea6e2e7fa 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js
                              @@ -1,7 +1,7 @@
                               'use strict'
                               
                              -const fs = require('graceful-fs')
                              -const log = require('npmlog')
                              +const fs = require('graceful-fs').promises
                              +const log = require('./log')
                               const path = require('path')
                               
                               function parseConfigGypi (config) {
                              @@ -24,7 +24,7 @@ async function getBaseConfigGypi ({ gyp, nodeDir }) {
                                 if (shouldReadConfigGypi && nodeDir) {
                                   try {
                                     const baseConfigGypiPath = path.resolve(nodeDir, 'include/node/config.gypi')
                              -      const baseConfigGypi = await fs.promises.readFile(baseConfigGypiPath)
                              +      const baseConfigGypi = await fs.readFile(baseConfigGypiPath)
                                     return parseConfigGypi(baseConfigGypi.toString())
                                   } catch (err) {
                                     log.warn('read config.gypi', err.message)
                              @@ -35,7 +35,7 @@ async function getBaseConfigGypi ({ gyp, nodeDir }) {
                                 return JSON.parse(JSON.stringify(process.config))
                               }
                               
                              -async function getCurrentConfigGypi ({ gyp, nodeDir, vsInfo }) {
                              +async function getCurrentConfigGypi ({ gyp, nodeDir, vsInfo, python }) {
                                 const config = await getBaseConfigGypi({ gyp, nodeDir })
                                 if (!config.target_defaults) {
                                   config.target_defaults = {}
                              @@ -75,6 +75,9 @@ async function getCurrentConfigGypi ({ gyp, nodeDir, vsInfo }) {
                                 // set the node development directory
                                 variables.nodedir = nodeDir
                               
                              +  // set the configured Python path
                              +  variables.python = python
                              +
                                 // disable -T "thin" static archives by default
                                 variables.standalone_static_library = gyp.opts.thin ? 0 : 1
                               
                              @@ -112,13 +115,13 @@ async function getCurrentConfigGypi ({ gyp, nodeDir, vsInfo }) {
                                 return config
                               }
                               
                              -async function createConfigGypi ({ gyp, buildDir, nodeDir, vsInfo }) {
                              +async function createConfigGypi ({ gyp, buildDir, nodeDir, vsInfo, python }) {
                                 const configFilename = 'config.gypi'
                                 const configPath = path.resolve(buildDir, configFilename)
                               
                                 log.verbose('build/' + configFilename, 'creating config file')
                               
                              -  const config = await getCurrentConfigGypi({ gyp, nodeDir, vsInfo })
                              +  const config = await getCurrentConfigGypi({ gyp, nodeDir, vsInfo, python })
                               
                                 // ensures that any boolean values in config.gypi get stringified
                                 function boolsToString (k, v) {
                              @@ -135,13 +138,13 @@ async function createConfigGypi ({ gyp, buildDir, nodeDir, vsInfo }) {
                               
                                 const json = JSON.stringify(config, boolsToString, 2)
                                 log.verbose('build/' + configFilename, 'writing out config file: %s', configPath)
                              -  await fs.promises.writeFile(configPath, [prefix, json, ''].join('\n'))
                              +  await fs.writeFile(configPath, [prefix, json, ''].join('\n'))
                               
                                 return configPath
                               }
                               
                              -module.exports = createConfigGypi
                              -module.exports.test = {
                              -  parseConfigGypi: parseConfigGypi,
                              -  getCurrentConfigGypi: getCurrentConfigGypi
                              +module.exports = {
                              +  createConfigGypi,
                              +  parseConfigGypi,
                              +  getCurrentConfigGypi
                               }
                              diff --git a/deps/npm/node_modules/node-gyp/lib/download.js b/deps/npm/node_modules/node-gyp/lib/download.js
                              new file mode 100644
                              index 00000000000000..ed0aa37f441165
                              --- /dev/null
                              +++ b/deps/npm/node_modules/node-gyp/lib/download.js
                              @@ -0,0 +1,39 @@
                              +const fetch = require('make-fetch-happen')
                              +const { promises: fs } = require('graceful-fs')
                              +const log = require('./log')
                              +
                              +async function download (gyp, url) {
                              +  log.http('GET', url)
                              +
                              +  const requestOpts = {
                              +    headers: {
                              +      'User-Agent': `node-gyp v${gyp.version} (node ${process.version})`,
                              +      Connection: 'keep-alive'
                              +    },
                              +    proxy: gyp.opts.proxy,
                              +    noProxy: gyp.opts.noproxy
                              +  }
                              +
                              +  const cafile = gyp.opts.cafile
                              +  if (cafile) {
                              +    requestOpts.ca = await readCAFile(cafile)
                              +  }
                              +
                              +  const res = await fetch(url, requestOpts)
                              +  log.http(res.status, res.url)
                              +
                              +  return res
                              +}
                              +
                              +async function readCAFile (filename) {
                              +  // The CA file can contain multiple certificates so split on certificate
                              +  // boundaries.  [\S\s]*? is used to match everything including newlines.
                              +  const ca = await fs.readFile(filename, 'utf8')
                              +  const re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
                              +  return ca.match(re)
                              +}
                              +
                              +module.exports = {
                              +  download,
                              +  readCAFile
                              +}
                              diff --git a/deps/npm/node_modules/node-gyp/lib/find-node-directory.js b/deps/npm/node_modules/node-gyp/lib/find-node-directory.js
                              index 0dd781a6cfae8c..8838b81d338997 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/find-node-directory.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/find-node-directory.js
                              @@ -1,7 +1,7 @@
                               'use strict'
                               
                               const path = require('path')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               
                               function findNodeDirectory (scriptLocation, processObj) {
                                 // set dirname and process if not passed in
                              @@ -14,10 +14,10 @@ function findNodeDirectory (scriptLocation, processObj) {
                                 }
                               
                                 // Have a look to see what is above us, to try and work out where we are
                              -  var npmParentDirectory = path.join(scriptLocation, '../../../..')
                              +  const npmParentDirectory = path.join(scriptLocation, '../../../..')
                                 log.verbose('node-gyp root', 'npm_parent_directory is ' +
                                             path.basename(npmParentDirectory))
                              -  var nodeRootDir = ''
                              +  let nodeRootDir = ''
                               
                                 log.verbose('node-gyp root', 'Finding node root directory')
                                 if (path.basename(npmParentDirectory) === 'deps') {
                              @@ -41,8 +41,8 @@ function findNodeDirectory (scriptLocation, processObj) {
                                 } else {
                                   // We don't know where we are, try working it out from the location
                                   // of the node binary
                              -    var nodeDir = path.dirname(processObj.execPath)
                              -    var directoryUp = path.basename(nodeDir)
                              +    const nodeDir = path.dirname(processObj.execPath)
                              +    const directoryUp = path.basename(nodeDir)
                                   if (directoryUp === 'bin') {
                                     nodeRootDir = path.join(nodeDir, '..')
                                   } else if (directoryUp === 'Release' || directoryUp === 'Debug') {
                              diff --git a/deps/npm/node_modules/node-gyp/lib/find-python.js b/deps/npm/node_modules/node-gyp/lib/find-python.js
                              index a445e825b9d7e3..615da57bb85723 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/find-python.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/find-python.js
                              @@ -1,11 +1,15 @@
                               'use strict'
                               
                              -const log = require('npmlog')
                              +const log = require('./log')
                               const semver = require('semver')
                              -const cp = require('child_process')
                              -const extend = require('util')._extend // eslint-disable-line
                              +const { execFile } = require('./util')
                               const win = process.platform === 'win32'
                              -const logWithPrefix = require('./util').logWithPrefix
                              +
                              +function getOsUserInfo () {
                              +  try {
                              +    return require('os').userInfo().username
                              +  } catch {}
                              +}
                               
                               const systemDrive = process.env.SystemDrive || 'C:'
                               const username = process.env.USERNAME || process.env.USER || getOsUserInfo()
                              @@ -15,7 +19,7 @@ const programFiles = process.env.ProgramW6432 || process.env.ProgramFiles || `${
                               const programFilesX86 = process.env['ProgramFiles(x86)'] || `${programFiles} (x86)`
                               
                               const winDefaultLocationsArray = []
                              -for (const majorMinor of ['39', '38', '37', '36']) {
                              +for (const majorMinor of ['311', '310', '39', '38']) {
                                 if (foundLocalAppData) {
                                   winDefaultLocationsArray.push(
                                     `${localAppData}\\Programs\\Python\\Python${majorMinor}\\python.exe`,
                              @@ -33,45 +37,39 @@ for (const majorMinor of ['39', '38', '37', '36']) {
                                 }
                               }
                               
                              -function getOsUserInfo () {
                              -  try {
                              -    return require('os').userInfo().username
                              -  } catch (e) {}
                              -}
                              -
                              -function PythonFinder (configPython, callback) {
                              -  this.callback = callback
                              -  this.configPython = configPython
                              -  this.errorLog = []
                              -}
                              +class PythonFinder {
                              +  static findPython = (...args) => new PythonFinder(...args).findPython()
                               
                              -PythonFinder.prototype = {
                              -  log: logWithPrefix(log, 'find Python'),
                              -  argsExecutable: ['-c', 'import sys; print(sys.executable);'],
                              -  argsVersion: ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);'],
                              -  semverRange: '>=3.6.0',
                              +  log = log.withPrefix('find Python')
                              +  argsExecutable = ['-c', 'import sys; print(sys.executable);']
                              +  argsVersion = ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);']
                              +  semverRange = '>=3.6.0'
                               
                                 // These can be overridden for testing:
                              -  execFile: cp.execFile,
                              -  env: process.env,
                              -  win: win,
                              -  pyLauncher: 'py.exe',
                              -  winDefaultLocations: winDefaultLocationsArray,
                              +  execFile = execFile
                              +  env = process.env
                              +  win = win
                              +  pyLauncher = 'py.exe'
                              +  winDefaultLocations = winDefaultLocationsArray
                              +
                              +  constructor (configPython) {
                              +    this.configPython = configPython
                              +    this.errorLog = []
                              +  }
                               
                                 // Logs a message at verbose level, but also saves it to be displayed later
                                 // at error level if an error occurs. This should help diagnose the problem.
                              -  addLog: function addLog (message) {
                              +  addLog (message) {
                                   this.log.verbose(message)
                                   this.errorLog.push(message)
                              -  },
                              +  }
                               
                                 // Find Python by trying a sequence of possibilities.
                                 // Ignore errors, keep trying until Python is found.
                              -  findPython: function findPython () {
                              -    const SKIP = 0; const FAIL = 1
                              -    var toCheck = getChecks.apply(this)
                              -
                              -    function getChecks () {
                              +  async findPython () {
                              +    const SKIP = 0
                              +    const FAIL = 1
                              +    const toCheck = (() => {
                                     if (this.env.NODE_GYP_FORCE_PYTHON) {
                                       return [{
                                         before: () => {
                              @@ -80,12 +78,11 @@ PythonFinder.prototype = {
                                           this.addLog('- process.env.NODE_GYP_FORCE_PYTHON is ' +
                                             `"${this.env.NODE_GYP_FORCE_PYTHON}"`)
                                         },
                              -          check: this.checkCommand,
                              -          arg: this.env.NODE_GYP_FORCE_PYTHON
                              +          check: () => this.checkCommand(this.env.NODE_GYP_FORCE_PYTHON)
                                       }]
                                     }
                               
                              -      var checks = [
                              +      const checks = [
                                       {
                                         before: () => {
                                           if (!this.configPython) {
                              @@ -98,8 +95,7 @@ PythonFinder.prototype = {
                                           this.addLog('- "--python=" or "npm config get python" is ' +
                                             `"${this.configPython}"`)
                                         },
                              -          check: this.checkCommand,
                              -          arg: this.configPython
                              +          check: () => this.checkCommand(this.configPython)
                                       },
                                       {
                                         before: () => {
                              @@ -112,78 +108,69 @@ PythonFinder.prototype = {
                                             'variable PYTHON')
                                           this.addLog(`- process.env.PYTHON is "${this.env.PYTHON}"`)
                                         },
                              -          check: this.checkCommand,
                              -          arg: this.env.PYTHON
                              -        },
                              +          check: () => this.checkCommand(this.env.PYTHON)
                              +        }
                              +      ]
                              +
                              +      if (this.win) {
                              +        checks.push({
                              +          before: () => {
                              +            this.addLog(
                              +              'checking if the py launcher can be used to find Python 3')
                              +          },
                              +          check: () => this.checkPyLauncher()
                              +        })
                              +      }
                              +
                              +      checks.push(...[
                                       {
                                         before: () => { this.addLog('checking if "python3" can be used') },
                              -          check: this.checkCommand,
                              -          arg: 'python3'
                              +          check: () => this.checkCommand('python3')
                                       },
                                       {
                                         before: () => { this.addLog('checking if "python" can be used') },
                              -          check: this.checkCommand,
                              -          arg: 'python'
                              +          check: () => this.checkCommand('python')
                                       }
                              -      ]
                              +      ])
                               
                                     if (this.win) {
                              -        for (var i = 0; i < this.winDefaultLocations.length; ++i) {
                              +        for (let i = 0; i < this.winDefaultLocations.length; ++i) {
                                         const location = this.winDefaultLocations[i]
                                         checks.push({
                              -            before: () => {
                              -              this.addLog('checking if Python is ' +
                              -                `${location}`)
                              -            },
                              -            check: this.checkExecPath,
                              -            arg: location
                              +            before: () => this.addLog(`checking if Python is ${location}`),
                              +            check: () => this.checkExecPath(location)
                                         })
                                       }
                              -        checks.push({
                              -          before: () => {
                              -            this.addLog(
                              -              'checking if the py launcher can be used to find Python 3')
                              -          },
                              -          check: this.checkPyLauncher
                              -        })
                                     }
                               
                                     return checks
                              -    }
                              -
                              -    function runChecks (err) {
                              -      this.log.silly('runChecks: err = %j', (err && err.stack) || err)
                              +    })()
                               
                              -      const check = toCheck.shift()
                              -      if (!check) {
                              -        return this.fail()
                              -      }
                              -
                              -      const before = check.before.apply(this)
                              +    for (const check of toCheck) {
                              +      const before = check.before()
                                     if (before === SKIP) {
                              -        return runChecks.apply(this)
                              +        continue
                                     }
                                     if (before === FAIL) {
                                       return this.fail()
                                     }
                              -
                              -      const args = [runChecks.bind(this)]
                              -      if (check.arg) {
                              -        args.unshift(check.arg)
                              +      try {
                              +        return await check.check()
                              +      } catch (err) {
                              +        this.log.silly('runChecks: err = %j', (err && err.stack) || err)
                                     }
                              -      check.check.apply(this, args)
                                   }
                               
                              -    runChecks.apply(this)
                              -  },
                              +    return this.fail()
                              +  }
                               
                                 // Check if command is a valid Python to use.
                                 // Will exit the Python finder on success.
                                 // If on Windows, run in a CMD shell to support BAT/CMD launchers.
                              -  checkCommand: function checkCommand (command, errorCallback) {
                              -    var exec = command
                              -    var args = this.argsExecutable
                              -    var shell = false
                              +  async checkCommand (command) {
                              +    let exec = command
                              +    let args = this.argsExecutable
                              +    let shell = false
                                   if (this.win) {
                                     // Arguments have to be manually quoted
                                     exec = `"${exec}"`
                              @@ -192,19 +179,19 @@ PythonFinder.prototype = {
                                   }
                               
                                   this.log.verbose(`- executing "${command}" to get executable path`)
                              -    this.run(exec, args, shell, function (err, execPath) {
                              -      // Possible outcomes:
                              -      // - Error: not in PATH, not executable or execution fails
                              -      // - Gibberish: the next command to check version will fail
                              -      // - Absolute path to executable
                              -      if (err) {
                              -        this.addLog(`- "${command}" is not in PATH or produced an error`)
                              -        return errorCallback(err)
                              -      }
                              +    // Possible outcomes:
                              +    // - Error: not in PATH, not executable or execution fails
                              +    // - Gibberish: the next command to check version will fail
                              +    // - Absolute path to executable
                              +    try {
                              +      const execPath = await this.run(exec, args, shell)
                                     this.addLog(`- executable path is "${execPath}"`)
                              -      this.checkExecPath(execPath, errorCallback)
                              -    }.bind(this))
                              -  },
                              +      return this.checkExecPath(execPath)
                              +    } catch (err) {
                              +      this.addLog(`- "${command}" is not in PATH or produced an error`)
                              +      throw err
                              +    }
                              +  }
                               
                                 // Check if the py launcher can find a valid Python to use.
                                 // Will exit the Python finder on success.
                              @@ -216,97 +203,86 @@ PythonFinder.prototype = {
                                 // the first command line argument. Since "py.exe -3" would be an invalid
                                 // executable for "execFile", we have to use the launcher to figure out
                                 // where the actual "python.exe" executable is located.
                              -  checkPyLauncher: function checkPyLauncher (errorCallback) {
                              -    this.log.verbose(
                              -      `- executing "${this.pyLauncher}" to get Python 3 executable path`)
                              -    this.run(this.pyLauncher, ['-3', ...this.argsExecutable], false,
                              -      function (err, execPath) {
                              -      // Possible outcomes: same as checkCommand
                              -        if (err) {
                              -          this.addLog(
                              -            `- "${this.pyLauncher}" is not in PATH or produced an error`)
                              -          return errorCallback(err)
                              -        }
                              -        this.addLog(`- executable path is "${execPath}"`)
                              -        this.checkExecPath(execPath, errorCallback)
                              -      }.bind(this))
                              -  },
                              +  async checkPyLauncher () {
                              +    this.log.verbose(`- executing "${this.pyLauncher}" to get Python 3 executable path`)
                              +    // Possible outcomes: same as checkCommand
                              +    try {
                              +      const execPath = await this.run(this.pyLauncher, ['-3', ...this.argsExecutable], false)
                              +      this.addLog(`- executable path is "${execPath}"`)
                              +      return this.checkExecPath(execPath)
                              +    } catch (err) {
                              +      this.addLog(`- "${this.pyLauncher}" is not in PATH or produced an error`)
                              +      throw err
                              +    }
                              +  }
                               
                                 // Check if a Python executable is the correct version to use.
                                 // Will exit the Python finder on success.
                              -  checkExecPath: function checkExecPath (execPath, errorCallback) {
                              +  async checkExecPath (execPath) {
                                   this.log.verbose(`- executing "${execPath}" to get version`)
                              -    this.run(execPath, this.argsVersion, false, function (err, version) {
                              -      // Possible outcomes:
                              -      // - Error: executable can not be run (likely meaning the command wasn't
                              -      //   a Python executable and the previous command produced gibberish)
                              -      // - Gibberish: somehow the last command produced an executable path,
                              -      //   this will fail when verifying the version
                              -      // - Version of the Python executable
                              -      if (err) {
                              -        this.addLog(`- "${execPath}" could not be run`)
                              -        return errorCallback(err)
                              -      }
                              +    // Possible outcomes:
                              +    // - Error: executable can not be run (likely meaning the command wasn't
                              +    //   a Python executable and the previous command produced gibberish)
                              +    // - Gibberish: somehow the last command produced an executable path,
                              +    //   this will fail when verifying the version
                              +    // - Version of the Python executable
                              +    try {
                              +      const version = await this.run(execPath, this.argsVersion, false)
                                     this.addLog(`- version is "${version}"`)
                               
                                     const range = new semver.Range(this.semverRange)
                              -      var valid = false
                              +      let valid = false
                                     try {
                                       valid = range.test(version)
                                     } catch (err) {
                                       this.log.silly('range.test() threw:\n%s', err.stack)
                                       this.addLog(`- "${execPath}" does not have a valid version`)
                                       this.addLog('- is it a Python executable?')
                              -        return errorCallback(err)
                              +        throw err
                                     }
                              -
                                     if (!valid) {
                                       this.addLog(`- version is ${version} - should be ${this.semverRange}`)
                                       this.addLog('- THIS VERSION OF PYTHON IS NOT SUPPORTED')
                              -        return errorCallback(new Error(
                              -          `Found unsupported Python version ${version}`))
                              +        throw new Error(`Found unsupported Python version ${version}`)
                                     }
                              -      this.succeed(execPath, version)
                              -    }.bind(this))
                              -  },
                              +      return this.succeed(execPath, version)
                              +    } catch (err) {
                              +      this.addLog(`- "${execPath}" could not be run`)
                              +      throw err
                              +    }
                              +  }
                               
                                 // Run an executable or shell command, trimming the output.
                              -  run: function run (exec, args, shell, callback) {
                              -    var env = extend({}, this.env)
                              +  async run (exec, args, shell) {
                              +    const env = Object.assign({}, this.env)
                                   env.TERM = 'dumb'
                              -    const opts = { env: env, shell: shell }
                              +    const opts = { env, shell }
                               
                                   this.log.silly('execFile: exec = %j', exec)
                                   this.log.silly('execFile: args = %j', args)
                                   this.log.silly('execFile: opts = %j', opts)
                                   try {
                              -      this.execFile(exec, args, opts, execFileCallback.bind(this))
                              -    } catch (err) {
                              -      this.log.silly('execFile: threw:\n%s', err.stack)
                              -      return callback(err)
                              -    }
                              -
                              -    function execFileCallback (err, stdout, stderr) {
                              +      const [err, stdout, stderr] = await this.execFile(exec, args, opts)
                                     this.log.silly('execFile result: err = %j', (err && err.stack) || err)
                                     this.log.silly('execFile result: stdout = %j', stdout)
                                     this.log.silly('execFile result: stderr = %j', stderr)
                              -      if (err) {
                              -        return callback(err)
                              -      }
                              -      const execPath = stdout.trim()
                              -      callback(null, execPath)
                              +      return stdout.trim()
                              +    } catch (err) {
                              +      this.log.silly('execFile: threw:\n%s', err.stack)
                              +      throw err
                                   }
                              -  },
                              +  }
                               
                              -  succeed: function succeed (execPath, version) {
                              +  succeed (execPath, version) {
                                   this.log.info(`using Python version ${version} found at "${execPath}"`)
                              -    process.nextTick(this.callback.bind(null, null, execPath))
                              -  },
                              +    return execPath
                              +  }
                               
                              -  fail: function fail () {
                              +  fail () {
                                   const errorLog = this.errorLog.join('\n')
                               
                              -    const pathExample = this.win ? 'C:\\Path\\To\\python.exe'
                              +    const pathExample = this.win
                              +      ? 'C:\\Path\\To\\python.exe'
                                     : '/path/to/pythonexecutable'
                                   // For Windows 80 col console, use up to the column before the one marked
                                   // with X (total 79 chars including logger prefix, 58 chars usable here):
                              @@ -327,18 +303,8 @@ PythonFinder.prototype = {
                                   ].join('\n')
                               
                                   this.log.error(`\n${errorLog}\n\n${info}\n`)
                              -    process.nextTick(this.callback.bind(null, new Error(
                              -      'Could not find any Python installation to use')))
                              +    throw new Error('Could not find any Python installation to use')
                                 }
                               }
                               
                              -function findPython (configPython, callback) {
                              -  var finder = new PythonFinder(configPython, callback)
                              -  finder.findPython()
                              -}
                              -
                              -module.exports = findPython
                              -module.exports.test = {
                              -  PythonFinder: PythonFinder,
                              -  findPython: findPython
                              -}
                              +module.exports = PythonFinder
                              diff --git a/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js b/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
                              index 16f6e79559307c..b57770259abde3 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/find-visualstudio.js
                              @@ -1,39 +1,32 @@
                               'use strict'
                               
                              -const log = require('npmlog')
                              -const execFile = require('child_process').execFile
                              -const fs = require('fs')
                              -const path = require('path').win32
                              -const logWithPrefix = require('./util').logWithPrefix
                              -const regSearchKeys = require('./util').regSearchKeys
                              -
                              -function findVisualStudio (nodeSemver, configMsvsVersion, callback) {
                              -  const finder = new VisualStudioFinder(nodeSemver, configMsvsVersion,
                              -    callback)
                              -  finder.findVisualStudio()
                              -}
                              +const log = require('./log')
                              +const { existsSync } = require('fs')
                              +const { win32: path } = require('path')
                              +const { regSearchKeys, execFile } = require('./util')
                               
                              -function VisualStudioFinder (nodeSemver, configMsvsVersion, callback) {
                              -  this.nodeSemver = nodeSemver
                              -  this.configMsvsVersion = configMsvsVersion
                              -  this.callback = callback
                              -  this.errorLog = []
                              -  this.validVersions = []
                              -}
                              +class VisualStudioFinder {
                              +  static findVisualStudio = (...args) => new VisualStudioFinder(...args).findVisualStudio()
                              +
                              +  log = log.withPrefix('find VS')
                               
                              -VisualStudioFinder.prototype = {
                              -  log: logWithPrefix(log, 'find VS'),
                              +  regSearchKeys = regSearchKeys
                               
                              -  regSearchKeys: regSearchKeys,
                              +  constructor (nodeSemver, configMsvsVersion) {
                              +    this.nodeSemver = nodeSemver
                              +    this.configMsvsVersion = configMsvsVersion
                              +    this.errorLog = []
                              +    this.validVersions = []
                              +  }
                               
                                 // Logs a message at verbose level, but also saves it to be displayed later
                                 // at error level if an error occurs. This should help diagnose the problem.
                              -  addLog: function addLog (message) {
                              +  addLog (message) {
                                   this.log.verbose(message)
                                   this.errorLog.push(message)
                              -  },
                              +  }
                               
                              -  findVisualStudio: function findVisualStudio () {
                              +  async findVisualStudio () {
                                   this.configVersionYear = null
                                   this.configPath = null
                                   if (this.configMsvsVersion) {
                              @@ -60,32 +53,30 @@ VisualStudioFinder.prototype = {
                                     this.addLog('VCINSTALLDIR not set, not running in VS Command Prompt')
                                   }
                               
                              -    this.findVisualStudio2017OrNewer((info) => {
                              +    const checks = [
                              +      () => this.findVisualStudio2017OrNewer(),
                              +      () => this.findVisualStudio2015(),
                              +      () => this.findVisualStudio2013()
                              +    ]
                              +
                              +    for (const check of checks) {
                              +      const info = await check()
                                     if (info) {
                                       return this.succeed(info)
                                     }
                              -      this.findVisualStudio2015((info) => {
                              -        if (info) {
                              -          return this.succeed(info)
                              -        }
                              -        this.findVisualStudio2013((info) => {
                              -          if (info) {
                              -            return this.succeed(info)
                              -          }
                              -          this.fail()
                              -        })
                              -      })
                              -    })
                              -  },
                              +    }
                              +
                              +    return this.fail()
                              +  }
                               
                              -  succeed: function succeed (info) {
                              +  succeed (info) {
                                   this.log.info(`using VS${info.versionYear} (${info.version}) found at:` +
                                                 `\n"${info.path}"` +
                                                 '\nrun with --verbose for detailed information')
                              -    process.nextTick(this.callback.bind(null, null, info))
                              -  },
                              +    return info
                              +  }
                               
                              -  fail: function fail () {
                              +  fail () {
                                   if (this.configMsvsVersion && this.envVcInstallDir) {
                                     this.errorLog.push(
                                       'msvs_version does not match this VS Command Prompt or the',
                              @@ -119,17 +110,16 @@ VisualStudioFinder.prototype = {
                                   ].join('\n')
                               
                                   this.log.error(`\n${errorLog}\n\n${infoLog}\n`)
                              -    process.nextTick(this.callback.bind(null, new Error(
                              -      'Could not find any Visual Studio installation to use')))
                              -  },
                              +    throw new Error('Could not find any Visual Studio installation to use')
                              +  }
                               
                                 // Invoke the PowerShell script to get information about Visual Studio 2017
                                 // or newer installations
                              -  findVisualStudio2017OrNewer: function findVisualStudio2017OrNewer (cb) {
                              -    var ps = path.join(process.env.SystemRoot, 'System32',
                              +  async findVisualStudio2017OrNewer () {
                              +    const ps = path.join(process.env.SystemRoot, 'System32',
                                     'WindowsPowerShell', 'v1.0', 'powershell.exe')
                              -    var csFile = path.join(__dirname, 'Find-VisualStudio.cs')
                              -    var psArgs = [
                              +    const csFile = path.join(__dirname, 'Find-VisualStudio.cs')
                              +    const psArgs = [
                                     '-ExecutionPolicy',
                                     'Unrestricted',
                                     '-NoProfile',
                              @@ -138,22 +128,19 @@ VisualStudioFinder.prototype = {
                                   ]
                               
                                   this.log.silly('Running', ps, psArgs)
                              -    var child = execFile(ps, psArgs, { encoding: 'utf8' },
                              -      (err, stdout, stderr) => {
                              -        this.parseData(err, stdout, stderr, cb)
                              -      })
                              -    child.stdin.end()
                              -  },
                              +    const [err, stdout, stderr] = await execFile(ps, psArgs, { encoding: 'utf8' })
                              +    return this.parseData(err, stdout, stderr)
                              +  }
                               
                                 // Parse the output of the PowerShell script and look for an installation
                                 // of Visual Studio 2017 or newer to use
                              -  parseData: function parseData (err, stdout, stderr, cb) {
                              +  parseData (err, stdout, stderr) {
                                   this.log.silly('PS stderr = %j', stderr)
                               
                                   const failPowershell = () => {
                                     this.addLog(
                                       'could not use PowerShell to find Visual Studio 2017 or newer, try re-running with \'--loglevel silly\' for more details')
                              -      cb(null)
                              +      return null
                                   }
                               
                                   if (err) {
                              @@ -161,7 +148,7 @@ VisualStudioFinder.prototype = {
                                     return failPowershell()
                                   }
                               
                              -    var vsInfo
                              +    let vsInfo
                                   try {
                                     vsInfo = JSON.parse(stdout)
                                   } catch (e) {
                              @@ -178,7 +165,7 @@ VisualStudioFinder.prototype = {
                                   vsInfo = vsInfo.map((info) => {
                                     this.log.silly(`processing installation: "${info.path}"`)
                                     info.path = path.resolve(info.path)
                              -      var ret = this.getVersionInfo(info)
                              +      const ret = this.getVersionInfo(info)
                                     ret.path = info.path
                                     ret.msBuild = this.getMSBuild(info, ret.versionYear)
                                     ret.toolset = this.getToolset(info, ret.versionYear)
                              @@ -199,7 +186,7 @@ VisualStudioFinder.prototype = {
                                   // Sort to place newer versions first
                                   vsInfo.sort((a, b) => b.versionYear - a.versionYear)
                               
                              -    for (var i = 0; i < vsInfo.length; ++i) {
                              +    for (let i = 0; i < vsInfo.length; ++i) {
                                     const info = vsInfo[i]
                                     this.addLog(`checking VS${info.versionYear} (${info.version}) found ` +
                                                 `at:\n"${info.path}"`)
                              @@ -229,23 +216,23 @@ VisualStudioFinder.prototype = {
                                       continue
                                     }
                               
                              -      return cb(info)
                              +      return info
                                   }
                               
                                   this.addLog(
                                     'could not find a version of Visual Studio 2017 or newer to use')
                              -    cb(null)
                              -  },
                              +    return null
                              +  }
                               
                                 // Helper - process version information
                              -  getVersionInfo: function getVersionInfo (info) {
                              +  getVersionInfo (info) {
                                   const match = /^(\d+)\.(\d+)\..*/.exec(info.version)
                                   if (!match) {
                                     this.log.silly('- failed to parse version:', info.version)
                                     return {}
                                   }
                                   this.log.silly('- version match = %j', match)
                              -    var ret = {
                              +    const ret = {
                                     version: info.version,
                                     versionMajor: parseInt(match[1], 10),
                                     versionMinor: parseInt(match[2], 10)
                              @@ -264,14 +251,14 @@ VisualStudioFinder.prototype = {
                                   }
                                   this.log.silly('- unsupported version:', ret.versionMajor)
                                   return {}
                              -  },
                              +  }
                               
                              -  msBuildPathExists: function msBuildPathExists (path) {
                              -    return fs.existsSync(path)
                              -  },
                              +  msBuildPathExists (path) {
                              +    return existsSync(path)
                              +  }
                               
                                 // Helper - process MSBuild information
                              -  getMSBuild: function getMSBuild (info, versionYear) {
                              +  getMSBuild (info, versionYear) {
                                   const pkg = 'Microsoft.VisualStudio.VC.MSBuild.Base'
                                   const msbuildPath = path.join(info.path, 'MSBuild', 'Current', 'Bin', 'MSBuild.exe')
                                   const msbuildPathArm64 = path.join(info.path, 'MSBuild', 'Current', 'Bin', 'arm64', 'MSBuild.exe')
                              @@ -295,10 +282,10 @@ VisualStudioFinder.prototype = {
                                     return msbuildPath
                                   }
                                   return null
                              -  },
                              +  }
                               
                                 // Helper - process toolset information
                              -  getToolset: function getToolset (info, versionYear) {
                              +  getToolset (info, versionYear) {
                                   const pkg = 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64'
                                   const express = 'Microsoft.VisualStudio.WDExpress'
                               
                              @@ -319,15 +306,15 @@ VisualStudioFinder.prototype = {
                                   }
                                   this.log.silly('- invalid versionYear:', versionYear)
                                   return null
                              -  },
                              +  }
                               
                                 // Helper - process Windows SDK information
                              -  getSDK: function getSDK (info) {
                              +  getSDK (info) {
                                   const win8SDK = 'Microsoft.VisualStudio.Component.Windows81SDK'
                                   const win10SDKPrefix = 'Microsoft.VisualStudio.Component.Windows10SDK.'
                                   const win11SDKPrefix = 'Microsoft.VisualStudio.Component.Windows11SDK.'
                               
                              -    var Win10or11SDKVer = 0
                              +    let Win10or11SDKVer = 0
                                   info.packages.forEach((pkg) => {
                                     if (!pkg.startsWith(win10SDKPrefix) && !pkg.startsWith(win11SDKPrefix)) {
                                       return
                              @@ -354,14 +341,14 @@ VisualStudioFinder.prototype = {
                                     return '8.1'
                                   }
                                   return null
                              -  },
                              +  }
                               
                                 // Find an installation of Visual Studio 2015 to use
                              -  findVisualStudio2015: function findVisualStudio2015 (cb) {
                              +  async findVisualStudio2015 () {
                                   if (this.nodeSemver.major >= 19) {
                                     this.addLog(
                                       'not looking for VS2015 as it is only supported up to Node.js 18')
                              -      return cb(null)
                              +      return null
                                   }
                                   return this.findOldVS({
                                     version: '14.0',
                              @@ -369,15 +356,15 @@ VisualStudioFinder.prototype = {
                                     versionMinor: 0,
                                     versionYear: 2015,
                                     toolset: 'v140'
                              -    }, cb)
                              -  },
                              +    })
                              +  }
                               
                                 // Find an installation of Visual Studio 2013 to use
                              -  findVisualStudio2013: function findVisualStudio2013 (cb) {
                              +  async findVisualStudio2013 () {
                                   if (this.nodeSemver.major >= 9) {
                                     this.addLog(
                                       'not looking for VS2013 as it is only supported up to Node.js 8')
                              -      return cb(null)
                              +      return null
                                   }
                                   return this.findOldVS({
                                     version: '12.0',
                              @@ -385,55 +372,52 @@ VisualStudioFinder.prototype = {
                                     versionMinor: 0,
                                     versionYear: 2013,
                                     toolset: 'v120'
                              -    }, cb)
                              -  },
                              +    })
                              +  }
                               
                                 // Helper - common code for VS2013 and VS2015
                              -  findOldVS: function findOldVS (info, cb) {
                              +  async findOldVS (info) {
                                   const regVC7 = ['HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7',
                                     'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7']
                                   const regMSBuild = 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions'
                               
                                   this.addLog(`looking for Visual Studio ${info.versionYear}`)
                              -    this.regSearchKeys(regVC7, info.version, [], (err, res) => {
                              -      if (err) {
                              -        this.addLog('- not found')
                              -        return cb(null)
                              -      }
                              -
                              +    try {
                              +      let res = await this.regSearchKeys(regVC7, info.version, [])
                                     const vsPath = path.resolve(res, '..')
                                     this.addLog(`- found in "${vsPath}"`)
                              -
                                     const msBuildRegOpts = process.arch === 'ia32' ? [] : ['/reg:32']
                              -      this.regSearchKeys([`${regMSBuild}\\${info.version}`],
                              -        'MSBuildToolsPath', msBuildRegOpts, (err, res) => {
                              -          if (err) {
                              -            this.addLog(
                              -              '- could not find MSBuild in registry for this version')
                              -            return cb(null)
                              -          }
                              -
                              -          const msBuild = path.join(res, 'MSBuild.exe')
                              -          this.addLog(`- MSBuild in "${msBuild}"`)
                              -
                              -          if (!this.checkConfigVersion(info.versionYear, vsPath)) {
                              -            return cb(null)
                              -          }
                              -
                              -          info.path = vsPath
                              -          info.msBuild = msBuild
                              -          info.sdk = null
                              -          cb(info)
                              -        })
                              -    })
                              -  },
                              +
                              +      try {
                              +        res = await this.regSearchKeys([`${regMSBuild}\\${info.version}`], 'MSBuildToolsPath', msBuildRegOpts)
                              +      } catch (err) {
                              +        this.addLog('- could not find MSBuild in registry for this version')
                              +        return null
                              +      }
                              +
                              +      const msBuild = path.join(res, 'MSBuild.exe')
                              +      this.addLog(`- MSBuild in "${msBuild}"`)
                              +
                              +      if (!this.checkConfigVersion(info.versionYear, vsPath)) {
                              +        return null
                              +      }
                              +
                              +      info.path = vsPath
                              +      info.msBuild = msBuild
                              +      info.sdk = null
                              +      return info
                              +    } catch (err) {
                              +      this.addLog('- not found')
                              +      return null
                              +    }
                              +  }
                               
                                 // After finding a usable version of Visual Studio:
                                 // - add it to validVersions to be displayed at the end if a specific
                                 //   version was requested and not found;
                                 // - check if this is the version that was requested.
                                 // - check if this matches the Visual Studio Command Prompt
                              -  checkConfigVersion: function checkConfigVersion (versionYear, vsPath) {
                              +  checkConfigVersion (versionYear, vsPath) {
                                   this.validVersions.push(versionYear)
                                   this.validVersions.push(vsPath)
                               
                              @@ -456,8 +440,4 @@ VisualStudioFinder.prototype = {
                                 }
                               }
                               
                              -module.exports = findVisualStudio
                              -module.exports.test = {
                              -  VisualStudioFinder: VisualStudioFinder,
                              -  findVisualStudio: findVisualStudio
                              -}
                              +module.exports = VisualStudioFinder
                              diff --git a/deps/npm/node_modules/node-gyp/lib/install.js b/deps/npm/node_modules/node-gyp/lib/install.js
                              index 1eb9f14c6742aa..7196a316296fb8 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/install.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/install.js
                              @@ -1,26 +1,21 @@
                               'use strict'
                               
                              -const fs = require('graceful-fs')
                              +const { createWriteStream, promises: fs } = require('graceful-fs')
                               const os = require('os')
                               const { backOff } = require('exponential-backoff')
                              -const rm = require('rimraf')
                               const tar = require('tar')
                               const path = require('path')
                              -const util = require('util')
                              -const stream = require('stream')
                              +const { Transform, promises: { pipeline } } = require('stream')
                               const crypto = require('crypto')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               const semver = require('semver')
                              -const fetch = require('make-fetch-happen')
                              +const { download } = require('./download')
                               const processRelease = require('./process-release')
                              -const win = process.platform === 'win32'
                              -const streamPipeline = util.promisify(stream.pipeline)
                               
                              -/**
                              - * @param {typeof import('graceful-fs')} fs
                              - */
                              +const win = process.platform === 'win32'
                               
                              -async function install (fs, gyp, argv) {
                              +async function install (gyp, argv) {
                              +  log.stdout()
                                 const release = processRelease(argv, gyp, process.version, process.release)
                                 // Detecting target_arch based on logic from create-cnfig-gyp.js. Used on Windows only.
                                 const arch = win ? (gyp.opts.target_arch || gyp.opts.arch || process.arch || 'ia32') : ''
                              @@ -60,7 +55,7 @@ async function install (fs, gyp, argv) {
                                 if (gyp.opts.ensure) {
                                   log.verbose('install', '--ensure was passed, so won\'t reinstall if already installed')
                                   try {
                              -      await fs.promises.stat(devDir)
                              +      await fs.stat(devDir)
                                   } catch (err) {
                                     if (err.code === 'ENOENT') {
                                       log.verbose('install', 'version not already installed, continuing with install', release.version)
                              @@ -78,7 +73,7 @@ async function install (fs, gyp, argv) {
                                   const installVersionFile = path.resolve(devDir, 'installVersion')
                                   let installVersion = 0
                                   try {
                              -      const ver = await fs.promises.readFile(installVersionFile, 'ascii')
                              +      const ver = await fs.readFile(installVersionFile, 'ascii')
                                     installVersion = parseInt(ver, 10) || 0
                                   } catch (err) {
                                     if (err.code !== 'ENOENT') {
                              @@ -100,7 +95,7 @@ async function install (fs, gyp, argv) {
                                     log.verbose('on Windows; need to check node.lib')
                                     const nodeLibPath = path.resolve(devDir, arch, 'node.lib')
                                     try {
                              -        await fs.promises.stat(nodeLibPath)
                              +        await fs.stat(nodeLibPath)
                                     } catch (err) {
                                       if (err.code === 'ENOENT') {
                                         log.verbose('install', `version not already installed for ${arch}, continuing with install`, release.version)
                              @@ -126,12 +121,12 @@ async function install (fs, gyp, argv) {
                               
                                 async function copyDirectory (src, dest) {
                                   try {
                              -      await fs.promises.stat(src)
                              +      await fs.stat(src)
                                   } catch {
                                     throw new Error(`Missing source directory for copy: ${src}`)
                                   }
                              -    await fs.promises.mkdir(dest, { recursive: true })
                              -    const entries = await fs.promises.readdir(src, { withFileTypes: true })
                              +    await fs.mkdir(dest, { recursive: true })
                              +    const entries = await fs.readdir(src, { withFileTypes: true })
                                   for (const entry of entries) {
                                     if (entry.isDirectory()) {
                                       await copyDirectory(path.join(src, entry.name), path.join(dest, entry.name))
                              @@ -140,12 +135,12 @@ async function install (fs, gyp, argv) {
                                       // Windows so use an exponential backoff to resolve collisions
                                       await backOff(async () => {
                                         try {
                              -            await fs.promises.copyFile(path.join(src, entry.name), path.join(dest, entry.name))
                              +            await fs.copyFile(path.join(src, entry.name), path.join(dest, entry.name))
                                         } catch (err) {
                                           // if ensure, check if file already exists and that's good enough
                                           if (gyp.opts.ensure && err.code === 'EBUSY') {
                                             try {
                              -                await fs.promises.stat(path.join(dest, entry.name))
                              +                await fs.stat(path.join(dest, entry.name))
                                               return
                                             } catch {}
                                           }
                              @@ -163,7 +158,7 @@ async function install (fs, gyp, argv) {
                               
                                   // first create the dir for the node dev files
                                   try {
                              -      const created = await fs.promises.mkdir(devDir, { recursive: true })
                              +      const created = await fs.mkdir(devDir, { recursive: true })
                               
                                     if (created) {
                                       log.verbose('created devDir', created)
                              @@ -208,7 +203,7 @@ async function install (fs, gyp, argv) {
                                   // on Windows there can be file errors from tar if parallel installs
                                   // are happening (not uncommon with multiple native modules) so
                                   // extract the tarball to a temp directory first and then copy over
                              -    const tarExtractDir = win ? await fs.promises.mkdtemp(path.join(os.tmpdir(), 'node-gyp-tmp-')) : devDir
                              +    const tarExtractDir = win ? await fs.mkdtemp(path.join(os.tmpdir(), 'node-gyp-tmp-')) : devDir
                               
                                   try {
                                     if (shouldDownloadTarball) {
                              @@ -228,7 +223,7 @@ async function install (fs, gyp, argv) {
                                             throw new Error(`${res.status} response downloading ${release.tarballUrl}`)
                                           }
                               
                              -            await streamPipeline(
                              +            await pipeline(
                                             res.body,
                                             // content checksum
                                             new ShaSum((_, checksum) => {
                              @@ -267,7 +262,7 @@ async function install (fs, gyp, argv) {
                                     // need to download node.lib
                                       ...(win ? [downloadNodeLib()] : []),
                                       // write the "installVersion" file
                              -        fs.promises.writeFile(installVersionPath, gyp.package.installVersion + '\n'),
                              +        fs.writeFile(installVersionPath, gyp.package.installVersion + '\n'),
                                       // Only download SHASUMS.txt if we downloaded something in need of SHA verification
                                       ...(!tarPath || win ? [downloadShasums()] : [])
                                     ])
                              @@ -289,7 +284,7 @@ async function install (fs, gyp, argv) {
                                     if (tarExtractDir !== devDir) {
                                       try {
                                         // try to cleanup temp dir
                              -          await util.promisify(rm)(tarExtractDir)
                              +          await fs.rm(tarExtractDir, { recursive: true })
                                       } catch {
                                         log.warn('failed to clean up temp tarball extract directory')
                                       }
                              @@ -329,7 +324,7 @@ async function install (fs, gyp, argv) {
                                     log.verbose(name, 'dir', dir)
                                     log.verbose(name, 'url', libUrl)
                               
                              -      await fs.promises.mkdir(dir, { recursive: true })
                              +      await fs.mkdir(dir, { recursive: true })
                                     log.verbose('streaming', name, 'to:', targetLibPath)
                               
                                     const res = await download(gyp, libUrl)
                              @@ -339,13 +334,13 @@ async function install (fs, gyp, argv) {
                                       throw new Error(`${res.status} status code downloading ${name}`)
                                     }
                               
                              -      return streamPipeline(
                              +      return pipeline(
                                       res.body,
                                       new ShaSum((_, checksum) => {
                                         contentShasums[libPath] = checksum
                                         log.verbose('content checksum', libPath, checksum)
                                       }),
                              -        fs.createWriteStream(targetLibPath)
                              +        createWriteStream(targetLibPath)
                                     )
                                   } // downloadNodeLib()
                                 } // go()
                              @@ -363,7 +358,7 @@ async function install (fs, gyp, argv) {
                                 async function rollback (err) {
                                   log.warn('install', 'got an error, rolling back install')
                                   // roll-back the install if anything went wrong
                              -    await util.promisify(gyp.commands.remove)([release.versionDir])
                              +    await gyp.commands.remove([release.versionDir])
                                   throw err
                                 }
                               
                              @@ -394,11 +389,11 @@ async function install (fs, gyp, argv) {
                                     log.verbose('tmpdir == cwd', 'automatically will remove dev files after to save disk space')
                                     gyp.todo.push({ name: 'remove', args: argv })
                                   }
                              -    return util.promisify(gyp.commands.install)([noretry].concat(argv))
                              +    return gyp.commands.install([noretry].concat(argv))
                                 }
                               }
                               
                              -class ShaSum extends stream.Transform {
                              +class ShaSum extends Transform {
                                 constructor (callback) {
                                   super()
                                   this._callback = callback
                              @@ -416,43 +411,5 @@ class ShaSum extends stream.Transform {
                                 }
                               }
                               
                              -async function download (gyp, url) {
                              -  log.http('GET', url)
                              -
                              -  const requestOpts = {
                              -    headers: {
                              -      'User-Agent': `node-gyp v${gyp.version} (node ${process.version})`,
                              -      Connection: 'keep-alive'
                              -    },
                              -    proxy: gyp.opts.proxy,
                              -    noProxy: gyp.opts.noproxy
                              -  }
                              -
                              -  const cafile = gyp.opts.cafile
                              -  if (cafile) {
                              -    requestOpts.ca = await readCAFile(cafile)
                              -  }
                              -
                              -  const res = await fetch(url, requestOpts)
                              -  log.http(res.status, res.url)
                              -
                              -  return res
                              -}
                              -
                              -async function readCAFile (filename) {
                              -  // The CA file can contain multiple certificates so split on certificate
                              -  // boundaries.  [\S\s]*? is used to match everything including newlines.
                              -  const ca = await fs.promises.readFile(filename, 'utf8')
                              -  const re = /(-----BEGIN CERTIFICATE-----[\S\s]*?-----END CERTIFICATE-----)/g
                              -  return ca.match(re)
                              -}
                              -
                              -module.exports = function (gyp, argv, callback) {
                              -  install(fs, gyp, argv).then(callback.bind(undefined, null), callback)
                              -}
                              -module.exports.test = {
                              -  download,
                              -  install,
                              -  readCAFile
                              -}
                              +module.exports = install
                               module.exports.usage = 'Install node development files for the specified node version.'
                              diff --git a/deps/npm/node_modules/node-gyp/lib/list.js b/deps/npm/node_modules/node-gyp/lib/list.js
                              index 405ebc0d889590..36889ad4f71e27 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/list.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/list.js
                              @@ -1,26 +1,25 @@
                               'use strict'
                               
                              -const fs = require('graceful-fs')
                              -const log = require('npmlog')
                              +const fs = require('graceful-fs').promises
                              +const log = require('./log')
                               
                              -function list (gyp, args, callback) {
                              -  var devDir = gyp.devDir
                              +async function list (gyp, args) {
                              +  const devDir = gyp.devDir
                                 log.verbose('list', 'using node-gyp dir:', devDir)
                               
                              -  fs.readdir(devDir, onreaddir)
                              -
                              -  function onreaddir (err, versions) {
                              -    if (err && err.code !== 'ENOENT') {
                              -      return callback(err)
                              +  let versions = []
                              +  try {
                              +    const dir = await fs.readdir(devDir)
                              +    if (Array.isArray(dir)) {
                              +      versions = dir.filter((v) => v !== 'current')
                                   }
                              -
                              -    if (Array.isArray(versions)) {
                              -      versions = versions.filter(function (v) { return v !== 'current' })
                              -    } else {
                              -      versions = []
                              +  } catch (err) {
                              +    if (err && err.code !== 'ENOENT') {
                              +      throw err
                                   }
                              -    callback(null, versions)
                                 }
                              +
                              +  return versions
                               }
                               
                               module.exports = list
                              diff --git a/deps/npm/node_modules/node-gyp/lib/log.js b/deps/npm/node_modules/node-gyp/lib/log.js
                              new file mode 100644
                              index 00000000000000..6841719abab5a9
                              --- /dev/null
                              +++ b/deps/npm/node_modules/node-gyp/lib/log.js
                              @@ -0,0 +1,169 @@
                              +'use strict'
                              +
                              +const procLog = require('proc-log')
                              +const { format } = require('util')
                              +
                              +// helper to emit log messages with a predefined prefix
                              +const logLevels = Object.keys(procLog).filter((k) => typeof procLog[k] === 'function')
                              +const withPrefix = (prefix) => logLevels.reduce((acc, level) => {
                              +  acc[level] = (...args) => procLog[level](prefix, ...args)
                              +  return acc
                              +}, {})
                              +
                              +// very basic ansi color generator
                              +const COLORS = {
                              +  wrap: (str, colors) => {
                              +    const codes = colors.filter(c => typeof c === 'number')
                              +    return `\x1b[${codes.join(';')}m${str}\x1b[0m`
                              +  },
                              +  inverse: 7,
                              +  fg: {
                              +    black: 30,
                              +    red: 31,
                              +    green: 32,
                              +    yellow: 33,
                              +    blue: 34,
                              +    magenta: 35,
                              +    cyan: 36,
                              +    white: 37
                              +  },
                              +  bg: {
                              +    black: 40,
                              +    red: 41,
                              +    green: 42,
                              +    yellow: 43,
                              +    blue: 44,
                              +    magenta: 45,
                              +    cyan: 46,
                              +    white: 47
                              +  }
                              +}
                              +
                              +class Logger {
                              +  #buffer = []
                              +  #paused = null
                              +  #level = null
                              +  #stream = null
                              +
                              +  // ordered from loudest to quietest
                              +  #levels = [{
                              +    id: 'silly',
                              +    display: 'sill',
                              +    style: { inverse: true }
                              +  }, {
                              +    id: 'verbose',
                              +    display: 'verb',
                              +    style: { fg: 'cyan', bg: 'black' }
                              +  }, {
                              +    id: 'info',
                              +    style: { fg: 'green' }
                              +  }, {
                              +    id: 'http',
                              +    style: { fg: 'green', bg: 'black' }
                              +  }, {
                              +    id: 'notice',
                              +    style: { fg: 'cyan', bg: 'black' }
                              +  }, {
                              +    id: 'warn',
                              +    display: 'WARN',
                              +    style: { fg: 'black', bg: 'yellow' }
                              +  }, {
                              +    id: 'error',
                              +    display: 'ERR!',
                              +    style: { fg: 'red', bg: 'black' }
                              +  }]
                              +
                              +  constructor (stream) {
                              +    process.on('log', (...args) => this.#onLog(...args))
                              +    this.#levels = new Map(this.#levels.map((level, index) => [level.id, { ...level, index }]))
                              +    this.level = 'info'
                              +    this.stream = stream
                              +    procLog.pause()
                              +  }
                              +
                              +  get stream () {
                              +    return this.#stream
                              +  }
                              +
                              +  set stream (stream) {
                              +    this.#stream = stream
                              +  }
                              +
                              +  get level () {
                              +    return this.#levels.get(this.#level) ?? null
                              +  }
                              +
                              +  set level (level) {
                              +    this.#level = this.#levels.get(level)?.id ?? null
                              +  }
                              +
                              +  isVisible (level) {
                              +    return this.level?.index <= this.#levels.get(level)?.index ?? -1
                              +  }
                              +
                              +  #onLog (...args) {
                              +    const [level] = args
                              +
                              +    if (level === 'pause') {
                              +      this.#paused = true
                              +      return
                              +    }
                              +
                              +    if (level === 'resume') {
                              +      this.#paused = false
                              +      this.#buffer.forEach((b) => this.#log(...b))
                              +      this.#buffer.length = 0
                              +      return
                              +    }
                              +
                              +    if (this.#paused) {
                              +      this.#buffer.push(args)
                              +      return
                              +    }
                              +
                              +    this.#log(...args)
                              +  }
                              +
                              +  #color (str, { fg, bg, inverse }) {
                              +    if (!this.#stream?.isTTY) {
                              +      return str
                              +    }
                              +
                              +    return COLORS.wrap(str, [
                              +      COLORS.fg[fg],
                              +      COLORS.bg[bg],
                              +      inverse && COLORS.inverse
                              +    ])
                              +  }
                              +
                              +  #log (levelId, msgPrefix, ...args) {
                              +    if (!this.isVisible(levelId) || typeof this.#stream?.write !== 'function') {
                              +      return
                              +    }
                              +
                              +    const level = this.#levels.get(levelId)
                              +
                              +    const prefixParts = [
                              +      this.#color('gyp', { fg: 'white', bg: 'black' }),
                              +      this.#color(level.display ?? level.id, level.style)
                              +    ]
                              +    if (msgPrefix) {
                              +      prefixParts.push(this.#color(msgPrefix, { fg: 'magenta' }))
                              +    }
                              +
                              +    const prefix = prefixParts.join(' ').trim() + ' '
                              +    const lines = format(...args).split(/\r?\n/).map(l => prefix + l.trim())
                              +
                              +    this.#stream.write(lines.join('\n') + '\n')
                              +  }
                              +}
                              +
                              +// used to suppress logs in tests
                              +const NULL_LOGGER = !!process.env.NODE_GYP_NULL_LOGGER
                              +
                              +module.exports = {
                              +  logger: new Logger(NULL_LOGGER ? null : process.stderr),
                              +  stdout: NULL_LOGGER ? () => {} : (...args) => console.log(...args),
                              +  withPrefix,
                              +  ...procLog
                              +}
                              diff --git a/deps/npm/node_modules/node-gyp/lib/node-gyp.js b/deps/npm/node_modules/node-gyp/lib/node-gyp.js
                              index e492ec1026d9d3..5e25bf996f8b22 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/node-gyp.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/node-gyp.js
                              @@ -2,10 +2,10 @@
                               
                               const path = require('path')
                               const nopt = require('nopt')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               const childProcess = require('child_process')
                              -const EE = require('events').EventEmitter
                              -const inherits = require('util').inherits
                              +const { EventEmitter } = require('events')
                              +
                               const commands = [
                                 // Module build commands
                                 'build',
                              @@ -17,199 +17,172 @@ const commands = [
                                 'list',
                                 'remove'
                               ]
                              -const aliases = {
                              -  ls: 'list',
                              -  rm: 'remove'
                              -}
                              -
                              -// differentiate node-gyp's logs from npm's
                              -log.heading = 'gyp'
                              -
                              -function gyp () {
                              -  return new Gyp()
                              -}
                               
                              -function Gyp () {
                              -  var self = this
                              +class Gyp extends EventEmitter {
                              +  /**
                              +   * Export the contents of the package.json.
                              +   */
                              +  package = require('../package.json')
                              +
                              +  /**
                              +   * nopt configuration definitions
                              +   */
                              +  configDefs = {
                              +    help: Boolean, // everywhere
                              +    arch: String, // 'configure'
                              +    cafile: String, // 'install'
                              +    debug: Boolean, // 'build'
                              +    directory: String, // bin
                              +    make: String, // 'build'
                              +    'msvs-version': String, // 'configure'
                              +    ensure: Boolean, // 'install'
                              +    solution: String, // 'build' (windows only)
                              +    proxy: String, // 'install'
                              +    noproxy: String, // 'install'
                              +    devdir: String, // everywhere
                              +    nodedir: String, // 'configure'
                              +    loglevel: String, // everywhere
                              +    python: String, // 'configure'
                              +    'dist-url': String, // 'install'
                              +    tarball: String, // 'install'
                              +    jobs: String, // 'build'
                              +    thin: String, // 'configure'
                              +    'force-process-config': Boolean // 'configure'
                              +  }
                               
                              -  this.devDir = ''
                              -  this.commands = {}
                              +  /**
                              +   * nopt shorthands
                              +   */
                              +  shorthands = {
                              +    release: '--no-debug',
                              +    C: '--directory',
                              +    debug: '--debug',
                              +    j: '--jobs',
                              +    silly: '--loglevel=silly',
                              +    verbose: '--loglevel=verbose',
                              +    silent: '--loglevel=silent'
                              +  }
                               
                              -  commands.forEach(function (command) {
                              -    self.commands[command] = function (argv, callback) {
                              -      log.verbose('command', command, argv)
                              -      return require('./' + command)(self, argv, callback)
                              -    }
                              -  })
                              -}
                              -inherits(Gyp, EE)
                              -exports.Gyp = Gyp
                              -var proto = Gyp.prototype
                              -
                              -/**
                              - * Export the contents of the package.json.
                              - */
                              -
                              -proto.package = require('../package.json')
                              -
                              -/**
                              - * nopt configuration definitions
                              - */
                              -
                              -proto.configDefs = {
                              -  help: Boolean, // everywhere
                              -  arch: String, // 'configure'
                              -  cafile: String, // 'install'
                              -  debug: Boolean, // 'build'
                              -  directory: String, // bin
                              -  make: String, // 'build'
                              -  msvs_version: String, // 'configure'
                              -  ensure: Boolean, // 'install'
                              -  solution: String, // 'build' (windows only)
                              -  proxy: String, // 'install'
                              -  noproxy: String, // 'install'
                              -  devdir: String, // everywhere
                              -  nodedir: String, // 'configure'
                              -  loglevel: String, // everywhere
                              -  python: String, // 'configure'
                              -  'dist-url': String, // 'install'
                              -  tarball: String, // 'install'
                              -  jobs: String, // 'build'
                              -  thin: String, // 'configure'
                              -  'force-process-config': Boolean // 'configure'
                              -}
                              +  /**
                              +   * expose the command aliases for the bin file to use.
                              +   */
                              +  aliases = {
                              +    ls: 'list',
                              +    rm: 'remove'
                              +  }
                               
                              -/**
                              - * nopt shorthands
                              - */
                              -
                              -proto.shorthands = {
                              -  release: '--no-debug',
                              -  C: '--directory',
                              -  debug: '--debug',
                              -  j: '--jobs',
                              -  silly: '--loglevel=silly',
                              -  verbose: '--loglevel=verbose',
                              -  silent: '--loglevel=silent'
                              -}
                              +  constructor (...args) {
                              +    super(...args)
                               
                              -/**
                              - * expose the command aliases for the bin file to use.
                              - */
                              +    this.devDir = ''
                               
                              -proto.aliases = aliases
                              +    this.commands = commands.reduce((acc, command) => {
                              +      acc[command] = (argv) => require('./' + command)(this, argv)
                              +      return acc
                              +    }, {})
                               
                              -/**
                              - * Parses the given argv array and sets the 'opts',
                              - * 'argv' and 'command' properties.
                              - */
                              +    Object.defineProperty(this, 'version', {
                              +      enumerable: true,
                              +      get: function () { return this.package.version }
                              +    })
                              +  }
                               
                              -proto.parseArgv = function parseOpts (argv) {
                              -  this.opts = nopt(this.configDefs, this.shorthands, argv)
                              -  this.argv = this.opts.argv.remain.slice()
                              +  /**
                              +   * Parses the given argv array and sets the 'opts',
                              +   * 'argv' and 'command' properties.
                              +   */
                              +  parseArgv (argv) {
                              +    this.opts = nopt(this.configDefs, this.shorthands, argv)
                              +    this.argv = this.opts.argv.remain.slice()
                               
                              -  var commands = this.todo = []
                              +    const commands = this.todo = []
                               
                              -  // create a copy of the argv array with aliases mapped
                              -  argv = this.argv.map(function (arg) {
                              +    // create a copy of the argv array with aliases mapped
                              +    argv = this.argv.map((arg) => {
                                   // is this an alias?
                              -    if (arg in this.aliases) {
                              -      arg = this.aliases[arg]
                              -    }
                              -    return arg
                              -  }, this)
                              -
                              -  // process the mapped args into "command" objects ("name" and "args" props)
                              -  argv.slice().forEach(function (arg) {
                              -    if (arg in this.commands) {
                              -      var args = argv.splice(0, argv.indexOf(arg))
                              -      argv.shift()
                              -      if (commands.length > 0) {
                              -        commands[commands.length - 1].args = args
                              +      if (arg in this.aliases) {
                              +        arg = this.aliases[arg]
                              +      }
                              +      return arg
                              +    })
                              +
                              +    // process the mapped args into "command" objects ("name" and "args" props)
                              +    argv.slice().forEach((arg) => {
                              +      if (arg in this.commands) {
                              +        const args = argv.splice(0, argv.indexOf(arg))
                              +        argv.shift()
                              +        if (commands.length > 0) {
                              +          commands[commands.length - 1].args = args
                              +        }
                              +        commands.push({ name: arg, args: [] })
                                     }
                              -      commands.push({ name: arg, args: [] })
                              +    })
                              +    if (commands.length > 0) {
                              +      commands[commands.length - 1].args = argv.splice(0)
                                   }
                              -  }, this)
                              -  if (commands.length > 0) {
                              -    commands[commands.length - 1].args = argv.splice(0)
                              -  }
                               
                              -  // support for inheriting config env variables from npm
                              -  var npmConfigPrefix = 'npm_config_'
                              -  Object.keys(process.env).forEach(function (name) {
                              -    if (name.indexOf(npmConfigPrefix) !== 0) {
                              -      return
                              -    }
                              -    var val = process.env[name]
                              -    if (name === npmConfigPrefix + 'loglevel') {
                              -      log.level = val
                              -    } else {
                              +    // support for inheriting config env variables from npm
                              +    const npmConfigPrefix = 'npm_config_'
                              +    Object.keys(process.env).forEach((name) => {
                              +      if (name.indexOf(npmConfigPrefix) !== 0) {
                              +        return
                              +      }
                              +      const val = process.env[name]
                              +      if (name === npmConfigPrefix + 'loglevel') {
                              +        log.logger.level = val
                              +      } else {
                                     // add the user-defined options to the config
                              -      name = name.substring(npmConfigPrefix.length)
                              -      // gyp@741b7f1 enters an infinite loop when it encounters
                              -      // zero-length options so ensure those don't get through.
                              -      if (name) {
                              +        name = name.substring(npmConfigPrefix.length)
                              +        // gyp@741b7f1 enters an infinite loop when it encounters
                              +        // zero-length options so ensure those don't get through.
                              +        if (name) {
                                       // convert names like force_process_config to force-process-config
                              -        if (name.includes('_')) {
                              -          name = name.replace(/_/g, '-')
                              +          if (name.includes('_')) {
                              +            name = name.replace(/_/g, '-')
                              +          }
                              +          this.opts[name] = val
                                       }
                              -        this.opts[name] = val
                                     }
                              -    }
                              -  }, this)
                              +    })
                               
                              -  if (this.opts.loglevel) {
                              -    log.level = this.opts.loglevel
                              +    if (this.opts.loglevel) {
                              +      log.logger.level = this.opts.loglevel
                              +    }
                              +    log.resume()
                                 }
                              -  log.resume()
                              -}
                              -
                              -/**
                              - * Spawns a child process and emits a 'spawn' event.
                              - */
                               
                              -proto.spawn = function spawn (command, args, opts) {
                              -  if (!opts) {
                              -    opts = {}
                              -  }
                              -  if (!opts.silent && !opts.stdio) {
                              -    opts.stdio = [0, 1, 2]
                              +  /**
                              +   * Spawns a child process and emits a 'spawn' event.
                              +   */
                              +  spawn (command, args, opts) {
                              +    if (!opts) {
                              +      opts = {}
                              +    }
                              +    if (!opts.silent && !opts.stdio) {
                              +      opts.stdio = [0, 1, 2]
                              +    }
                              +    const cp = childProcess.spawn(command, args, opts)
                              +    log.info('spawn', command)
                              +    log.info('spawn args', args)
                              +    return cp
                                 }
                              -  var cp = childProcess.spawn(command, args, opts)
                              -  log.info('spawn', command)
                              -  log.info('spawn args', args)
                              -  return cp
                              -}
                               
                              -/**
                              - * Returns the usage instructions for node-gyp.
                              - */
                              -
                              -proto.usage = function usage () {
                              -  var str = [
                              -    '',
                              -    '  Usage: node-gyp  [options]',
                              -    '',
                              -    '  where  is one of:',
                              -    commands.map(function (c) {
                              -      return '    - ' + c + ' - ' + require('./' + c).usage
                              -    }).join('\n'),
                              -    '',
                              -    'node-gyp@' + this.version + '  ' + path.resolve(__dirname, '..'),
                              -    'node@' + process.versions.node
                              -  ].join('\n')
                              -  return str
                              +  /**
                              +   * Returns the usage instructions for node-gyp.
                              +   */
                              +  usage () {
                              +    return [
                              +      '',
                              +      '  Usage: node-gyp  [options]',
                              +      '',
                              +      '  where  is one of:',
                              +      commands.map((c) => '    - ' + c + ' - ' + require('./' + c).usage).join('\n'),
                              +      '',
                              +      'node-gyp@' + this.version + '  ' + path.resolve(__dirname, '..'),
                              +      'node@' + process.versions.node
                              +    ].join('\n')
                              +  }
                               }
                               
                              -/**
                              - * Version number getter.
                              - */
                              -
                              -Object.defineProperty(proto, 'version', {
                              -  get: function () {
                              -    return this.package.version
                              -  },
                              -  enumerable: true
                              -})
                              -
                              -module.exports = exports = gyp
                              +module.exports = () => new Gyp()
                              +module.exports.Gyp = Gyp
                              diff --git a/deps/npm/node_modules/node-gyp/lib/process-release.js b/deps/npm/node_modules/node-gyp/lib/process-release.js
                              index 95b55e4426dee7..c9a319dfadd2bc 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/process-release.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/process-release.js
                              @@ -1,11 +1,11 @@
                              -/* eslint-disable node/no-deprecated-api */
                              +/* eslint-disable n/no-deprecated-api */
                               
                               'use strict'
                               
                               const semver = require('semver')
                               const url = require('url')
                               const path = require('path')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               
                               // versions where -headers.tar.gz started shipping
                               const headersTarballRange = '>= 3.0.0 || ~0.12.10 || ~0.10.42'
                              @@ -17,29 +17,28 @@ const bitsreV3 = /\/win-(x86|ia32|x64)\// // io.js v3.x.x shipped with "ia32" bu
                               // file names. Inputs come from command-line switches (--target, --dist-url),
                               // `process.version` and `process.release` where it exists.
                               function processRelease (argv, gyp, defaultVersion, defaultRelease) {
                              -  var version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion
                              -  var versionSemver = semver.parse(version)
                              -  var overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
                              -  var isDefaultVersion
                              -  var isNamedForLegacyIojs
                              -  var name
                              -  var distBaseUrl
                              -  var baseUrl
                              -  var libUrl32
                              -  var libUrl64
                              -  var libUrlArm64
                              -  var tarballUrl
                              -  var canGetHeaders
                              +  let version = (semver.valid(argv[0]) && argv[0]) || gyp.opts.target || defaultVersion
                              +  const versionSemver = semver.parse(version)
                              +  let overrideDistUrl = gyp.opts['dist-url'] || gyp.opts.disturl
                              +  let isNamedForLegacyIojs
                              +  let name
                              +  let distBaseUrl
                              +  let baseUrl
                              +  let libUrl32
                              +  let libUrl64
                              +  let libUrlArm64
                              +  let tarballUrl
                              +  let canGetHeaders
                               
                                 if (!versionSemver) {
                                   // not a valid semver string, nothing we can do
                              -    return { version: version }
                              +    return { version }
                                 }
                                 // flatten version into String
                                 version = versionSemver.version
                               
                                 // defaultVersion should come from process.version so ought to be valid semver
                              -  isDefaultVersion = version === semver.parse(defaultVersion).version
                              +  const isDefaultVersion = version === semver.parse(defaultVersion).version
                               
                                 // can't use process.release if we're using --target=x.y.z
                                 if (!isDefaultVersion) {
                              @@ -101,11 +100,11 @@ function processRelease (argv, gyp, defaultVersion, defaultRelease) {
                                 }
                               
                                 return {
                              -    version: version,
                              +    version,
                                   semver: versionSemver,
                              -    name: name,
                              -    baseUrl: baseUrl,
                              -    tarballUrl: tarballUrl,
                              +    name,
                              +    baseUrl,
                              +    tarballUrl,
                                   shasumsUrl: url.resolve(baseUrl, 'SHASUMS256.txt'),
                                   versionDir: (name !== 'node' ? name + '-' : '') + version,
                                   ia32: {
                              @@ -128,8 +127,8 @@ function normalizePath (p) {
                               }
                               
                               function resolveLibUrl (name, defaultUrl, arch, versionMajor) {
                              -  var base = url.resolve(defaultUrl, './')
                              -  var hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
                              +  const base = url.resolve(defaultUrl, './')
                              +  const hasLibUrl = bitsre.test(defaultUrl) || (versionMajor === 3 && bitsreV3.test(defaultUrl))
                               
                                 if (!hasLibUrl) {
                                   // let's assume it's a baseUrl then
                              diff --git a/deps/npm/node_modules/node-gyp/lib/rebuild.js b/deps/npm/node_modules/node-gyp/lib/rebuild.js
                              index a1c5b27cbe56a5..609817665e2dba 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/rebuild.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/rebuild.js
                              @@ -1,12 +1,11 @@
                               'use strict'
                               
                              -function rebuild (gyp, argv, callback) {
                              +async function rebuild (gyp, argv) {
                                 gyp.todo.push(
                                   { name: 'clean', args: [] }
                                   , { name: 'configure', args: argv }
                                   , { name: 'build', args: [] }
                                 )
                              -  process.nextTick(callback)
                               }
                               
                               module.exports = rebuild
                              diff --git a/deps/npm/node_modules/node-gyp/lib/remove.js b/deps/npm/node_modules/node-gyp/lib/remove.js
                              index 8c945e5659001c..7efdb01a662e76 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/remove.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/remove.js
                              @@ -1,46 +1,43 @@
                               'use strict'
                               
                              -const fs = require('fs')
                              -const rm = require('rimraf')
                              +const fs = require('graceful-fs').promises
                               const path = require('path')
                              -const log = require('npmlog')
                              +const log = require('./log')
                               const semver = require('semver')
                               
                              -function remove (gyp, argv, callback) {
                              -  var devDir = gyp.devDir
                              +async function remove (gyp, argv) {
                              +  const devDir = gyp.devDir
                                 log.verbose('remove', 'using node-gyp dir:', devDir)
                               
                                 // get the user-specified version to remove
                              -  var version = argv[0] || gyp.opts.target
                              +  let version = argv[0] || gyp.opts.target
                                 log.verbose('remove', 'removing target version:', version)
                               
                                 if (!version) {
                              -    return callback(new Error('You must specify a version number to remove. Ex: "' + process.version + '"'))
                              +    throw new Error('You must specify a version number to remove. Ex: "' + process.version + '"')
                                 }
                               
                              -  var versionSemver = semver.parse(version)
                              +  const versionSemver = semver.parse(version)
                                 if (versionSemver) {
                                   // flatten the version Array into a String
                                   version = versionSemver.version
                                 }
                               
                              -  var versionPath = path.resolve(gyp.devDir, version)
                              +  const versionPath = path.resolve(gyp.devDir, version)
                                 log.verbose('remove', 'removing development files for version:', version)
                               
                                 // first check if its even installed
                              -  fs.stat(versionPath, function (err) {
                              -    if (err) {
                              -      if (err.code === 'ENOENT') {
                              -        callback(null, 'version was already uninstalled: ' + version)
                              -      } else {
                              -        callback(err)
                              -      }
                              -      return
                              +  try {
                              +    await fs.stat(versionPath)
                              +  } catch (err) {
                              +    if (err.code === 'ENOENT') {
                              +      return 'version was already uninstalled: ' + version
                                   }
                              -    // Go ahead and delete the dir
                              -    rm(versionPath, callback)
                              -  })
                              +    throw err
                              +  }
                              +
                              +  await fs.rm(versionPath, { recursive: true, force: true })
                               }
                               
                              -module.exports = exports = remove
                              +module.exports = remove
                               module.exports.usage = 'Removes the node development files for the specified version'
                              diff --git a/deps/npm/node_modules/node-gyp/lib/util.js b/deps/npm/node_modules/node-gyp/lib/util.js
                              index 3e23c628e6ad71..3f6aeeb7dcb436 100644
                              --- a/deps/npm/node_modules/node-gyp/lib/util.js
                              +++ b/deps/npm/node_modules/node-gyp/lib/util.js
                              @@ -1,64 +1,81 @@
                               'use strict'
                               
                              -const log = require('npmlog')
                              -const execFile = require('child_process').execFile
                              +const cp = require('child_process')
                               const path = require('path')
                              +const { openSync, closeSync } = require('graceful-fs')
                              +const log = require('./log')
                               
                              -function logWithPrefix (log, prefix) {
                              -  function setPrefix (logFunction) {
                              -    return (...args) => logFunction.apply(null, [ prefix, ...args ]) // eslint-disable-line
                              -  }
                              -  return {
                              -    silly: setPrefix(log.silly),
                              -    verbose: setPrefix(log.verbose),
                              -    info: setPrefix(log.info),
                              -    warn: setPrefix(log.warn),
                              -    error: setPrefix(log.error)
                              -  }
                              -}
                              +const execFile = async (...args) => new Promise((resolve) => {
                              +  const child = cp.execFile(...args, (...a) => resolve(a))
                              +  child.stdin.end()
                              +})
                               
                              -function regGetValue (key, value, addOpts, cb) {
                              +async function regGetValue (key, value, addOpts) {
                                 const outReValue = value.replace(/\W/g, '.')
                                 const outRe = new RegExp(`^\\s+${outReValue}\\s+REG_\\w+\\s+(\\S.*)$`, 'im')
                                 const reg = path.join(process.env.SystemRoot, 'System32', 'reg.exe')
                                 const regArgs = ['query', key, '/v', value].concat(addOpts)
                               
                                 log.silly('reg', 'running', reg, regArgs)
                              -  const child = execFile(reg, regArgs, { encoding: 'utf8' },
                              -    function (err, stdout, stderr) {
                              -      log.silly('reg', 'reg.exe stdout = %j', stdout)
                              -      if (err || stderr.trim() !== '') {
                              -        log.silly('reg', 'reg.exe err = %j', err && (err.stack || err))
                              -        log.silly('reg', 'reg.exe stderr = %j', stderr)
                              -        return cb(err, stderr)
                              -      }
                              +  const [err, stdout, stderr] = await execFile(reg, regArgs, { encoding: 'utf8' })
                               
                              -      const result = outRe.exec(stdout)
                              -      if (!result) {
                              -        log.silly('reg', 'error parsing stdout')
                              -        return cb(new Error('Could not parse output of reg.exe'))
                              -      }
                              -      log.silly('reg', 'found: %j', result[1])
                              -      cb(null, result[1])
                              -    })
                              -  child.stdin.end()
                              +  log.silly('reg', 'reg.exe stdout = %j', stdout)
                              +  if (err || stderr.trim() !== '') {
                              +    log.silly('reg', 'reg.exe err = %j', err && (err.stack || err))
                              +    log.silly('reg', 'reg.exe stderr = %j', stderr)
                              +    if (err) {
                              +      throw err
                              +    }
                              +    throw new Error(stderr)
                              +  }
                              +
                              +  const result = outRe.exec(stdout)
                              +  if (!result) {
                              +    log.silly('reg', 'error parsing stdout')
                              +    throw new Error('Could not parse output of reg.exe')
                              +  }
                              +
                              +  log.silly('reg', 'found: %j', result[1])
                              +  return result[1]
                              +}
                              +
                              +async function regSearchKeys (keys, value, addOpts) {
                              +  for (const key of keys) {
                              +    try {
                              +      return await regGetValue(key, value, addOpts)
                              +    } catch {
                              +      continue
                              +    }
                              +  }
                               }
                               
                              -function regSearchKeys (keys, value, addOpts, cb) {
                              -  var i = 0
                              -  const search = () => {
                              -    log.silly('reg-search', 'looking for %j in %j', value, keys[i])
                              -    regGetValue(keys[i], value, addOpts, (err, res) => {
                              -      ++i
                              -      if (err && i < keys.length) { return search() }
                              -      cb(err, res)
                              -    })
                              +/**
                              + * Returns the first file or directory from an array of candidates that is
                              + * readable by the current user, or undefined if none of the candidates are
                              + * readable.
                              + */
                              +function findAccessibleSync (logprefix, dir, candidates) {
                              +  for (let next = 0; next < candidates.length; next++) {
                              +    const candidate = path.resolve(dir, candidates[next])
                              +    let fd
                              +    try {
                              +      fd = openSync(candidate, 'r')
                              +    } catch (e) {
                              +      // this candidate was not found or not readable, do nothing
                              +      log.silly(logprefix, 'Could not open %s: %s', candidate, e.message)
                              +      continue
                              +    }
                              +    closeSync(fd)
                              +    log.silly(logprefix, 'Found readable %s', candidate)
                              +    return candidate
                                 }
                              -  search()
                              +
                              +  return undefined
                               }
                               
                               module.exports = {
                              -  logWithPrefix: logWithPrefix,
                              -  regGetValue: regGetValue,
                              -  regSearchKeys: regSearchKeys
                              +  execFile,
                              +  regGetValue,
                              +  regSearchKeys,
                              +  findAccessibleSync
                               }
                              diff --git a/deps/npm/node_modules/node-gyp/macOS_Catalina.md b/deps/npm/node_modules/node-gyp/macOS_Catalina.md
                              deleted file mode 100644
                              index dde5fe3f7d4fbf..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/macOS_Catalina.md
                              +++ /dev/null
                              @@ -1,104 +0,0 @@
                              -# Installation notes for macOS Catalina (v10.15)
                              -
                              -_This document specifically refers to upgrades from previous versions of macOS to Catalina (10.15). It should be removed from the source repository when Catalina ceases to be the latest macOS version or when future Catalina versions no longer raise these issues._
                              -
                              -**Both upgrading to macOS Catalina and running a Software Update in Catalina may cause normal `node-gyp` installations to fail. This might manifest as the following error during `npm install`:**
                              -
                              -```console
                              -gyp: No Xcode or CLT version detected!
                              -```
                              -
                              -## node-gyp v7
                              -
                              -The newest release of `node-gyp` should solve this problem. If you are using `node-gyp` directly then you should be able to install v7 and use it as-is.
                              -
                              -If you need to use `node-gyp` from within `npm` (e.g. through `npm install`), you will have to install `node-gyp` (either globally with `-g` or to a predictable location) and tell `npm` where the new version is. Either use:
                              -
                              -* `npm config set node_gyp `; or
                              -* run `npm` with an environment variable prefix: `npm_config_node_gyp= npm install`
                              -
                              -Where "path to node-gyp" is to the `node-gyp` executable which may be a symlink in your global bin directory (e.g. `/usr/local/bin/node-gyp`), or a path to the `node-gyp` installation directory and the `bin/node-gyp.js` file within it (e.g. `/usr/local/lib/node_modules/node-gyp/bin/node-gyp.js`).
                              -
                              -**If you use `npm config set` to change your global `node_gyp` you are responsible for keeping it up to date and can't rely on `npm` to give you a newer version when available.** Use `npm config delete node_gyp` to unset this configuration option.
                              -
                              -## Fixing Catalina for older versions of `node-gyp`
                              -
                              -### Is my Mac running macOS Catalina?
                              -Let's first make sure that your Mac is running Catalina:
                              -```
                              -% sw_vers
                              -    ProductName:	Mac OS X
                              -    ProductVersion:	10.15
                              -    BuildVersion:	19A602
                              -```
                              -If `ProductVersion` is less then `10.15` then this document is not for you. Normal install docs for `node-gyp` on macOS can be found at https://github.com/nodejs/node-gyp#on-macos
                              -
                              -
                              -### The acid test
                              -To see if `Xcode Command Line Tools` is installed in a way that will work with `node-gyp`, run:
                              -```
                              -curl -sL https://github.com/nodejs/node-gyp/raw/main/macOS_Catalina_acid_test.sh | bash
                              -```
                              -
                              -If test succeeded, _you are done_! You should be ready to [install](https://github.com/nodejs/node-gyp#installation) `node-gyp`.
                              -
                              -If test failed, there is a problem with your Xcode Command Line Tools installation. [Continue to Solutions](#Solutions).
                              -
                              -### Solutions
                              -There are three ways to install the Xcode libraries `node-gyp` needs on macOS. People running Catalina have had success with some but not others in a way that has been unpredictable.
                              -
                              -1. With the full Xcode (~7.6 GB download) from the `App Store` app.
                              -2. With the _much_ smaller Xcode Command Line Tools via `xcode-select --install`
                              -3. With the _much_ smaller Xcode Command Line Tools via manual download. **For people running the latest version of Catalina (10.15.2 at the time of this writing), this has worked when the other two solutions haven't.**
                              -
                              -### Installing `node-gyp` using the full Xcode
                              -1. `xcodebuild -version` should show `Xcode 11.1` or later.
                              -    * If not, then install/upgrade Xcode from the App Store app.
                              -2. Open the Xcode app and...
                              -    * Under __Preferences > Locations__ select the tools if their location is empty.
                              -    * Allow Xcode app to do an essential install of the most recent compiler tools.
                              -3. Once all installations are _complete_, quit out of Xcode.
                              -4. `sudo xcodebuild -license accept`  # If you agree with the licensing terms.
                              -5. `softwareupdate -l`  # No listing is a good sign.
                              -    * If Xcode or Tools upgrades are listed, use "Software Upgrade" to install them.
                              -6. `xcode-select -version`  # Should return `xcode-select version 2370` or later.
                              -7. `xcode-select -print-path`  # Should return `/Applications/Xcode.app/Contents/Developer`
                              -8. Try the [_acid test_ steps above](#The-acid-test) to see if your Mac is ready.
                              -9. If the _acid test_ does _not_ pass then...
                              -10. `sudo xcode-select --reset`  # Enter root password.  No output is normal.
                              -11. Repeat step 7 above.  Is the path different this time?  Repeat the _acid test_.
                              -
                              -### Installing `node-gyp` using the Xcode Command Line Tools via `xcode-select --install`
                              -1. If the _acid test_ has not succeeded, then try `xcode-select --install`
                              -2. If the installation command returns `xcode-select: error: command line tools are already installed, use "Software Update" to install updates`, continue to [remove and reinstall](#i-did-all-that-and-the-acid-test-still-does-not-pass--)
                              -3. Wait until the install process is _complete_.
                              -4. `softwareupdate -l`  # No listing is a good sign.
                              -    * If Xcode or Tools upgrades are listed, use "Software Update" to install them.
                              -5. `xcode-select -version`  # Should return `xcode-select version 2370` or later.
                              -6. `xcode-select -print-path`  # Should return `/Library/Developer/CommandLineTools`
                              -7. Try the [_acid test_ steps above](#The-acid-test) to see if your Mac is ready.
                              -8. If the _acid test_ does _not_ pass then...
                              -9. `sudo xcode-select --reset`  # Enter root password.  No output is normal.
                              -10. Repeat step 5 above.  Is the path different this time?  Repeat the _acid test_.
                              -
                              -### Installing `node-gyp` using the Xcode Command Line Tools via manual download
                              -1. Download the appropriate version of the "Command Line Tools for Xcode" for your version of Catalina from . As of MacOS 10.15.5, that's [Command_Line_Tools_for_Xcode_11.5.dmg](https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_11.5/Command_Line_Tools_for_Xcode_11.5.dmg)
                              -2. Install the package.
                              -3. Run the [_acid test_ steps above](#The-acid-test).
                              -
                              -### I did all that and the acid test still does not pass :-(
                              -1. `sudo rm -rf $(xcode-select -print-path)`  # Enter root password.  No output is normal.
                              -2. `sudo rm -rf /Library/Developer/CommandLineTools`  # Enter root password.
                              -3. `sudo xcode-select --reset`
                              -4. `xcode-select --install`
                              -5. If the [_acid test_ steps above](#The-acid-test) still does _not_ pass then...
                              -6. `npm explore npm -g -- npm install node-gyp@latest`
                              -7. `npm explore npm -g -- npm explore npm-lifecycle -- npm install node-gyp@latest`
                              -8. If the _acid test_ still does _not_ pass then...
                              -9. Add a comment to https://github.com/nodejs/node-gyp/issues/1927 so we can improve.
                              -
                              -Lessons learned from:
                              -* https://github.com/nodejs/node-gyp/issues/1779
                              -* https://github.com/nodejs/node-gyp/issues/1861
                              -* https://github.com/nodejs/node-gyp/issues/1927 and elsewhere
                              -* Thanks to @rrrix for discovering Solution 3
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/abbrev/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/abbrev/LICENSE
                              deleted file mode 100644
                              index 9bcfa9d7d8d26e..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/abbrev/LICENSE
                              +++ /dev/null
                              @@ -1,46 +0,0 @@
                              -This software is dual-licensed under the ISC and MIT licenses.
                              -You may use this software under EITHER of the following licenses.
                              -
                              -----------
                              -
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              -
                              -----------
                              -
                              -Copyright Isaac Z. Schlueter and Contributors
                              -All rights reserved.
                              -
                              -Permission is hereby granted, free of charge, to any person
                              -obtaining a copy of this software and associated documentation
                              -files (the "Software"), to deal in the Software without
                              -restriction, including without limitation the rights to use,
                              -copy, modify, merge, publish, distribute, sublicense, and/or sell
                              -copies of the Software, and to permit persons to whom the
                              -Software is furnished to do so, subject to the following
                              -conditions:
                              -
                              -The above copyright notice and this permission notice shall be
                              -included in all copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
                              -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
                              -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
                              -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
                              -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
                              -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
                              -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
                              -OTHER DEALINGS IN THE SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/abbrev/abbrev.js b/deps/npm/node_modules/node-gyp/node_modules/abbrev/abbrev.js
                              deleted file mode 100644
                              index 7b1dc5d67694a2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/abbrev/abbrev.js
                              +++ /dev/null
                              @@ -1,61 +0,0 @@
                              -module.exports = exports = abbrev.abbrev = abbrev
                              -
                              -abbrev.monkeyPatch = monkeyPatch
                              -
                              -function monkeyPatch () {
                              -  Object.defineProperty(Array.prototype, 'abbrev', {
                              -    value: function () { return abbrev(this) },
                              -    enumerable: false, configurable: true, writable: true
                              -  })
                              -
                              -  Object.defineProperty(Object.prototype, 'abbrev', {
                              -    value: function () { return abbrev(Object.keys(this)) },
                              -    enumerable: false, configurable: true, writable: true
                              -  })
                              -}
                              -
                              -function abbrev (list) {
                              -  if (arguments.length !== 1 || !Array.isArray(list)) {
                              -    list = Array.prototype.slice.call(arguments, 0)
                              -  }
                              -  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
                              -    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
                              -  }
                              -
                              -  // sort them lexicographically, so that they're next to their nearest kin
                              -  args = args.sort(lexSort)
                              -
                              -  // walk through each, seeing how much it has in common with the next and previous
                              -  var abbrevs = {}
                              -    , prev = ""
                              -  for (var i = 0, l = args.length ; i < l ; i ++) {
                              -    var current = args[i]
                              -      , next = args[i + 1] || ""
                              -      , nextMatches = true
                              -      , prevMatches = true
                              -    if (current === next) continue
                              -    for (var j = 0, cl = current.length ; j < cl ; j ++) {
                              -      var curChar = current.charAt(j)
                              -      nextMatches = nextMatches && curChar === next.charAt(j)
                              -      prevMatches = prevMatches && curChar === prev.charAt(j)
                              -      if (!nextMatches && !prevMatches) {
                              -        j ++
                              -        break
                              -      }
                              -    }
                              -    prev = current
                              -    if (j === cl) {
                              -      abbrevs[current] = current
                              -      continue
                              -    }
                              -    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
                              -      abbrevs[a] = current
                              -      a += current.charAt(j)
                              -    }
                              -  }
                              -  return abbrevs
                              -}
                              -
                              -function lexSort (a, b) {
                              -  return a === b ? 0 : a > b ? 1 : -1
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/abbrev/package.json b/deps/npm/node_modules/node-gyp/node_modules/abbrev/package.json
                              deleted file mode 100644
                              index bf4e8015bba9d5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/abbrev/package.json
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -{
                              -  "name": "abbrev",
                              -  "version": "1.1.1",
                              -  "description": "Like ruby's abbrev module, but in js",
                              -  "author": "Isaac Z. Schlueter ",
                              -  "main": "abbrev.js",
                              -  "scripts": {
                              -    "test": "tap test.js --100",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "postpublish": "git push origin --all; git push origin --tags"
                              -  },
                              -  "repository": "http://github.com/isaacs/abbrev-js",
                              -  "license": "ISC",
                              -  "devDependencies": {
                              -    "tap": "^10.1"
                              -  },
                              -  "files": [
                              -    "abbrev.js"
                              -  ]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/LICENSE.md b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/LICENSE.md
                              deleted file mode 100644
                              index 845be76f64e789..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/LICENSE.md
                              +++ /dev/null
                              @@ -1,18 +0,0 @@
                              -ISC License
                              -
                              -Copyright npm, Inc.
                              -
                              -Permission to use, copy, modify, and/or distribute this
                              -software for any purpose with or without fee is hereby
                              -granted, provided that the above copyright notice and this
                              -permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND NPM DISCLAIMS ALL
                              -WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
                              -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
                              -EVENT SHALL NPM BE LIABLE FOR ANY SPECIAL, DIRECT,
                              -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                              -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
                              -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
                              -USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/index.js b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/index.js
                              deleted file mode 100644
                              index 57d8743fdad177..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/index.js
                              +++ /dev/null
                              @@ -1,4 +0,0 @@
                              -'use strict'
                              -exports.TrackerGroup = require('./tracker-group.js')
                              -exports.Tracker = require('./tracker.js')
                              -exports.TrackerStream = require('./tracker-stream.js')
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-base.js b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-base.js
                              deleted file mode 100644
                              index 6f436875578a7a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-base.js
                              +++ /dev/null
                              @@ -1,11 +0,0 @@
                              -'use strict'
                              -var EventEmitter = require('events').EventEmitter
                              -var util = require('util')
                              -
                              -var trackerId = 0
                              -var TrackerBase = module.exports = function (name) {
                              -  EventEmitter.call(this)
                              -  this.id = ++trackerId
                              -  this.name = name
                              -}
                              -util.inherits(TrackerBase, EventEmitter)
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-group.js b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-group.js
                              deleted file mode 100644
                              index a3c7af804c4d3b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-group.js
                              +++ /dev/null
                              @@ -1,116 +0,0 @@
                              -'use strict'
                              -var util = require('util')
                              -var TrackerBase = require('./tracker-base.js')
                              -var Tracker = require('./tracker.js')
                              -var TrackerStream = require('./tracker-stream.js')
                              -
                              -var TrackerGroup = module.exports = function (name) {
                              -  TrackerBase.call(this, name)
                              -  this.parentGroup = null
                              -  this.trackers = []
                              -  this.completion = {}
                              -  this.weight = {}
                              -  this.totalWeight = 0
                              -  this.finished = false
                              -  this.bubbleChange = bubbleChange(this)
                              -}
                              -util.inherits(TrackerGroup, TrackerBase)
                              -
                              -function bubbleChange (trackerGroup) {
                              -  return function (name, completed, tracker) {
                              -    trackerGroup.completion[tracker.id] = completed
                              -    if (trackerGroup.finished) {
                              -      return
                              -    }
                              -    trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)
                              -  }
                              -}
                              -
                              -TrackerGroup.prototype.nameInTree = function () {
                              -  var names = []
                              -  var from = this
                              -  while (from) {
                              -    names.unshift(from.name)
                              -    from = from.parentGroup
                              -  }
                              -  return names.join('/')
                              -}
                              -
                              -TrackerGroup.prototype.addUnit = function (unit, weight) {
                              -  if (unit.addUnit) {
                              -    var toTest = this
                              -    while (toTest) {
                              -      if (unit === toTest) {
                              -        throw new Error(
                              -          'Attempted to add tracker group ' +
                              -          unit.name + ' to tree that already includes it ' +
                              -          this.nameInTree(this))
                              -      }
                              -      toTest = toTest.parentGroup
                              -    }
                              -    unit.parentGroup = this
                              -  }
                              -  this.weight[unit.id] = weight || 1
                              -  this.totalWeight += this.weight[unit.id]
                              -  this.trackers.push(unit)
                              -  this.completion[unit.id] = unit.completed()
                              -  unit.on('change', this.bubbleChange)
                              -  if (!this.finished) {
                              -    this.emit('change', unit.name, this.completion[unit.id], unit)
                              -  }
                              -  return unit
                              -}
                              -
                              -TrackerGroup.prototype.completed = function () {
                              -  if (this.trackers.length === 0) {
                              -    return 0
                              -  }
                              -  var valPerWeight = 1 / this.totalWeight
                              -  var completed = 0
                              -  for (var ii = 0; ii < this.trackers.length; ii++) {
                              -    var trackerId = this.trackers[ii].id
                              -    completed +=
                              -      valPerWeight * this.weight[trackerId] * this.completion[trackerId]
                              -  }
                              -  return completed
                              -}
                              -
                              -TrackerGroup.prototype.newGroup = function (name, weight) {
                              -  return this.addUnit(new TrackerGroup(name), weight)
                              -}
                              -
                              -TrackerGroup.prototype.newItem = function (name, todo, weight) {
                              -  return this.addUnit(new Tracker(name, todo), weight)
                              -}
                              -
                              -TrackerGroup.prototype.newStream = function (name, todo, weight) {
                              -  return this.addUnit(new TrackerStream(name, todo), weight)
                              -}
                              -
                              -TrackerGroup.prototype.finish = function () {
                              -  this.finished = true
                              -  if (!this.trackers.length) {
                              -    this.addUnit(new Tracker(), 1, true)
                              -  }
                              -  for (var ii = 0; ii < this.trackers.length; ii++) {
                              -    var tracker = this.trackers[ii]
                              -    tracker.finish()
                              -    tracker.removeListener('change', this.bubbleChange)
                              -  }
                              -  this.emit('change', this.name, 1, this)
                              -}
                              -
                              -var buffer = '                                  '
                              -TrackerGroup.prototype.debug = function (depth) {
                              -  depth = depth || 0
                              -  var indent = depth ? buffer.slice(0, depth) : ''
                              -  var output = indent + (this.name || 'top') + ': ' + this.completed() + '\n'
                              -  this.trackers.forEach(function (tracker) {
                              -    if (tracker instanceof TrackerGroup) {
                              -      output += tracker.debug(depth + 1)
                              -    } else {
                              -      output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\n'
                              -    }
                              -  })
                              -  return output
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-stream.js b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-stream.js
                              deleted file mode 100644
                              index e1cf85055702a7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker-stream.js
                              +++ /dev/null
                              @@ -1,36 +0,0 @@
                              -'use strict'
                              -var util = require('util')
                              -var stream = require('readable-stream')
                              -var delegate = require('delegates')
                              -var Tracker = require('./tracker.js')
                              -
                              -var TrackerStream = module.exports = function (name, size, options) {
                              -  stream.Transform.call(this, options)
                              -  this.tracker = new Tracker(name, size)
                              -  this.name = name
                              -  this.id = this.tracker.id
                              -  this.tracker.on('change', delegateChange(this))
                              -}
                              -util.inherits(TrackerStream, stream.Transform)
                              -
                              -function delegateChange (trackerStream) {
                              -  return function (name, completion, tracker) {
                              -    trackerStream.emit('change', name, completion, trackerStream)
                              -  }
                              -}
                              -
                              -TrackerStream.prototype._transform = function (data, encoding, cb) {
                              -  this.tracker.completeWork(data.length ? data.length : 1)
                              -  this.push(data)
                              -  cb()
                              -}
                              -
                              -TrackerStream.prototype._flush = function (cb) {
                              -  this.tracker.finish()
                              -  cb()
                              -}
                              -
                              -delegate(TrackerStream.prototype, 'tracker')
                              -  .method('completed')
                              -  .method('addWork')
                              -  .method('finish')
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker.js b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker.js
                              deleted file mode 100644
                              index a8f8b3ba013915..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/lib/tracker.js
                              +++ /dev/null
                              @@ -1,32 +0,0 @@
                              -'use strict'
                              -var util = require('util')
                              -var TrackerBase = require('./tracker-base.js')
                              -
                              -var Tracker = module.exports = function (name, todo) {
                              -  TrackerBase.call(this, name)
                              -  this.workDone = 0
                              -  this.workTodo = todo || 0
                              -}
                              -util.inherits(Tracker, TrackerBase)
                              -
                              -Tracker.prototype.completed = function () {
                              -  return this.workTodo === 0 ? 0 : this.workDone / this.workTodo
                              -}
                              -
                              -Tracker.prototype.addWork = function (work) {
                              -  this.workTodo += work
                              -  this.emit('change', this.name, this.completed(), this)
                              -}
                              -
                              -Tracker.prototype.completeWork = function (work) {
                              -  this.workDone += work
                              -  if (this.workDone > this.workTodo) {
                              -    this.workDone = this.workTodo
                              -  }
                              -  this.emit('change', this.name, this.completed(), this)
                              -}
                              -
                              -Tracker.prototype.finish = function () {
                              -  this.workTodo = this.workDone = 1
                              -  this.emit('change', this.name, 1, this)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/package.json
                              deleted file mode 100644
                              index cc3d7504299fa2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/are-we-there-yet/package.json
                              +++ /dev/null
                              @@ -1,56 +0,0 @@
                              -{
                              -  "name": "are-we-there-yet",
                              -  "version": "3.0.1",
                              -  "description": "Keep track of the overall completion of many disparate processes",
                              -  "main": "lib/index.js",
                              -  "scripts": {
                              -    "test": "tap",
                              -    "npmclilint": "npmcli-lint",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "posttest": "npm run lint",
                              -    "postsnap": "npm run lintfix --",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "snap": "tap",
                              -    "postlint": "template-oss-check",
                              -    "template-oss-apply": "template-oss-apply --force"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/are-we-there-yet.git"
                              -  },
                              -  "author": "GitHub Inc.",
                              -  "license": "ISC",
                              -  "bugs": {
                              -    "url": "https://github.com/npm/are-we-there-yet/issues"
                              -  },
                              -  "homepage": "https://github.com/npm/are-we-there-yet",
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^3.0.1",
                              -    "@npmcli/template-oss": "3.5.0",
                              -    "tap": "^16.0.1"
                              -  },
                              -  "dependencies": {
                              -    "delegates": "^1.0.0",
                              -    "readable-stream": "^3.6.0"
                              -  },
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "engines": {
                              -    "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
                              -  },
                              -  "tap": {
                              -    "branches": 68,
                              -    "statements": 92,
                              -    "functions": 86,
                              -    "lines": 92
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "3.5.0"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/LICENSE
                              deleted file mode 100644
                              index de3226673c3874..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/LICENSE
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -MIT License
                              -
                              -Copyright (c) 2013 Julian Gruber 
                              -
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to deal
                              -in the Software without restriction, including without limitation the rights
                              -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                              -copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in all
                              -copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                              -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
                              -SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/index.js b/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/index.js
                              deleted file mode 100644
                              index 2b6f4f85c951fc..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/index.js
                              +++ /dev/null
                              @@ -1,200 +0,0 @@
                              -var concatMap = require('concat-map');
                              -var balanced = require('balanced-match');
                              -
                              -module.exports = expandTop;
                              -
                              -var escSlash = '\0SLASH'+Math.random()+'\0';
                              -var escOpen = '\0OPEN'+Math.random()+'\0';
                              -var escClose = '\0CLOSE'+Math.random()+'\0';
                              -var escComma = '\0COMMA'+Math.random()+'\0';
                              -var escPeriod = '\0PERIOD'+Math.random()+'\0';
                              -
                              -function numeric(str) {
                              -  return parseInt(str, 10) == str
                              -    ? parseInt(str, 10)
                              -    : str.charCodeAt(0);
                              -}
                              -
                              -function escapeBraces(str) {
                              -  return str.split('\\\\').join(escSlash)
                              -            .split('\\{').join(escOpen)
                              -            .split('\\}').join(escClose)
                              -            .split('\\,').join(escComma)
                              -            .split('\\.').join(escPeriod);
                              -}
                              -
                              -function unescapeBraces(str) {
                              -  return str.split(escSlash).join('\\')
                              -            .split(escOpen).join('{')
                              -            .split(escClose).join('}')
                              -            .split(escComma).join(',')
                              -            .split(escPeriod).join('.');
                              -}
                              -
                              -
                              -// Basically just str.split(","), but handling cases
                              -// where we have nested braced sections, which should be
                              -// treated as individual members, like {a,{b,c},d}
                              -function parseCommaParts(str) {
                              -  if (!str)
                              -    return [''];
                              -
                              -  var parts = [];
                              -  var m = balanced('{', '}', str);
                              -
                              -  if (!m)
                              -    return str.split(',');
                              -
                              -  var pre = m.pre;
                              -  var body = m.body;
                              -  var post = m.post;
                              -  var p = pre.split(',');
                              -
                              -  p[p.length-1] += '{' + body + '}';
                              -  var postParts = parseCommaParts(post);
                              -  if (post.length) {
                              -    p[p.length-1] += postParts.shift();
                              -    p.push.apply(p, postParts);
                              -  }
                              -
                              -  parts.push.apply(parts, p);
                              -
                              -  return parts;
                              -}
                              -
                              -function expandTop(str) {
                              -  if (!str)
                              -    return [];
                              -
                              -  // I don't know why Bash 4.3 does this, but it does.
                              -  // Anything starting with {} will have the first two bytes preserved
                              -  // but *only* at the top level, so {},a}b will not expand to anything,
                              -  // but a{},b}c will be expanded to [a}c,abc].
                              -  // One could argue that this is a bug in Bash, but since the goal of
                              -  // this module is to match Bash's rules, we escape a leading {}
                              -  if (str.substr(0, 2) === '{}') {
                              -    str = '\\{\\}' + str.substr(2);
                              -  }
                              -
                              -  return expand(escapeBraces(str), true).map(unescapeBraces);
                              -}
                              -
                              -function identity(e) {
                              -  return e;
                              -}
                              -
                              -function embrace(str) {
                              -  return '{' + str + '}';
                              -}
                              -function isPadded(el) {
                              -  return /^-?0\d/.test(el);
                              -}
                              -
                              -function lte(i, y) {
                              -  return i <= y;
                              -}
                              -function gte(i, y) {
                              -  return i >= y;
                              -}
                              -
                              -function expand(str, isTop) {
                              -  var expansions = [];
                              -
                              -  var m = balanced('{', '}', str);
                              -  if (!m || /\$$/.test(m.pre)) return [str];
                              -
                              -  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
                              -  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
                              -  var isSequence = isNumericSequence || isAlphaSequence;
                              -  var isOptions = m.body.indexOf(',') >= 0;
                              -  if (!isSequence && !isOptions) {
                              -    // {a},b}
                              -    if (m.post.match(/,.*\}/)) {
                              -      str = m.pre + '{' + m.body + escClose + m.post;
                              -      return expand(str);
                              -    }
                              -    return [str];
                              -  }
                              -
                              -  var n;
                              -  if (isSequence) {
                              -    n = m.body.split(/\.\./);
                              -  } else {
                              -    n = parseCommaParts(m.body);
                              -    if (n.length === 1) {
                              -      // x{{a,b}}y ==> x{a}y x{b}y
                              -      n = expand(n[0], false).map(embrace);
                              -      if (n.length === 1) {
                              -        var post = m.post.length
                              -          ? expand(m.post, false)
                              -          : [''];
                              -        return post.map(function(p) {
                              -          return m.pre + n[0] + p;
                              -        });
                              -      }
                              -    }
                              -  }
                              -
                              -  // at this point, n is the parts, and we know it's not a comma set
                              -  // with a single entry.
                              -
                              -  // no need to expand pre, since it is guaranteed to be free of brace-sets
                              -  var pre = m.pre;
                              -  var post = m.post.length
                              -    ? expand(m.post, false)
                              -    : [''];
                              -
                              -  var N;
                              -
                              -  if (isSequence) {
                              -    var x = numeric(n[0]);
                              -    var y = numeric(n[1]);
                              -    var width = Math.max(n[0].length, n[1].length)
                              -    var incr = n.length == 3
                              -      ? Math.abs(numeric(n[2]))
                              -      : 1;
                              -    var test = lte;
                              -    var reverse = y < x;
                              -    if (reverse) {
                              -      incr *= -1;
                              -      test = gte;
                              -    }
                              -    var pad = n.some(isPadded);
                              -
                              -    N = [];
                              -
                              -    for (var i = x; test(i, y); i += incr) {
                              -      var c;
                              -      if (isAlphaSequence) {
                              -        c = String.fromCharCode(i);
                              -        if (c === '\\')
                              -          c = '';
                              -      } else {
                              -        c = String(i);
                              -        if (pad) {
                              -          var need = width - c.length;
                              -          if (need > 0) {
                              -            var z = new Array(need + 1).join('0');
                              -            if (i < 0)
                              -              c = '-' + z + c.slice(1);
                              -            else
                              -              c = z + c;
                              -          }
                              -        }
                              -      }
                              -      N.push(c);
                              -    }
                              -  } else {
                              -    N = concatMap(n, function(el) { return expand(el, false) });
                              -  }
                              -
                              -  for (var j = 0; j < N.length; j++) {
                              -    for (var k = 0; k < post.length; k++) {
                              -      var expansion = pre + N[j] + post[k];
                              -      if (!isTop || isSequence || expansion)
                              -        expansions.push(expansion);
                              -    }
                              -  }
                              -
                              -  return expansions;
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/package.json b/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/package.json
                              deleted file mode 100644
                              index a18faa8fd67b82..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/brace-expansion/package.json
                              +++ /dev/null
                              @@ -1,47 +0,0 @@
                              -{
                              -  "name": "brace-expansion",
                              -  "description": "Brace expansion as known from sh/bash",
                              -  "version": "1.1.11",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/juliangruber/brace-expansion.git"
                              -  },
                              -  "homepage": "https://github.com/juliangruber/brace-expansion",
                              -  "main": "index.js",
                              -  "scripts": {
                              -    "test": "tape test/*.js",
                              -    "gentest": "bash test/generate.sh",
                              -    "bench": "matcha test/perf/bench.js"
                              -  },
                              -  "dependencies": {
                              -    "balanced-match": "^1.0.0",
                              -    "concat-map": "0.0.1"
                              -  },
                              -  "devDependencies": {
                              -    "matcha": "^0.7.0",
                              -    "tape": "^4.6.0"
                              -  },
                              -  "keywords": [],
                              -  "author": {
                              -    "name": "Julian Gruber",
                              -    "email": "mail@juliangruber.com",
                              -    "url": "http://juliangruber.com"
                              -  },
                              -  "license": "MIT",
                              -  "testling": {
                              -    "files": "test/*.js",
                              -    "browsers": [
                              -      "ie/8..latest",
                              -      "firefox/20..latest",
                              -      "firefox/nightly",
                              -      "chrome/25..latest",
                              -      "chrome/canary",
                              -      "opera/12..latest",
                              -      "opera/next",
                              -      "safari/5.1..latest",
                              -      "ipad/6.0..latest",
                              -      "iphone/6.0..latest",
                              -      "android-browser/4.2..latest"
                              -    ]
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/LICENSE.md b/deps/npm/node_modules/node-gyp/node_modules/cacache/LICENSE.md
                              deleted file mode 100644
                              index 8d28acf866d932..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/LICENSE.md
                              +++ /dev/null
                              @@ -1,16 +0,0 @@
                              -ISC License
                              -
                              -Copyright (c) npm, Inc.
                              -
                              -Permission to use, copy, modify, and/or distribute this software for
                              -any purpose with or without fee is hereby granted, provided that the
                              -above copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS
                              -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
                              -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
                              -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
                              -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
                              -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
                              -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
                              -USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/path.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/path.js
                              deleted file mode 100644
                              index ad5a76a4f73f26..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/path.js
                              +++ /dev/null
                              @@ -1,29 +0,0 @@
                              -'use strict'
                              -
                              -const contentVer = require('../../package.json')['cache-version'].content
                              -const hashToSegments = require('../util/hash-to-segments')
                              -const path = require('path')
                              -const ssri = require('ssri')
                              -
                              -// Current format of content file path:
                              -//
                              -// sha512-BaSE64Hex= ->
                              -// ~/.my-cache/content-v2/sha512/ba/da/55deadbeefc0ffee
                              -//
                              -module.exports = contentPath
                              -
                              -function contentPath (cache, integrity) {
                              -  const sri = ssri.parse(integrity, { single: true })
                              -  // contentPath is the *strongest* algo given
                              -  return path.join(
                              -    contentDir(cache),
                              -    sri.algorithm,
                              -    ...hashToSegments(sri.hexDigest())
                              -  )
                              -}
                              -
                              -module.exports.contentDir = contentDir
                              -
                              -function contentDir (cache) {
                              -  return path.join(cache, `content-v${contentVer}`)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/read.js
                              deleted file mode 100644
                              index f41b539df65dce..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/read.js
                              +++ /dev/null
                              @@ -1,166 +0,0 @@
                              -'use strict'
                              -
                              -const fs = require('fs/promises')
                              -const fsm = require('fs-minipass')
                              -const ssri = require('ssri')
                              -const contentPath = require('./path')
                              -const Pipeline = require('minipass-pipeline')
                              -
                              -module.exports = read
                              -
                              -const MAX_SINGLE_READ_SIZE = 64 * 1024 * 1024
                              -async function read (cache, integrity, opts = {}) {
                              -  const { size } = opts
                              -  const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {
                              -    // get size
                              -    const stat = await fs.stat(cpath)
                              -    return { stat, cpath, sri }
                              -  })
                              -  if (typeof size === 'number' && stat.size !== size) {
                              -    throw sizeError(size, stat.size)
                              -  }
                              -
                              -  if (stat.size > MAX_SINGLE_READ_SIZE) {
                              -    return readPipeline(cpath, stat.size, sri, new Pipeline()).concat()
                              -  }
                              -
                              -  const data = await fs.readFile(cpath, { encoding: null })
                              -  if (!ssri.checkData(data, sri)) {
                              -    throw integrityError(sri, cpath)
                              -  }
                              -
                              -  return data
                              -}
                              -
                              -const readPipeline = (cpath, size, sri, stream) => {
                              -  stream.push(
                              -    new fsm.ReadStream(cpath, {
                              -      size,
                              -      readSize: MAX_SINGLE_READ_SIZE,
                              -    }),
                              -    ssri.integrityStream({
                              -      integrity: sri,
                              -      size,
                              -    })
                              -  )
                              -  return stream
                              -}
                              -
                              -module.exports.stream = readStream
                              -module.exports.readStream = readStream
                              -
                              -function readStream (cache, integrity, opts = {}) {
                              -  const { size } = opts
                              -  const stream = new Pipeline()
                              -  // Set all this up to run on the stream and then just return the stream
                              -  Promise.resolve().then(async () => {
                              -    const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {
                              -      // just stat to ensure it exists
                              -      const stat = await fs.stat(cpath)
                              -      return { stat, cpath, sri }
                              -    })
                              -    if (typeof size === 'number' && size !== stat.size) {
                              -      return stream.emit('error', sizeError(size, stat.size))
                              -    }
                              -
                              -    return readPipeline(cpath, stat.size, sri, stream)
                              -  }).catch(err => stream.emit('error', err))
                              -
                              -  return stream
                              -}
                              -
                              -module.exports.copy = copy
                              -
                              -function copy (cache, integrity, dest) {
                              -  return withContentSri(cache, integrity, (cpath, sri) => {
                              -    return fs.copyFile(cpath, dest)
                              -  })
                              -}
                              -
                              -module.exports.hasContent = hasContent
                              -
                              -async function hasContent (cache, integrity) {
                              -  if (!integrity) {
                              -    return false
                              -  }
                              -
                              -  try {
                              -    return await withContentSri(cache, integrity, async (cpath, sri) => {
                              -      const stat = await fs.stat(cpath)
                              -      return { size: stat.size, sri, stat }
                              -    })
                              -  } catch (err) {
                              -    if (err.code === 'ENOENT') {
                              -      return false
                              -    }
                              -
                              -    if (err.code === 'EPERM') {
                              -      /* istanbul ignore else */
                              -      if (process.platform !== 'win32') {
                              -        throw err
                              -      } else {
                              -        return false
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -async function withContentSri (cache, integrity, fn) {
                              -  const sri = ssri.parse(integrity)
                              -  // If `integrity` has multiple entries, pick the first digest
                              -  // with available local data.
                              -  const algo = sri.pickAlgorithm()
                              -  const digests = sri[algo]
                              -
                              -  if (digests.length <= 1) {
                              -    const cpath = contentPath(cache, digests[0])
                              -    return fn(cpath, digests[0])
                              -  } else {
                              -    // Can't use race here because a generic error can happen before
                              -    // a ENOENT error, and can happen before a valid result
                              -    const results = await Promise.all(digests.map(async (meta) => {
                              -      try {
                              -        return await withContentSri(cache, meta, fn)
                              -      } catch (err) {
                              -        if (err.code === 'ENOENT') {
                              -          return Object.assign(
                              -            new Error('No matching content found for ' + sri.toString()),
                              -            { code: 'ENOENT' }
                              -          )
                              -        }
                              -        return err
                              -      }
                              -    }))
                              -    // Return the first non error if it is found
                              -    const result = results.find((r) => !(r instanceof Error))
                              -    if (result) {
                              -      return result
                              -    }
                              -
                              -    // Throw the No matching content found error
                              -    const enoentError = results.find((r) => r.code === 'ENOENT')
                              -    if (enoentError) {
                              -      throw enoentError
                              -    }
                              -
                              -    // Throw generic error
                              -    throw results.find((r) => r instanceof Error)
                              -  }
                              -}
                              -
                              -function sizeError (expected, found) {
                              -  /* eslint-disable-next-line max-len */
                              -  const err = new Error(`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
                              -  err.expected = expected
                              -  err.found = found
                              -  err.code = 'EBADSIZE'
                              -  return err
                              -}
                              -
                              -function integrityError (sri, path) {
                              -  const err = new Error(`Integrity verification failed for ${sri} (${path})`)
                              -  err.code = 'EINTEGRITY'
                              -  err.sri = sri
                              -  err.path = path
                              -  return err
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/rm.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/rm.js
                              deleted file mode 100644
                              index ce58d679e4cb25..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/rm.js
                              +++ /dev/null
                              @@ -1,18 +0,0 @@
                              -'use strict'
                              -
                              -const fs = require('fs/promises')
                              -const contentPath = require('./path')
                              -const { hasContent } = require('./read')
                              -
                              -module.exports = rm
                              -
                              -async function rm (cache, integrity) {
                              -  const content = await hasContent(cache, integrity)
                              -  // ~pretty~ sure we can't end up with a content lacking sri, but be safe
                              -  if (content && content.sri) {
                              -    await fs.rm(contentPath(cache, content.sri), { recursive: true, force: true })
                              -    return true
                              -  } else {
                              -    return false
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/write.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/write.js
                              deleted file mode 100644
                              index 71461465812878..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/content/write.js
                              +++ /dev/null
                              @@ -1,205 +0,0 @@
                              -'use strict'
                              -
                              -const events = require('events')
                              -
                              -const contentPath = require('./path')
                              -const fs = require('fs/promises')
                              -const { moveFile } = require('@npmcli/fs')
                              -const { Minipass } = require('minipass')
                              -const Pipeline = require('minipass-pipeline')
                              -const Flush = require('minipass-flush')
                              -const path = require('path')
                              -const ssri = require('ssri')
                              -const uniqueFilename = require('unique-filename')
                              -const fsm = require('fs-minipass')
                              -
                              -module.exports = write
                              -
                              -// Cache of move operations in process so we don't duplicate
                              -const moveOperations = new Map()
                              -
                              -async function write (cache, data, opts = {}) {
                              -  const { algorithms, size, integrity } = opts
                              -
                              -  if (typeof size === 'number' && data.length !== size) {
                              -    throw sizeError(size, data.length)
                              -  }
                              -
                              -  const sri = ssri.fromData(data, algorithms ? { algorithms } : {})
                              -  if (integrity && !ssri.checkData(data, integrity, opts)) {
                              -    throw checksumError(integrity, sri)
                              -  }
                              -
                              -  for (const algo in sri) {
                              -    const tmp = await makeTmp(cache, opts)
                              -    const hash = sri[algo].toString()
                              -    try {
                              -      await fs.writeFile(tmp.target, data, { flag: 'wx' })
                              -      await moveToDestination(tmp, cache, hash, opts)
                              -    } finally {
                              -      if (!tmp.moved) {
                              -        await fs.rm(tmp.target, { recursive: true, force: true })
                              -      }
                              -    }
                              -  }
                              -  return { integrity: sri, size: data.length }
                              -}
                              -
                              -module.exports.stream = writeStream
                              -
                              -// writes proxied to the 'inputStream' that is passed to the Promise
                              -// 'end' is deferred until content is handled.
                              -class CacacheWriteStream extends Flush {
                              -  constructor (cache, opts) {
                              -    super()
                              -    this.opts = opts
                              -    this.cache = cache
                              -    this.inputStream = new Minipass()
                              -    this.inputStream.on('error', er => this.emit('error', er))
                              -    this.inputStream.on('drain', () => this.emit('drain'))
                              -    this.handleContentP = null
                              -  }
                              -
                              -  write (chunk, encoding, cb) {
                              -    if (!this.handleContentP) {
                              -      this.handleContentP = handleContent(
                              -        this.inputStream,
                              -        this.cache,
                              -        this.opts
                              -      )
                              -    }
                              -    return this.inputStream.write(chunk, encoding, cb)
                              -  }
                              -
                              -  flush (cb) {
                              -    this.inputStream.end(() => {
                              -      if (!this.handleContentP) {
                              -        const e = new Error('Cache input stream was empty')
                              -        e.code = 'ENODATA'
                              -        // empty streams are probably emitting end right away.
                              -        // defer this one tick by rejecting a promise on it.
                              -        return Promise.reject(e).catch(cb)
                              -      }
                              -      // eslint-disable-next-line promise/catch-or-return
                              -      this.handleContentP.then(
                              -        (res) => {
                              -          res.integrity && this.emit('integrity', res.integrity)
                              -          // eslint-disable-next-line promise/always-return
                              -          res.size !== null && this.emit('size', res.size)
                              -          cb()
                              -        },
                              -        (er) => cb(er)
                              -      )
                              -    })
                              -  }
                              -}
                              -
                              -function writeStream (cache, opts = {}) {
                              -  return new CacacheWriteStream(cache, opts)
                              -}
                              -
                              -async function handleContent (inputStream, cache, opts) {
                              -  const tmp = await makeTmp(cache, opts)
                              -  try {
                              -    const res = await pipeToTmp(inputStream, cache, tmp.target, opts)
                              -    await moveToDestination(
                              -      tmp,
                              -      cache,
                              -      res.integrity,
                              -      opts
                              -    )
                              -    return res
                              -  } finally {
                              -    if (!tmp.moved) {
                              -      await fs.rm(tmp.target, { recursive: true, force: true })
                              -    }
                              -  }
                              -}
                              -
                              -async function pipeToTmp (inputStream, cache, tmpTarget, opts) {
                              -  const outStream = new fsm.WriteStream(tmpTarget, {
                              -    flags: 'wx',
                              -  })
                              -
                              -  if (opts.integrityEmitter) {
                              -    // we need to create these all simultaneously since they can fire in any order
                              -    const [integrity, size] = await Promise.all([
                              -      events.once(opts.integrityEmitter, 'integrity').then(res => res[0]),
                              -      events.once(opts.integrityEmitter, 'size').then(res => res[0]),
                              -      new Pipeline(inputStream, outStream).promise(),
                              -    ])
                              -    return { integrity, size }
                              -  }
                              -
                              -  let integrity
                              -  let size
                              -  const hashStream = ssri.integrityStream({
                              -    integrity: opts.integrity,
                              -    algorithms: opts.algorithms,
                              -    size: opts.size,
                              -  })
                              -  hashStream.on('integrity', i => {
                              -    integrity = i
                              -  })
                              -  hashStream.on('size', s => {
                              -    size = s
                              -  })
                              -
                              -  const pipeline = new Pipeline(inputStream, hashStream, outStream)
                              -  await pipeline.promise()
                              -  return { integrity, size }
                              -}
                              -
                              -async function makeTmp (cache, opts) {
                              -  const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)
                              -  await fs.mkdir(path.dirname(tmpTarget), { recursive: true })
                              -  return {
                              -    target: tmpTarget,
                              -    moved: false,
                              -  }
                              -}
                              -
                              -async function moveToDestination (tmp, cache, sri, opts) {
                              -  const destination = contentPath(cache, sri)
                              -  const destDir = path.dirname(destination)
                              -  if (moveOperations.has(destination)) {
                              -    return moveOperations.get(destination)
                              -  }
                              -  moveOperations.set(
                              -    destination,
                              -    fs.mkdir(destDir, { recursive: true })
                              -      .then(async () => {
                              -        await moveFile(tmp.target, destination, { overwrite: false })
                              -        tmp.moved = true
                              -        return tmp.moved
                              -      })
                              -      .catch(err => {
                              -        if (!err.message.startsWith('The destination file exists')) {
                              -          throw Object.assign(err, { code: 'EEXIST' })
                              -        }
                              -      }).finally(() => {
                              -        moveOperations.delete(destination)
                              -      })
                              -
                              -  )
                              -  return moveOperations.get(destination)
                              -}
                              -
                              -function sizeError (expected, found) {
                              -  /* eslint-disable-next-line max-len */
                              -  const err = new Error(`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
                              -  err.expected = expected
                              -  err.found = found
                              -  err.code = 'EBADSIZE'
                              -  return err
                              -}
                              -
                              -function checksumError (expected, found) {
                              -  const err = new Error(`Integrity check failed:
                              -  Wanted: ${expected}
                              -   Found: ${found}`)
                              -  err.code = 'EINTEGRITY'
                              -  err.expected = expected
                              -  err.found = found
                              -  return err
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/entry-index.js
                              deleted file mode 100644
                              index 722a37af5ce157..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/entry-index.js
                              +++ /dev/null
                              @@ -1,330 +0,0 @@
                              -'use strict'
                              -
                              -const crypto = require('crypto')
                              -const {
                              -  appendFile,
                              -  mkdir,
                              -  readFile,
                              -  readdir,
                              -  rm,
                              -  writeFile,
                              -} = require('fs/promises')
                              -const { Minipass } = require('minipass')
                              -const path = require('path')
                              -const ssri = require('ssri')
                              -const uniqueFilename = require('unique-filename')
                              -
                              -const contentPath = require('./content/path')
                              -const hashToSegments = require('./util/hash-to-segments')
                              -const indexV = require('../package.json')['cache-version'].index
                              -const { moveFile } = require('@npmcli/fs')
                              -
                              -module.exports.NotFoundError = class NotFoundError extends Error {
                              -  constructor (cache, key) {
                              -    super(`No cache entry for ${key} found in ${cache}`)
                              -    this.code = 'ENOENT'
                              -    this.cache = cache
                              -    this.key = key
                              -  }
                              -}
                              -
                              -module.exports.compact = compact
                              -
                              -async function compact (cache, key, matchFn, opts = {}) {
                              -  const bucket = bucketPath(cache, key)
                              -  const entries = await bucketEntries(bucket)
                              -  const newEntries = []
                              -  // we loop backwards because the bottom-most result is the newest
                              -  // since we add new entries with appendFile
                              -  for (let i = entries.length - 1; i >= 0; --i) {
                              -    const entry = entries[i]
                              -    // a null integrity could mean either a delete was appended
                              -    // or the user has simply stored an index that does not map
                              -    // to any content. we determine if the user wants to keep the
                              -    // null integrity based on the validateEntry function passed in options.
                              -    // if the integrity is null and no validateEntry is provided, we break
                              -    // as we consider the null integrity to be a deletion of everything
                              -    // that came before it.
                              -    if (entry.integrity === null && !opts.validateEntry) {
                              -      break
                              -    }
                              -
                              -    // if this entry is valid, and it is either the first entry or
                              -    // the newEntries array doesn't already include an entry that
                              -    // matches this one based on the provided matchFn, then we add
                              -    // it to the beginning of our list
                              -    if ((!opts.validateEntry || opts.validateEntry(entry) === true) &&
                              -      (newEntries.length === 0 ||
                              -        !newEntries.find((oldEntry) => matchFn(oldEntry, entry)))) {
                              -      newEntries.unshift(entry)
                              -    }
                              -  }
                              -
                              -  const newIndex = '\n' + newEntries.map((entry) => {
                              -    const stringified = JSON.stringify(entry)
                              -    const hash = hashEntry(stringified)
                              -    return `${hash}\t${stringified}`
                              -  }).join('\n')
                              -
                              -  const setup = async () => {
                              -    const target = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)
                              -    await mkdir(path.dirname(target), { recursive: true })
                              -    return {
                              -      target,
                              -      moved: false,
                              -    }
                              -  }
                              -
                              -  const teardown = async (tmp) => {
                              -    if (!tmp.moved) {
                              -      return rm(tmp.target, { recursive: true, force: true })
                              -    }
                              -  }
                              -
                              -  const write = async (tmp) => {
                              -    await writeFile(tmp.target, newIndex, { flag: 'wx' })
                              -    await mkdir(path.dirname(bucket), { recursive: true })
                              -    // we use @npmcli/move-file directly here because we
                              -    // want to overwrite the existing file
                              -    await moveFile(tmp.target, bucket)
                              -    tmp.moved = true
                              -  }
                              -
                              -  // write the file atomically
                              -  const tmp = await setup()
                              -  try {
                              -    await write(tmp)
                              -  } finally {
                              -    await teardown(tmp)
                              -  }
                              -
                              -  // we reverse the list we generated such that the newest
                              -  // entries come first in order to make looping through them easier
                              -  // the true passed to formatEntry tells it to keep null
                              -  // integrity values, if they made it this far it's because
                              -  // validateEntry returned true, and as such we should return it
                              -  return newEntries.reverse().map((entry) => formatEntry(cache, entry, true))
                              -}
                              -
                              -module.exports.insert = insert
                              -
                              -async function insert (cache, key, integrity, opts = {}) {
                              -  const { metadata, size, time } = opts
                              -  const bucket = bucketPath(cache, key)
                              -  const entry = {
                              -    key,
                              -    integrity: integrity && ssri.stringify(integrity),
                              -    time: time || Date.now(),
                              -    size,
                              -    metadata,
                              -  }
                              -  try {
                              -    await mkdir(path.dirname(bucket), { recursive: true })
                              -    const stringified = JSON.stringify(entry)
                              -    // NOTE - Cleverness ahoy!
                              -    //
                              -    // This works because it's tremendously unlikely for an entry to corrupt
                              -    // another while still preserving the string length of the JSON in
                              -    // question. So, we just slap the length in there and verify it on read.
                              -    //
                              -    // Thanks to @isaacs for the whiteboarding session that ended up with
                              -    // this.
                              -    await appendFile(bucket, `\n${hashEntry(stringified)}\t${stringified}`)
                              -  } catch (err) {
                              -    if (err.code === 'ENOENT') {
                              -      return undefined
                              -    }
                              -
                              -    throw err
                              -  }
                              -  return formatEntry(cache, entry)
                              -}
                              -
                              -module.exports.find = find
                              -
                              -async function find (cache, key) {
                              -  const bucket = bucketPath(cache, key)
                              -  try {
                              -    const entries = await bucketEntries(bucket)
                              -    return entries.reduce((latest, next) => {
                              -      if (next && next.key === key) {
                              -        return formatEntry(cache, next)
                              -      } else {
                              -        return latest
                              -      }
                              -    }, null)
                              -  } catch (err) {
                              -    if (err.code === 'ENOENT') {
                              -      return null
                              -    } else {
                              -      throw err
                              -    }
                              -  }
                              -}
                              -
                              -module.exports.delete = del
                              -
                              -function del (cache, key, opts = {}) {
                              -  if (!opts.removeFully) {
                              -    return insert(cache, key, null, opts)
                              -  }
                              -
                              -  const bucket = bucketPath(cache, key)
                              -  return rm(bucket, { recursive: true, force: true })
                              -}
                              -
                              -module.exports.lsStream = lsStream
                              -
                              -function lsStream (cache) {
                              -  const indexDir = bucketDir(cache)
                              -  const stream = new Minipass({ objectMode: true })
                              -
                              -  // Set all this up to run on the stream and then just return the stream
                              -  Promise.resolve().then(async () => {
                              -    const buckets = await readdirOrEmpty(indexDir)
                              -    await Promise.all(buckets.map(async (bucket) => {
                              -      const bucketPath = path.join(indexDir, bucket)
                              -      const subbuckets = await readdirOrEmpty(bucketPath)
                              -      await Promise.all(subbuckets.map(async (subbucket) => {
                              -        const subbucketPath = path.join(bucketPath, subbucket)
                              -
                              -        // "/cachename//./*"
                              -        const subbucketEntries = await readdirOrEmpty(subbucketPath)
                              -        await Promise.all(subbucketEntries.map(async (entry) => {
                              -          const entryPath = path.join(subbucketPath, entry)
                              -          try {
                              -            const entries = await bucketEntries(entryPath)
                              -            // using a Map here prevents duplicate keys from showing up
                              -            // twice, I guess?
                              -            const reduced = entries.reduce((acc, entry) => {
                              -              acc.set(entry.key, entry)
                              -              return acc
                              -            }, new Map())
                              -            // reduced is a map of key => entry
                              -            for (const entry of reduced.values()) {
                              -              const formatted = formatEntry(cache, entry)
                              -              if (formatted) {
                              -                stream.write(formatted)
                              -              }
                              -            }
                              -          } catch (err) {
                              -            if (err.code === 'ENOENT') {
                              -              return undefined
                              -            }
                              -            throw err
                              -          }
                              -        }))
                              -      }))
                              -    }))
                              -    stream.end()
                              -    return stream
                              -  }).catch(err => stream.emit('error', err))
                              -
                              -  return stream
                              -}
                              -
                              -module.exports.ls = ls
                              -
                              -async function ls (cache) {
                              -  const entries = await lsStream(cache).collect()
                              -  return entries.reduce((acc, xs) => {
                              -    acc[xs.key] = xs
                              -    return acc
                              -  }, {})
                              -}
                              -
                              -module.exports.bucketEntries = bucketEntries
                              -
                              -async function bucketEntries (bucket, filter) {
                              -  const data = await readFile(bucket, 'utf8')
                              -  return _bucketEntries(data, filter)
                              -}
                              -
                              -function _bucketEntries (data, filter) {
                              -  const entries = []
                              -  data.split('\n').forEach((entry) => {
                              -    if (!entry) {
                              -      return
                              -    }
                              -
                              -    const pieces = entry.split('\t')
                              -    if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {
                              -      // Hash is no good! Corruption or malice? Doesn't matter!
                              -      // EJECT EJECT
                              -      return
                              -    }
                              -    let obj
                              -    try {
                              -      obj = JSON.parse(pieces[1])
                              -    } catch (_) {
                              -      // eslint-ignore-next-line no-empty-block
                              -    }
                              -    // coverage disabled here, no need to test with an entry that parses to something falsey
                              -    // istanbul ignore else
                              -    if (obj) {
                              -      entries.push(obj)
                              -    }
                              -  })
                              -  return entries
                              -}
                              -
                              -module.exports.bucketDir = bucketDir
                              -
                              -function bucketDir (cache) {
                              -  return path.join(cache, `index-v${indexV}`)
                              -}
                              -
                              -module.exports.bucketPath = bucketPath
                              -
                              -function bucketPath (cache, key) {
                              -  const hashed = hashKey(key)
                              -  return path.join.apply(
                              -    path,
                              -    [bucketDir(cache)].concat(hashToSegments(hashed))
                              -  )
                              -}
                              -
                              -module.exports.hashKey = hashKey
                              -
                              -function hashKey (key) {
                              -  return hash(key, 'sha256')
                              -}
                              -
                              -module.exports.hashEntry = hashEntry
                              -
                              -function hashEntry (str) {
                              -  return hash(str, 'sha1')
                              -}
                              -
                              -function hash (str, digest) {
                              -  return crypto
                              -    .createHash(digest)
                              -    .update(str)
                              -    .digest('hex')
                              -}
                              -
                              -function formatEntry (cache, entry, keepAll) {
                              -  // Treat null digests as deletions. They'll shadow any previous entries.
                              -  if (!entry.integrity && !keepAll) {
                              -    return null
                              -  }
                              -
                              -  return {
                              -    key: entry.key,
                              -    integrity: entry.integrity,
                              -    path: entry.integrity ? contentPath(cache, entry.integrity) : undefined,
                              -    size: entry.size,
                              -    time: entry.time,
                              -    metadata: entry.metadata,
                              -  }
                              -}
                              -
                              -function readdirOrEmpty (dir) {
                              -  return readdir(dir).catch((err) => {
                              -    if (err.code === 'ENOENT' || err.code === 'ENOTDIR') {
                              -      return []
                              -    }
                              -
                              -    throw err
                              -  })
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/get.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/get.js
                              deleted file mode 100644
                              index 80ec206c7ecaaa..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/get.js
                              +++ /dev/null
                              @@ -1,170 +0,0 @@
                              -'use strict'
                              -
                              -const Collect = require('minipass-collect')
                              -const { Minipass } = require('minipass')
                              -const Pipeline = require('minipass-pipeline')
                              -
                              -const index = require('./entry-index')
                              -const memo = require('./memoization')
                              -const read = require('./content/read')
                              -
                              -async function getData (cache, key, opts = {}) {
                              -  const { integrity, memoize, size } = opts
                              -  const memoized = memo.get(cache, key, opts)
                              -  if (memoized && memoize !== false) {
                              -    return {
                              -      metadata: memoized.entry.metadata,
                              -      data: memoized.data,
                              -      integrity: memoized.entry.integrity,
                              -      size: memoized.entry.size,
                              -    }
                              -  }
                              -
                              -  const entry = await index.find(cache, key, opts)
                              -  if (!entry) {
                              -    throw new index.NotFoundError(cache, key)
                              -  }
                              -  const data = await read(cache, entry.integrity, { integrity, size })
                              -  if (memoize) {
                              -    memo.put(cache, entry, data, opts)
                              -  }
                              -
                              -  return {
                              -    data,
                              -    metadata: entry.metadata,
                              -    size: entry.size,
                              -    integrity: entry.integrity,
                              -  }
                              -}
                              -module.exports = getData
                              -
                              -async function getDataByDigest (cache, key, opts = {}) {
                              -  const { integrity, memoize, size } = opts
                              -  const memoized = memo.get.byDigest(cache, key, opts)
                              -  if (memoized && memoize !== false) {
                              -    return memoized
                              -  }
                              -
                              -  const res = await read(cache, key, { integrity, size })
                              -  if (memoize) {
                              -    memo.put.byDigest(cache, key, res, opts)
                              -  }
                              -  return res
                              -}
                              -module.exports.byDigest = getDataByDigest
                              -
                              -const getMemoizedStream = (memoized) => {
                              -  const stream = new Minipass()
                              -  stream.on('newListener', function (ev, cb) {
                              -    ev === 'metadata' && cb(memoized.entry.metadata)
                              -    ev === 'integrity' && cb(memoized.entry.integrity)
                              -    ev === 'size' && cb(memoized.entry.size)
                              -  })
                              -  stream.end(memoized.data)
                              -  return stream
                              -}
                              -
                              -function getStream (cache, key, opts = {}) {
                              -  const { memoize, size } = opts
                              -  const memoized = memo.get(cache, key, opts)
                              -  if (memoized && memoize !== false) {
                              -    return getMemoizedStream(memoized)
                              -  }
                              -
                              -  const stream = new Pipeline()
                              -  // Set all this up to run on the stream and then just return the stream
                              -  Promise.resolve().then(async () => {
                              -    const entry = await index.find(cache, key)
                              -    if (!entry) {
                              -      throw new index.NotFoundError(cache, key)
                              -    }
                              -
                              -    stream.emit('metadata', entry.metadata)
                              -    stream.emit('integrity', entry.integrity)
                              -    stream.emit('size', entry.size)
                              -    stream.on('newListener', function (ev, cb) {
                              -      ev === 'metadata' && cb(entry.metadata)
                              -      ev === 'integrity' && cb(entry.integrity)
                              -      ev === 'size' && cb(entry.size)
                              -    })
                              -
                              -    const src = read.readStream(
                              -      cache,
                              -      entry.integrity,
                              -      { ...opts, size: typeof size !== 'number' ? entry.size : size }
                              -    )
                              -
                              -    if (memoize) {
                              -      const memoStream = new Collect.PassThrough()
                              -      memoStream.on('collect', data => memo.put(cache, entry, data, opts))
                              -      stream.unshift(memoStream)
                              -    }
                              -    stream.unshift(src)
                              -    return stream
                              -  }).catch((err) => stream.emit('error', err))
                              -
                              -  return stream
                              -}
                              -
                              -module.exports.stream = getStream
                              -
                              -function getStreamDigest (cache, integrity, opts = {}) {
                              -  const { memoize } = opts
                              -  const memoized = memo.get.byDigest(cache, integrity, opts)
                              -  if (memoized && memoize !== false) {
                              -    const stream = new Minipass()
                              -    stream.end(memoized)
                              -    return stream
                              -  } else {
                              -    const stream = read.readStream(cache, integrity, opts)
                              -    if (!memoize) {
                              -      return stream
                              -    }
                              -
                              -    const memoStream = new Collect.PassThrough()
                              -    memoStream.on('collect', data => memo.put.byDigest(
                              -      cache,
                              -      integrity,
                              -      data,
                              -      opts
                              -    ))
                              -    return new Pipeline(stream, memoStream)
                              -  }
                              -}
                              -
                              -module.exports.stream.byDigest = getStreamDigest
                              -
                              -function info (cache, key, opts = {}) {
                              -  const { memoize } = opts
                              -  const memoized = memo.get(cache, key, opts)
                              -  if (memoized && memoize !== false) {
                              -    return Promise.resolve(memoized.entry)
                              -  } else {
                              -    return index.find(cache, key)
                              -  }
                              -}
                              -module.exports.info = info
                              -
                              -async function copy (cache, key, dest, opts = {}) {
                              -  const entry = await index.find(cache, key, opts)
                              -  if (!entry) {
                              -    throw new index.NotFoundError(cache, key)
                              -  }
                              -  await read.copy(cache, entry.integrity, dest, opts)
                              -  return {
                              -    metadata: entry.metadata,
                              -    size: entry.size,
                              -    integrity: entry.integrity,
                              -  }
                              -}
                              -
                              -module.exports.copy = copy
                              -
                              -async function copyByDigest (cache, key, dest, opts = {}) {
                              -  await read.copy(cache, key, dest, opts)
                              -  return key
                              -}
                              -
                              -module.exports.copy.byDigest = copyByDigest
                              -
                              -module.exports.hasContent = read.hasContent
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/index.js
                              deleted file mode 100644
                              index c9b0da5f3a271b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/index.js
                              +++ /dev/null
                              @@ -1,42 +0,0 @@
                              -'use strict'
                              -
                              -const get = require('./get.js')
                              -const put = require('./put.js')
                              -const rm = require('./rm.js')
                              -const verify = require('./verify.js')
                              -const { clearMemoized } = require('./memoization.js')
                              -const tmp = require('./util/tmp.js')
                              -const index = require('./entry-index.js')
                              -
                              -module.exports.index = {}
                              -module.exports.index.compact = index.compact
                              -module.exports.index.insert = index.insert
                              -
                              -module.exports.ls = index.ls
                              -module.exports.ls.stream = index.lsStream
                              -
                              -module.exports.get = get
                              -module.exports.get.byDigest = get.byDigest
                              -module.exports.get.stream = get.stream
                              -module.exports.get.stream.byDigest = get.stream.byDigest
                              -module.exports.get.copy = get.copy
                              -module.exports.get.copy.byDigest = get.copy.byDigest
                              -module.exports.get.info = get.info
                              -module.exports.get.hasContent = get.hasContent
                              -
                              -module.exports.put = put
                              -module.exports.put.stream = put.stream
                              -
                              -module.exports.rm = rm.entry
                              -module.exports.rm.all = rm.all
                              -module.exports.rm.entry = module.exports.rm
                              -module.exports.rm.content = rm.content
                              -
                              -module.exports.clearMemoized = clearMemoized
                              -
                              -module.exports.tmp = {}
                              -module.exports.tmp.mkdir = tmp.mkdir
                              -module.exports.tmp.withTmp = tmp.withTmp
                              -
                              -module.exports.verify = verify
                              -module.exports.verify.lastRun = verify.lastRun
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/memoization.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/memoization.js
                              deleted file mode 100644
                              index 0ff604a479c9c1..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/memoization.js
                              +++ /dev/null
                              @@ -1,72 +0,0 @@
                              -'use strict'
                              -
                              -const LRU = require('lru-cache')
                              -
                              -const MEMOIZED = new LRU({
                              -  max: 500,
                              -  maxSize: 50 * 1024 * 1024, // 50MB
                              -  ttl: 3 * 60 * 1000, // 3 minutes
                              -  sizeCalculation: (entry, key) => key.startsWith('key:') ? entry.data.length : entry.length,
                              -})
                              -
                              -module.exports.clearMemoized = clearMemoized
                              -
                              -function clearMemoized () {
                              -  const old = {}
                              -  MEMOIZED.forEach((v, k) => {
                              -    old[k] = v
                              -  })
                              -  MEMOIZED.clear()
                              -  return old
                              -}
                              -
                              -module.exports.put = put
                              -
                              -function put (cache, entry, data, opts) {
                              -  pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data })
                              -  putDigest(cache, entry.integrity, data, opts)
                              -}
                              -
                              -module.exports.put.byDigest = putDigest
                              -
                              -function putDigest (cache, integrity, data, opts) {
                              -  pickMem(opts).set(`digest:${cache}:${integrity}`, data)
                              -}
                              -
                              -module.exports.get = get
                              -
                              -function get (cache, key, opts) {
                              -  return pickMem(opts).get(`key:${cache}:${key}`)
                              -}
                              -
                              -module.exports.get.byDigest = getDigest
                              -
                              -function getDigest (cache, integrity, opts) {
                              -  return pickMem(opts).get(`digest:${cache}:${integrity}`)
                              -}
                              -
                              -class ObjProxy {
                              -  constructor (obj) {
                              -    this.obj = obj
                              -  }
                              -
                              -  get (key) {
                              -    return this.obj[key]
                              -  }
                              -
                              -  set (key, val) {
                              -    this.obj[key] = val
                              -  }
                              -}
                              -
                              -function pickMem (opts) {
                              -  if (!opts || !opts.memoize) {
                              -    return MEMOIZED
                              -  } else if (opts.memoize.get && opts.memoize.set) {
                              -    return opts.memoize
                              -  } else if (typeof opts.memoize === 'object') {
                              -    return new ObjProxy(opts.memoize)
                              -  } else {
                              -    return MEMOIZED
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/put.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/put.js
                              deleted file mode 100644
                              index 9fc932d5f6dec5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/put.js
                              +++ /dev/null
                              @@ -1,80 +0,0 @@
                              -'use strict'
                              -
                              -const index = require('./entry-index')
                              -const memo = require('./memoization')
                              -const write = require('./content/write')
                              -const Flush = require('minipass-flush')
                              -const { PassThrough } = require('minipass-collect')
                              -const Pipeline = require('minipass-pipeline')
                              -
                              -const putOpts = (opts) => ({
                              -  algorithms: ['sha512'],
                              -  ...opts,
                              -})
                              -
                              -module.exports = putData
                              -
                              -async function putData (cache, key, data, opts = {}) {
                              -  const { memoize } = opts
                              -  opts = putOpts(opts)
                              -  const res = await write(cache, data, opts)
                              -  const entry = await index.insert(cache, key, res.integrity, { ...opts, size: res.size })
                              -  if (memoize) {
                              -    memo.put(cache, entry, data, opts)
                              -  }
                              -
                              -  return res.integrity
                              -}
                              -
                              -module.exports.stream = putStream
                              -
                              -function putStream (cache, key, opts = {}) {
                              -  const { memoize } = opts
                              -  opts = putOpts(opts)
                              -  let integrity
                              -  let size
                              -  let error
                              -
                              -  let memoData
                              -  const pipeline = new Pipeline()
                              -  // first item in the pipeline is the memoizer, because we need
                              -  // that to end first and get the collected data.
                              -  if (memoize) {
                              -    const memoizer = new PassThrough().on('collect', data => {
                              -      memoData = data
                              -    })
                              -    pipeline.push(memoizer)
                              -  }
                              -
                              -  // contentStream is a write-only, not a passthrough
                              -  // no data comes out of it.
                              -  const contentStream = write.stream(cache, opts)
                              -    .on('integrity', (int) => {
                              -      integrity = int
                              -    })
                              -    .on('size', (s) => {
                              -      size = s
                              -    })
                              -    .on('error', (err) => {
                              -      error = err
                              -    })
                              -
                              -  pipeline.push(contentStream)
                              -
                              -  // last but not least, we write the index and emit hash and size,
                              -  // and memoize if we're doing that
                              -  pipeline.push(new Flush({
                              -    async flush () {
                              -      if (!error) {
                              -        const entry = await index.insert(cache, key, integrity, { ...opts, size })
                              -        if (memoize && memoData) {
                              -          memo.put(cache, entry, memoData, opts)
                              -        }
                              -        pipeline.emit('integrity', integrity)
                              -        pipeline.emit('size', size)
                              -      }
                              -    },
                              -  }))
                              -
                              -  return pipeline
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/rm.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/rm.js
                              deleted file mode 100644
                              index a94760c7cf2430..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/rm.js
                              +++ /dev/null
                              @@ -1,31 +0,0 @@
                              -'use strict'
                              -
                              -const { rm } = require('fs/promises')
                              -const glob = require('./util/glob.js')
                              -const index = require('./entry-index')
                              -const memo = require('./memoization')
                              -const path = require('path')
                              -const rmContent = require('./content/rm')
                              -
                              -module.exports = entry
                              -module.exports.entry = entry
                              -
                              -function entry (cache, key, opts) {
                              -  memo.clearMemoized()
                              -  return index.delete(cache, key, opts)
                              -}
                              -
                              -module.exports.content = content
                              -
                              -function content (cache, integrity) {
                              -  memo.clearMemoized()
                              -  return rmContent(cache, integrity)
                              -}
                              -
                              -module.exports.all = all
                              -
                              -async function all (cache) {
                              -  memo.clearMemoized()
                              -  const paths = await glob(path.join(cache, '*(content-*|index-*)'), { silent: true, nosort: true })
                              -  return Promise.all(paths.map((p) => rm(p, { recursive: true, force: true })))
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/glob.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/glob.js
                              deleted file mode 100644
                              index 8500c1c16a429f..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/glob.js
                              +++ /dev/null
                              @@ -1,7 +0,0 @@
                              -'use strict'
                              -
                              -const { glob } = require('glob')
                              -const path = require('path')
                              -
                              -const globify = (pattern) => pattern.split(path.win32.sep).join(path.posix.sep)
                              -module.exports = (path, options) => glob(globify(path), options)
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/hash-to-segments.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/hash-to-segments.js
                              deleted file mode 100644
                              index 445599b5038088..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/hash-to-segments.js
                              +++ /dev/null
                              @@ -1,7 +0,0 @@
                              -'use strict'
                              -
                              -module.exports = hashToSegments
                              -
                              -function hashToSegments (hash) {
                              -  return [hash.slice(0, 2), hash.slice(2, 4), hash.slice(4)]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/tmp.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/tmp.js
                              deleted file mode 100644
                              index 0bf5302136ebeb..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/util/tmp.js
                              +++ /dev/null
                              @@ -1,26 +0,0 @@
                              -'use strict'
                              -
                              -const { withTempDir } = require('@npmcli/fs')
                              -const fs = require('fs/promises')
                              -const path = require('path')
                              -
                              -module.exports.mkdir = mktmpdir
                              -
                              -async function mktmpdir (cache, opts = {}) {
                              -  const { tmpPrefix } = opts
                              -  const tmpDir = path.join(cache, 'tmp')
                              -  await fs.mkdir(tmpDir, { recursive: true, owner: 'inherit' })
                              -  // do not use path.join(), it drops the trailing / if tmpPrefix is unset
                              -  const target = `${tmpDir}${path.sep}${tmpPrefix || ''}`
                              -  return fs.mkdtemp(target, { owner: 'inherit' })
                              -}
                              -
                              -module.exports.withTmp = withTmp
                              -
                              -function withTmp (cache, opts, cb) {
                              -  if (!cb) {
                              -    cb = opts
                              -    opts = {}
                              -  }
                              -  return withTempDir(path.join(cache, 'tmp'), cb, opts)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/verify.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/verify.js
                              deleted file mode 100644
                              index 62e85c946490fc..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/lib/verify.js
                              +++ /dev/null
                              @@ -1,257 +0,0 @@
                              -'use strict'
                              -
                              -const {
                              -  mkdir,
                              -  readFile,
                              -  rm,
                              -  stat,
                              -  truncate,
                              -  writeFile,
                              -} = require('fs/promises')
                              -const pMap = require('p-map')
                              -const contentPath = require('./content/path')
                              -const fsm = require('fs-minipass')
                              -const glob = require('./util/glob.js')
                              -const index = require('./entry-index')
                              -const path = require('path')
                              -const ssri = require('ssri')
                              -
                              -const hasOwnProperty = (obj, key) =>
                              -  Object.prototype.hasOwnProperty.call(obj, key)
                              -
                              -const verifyOpts = (opts) => ({
                              -  concurrency: 20,
                              -  log: { silly () {} },
                              -  ...opts,
                              -})
                              -
                              -module.exports = verify
                              -
                              -async function verify (cache, opts) {
                              -  opts = verifyOpts(opts)
                              -  opts.log.silly('verify', 'verifying cache at', cache)
                              -
                              -  const steps = [
                              -    markStartTime,
                              -    fixPerms,
                              -    garbageCollect,
                              -    rebuildIndex,
                              -    cleanTmp,
                              -    writeVerifile,
                              -    markEndTime,
                              -  ]
                              -
                              -  const stats = {}
                              -  for (const step of steps) {
                              -    const label = step.name
                              -    const start = new Date()
                              -    const s = await step(cache, opts)
                              -    if (s) {
                              -      Object.keys(s).forEach((k) => {
                              -        stats[k] = s[k]
                              -      })
                              -    }
                              -    const end = new Date()
                              -    if (!stats.runTime) {
                              -      stats.runTime = {}
                              -    }
                              -    stats.runTime[label] = end - start
                              -  }
                              -  stats.runTime.total = stats.endTime - stats.startTime
                              -  opts.log.silly(
                              -    'verify',
                              -    'verification finished for',
                              -    cache,
                              -    'in',
                              -    `${stats.runTime.total}ms`
                              -  )
                              -  return stats
                              -}
                              -
                              -async function markStartTime (cache, opts) {
                              -  return { startTime: new Date() }
                              -}
                              -
                              -async function markEndTime (cache, opts) {
                              -  return { endTime: new Date() }
                              -}
                              -
                              -async function fixPerms (cache, opts) {
                              -  opts.log.silly('verify', 'fixing cache permissions')
                              -  await mkdir(cache, { recursive: true })
                              -  return null
                              -}
                              -
                              -// Implements a naive mark-and-sweep tracing garbage collector.
                              -//
                              -// The algorithm is basically as follows:
                              -// 1. Read (and filter) all index entries ("pointers")
                              -// 2. Mark each integrity value as "live"
                              -// 3. Read entire filesystem tree in `content-vX/` dir
                              -// 4. If content is live, verify its checksum and delete it if it fails
                              -// 5. If content is not marked as live, rm it.
                              -//
                              -async function garbageCollect (cache, opts) {
                              -  opts.log.silly('verify', 'garbage collecting content')
                              -  const indexStream = index.lsStream(cache)
                              -  const liveContent = new Set()
                              -  indexStream.on('data', (entry) => {
                              -    if (opts.filter && !opts.filter(entry)) {
                              -      return
                              -    }
                              -
                              -    // integrity is stringified, re-parse it so we can get each hash
                              -    const integrity = ssri.parse(entry.integrity)
                              -    for (const algo in integrity) {
                              -      liveContent.add(integrity[algo].toString())
                              -    }
                              -  })
                              -  await new Promise((resolve, reject) => {
                              -    indexStream.on('end', resolve).on('error', reject)
                              -  })
                              -  const contentDir = contentPath.contentDir(cache)
                              -  const files = await glob(path.join(contentDir, '**'), {
                              -    follow: false,
                              -    nodir: true,
                              -    nosort: true,
                              -  })
                              -  const stats = {
                              -    verifiedContent: 0,
                              -    reclaimedCount: 0,
                              -    reclaimedSize: 0,
                              -    badContentCount: 0,
                              -    keptSize: 0,
                              -  }
                              -  await pMap(
                              -    files,
                              -    async (f) => {
                              -      const split = f.split(/[/\\]/)
                              -      const digest = split.slice(split.length - 3).join('')
                              -      const algo = split[split.length - 4]
                              -      const integrity = ssri.fromHex(digest, algo)
                              -      if (liveContent.has(integrity.toString())) {
                              -        const info = await verifyContent(f, integrity)
                              -        if (!info.valid) {
                              -          stats.reclaimedCount++
                              -          stats.badContentCount++
                              -          stats.reclaimedSize += info.size
                              -        } else {
                              -          stats.verifiedContent++
                              -          stats.keptSize += info.size
                              -        }
                              -      } else {
                              -        // No entries refer to this content. We can delete.
                              -        stats.reclaimedCount++
                              -        const s = await stat(f)
                              -        await rm(f, { recursive: true, force: true })
                              -        stats.reclaimedSize += s.size
                              -      }
                              -      return stats
                              -    },
                              -    { concurrency: opts.concurrency }
                              -  )
                              -  return stats
                              -}
                              -
                              -async function verifyContent (filepath, sri) {
                              -  const contentInfo = {}
                              -  try {
                              -    const { size } = await stat(filepath)
                              -    contentInfo.size = size
                              -    contentInfo.valid = true
                              -    await ssri.checkStream(new fsm.ReadStream(filepath), sri)
                              -  } catch (err) {
                              -    if (err.code === 'ENOENT') {
                              -      return { size: 0, valid: false }
                              -    }
                              -    if (err.code !== 'EINTEGRITY') {
                              -      throw err
                              -    }
                              -
                              -    await rm(filepath, { recursive: true, force: true })
                              -    contentInfo.valid = false
                              -  }
                              -  return contentInfo
                              -}
                              -
                              -async function rebuildIndex (cache, opts) {
                              -  opts.log.silly('verify', 'rebuilding index')
                              -  const entries = await index.ls(cache)
                              -  const stats = {
                              -    missingContent: 0,
                              -    rejectedEntries: 0,
                              -    totalEntries: 0,
                              -  }
                              -  const buckets = {}
                              -  for (const k in entries) {
                              -    /* istanbul ignore else */
                              -    if (hasOwnProperty(entries, k)) {
                              -      const hashed = index.hashKey(k)
                              -      const entry = entries[k]
                              -      const excluded = opts.filter && !opts.filter(entry)
                              -      excluded && stats.rejectedEntries++
                              -      if (buckets[hashed] && !excluded) {
                              -        buckets[hashed].push(entry)
                              -      } else if (buckets[hashed] && excluded) {
                              -        // skip
                              -      } else if (excluded) {
                              -        buckets[hashed] = []
                              -        buckets[hashed]._path = index.bucketPath(cache, k)
                              -      } else {
                              -        buckets[hashed] = [entry]
                              -        buckets[hashed]._path = index.bucketPath(cache, k)
                              -      }
                              -    }
                              -  }
                              -  await pMap(
                              -    Object.keys(buckets),
                              -    (key) => {
                              -      return rebuildBucket(cache, buckets[key], stats, opts)
                              -    },
                              -    { concurrency: opts.concurrency }
                              -  )
                              -  return stats
                              -}
                              -
                              -async function rebuildBucket (cache, bucket, stats, opts) {
                              -  await truncate(bucket._path)
                              -  // This needs to be serialized because cacache explicitly
                              -  // lets very racy bucket conflicts clobber each other.
                              -  for (const entry of bucket) {
                              -    const content = contentPath(cache, entry.integrity)
                              -    try {
                              -      await stat(content)
                              -      await index.insert(cache, entry.key, entry.integrity, {
                              -        metadata: entry.metadata,
                              -        size: entry.size,
                              -        time: entry.time,
                              -      })
                              -      stats.totalEntries++
                              -    } catch (err) {
                              -      if (err.code === 'ENOENT') {
                              -        stats.rejectedEntries++
                              -        stats.missingContent++
                              -      } else {
                              -        throw err
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -function cleanTmp (cache, opts) {
                              -  opts.log.silly('verify', 'cleaning tmp directory')
                              -  return rm(path.join(cache, 'tmp'), { recursive: true, force: true })
                              -}
                              -
                              -async function writeVerifile (cache, opts) {
                              -  const verifile = path.join(cache, '_lastverified')
                              -  opts.log.silly('verify', 'writing verifile to ' + verifile)
                              -  return writeFile(verifile, `${Date.now()}`)
                              -}
                              -
                              -module.exports.lastRun = lastRun
                              -
                              -async function lastRun (cache) {
                              -  const data = await readFile(path.join(cache, '_lastverified'), { encoding: 'utf8' })
                              -  return new Date(+data)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/LICENSE
                              deleted file mode 100644
                              index de3226673c3874..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/LICENSE
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -MIT License
                              -
                              -Copyright (c) 2013 Julian Gruber 
                              -
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to deal
                              -in the Software without restriction, including without limitation the rights
                              -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                              -copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in all
                              -copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                              -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
                              -SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/index.js
                              deleted file mode 100644
                              index 668fb1cb9d45a4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/index.js
                              +++ /dev/null
                              @@ -1,202 +0,0 @@
                              -var balanced = require('balanced-match');
                              -
                              -module.exports = expandTop;
                              -
                              -var escSlash = '\0SLASH'+Math.random()+'\0';
                              -var escOpen = '\0OPEN'+Math.random()+'\0';
                              -var escClose = '\0CLOSE'+Math.random()+'\0';
                              -var escComma = '\0COMMA'+Math.random()+'\0';
                              -var escPeriod = '\0PERIOD'+Math.random()+'\0';
                              -
                              -function numeric(str) {
                              -  return parseInt(str, 10) == str
                              -    ? parseInt(str, 10)
                              -    : str.charCodeAt(0);
                              -}
                              -
                              -function escapeBraces(str) {
                              -  return str.split('\\\\').join(escSlash)
                              -            .split('\\{').join(escOpen)
                              -            .split('\\}').join(escClose)
                              -            .split('\\,').join(escComma)
                              -            .split('\\.').join(escPeriod);
                              -}
                              -
                              -function unescapeBraces(str) {
                              -  return str.split(escSlash).join('\\')
                              -            .split(escOpen).join('{')
                              -            .split(escClose).join('}')
                              -            .split(escComma).join(',')
                              -            .split(escPeriod).join('.');
                              -}
                              -
                              -
                              -// Basically just str.split(","), but handling cases
                              -// where we have nested braced sections, which should be
                              -// treated as individual members, like {a,{b,c},d}
                              -function parseCommaParts(str) {
                              -  if (!str)
                              -    return [''];
                              -
                              -  var parts = [];
                              -  var m = balanced('{', '}', str);
                              -
                              -  if (!m)
                              -    return str.split(',');
                              -
                              -  var pre = m.pre;
                              -  var body = m.body;
                              -  var post = m.post;
                              -  var p = pre.split(',');
                              -
                              -  p[p.length-1] += '{' + body + '}';
                              -  var postParts = parseCommaParts(post);
                              -  if (post.length) {
                              -    p[p.length-1] += postParts.shift();
                              -    p.push.apply(p, postParts);
                              -  }
                              -
                              -  parts.push.apply(parts, p);
                              -
                              -  return parts;
                              -}
                              -
                              -function expandTop(str) {
                              -  if (!str)
                              -    return [];
                              -
                              -  // I don't know why Bash 4.3 does this, but it does.
                              -  // Anything starting with {} will have the first two bytes preserved
                              -  // but *only* at the top level, so {},a}b will not expand to anything,
                              -  // but a{},b}c will be expanded to [a}c,abc].
                              -  // One could argue that this is a bug in Bash, but since the goal of
                              -  // this module is to match Bash's rules, we escape a leading {}
                              -  if (str.substr(0, 2) === '{}') {
                              -    str = '\\{\\}' + str.substr(2);
                              -  }
                              -
                              -  return expand(escapeBraces(str), true).map(unescapeBraces);
                              -}
                              -
                              -function embrace(str) {
                              -  return '{' + str + '}';
                              -}
                              -function isPadded(el) {
                              -  return /^-?0\d/.test(el);
                              -}
                              -
                              -function lte(i, y) {
                              -  return i <= y;
                              -}
                              -function gte(i, y) {
                              -  return i >= y;
                              -}
                              -
                              -function expand(str, isTop) {
                              -  var expansions = [];
                              -
                              -  var m = balanced('{', '}', str);
                              -  if (!m) return [str];
                              -
                              -  // no need to expand pre, since it is guaranteed to be free of brace-sets
                              -  var pre = m.pre;
                              -  var post = m.post.length
                              -    ? expand(m.post, false)
                              -    : [''];
                              -
                              -  if (/\$$/.test(m.pre)) {
                              -    for (var k = 0; k < post.length; k++) {
                              -      var expansion = pre+ '{' + m.body + '}' + post[k];
                              -      expansions.push(expansion);
                              -    }
                              -  } else {
                              -    var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
                              -    var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
                              -    var isSequence = isNumericSequence || isAlphaSequence;
                              -    var isOptions = m.body.indexOf(',') >= 0;
                              -    if (!isSequence && !isOptions) {
                              -      // {a},b}
                              -      if (m.post.match(/,.*\}/)) {
                              -        str = m.pre + '{' + m.body + escClose + m.post;
                              -        return expand(str);
                              -      }
                              -      return [str];
                              -    }
                              -
                              -    var n;
                              -    if (isSequence) {
                              -      n = m.body.split(/\.\./);
                              -    } else {
                              -      n = parseCommaParts(m.body);
                              -      if (n.length === 1) {
                              -        // x{{a,b}}y ==> x{a}y x{b}y
                              -        n = expand(n[0], false).map(embrace);
                              -        if (n.length === 1) {
                              -          return post.map(function(p) {
                              -            return m.pre + n[0] + p;
                              -          });
                              -        }
                              -      }
                              -    }
                              -
                              -    // at this point, n is the parts, and we know it's not a comma set
                              -    // with a single entry.
                              -    var N;
                              -
                              -    if (isSequence) {
                              -      var x = numeric(n[0]);
                              -      var y = numeric(n[1]);
                              -      var width = Math.max(n[0].length, n[1].length)
                              -      var incr = n.length == 3
                              -        ? Math.abs(numeric(n[2]))
                              -        : 1;
                              -      var test = lte;
                              -      var reverse = y < x;
                              -      if (reverse) {
                              -        incr *= -1;
                              -        test = gte;
                              -      }
                              -      var pad = n.some(isPadded);
                              -
                              -      N = [];
                              -
                              -      for (var i = x; test(i, y); i += incr) {
                              -        var c;
                              -        if (isAlphaSequence) {
                              -          c = String.fromCharCode(i);
                              -          if (c === '\\')
                              -            c = '';
                              -        } else {
                              -          c = String(i);
                              -          if (pad) {
                              -            var need = width - c.length;
                              -            if (need > 0) {
                              -              var z = new Array(need + 1).join('0');
                              -              if (i < 0)
                              -                c = '-' + z + c.slice(1);
                              -              else
                              -                c = z + c;
                              -            }
                              -          }
                              -        }
                              -        N.push(c);
                              -      }
                              -    } else {
                              -      N = [];
                              -
                              -      for (var j = 0; j < n.length; j++) {
                              -        N.push.apply(N, expand(n[j], false));
                              -      }
                              -    }
                              -
                              -    for (var j = 0; j < N.length; j++) {
                              -      for (var k = 0; k < post.length; k++) {
                              -        var expansion = pre + N[j] + post[k];
                              -        if (!isTop || isSequence || expansion)
                              -          expansions.push(expansion);
                              -      }
                              -    }
                              -  }
                              -
                              -  return expansions;
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/package.json
                              deleted file mode 100644
                              index 7097d41e39de5d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion/package.json
                              +++ /dev/null
                              @@ -1,46 +0,0 @@
                              -{
                              -  "name": "brace-expansion",
                              -  "description": "Brace expansion as known from sh/bash",
                              -  "version": "2.0.1",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/juliangruber/brace-expansion.git"
                              -  },
                              -  "homepage": "https://github.com/juliangruber/brace-expansion",
                              -  "main": "index.js",
                              -  "scripts": {
                              -    "test": "tape test/*.js",
                              -    "gentest": "bash test/generate.sh",
                              -    "bench": "matcha test/perf/bench.js"
                              -  },
                              -  "dependencies": {
                              -    "balanced-match": "^1.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "@c4312/matcha": "^1.3.1",
                              -    "tape": "^4.6.0"
                              -  },
                              -  "keywords": [],
                              -  "author": {
                              -    "name": "Julian Gruber",
                              -    "email": "mail@juliangruber.com",
                              -    "url": "http://juliangruber.com"
                              -  },
                              -  "license": "MIT",
                              -  "testling": {
                              -    "files": "test/*.js",
                              -    "browsers": [
                              -      "ie/8..latest",
                              -      "firefox/20..latest",
                              -      "firefox/nightly",
                              -      "chrome/25..latest",
                              -      "chrome/canary",
                              -      "opera/12..latest",
                              -      "opera/next",
                              -      "safari/5.1..latest",
                              -      "ipad/6.0..latest",
                              -      "iphone/6.0..latest",
                              -      "android-browser/4.2..latest"
                              -    ]
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/LICENSE
                              deleted file mode 100644
                              index ec7df93329abf3..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/README.md b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/README.md
                              deleted file mode 100644
                              index 1bde1494664d4d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/README.md
                              +++ /dev/null
                              @@ -1,1214 +0,0 @@
                              -# Glob
                              -
                              -Match files using the patterns the shell uses.
                              -
                              -The most correct and second fastest glob implementation in
                              -JavaScript. (See **Comparison to Other JavaScript Glob
                              -Implementations** at the bottom of this readme.)
                              -
                              -![a fun cartoon logo made of glob characters](https://github.com/isaacs/node-glob/raw/main/logo/glob.png)
                              -
                              -## Usage
                              -
                              -Install with npm
                              -
                              -```
                              -npm i glob
                              -```
                              -
                              -**Note** the npm package name is _not_ `node-glob` that's a
                              -different thing that was abandoned years ago. Just `glob`.
                              -
                              -```js
                              -// load using import
                              -import { glob, globSync, globStream, globStreamSync, Glob } from 'glob'
                              -// or using commonjs, that's fine, too
                              -const {
                              -  glob,
                              -  globSync,
                              -  globStream,
                              -  globStreamSync,
                              -  Glob,
                              -} = require('glob')
                              -
                              -// the main glob() and globSync() resolve/return array of filenames
                              -
                              -// all js files, but don't look in node_modules
                              -const jsfiles = await glob('**/*.js', { ignore: 'node_modules/**' })
                              -
                              -// pass in a signal to cancel the glob walk
                              -const stopAfter100ms = await glob('**/*.css', {
                              -  signal: AbortSignal.timeout(100),
                              -})
                              -
                              -// multiple patterns supported as well
                              -const images = await glob(['css/*.{png,jpeg}', 'public/*.{png,jpeg}'])
                              -
                              -// but of course you can do that with the glob pattern also
                              -// the sync function is the same, just returns a string[] instead
                              -// of Promise
                              -const imagesAlt = globSync('{css,public}/*.{png,jpeg}')
                              -
                              -// you can also stream them, this is a Minipass stream
                              -const filesStream = globStream(['**/*.dat', 'logs/**/*.log'])
                              -
                              -// construct a Glob object if you wanna do it that way, which
                              -// allows for much faster walks if you have to look in the same
                              -// folder multiple times.
                              -const g = new Glob('**/foo', {})
                              -// glob objects are async iterators, can also do globIterate() or
                              -// g.iterate(), same deal
                              -for await (const file of g) {
                              -  console.log('found a foo file:', file)
                              -}
                              -// pass a glob as the glob options to reuse its settings and caches
                              -const g2 = new Glob('**/bar', g)
                              -// sync iteration works as well
                              -for (const file of g2) {
                              -  console.log('found a bar file:', file)
                              -}
                              -
                              -// you can also pass withFileTypes: true to get Path objects
                              -// these are like a Dirent, but with some more added powers
                              -// check out http://npm.im/path-scurry for more info on their API
                              -const g3 = new Glob('**/baz/**', { withFileTypes: true })
                              -g3.stream().on('data', path => {
                              -  console.log(
                              -    'got a path object',
                              -    path.fullpath(),
                              -    path.isDirectory(),
                              -    path.readdirSync().map(e => e.name)
                              -  )
                              -})
                              -
                              -// if you use stat:true and withFileTypes, you can sort results
                              -// by things like modified time, filter by permission mode, etc.
                              -// All Stats fields will be available in that case. Slightly
                              -// slower, though.
                              -// For example:
                              -const results = await glob('**', { stat: true, withFileTypes: true })
                              -
                              -const timeSortedFiles = results
                              -  .sort((a, b) => a.mtimeMS - b.mtimeMS)
                              -  .map(path => path.fullpath())
                              -
                              -const groupReadableFiles = results
                              -  .filter(path => path.mode & 0o040)
                              -  .map(path => path.fullpath())
                              -
                              -// custom ignores can be done like this, for example by saying
                              -// you'll ignore all markdown files, and all folders named 'docs'
                              -const customIgnoreResults = await glob('**', {
                              -  ignore: {
                              -    ignored: p => /\.md$/.test(p.name),
                              -    childrenIgnored: p => p.isNamed('docs'),
                              -  },
                              -})
                              -
                              -// another fun use case, only return files with the same name as
                              -// their parent folder, plus either `.ts` or `.js`
                              -const folderNamedModules = await glob('**/*.{ts,js}', {
                              -  ignore: {
                              -    ignored: p => {
                              -      const pp = p.parent
                              -      return !(p.isNamed(pp.name + '.ts') || p.isNamed(pp.name + '.js'))
                              -    },
                              -  },
                              -})
                              -
                              -// find all files edited in the last hour, to do this, we ignore
                              -// all of them that are more than an hour old
                              -const newFiles = await glob('**', {
                              -  // need stat so we have mtime
                              -  stat: true,
                              -  // only want the files, not the dirs
                              -  nodir: true,
                              -  ignore: {
                              -    ignored: p => {
                              -      return new Date() - p.mtime > 60 * 60 * 1000
                              -    },
                              -    // could add similar childrenIgnored here as well, but
                              -    // directory mtime is inconsistent across platforms, so
                              -    // probably better not to, unless you know the system
                              -    // tracks this reliably.
                              -  },
                              -})
                              -```
                              -
                              -**Note** Glob patterns should always use `/` as a path separator,
                              -even on Windows systems, as `\` is used to escape glob
                              -characters. If you wish to use `\` as a path separator _instead
                              -of_ using it as an escape character on Windows platforms, you may
                              -set `windowsPathsNoEscape:true` in the options. In this mode,
                              -special glob characters cannot be escaped, making it impossible
                              -to match a literal `*` `?` and so on in filenames.
                              -
                              -## Command Line Interface
                              -
                              -```
                              -$ glob -h
                              -
                              -Usage:
                              -  glob [options] [ [ ...]]
                              -
                              -Expand the positional glob expression arguments into any matching file system
                              -paths found.
                              -
                              -  -c --cmd=
                              -                         Run the command provided, passing the glob expression
                              -                         matches as arguments.
                              -
                              -  -A --all               By default, the glob cli command will not expand any
                              -                         arguments that are an exact match to a file on disk.
                              -
                              -                         This prevents double-expanding, in case the shell
                              -                         expands an argument whose filename is a glob
                              -                         expression.
                              -
                              -                         For example, if 'app/*.ts' would match 'app/[id].ts',
                              -                         then on Windows powershell or cmd.exe, 'glob app/*.ts'
                              -                         will expand to 'app/[id].ts', as expected. However, in
                              -                         posix shells such as bash or zsh, the shell will first
                              -                         expand 'app/*.ts' to a list of filenames. Then glob
                              -                         will look for a file matching 'app/[id].ts' (ie,
                              -                         'app/i.ts' or 'app/d.ts'), which is unexpected.
                              -
                              -                         Setting '--all' prevents this behavior, causing glob to
                              -                         treat ALL patterns as glob expressions to be expanded,
                              -                         even if they are an exact match to a file on disk.
                              -
                              -                         When setting this option, be sure to enquote arguments
                              -                         so that the shell will not expand them prior to passing
                              -                         them to the glob command process.
                              -
                              -  -a --absolute          Expand to absolute paths
                              -  -d --dot-relative      Prepend './' on relative matches
                              -  -m --mark              Append a / on any directories matched
                              -  -x --posix             Always resolve to posix style paths, using '/' as the
                              -                         directory separator, even on Windows. Drive letter
                              -                         absolute matches on Windows will be expanded to their
                              -                         full resolved UNC maths, eg instead of 'C:\foo\bar', it
                              -                         will expand to '//?/C:/foo/bar'.
                              -
                              -  -f --follow            Follow symlinked directories when expanding '**'
                              -  -R --realpath          Call 'fs.realpath' on all of the results. In the case
                              -                         of an entry that cannot be resolved, the entry is
                              -                         omitted. This incurs a slight performance penalty, of
                              -                         course, because of the added system calls.
                              -
                              -  -s --stat              Call 'fs.lstat' on all entries, whether required or not
                              -                         to determine if it's a valid match.
                              -
                              -  -b --match-base        Perform a basename-only match if the pattern does not
                              -                         contain any slash characters. That is, '*.js' would be
                              -                         treated as equivalent to '**/*.js', matching js files
                              -                         in all directories.
                              -
                              -  --dot                  Allow patterns to match files/directories that start
                              -                         with '.', even if the pattern does not start with '.'
                              -
                              -  --nobrace              Do not expand {...} patterns
                              -  --nocase               Perform a case-insensitive match. This defaults to
                              -                         'true' on macOS and Windows platforms, and false on all
                              -                         others.
                              -
                              -                         Note: 'nocase' should only be explicitly set when it is
                              -                         known that the filesystem's case sensitivity differs
                              -                         from the platform default. If set 'true' on
                              -                         case-insensitive file systems, then the walk may return
                              -                         more or less results than expected.
                              -
                              -  --nodir                Do not match directories, only files.
                              -
                              -                         Note: to *only* match directories, append a '/' at the
                              -                         end of the pattern.
                              -
                              -  --noext                Do not expand extglob patterns, such as '+(a|b)'
                              -  --noglobstar           Do not expand '**' against multiple path portions. Ie,
                              -                         treat it as a normal '*' instead.
                              -
                              -  --windows-path-no-escape
                              -                         Use '\' as a path separator *only*, and *never* as an
                              -                         escape character. If set, all '\' characters are
                              -                         replaced with '/' in the pattern.
                              -
                              -  -D --max-depth=  Maximum depth to traverse from the current working
                              -                         directory
                              -
                              -  -C --cwd=    Current working directory to execute/match in
                              -  -r --root= A string path resolved against the 'cwd', which is used
                              -                         as the starting point for absolute patterns that start
                              -                         with '/' (but not drive letters or UNC paths on
                              -                         Windows).
                              -
                              -                         Note that this *doesn't* necessarily limit the walk to
                              -                         the 'root' directory, and doesn't affect the cwd
                              -                         starting point for non-absolute patterns. A pattern
                              -                         containing '..' will still be able to traverse out of
                              -                         the root directory, if it is not an actual root
                              -                         directory on the filesystem, and any non-absolute
                              -                         patterns will still be matched in the 'cwd'.
                              -
                              -                         To start absolute and non-absolute patterns in the same
                              -                         path, you can use '--root=' to set it to the empty
                              -                         string. However, be aware that on Windows systems, a
                              -                         pattern like 'x:/*' or '//host/share/*' will *always*
                              -                         start in the 'x:/' or '//host/share/' directory,
                              -                         regardless of the --root setting.
                              -
                              -  --platform=  Defaults to the value of 'process.platform' if
                              -                         available, or 'linux' if not. Setting --platform=win32
                              -                         on non-Windows systems may cause strange behavior!
                              -
                              -  -i --ignore=
                              -                         Glob patterns to ignore Can be set multiple times
                              -  -v --debug             Output a huge amount of noisy debug information about
                              -                         patterns as they are parsed and used to match files.
                              -
                              -  -h --help              Show this usage information
                              -```
                              -
                              -## `glob(pattern: string | string[], options?: GlobOptions) => Promise`
                              -
                              -Perform an asynchronous glob search for the pattern(s) specified.
                              -Returns
                              -[Path](https://isaacs.github.io/path-scurry/classes/PathBase)
                              -objects if the `withFileTypes` option is set to `true`. See below
                              -for full options field desciptions.
                              -
                              -## `globSync(pattern: string | string[], options?: GlobOptions) => string[] | Path[]`
                              -
                              -Synchronous form of `glob()`.
                              -
                              -Alias: `glob.sync()`
                              -
                              -## `globIterate(pattern: string | string[], options?: GlobOptions) => AsyncGenerator`
                              -
                              -Return an async iterator for walking glob pattern matches.
                              -
                              -Alias: `glob.iterate()`
                              -
                              -## `globIterateSync(pattern: string | string[], options?: GlobOptions) => Generator`
                              -
                              -Return a sync iterator for walking glob pattern matches.
                              -
                              -Alias: `glob.iterate.sync()`, `glob.sync.iterate()`
                              -
                              -## `globStream(pattern: string | string[], options?: GlobOptions) => Minipass`
                              -
                              -Return a stream that emits all the strings or `Path` objects and
                              -then emits `end` when completed.
                              -
                              -Alias: `glob.stream()`
                              -
                              -## `globStreamSync(pattern: string | string[], options?: GlobOptions) => Minipass`
                              -
                              -Syncronous form of `globStream()`. Will read all the matches as
                              -fast as you consume them, even all in a single tick if you
                              -consume them immediately, but will still respond to backpressure
                              -if they're not consumed immediately.
                              -
                              -Alias: `glob.stream.sync()`, `glob.sync.stream()`
                              -
                              -## `hasMagic(pattern: string | string[], options?: GlobOptions) => boolean`
                              -
                              -Returns `true` if the provided pattern contains any "magic" glob
                              -characters, given the options provided.
                              -
                              -Brace expansion is not considered "magic" unless the
                              -`magicalBraces` option is set, as brace expansion just turns one
                              -string into an array of strings. So a pattern like `'x{a,b}y'`
                              -would return `false`, because `'xay'` and `'xby'` both do not
                              -contain any magic glob characters, and it's treated the same as
                              -if you had called it on `['xay', 'xby']`. When
                              -`magicalBraces:true` is in the options, brace expansion _is_
                              -treated as a pattern having magic.
                              -
                              -## `escape(pattern: string, options?: GlobOptions) => string`
                              -
                              -Escape all magic characters in a glob pattern, so that it will
                              -only ever match literal strings
                              -
                              -If the `windowsPathsNoEscape` option is used, then characters are
                              -escaped by wrapping in `[]`, because a magic character wrapped in
                              -a character class can only be satisfied by that exact character.
                              -
                              -Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot
                              -be escaped or unescaped.
                              -
                              -## `unescape(pattern: string, options?: GlobOptions) => string`
                              -
                              -Un-escape a glob string that may contain some escaped characters.
                              -
                              -If the `windowsPathsNoEscape` option is used, then square-brace
                              -escapes are removed, but not backslash escapes. For example, it
                              -will turn the string `'[*]'` into `*`, but it will not turn
                              -`'\\*'` into `'*'`, because `\` is a path separator in
                              -`windowsPathsNoEscape` mode.
                              -
                              -When `windowsPathsNoEscape` is not set, then both brace escapes
                              -and backslash escapes are removed.
                              -
                              -Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot
                              -be escaped or unescaped.
                              -
                              -## Class `Glob`
                              -
                              -An object that can perform glob pattern traversals.
                              -
                              -### `const g = new Glob(pattern: string | string[], options: GlobOptions)`
                              -
                              -Options object is required.
                              -
                              -See full options descriptions below.
                              -
                              -Note that a previous `Glob` object can be passed as the
                              -`GlobOptions` to another `Glob` instantiation to re-use settings
                              -and caches with a new pattern.
                              -
                              -Traversal functions can be called multiple times to run the walk
                              -again.
                              -
                              -### `g.stream()`
                              -
                              -Stream results asynchronously,
                              -
                              -### `g.streamSync()`
                              -
                              -Stream results synchronously.
                              -
                              -### `g.iterate()`
                              -
                              -Default async iteration function. Returns an AsyncGenerator that
                              -iterates over the results.
                              -
                              -### `g.iterateSync()`
                              -
                              -Default sync iteration function. Returns a Generator that
                              -iterates over the results.
                              -
                              -### `g.walk()`
                              -
                              -Returns a Promise that resolves to the results array.
                              -
                              -### `g.walkSync()`
                              -
                              -Returns a results array.
                              -
                              -### Properties
                              -
                              -All options are stored as properties on the `Glob` object.
                              -
                              -- `opts` The options provided to the constructor.
                              -- `patterns` An array of parsed immutable `Pattern` objects.
                              -
                              -## Options
                              -
                              -Exported as `GlobOptions` TypeScript interface. A `GlobOptions`
                              -object may be provided to any of the exported methods, and must
                              -be provided to the `Glob` constructor.
                              -
                              -All options are optional, boolean, and false by default, unless
                              -otherwise noted.
                              -
                              -All resolved options are added to the Glob object as properties.
                              -
                              -If you are running many `glob` operations, you can pass a Glob
                              -object as the `options` argument to a subsequent operation to
                              -share the previously loaded cache.
                              -
                              -- `cwd` String path or `file://` string or URL object. The
                              -  current working directory in which to search. Defaults to
                              -  `process.cwd()`. See also: "Windows, CWDs, Drive Letters, and
                              -  UNC Paths", below.
                              -
                              -  This option may be eiher a string path or a `file://` URL
                              -  object or string.
                              -
                              -- `root` A string path resolved against the `cwd` option, which
                              -  is used as the starting point for absolute patterns that start
                              -  with `/`, (but not drive letters or UNC paths on Windows).
                              -
                              -  Note that this _doesn't_ necessarily limit the walk to the
                              -  `root` directory, and doesn't affect the cwd starting point for
                              -  non-absolute patterns. A pattern containing `..` will still be
                              -  able to traverse out of the root directory, if it is not an
                              -  actual root directory on the filesystem, and any non-absolute
                              -  patterns will be matched in the `cwd`. For example, the
                              -  pattern `/../*` with `{root:'/some/path'}` will return all
                              -  files in `/some`, not all files in `/some/path`. The pattern
                              -  `*` with `{root:'/some/path'}` will return all the entries in
                              -  the cwd, not the entries in `/some/path`.
                              -
                              -  To start absolute and non-absolute patterns in the same
                              -  path, you can use `{root:''}`. However, be aware that on
                              -  Windows systems, a pattern like `x:/*` or `//host/share/*` will
                              -  _always_ start in the `x:/` or `//host/share` directory,
                              -  regardless of the `root` setting.
                              -
                              -- `windowsPathsNoEscape` Use `\\` as a path separator _only_, and
                              -  _never_ as an escape character. If set, all `\\` characters are
                              -  replaced with `/` in the pattern.
                              -
                              -  Note that this makes it **impossible** to match against paths
                              -  containing literal glob pattern characters, but allows matching
                              -  with patterns constructed using `path.join()` and
                              -  `path.resolve()` on Windows platforms, mimicking the (buggy!)
                              -  behavior of Glob v7 and before on Windows. Please use with
                              -  caution, and be mindful of [the caveat below about Windows
                              -  paths](#windows). (For legacy reasons, this is also set if
                              -  `allowWindowsEscape` is set to the exact value `false`.)
                              -
                              -- `dot` Include `.dot` files in normal matches and `globstar`
                              -  matches. Note that an explicit dot in a portion of the pattern
                              -  will always match dot files.
                              -
                              -- `magicalBraces` Treat brace expansion like `{a,b}` as a "magic"
                              -  pattern. Has no effect if {@link nobrace} is set.
                              -
                              -  Only has effect on the {@link hasMagic} function, no effect on
                              -  glob pattern matching itself.
                              -
                              -- `dotRelative` Prepend all relative path strings with `./` (or
                              -  `.\` on Windows).
                              -
                              -  Without this option, returned relative paths are "bare", so
                              -  instead of returning `'./foo/bar'`, they are returned as
                              -  `'foo/bar'`.
                              -
                              -  Relative patterns starting with `'../'` are not prepended with
                              -  `./`, even if this option is set.
                              -
                              -- `mark` Add a `/` character to directory matches. Note that this
                              -  requires additional stat calls.
                              -
                              -- `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
                              -
                              -- `noglobstar` Do not match `**` against multiple filenames. (Ie,
                              -  treat it as a normal `*` instead.)
                              -
                              -- `noext` Do not match "extglob" patterns such as `+(a|b)`.
                              -
                              -- `nocase` Perform a case-insensitive match. This defaults to
                              -  `true` on macOS and Windows systems, and `false` on all others.
                              -
                              -  **Note** `nocase` should only be explicitly set when it is
                              -  known that the filesystem's case sensitivity differs from the
                              -  platform default. If set `true` on case-sensitive file
                              -  systems, or `false` on case-insensitive file systems, then the
                              -  walk may return more or less results than expected.
                              -
                              -- `maxDepth` Specify a number to limit the depth of the directory
                              -  traversal to this many levels below the `cwd`.
                              -
                              -- `matchBase` Perform a basename-only match if the pattern does
                              -  not contain any slash characters. That is, `*.js` would be
                              -  treated as equivalent to `**/*.js`, matching all js files in
                              -  all directories.
                              -
                              -- `nodir` Do not match directories, only files. (Note: to match
                              -  _only_ directories, put a `/` at the end of the pattern.)
                              -
                              -- `stat` Call `lstat()` on all entries, whether required or not
                              -  to determine whether it's a valid match. When used with
                              -  `withFileTypes`, this means that matches will include data such
                              -  as modified time, permissions, and so on. Note that this will
                              -  incur a performance cost due to the added system calls.
                              -
                              -- `ignore` string or string[], or an object with `ignore` and
                              -  `ignoreChildren` methods.
                              -
                              -  If a string or string[] is provided, then this is treated as a
                              -  glob pattern or array of glob patterns to exclude from matches.
                              -  To ignore all children within a directory, as well as the entry
                              -  itself, append `'/**'` to the ignore pattern.
                              -
                              -  **Note** `ignore` patterns are _always_ in `dot:true` mode,
                              -  regardless of any other settings.
                              -
                              -  If an object is provided that has `ignored(path)` and/or
                              -  `childrenIgnored(path)` methods, then these methods will be
                              -  called to determine whether any Path is a match or if its
                              -  children should be traversed, respectively.
                              -
                              -- `follow` Follow symlinked directories when expanding `**`
                              -  patterns. This can result in a lot of duplicate references in
                              -  the presence of cyclic links, and make performance quite bad.
                              -
                              -  By default, a `**` in a pattern will follow 1 symbolic link if
                              -  it is not the first item in the pattern, or none if it is the
                              -  first item in the pattern, following the same behavior as Bash.
                              -
                              -- `realpath` Set to true to call `fs.realpath` on all of the
                              -  results. In the case of an entry that cannot be resolved, the
                              -  entry is omitted. This incurs a slight performance penalty, of
                              -  course, because of the added system calls.
                              -
                              -- `absolute` Set to true to always receive absolute paths for
                              -  matched files. Set to `false` to always receive relative paths
                              -  for matched files.
                              -
                              -  By default, when this option is not set, absolute paths are
                              -  returned for patterns that are absolute, and otherwise paths
                              -  are returned that are relative to the `cwd` setting.
                              -
                              -  This does _not_ make an extra system call to get the realpath,
                              -  it only does string path resolution.
                              -
                              -  `absolute` may not be used along with `withFileTypes`.
                              -
                              -- `posix` Set to true to use `/` as the path separator in
                              -  returned results. On posix systems, this has no effect. On
                              -  Windows systems, this will return `/` delimited path results,
                              -  and absolute paths will be returned in their full resolved UNC
                              -  path form, eg insted of `'C:\\foo\\bar'`, it will return
                              -  `//?/C:/foo/bar`.
                              -
                              -- `platform` Defaults to value of `process.platform` if
                              -  available, or `'linux'` if not. Setting `platform:'win32'` on
                              -  non-Windows systems may cause strange behavior.
                              -
                              -- `withFileTypes` Return [PathScurry](http://npm.im/path-scurry)
                              -  `Path` objects instead of strings. These are similar to a
                              -  NodeJS `Dirent` object, but with additional methods and
                              -  properties.
                              -
                              -  `withFileTypes` may not be used along with `absolute`.
                              -
                              -- `signal` An AbortSignal which will cancel the Glob walk when
                              -  triggered.
                              -
                              -- `fs` An override object to pass in custom filesystem methods.
                              -  See [PathScurry docs](http://npm.im/path-scurry) for what can
                              -  be overridden.
                              -
                              -- `scurry` A [PathScurry](http://npm.im/path-scurry) object used
                              -  to traverse the file system. If the `nocase` option is set
                              -  explicitly, then any provided `scurry` object must match this
                              -  setting.
                              -
                              -## Glob Primer
                              -
                              -Much more information about glob pattern expansion can be found
                              -by running `man bash` and searching for `Pattern Matching`.
                              -
                              -"Globs" are the patterns you type when you do stuff like `ls
                              -*.js` on the command line, or put `build/*` in a `.gitignore`
                              -file.
                              -
                              -Before parsing the path part patterns, braced sections are
                              -expanded into a set. Braced sections start with `{` and end with
                              -`}`, with 2 or more comma-delimited sections within. Braced
                              -sections may contain slash characters, so `a{/b/c,bcd}` would
                              -expand into `a/b/c` and `abcd`.
                              -
                              -The following characters have special magic meaning when used in
                              -a path portion. With the exception of `**`, none of these match
                              -path separators (ie, `/` on all platforms, and `\` on Windows).
                              -
                              -- `*` Matches 0 or more characters in a single path portion.
                              -  When alone in a path portion, it must match at least 1
                              -  character. If `dot:true` is not specified, then `*` will not
                              -  match against a `.` character at the start of a path portion.
                              -- `?` Matches 1 character. If `dot:true` is not specified, then
                              -  `?` will not match against a `.` character at the start of a
                              -  path portion.
                              -- `[...]` Matches a range of characters, similar to a RegExp
                              -  range. If the first character of the range is `!` or `^` then
                              -  it matches any character not in the range. If the first
                              -  character is `]`, then it will be considered the same as `\]`,
                              -  rather than the end of the character class.
                              -- `!(pattern|pattern|pattern)` Matches anything that does not
                              -  match any of the patterns provided. May _not_ contain `/`
                              -  characters. Similar to `*`, if alone in a path portion, then
                              -  the path portion must have at least one character.
                              -- `?(pattern|pattern|pattern)` Matches zero or one occurrence of
                              -  the patterns provided. May _not_ contain `/` characters.
                              -- `+(pattern|pattern|pattern)` Matches one or more occurrences of
                              -  the patterns provided. May _not_ contain `/` characters.
                              -- `*(a|b|c)` Matches zero or more occurrences of the patterns
                              -  provided. May _not_ contain `/` characters.
                              -- `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
                              -  provided. May _not_ contain `/` characters.
                              -- `**` If a "globstar" is alone in a path portion, then it
                              -  matches zero or more directories and subdirectories searching
                              -  for matches. It does not crawl symlinked directories, unless
                              -  `{follow:true}` is passed in the options object. A pattern
                              -  like `a/b/**` will only match `a/b` if it is a directory.
                              -  Follows 1 symbolic link if not the first item in the pattern,
                              -  or 0 if it is the first item, unless `follow:true` is set, in
                              -  which case it follows all symbolic links.
                              -
                              -`[:class:]` patterns are supported by this implementation, but
                              -`[=c=]` and `[.symbol.]` style class patterns are not.
                              -
                              -### Dots
                              -
                              -If a file or directory path portion has a `.` as the first
                              -character, then it will not match any glob pattern unless that
                              -pattern's corresponding path part also has a `.` as its first
                              -character.
                              -
                              -For example, the pattern `a/.*/c` would match the file at
                              -`a/.b/c`. However the pattern `a/*/c` would not, because `*` does
                              -not start with a dot character.
                              -
                              -You can make glob treat dots as normal characters by setting
                              -`dot:true` in the options.
                              -
                              -### Basename Matching
                              -
                              -If you set `matchBase:true` in the options, and the pattern has
                              -no slashes in it, then it will seek for any file anywhere in the
                              -tree with a matching basename. For example, `*.js` would match
                              -`test/simple/basic.js`.
                              -
                              -### Empty Sets
                              -
                              -If no matching files are found, then an empty array is returned.
                              -This differs from the shell, where the pattern itself is
                              -returned. For example:
                              -
                              -```sh
                              -$ echo a*s*d*f
                              -a*s*d*f
                              -```
                              -
                              -## Comparisons to other fnmatch/glob implementations
                              -
                              -While strict compliance with the existing standards is a
                              -worthwhile goal, some discrepancies exist between node-glob and
                              -other implementations, and are intentional.
                              -
                              -The double-star character `**` is supported by default, unless
                              -the `noglobstar` flag is set. This is supported in the manner of
                              -bsdglob and bash 5, where `**` only has special significance if
                              -it is the only thing in a path part. That is, `a/**/b` will match
                              -`a/x/y/b`, but `a/**b` will not.
                              -
                              -Note that symlinked directories are not traversed as part of a
                              -`**`, though their contents may match against subsequent portions
                              -of the pattern. This prevents infinite loops and duplicates and
                              -the like. You can force glob to traverse symlinks with `**` by
                              -setting `{follow:true}` in the options.
                              -
                              -There is no equivalent of the `nonull` option. A pattern that
                              -does not find any matches simply resolves to nothing. (An empty
                              -array, immediately ended stream, etc.)
                              -
                              -If brace expansion is not disabled, then it is performed before
                              -any other interpretation of the glob pattern. Thus, a pattern
                              -like `+(a|{b),c)}`, which would not be valid in bash or zsh, is
                              -expanded **first** into the set of `+(a|b)` and `+(a|c)`, and
                              -those patterns are checked for validity. Since those two are
                              -valid, matching proceeds.
                              -
                              -The character class patterns `[:class:]` (posix standard named
                              -classes) style class patterns are supported and unicode-aware,
                              -but `[=c=]` (locale-specific character collation weight), and
                              -`[.symbol.]` (collating symbol), are not.
                              -
                              -### Repeated Slashes
                              -
                              -Unlike Bash and zsh, repeated `/` are always coalesced into a
                              -single path separator.
                              -
                              -### Comments and Negation
                              -
                              -Previously, this module let you mark a pattern as a "comment" if
                              -it started with a `#` character, or a "negated" pattern if it
                              -started with a `!` character.
                              -
                              -These options were deprecated in version 5, and removed in
                              -version 6.
                              -
                              -To specify things that should not match, use the `ignore` option.
                              -
                              -## Windows
                              -
                              -**Please only use forward-slashes in glob expressions.**
                              -
                              -Though windows uses either `/` or `\` as its path separator, only
                              -`/` characters are used by this glob implementation. You must use
                              -forward-slashes **only** in glob expressions. Back-slashes will
                              -always be interpreted as escape characters, not path separators.
                              -
                              -Results from absolute patterns such as `/foo/*` are mounted onto
                              -the root setting using `path.join`. On windows, this will by
                              -default result in `/foo/*` matching `C:\foo\bar.txt`.
                              -
                              -To automatically coerce all `\` characters to `/` in pattern
                              -strings, **thus making it impossible to escape literal glob
                              -characters**, you may set the `windowsPathsNoEscape` option to
                              -`true`.
                              -
                              -### Windows, CWDs, Drive Letters, and UNC Paths
                              -
                              -On posix systems, when a pattern starts with `/`, any `cwd`
                              -option is ignored, and the traversal starts at `/`, plus any
                              -non-magic path portions specified in the pattern.
                              -
                              -On Windows systems, the behavior is similar, but the concept of
                              -an "absolute path" is somewhat more involved.
                              -
                              -#### UNC Paths
                              -
                              -A UNC path may be used as the start of a pattern on Windows
                              -platforms. For example, a pattern like: `//?/x:/*` will return
                              -all file entries in the root of the `x:` drive. A pattern like
                              -`//ComputerName/Share/*` will return all files in the associated
                              -share.
                              -
                              -UNC path roots are always compared case insensitively.
                              -
                              -#### Drive Letters
                              -
                              -A pattern starting with a drive letter, like `c:/*`, will search
                              -in that drive, regardless of any `cwd` option provided.
                              -
                              -If the pattern starts with `/`, and is not a UNC path, and there
                              -is an explicit `cwd` option set with a drive letter, then the
                              -drive letter in the `cwd` is used as the root of the directory
                              -traversal.
                              -
                              -For example, `glob('/tmp', { cwd: 'c:/any/thing' })` will return
                              -`['c:/tmp']` as the result.
                              -
                              -If an explicit `cwd` option is not provided, and the pattern
                              -starts with `/`, then the traversal will run on the root of the
                              -drive provided as the `cwd` option. (That is, it is the result of
                              -`path.resolve('/')`.)
                              -
                              -## Race Conditions
                              -
                              -Glob searching, by its very nature, is susceptible to race
                              -conditions, since it relies on directory walking.
                              -
                              -As a result, it is possible that a file that exists when glob
                              -looks for it may have been deleted or modified by the time it
                              -returns the result.
                              -
                              -By design, this implementation caches all readdir calls that it
                              -makes, in order to cut down on system overhead. However, this
                              -also makes it even more susceptible to races, especially if the
                              -cache object is reused between glob calls.
                              -
                              -Users are thus advised not to use a glob result as a guarantee of
                              -filesystem state in the face of rapid changes. For the vast
                              -majority of operations, this is never a problem.
                              -
                              -### See Also:
                              -
                              -- `man sh`
                              -- `man bash` [Pattern
                              -  Matching](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html)
                              -- `man 3 fnmatch`
                              -- `man 5 gitignore`
                              -- [minimatch documentation](https://github.com/isaacs/minimatch)
                              -
                              -## Glob Logo
                              -
                              -Glob's logo was created by [Tanya
                              -Brassie](http://tanyabrassie.com/). Logo files can be found
                              -[here](https://github.com/isaacs/node-glob/tree/master/logo).
                              -
                              -The logo is licensed under a [Creative Commons
                              -Attribution-ShareAlike 4.0 International
                              -License](https://creativecommons.org/licenses/by-sa/4.0/).
                              -
                              -## Contributing
                              -
                              -Any change to behavior (including bugfixes) must come with a
                              -test.
                              -
                              -Patches that fail tests or reduce performance will be rejected.
                              -
                              -```sh
                              -# to run tests
                              -npm test
                              -
                              -# to re-generate test fixtures
                              -npm run test-regen
                              -
                              -# run the benchmarks
                              -npm run bench
                              -
                              -# to profile javascript
                              -npm run prof
                              -```
                              -
                              -## Comparison to Other JavaScript Glob Implementations
                              -
                              -**tl;dr**
                              -
                              -- If you want glob matching that is as faithful as possible to
                              -  Bash pattern expansion semantics, and as fast as possible
                              -  within that constraint, _use this module_.
                              -- If you are reasonably sure that the patterns you will encounter
                              -  are relatively simple, and want the absolutely fastest glob
                              -  matcher out there, _use [fast-glob](http://npm.im/fast-glob)_.
                              -- If you are reasonably sure that the patterns you will encounter
                              -  are relatively simple, and want the convenience of
                              -  automatically respecting `.gitignore` files, _use
                              -  [globby](http://npm.im/globby)_.
                              -
                              -There are some other glob matcher libraries on npm, but these
                              -three are (in my opinion, as of 2023) the best.
                              -
                              ----
                              -
                              -**full explanation**
                              -
                              -Every library reflects a set of opinions and priorities in the
                              -trade-offs it makes. Other than this library, I can personally
                              -recommend both [globby](http://npm.im/globby) and
                              -[fast-glob](http://npm.im/fast-glob), though they differ in their
                              -benefits and drawbacks.
                              -
                              -Both have very nice APIs and are reasonably fast.
                              -
                              -`fast-glob` is, as far as I am aware, the fastest glob
                              -implementation in JavaScript today. However, there are many
                              -cases where the choices that `fast-glob` makes in pursuit of
                              -speed mean that its results differ from the results returned by
                              -Bash and other sh-like shells, which may be surprising.
                              -
                              -In my testing, `fast-glob` is around 10-20% faster than this
                              -module when walking over 200k files nested 4 directories
                              -deep[1](#fn-webscale). However, there are some inconsistencies
                              -with Bash matching behavior that this module does not suffer
                              -from:
                              -
                              -- `**` only matches files, not directories
                              -- `..` path portions are not handled unless they appear at the
                              -  start of the pattern
                              -- `./!()` will not match any files that _start_ with
                              -  ``, even if they do not match ``. For
                              -  example, `!(9).txt` will not match `9999.txt`.
                              -- Some brace patterns in the middle of a pattern will result in
                              -  failing to find certain matches.
                              -- Extglob patterns are allowed to contain `/` characters.
                              -
                              -Globby exhibits all of the same pattern semantics as fast-glob,
                              -(as it is a wrapper around fast-glob) and is slightly slower than
                              -node-glob (by about 10-20% in the benchmark test set, or in other
                              -words, anywhere from 20-50% slower than fast-glob). However, it
                              -adds some API conveniences that may be worth the costs.
                              -
                              -- Support for `.gitignore` and other ignore files.
                              -- Support for negated globs (ie, patterns starting with `!`
                              -  rather than using a separate `ignore` option).
                              -
                              -The priority of this module is "correctness" in the sense of
                              -performing a glob pattern expansion as faithfully as possible to
                              -the behavior of Bash and other sh-like shells, with as much speed
                              -as possible.
                              -
                              -Note that prior versions of `node-glob` are _not_ on this list.
                              -Former versions of this module are far too slow for any cases
                              -where performance matters at all, and were designed with APIs
                              -that are extremely dated by current JavaScript standards.
                              -
                              ----
                              -
                              -[1]: In the cases where this module
                              -returns results and `fast-glob` doesn't, it's even faster, of
                              -course.
                              -
                              -![lumpy space princess saying 'oh my GLOB'](https://github.com/isaacs/node-glob/raw/main/oh-my-glob.gif)
                              -
                              -### Benchmark Results
                              -
                              -First number is time, smaller is better.
                              -
                              -Second number is the count of results returned.
                              -
                              -```
                              ---- pattern: '**' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.598s  200364
                              -node globby sync                0m0.765s  200364
                              -node current globSync mjs       0m0.683s  222656
                              -node current glob syncStream    0m0.649s  222656
                              -~~ async ~~
                              -node fast-glob async            0m0.350s  200364
                              -node globby async               0m0.509s  200364
                              -node current glob async mjs     0m0.463s  222656
                              -node current glob stream        0m0.411s  222656
                              -
                              ---- pattern: '**/..' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.486s  0
                              -node globby sync                0m0.769s  200364
                              -node current globSync mjs       0m0.564s  2242
                              -node current glob syncStream    0m0.583s  2242
                              -~~ async ~~
                              -node fast-glob async            0m0.283s  0
                              -node globby async               0m0.512s  200364
                              -node current glob async mjs     0m0.299s  2242
                              -node current glob stream        0m0.312s  2242
                              -
                              ---- pattern: './**/0/**/0/**/0/**/0/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.490s  10
                              -node globby sync                0m0.517s  10
                              -node current globSync mjs       0m0.540s  10
                              -node current glob syncStream    0m0.550s  10
                              -~~ async ~~
                              -node fast-glob async            0m0.290s  10
                              -node globby async               0m0.296s  10
                              -node current glob async mjs     0m0.278s  10
                              -node current glob stream        0m0.302s  10
                              -
                              ---- pattern: './**/[01]/**/[12]/**/[23]/**/[45]/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.500s  160
                              -node globby sync                0m0.528s  160
                              -node current globSync mjs       0m0.556s  160
                              -node current glob syncStream    0m0.573s  160
                              -~~ async ~~
                              -node fast-glob async            0m0.283s  160
                              -node globby async               0m0.301s  160
                              -node current glob async mjs     0m0.306s  160
                              -node current glob stream        0m0.322s  160
                              -
                              ---- pattern: './**/0/**/0/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.502s  5230
                              -node globby sync                0m0.527s  5230
                              -node current globSync mjs       0m0.544s  5230
                              -node current glob syncStream    0m0.557s  5230
                              -~~ async ~~
                              -node fast-glob async            0m0.285s  5230
                              -node globby async               0m0.305s  5230
                              -node current glob async mjs     0m0.304s  5230
                              -node current glob stream        0m0.310s  5230
                              -
                              ---- pattern: '**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.580s  200023
                              -node globby sync                0m0.771s  200023
                              -node current globSync mjs       0m0.685s  200023
                              -node current glob syncStream    0m0.649s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.349s  200023
                              -node globby async               0m0.509s  200023
                              -node current glob async mjs     0m0.427s  200023
                              -node current glob stream        0m0.388s  200023
                              -
                              ---- pattern: '{**/*.txt,**/?/**/*.txt,**/?/**/?/**/*.txt,**/?/**/?/**/?/**/*.txt,**/?/**/?/**/?/**/?/**/*.txt}' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.589s  200023
                              -node globby sync                0m0.771s  200023
                              -node current globSync mjs       0m0.716s  200023
                              -node current glob syncStream    0m0.684s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.351s  200023
                              -node globby async               0m0.518s  200023
                              -node current glob async mjs     0m0.462s  200023
                              -node current glob stream        0m0.468s  200023
                              -
                              ---- pattern: '**/5555/0000/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.496s  1000
                              -node globby sync                0m0.519s  1000
                              -node current globSync mjs       0m0.539s  1000
                              -node current glob syncStream    0m0.567s  1000
                              -~~ async ~~
                              -node fast-glob async            0m0.285s  1000
                              -node globby async               0m0.299s  1000
                              -node current glob async mjs     0m0.305s  1000
                              -node current glob stream        0m0.301s  1000
                              -
                              ---- pattern: './**/0/**/../[01]/**/0/../**/0/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.484s  0
                              -node globby sync                0m0.507s  0
                              -node current globSync mjs       0m0.577s  4880
                              -node current glob syncStream    0m0.586s  4880
                              -~~ async ~~
                              -node fast-glob async            0m0.280s  0
                              -node globby async               0m0.298s  0
                              -node current glob async mjs     0m0.327s  4880
                              -node current glob stream        0m0.324s  4880
                              -
                              ---- pattern: '**/????/????/????/????/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.547s  100000
                              -node globby sync                0m0.673s  100000
                              -node current globSync mjs       0m0.626s  100000
                              -node current glob syncStream    0m0.618s  100000
                              -~~ async ~~
                              -node fast-glob async            0m0.315s  100000
                              -node globby async               0m0.414s  100000
                              -node current glob async mjs     0m0.366s  100000
                              -node current glob stream        0m0.345s  100000
                              -
                              ---- pattern: './{**/?{/**/?{/**/?{/**/?,,,,},,,,},,,,},,,}/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.588s  100000
                              -node globby sync                0m0.670s  100000
                              -node current globSync mjs       0m0.717s  200023
                              -node current glob syncStream    0m0.687s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.343s  100000
                              -node globby async               0m0.418s  100000
                              -node current glob async mjs     0m0.519s  200023
                              -node current glob stream        0m0.451s  200023
                              -
                              ---- pattern: '**/!(0|9).txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.573s  160023
                              -node globby sync                0m0.731s  160023
                              -node current globSync mjs       0m0.680s  180023
                              -node current glob syncStream    0m0.659s  180023
                              -~~ async ~~
                              -node fast-glob async            0m0.345s  160023
                              -node globby async               0m0.476s  160023
                              -node current glob async mjs     0m0.427s  180023
                              -node current glob stream        0m0.388s  180023
                              -
                              ---- pattern: './{*/**/../{*/**/../{*/**/../{*/**/../{*/**,,,,},,,,},,,,},,,,},,,,}/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.483s  0
                              -node globby sync                0m0.512s  0
                              -node current globSync mjs       0m0.811s  200023
                              -node current glob syncStream    0m0.773s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.280s  0
                              -node globby async               0m0.299s  0
                              -node current glob async mjs     0m0.617s  200023
                              -node current glob stream        0m0.568s  200023
                              -
                              ---- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.485s  0
                              -node globby sync                0m0.507s  0
                              -node current globSync mjs       0m0.759s  200023
                              -node current glob syncStream    0m0.740s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.281s  0
                              -node globby async               0m0.297s  0
                              -node current glob async mjs     0m0.544s  200023
                              -node current glob stream        0m0.464s  200023
                              -
                              ---- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.486s  0
                              -node globby sync                0m0.513s  0
                              -node current globSync mjs       0m0.734s  200023
                              -node current glob syncStream    0m0.696s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.286s  0
                              -node globby async               0m0.296s  0
                              -node current glob async mjs     0m0.506s  200023
                              -node current glob stream        0m0.483s  200023
                              -
                              ---- pattern: './0/**/../1/**/../2/**/../3/**/../4/**/../5/**/../6/**/../7/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.060s  0
                              -node globby sync                0m0.074s  0
                              -node current globSync mjs       0m0.067s  0
                              -node current glob syncStream    0m0.066s  0
                              -~~ async ~~
                              -node fast-glob async            0m0.060s  0
                              -node globby async               0m0.075s  0
                              -node current glob async mjs     0m0.066s  0
                              -node current glob stream        0m0.067s  0
                              -
                              ---- pattern: './**/?/**/?/**/?/**/?/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.568s  100000
                              -node globby sync                0m0.651s  100000
                              -node current globSync mjs       0m0.619s  100000
                              -node current glob syncStream    0m0.617s  100000
                              -~~ async ~~
                              -node fast-glob async            0m0.332s  100000
                              -node globby async               0m0.409s  100000
                              -node current glob async mjs     0m0.372s  100000
                              -node current glob stream        0m0.351s  100000
                              -
                              ---- pattern: '**/*/**/*/**/*/**/*/**' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.603s  200113
                              -node globby sync                0m0.798s  200113
                              -node current globSync mjs       0m0.730s  222137
                              -node current glob syncStream    0m0.693s  222137
                              -~~ async ~~
                              -node fast-glob async            0m0.356s  200113
                              -node globby async               0m0.525s  200113
                              -node current glob async mjs     0m0.508s  222137
                              -node current glob stream        0m0.455s  222137
                              -
                              ---- pattern: './**/*/**/*/**/*/**/*/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.622s  200000
                              -node globby sync                0m0.792s  200000
                              -node current globSync mjs       0m0.722s  200000
                              -node current glob syncStream    0m0.695s  200000
                              -~~ async ~~
                              -node fast-glob async            0m0.369s  200000
                              -node globby async               0m0.527s  200000
                              -node current glob async mjs     0m0.502s  200000
                              -node current glob stream        0m0.481s  200000
                              -
                              ---- pattern: '**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.588s  200023
                              -node globby sync                0m0.771s  200023
                              -node current globSync mjs       0m0.684s  200023
                              -node current glob syncStream    0m0.658s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.352s  200023
                              -node globby async               0m0.516s  200023
                              -node current glob async mjs     0m0.432s  200023
                              -node current glob stream        0m0.384s  200023
                              -
                              ---- pattern: './**/**/**/**/**/**/**/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.589s  200023
                              -node globby sync                0m0.766s  200023
                              -node current globSync mjs       0m0.682s  200023
                              -node current glob syncStream    0m0.652s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.352s  200023
                              -node globby async               0m0.523s  200023
                              -node current glob async mjs     0m0.436s  200023
                              -node current glob stream        0m0.380s  200023
                              -
                              ---- pattern: '**/*/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.592s  200023
                              -node globby sync                0m0.776s  200023
                              -node current globSync mjs       0m0.691s  200023
                              -node current glob syncStream    0m0.659s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.357s  200023
                              -node globby async               0m0.513s  200023
                              -node current glob async mjs     0m0.471s  200023
                              -node current glob stream        0m0.424s  200023
                              -
                              ---- pattern: '**/*/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.585s  200023
                              -node globby sync                0m0.766s  200023
                              -node current globSync mjs       0m0.694s  200023
                              -node current glob syncStream    0m0.664s  200023
                              -~~ async ~~
                              -node fast-glob async            0m0.350s  200023
                              -node globby async               0m0.514s  200023
                              -node current glob async mjs     0m0.472s  200023
                              -node current glob stream        0m0.424s  200023
                              -
                              ---- pattern: '**/[0-9]/**/*.txt' ---
                              -~~ sync ~~
                              -node fast-glob sync             0m0.544s  100000
                              -node globby sync                0m0.636s  100000
                              -node current globSync mjs       0m0.626s  100000
                              -node current glob syncStream    0m0.621s  100000
                              -~~ async ~~
                              -node fast-glob async            0m0.322s  100000
                              -node globby async               0m0.404s  100000
                              -node current glob async mjs     0m0.360s  100000
                              -node current glob stream        0m0.352s  100000
                              -```
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/package.json
                              deleted file mode 100644
                              index c15df94a3582bf..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/package.json
                              +++ /dev/null
                              @@ -1,4 +0,0 @@
                              -{
                              -  "version": "10.3.3",
                              -  "type": "commonjs"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts
                              deleted file mode 100644
                              index 34e005228653c8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -#!/usr/bin/env node
                              -export {};
                              -//# sourceMappingURL=bin.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts.map
                              deleted file mode 100644
                              index c10c656ec75109..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../../src/bin.ts"],"names":[],"mappings":""}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js
                              deleted file mode 100755
                              index 4a8a88f2734d2e..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js
                              +++ /dev/null
                              @@ -1,270 +0,0 @@
                              -#!/usr/bin/env node
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -const foreground_child_1 = require("foreground-child");
                              -const fs_1 = require("fs");
                              -const jackspeak_1 = require("jackspeak");
                              -const package_json_1 = require("../package.json");
                              -const index_js_1 = require("./index.js");
                              -const j = (0, jackspeak_1.jack)({
                              -    usage: 'glob [options] [ [ ...]]',
                              -})
                              -    .description(`
                              -    Glob v${package_json_1.version}
                              -
                              -    Expand the positional glob expression arguments into any matching file
                              -    system paths found.
                              -  `)
                              -    .opt({
                              -    cmd: {
                              -        short: 'c',
                              -        hint: 'command',
                              -        description: `Run the command provided, passing the glob expression
                              -                    matches as arguments.`,
                              -    },
                              -})
                              -    .opt({
                              -    default: {
                              -        short: 'p',
                              -        hint: 'pattern',
                              -        description: `If no positional arguments are provided, glob will use
                              -                    this pattern`,
                              -    },
                              -})
                              -    .flag({
                              -    all: {
                              -        short: 'A',
                              -        description: `By default, the glob cli command will not expand any
                              -                    arguments that are an exact match to a file on disk.
                              -
                              -                    This prevents double-expanding, in case the shell expands
                              -                    an argument whose filename is a glob expression.
                              -
                              -                    For example, if 'app/*.ts' would match 'app/[id].ts', then
                              -                    on Windows powershell or cmd.exe, 'glob app/*.ts' will
                              -                    expand to 'app/[id].ts', as expected. However, in posix
                              -                    shells such as bash or zsh, the shell will first expand
                              -                    'app/*.ts' to a list of filenames. Then glob will look
                              -                    for a file matching 'app/[id].ts' (ie, 'app/i.ts' or
                              -                    'app/d.ts'), which is unexpected.
                              -
                              -                    Setting '--all' prevents this behavior, causing glob
                              -                    to treat ALL patterns as glob expressions to be expanded,
                              -                    even if they are an exact match to a file on disk.
                              -
                              -                    When setting this option, be sure to enquote arguments
                              -                    so that the shell will not expand them prior to passing
                              -                    them to the glob command process.
                              -      `,
                              -    },
                              -    absolute: {
                              -        short: 'a',
                              -        description: 'Expand to absolute paths',
                              -    },
                              -    'dot-relative': {
                              -        short: 'd',
                              -        description: `Prepend './' on relative matches`,
                              -    },
                              -    mark: {
                              -        short: 'm',
                              -        description: `Append a / on any directories matched`,
                              -    },
                              -    posix: {
                              -        short: 'x',
                              -        description: `Always resolve to posix style paths, using '/' as the
                              -                    directory separator, even on Windows. Drive letter
                              -                    absolute matches on Windows will be expanded to their
                              -                    full resolved UNC maths, eg instead of 'C:\\foo\\bar',
                              -                    it will expand to '//?/C:/foo/bar'.
                              -      `,
                              -    },
                              -    follow: {
                              -        short: 'f',
                              -        description: `Follow symlinked directories when expanding '**'`,
                              -    },
                              -    realpath: {
                              -        short: 'R',
                              -        description: `Call 'fs.realpath' on all of the results. In the case
                              -                    of an entry that cannot be resolved, the entry is
                              -                    omitted. This incurs a slight performance penalty, of
                              -                    course, because of the added system calls.`,
                              -    },
                              -    stat: {
                              -        short: 's',
                              -        description: `Call 'fs.lstat' on all entries, whether required or not
                              -                    to determine if it's a valid match.`,
                              -    },
                              -    'match-base': {
                              -        short: 'b',
                              -        description: `Perform a basename-only match if the pattern does not
                              -                    contain any slash characters. That is, '*.js' would be
                              -                    treated as equivalent to '**/*.js', matching js files
                              -                    in all directories.
                              -      `,
                              -    },
                              -    dot: {
                              -        description: `Allow patterns to match files/directories that start
                              -                    with '.', even if the pattern does not start with '.'
                              -      `,
                              -    },
                              -    nobrace: {
                              -        description: 'Do not expand {...} patterns',
                              -    },
                              -    nocase: {
                              -        description: `Perform a case-insensitive match. This defaults to
                              -                    'true' on macOS and Windows platforms, and false on
                              -                    all others.
                              -
                              -                    Note: 'nocase' should only be explicitly set when it is
                              -                    known that the filesystem's case sensitivity differs
                              -                    from the platform default. If set 'true' on
                              -                    case-insensitive file systems, then the walk may return
                              -                    more or less results than expected.
                              -      `,
                              -    },
                              -    nodir: {
                              -        description: `Do not match directories, only files.
                              -
                              -                    Note: to *only* match directories, append a '/' at the
                              -                    end of the pattern.
                              -      `,
                              -    },
                              -    noext: {
                              -        description: `Do not expand extglob patterns, such as '+(a|b)'`,
                              -    },
                              -    noglobstar: {
                              -        description: `Do not expand '**' against multiple path portions.
                              -                    Ie, treat it as a normal '*' instead.`,
                              -    },
                              -    'windows-path-no-escape': {
                              -        description: `Use '\\' as a path separator *only*, and *never* as an
                              -                    escape character. If set, all '\\' characters are
                              -                    replaced with '/' in the pattern.`,
                              -    },
                              -})
                              -    .num({
                              -    'max-depth': {
                              -        short: 'D',
                              -        description: `Maximum depth to traverse from the current
                              -                    working directory`,
                              -    },
                              -})
                              -    .opt({
                              -    cwd: {
                              -        short: 'C',
                              -        description: 'Current working directory to execute/match in',
                              -        default: process.cwd(),
                              -    },
                              -    root: {
                              -        short: 'r',
                              -        description: `A string path resolved against the 'cwd', which is
                              -                    used as the starting point for absolute patterns that
                              -                    start with '/' (but not drive letters or UNC paths
                              -                    on Windows).
                              -
                              -                    Note that this *doesn't* necessarily limit the walk to
                              -                    the 'root' directory, and doesn't affect the cwd
                              -                    starting point for non-absolute patterns. A pattern
                              -                    containing '..' will still be able to traverse out of
                              -                    the root directory, if it is not an actual root directory
                              -                    on the filesystem, and any non-absolute patterns will
                              -                    still be matched in the 'cwd'.
                              -
                              -                    To start absolute and non-absolute patterns in the same
                              -                    path, you can use '--root=' to set it to the empty
                              -                    string. However, be aware that on Windows systems, a
                              -                    pattern like 'x:/*' or '//host/share/*' will *always*
                              -                    start in the 'x:/' or '//host/share/' directory,
                              -                    regardless of the --root setting.
                              -      `,
                              -    },
                              -    platform: {
                              -        description: `Defaults to the value of 'process.platform' if
                              -                    available, or 'linux' if not. Setting --platform=win32
                              -                    on non-Windows systems may cause strange behavior!`,
                              -        validate: v => new Set([
                              -            'aix',
                              -            'android',
                              -            'darwin',
                              -            'freebsd',
                              -            'haiku',
                              -            'linux',
                              -            'openbsd',
                              -            'sunos',
                              -            'win32',
                              -            'cygwin',
                              -            'netbsd',
                              -        ]).has(v),
                              -    },
                              -})
                              -    .optList({
                              -    ignore: {
                              -        short: 'i',
                              -        description: `Glob patterns to ignore`,
                              -    },
                              -})
                              -    .flag({
                              -    debug: {
                              -        short: 'v',
                              -        description: `Output a huge amount of noisy debug information about
                              -                    patterns as they are parsed and used to match files.`,
                              -    },
                              -})
                              -    .flag({
                              -    help: {
                              -        short: 'h',
                              -        description: 'Show this usage information',
                              -    },
                              -});
                              -try {
                              -    const { positionals, values } = j.parse();
                              -    if (values.help) {
                              -        console.log(j.usage());
                              -        process.exit(0);
                              -    }
                              -    if (positionals.length === 0 && !values.default)
                              -        throw 'No patterns provided';
                              -    if (positionals.length === 0 && values.default)
                              -        positionals.push(values.default);
                              -    const patterns = values.all
                              -        ? positionals
                              -        : positionals.filter(p => !(0, fs_1.existsSync)(p));
                              -    const matches = values.all ? [] : positionals.filter(p => (0, fs_1.existsSync)(p));
                              -    const stream = (0, index_js_1.globStream)(patterns, {
                              -        absolute: values.absolute,
                              -        cwd: values.cwd,
                              -        dot: values.dot,
                              -        dotRelative: values['dot-relative'],
                              -        follow: values.follow,
                              -        ignore: values.ignore,
                              -        mark: values.mark,
                              -        matchBase: values['match-base'],
                              -        maxDepth: values['max-depth'],
                              -        nobrace: values.nobrace,
                              -        nocase: values.nocase,
                              -        nodir: values.nodir,
                              -        noext: values.noext,
                              -        noglobstar: values.noglobstar,
                              -        platform: values.platform,
                              -        realpath: values.realpath,
                              -        root: values.root,
                              -        stat: values.stat,
                              -        debug: values.debug,
                              -        posix: values.posix,
                              -    });
                              -    const cmd = values.cmd;
                              -    if (!cmd) {
                              -        matches.forEach(m => console.log(m));
                              -        stream.on('data', f => console.log(f));
                              -    }
                              -    else {
                              -        stream.on('data', f => matches.push(f));
                              -        stream.on('end', () => (0, foreground_child_1.foregroundChild)(cmd, matches, { shell: true }));
                              -    }
                              -}
                              -catch (e) {
                              -    console.error(j.usage());
                              -    console.error(e instanceof Error ? e.message : String(e));
                              -    process.exit(1);
                              -}
                              -//# sourceMappingURL=bin.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js.map
                              deleted file mode 100644
                              index e189acfd01b1a7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/bin.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../../src/bin.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\nimport { foregroundChild } from 'foreground-child'\nimport { existsSync } from 'fs'\nimport { jack } from 'jackspeak'\nimport { version } from '../package.json'\nimport { globStream } from './index.js'\n\nconst j = jack({\n  usage: 'glob [options] [ [ ...]]',\n})\n  .description(\n    `\n    Glob v${version}\n\n    Expand the positional glob expression arguments into any matching file\n    system paths found.\n  `\n  )\n  .opt({\n    cmd: {\n      short: 'c',\n      hint: 'command',\n      description: `Run the command provided, passing the glob expression\n                    matches as arguments.`,\n    },\n  })\n  .opt({\n    default: {\n      short: 'p',\n      hint: 'pattern',\n      description: `If no positional arguments are provided, glob will use\n                    this pattern`,\n    },\n  })\n  .flag({\n    all: {\n      short: 'A',\n      description: `By default, the glob cli command will not expand any\n                    arguments that are an exact match to a file on disk.\n\n                    This prevents double-expanding, in case the shell expands\n                    an argument whose filename is a glob expression.\n\n                    For example, if 'app/*.ts' would match 'app/[id].ts', then\n                    on Windows powershell or cmd.exe, 'glob app/*.ts' will\n                    expand to 'app/[id].ts', as expected. However, in posix\n                    shells such as bash or zsh, the shell will first expand\n                    'app/*.ts' to a list of filenames. Then glob will look\n                    for a file matching 'app/[id].ts' (ie, 'app/i.ts' or\n                    'app/d.ts'), which is unexpected.\n\n                    Setting '--all' prevents this behavior, causing glob\n                    to treat ALL patterns as glob expressions to be expanded,\n                    even if they are an exact match to a file on disk.\n\n                    When setting this option, be sure to enquote arguments\n                    so that the shell will not expand them prior to passing\n                    them to the glob command process.\n      `,\n    },\n    absolute: {\n      short: 'a',\n      description: 'Expand to absolute paths',\n    },\n    'dot-relative': {\n      short: 'd',\n      description: `Prepend './' on relative matches`,\n    },\n    mark: {\n      short: 'm',\n      description: `Append a / on any directories matched`,\n    },\n    posix: {\n      short: 'x',\n      description: `Always resolve to posix style paths, using '/' as the\n                    directory separator, even on Windows. Drive letter\n                    absolute matches on Windows will be expanded to their\n                    full resolved UNC maths, eg instead of 'C:\\\\foo\\\\bar',\n                    it will expand to '//?/C:/foo/bar'.\n      `,\n    },\n\n    follow: {\n      short: 'f',\n      description: `Follow symlinked directories when expanding '**'`,\n    },\n    realpath: {\n      short: 'R',\n      description: `Call 'fs.realpath' on all of the results. In the case\n                    of an entry that cannot be resolved, the entry is\n                    omitted. This incurs a slight performance penalty, of\n                    course, because of the added system calls.`,\n    },\n    stat: {\n      short: 's',\n      description: `Call 'fs.lstat' on all entries, whether required or not\n                    to determine if it's a valid match.`,\n    },\n    'match-base': {\n      short: 'b',\n      description: `Perform a basename-only match if the pattern does not\n                    contain any slash characters. That is, '*.js' would be\n                    treated as equivalent to '**/*.js', matching js files\n                    in all directories.\n      `,\n    },\n\n    dot: {\n      description: `Allow patterns to match files/directories that start\n                    with '.', even if the pattern does not start with '.'\n      `,\n    },\n    nobrace: {\n      description: 'Do not expand {...} patterns',\n    },\n    nocase: {\n      description: `Perform a case-insensitive match. This defaults to\n                    'true' on macOS and Windows platforms, and false on\n                    all others.\n\n                    Note: 'nocase' should only be explicitly set when it is\n                    known that the filesystem's case sensitivity differs\n                    from the platform default. If set 'true' on\n                    case-insensitive file systems, then the walk may return\n                    more or less results than expected.\n      `,\n    },\n    nodir: {\n      description: `Do not match directories, only files.\n\n                    Note: to *only* match directories, append a '/' at the\n                    end of the pattern.\n      `,\n    },\n    noext: {\n      description: `Do not expand extglob patterns, such as '+(a|b)'`,\n    },\n    noglobstar: {\n      description: `Do not expand '**' against multiple path portions.\n                    Ie, treat it as a normal '*' instead.`,\n    },\n    'windows-path-no-escape': {\n      description: `Use '\\\\' as a path separator *only*, and *never* as an\n                    escape character. If set, all '\\\\' characters are\n                    replaced with '/' in the pattern.`,\n    },\n  })\n  .num({\n    'max-depth': {\n      short: 'D',\n      description: `Maximum depth to traverse from the current\n                    working directory`,\n    },\n  })\n  .opt({\n    cwd: {\n      short: 'C',\n      description: 'Current working directory to execute/match in',\n      default: process.cwd(),\n    },\n    root: {\n      short: 'r',\n      description: `A string path resolved against the 'cwd', which is\n                    used as the starting point for absolute patterns that\n                    start with '/' (but not drive letters or UNC paths\n                    on Windows).\n\n                    Note that this *doesn't* necessarily limit the walk to\n                    the 'root' directory, and doesn't affect the cwd\n                    starting point for non-absolute patterns. A pattern\n                    containing '..' will still be able to traverse out of\n                    the root directory, if it is not an actual root directory\n                    on the filesystem, and any non-absolute patterns will\n                    still be matched in the 'cwd'.\n\n                    To start absolute and non-absolute patterns in the same\n                    path, you can use '--root=' to set it to the empty\n                    string. However, be aware that on Windows systems, a\n                    pattern like 'x:/*' or '//host/share/*' will *always*\n                    start in the 'x:/' or '//host/share/' directory,\n                    regardless of the --root setting.\n      `,\n    },\n    platform: {\n      description: `Defaults to the value of 'process.platform' if\n                    available, or 'linux' if not. Setting --platform=win32\n                    on non-Windows systems may cause strange behavior!`,\n      validate: v =>\n        new Set([\n          'aix',\n          'android',\n          'darwin',\n          'freebsd',\n          'haiku',\n          'linux',\n          'openbsd',\n          'sunos',\n          'win32',\n          'cygwin',\n          'netbsd',\n        ]).has(v),\n    },\n  })\n  .optList({\n    ignore: {\n      short: 'i',\n      description: `Glob patterns to ignore`,\n    },\n  })\n  .flag({\n    debug: {\n      short: 'v',\n      description: `Output a huge amount of noisy debug information about\n                    patterns as they are parsed and used to match files.`,\n    },\n  })\n  .flag({\n    help: {\n      short: 'h',\n      description: 'Show this usage information',\n    },\n  })\n\ntry {\n  const { positionals, values } = j.parse()\n  if (values.help) {\n    console.log(j.usage())\n    process.exit(0)\n  }\n  if (positionals.length === 0 && !values.default)\n    throw 'No patterns provided'\n  if (positionals.length === 0 && values.default)\n    positionals.push(values.default)\n  const patterns = values.all\n    ? positionals\n    : positionals.filter(p => !existsSync(p))\n  const matches = values.all ? [] : positionals.filter(p => existsSync(p))\n  const stream = globStream(patterns, {\n    absolute: values.absolute,\n    cwd: values.cwd,\n    dot: values.dot,\n    dotRelative: values['dot-relative'],\n    follow: values.follow,\n    ignore: values.ignore,\n    mark: values.mark,\n    matchBase: values['match-base'],\n    maxDepth: values['max-depth'],\n    nobrace: values.nobrace,\n    nocase: values.nocase,\n    nodir: values.nodir,\n    noext: values.noext,\n    noglobstar: values.noglobstar,\n    platform: values.platform as undefined | NodeJS.Platform,\n    realpath: values.realpath,\n    root: values.root,\n    stat: values.stat,\n    debug: values.debug,\n    posix: values.posix,\n  })\n\n  const cmd = values.cmd\n  if (!cmd) {\n    matches.forEach(m => console.log(m))\n    stream.on('data', f => console.log(f))\n  } else {\n    stream.on('data', f => matches.push(f))\n    stream.on('end', () => foregroundChild(cmd, matches, { shell: true }))\n  }\n} catch (e) {\n  console.error(j.usage())\n  console.error(e instanceof Error ? e.message : String(e))\n  process.exit(1)\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts
                              deleted file mode 100644
                              index a8b3da7722b652..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts
                              +++ /dev/null
                              @@ -1,344 +0,0 @@
                              -/// 
                              -import { Minimatch } from 'minimatch';
                              -import { Minipass } from 'minipass';
                              -import { FSOption, Path, PathScurry } from 'path-scurry';
                              -import { IgnoreLike } from './ignore.js';
                              -import { Pattern } from './pattern.js';
                              -export type MatchSet = Minimatch['set'];
                              -export type GlobParts = Exclude;
                              -/**
                              - * A `GlobOptions` object may be provided to any of the exported methods, and
                              - * must be provided to the `Glob` constructor.
                              - *
                              - * All options are optional, boolean, and false by default, unless otherwise
                              - * noted.
                              - *
                              - * All resolved options are added to the Glob object as properties.
                              - *
                              - * If you are running many `glob` operations, you can pass a Glob object as the
                              - * `options` argument to a subsequent operation to share the previously loaded
                              - * cache.
                              - */
                              -export interface GlobOptions {
                              -    /**
                              -     * Set to `true` to always receive absolute paths for
                              -     * matched files. Set to `false` to always return relative paths.
                              -     *
                              -     * When this option is not set, absolute paths are returned for patterns
                              -     * that are absolute, and otherwise paths are returned that are relative
                              -     * to the `cwd` setting.
                              -     *
                              -     * This does _not_ make an extra system call to get
                              -     * the realpath, it only does string path resolution.
                              -     *
                              -     * Conflicts with {@link withFileTypes}
                              -     */
                              -    absolute?: boolean;
                              -    /**
                              -     * Set to false to enable {@link windowsPathsNoEscape}
                              -     *
                              -     * @deprecated
                              -     */
                              -    allowWindowsEscape?: boolean;
                              -    /**
                              -     * The current working directory in which to search. Defaults to
                              -     * `process.cwd()`.
                              -     *
                              -     * May be eiher a string path or a `file://` URL object or string.
                              -     */
                              -    cwd?: string | URL;
                              -    /**
                              -     * Include `.dot` files in normal matches and `globstar`
                              -     * matches. Note that an explicit dot in a portion of the pattern
                              -     * will always match dot files.
                              -     */
                              -    dot?: boolean;
                              -    /**
                              -     * Prepend all relative path strings with `./` (or `.\` on Windows).
                              -     *
                              -     * Without this option, returned relative paths are "bare", so instead of
                              -     * returning `'./foo/bar'`, they are returned as `'foo/bar'`.
                              -     *
                              -     * Relative patterns starting with `'../'` are not prepended with `./`, even
                              -     * if this option is set.
                              -     */
                              -    dotRelative?: boolean;
                              -    /**
                              -     * Follow symlinked directories when expanding `**`
                              -     * patterns. This can result in a lot of duplicate references in
                              -     * the presence of cyclic links, and make performance quite bad.
                              -     *
                              -     * By default, a `**` in a pattern will follow 1 symbolic link if
                              -     * it is not the first item in the pattern, or none if it is the
                              -     * first item in the pattern, following the same behavior as Bash.
                              -     */
                              -    follow?: boolean;
                              -    /**
                              -     * string or string[], or an object with `ignore` and `ignoreChildren`
                              -     * methods.
                              -     *
                              -     * If a string or string[] is provided, then this is treated as a glob
                              -     * pattern or array of glob patterns to exclude from matches. To ignore all
                              -     * children within a directory, as well as the entry itself, append `'/**'`
                              -     * to the ignore pattern.
                              -     *
                              -     * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of
                              -     * any other settings.
                              -     *
                              -     * If an object is provided that has `ignored(path)` and/or
                              -     * `childrenIgnored(path)` methods, then these methods will be called to
                              -     * determine whether any Path is a match or if its children should be
                              -     * traversed, respectively.
                              -     */
                              -    ignore?: string | string[] | IgnoreLike;
                              -    /**
                              -     * Treat brace expansion like `{a,b}` as a "magic" pattern. Has no
                              -     * effect if {@link nobrace} is set.
                              -     *
                              -     * Only has effect on the {@link hasMagic} function.
                              -     */
                              -    magicalBraces?: boolean;
                              -    /**
                              -     * Add a `/` character to directory matches. Note that this requires
                              -     * additional stat calls in some cases.
                              -     */
                              -    mark?: boolean;
                              -    /**
                              -     * Perform a basename-only match if the pattern does not contain any slash
                              -     * characters. That is, `*.js` would be treated as equivalent to
                              -     * `**\/*.js`, matching all js files in all directories.
                              -     */
                              -    matchBase?: boolean;
                              -    /**
                              -     * Limit the directory traversal to a given depth below the cwd.
                              -     * Note that this does NOT prevent traversal to sibling folders,
                              -     * root patterns, and so on. It only limits the maximum folder depth
                              -     * that the walk will descend, relative to the cwd.
                              -     */
                              -    maxDepth?: number;
                              -    /**
                              -     * Do not expand `{a,b}` and `{1..3}` brace sets.
                              -     */
                              -    nobrace?: boolean;
                              -    /**
                              -     * Perform a case-insensitive match. This defaults to `true` on macOS and
                              -     * Windows systems, and `false` on all others.
                              -     *
                              -     * **Note** `nocase` should only be explicitly set when it is
                              -     * known that the filesystem's case sensitivity differs from the
                              -     * platform default. If set `true` on case-sensitive file
                              -     * systems, or `false` on case-insensitive file systems, then the
                              -     * walk may return more or less results than expected.
                              -     */
                              -    nocase?: boolean;
                              -    /**
                              -     * Do not match directories, only files. (Note: to match
                              -     * _only_ directories, put a `/` at the end of the pattern.)
                              -     */
                              -    nodir?: boolean;
                              -    /**
                              -     * Do not match "extglob" patterns such as `+(a|b)`.
                              -     */
                              -    noext?: boolean;
                              -    /**
                              -     * Do not match `**` against multiple filenames. (Ie, treat it as a normal
                              -     * `*` instead.)
                              -     *
                              -     * Conflicts with {@link matchBase}
                              -     */
                              -    noglobstar?: boolean;
                              -    /**
                              -     * Defaults to value of `process.platform` if available, or `'linux'` if
                              -     * not. Setting `platform:'win32'` on non-Windows systems may cause strange
                              -     * behavior.
                              -     */
                              -    platform?: NodeJS.Platform;
                              -    /**
                              -     * Set to true to call `fs.realpath` on all of the
                              -     * results. In the case of an entry that cannot be resolved, the
                              -     * entry is omitted. This incurs a slight performance penalty, of
                              -     * course, because of the added system calls.
                              -     */
                              -    realpath?: boolean;
                              -    /**
                              -     *
                              -     * A string path resolved against the `cwd` option, which
                              -     * is used as the starting point for absolute patterns that start
                              -     * with `/`, (but not drive letters or UNC paths on Windows).
                              -     *
                              -     * Note that this _doesn't_ necessarily limit the walk to the
                              -     * `root` directory, and doesn't affect the cwd starting point for
                              -     * non-absolute patterns. A pattern containing `..` will still be
                              -     * able to traverse out of the root directory, if it is not an
                              -     * actual root directory on the filesystem, and any non-absolute
                              -     * patterns will be matched in the `cwd`. For example, the
                              -     * pattern `/../*` with `{root:'/some/path'}` will return all
                              -     * files in `/some`, not all files in `/some/path`. The pattern
                              -     * `*` with `{root:'/some/path'}` will return all the entries in
                              -     * the cwd, not the entries in `/some/path`.
                              -     *
                              -     * To start absolute and non-absolute patterns in the same
                              -     * path, you can use `{root:''}`. However, be aware that on
                              -     * Windows systems, a pattern like `x:/*` or `//host/share/*` will
                              -     * _always_ start in the `x:/` or `//host/share` directory,
                              -     * regardless of the `root` setting.
                              -     */
                              -    root?: string;
                              -    /**
                              -     * A [PathScurry](http://npm.im/path-scurry) object used
                              -     * to traverse the file system. If the `nocase` option is set
                              -     * explicitly, then any provided `scurry` object must match this
                              -     * setting.
                              -     */
                              -    scurry?: PathScurry;
                              -    /**
                              -     * Call `lstat()` on all entries, whether required or not to determine
                              -     * if it's a valid match. When used with {@link withFileTypes}, this means
                              -     * that matches will include data such as modified time, permissions, and
                              -     * so on.  Note that this will incur a performance cost due to the added
                              -     * system calls.
                              -     */
                              -    stat?: boolean;
                              -    /**
                              -     * An AbortSignal which will cancel the Glob walk when
                              -     * triggered.
                              -     */
                              -    signal?: AbortSignal;
                              -    /**
                              -     * Use `\\` as a path separator _only_, and
                              -     *  _never_ as an escape character. If set, all `\\` characters are
                              -     *  replaced with `/` in the pattern.
                              -     *
                              -     *  Note that this makes it **impossible** to match against paths
                              -     *  containing literal glob pattern characters, but allows matching
                              -     *  with patterns constructed using `path.join()` and
                              -     *  `path.resolve()` on Windows platforms, mimicking the (buggy!)
                              -     *  behavior of Glob v7 and before on Windows. Please use with
                              -     *  caution, and be mindful of [the caveat below about Windows
                              -     *  paths](#windows). (For legacy reasons, this is also set if
                              -     *  `allowWindowsEscape` is set to the exact value `false`.)
                              -     */
                              -    windowsPathsNoEscape?: boolean;
                              -    /**
                              -     * Return [PathScurry](http://npm.im/path-scurry)
                              -     * `Path` objects instead of strings. These are similar to a
                              -     * NodeJS `Dirent` object, but with additional methods and
                              -     * properties.
                              -     *
                              -     * Conflicts with {@link absolute}
                              -     */
                              -    withFileTypes?: boolean;
                              -    /**
                              -     * An fs implementation to override some or all of the defaults.  See
                              -     * http://npm.im/path-scurry for details about what can be overridden.
                              -     */
                              -    fs?: FSOption;
                              -    /**
                              -     * Just passed along to Minimatch.  Note that this makes all pattern
                              -     * matching operations slower and *extremely* noisy.
                              -     */
                              -    debug?: boolean;
                              -    /**
                              -     * Return `/` delimited paths, even on Windows.
                              -     *
                              -     * On posix systems, this has no effect.  But, on Windows, it means that
                              -     * paths will be `/` delimited, and absolute paths will be their full
                              -     * resolved UNC forms, eg instead of `'C:\\foo\\bar'`, it would return
                              -     * `'//?/C:/foo/bar'`
                              -     */
                              -    posix?: boolean;
                              -}
                              -export type GlobOptionsWithFileTypesTrue = GlobOptions & {
                              -    withFileTypes: true;
                              -    absolute?: undefined;
                              -    mark?: undefined;
                              -    posix?: undefined;
                              -};
                              -export type GlobOptionsWithFileTypesFalse = GlobOptions & {
                              -    withFileTypes?: false;
                              -};
                              -export type GlobOptionsWithFileTypesUnset = GlobOptions & {
                              -    withFileTypes?: undefined;
                              -};
                              -export type Result = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path;
                              -export type Results = Result[];
                              -export type FileTypes = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean;
                              -/**
                              - * An object that can perform glob pattern traversals.
                              - */
                              -export declare class Glob implements GlobOptions {
                              -    absolute?: boolean;
                              -    cwd: string;
                              -    root?: string;
                              -    dot: boolean;
                              -    dotRelative: boolean;
                              -    follow: boolean;
                              -    ignore?: string | string[] | IgnoreLike;
                              -    magicalBraces: boolean;
                              -    mark?: boolean;
                              -    matchBase: boolean;
                              -    maxDepth: number;
                              -    nobrace: boolean;
                              -    nocase: boolean;
                              -    nodir: boolean;
                              -    noext: boolean;
                              -    noglobstar: boolean;
                              -    pattern: string[];
                              -    platform: NodeJS.Platform;
                              -    realpath: boolean;
                              -    scurry: PathScurry;
                              -    stat: boolean;
                              -    signal?: AbortSignal;
                              -    windowsPathsNoEscape: boolean;
                              -    withFileTypes: FileTypes;
                              -    /**
                              -     * The options provided to the constructor.
                              -     */
                              -    opts: Opts;
                              -    /**
                              -     * An array of parsed immutable {@link Pattern} objects.
                              -     */
                              -    patterns: Pattern[];
                              -    /**
                              -     * All options are stored as properties on the `Glob` object.
                              -     *
                              -     * See {@link GlobOptions} for full options descriptions.
                              -     *
                              -     * Note that a previous `Glob` object can be passed as the
                              -     * `GlobOptions` to another `Glob` instantiation to re-use settings
                              -     * and caches with a new pattern.
                              -     *
                              -     * Traversal functions can be called multiple times to run the walk
                              -     * again.
                              -     */
                              -    constructor(pattern: string | string[], opts: Opts);
                              -    /**
                              -     * Returns a Promise that resolves to the results array.
                              -     */
                              -    walk(): Promise>;
                              -    /**
                              -     * synchronous {@link Glob.walk}
                              -     */
                              -    walkSync(): Results;
                              -    /**
                              -     * Stream results asynchronously.
                              -     */
                              -    stream(): Minipass, Result>;
                              -    /**
                              -     * Stream results synchronously.
                              -     */
                              -    streamSync(): Minipass, Result>;
                              -    /**
                              -     * Default sync iteration function. Returns a Generator that
                              -     * iterates over the results.
                              -     */
                              -    iterateSync(): Generator, void, void>;
                              -    [Symbol.iterator](): Generator, void, void>;
                              -    /**
                              -     * Default async iteration function. Returns an AsyncGenerator that
                              -     * iterates over the results.
                              -     */
                              -    iterate(): AsyncGenerator, void, void>;
                              -    [Symbol.asyncIterator](): AsyncGenerator, void, void>;
                              -}
                              -//# sourceMappingURL=glob.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts.map
                              deleted file mode 100644
                              index 6353d8b3c47126..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../../src/glob.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js
                              deleted file mode 100644
                              index eb37c6b9a6601e..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js
                              +++ /dev/null
                              @@ -1,238 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.Glob = void 0;
                              -const minimatch_1 = require("minimatch");
                              -const path_scurry_1 = require("path-scurry");
                              -const url_1 = require("url");
                              -const pattern_js_1 = require("./pattern.js");
                              -const walker_js_1 = require("./walker.js");
                              -// if no process global, just call it linux.
                              -// so we default to case-sensitive, / separators
                              -const defaultPlatform = typeof process === 'object' &&
                              -    process &&
                              -    typeof process.platform === 'string'
                              -    ? process.platform
                              -    : 'linux';
                              -/**
                              - * An object that can perform glob pattern traversals.
                              - */
                              -class Glob {
                              -    absolute;
                              -    cwd;
                              -    root;
                              -    dot;
                              -    dotRelative;
                              -    follow;
                              -    ignore;
                              -    magicalBraces;
                              -    mark;
                              -    matchBase;
                              -    maxDepth;
                              -    nobrace;
                              -    nocase;
                              -    nodir;
                              -    noext;
                              -    noglobstar;
                              -    pattern;
                              -    platform;
                              -    realpath;
                              -    scurry;
                              -    stat;
                              -    signal;
                              -    windowsPathsNoEscape;
                              -    withFileTypes;
                              -    /**
                              -     * The options provided to the constructor.
                              -     */
                              -    opts;
                              -    /**
                              -     * An array of parsed immutable {@link Pattern} objects.
                              -     */
                              -    patterns;
                              -    /**
                              -     * All options are stored as properties on the `Glob` object.
                              -     *
                              -     * See {@link GlobOptions} for full options descriptions.
                              -     *
                              -     * Note that a previous `Glob` object can be passed as the
                              -     * `GlobOptions` to another `Glob` instantiation to re-use settings
                              -     * and caches with a new pattern.
                              -     *
                              -     * Traversal functions can be called multiple times to run the walk
                              -     * again.
                              -     */
                              -    constructor(pattern, opts) {
                              -        /* c8 ignore start */
                              -        if (!opts)
                              -            throw new TypeError('glob options required');
                              -        /* c8 ignore stop */
                              -        this.withFileTypes = !!opts.withFileTypes;
                              -        this.signal = opts.signal;
                              -        this.follow = !!opts.follow;
                              -        this.dot = !!opts.dot;
                              -        this.dotRelative = !!opts.dotRelative;
                              -        this.nodir = !!opts.nodir;
                              -        this.mark = !!opts.mark;
                              -        if (!opts.cwd) {
                              -            this.cwd = '';
                              -        }
                              -        else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {
                              -            opts.cwd = (0, url_1.fileURLToPath)(opts.cwd);
                              -        }
                              -        this.cwd = opts.cwd || '';
                              -        this.root = opts.root;
                              -        this.magicalBraces = !!opts.magicalBraces;
                              -        this.nobrace = !!opts.nobrace;
                              -        this.noext = !!opts.noext;
                              -        this.realpath = !!opts.realpath;
                              -        this.absolute = opts.absolute;
                              -        this.noglobstar = !!opts.noglobstar;
                              -        this.matchBase = !!opts.matchBase;
                              -        this.maxDepth =
                              -            typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;
                              -        this.stat = !!opts.stat;
                              -        this.ignore = opts.ignore;
                              -        if (this.withFileTypes && this.absolute !== undefined) {
                              -            throw new Error('cannot set absolute and withFileTypes:true');
                              -        }
                              -        if (typeof pattern === 'string') {
                              -            pattern = [pattern];
                              -        }
                              -        this.windowsPathsNoEscape =
                              -            !!opts.windowsPathsNoEscape ||
                              -                opts.allowWindowsEscape === false;
                              -        if (this.windowsPathsNoEscape) {
                              -            pattern = pattern.map(p => p.replace(/\\/g, '/'));
                              -        }
                              -        if (this.matchBase) {
                              -            if (opts.noglobstar) {
                              -                throw new TypeError('base matching requires globstar');
                              -            }
                              -            pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));
                              -        }
                              -        this.pattern = pattern;
                              -        this.platform = opts.platform || defaultPlatform;
                              -        this.opts = { ...opts, platform: this.platform };
                              -        if (opts.scurry) {
                              -            this.scurry = opts.scurry;
                              -            if (opts.nocase !== undefined &&
                              -                opts.nocase !== opts.scurry.nocase) {
                              -                throw new Error('nocase option contradicts provided scurry option');
                              -            }
                              -        }
                              -        else {
                              -            const Scurry = opts.platform === 'win32'
                              -                ? path_scurry_1.PathScurryWin32
                              -                : opts.platform === 'darwin'
                              -                    ? path_scurry_1.PathScurryDarwin
                              -                    : opts.platform
                              -                        ? path_scurry_1.PathScurryPosix
                              -                        : path_scurry_1.PathScurry;
                              -            this.scurry = new Scurry(this.cwd, {
                              -                nocase: opts.nocase,
                              -                fs: opts.fs,
                              -            });
                              -        }
                              -        this.nocase = this.scurry.nocase;
                              -        // If you do nocase:true on a case-sensitive file system, then
                              -        // we need to use regexps instead of strings for non-magic
                              -        // path portions, because statting `aBc` won't return results
                              -        // for the file `AbC` for example.
                              -        const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';
                              -        const mmo = {
                              -            // default nocase based on platform
                              -            ...opts,
                              -            dot: this.dot,
                              -            matchBase: this.matchBase,
                              -            nobrace: this.nobrace,
                              -            nocase: this.nocase,
                              -            nocaseMagicOnly,
                              -            nocomment: true,
                              -            noext: this.noext,
                              -            nonegate: true,
                              -            optimizationLevel: 2,
                              -            platform: this.platform,
                              -            windowsPathsNoEscape: this.windowsPathsNoEscape,
                              -            debug: !!this.opts.debug,
                              -        };
                              -        const mms = this.pattern.map(p => new minimatch_1.Minimatch(p, mmo));
                              -        const [matchSet, globParts] = mms.reduce((set, m) => {
                              -            set[0].push(...m.set);
                              -            set[1].push(...m.globParts);
                              -            return set;
                              -        }, [[], []]);
                              -        this.patterns = matchSet.map((set, i) => {
                              -            return new pattern_js_1.Pattern(set, globParts[i], 0, this.platform);
                              -        });
                              -    }
                              -    async walk() {
                              -        // Walkers always return array of Path objects, so we just have to
                              -        // coerce them into the right shape.  It will have already called
                              -        // realpath() if the option was set to do so, so we know that's cached.
                              -        // start out knowing the cwd, at least
                              -        return [
                              -            ...(await new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {
                              -                ...this.opts,
                              -                maxDepth: this.maxDepth !== Infinity
                              -                    ? this.maxDepth + this.scurry.cwd.depth()
                              -                    : Infinity,
                              -                platform: this.platform,
                              -                nocase: this.nocase,
                              -            }).walk()),
                              -        ];
                              -    }
                              -    walkSync() {
                              -        return [
                              -            ...new walker_js_1.GlobWalker(this.patterns, this.scurry.cwd, {
                              -                ...this.opts,
                              -                maxDepth: this.maxDepth !== Infinity
                              -                    ? this.maxDepth + this.scurry.cwd.depth()
                              -                    : Infinity,
                              -                platform: this.platform,
                              -                nocase: this.nocase,
                              -            }).walkSync(),
                              -        ];
                              -    }
                              -    stream() {
                              -        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {
                              -            ...this.opts,
                              -            maxDepth: this.maxDepth !== Infinity
                              -                ? this.maxDepth + this.scurry.cwd.depth()
                              -                : Infinity,
                              -            platform: this.platform,
                              -            nocase: this.nocase,
                              -        }).stream();
                              -    }
                              -    streamSync() {
                              -        return new walker_js_1.GlobStream(this.patterns, this.scurry.cwd, {
                              -            ...this.opts,
                              -            maxDepth: this.maxDepth !== Infinity
                              -                ? this.maxDepth + this.scurry.cwd.depth()
                              -                : Infinity,
                              -            platform: this.platform,
                              -            nocase: this.nocase,
                              -        }).streamSync();
                              -    }
                              -    /**
                              -     * Default sync iteration function. Returns a Generator that
                              -     * iterates over the results.
                              -     */
                              -    iterateSync() {
                              -        return this.streamSync()[Symbol.iterator]();
                              -    }
                              -    [Symbol.iterator]() {
                              -        return this.iterateSync();
                              -    }
                              -    /**
                              -     * Default async iteration function. Returns an AsyncGenerator that
                              -     * iterates over the results.
                              -     */
                              -    iterate() {
                              -        return this.stream()[Symbol.asyncIterator]();
                              -    }
                              -    [Symbol.asyncIterator]() {
                              -        return this.iterate();
                              -    }
                              -}
                              -exports.Glob = Glob;
                              -//# sourceMappingURL=glob.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js.map
                              deleted file mode 100644
                              index 7a7a9b28627480..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/glob.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../../src/glob.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AAEvD,6CAOoB;AACpB,6BAAmC;AAEnC,6CAAsC;AACtC,2CAAoD;AAKpD,4CAA4C;AAC5C,gDAAgD;AAChD,MAAM,eAAe,GACnB,OAAO,OAAO,KAAK,QAAQ;IAC3B,OAAO;IACP,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;IAClC,CAAC,CAAC,OAAO,CAAC,QAAQ;IAClB,CAAC,CAAC,OAAO,CAAA;AAgTb;;GAEG;AACH,MAAa,IAAI;IACf,QAAQ,CAAU;IAClB,GAAG,CAAQ;IACX,IAAI,CAAS;IACb,GAAG,CAAS;IACZ,WAAW,CAAS;IACpB,MAAM,CAAS;IACf,MAAM,CAAiC;IACvC,aAAa,CAAS;IACtB,IAAI,CAAU;IACd,SAAS,CAAS;IAClB,QAAQ,CAAQ;IAChB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,OAAO,CAAU;IACjB,QAAQ,CAAiB;IACzB,QAAQ,CAAS;IACjB,MAAM,CAAY;IAClB,IAAI,CAAS;IACb,MAAM,CAAc;IACpB,oBAAoB,CAAS;IAC7B,aAAa,CAAiB;IAE9B;;OAEG;IACH,IAAI,CAAM;IAEV;;OAEG;IACH,QAAQ,CAAW;IAEnB;;;;;;;;;;;OAWG;IACH,YAAY,OAA0B,EAAE,IAAU;QAChD,qBAAqB;QACrB,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAA;QACvD,oBAAoB;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAgC,CAAA;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;SACd;aAAM,IAAI,IAAI,CAAC,GAAG,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACpE,IAAI,CAAC,GAAG,GAAG,IAAA,mBAAa,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACnC;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAA;QACzC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAE7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAA;QACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,QAAQ;YACX,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAEzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YACrD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;SAC9D;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;SACpB;QAED,IAAI,CAAC,oBAAoB;YACvB,CAAC,CAAC,IAAI,CAAC,oBAAoB;gBAC1B,IAAoB,CAAC,kBAAkB,KAAK,KAAK,CAAA;QAEpD,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;SAClD;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAA;aACvD;YACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;SAChE;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YACzB,IACE,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAClC;gBACA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;aACpE;SACF;aAAM;YACL,MAAM,MAAM,GACV,IAAI,CAAC,QAAQ,KAAK,OAAO;gBACvB,CAAC,CAAC,6BAAe;gBACjB,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBAC5B,CAAC,CAAC,8BAAgB;oBAClB,CAAC,CAAC,IAAI,CAAC,QAAQ;wBACf,CAAC,CAAC,6BAAe;wBACjB,CAAC,CAAC,wBAAU,CAAA;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CAAA;SACH;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAEhC,8DAA8D;QAC9D,0DAA0D;QAC1D,6DAA6D;QAC7D,kCAAkC;QAClC,MAAM,eAAe,GACnB,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAA;QAEzD,MAAM,GAAG,GAAqB;YAC5B,mCAAmC;YACnC,GAAG,IAAI;YACP,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,CAAC;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;SACzB,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,qBAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,MAAM,CACtC,CAAC,GAA0B,EAAE,CAAC,EAAE,EAAE;YAChC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;YACrB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;YAC3B,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,CACT,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACtC,OAAO,IAAI,oBAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAMD,KAAK,CAAC,IAAI;QACR,kEAAkE;QAClE,iEAAiE;QACjE,uEAAuE;QACvE,sCAAsC;QACtC,OAAO;YACL,GAAG,CAAC,MAAM,IAAI,sBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACvD,GAAG,IAAI,CAAC,IAAI;gBACZ,QAAQ,EACN,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;oBACzC,CAAC,CAAC,QAAQ;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC,IAAI,EAAE,CAAC;SACX,CAAA;IACH,CAAC;IAMD,QAAQ;QACN,OAAO;YACL,GAAG,IAAI,sBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBAChD,GAAG,IAAI,CAAC,IAAI;gBACZ,QAAQ,EACN,IAAI,CAAC,QAAQ,KAAK,QAAQ;oBACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;oBACzC,CAAC,CAAC,QAAQ;gBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC,QAAQ,EAAE;SACd,CAAA;IACH,CAAC;IAMD,MAAM;QACJ,OAAO,IAAI,sBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACpD,GAAG,IAAI,CAAC,IAAI;YACZ,QAAQ,EACN,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;gBACzC,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC,MAAM,EAAE,CAAA;IACb,CAAC;IAMD,UAAU;QACR,OAAO,IAAI,sBAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACpD,GAAG,IAAI,CAAC,IAAI;YACZ,QAAQ,EACN,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;gBACzC,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC,UAAU,EAAE,CAAA;IACjB,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC7C,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;IAC9C,CAAC;IACD,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;CACF;AArQD,oBAqQC","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n  FSOption,\n  Path,\n  PathScurry,\n  PathScurryDarwin,\n  PathScurryPosix,\n  PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n  typeof process === 'object' &&\n  process &&\n  typeof process.platform === 'string'\n    ? process.platform\n    : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n  /**\n   * Set to `true` to always receive absolute paths for\n   * matched files. Set to `false` to always return relative paths.\n   *\n   * When this option is not set, absolute paths are returned for patterns\n   * that are absolute, and otherwise paths are returned that are relative\n   * to the `cwd` setting.\n   *\n   * This does _not_ make an extra system call to get\n   * the realpath, it only does string path resolution.\n   *\n   * Conflicts with {@link withFileTypes}\n   */\n  absolute?: boolean\n\n  /**\n   * Set to false to enable {@link windowsPathsNoEscape}\n   *\n   * @deprecated\n   */\n  allowWindowsEscape?: boolean\n\n  /**\n   * The current working directory in which to search. Defaults to\n   * `process.cwd()`.\n   *\n   * May be eiher a string path or a `file://` URL object or string.\n   */\n  cwd?: string | URL\n\n  /**\n   * Include `.dot` files in normal matches and `globstar`\n   * matches. Note that an explicit dot in a portion of the pattern\n   * will always match dot files.\n   */\n  dot?: boolean\n\n  /**\n   * Prepend all relative path strings with `./` (or `.\\` on Windows).\n   *\n   * Without this option, returned relative paths are \"bare\", so instead of\n   * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n   *\n   * Relative patterns starting with `'../'` are not prepended with `./`, even\n   * if this option is set.\n   */\n  dotRelative?: boolean\n\n  /**\n   * Follow symlinked directories when expanding `**`\n   * patterns. This can result in a lot of duplicate references in\n   * the presence of cyclic links, and make performance quite bad.\n   *\n   * By default, a `**` in a pattern will follow 1 symbolic link if\n   * it is not the first item in the pattern, or none if it is the\n   * first item in the pattern, following the same behavior as Bash.\n   */\n  follow?: boolean\n\n  /**\n   * string or string[], or an object with `ignore` and `ignoreChildren`\n   * methods.\n   *\n   * If a string or string[] is provided, then this is treated as a glob\n   * pattern or array of glob patterns to exclude from matches. To ignore all\n   * children within a directory, as well as the entry itself, append `'/**'`\n   * to the ignore pattern.\n   *\n   * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n   * any other settings.\n   *\n   * If an object is provided that has `ignored(path)` and/or\n   * `childrenIgnored(path)` methods, then these methods will be called to\n   * determine whether any Path is a match or if its children should be\n   * traversed, respectively.\n   */\n  ignore?: string | string[] | IgnoreLike\n\n  /**\n   * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n   * effect if {@link nobrace} is set.\n   *\n   * Only has effect on the {@link hasMagic} function.\n   */\n  magicalBraces?: boolean\n\n  /**\n   * Add a `/` character to directory matches. Note that this requires\n   * additional stat calls in some cases.\n   */\n  mark?: boolean\n\n  /**\n   * Perform a basename-only match if the pattern does not contain any slash\n   * characters. That is, `*.js` would be treated as equivalent to\n   * `**\\/*.js`, matching all js files in all directories.\n   */\n  matchBase?: boolean\n\n  /**\n   * Limit the directory traversal to a given depth below the cwd.\n   * Note that this does NOT prevent traversal to sibling folders,\n   * root patterns, and so on. It only limits the maximum folder depth\n   * that the walk will descend, relative to the cwd.\n   */\n  maxDepth?: number\n\n  /**\n   * Do not expand `{a,b}` and `{1..3}` brace sets.\n   */\n  nobrace?: boolean\n\n  /**\n   * Perform a case-insensitive match. This defaults to `true` on macOS and\n   * Windows systems, and `false` on all others.\n   *\n   * **Note** `nocase` should only be explicitly set when it is\n   * known that the filesystem's case sensitivity differs from the\n   * platform default. If set `true` on case-sensitive file\n   * systems, or `false` on case-insensitive file systems, then the\n   * walk may return more or less results than expected.\n   */\n  nocase?: boolean\n\n  /**\n   * Do not match directories, only files. (Note: to match\n   * _only_ directories, put a `/` at the end of the pattern.)\n   */\n  nodir?: boolean\n\n  /**\n   * Do not match \"extglob\" patterns such as `+(a|b)`.\n   */\n  noext?: boolean\n\n  /**\n   * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n   * `*` instead.)\n   *\n   * Conflicts with {@link matchBase}\n   */\n  noglobstar?: boolean\n\n  /**\n   * Defaults to value of `process.platform` if available, or `'linux'` if\n   * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n   * behavior.\n   */\n  platform?: NodeJS.Platform\n\n  /**\n   * Set to true to call `fs.realpath` on all of the\n   * results. In the case of an entry that cannot be resolved, the\n   * entry is omitted. This incurs a slight performance penalty, of\n   * course, because of the added system calls.\n   */\n  realpath?: boolean\n\n  /**\n   *\n   * A string path resolved against the `cwd` option, which\n   * is used as the starting point for absolute patterns that start\n   * with `/`, (but not drive letters or UNC paths on Windows).\n   *\n   * Note that this _doesn't_ necessarily limit the walk to the\n   * `root` directory, and doesn't affect the cwd starting point for\n   * non-absolute patterns. A pattern containing `..` will still be\n   * able to traverse out of the root directory, if it is not an\n   * actual root directory on the filesystem, and any non-absolute\n   * patterns will be matched in the `cwd`. For example, the\n   * pattern `/../*` with `{root:'/some/path'}` will return all\n   * files in `/some`, not all files in `/some/path`. The pattern\n   * `*` with `{root:'/some/path'}` will return all the entries in\n   * the cwd, not the entries in `/some/path`.\n   *\n   * To start absolute and non-absolute patterns in the same\n   * path, you can use `{root:''}`. However, be aware that on\n   * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n   * _always_ start in the `x:/` or `//host/share` directory,\n   * regardless of the `root` setting.\n   */\n  root?: string\n\n  /**\n   * A [PathScurry](http://npm.im/path-scurry) object used\n   * to traverse the file system. If the `nocase` option is set\n   * explicitly, then any provided `scurry` object must match this\n   * setting.\n   */\n  scurry?: PathScurry\n\n  /**\n   * Call `lstat()` on all entries, whether required or not to determine\n   * if it's a valid match. When used with {@link withFileTypes}, this means\n   * that matches will include data such as modified time, permissions, and\n   * so on.  Note that this will incur a performance cost due to the added\n   * system calls.\n   */\n  stat?: boolean\n\n  /**\n   * An AbortSignal which will cancel the Glob walk when\n   * triggered.\n   */\n  signal?: AbortSignal\n\n  /**\n   * Use `\\\\` as a path separator _only_, and\n   *  _never_ as an escape character. If set, all `\\\\` characters are\n   *  replaced with `/` in the pattern.\n   *\n   *  Note that this makes it **impossible** to match against paths\n   *  containing literal glob pattern characters, but allows matching\n   *  with patterns constructed using `path.join()` and\n   *  `path.resolve()` on Windows platforms, mimicking the (buggy!)\n   *  behavior of Glob v7 and before on Windows. Please use with\n   *  caution, and be mindful of [the caveat below about Windows\n   *  paths](#windows). (For legacy reasons, this is also set if\n   *  `allowWindowsEscape` is set to the exact value `false`.)\n   */\n  windowsPathsNoEscape?: boolean\n\n  /**\n   * Return [PathScurry](http://npm.im/path-scurry)\n   * `Path` objects instead of strings. These are similar to a\n   * NodeJS `Dirent` object, but with additional methods and\n   * properties.\n   *\n   * Conflicts with {@link absolute}\n   */\n  withFileTypes?: boolean\n\n  /**\n   * An fs implementation to override some or all of the defaults.  See\n   * http://npm.im/path-scurry for details about what can be overridden.\n   */\n  fs?: FSOption\n\n  /**\n   * Just passed along to Minimatch.  Note that this makes all pattern\n   * matching operations slower and *extremely* noisy.\n   */\n  debug?: boolean\n\n  /**\n   * Return `/` delimited paths, even on Windows.\n   *\n   * On posix systems, this has no effect.  But, on Windows, it means that\n   * paths will be `/` delimited, and absolute paths will be their full\n   * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n   * `'//?/C:/foo/bar'`\n   */\n  posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n  withFileTypes: true\n  // string options not relevant if returning Path objects.\n  absolute?: undefined\n  mark?: undefined\n  posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n  withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n  withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n  ? Path\n  : Opts extends GlobOptionsWithFileTypesFalse\n  ? string\n  : Opts extends GlobOptionsWithFileTypesUnset\n  ? string\n  : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n  ? true\n  : Opts extends GlobOptionsWithFileTypesFalse\n  ? false\n  : Opts extends GlobOptionsWithFileTypesUnset\n  ? false\n  : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n  absolute?: boolean\n  cwd: string\n  root?: string\n  dot: boolean\n  dotRelative: boolean\n  follow: boolean\n  ignore?: string | string[] | IgnoreLike\n  magicalBraces: boolean\n  mark?: boolean\n  matchBase: boolean\n  maxDepth: number\n  nobrace: boolean\n  nocase: boolean\n  nodir: boolean\n  noext: boolean\n  noglobstar: boolean\n  pattern: string[]\n  platform: NodeJS.Platform\n  realpath: boolean\n  scurry: PathScurry\n  stat: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape: boolean\n  withFileTypes: FileTypes\n\n  /**\n   * The options provided to the constructor.\n   */\n  opts: Opts\n\n  /**\n   * An array of parsed immutable {@link Pattern} objects.\n   */\n  patterns: Pattern[]\n\n  /**\n   * All options are stored as properties on the `Glob` object.\n   *\n   * See {@link GlobOptions} for full options descriptions.\n   *\n   * Note that a previous `Glob` object can be passed as the\n   * `GlobOptions` to another `Glob` instantiation to re-use settings\n   * and caches with a new pattern.\n   *\n   * Traversal functions can be called multiple times to run the walk\n   * again.\n   */\n  constructor(pattern: string | string[], opts: Opts) {\n    /* c8 ignore start */\n    if (!opts) throw new TypeError('glob options required')\n    /* c8 ignore stop */\n    this.withFileTypes = !!opts.withFileTypes as FileTypes\n    this.signal = opts.signal\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.dotRelative = !!opts.dotRelative\n    this.nodir = !!opts.nodir\n    this.mark = !!opts.mark\n    if (!opts.cwd) {\n      this.cwd = ''\n    } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n      opts.cwd = fileURLToPath(opts.cwd)\n    }\n    this.cwd = opts.cwd || ''\n    this.root = opts.root\n    this.magicalBraces = !!opts.magicalBraces\n    this.nobrace = !!opts.nobrace\n    this.noext = !!opts.noext\n    this.realpath = !!opts.realpath\n    this.absolute = opts.absolute\n\n    this.noglobstar = !!opts.noglobstar\n    this.matchBase = !!opts.matchBase\n    this.maxDepth =\n      typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n    this.stat = !!opts.stat\n    this.ignore = opts.ignore\n\n    if (this.withFileTypes && this.absolute !== undefined) {\n      throw new Error('cannot set absolute and withFileTypes:true')\n    }\n\n    if (typeof pattern === 'string') {\n      pattern = [pattern]\n    }\n\n    this.windowsPathsNoEscape =\n      !!opts.windowsPathsNoEscape ||\n      (opts as GlobOptions).allowWindowsEscape === false\n\n    if (this.windowsPathsNoEscape) {\n      pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n    }\n\n    if (this.matchBase) {\n      if (opts.noglobstar) {\n        throw new TypeError('base matching requires globstar')\n      }\n      pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n    }\n\n    this.pattern = pattern\n\n    this.platform = opts.platform || defaultPlatform\n    this.opts = { ...opts, platform: this.platform }\n    if (opts.scurry) {\n      this.scurry = opts.scurry\n      if (\n        opts.nocase !== undefined &&\n        opts.nocase !== opts.scurry.nocase\n      ) {\n        throw new Error('nocase option contradicts provided scurry option')\n      }\n    } else {\n      const Scurry =\n        opts.platform === 'win32'\n          ? PathScurryWin32\n          : opts.platform === 'darwin'\n          ? PathScurryDarwin\n          : opts.platform\n          ? PathScurryPosix\n          : PathScurry\n      this.scurry = new Scurry(this.cwd, {\n        nocase: opts.nocase,\n        fs: opts.fs,\n      })\n    }\n    this.nocase = this.scurry.nocase\n\n    // If you do nocase:true on a case-sensitive file system, then\n    // we need to use regexps instead of strings for non-magic\n    // path portions, because statting `aBc` won't return results\n    // for the file `AbC` for example.\n    const nocaseMagicOnly =\n      this.platform === 'darwin' || this.platform === 'win32'\n\n    const mmo: MinimatchOptions = {\n      // default nocase based on platform\n      ...opts,\n      dot: this.dot,\n      matchBase: this.matchBase,\n      nobrace: this.nobrace,\n      nocase: this.nocase,\n      nocaseMagicOnly,\n      nocomment: true,\n      noext: this.noext,\n      nonegate: true,\n      optimizationLevel: 2,\n      platform: this.platform,\n      windowsPathsNoEscape: this.windowsPathsNoEscape,\n      debug: !!this.opts.debug,\n    }\n\n    const mms = this.pattern.map(p => new Minimatch(p, mmo))\n    const [matchSet, globParts] = mms.reduce(\n      (set: [MatchSet, GlobParts], m) => {\n        set[0].push(...m.set)\n        set[1].push(...m.globParts)\n        return set\n      },\n      [[], []]\n    )\n    this.patterns = matchSet.map((set, i) => {\n      return new Pattern(set, globParts[i], 0, this.platform)\n    })\n  }\n\n  /**\n   * Returns a Promise that resolves to the results array.\n   */\n  async walk(): Promise>\n  async walk(): Promise<(string | Path)[]> {\n    // Walkers always return array of Path objects, so we just have to\n    // coerce them into the right shape.  It will have already called\n    // realpath() if the option was set to do so, so we know that's cached.\n    // start out knowing the cwd, at least\n    return [\n      ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity\n            ? this.maxDepth + this.scurry.cwd.depth()\n            : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n      }).walk()),\n    ]\n  }\n\n  /**\n   * synchronous {@link Glob.walk}\n   */\n  walkSync(): Results\n  walkSync(): (string | Path)[] {\n    return [\n      ...new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity\n            ? this.maxDepth + this.scurry.cwd.depth()\n            : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n      }).walkSync(),\n    ]\n  }\n\n  /**\n   * Stream results asynchronously.\n   */\n  stream(): Minipass, Result>\n  stream(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity\n          ? this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n    }).stream()\n  }\n\n  /**\n   * Stream results synchronously.\n   */\n  streamSync(): Minipass, Result>\n  streamSync(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity\n          ? this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n    }).streamSync()\n  }\n\n  /**\n   * Default sync iteration function. Returns a Generator that\n   * iterates over the results.\n   */\n  iterateSync(): Generator, void, void> {\n    return this.streamSync()[Symbol.iterator]()\n  }\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  /**\n   * Default async iteration function. Returns an AsyncGenerator that\n   * iterates over the results.\n   */\n  iterate(): AsyncGenerator, void, void> {\n    return this.stream()[Symbol.asyncIterator]()\n  }\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts
                              deleted file mode 100644
                              index 8aec3bd9725175..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts
                              +++ /dev/null
                              @@ -1,14 +0,0 @@
                              -import { GlobOptions } from './glob.js';
                              -/**
                              - * Return true if the patterns provided contain any magic glob characters,
                              - * given the options provided.
                              - *
                              - * Brace expansion is not considered "magic" unless the `magicalBraces` option
                              - * is set, as brace expansion just turns one string into an array of strings.
                              - * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and
                              - * `'xby'` both do not contain any magic glob characters, and it's treated the
                              - * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`
                              - * is in the options, brace expansion _is_ treated as a pattern having magic.
                              - */
                              -export declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
                              -//# sourceMappingURL=has-magic.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts.map
                              deleted file mode 100644
                              index dd5053f80b44c3..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js
                              deleted file mode 100644
                              index 0918bd57e0f1c2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js
                              +++ /dev/null
                              @@ -1,27 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.hasMagic = void 0;
                              -const minimatch_1 = require("minimatch");
                              -/**
                              - * Return true if the patterns provided contain any magic glob characters,
                              - * given the options provided.
                              - *
                              - * Brace expansion is not considered "magic" unless the `magicalBraces` option
                              - * is set, as brace expansion just turns one string into an array of strings.
                              - * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and
                              - * `'xby'` both do not contain any magic glob characters, and it's treated the
                              - * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`
                              - * is in the options, brace expansion _is_ treated as a pattern having magic.
                              - */
                              -const hasMagic = (pattern, options = {}) => {
                              -    if (!Array.isArray(pattern)) {
                              -        pattern = [pattern];
                              -    }
                              -    for (const p of pattern) {
                              -        if (new minimatch_1.Minimatch(p, options).hasMagic())
                              -            return true;
                              -    }
                              -    return false;
                              -};
                              -exports.hasMagic = hasMagic;
                              -//# sourceMappingURL=has-magic.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js.map
                              deleted file mode 100644
                              index 9b73cfad7d05e4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/has-magic.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../../src/has-magic.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAGrC;;;;;;;;;;GAUG;AACI,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;KACpB;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,IAAI,qBAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;KACtD;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {}\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts
                              deleted file mode 100644
                              index e9d74f3b5e1291..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -import { Minimatch } from 'minimatch';
                              -import { Path } from 'path-scurry';
                              -import { GlobWalkerOpts } from './walker.js';
                              -export interface IgnoreLike {
                              -    ignored?: (p: Path) => boolean;
                              -    childrenIgnored?: (p: Path) => boolean;
                              -}
                              -/**
                              - * Class used to process ignored patterns
                              - */
                              -export declare class Ignore implements IgnoreLike {
                              -    relative: Minimatch[];
                              -    relativeChildren: Minimatch[];
                              -    absolute: Minimatch[];
                              -    absoluteChildren: Minimatch[];
                              -    constructor(ignored: string[], { nobrace, nocase, noext, noglobstar, platform, }: GlobWalkerOpts);
                              -    ignored(p: Path): boolean;
                              -    childrenIgnored(p: Path): boolean;
                              -}
                              -//# sourceMappingURL=ignore.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts.map
                              deleted file mode 100644
                              index 3d604838d1eed2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAiDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js
                              deleted file mode 100644
                              index 0cbcca335e1cca..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js
                              +++ /dev/null
                              @@ -1,103 +0,0 @@
                              -"use strict";
                              -// give it a pattern, and it'll be able to tell you if
                              -// a given path should be ignored.
                              -// Ignoring a path ignores its children if the pattern ends in /**
                              -// Ignores are always parsed in dot:true mode
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.Ignore = void 0;
                              -const minimatch_1 = require("minimatch");
                              -const pattern_js_1 = require("./pattern.js");
                              -const defaultPlatform = typeof process === 'object' &&
                              -    process &&
                              -    typeof process.platform === 'string'
                              -    ? process.platform
                              -    : 'linux';
                              -/**
                              - * Class used to process ignored patterns
                              - */
                              -class Ignore {
                              -    relative;
                              -    relativeChildren;
                              -    absolute;
                              -    absoluteChildren;
                              -    constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {
                              -        this.relative = [];
                              -        this.absolute = [];
                              -        this.relativeChildren = [];
                              -        this.absoluteChildren = [];
                              -        const mmopts = {
                              -            dot: true,
                              -            nobrace,
                              -            nocase,
                              -            noext,
                              -            noglobstar,
                              -            optimizationLevel: 2,
                              -            platform,
                              -            nocomment: true,
                              -            nonegate: true,
                              -        };
                              -        // this is a little weird, but it gives us a clean set of optimized
                              -        // minimatch matchers, without getting tripped up if one of them
                              -        // ends in /** inside a brace section, and it's only inefficient at
                              -        // the start of the walk, not along it.
                              -        // It'd be nice if the Pattern class just had a .test() method, but
                              -        // handling globstars is a bit of a pita, and that code already lives
                              -        // in minimatch anyway.
                              -        // Another way would be if maybe Minimatch could take its set/globParts
                              -        // as an option, and then we could at least just use Pattern to test
                              -        // for absolute-ness.
                              -        // Yet another way, Minimatch could take an array of glob strings, and
                              -        // a cwd option, and do the right thing.
                              -        for (const ign of ignored) {
                              -            const mm = new minimatch_1.Minimatch(ign, mmopts);
                              -            for (let i = 0; i < mm.set.length; i++) {
                              -                const parsed = mm.set[i];
                              -                const globParts = mm.globParts[i];
                              -                const p = new pattern_js_1.Pattern(parsed, globParts, 0, platform);
                              -                const m = new minimatch_1.Minimatch(p.globString(), mmopts);
                              -                const children = globParts[globParts.length - 1] === '**';
                              -                const absolute = p.isAbsolute();
                              -                if (absolute)
                              -                    this.absolute.push(m);
                              -                else
                              -                    this.relative.push(m);
                              -                if (children) {
                              -                    if (absolute)
                              -                        this.absoluteChildren.push(m);
                              -                    else
                              -                        this.relativeChildren.push(m);
                              -                }
                              -            }
                              -        }
                              -    }
                              -    ignored(p) {
                              -        const fullpath = p.fullpath();
                              -        const fullpaths = `${fullpath}/`;
                              -        const relative = p.relative() || '.';
                              -        const relatives = `${relative}/`;
                              -        for (const m of this.relative) {
                              -            if (m.match(relative) || m.match(relatives))
                              -                return true;
                              -        }
                              -        for (const m of this.absolute) {
                              -            if (m.match(fullpath) || m.match(fullpaths))
                              -                return true;
                              -        }
                              -        return false;
                              -    }
                              -    childrenIgnored(p) {
                              -        const fullpath = p.fullpath() + '/';
                              -        const relative = (p.relative() || '.') + '/';
                              -        for (const m of this.relativeChildren) {
                              -            if (m.match(relative))
                              -                return true;
                              -        }
                              -        for (const m of this.absoluteChildren) {
                              -            if (m.match(fullpath))
                              -                true;
                              -        }
                              -        return false;
                              -    }
                              -}
                              -exports.Ignore = Ignore;
                              -//# sourceMappingURL=ignore.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js.map
                              deleted file mode 100644
                              index 7595b4c68f79ed..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/ignore.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n  ignored?: (p: Path) => boolean\n  childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n  typeof process === 'object' &&\n  process &&\n  typeof process.platform === 'string'\n    ? process.platform\n    : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n  relative: Minimatch[]\n  relativeChildren: Minimatch[]\n  absolute: Minimatch[]\n  absoluteChildren: Minimatch[]\n\n  constructor(\n    ignored: string[],\n    {\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      platform = defaultPlatform,\n    }: GlobWalkerOpts\n  ) {\n    this.relative = []\n    this.absolute = []\n    this.relativeChildren = []\n    this.absoluteChildren = []\n    const mmopts = {\n      dot: true,\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      optimizationLevel: 2,\n      platform,\n      nocomment: true,\n      nonegate: true,\n    }\n\n    // this is a little weird, but it gives us a clean set of optimized\n    // minimatch matchers, without getting tripped up if one of them\n    // ends in /** inside a brace section, and it's only inefficient at\n    // the start of the walk, not along it.\n    // It'd be nice if the Pattern class just had a .test() method, but\n    // handling globstars is a bit of a pita, and that code already lives\n    // in minimatch anyway.\n    // Another way would be if maybe Minimatch could take its set/globParts\n    // as an option, and then we could at least just use Pattern to test\n    // for absolute-ness.\n    // Yet another way, Minimatch could take an array of glob strings, and\n    // a cwd option, and do the right thing.\n    for (const ign of ignored) {\n      const mm = new Minimatch(ign, mmopts)\n      for (let i = 0; i < mm.set.length; i++) {\n        const parsed = mm.set[i]\n        const globParts = mm.globParts[i]\n        const p = new Pattern(parsed, globParts, 0, platform)\n        const m = new Minimatch(p.globString(), mmopts)\n        const children = globParts[globParts.length - 1] === '**'\n        const absolute = p.isAbsolute()\n        if (absolute) this.absolute.push(m)\n        else this.relative.push(m)\n        if (children) {\n          if (absolute) this.absoluteChildren.push(m)\n          else this.relativeChildren.push(m)\n        }\n      }\n    }\n  }\n\n  ignored(p: Path): boolean {\n    const fullpath = p.fullpath()\n    const fullpaths = `${fullpath}/`\n    const relative = p.relative() || '.'\n    const relatives = `${relative}/`\n    for (const m of this.relative) {\n      if (m.match(relative) || m.match(relatives)) return true\n    }\n    for (const m of this.absolute) {\n      if (m.match(fullpath) || m.match(fullpaths)) return true\n    }\n    return false\n  }\n\n  childrenIgnored(p: Path): boolean {\n    const fullpath = p.fullpath() + '/'\n    const relative = (p.relative() || '.') + '/'\n    for (const m of this.relativeChildren) {\n      if (m.match(relative)) return true\n    }\n    for (const m of this.absoluteChildren) {\n      if (m.match(fullpath)) true\n    }\n    return false\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts
                              deleted file mode 100644
                              index 669bf12e6d5916..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts
                              +++ /dev/null
                              @@ -1,95 +0,0 @@
                              -import { Minipass } from 'minipass';
                              -import { Path } from 'path-scurry';
                              -import type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset } from './glob.js';
                              -import { Glob } from './glob.js';
                              -/**
                              - * Syncronous form of {@link globStream}. Will read all the matches as fast as
                              - * you consume them, even all in a single tick if you consume them immediately,
                              - * but will still respond to backpressure if they're not consumed immediately.
                              - */
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesUnset): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptions): Minipass | Minipass;
                              -/**
                              - * Return a stream that emits all the strings or `Path` objects and
                              - * then emits `end` when completed.
                              - */
                              -export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass;
                              -export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass;
                              -export declare function globStream(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Minipass;
                              -export declare function globStream(pattern: string | string[], options: GlobOptions): Minipass | Minipass;
                              -/**
                              - * Synchronous form of {@link glob}
                              - */
                              -export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): string[];
                              -export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Path[];
                              -export declare function globSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): string[];
                              -export declare function globSync(pattern: string | string[], options: GlobOptions): Path[] | string[];
                              -/**
                              - * Perform an asynchronous glob search for the pattern(s) specified. Returns
                              - * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the
                              - * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for
                              - * full option descriptions.
                              - */
                              -declare function glob_(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptions): Promise;
                              -/**
                              - * Return a sync iterator for walking glob pattern matches.
                              - */
                              -export declare function globIterateSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptions): Generator | Generator;
                              -/**
                              - * Return an async iterator for walking glob pattern matches.
                              - */
                              -export declare function globIterate(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptions): AsyncGenerator | AsyncGenerator;
                              -export declare const streamSync: typeof globStreamSync;
                              -export declare const stream: typeof globStream & {
                              -    sync: typeof globStreamSync;
                              -};
                              -export declare const iterateSync: typeof globIterateSync;
                              -export declare const iterate: typeof globIterate & {
                              -    sync: typeof globIterateSync;
                              -};
                              -export declare const sync: typeof globSync & {
                              -    stream: typeof globStreamSync;
                              -    iterate: typeof globIterateSync;
                              -};
                              -export { escape, unescape } from 'minimatch';
                              -export { Glob } from './glob.js';
                              -export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset, } from './glob.js';
                              -export { hasMagic } from './has-magic.js';
                              -export type { IgnoreLike } from './ignore.js';
                              -export type { MatchStream } from './walker.js';
                              -export declare const glob: typeof glob_ & {
                              -    glob: typeof glob_;
                              -    globSync: typeof globSync;
                              -    sync: typeof globSync & {
                              -        stream: typeof globStreamSync;
                              -        iterate: typeof globIterateSync;
                              -    };
                              -    globStream: typeof globStream;
                              -    stream: typeof globStream & {
                              -        sync: typeof globStreamSync;
                              -    };
                              -    globStreamSync: typeof globStreamSync;
                              -    streamSync: typeof globStreamSync;
                              -    globIterate: typeof globIterate;
                              -    iterate: typeof globIterate & {
                              -        sync: typeof globIterateSync;
                              -    };
                              -    globIterateSync: typeof globIterateSync;
                              -    iterateSync: typeof globIterateSync;
                              -    Glob: typeof Glob;
                              -    hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
                              -    escape: (s: string, { windowsPathsNoEscape, }?: Pick | undefined) => string;
                              -    unescape: (s: string, { windowsPathsNoEscape, }?: Pick | undefined) => string;
                              -};
                              -//# sourceMappingURL=index.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts.map
                              deleted file mode 100644
                              index 4e9ba085ce45b2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js
                              deleted file mode 100644
                              index 71c31c03dd339b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js
                              +++ /dev/null
                              @@ -1,68 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.glob = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.globIterate = exports.globIterateSync = exports.globSync = exports.globStream = exports.globStreamSync = void 0;
                              -const minimatch_1 = require("minimatch");
                              -const glob_js_1 = require("./glob.js");
                              -const has_magic_js_1 = require("./has-magic.js");
                              -function globStreamSync(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).streamSync();
                              -}
                              -exports.globStreamSync = globStreamSync;
                              -function globStream(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).stream();
                              -}
                              -exports.globStream = globStream;
                              -function globSync(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).walkSync();
                              -}
                              -exports.globSync = globSync;
                              -async function glob_(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).walk();
                              -}
                              -function globIterateSync(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).iterateSync();
                              -}
                              -exports.globIterateSync = globIterateSync;
                              -function globIterate(pattern, options = {}) {
                              -    return new glob_js_1.Glob(pattern, options).iterate();
                              -}
                              -exports.globIterate = globIterate;
                              -// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc
                              -exports.streamSync = globStreamSync;
                              -exports.stream = Object.assign(globStream, { sync: globStreamSync });
                              -exports.iterateSync = globIterateSync;
                              -exports.iterate = Object.assign(globIterate, {
                              -    sync: globIterateSync,
                              -});
                              -exports.sync = Object.assign(globSync, {
                              -    stream: globStreamSync,
                              -    iterate: globIterateSync,
                              -});
                              -/* c8 ignore start */
                              -var minimatch_2 = require("minimatch");
                              -Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return minimatch_2.escape; } });
                              -Object.defineProperty(exports, "unescape", { enumerable: true, get: function () { return minimatch_2.unescape; } });
                              -var glob_js_2 = require("./glob.js");
                              -Object.defineProperty(exports, "Glob", { enumerable: true, get: function () { return glob_js_2.Glob; } });
                              -var has_magic_js_2 = require("./has-magic.js");
                              -Object.defineProperty(exports, "hasMagic", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });
                              -/* c8 ignore stop */
                              -exports.glob = Object.assign(glob_, {
                              -    glob: glob_,
                              -    globSync,
                              -    sync: exports.sync,
                              -    globStream,
                              -    stream: exports.stream,
                              -    globStreamSync,
                              -    streamSync: exports.streamSync,
                              -    globIterate,
                              -    iterate: exports.iterate,
                              -    globIterateSync,
                              -    iterateSync: exports.iterateSync,
                              -    Glob: glob_js_1.Glob,
                              -    hasMagic: has_magic_js_1.hasMagic,
                              -    escape: minimatch_1.escape,
                              -    unescape: minimatch_1.unescape,
                              -});
                              -exports.glob.glob = exports.glob;
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js.map
                              deleted file mode 100644
                              index 060338fbd1b94b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/index.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAS5C,uCAAgC;AAChC,iDAAyC;AAuBzC,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AALD,wCAKC;AAsBD,SAAgB,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AALD,gCAKC;AAqBD,SAAgB,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AALD,4BAKC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AALD,0CAKC;AAqBD,SAAgB,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AALD,kCAKC;AAED,iEAAiE;AACpD,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC5D,QAAA,WAAW,GAAG,eAAe,CAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,uCAA4C;AAAnC,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,qCAAgC;AAAvB,+FAAA,IAAI,OAAA;AAOb,+CAAyC;AAAhC,wGAAA,QAAQ,OAAA;AAGjB,oBAAoB;AAEP,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,UAAU;IACV,MAAM,EAAN,cAAM;IACN,cAAc;IACd,UAAU,EAAV,kBAAU;IACV,WAAW;IACX,OAAO,EAAP,eAAO;IACP,eAAe;IACf,WAAW,EAAX,mBAAW;IACX,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,uBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,QAAQ,EAAR,oBAAQ;CACT,CAAC,CAAA;AACF,YAAI,CAAC,IAAI,GAAG,YAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n  sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n  stream: globStreamSync,\n  iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n  glob: glob_,\n  globSync,\n  sync,\n  globStream,\n  stream,\n  globStreamSync,\n  streamSync,\n  globIterate,\n  iterate,\n  globIterateSync,\n  iterateSync,\n  Glob,\n  hasMagic,\n  escape,\n  unescape,\n})\nglob.glob = glob\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts
                              deleted file mode 100644
                              index 109cc4e7a5dae3..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts
                              +++ /dev/null
                              @@ -1,77 +0,0 @@
                              -/// 
                              -import { GLOBSTAR } from 'minimatch';
                              -export type MMPattern = string | RegExp | typeof GLOBSTAR;
                              -export type PatternList = [p: MMPattern, ...rest: MMPattern[]];
                              -export type UNCPatternList = [
                              -    p0: '',
                              -    p1: '',
                              -    p2: string,
                              -    p3: string,
                              -    ...rest: MMPattern[]
                              -];
                              -export type DrivePatternList = [p0: string, ...rest: MMPattern[]];
                              -export type AbsolutePatternList = [p0: '', ...rest: MMPattern[]];
                              -export type GlobList = [p: string, ...rest: string[]];
                              -/**
                              - * An immutable-ish view on an array of glob parts and their parsed
                              - * results
                              - */
                              -export declare class Pattern {
                              -    #private;
                              -    readonly length: number;
                              -    constructor(patternList: MMPattern[], globList: string[], index: number, platform: NodeJS.Platform);
                              -    /**
                              -     * The first entry in the parsed list of patterns
                              -     */
                              -    pattern(): MMPattern;
                              -    /**
                              -     * true of if pattern() returns a string
                              -     */
                              -    isString(): boolean;
                              -    /**
                              -     * true of if pattern() returns GLOBSTAR
                              -     */
                              -    isGlobstar(): boolean;
                              -    /**
                              -     * true if pattern() returns a regexp
                              -     */
                              -    isRegExp(): boolean;
                              -    /**
                              -     * The /-joined set of glob parts that make up this pattern
                              -     */
                              -    globString(): string;
                              -    /**
                              -     * true if there are more pattern parts after this one
                              -     */
                              -    hasMore(): boolean;
                              -    /**
                              -     * The rest of the pattern after this part, or null if this is the end
                              -     */
                              -    rest(): Pattern | null;
                              -    /**
                              -     * true if the pattern represents a //unc/path/ on windows
                              -     */
                              -    isUNC(): boolean;
                              -    /**
                              -     * True if the pattern starts with a drive letter on Windows
                              -     */
                              -    isDrive(): boolean;
                              -    /**
                              -     * True if the pattern is rooted on an absolute path
                              -     */
                              -    isAbsolute(): boolean;
                              -    /**
                              -     * consume the root of the pattern, and return it
                              -     */
                              -    root(): string;
                              -    /**
                              -     * Check to see if the current globstar pattern is allowed to follow
                              -     * a symbolic link.
                              -     */
                              -    checkFollowGlobstar(): boolean;
                              -    /**
                              -     * Mark that the current globstar pattern is following a symbolic link
                              -     */
                              -    markFollowGlobstar(): boolean;
                              -}
                              -//# sourceMappingURL=pattern.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts.map
                              deleted file mode 100644
                              index 48430f63db0947..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js
                              deleted file mode 100644
                              index 181371293d8605..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js
                              +++ /dev/null
                              @@ -1,219 +0,0 @@
                              -"use strict";
                              -// this is just a very light wrapper around 2 arrays with an offset index
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.Pattern = void 0;
                              -const minimatch_1 = require("minimatch");
                              -const isPatternList = (pl) => pl.length >= 1;
                              -const isGlobList = (gl) => gl.length >= 1;
                              -/**
                              - * An immutable-ish view on an array of glob parts and their parsed
                              - * results
                              - */
                              -class Pattern {
                              -    #patternList;
                              -    #globList;
                              -    #index;
                              -    length;
                              -    #platform;
                              -    #rest;
                              -    #globString;
                              -    #isDrive;
                              -    #isUNC;
                              -    #isAbsolute;
                              -    #followGlobstar = true;
                              -    constructor(patternList, globList, index, platform) {
                              -        if (!isPatternList(patternList)) {
                              -            throw new TypeError('empty pattern list');
                              -        }
                              -        if (!isGlobList(globList)) {
                              -            throw new TypeError('empty glob list');
                              -        }
                              -        if (globList.length !== patternList.length) {
                              -            throw new TypeError('mismatched pattern list and glob list lengths');
                              -        }
                              -        this.length = patternList.length;
                              -        if (index < 0 || index >= this.length) {
                              -            throw new TypeError('index out of range');
                              -        }
                              -        this.#patternList = patternList;
                              -        this.#globList = globList;
                              -        this.#index = index;
                              -        this.#platform = platform;
                              -        // normalize root entries of absolute patterns on initial creation.
                              -        if (this.#index === 0) {
                              -            // c: => ['c:/']
                              -            // C:/ => ['C:/']
                              -            // C:/x => ['C:/', 'x']
                              -            // //host/share => ['//host/share/']
                              -            // //host/share/ => ['//host/share/']
                              -            // //host/share/x => ['//host/share/', 'x']
                              -            // /etc => ['/', 'etc']
                              -            // / => ['/']
                              -            if (this.isUNC()) {
                              -                // '' / '' / 'host' / 'share'
                              -                const [p0, p1, p2, p3, ...prest] = this.#patternList;
                              -                const [g0, g1, g2, g3, ...grest] = this.#globList;
                              -                if (prest[0] === '') {
                              -                    // ends in /
                              -                    prest.shift();
                              -                    grest.shift();
                              -                }
                              -                const p = [p0, p1, p2, p3, ''].join('/');
                              -                const g = [g0, g1, g2, g3, ''].join('/');
                              -                this.#patternList = [p, ...prest];
                              -                this.#globList = [g, ...grest];
                              -                this.length = this.#patternList.length;
                              -            }
                              -            else if (this.isDrive() || this.isAbsolute()) {
                              -                const [p1, ...prest] = this.#patternList;
                              -                const [g1, ...grest] = this.#globList;
                              -                if (prest[0] === '') {
                              -                    // ends in /
                              -                    prest.shift();
                              -                    grest.shift();
                              -                }
                              -                const p = p1 + '/';
                              -                const g = g1 + '/';
                              -                this.#patternList = [p, ...prest];
                              -                this.#globList = [g, ...grest];
                              -                this.length = this.#patternList.length;
                              -            }
                              -        }
                              -    }
                              -    /**
                              -     * The first entry in the parsed list of patterns
                              -     */
                              -    pattern() {
                              -        return this.#patternList[this.#index];
                              -    }
                              -    /**
                              -     * true of if pattern() returns a string
                              -     */
                              -    isString() {
                              -        return typeof this.#patternList[this.#index] === 'string';
                              -    }
                              -    /**
                              -     * true of if pattern() returns GLOBSTAR
                              -     */
                              -    isGlobstar() {
                              -        return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;
                              -    }
                              -    /**
                              -     * true if pattern() returns a regexp
                              -     */
                              -    isRegExp() {
                              -        return this.#patternList[this.#index] instanceof RegExp;
                              -    }
                              -    /**
                              -     * The /-joined set of glob parts that make up this pattern
                              -     */
                              -    globString() {
                              -        return (this.#globString =
                              -            this.#globString ||
                              -                (this.#index === 0
                              -                    ? this.isAbsolute()
                              -                        ? this.#globList[0] + this.#globList.slice(1).join('/')
                              -                        : this.#globList.join('/')
                              -                    : this.#globList.slice(this.#index).join('/')));
                              -    }
                              -    /**
                              -     * true if there are more pattern parts after this one
                              -     */
                              -    hasMore() {
                              -        return this.length > this.#index + 1;
                              -    }
                              -    /**
                              -     * The rest of the pattern after this part, or null if this is the end
                              -     */
                              -    rest() {
                              -        if (this.#rest !== undefined)
                              -            return this.#rest;
                              -        if (!this.hasMore())
                              -            return (this.#rest = null);
                              -        this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
                              -        this.#rest.#isAbsolute = this.#isAbsolute;
                              -        this.#rest.#isUNC = this.#isUNC;
                              -        this.#rest.#isDrive = this.#isDrive;
                              -        return this.#rest;
                              -    }
                              -    /**
                              -     * true if the pattern represents a //unc/path/ on windows
                              -     */
                              -    isUNC() {
                              -        const pl = this.#patternList;
                              -        return this.#isUNC !== undefined
                              -            ? this.#isUNC
                              -            : (this.#isUNC =
                              -                this.#platform === 'win32' &&
                              -                    this.#index === 0 &&
                              -                    pl[0] === '' &&
                              -                    pl[1] === '' &&
                              -                    typeof pl[2] === 'string' &&
                              -                    !!pl[2] &&
                              -                    typeof pl[3] === 'string' &&
                              -                    !!pl[3]);
                              -    }
                              -    // pattern like C:/...
                              -    // split = ['C:', ...]
                              -    // XXX: would be nice to handle patterns like `c:*` to test the cwd
                              -    // in c: for *, but I don't know of a way to even figure out what that
                              -    // cwd is without actually chdir'ing into it?
                              -    /**
                              -     * True if the pattern starts with a drive letter on Windows
                              -     */
                              -    isDrive() {
                              -        const pl = this.#patternList;
                              -        return this.#isDrive !== undefined
                              -            ? this.#isDrive
                              -            : (this.#isDrive =
                              -                this.#platform === 'win32' &&
                              -                    this.#index === 0 &&
                              -                    this.length > 1 &&
                              -                    typeof pl[0] === 'string' &&
                              -                    /^[a-z]:$/i.test(pl[0]));
                              -    }
                              -    // pattern = '/' or '/...' or '/x/...'
                              -    // split = ['', ''] or ['', ...] or ['', 'x', ...]
                              -    // Drive and UNC both considered absolute on windows
                              -    /**
                              -     * True if the pattern is rooted on an absolute path
                              -     */
                              -    isAbsolute() {
                              -        const pl = this.#patternList;
                              -        return this.#isAbsolute !== undefined
                              -            ? this.#isAbsolute
                              -            : (this.#isAbsolute =
                              -                (pl[0] === '' && pl.length > 1) ||
                              -                    this.isDrive() ||
                              -                    this.isUNC());
                              -    }
                              -    /**
                              -     * consume the root of the pattern, and return it
                              -     */
                              -    root() {
                              -        const p = this.#patternList[0];
                              -        return typeof p === 'string' && this.isAbsolute() && this.#index === 0
                              -            ? p
                              -            : '';
                              -    }
                              -    /**
                              -     * Check to see if the current globstar pattern is allowed to follow
                              -     * a symbolic link.
                              -     */
                              -    checkFollowGlobstar() {
                              -        return !(this.#index === 0 ||
                              -            !this.isGlobstar() ||
                              -            !this.#followGlobstar);
                              -    }
                              -    /**
                              -     * Mark that the current globstar pattern is following a symbolic link
                              -     */
                              -    markFollowGlobstar() {
                              -        if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
                              -            return false;
                              -        this.#followGlobstar = false;
                              -        return true;
                              -    }
                              -}
                              -exports.Pattern = Pattern;
                              -//# sourceMappingURL=pattern.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js.map
                              deleted file mode 100644
                              index ba5293ff9f2489..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/pattern.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n  p0: '',\n  p1: '',\n  p2: string,\n  p3: string,\n  ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n  pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n  readonly #patternList: PatternList\n  readonly #globList: GlobList\n  readonly #index: number\n  readonly length: number\n  readonly #platform: NodeJS.Platform\n  #rest?: Pattern | null\n  #globString?: string\n  #isDrive?: boolean\n  #isUNC?: boolean\n  #isAbsolute?: boolean\n  #followGlobstar: boolean = true\n\n  constructor(\n    patternList: MMPattern[],\n    globList: string[],\n    index: number,\n    platform: NodeJS.Platform\n  ) {\n    if (!isPatternList(patternList)) {\n      throw new TypeError('empty pattern list')\n    }\n    if (!isGlobList(globList)) {\n      throw new TypeError('empty glob list')\n    }\n    if (globList.length !== patternList.length) {\n      throw new TypeError('mismatched pattern list and glob list lengths')\n    }\n    this.length = patternList.length\n    if (index < 0 || index >= this.length) {\n      throw new TypeError('index out of range')\n    }\n    this.#patternList = patternList\n    this.#globList = globList\n    this.#index = index\n    this.#platform = platform\n\n    // normalize root entries of absolute patterns on initial creation.\n    if (this.#index === 0) {\n      // c: => ['c:/']\n      // C:/ => ['C:/']\n      // C:/x => ['C:/', 'x']\n      // //host/share => ['//host/share/']\n      // //host/share/ => ['//host/share/']\n      // //host/share/x => ['//host/share/', 'x']\n      // /etc => ['/', 'etc']\n      // / => ['/']\n      if (this.isUNC()) {\n        // '' / '' / 'host' / 'share'\n        const [p0, p1, p2, p3, ...prest] = this.#patternList\n        const [g0, g1, g2, g3, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = [p0, p1, p2, p3, ''].join('/')\n        const g = [g0, g1, g2, g3, ''].join('/')\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      } else if (this.isDrive() || this.isAbsolute()) {\n        const [p1, ...prest] = this.#patternList\n        const [g1, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = (p1 as string) + '/'\n        const g = g1 + '/'\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      }\n    }\n  }\n\n  /**\n   * The first entry in the parsed list of patterns\n   */\n  pattern(): MMPattern {\n    return this.#patternList[this.#index]\n  }\n\n  /**\n   * true of if pattern() returns a string\n   */\n  isString(): boolean {\n    return typeof this.#patternList[this.#index] === 'string'\n  }\n  /**\n   * true of if pattern() returns GLOBSTAR\n   */\n  isGlobstar(): boolean {\n    return this.#patternList[this.#index] === GLOBSTAR\n  }\n  /**\n   * true if pattern() returns a regexp\n   */\n  isRegExp(): boolean {\n    return this.#patternList[this.#index] instanceof RegExp\n  }\n\n  /**\n   * The /-joined set of glob parts that make up this pattern\n   */\n  globString(): string {\n    return (this.#globString =\n      this.#globString ||\n      (this.#index === 0\n        ? this.isAbsolute()\n          ? this.#globList[0] + this.#globList.slice(1).join('/')\n          : this.#globList.join('/')\n        : this.#globList.slice(this.#index).join('/')))\n  }\n\n  /**\n   * true if there are more pattern parts after this one\n   */\n  hasMore(): boolean {\n    return this.length > this.#index + 1\n  }\n\n  /**\n   * The rest of the pattern after this part, or null if this is the end\n   */\n  rest(): Pattern | null {\n    if (this.#rest !== undefined) return this.#rest\n    if (!this.hasMore()) return (this.#rest = null)\n    this.#rest = new Pattern(\n      this.#patternList,\n      this.#globList,\n      this.#index + 1,\n      this.#platform\n    )\n    this.#rest.#isAbsolute = this.#isAbsolute\n    this.#rest.#isUNC = this.#isUNC\n    this.#rest.#isDrive = this.#isDrive\n    return this.#rest\n  }\n\n  /**\n   * true if the pattern represents a //unc/path/ on windows\n   */\n  isUNC(): boolean {\n    const pl = this.#patternList\n    return this.#isUNC !== undefined\n      ? this.#isUNC\n      : (this.#isUNC =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          pl[0] === '' &&\n          pl[1] === '' &&\n          typeof pl[2] === 'string' &&\n          !!pl[2] &&\n          typeof pl[3] === 'string' &&\n          !!pl[3])\n  }\n\n  // pattern like C:/...\n  // split = ['C:', ...]\n  // XXX: would be nice to handle patterns like `c:*` to test the cwd\n  // in c: for *, but I don't know of a way to even figure out what that\n  // cwd is without actually chdir'ing into it?\n  /**\n   * True if the pattern starts with a drive letter on Windows\n   */\n  isDrive(): boolean {\n    const pl = this.#patternList\n    return this.#isDrive !== undefined\n      ? this.#isDrive\n      : (this.#isDrive =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          this.length > 1 &&\n          typeof pl[0] === 'string' &&\n          /^[a-z]:$/i.test(pl[0]))\n  }\n\n  // pattern = '/' or '/...' or '/x/...'\n  // split = ['', ''] or ['', ...] or ['', 'x', ...]\n  // Drive and UNC both considered absolute on windows\n  /**\n   * True if the pattern is rooted on an absolute path\n   */\n  isAbsolute(): boolean {\n    const pl = this.#patternList\n    return this.#isAbsolute !== undefined\n      ? this.#isAbsolute\n      : (this.#isAbsolute =\n          (pl[0] === '' && pl.length > 1) ||\n          this.isDrive() ||\n          this.isUNC())\n  }\n\n  /**\n   * consume the root of the pattern, and return it\n   */\n  root(): string {\n    const p = this.#patternList[0]\n    return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n      ? p\n      : ''\n  }\n\n  /**\n   * Check to see if the current globstar pattern is allowed to follow\n   * a symbolic link.\n   */\n  checkFollowGlobstar(): boolean {\n    return !(\n      this.#index === 0 ||\n      !this.isGlobstar() ||\n      !this.#followGlobstar\n    )\n  }\n\n  /**\n   * Mark that the current globstar pattern is following a symbolic link\n   */\n  markFollowGlobstar(): boolean {\n    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n      return false\n    this.#followGlobstar = false\n    return true\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts
                              deleted file mode 100644
                              index ccedfbf2820f7d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts
                              +++ /dev/null
                              @@ -1,59 +0,0 @@
                              -import { MMRegExp } from 'minimatch';
                              -import { Path } from 'path-scurry';
                              -import { Pattern } from './pattern.js';
                              -import { GlobWalkerOpts } from './walker.js';
                              -/**
                              - * A cache of which patterns have been processed for a given Path
                              - */
                              -export declare class HasWalkedCache {
                              -    store: Map>;
                              -    constructor(store?: Map>);
                              -    copy(): HasWalkedCache;
                              -    hasWalked(target: Path, pattern: Pattern): boolean | undefined;
                              -    storeWalked(target: Path, pattern: Pattern): void;
                              -}
                              -/**
                              - * A record of which paths have been matched in a given walk step,
                              - * and whether they only are considered a match if they are a directory,
                              - * and whether their absolute or relative path should be returned.
                              - */
                              -export declare class MatchRecord {
                              -    store: Map;
                              -    add(target: Path, absolute: boolean, ifDir: boolean): void;
                              -    entries(): [Path, boolean, boolean][];
                              -}
                              -/**
                              - * A collection of patterns that must be processed in a subsequent step
                              - * for a given path.
                              - */
                              -export declare class SubWalks {
                              -    store: Map;
                              -    add(target: Path, pattern: Pattern): void;
                              -    get(target: Path): Pattern[];
                              -    entries(): [Path, Pattern[]][];
                              -    keys(): Path[];
                              -}
                              -/**
                              - * The class that processes patterns for a given path.
                              - *
                              - * Handles child entry filtering, and determining whether a path's
                              - * directory contents must be read.
                              - */
                              -export declare class Processor {
                              -    hasWalkedCache: HasWalkedCache;
                              -    matches: MatchRecord;
                              -    subwalks: SubWalks;
                              -    patterns?: Pattern[];
                              -    follow: boolean;
                              -    dot: boolean;
                              -    opts: GlobWalkerOpts;
                              -    constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache);
                              -    processPatterns(target: Path, patterns: Pattern[]): this;
                              -    subwalkTargets(): Path[];
                              -    child(): Processor;
                              -    filterEntries(parent: Path, entries: Path[]): Processor;
                              -    testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void;
                              -    testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void;
                              -    testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void;
                              -}
                              -//# sourceMappingURL=processor.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts.map
                              deleted file mode 100644
                              index ca6c63ca264b27..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAwGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js
                              deleted file mode 100644
                              index bd067e9b9033dc..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js
                              +++ /dev/null
                              @@ -1,309 +0,0 @@
                              -"use strict";
                              -// synchronous utility for filtering entries and calculating subwalks
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;
                              -const minimatch_1 = require("minimatch");
                              -/**
                              - * A cache of which patterns have been processed for a given Path
                              - */
                              -class HasWalkedCache {
                              -    store;
                              -    constructor(store = new Map()) {
                              -        this.store = store;
                              -    }
                              -    copy() {
                              -        return new HasWalkedCache(new Map(this.store));
                              -    }
                              -    hasWalked(target, pattern) {
                              -        return this.store.get(target.fullpath())?.has(pattern.globString());
                              -    }
                              -    storeWalked(target, pattern) {
                              -        const fullpath = target.fullpath();
                              -        const cached = this.store.get(fullpath);
                              -        if (cached)
                              -            cached.add(pattern.globString());
                              -        else
                              -            this.store.set(fullpath, new Set([pattern.globString()]));
                              -    }
                              -}
                              -exports.HasWalkedCache = HasWalkedCache;
                              -/**
                              - * A record of which paths have been matched in a given walk step,
                              - * and whether they only are considered a match if they are a directory,
                              - * and whether their absolute or relative path should be returned.
                              - */
                              -class MatchRecord {
                              -    store = new Map();
                              -    add(target, absolute, ifDir) {
                              -        const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
                              -        const current = this.store.get(target);
                              -        this.store.set(target, current === undefined ? n : n & current);
                              -    }
                              -    // match, absolute, ifdir
                              -    entries() {
                              -        return [...this.store.entries()].map(([path, n]) => [
                              -            path,
                              -            !!(n & 2),
                              -            !!(n & 1),
                              -        ]);
                              -    }
                              -}
                              -exports.MatchRecord = MatchRecord;
                              -/**
                              - * A collection of patterns that must be processed in a subsequent step
                              - * for a given path.
                              - */
                              -class SubWalks {
                              -    store = new Map();
                              -    add(target, pattern) {
                              -        if (!target.canReaddir()) {
                              -            return;
                              -        }
                              -        const subs = this.store.get(target);
                              -        if (subs) {
                              -            if (!subs.find(p => p.globString() === pattern.globString())) {
                              -                subs.push(pattern);
                              -            }
                              -        }
                              -        else
                              -            this.store.set(target, [pattern]);
                              -    }
                              -    get(target) {
                              -        const subs = this.store.get(target);
                              -        /* c8 ignore start */
                              -        if (!subs) {
                              -            throw new Error('attempting to walk unknown path');
                              -        }
                              -        /* c8 ignore stop */
                              -        return subs;
                              -    }
                              -    entries() {
                              -        return this.keys().map(k => [k, this.store.get(k)]);
                              -    }
                              -    keys() {
                              -        return [...this.store.keys()].filter(t => t.canReaddir());
                              -    }
                              -}
                              -exports.SubWalks = SubWalks;
                              -/**
                              - * The class that processes patterns for a given path.
                              - *
                              - * Handles child entry filtering, and determining whether a path's
                              - * directory contents must be read.
                              - */
                              -class Processor {
                              -    hasWalkedCache;
                              -    matches = new MatchRecord();
                              -    subwalks = new SubWalks();
                              -    patterns;
                              -    follow;
                              -    dot;
                              -    opts;
                              -    constructor(opts, hasWalkedCache) {
                              -        this.opts = opts;
                              -        this.follow = !!opts.follow;
                              -        this.dot = !!opts.dot;
                              -        this.hasWalkedCache = hasWalkedCache
                              -            ? hasWalkedCache.copy()
                              -            : new HasWalkedCache();
                              -    }
                              -    processPatterns(target, patterns) {
                              -        this.patterns = patterns;
                              -        const processingSet = patterns.map(p => [target, p]);
                              -        // map of paths to the magic-starting subwalks they need to walk
                              -        // first item in patterns is the filter
                              -        for (let [t, pattern] of processingSet) {
                              -            this.hasWalkedCache.storeWalked(t, pattern);
                              -            const root = pattern.root();
                              -            const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
                              -            // start absolute patterns at root
                              -            if (root) {
                              -                t = t.resolve(root === '/' && this.opts.root !== undefined
                              -                    ? this.opts.root
                              -                    : root);
                              -                const rest = pattern.rest();
                              -                if (!rest) {
                              -                    this.matches.add(t, true, false);
                              -                    continue;
                              -                }
                              -                else {
                              -                    pattern = rest;
                              -                }
                              -            }
                              -            if (t.isENOENT())
                              -                continue;
                              -            let p;
                              -            let rest;
                              -            let changed = false;
                              -            while (typeof (p = pattern.pattern()) === 'string' &&
                              -                (rest = pattern.rest())) {
                              -                const c = t.resolve(p);
                              -                // we can be reasonably sure that .. is a readable dir
                              -                if (c.isUnknown() && p !== '..')
                              -                    break;
                              -                t = c;
                              -                pattern = rest;
                              -                changed = true;
                              -            }
                              -            p = pattern.pattern();
                              -            rest = pattern.rest();
                              -            if (changed) {
                              -                if (this.hasWalkedCache.hasWalked(t, pattern))
                              -                    continue;
                              -                this.hasWalkedCache.storeWalked(t, pattern);
                              -            }
                              -            // now we have either a final string for a known entry,
                              -            // more strings for an unknown entry,
                              -            // or a pattern starting with magic, mounted on t.
                              -            if (typeof p === 'string') {
                              -                // must be final entry
                              -                if (!rest) {
                              -                    const ifDir = p === '..' || p === '' || p === '.';
                              -                    this.matches.add(t.resolve(p), absolute, ifDir);
                              -                }
                              -                else {
                              -                    this.subwalks.add(t, pattern);
                              -                }
                              -                continue;
                              -            }
                              -            else if (p === minimatch_1.GLOBSTAR) {
                              -                // if no rest, match and subwalk pattern
                              -                // if rest, process rest and subwalk pattern
                              -                // if it's a symlink, but we didn't get here by way of a
                              -                // globstar match (meaning it's the first time THIS globstar
                              -                // has traversed a symlink), then we follow it. Otherwise, stop.
                              -                if (!t.isSymbolicLink() ||
                              -                    this.follow ||
                              -                    pattern.checkFollowGlobstar()) {
                              -                    this.subwalks.add(t, pattern);
                              -                }
                              -                const rp = rest?.pattern();
                              -                const rrest = rest?.rest();
                              -                if (!rest || ((rp === '' || rp === '.') && !rrest)) {
                              -                    // only HAS to be a dir if it ends in **/ or **/.
                              -                    // but ending in ** will match files as well.
                              -                    this.matches.add(t, absolute, rp === '' || rp === '.');
                              -                }
                              -                else {
                              -                    if (rp === '..') {
                              -                        // this would mean you're matching **/.. at the fs root,
                              -                        // and no thanks, I'm not gonna test that specific case.
                              -                        /* c8 ignore start */
                              -                        const tp = t.parent || t;
                              -                        /* c8 ignore stop */
                              -                        if (!rrest)
                              -                            this.matches.add(tp, absolute, true);
                              -                        else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
                              -                            this.subwalks.add(tp, rrest);
                              -                        }
                              -                    }
                              -                }
                              -            }
                              -            else if (p instanceof RegExp) {
                              -                this.subwalks.add(t, pattern);
                              -            }
                              -        }
                              -        return this;
                              -    }
                              -    subwalkTargets() {
                              -        return this.subwalks.keys();
                              -    }
                              -    child() {
                              -        return new Processor(this.opts, this.hasWalkedCache);
                              -    }
                              -    // return a new Processor containing the subwalks for each
                              -    // child entry, and a set of matches, and
                              -    // a hasWalkedCache that's a copy of this one
                              -    // then we're going to call
                              -    filterEntries(parent, entries) {
                              -        const patterns = this.subwalks.get(parent);
                              -        // put matches and entry walks into the results processor
                              -        const results = this.child();
                              -        for (const e of entries) {
                              -            for (const pattern of patterns) {
                              -                const absolute = pattern.isAbsolute();
                              -                const p = pattern.pattern();
                              -                const rest = pattern.rest();
                              -                if (p === minimatch_1.GLOBSTAR) {
                              -                    results.testGlobstar(e, pattern, rest, absolute);
                              -                }
                              -                else if (p instanceof RegExp) {
                              -                    results.testRegExp(e, p, rest, absolute);
                              -                }
                              -                else {
                              -                    results.testString(e, p, rest, absolute);
                              -                }
                              -            }
                              -        }
                              -        return results;
                              -    }
                              -    testGlobstar(e, pattern, rest, absolute) {
                              -        if (this.dot || !e.name.startsWith('.')) {
                              -            if (!pattern.hasMore()) {
                              -                this.matches.add(e, absolute, false);
                              -            }
                              -            if (e.canReaddir()) {
                              -                // if we're in follow mode or it's not a symlink, just keep
                              -                // testing the same pattern. If there's more after the globstar,
                              -                // then this symlink consumes the globstar. If not, then we can
                              -                // follow at most ONE symlink along the way, so we mark it, which
                              -                // also checks to ensure that it wasn't already marked.
                              -                if (this.follow || !e.isSymbolicLink()) {
                              -                    this.subwalks.add(e, pattern);
                              -                }
                              -                else if (e.isSymbolicLink()) {
                              -                    if (rest && pattern.checkFollowGlobstar()) {
                              -                        this.subwalks.add(e, rest);
                              -                    }
                              -                    else if (pattern.markFollowGlobstar()) {
                              -                        this.subwalks.add(e, pattern);
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        // if the NEXT thing matches this entry, then also add
                              -        // the rest.
                              -        if (rest) {
                              -            const rp = rest.pattern();
                              -            if (typeof rp === 'string' &&
                              -                // dots and empty were handled already
                              -                rp !== '..' &&
                              -                rp !== '' &&
                              -                rp !== '.') {
                              -                this.testString(e, rp, rest.rest(), absolute);
                              -            }
                              -            else if (rp === '..') {
                              -                /* c8 ignore start */
                              -                const ep = e.parent || e;
                              -                /* c8 ignore stop */
                              -                this.subwalks.add(ep, rest);
                              -            }
                              -            else if (rp instanceof RegExp) {
                              -                this.testRegExp(e, rp, rest.rest(), absolute);
                              -            }
                              -        }
                              -    }
                              -    testRegExp(e, p, rest, absolute) {
                              -        if (!p.test(e.name))
                              -            return;
                              -        if (!rest) {
                              -            this.matches.add(e, absolute, false);
                              -        }
                              -        else {
                              -            this.subwalks.add(e, rest);
                              -        }
                              -    }
                              -    testString(e, p, rest, absolute) {
                              -        // should never happen?
                              -        if (!e.isNamed(p))
                              -            return;
                              -        if (!rest) {
                              -            this.matches.add(e, absolute, false);
                              -        }
                              -        else {
                              -            this.subwalks.add(e, rest);
                              -        }
                              -    }
                              -}
                              -exports.Processor = Processor;
                              -//# sourceMappingURL=processor.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js.map
                              deleted file mode 100644
                              index bcbac1f723f983..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/processor.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n  store: Map>\n  constructor(store: Map> = new Map()) {\n    this.store = store\n  }\n  copy() {\n    return new HasWalkedCache(new Map(this.store))\n  }\n  hasWalked(target: Path, pattern: Pattern) {\n    return this.store.get(target.fullpath())?.has(pattern.globString())\n  }\n  storeWalked(target: Path, pattern: Pattern) {\n    const fullpath = target.fullpath()\n    const cached = this.store.get(fullpath)\n    if (cached) cached.add(pattern.globString())\n    else this.store.set(fullpath, new Set([pattern.globString()]))\n  }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n  store: Map = new Map()\n  add(target: Path, absolute: boolean, ifDir: boolean) {\n    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n    const current = this.store.get(target)\n    this.store.set(target, current === undefined ? n : n & current)\n  }\n  // match, absolute, ifdir\n  entries(): [Path, boolean, boolean][] {\n    return [...this.store.entries()].map(([path, n]) => [\n      path,\n      !!(n & 2),\n      !!(n & 1),\n    ])\n  }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n  store: Map = new Map()\n  add(target: Path, pattern: Pattern) {\n    if (!target.canReaddir()) {\n      return\n    }\n    const subs = this.store.get(target)\n    if (subs) {\n      if (!subs.find(p => p.globString() === pattern.globString())) {\n        subs.push(pattern)\n      }\n    } else this.store.set(target, [pattern])\n  }\n  get(target: Path): Pattern[] {\n    const subs = this.store.get(target)\n    /* c8 ignore start */\n    if (!subs) {\n      throw new Error('attempting to walk unknown path')\n    }\n    /* c8 ignore stop */\n    return subs\n  }\n  entries(): [Path, Pattern[]][] {\n    return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n  }\n  keys(): Path[] {\n    return [...this.store.keys()].filter(t => t.canReaddir())\n  }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n  hasWalkedCache: HasWalkedCache\n  matches = new MatchRecord()\n  subwalks = new SubWalks()\n  patterns?: Pattern[]\n  follow: boolean\n  dot: boolean\n  opts: GlobWalkerOpts\n\n  constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n    this.opts = opts\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.hasWalkedCache = hasWalkedCache\n      ? hasWalkedCache.copy()\n      : new HasWalkedCache()\n  }\n\n  processPatterns(target: Path, patterns: Pattern[]) {\n    this.patterns = patterns\n    const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n    // map of paths to the magic-starting subwalks they need to walk\n    // first item in patterns is the filter\n\n    for (let [t, pattern] of processingSet) {\n      this.hasWalkedCache.storeWalked(t, pattern)\n\n      const root = pattern.root()\n      const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n      // start absolute patterns at root\n      if (root) {\n        t = t.resolve(\n          root === '/' && this.opts.root !== undefined\n            ? this.opts.root\n            : root\n        )\n        const rest = pattern.rest()\n        if (!rest) {\n          this.matches.add(t, true, false)\n          continue\n        } else {\n          pattern = rest\n        }\n      }\n\n      if (t.isENOENT()) continue\n\n      let p: MMPattern\n      let rest: Pattern | null\n      let changed = false\n      while (\n        typeof (p = pattern.pattern()) === 'string' &&\n        (rest = pattern.rest())\n      ) {\n        const c = t.resolve(p)\n        // we can be reasonably sure that .. is a readable dir\n        if (c.isUnknown() && p !== '..') break\n        t = c\n        pattern = rest\n        changed = true\n      }\n      p = pattern.pattern()\n      rest = pattern.rest()\n      if (changed) {\n        if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n        this.hasWalkedCache.storeWalked(t, pattern)\n      }\n\n      // now we have either a final string for a known entry,\n      // more strings for an unknown entry,\n      // or a pattern starting with magic, mounted on t.\n      if (typeof p === 'string') {\n        // must be final entry\n        if (!rest) {\n          const ifDir = p === '..' || p === '' || p === '.'\n          this.matches.add(t.resolve(p), absolute, ifDir)\n        } else {\n          this.subwalks.add(t, pattern)\n        }\n        continue\n      } else if (p === GLOBSTAR) {\n        // if no rest, match and subwalk pattern\n        // if rest, process rest and subwalk pattern\n        // if it's a symlink, but we didn't get here by way of a\n        // globstar match (meaning it's the first time THIS globstar\n        // has traversed a symlink), then we follow it. Otherwise, stop.\n        if (\n          !t.isSymbolicLink() ||\n          this.follow ||\n          pattern.checkFollowGlobstar()\n        ) {\n          this.subwalks.add(t, pattern)\n        }\n        const rp = rest?.pattern()\n        const rrest = rest?.rest()\n        if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n          // only HAS to be a dir if it ends in **/ or **/.\n          // but ending in ** will match files as well.\n          this.matches.add(t, absolute, rp === '' || rp === '.')\n        } else {\n          if (rp === '..') {\n            // this would mean you're matching **/.. at the fs root,\n            // and no thanks, I'm not gonna test that specific case.\n            /* c8 ignore start */\n            const tp = t.parent || t\n            /* c8 ignore stop */\n            if (!rrest) this.matches.add(tp, absolute, true)\n            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n              this.subwalks.add(tp, rrest)\n            }\n          }\n        }\n      } else if (p instanceof RegExp) {\n        this.subwalks.add(t, pattern)\n      }\n    }\n\n    return this\n  }\n\n  subwalkTargets(): Path[] {\n    return this.subwalks.keys()\n  }\n\n  child() {\n    return new Processor(this.opts, this.hasWalkedCache)\n  }\n\n  // return a new Processor containing the subwalks for each\n  // child entry, and a set of matches, and\n  // a hasWalkedCache that's a copy of this one\n  // then we're going to call\n  filterEntries(parent: Path, entries: Path[]): Processor {\n    const patterns = this.subwalks.get(parent)\n    // put matches and entry walks into the results processor\n    const results = this.child()\n    for (const e of entries) {\n      for (const pattern of patterns) {\n        const absolute = pattern.isAbsolute()\n        const p = pattern.pattern()\n        const rest = pattern.rest()\n        if (p === GLOBSTAR) {\n          results.testGlobstar(e, pattern, rest, absolute)\n        } else if (p instanceof RegExp) {\n          results.testRegExp(e, p, rest, absolute)\n        } else {\n          results.testString(e, p, rest, absolute)\n        }\n      }\n    }\n    return results\n  }\n\n  testGlobstar(\n    e: Path,\n    pattern: Pattern,\n    rest: Pattern | null,\n    absolute: boolean\n  ) {\n    if (this.dot || !e.name.startsWith('.')) {\n      if (!pattern.hasMore()) {\n        this.matches.add(e, absolute, false)\n      }\n      if (e.canReaddir()) {\n        // if we're in follow mode or it's not a symlink, just keep\n        // testing the same pattern. If there's more after the globstar,\n        // then this symlink consumes the globstar. If not, then we can\n        // follow at most ONE symlink along the way, so we mark it, which\n        // also checks to ensure that it wasn't already marked.\n        if (this.follow || !e.isSymbolicLink()) {\n          this.subwalks.add(e, pattern)\n        } else if (e.isSymbolicLink()) {\n          if (rest && pattern.checkFollowGlobstar()) {\n            this.subwalks.add(e, rest)\n          } else if (pattern.markFollowGlobstar()) {\n            this.subwalks.add(e, pattern)\n          }\n        }\n      }\n    }\n    // if the NEXT thing matches this entry, then also add\n    // the rest.\n    if (rest) {\n      const rp = rest.pattern()\n      if (\n        typeof rp === 'string' &&\n        // dots and empty were handled already\n        rp !== '..' &&\n        rp !== '' &&\n        rp !== '.'\n      ) {\n        this.testString(e, rp, rest.rest(), absolute)\n      } else if (rp === '..') {\n        /* c8 ignore start */\n        const ep = e.parent || e\n        /* c8 ignore stop */\n        this.subwalks.add(ep, rest)\n      } else if (rp instanceof RegExp) {\n        this.testRegExp(e, rp, rest.rest(), absolute)\n      }\n    }\n  }\n\n  testRegExp(\n    e: Path,\n    p: MMRegExp,\n    rest: Pattern | null,\n    absolute: boolean\n  ) {\n    if (!p.test(e.name)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n\n  testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n    // should never happen?\n    if (!e.isNamed(p)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts
                              deleted file mode 100644
                              index 5c1a0414971b3a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts
                              +++ /dev/null
                              @@ -1,96 +0,0 @@
                              -/// 
                              -/**
                              - * Single-use utility classes to provide functionality to the {@link Glob}
                              - * methods.
                              - *
                              - * @module
                              - */
                              -import { Minipass } from 'minipass';
                              -import { Path } from 'path-scurry';
                              -import { IgnoreLike } from './ignore.js';
                              -import { Pattern } from './pattern.js';
                              -import { Processor } from './processor.js';
                              -export interface GlobWalkerOpts {
                              -    absolute?: boolean;
                              -    allowWindowsEscape?: boolean;
                              -    cwd?: string | URL;
                              -    dot?: boolean;
                              -    dotRelative?: boolean;
                              -    follow?: boolean;
                              -    ignore?: string | string[] | IgnoreLike;
                              -    mark?: boolean;
                              -    matchBase?: boolean;
                              -    maxDepth?: number;
                              -    nobrace?: boolean;
                              -    nocase?: boolean;
                              -    nodir?: boolean;
                              -    noext?: boolean;
                              -    noglobstar?: boolean;
                              -    platform?: NodeJS.Platform;
                              -    posix?: boolean;
                              -    realpath?: boolean;
                              -    root?: string;
                              -    stat?: boolean;
                              -    signal?: AbortSignal;
                              -    windowsPathsNoEscape?: boolean;
                              -    withFileTypes?: boolean;
                              -}
                              -export type GWOFileTypesTrue = GlobWalkerOpts & {
                              -    withFileTypes: true;
                              -};
                              -export type GWOFileTypesFalse = GlobWalkerOpts & {
                              -    withFileTypes: false;
                              -};
                              -export type GWOFileTypesUnset = GlobWalkerOpts & {
                              -    withFileTypes?: undefined;
                              -};
                              -export type Result = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string;
                              -export type Matches = O extends GWOFileTypesTrue ? Set : O extends GWOFileTypesFalse ? Set : O extends GWOFileTypesUnset ? Set : Set;
                              -export type MatchStream = O extends GWOFileTypesTrue ? Minipass : O extends GWOFileTypesFalse ? Minipass : O extends GWOFileTypesUnset ? Minipass : Minipass;
                              -/**
                              - * basic walking utilities that all the glob walker types use
                              - */
                              -export declare abstract class GlobUtil {
                              -    #private;
                              -    path: Path;
                              -    patterns: Pattern[];
                              -    opts: O;
                              -    seen: Set;
                              -    paused: boolean;
                              -    aborted: boolean;
                              -    signal?: AbortSignal;
                              -    maxDepth: number;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    pause(): void;
                              -    resume(): void;
                              -    onResume(fn: () => any): void;
                              -    matchCheck(e: Path, ifDir: boolean): Promise;
                              -    matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined;
                              -    matchCheckSync(e: Path, ifDir: boolean): Path | undefined;
                              -    abstract matchEmit(p: Result): void;
                              -    abstract matchEmit(p: string | Path): void;
                              -    matchFinish(e: Path, absolute: boolean): void;
                              -    match(e: Path, absolute: boolean, ifDir: boolean): Promise;
                              -    matchSync(e: Path, absolute: boolean, ifDir: boolean): void;
                              -    walkCB(target: Path, patterns: Pattern[], cb: () => any): void;
                              -    walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
                              -    walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
                              -    walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void;
                              -    walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
                              -    walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
                              -}
                              -export declare class GlobWalker extends GlobUtil {
                              -    matches: O extends GWOFileTypesTrue ? Set : O extends GWOFileTypesFalse ? Set : O extends GWOFileTypesUnset ? Set : Set;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    matchEmit(e: Result): void;
                              -    walk(): Promise>;
                              -    walkSync(): Matches;
                              -}
                              -export declare class GlobStream extends GlobUtil {
                              -    results: O extends GWOFileTypesTrue ? Minipass : O extends GWOFileTypesFalse ? Minipass : O extends GWOFileTypesUnset ? Minipass : Minipass;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    matchEmit(e: Result): void;
                              -    stream(): MatchStream;
                              -    streamSync(): MatchStream;
                              -}
                              -//# sourceMappingURL=walker.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts.map
                              deleted file mode 100644
                              index dda062358f1998..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/walker.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js
                              deleted file mode 100644
                              index 9651ce1164016c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js
                              +++ /dev/null
                              @@ -1,358 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.GlobStream = exports.GlobWalker = exports.GlobUtil = void 0;
                              -/**
                              - * Single-use utility classes to provide functionality to the {@link Glob}
                              - * methods.
                              - *
                              - * @module
                              - */
                              -const minipass_1 = require("minipass");
                              -const ignore_js_1 = require("./ignore.js");
                              -const processor_js_1 = require("./processor.js");
                              -const makeIgnore = (ignore, opts) => typeof ignore === 'string'
                              -    ? new ignore_js_1.Ignore([ignore], opts)
                              -    : Array.isArray(ignore)
                              -        ? new ignore_js_1.Ignore(ignore, opts)
                              -        : ignore;
                              -/**
                              - * basic walking utilities that all the glob walker types use
                              - */
                              -class GlobUtil {
                              -    path;
                              -    patterns;
                              -    opts;
                              -    seen = new Set();
                              -    paused = false;
                              -    aborted = false;
                              -    #onResume = [];
                              -    #ignore;
                              -    #sep;
                              -    signal;
                              -    maxDepth;
                              -    constructor(patterns, path, opts) {
                              -        this.patterns = patterns;
                              -        this.path = path;
                              -        this.opts = opts;
                              -        this.#sep = !opts.posix && opts.platform === 'win32' ? '\\' : '/';
                              -        if (opts.ignore) {
                              -            this.#ignore = makeIgnore(opts.ignore, opts);
                              -        }
                              -        // ignore, always set with maxDepth, but it's optional on the
                              -        // GlobOptions type
                              -        /* c8 ignore start */
                              -        this.maxDepth = opts.maxDepth || Infinity;
                              -        /* c8 ignore stop */
                              -        if (opts.signal) {
                              -            this.signal = opts.signal;
                              -            this.signal.addEventListener('abort', () => {
                              -                this.#onResume.length = 0;
                              -            });
                              -        }
                              -    }
                              -    #ignored(path) {
                              -        return this.seen.has(path) || !!this.#ignore?.ignored?.(path);
                              -    }
                              -    #childrenIgnored(path) {
                              -        return !!this.#ignore?.childrenIgnored?.(path);
                              -    }
                              -    // backpressure mechanism
                              -    pause() {
                              -        this.paused = true;
                              -    }
                              -    resume() {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            return;
                              -        /* c8 ignore stop */
                              -        this.paused = false;
                              -        let fn = undefined;
                              -        while (!this.paused && (fn = this.#onResume.shift())) {
                              -            fn();
                              -        }
                              -    }
                              -    onResume(fn) {
                              -        if (this.signal?.aborted)
                              -            return;
                              -        /* c8 ignore start */
                              -        if (!this.paused) {
                              -            fn();
                              -        }
                              -        else {
                              -            /* c8 ignore stop */
                              -            this.#onResume.push(fn);
                              -        }
                              -    }
                              -    // do the requisite realpath/stat checking, and return the path
                              -    // to add or undefined to filter it out.
                              -    async matchCheck(e, ifDir) {
                              -        if (ifDir && this.opts.nodir)
                              -            return undefined;
                              -        let rpc;
                              -        if (this.opts.realpath) {
                              -            rpc = e.realpathCached() || (await e.realpath());
                              -            if (!rpc)
                              -                return undefined;
                              -            e = rpc;
                              -        }
                              -        const needStat = e.isUnknown() || this.opts.stat;
                              -        return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
                              -    }
                              -    matchCheckTest(e, ifDir) {
                              -        return e &&
                              -            (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&
                              -            (!ifDir || e.canReaddir()) &&
                              -            (!this.opts.nodir || !e.isDirectory()) &&
                              -            !this.#ignored(e)
                              -            ? e
                              -            : undefined;
                              -    }
                              -    matchCheckSync(e, ifDir) {
                              -        if (ifDir && this.opts.nodir)
                              -            return undefined;
                              -        let rpc;
                              -        if (this.opts.realpath) {
                              -            rpc = e.realpathCached() || e.realpathSync();
                              -            if (!rpc)
                              -                return undefined;
                              -            e = rpc;
                              -        }
                              -        const needStat = e.isUnknown() || this.opts.stat;
                              -        return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
                              -    }
                              -    matchFinish(e, absolute) {
                              -        if (this.#ignored(e))
                              -            return;
                              -        const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;
                              -        this.seen.add(e);
                              -        const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';
                              -        // ok, we have what we need!
                              -        if (this.opts.withFileTypes) {
                              -            this.matchEmit(e);
                              -        }
                              -        else if (abs) {
                              -            const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();
                              -            this.matchEmit(abs + mark);
                              -        }
                              -        else {
                              -            const rel = this.opts.posix ? e.relativePosix() : e.relative();
                              -            const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep)
                              -                ? '.' + this.#sep
                              -                : '';
                              -            this.matchEmit(!rel ? '.' + mark : pre + rel + mark);
                              -        }
                              -    }
                              -    async match(e, absolute, ifDir) {
                              -        const p = await this.matchCheck(e, ifDir);
                              -        if (p)
                              -            this.matchFinish(p, absolute);
                              -    }
                              -    matchSync(e, absolute, ifDir) {
                              -        const p = this.matchCheckSync(e, ifDir);
                              -        if (p)
                              -            this.matchFinish(p, absolute);
                              -    }
                              -    walkCB(target, patterns, cb) {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        /* c8 ignore stop */
                              -        this.walkCB2(target, patterns, new processor_js_1.Processor(this.opts), cb);
                              -    }
                              -    walkCB2(target, patterns, processor, cb) {
                              -        if (this.#childrenIgnored(target))
                              -            return cb();
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        if (this.paused) {
                              -            this.onResume(() => this.walkCB2(target, patterns, processor, cb));
                              -            return;
                              -        }
                              -        processor.processPatterns(target, patterns);
                              -        // done processing.  all of the above is sync, can be abstracted out.
                              -        // subwalks is a map of paths to the entry filters they need
                              -        // matches is a map of paths to [absolute, ifDir] tuples.
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            tasks++;
                              -            this.match(m, absolute, ifDir).then(() => next());
                              -        }
                              -        for (const t of processor.subwalkTargets()) {
                              -            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
                              -                continue;
                              -            }
                              -            tasks++;
                              -            const childrenCached = t.readdirCached();
                              -            if (t.calledReaddir())
                              -                this.walkCB3(t, childrenCached, processor, next);
                              -            else {
                              -                t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
                              -            }
                              -        }
                              -        next();
                              -    }
                              -    walkCB3(target, entries, processor, cb) {
                              -        processor = processor.filterEntries(target, entries);
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            tasks++;
                              -            this.match(m, absolute, ifDir).then(() => next());
                              -        }
                              -        for (const [target, patterns] of processor.subwalks.entries()) {
                              -            tasks++;
                              -            this.walkCB2(target, patterns, processor.child(), next);
                              -        }
                              -        next();
                              -    }
                              -    walkCBSync(target, patterns, cb) {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        /* c8 ignore stop */
                              -        this.walkCB2Sync(target, patterns, new processor_js_1.Processor(this.opts), cb);
                              -    }
                              -    walkCB2Sync(target, patterns, processor, cb) {
                              -        if (this.#childrenIgnored(target))
                              -            return cb();
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        if (this.paused) {
                              -            this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
                              -            return;
                              -        }
                              -        processor.processPatterns(target, patterns);
                              -        // done processing.  all of the above is sync, can be abstracted out.
                              -        // subwalks is a map of paths to the entry filters they need
                              -        // matches is a map of paths to [absolute, ifDir] tuples.
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            this.matchSync(m, absolute, ifDir);
                              -        }
                              -        for (const t of processor.subwalkTargets()) {
                              -            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
                              -                continue;
                              -            }
                              -            tasks++;
                              -            const children = t.readdirSync();
                              -            this.walkCB3Sync(t, children, processor, next);
                              -        }
                              -        next();
                              -    }
                              -    walkCB3Sync(target, entries, processor, cb) {
                              -        processor = processor.filterEntries(target, entries);
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            this.matchSync(m, absolute, ifDir);
                              -        }
                              -        for (const [target, patterns] of processor.subwalks.entries()) {
                              -            tasks++;
                              -            this.walkCB2Sync(target, patterns, processor.child(), next);
                              -        }
                              -        next();
                              -    }
                              -}
                              -exports.GlobUtil = GlobUtil;
                              -class GlobWalker extends GlobUtil {
                              -    matches;
                              -    constructor(patterns, path, opts) {
                              -        super(patterns, path, opts);
                              -        this.matches = new Set();
                              -    }
                              -    matchEmit(e) {
                              -        this.matches.add(e);
                              -    }
                              -    async walk() {
                              -        if (this.signal?.aborted)
                              -            throw this.signal.reason;
                              -        if (this.path.isUnknown()) {
                              -            await this.path.lstat();
                              -        }
                              -        await new Promise((res, rej) => {
                              -            this.walkCB(this.path, this.patterns, () => {
                              -                if (this.signal?.aborted) {
                              -                    rej(this.signal.reason);
                              -                }
                              -                else {
                              -                    res(this.matches);
                              -                }
                              -            });
                              -        });
                              -        return this.matches;
                              -    }
                              -    walkSync() {
                              -        if (this.signal?.aborted)
                              -            throw this.signal.reason;
                              -        if (this.path.isUnknown()) {
                              -            this.path.lstatSync();
                              -        }
                              -        // nothing for the callback to do, because this never pauses
                              -        this.walkCBSync(this.path, this.patterns, () => {
                              -            if (this.signal?.aborted)
                              -                throw this.signal.reason;
                              -        });
                              -        return this.matches;
                              -    }
                              -}
                              -exports.GlobWalker = GlobWalker;
                              -class GlobStream extends GlobUtil {
                              -    results;
                              -    constructor(patterns, path, opts) {
                              -        super(patterns, path, opts);
                              -        this.results = new minipass_1.Minipass({
                              -            signal: this.signal,
                              -            objectMode: true,
                              -        });
                              -        this.results.on('drain', () => this.resume());
                              -        this.results.on('resume', () => this.resume());
                              -    }
                              -    matchEmit(e) {
                              -        this.results.write(e);
                              -        if (!this.results.flowing)
                              -            this.pause();
                              -    }
                              -    stream() {
                              -        const target = this.path;
                              -        if (target.isUnknown()) {
                              -            target.lstat().then(() => {
                              -                this.walkCB(target, this.patterns, () => this.results.end());
                              -            });
                              -        }
                              -        else {
                              -            this.walkCB(target, this.patterns, () => this.results.end());
                              -        }
                              -        return this.results;
                              -    }
                              -    streamSync() {
                              -        if (this.path.isUnknown()) {
                              -            this.path.lstatSync();
                              -        }
                              -        this.walkCBSync(this.path, this.patterns, () => this.results.end());
                              -        return this.results;
                              -    }
                              -}
                              -exports.GlobStream = GlobStream;
                              -//# sourceMappingURL=walker.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js.map
                              deleted file mode 100644
                              index a7af398939ae48..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/cjs/src/walker.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../../src/walker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed?  that'd speed\n// things up a lot.  Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n  absolute?: boolean\n  allowWindowsEscape?: boolean\n  cwd?: string | URL\n  dot?: boolean\n  dotRelative?: boolean\n  follow?: boolean\n  ignore?: string | string[] | IgnoreLike\n  mark?: boolean\n  matchBase?: boolean\n  // Note: maxDepth here means \"maximum actual Path.depth()\",\n  // not \"maximum depth beyond cwd\"\n  maxDepth?: number\n  nobrace?: boolean\n  nocase?: boolean\n  nodir?: boolean\n  noext?: boolean\n  noglobstar?: boolean\n  platform?: NodeJS.Platform\n  posix?: boolean\n  realpath?: boolean\n  root?: string\n  stat?: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape?: boolean\n  withFileTypes?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n  withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n  withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n  withFileTypes?: undefined\n}\n\nexport type Result = O extends GWOFileTypesTrue\n  ? Path\n  : O extends GWOFileTypesFalse\n  ? string\n  : O extends GWOFileTypesUnset\n  ? string\n  : Path | string\n\nexport type Matches = O extends GWOFileTypesTrue\n  ? Set\n  : O extends GWOFileTypesFalse\n  ? Set\n  : O extends GWOFileTypesUnset\n  ? Set\n  : Set\n\nexport type MatchStream =\n  O extends GWOFileTypesTrue\n    ? Minipass\n    : O extends GWOFileTypesFalse\n    ? Minipass\n    : O extends GWOFileTypesUnset\n    ? Minipass\n    : Minipass\n\nconst makeIgnore = (\n  ignore: string | string[] | IgnoreLike,\n  opts: GlobWalkerOpts\n): IgnoreLike =>\n  typeof ignore === 'string'\n    ? new Ignore([ignore], opts)\n    : Array.isArray(ignore)\n    ? new Ignore(ignore, opts)\n    : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil {\n  path: Path\n  patterns: Pattern[]\n  opts: O\n  seen: Set = new Set()\n  paused: boolean = false\n  aborted: boolean = false\n  #onResume: (() => any)[] = []\n  #ignore?: IgnoreLike\n  #sep: '\\\\' | '/'\n  signal?: AbortSignal\n  maxDepth: number\n\n  constructor(patterns: Pattern[], path: Path, opts: O)\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    this.patterns = patterns\n    this.path = path\n    this.opts = opts\n    this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n    if (opts.ignore) {\n      this.#ignore = makeIgnore(opts.ignore, opts)\n    }\n    // ignore, always set with maxDepth, but it's optional on the\n    // GlobOptions type\n    /* c8 ignore start */\n    this.maxDepth = opts.maxDepth || Infinity\n    /* c8 ignore stop */\n    if (opts.signal) {\n      this.signal = opts.signal\n      this.signal.addEventListener('abort', () => {\n        this.#onResume.length = 0\n      })\n    }\n  }\n\n  #ignored(path: Path): boolean {\n    return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n  }\n  #childrenIgnored(path: Path): boolean {\n    return !!this.#ignore?.childrenIgnored?.(path)\n  }\n\n  // backpressure mechanism\n  pause() {\n    this.paused = true\n  }\n  resume() {\n    /* c8 ignore start */\n    if (this.signal?.aborted) return\n    /* c8 ignore stop */\n    this.paused = false\n    let fn: (() => any) | undefined = undefined\n    while (!this.paused && (fn = this.#onResume.shift())) {\n      fn()\n    }\n  }\n  onResume(fn: () => any) {\n    if (this.signal?.aborted) return\n    /* c8 ignore start */\n    if (!this.paused) {\n      fn()\n    } else {\n      /* c8 ignore stop */\n      this.#onResume.push(fn)\n    }\n  }\n\n  // do the requisite realpath/stat checking, and return the path\n  // to add or undefined to filter it out.\n  async matchCheck(e: Path, ifDir: boolean): Promise {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || (await e.realpath())\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir)\n  }\n\n  matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n    return e &&\n      (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n      (!ifDir || e.canReaddir()) &&\n      (!this.opts.nodir || !e.isDirectory()) &&\n      !this.#ignored(e)\n      ? e\n      : undefined\n  }\n\n  matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || e.realpathSync()\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir)\n  }\n\n  abstract matchEmit(p: Result): void\n  abstract matchEmit(p: string | Path): void\n\n  matchFinish(e: Path, absolute: boolean) {\n    if (this.#ignored(e)) return\n    const abs =\n      this.opts.absolute === undefined ? absolute : this.opts.absolute\n    this.seen.add(e)\n    const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n    // ok, we have what we need!\n    if (this.opts.withFileTypes) {\n      this.matchEmit(e)\n    } else if (abs) {\n      const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n      this.matchEmit(abs + mark)\n    } else {\n      const rel = this.opts.posix ? e.relativePosix() : e.relative()\n      const pre =\n        this.opts.dotRelative && !rel.startsWith('..' + this.#sep)\n          ? '.' + this.#sep\n          : ''\n      this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n    }\n  }\n\n  async match(e: Path, absolute: boolean, ifDir: boolean): Promise {\n    const p = await this.matchCheck(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n    const p = this.matchCheckSync(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const childrenCached = t.readdirCached()\n      if (t.calledReaddir())\n        this.walkCB3(t, childrenCached, processor, next)\n      else {\n        t.readdirCB(\n          (_, entries) => this.walkCB3(t, entries, processor, next),\n          true\n        )\n      }\n    }\n\n    next()\n  }\n\n  walkCB3(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n\n  walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2Sync(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() =>\n        this.walkCB2Sync(target, patterns, processor, cb)\n      )\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const children = t.readdirSync()\n      this.walkCB3Sync(t, children, processor, next)\n    }\n\n    next()\n  }\n\n  walkCB3Sync(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2Sync(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n}\n\nexport class GlobWalker<\n  O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n  matches: O extends GWOFileTypesTrue\n    ? Set\n    : O extends GWOFileTypesFalse\n    ? Set\n    : O extends GWOFileTypesUnset\n    ? Set\n    : Set\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.matches = new Set() as Matches\n  }\n\n  matchEmit(e: Result): void\n  matchEmit(e: Path | string): void {\n    this.matches.add(e)\n  }\n\n  async walk(): Promise> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      await this.path.lstat()\n    }\n    await new Promise((res, rej) => {\n      this.walkCB(this.path, this.patterns, () => {\n        if (this.signal?.aborted) {\n          rej(this.signal.reason)\n        } else {\n          res(this.matches)\n        }\n      })\n    })\n    return this.matches\n  }\n\n  walkSync(): Matches {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    // nothing for the callback to do, because this never pauses\n    this.walkCBSync(this.path, this.patterns, () => {\n      if (this.signal?.aborted) throw this.signal.reason\n    })\n    return this.matches\n  }\n}\n\nexport class GlobStream<\n  O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n  results: O extends GWOFileTypesTrue\n    ? Minipass\n    : O extends GWOFileTypesFalse\n    ? Minipass\n    : O extends GWOFileTypesUnset\n    ? Minipass\n    : Minipass\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.results = new Minipass({\n      signal: this.signal,\n      objectMode: true,\n    }) as MatchStream\n    this.results.on('drain', () => this.resume())\n    this.results.on('resume', () => this.resume())\n  }\n\n  matchEmit(e: Result): void\n  matchEmit(e: Path | string): void {\n    this.results.write(e)\n    if (!this.results.flowing) this.pause()\n  }\n\n  stream(): MatchStream {\n    const target = this.path\n    if (target.isUnknown()) {\n      target.lstat().then(() => {\n        this.walkCB(target, this.patterns, () => this.results.end())\n      })\n    } else {\n      this.walkCB(target, this.patterns, () => this.results.end())\n    }\n    return this.results\n  }\n\n  streamSync(): MatchStream {\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    this.walkCBSync(this.path, this.patterns, () => this.results.end())\n    return this.results\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts
                              deleted file mode 100644
                              index a8b3da7722b652..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts
                              +++ /dev/null
                              @@ -1,344 +0,0 @@
                              -/// 
                              -import { Minimatch } from 'minimatch';
                              -import { Minipass } from 'minipass';
                              -import { FSOption, Path, PathScurry } from 'path-scurry';
                              -import { IgnoreLike } from './ignore.js';
                              -import { Pattern } from './pattern.js';
                              -export type MatchSet = Minimatch['set'];
                              -export type GlobParts = Exclude;
                              -/**
                              - * A `GlobOptions` object may be provided to any of the exported methods, and
                              - * must be provided to the `Glob` constructor.
                              - *
                              - * All options are optional, boolean, and false by default, unless otherwise
                              - * noted.
                              - *
                              - * All resolved options are added to the Glob object as properties.
                              - *
                              - * If you are running many `glob` operations, you can pass a Glob object as the
                              - * `options` argument to a subsequent operation to share the previously loaded
                              - * cache.
                              - */
                              -export interface GlobOptions {
                              -    /**
                              -     * Set to `true` to always receive absolute paths for
                              -     * matched files. Set to `false` to always return relative paths.
                              -     *
                              -     * When this option is not set, absolute paths are returned for patterns
                              -     * that are absolute, and otherwise paths are returned that are relative
                              -     * to the `cwd` setting.
                              -     *
                              -     * This does _not_ make an extra system call to get
                              -     * the realpath, it only does string path resolution.
                              -     *
                              -     * Conflicts with {@link withFileTypes}
                              -     */
                              -    absolute?: boolean;
                              -    /**
                              -     * Set to false to enable {@link windowsPathsNoEscape}
                              -     *
                              -     * @deprecated
                              -     */
                              -    allowWindowsEscape?: boolean;
                              -    /**
                              -     * The current working directory in which to search. Defaults to
                              -     * `process.cwd()`.
                              -     *
                              -     * May be eiher a string path or a `file://` URL object or string.
                              -     */
                              -    cwd?: string | URL;
                              -    /**
                              -     * Include `.dot` files in normal matches and `globstar`
                              -     * matches. Note that an explicit dot in a portion of the pattern
                              -     * will always match dot files.
                              -     */
                              -    dot?: boolean;
                              -    /**
                              -     * Prepend all relative path strings with `./` (or `.\` on Windows).
                              -     *
                              -     * Without this option, returned relative paths are "bare", so instead of
                              -     * returning `'./foo/bar'`, they are returned as `'foo/bar'`.
                              -     *
                              -     * Relative patterns starting with `'../'` are not prepended with `./`, even
                              -     * if this option is set.
                              -     */
                              -    dotRelative?: boolean;
                              -    /**
                              -     * Follow symlinked directories when expanding `**`
                              -     * patterns. This can result in a lot of duplicate references in
                              -     * the presence of cyclic links, and make performance quite bad.
                              -     *
                              -     * By default, a `**` in a pattern will follow 1 symbolic link if
                              -     * it is not the first item in the pattern, or none if it is the
                              -     * first item in the pattern, following the same behavior as Bash.
                              -     */
                              -    follow?: boolean;
                              -    /**
                              -     * string or string[], or an object with `ignore` and `ignoreChildren`
                              -     * methods.
                              -     *
                              -     * If a string or string[] is provided, then this is treated as a glob
                              -     * pattern or array of glob patterns to exclude from matches. To ignore all
                              -     * children within a directory, as well as the entry itself, append `'/**'`
                              -     * to the ignore pattern.
                              -     *
                              -     * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of
                              -     * any other settings.
                              -     *
                              -     * If an object is provided that has `ignored(path)` and/or
                              -     * `childrenIgnored(path)` methods, then these methods will be called to
                              -     * determine whether any Path is a match or if its children should be
                              -     * traversed, respectively.
                              -     */
                              -    ignore?: string | string[] | IgnoreLike;
                              -    /**
                              -     * Treat brace expansion like `{a,b}` as a "magic" pattern. Has no
                              -     * effect if {@link nobrace} is set.
                              -     *
                              -     * Only has effect on the {@link hasMagic} function.
                              -     */
                              -    magicalBraces?: boolean;
                              -    /**
                              -     * Add a `/` character to directory matches. Note that this requires
                              -     * additional stat calls in some cases.
                              -     */
                              -    mark?: boolean;
                              -    /**
                              -     * Perform a basename-only match if the pattern does not contain any slash
                              -     * characters. That is, `*.js` would be treated as equivalent to
                              -     * `**\/*.js`, matching all js files in all directories.
                              -     */
                              -    matchBase?: boolean;
                              -    /**
                              -     * Limit the directory traversal to a given depth below the cwd.
                              -     * Note that this does NOT prevent traversal to sibling folders,
                              -     * root patterns, and so on. It only limits the maximum folder depth
                              -     * that the walk will descend, relative to the cwd.
                              -     */
                              -    maxDepth?: number;
                              -    /**
                              -     * Do not expand `{a,b}` and `{1..3}` brace sets.
                              -     */
                              -    nobrace?: boolean;
                              -    /**
                              -     * Perform a case-insensitive match. This defaults to `true` on macOS and
                              -     * Windows systems, and `false` on all others.
                              -     *
                              -     * **Note** `nocase` should only be explicitly set when it is
                              -     * known that the filesystem's case sensitivity differs from the
                              -     * platform default. If set `true` on case-sensitive file
                              -     * systems, or `false` on case-insensitive file systems, then the
                              -     * walk may return more or less results than expected.
                              -     */
                              -    nocase?: boolean;
                              -    /**
                              -     * Do not match directories, only files. (Note: to match
                              -     * _only_ directories, put a `/` at the end of the pattern.)
                              -     */
                              -    nodir?: boolean;
                              -    /**
                              -     * Do not match "extglob" patterns such as `+(a|b)`.
                              -     */
                              -    noext?: boolean;
                              -    /**
                              -     * Do not match `**` against multiple filenames. (Ie, treat it as a normal
                              -     * `*` instead.)
                              -     *
                              -     * Conflicts with {@link matchBase}
                              -     */
                              -    noglobstar?: boolean;
                              -    /**
                              -     * Defaults to value of `process.platform` if available, or `'linux'` if
                              -     * not. Setting `platform:'win32'` on non-Windows systems may cause strange
                              -     * behavior.
                              -     */
                              -    platform?: NodeJS.Platform;
                              -    /**
                              -     * Set to true to call `fs.realpath` on all of the
                              -     * results. In the case of an entry that cannot be resolved, the
                              -     * entry is omitted. This incurs a slight performance penalty, of
                              -     * course, because of the added system calls.
                              -     */
                              -    realpath?: boolean;
                              -    /**
                              -     *
                              -     * A string path resolved against the `cwd` option, which
                              -     * is used as the starting point for absolute patterns that start
                              -     * with `/`, (but not drive letters or UNC paths on Windows).
                              -     *
                              -     * Note that this _doesn't_ necessarily limit the walk to the
                              -     * `root` directory, and doesn't affect the cwd starting point for
                              -     * non-absolute patterns. A pattern containing `..` will still be
                              -     * able to traverse out of the root directory, if it is not an
                              -     * actual root directory on the filesystem, and any non-absolute
                              -     * patterns will be matched in the `cwd`. For example, the
                              -     * pattern `/../*` with `{root:'/some/path'}` will return all
                              -     * files in `/some`, not all files in `/some/path`. The pattern
                              -     * `*` with `{root:'/some/path'}` will return all the entries in
                              -     * the cwd, not the entries in `/some/path`.
                              -     *
                              -     * To start absolute and non-absolute patterns in the same
                              -     * path, you can use `{root:''}`. However, be aware that on
                              -     * Windows systems, a pattern like `x:/*` or `//host/share/*` will
                              -     * _always_ start in the `x:/` or `//host/share` directory,
                              -     * regardless of the `root` setting.
                              -     */
                              -    root?: string;
                              -    /**
                              -     * A [PathScurry](http://npm.im/path-scurry) object used
                              -     * to traverse the file system. If the `nocase` option is set
                              -     * explicitly, then any provided `scurry` object must match this
                              -     * setting.
                              -     */
                              -    scurry?: PathScurry;
                              -    /**
                              -     * Call `lstat()` on all entries, whether required or not to determine
                              -     * if it's a valid match. When used with {@link withFileTypes}, this means
                              -     * that matches will include data such as modified time, permissions, and
                              -     * so on.  Note that this will incur a performance cost due to the added
                              -     * system calls.
                              -     */
                              -    stat?: boolean;
                              -    /**
                              -     * An AbortSignal which will cancel the Glob walk when
                              -     * triggered.
                              -     */
                              -    signal?: AbortSignal;
                              -    /**
                              -     * Use `\\` as a path separator _only_, and
                              -     *  _never_ as an escape character. If set, all `\\` characters are
                              -     *  replaced with `/` in the pattern.
                              -     *
                              -     *  Note that this makes it **impossible** to match against paths
                              -     *  containing literal glob pattern characters, but allows matching
                              -     *  with patterns constructed using `path.join()` and
                              -     *  `path.resolve()` on Windows platforms, mimicking the (buggy!)
                              -     *  behavior of Glob v7 and before on Windows. Please use with
                              -     *  caution, and be mindful of [the caveat below about Windows
                              -     *  paths](#windows). (For legacy reasons, this is also set if
                              -     *  `allowWindowsEscape` is set to the exact value `false`.)
                              -     */
                              -    windowsPathsNoEscape?: boolean;
                              -    /**
                              -     * Return [PathScurry](http://npm.im/path-scurry)
                              -     * `Path` objects instead of strings. These are similar to a
                              -     * NodeJS `Dirent` object, but with additional methods and
                              -     * properties.
                              -     *
                              -     * Conflicts with {@link absolute}
                              -     */
                              -    withFileTypes?: boolean;
                              -    /**
                              -     * An fs implementation to override some or all of the defaults.  See
                              -     * http://npm.im/path-scurry for details about what can be overridden.
                              -     */
                              -    fs?: FSOption;
                              -    /**
                              -     * Just passed along to Minimatch.  Note that this makes all pattern
                              -     * matching operations slower and *extremely* noisy.
                              -     */
                              -    debug?: boolean;
                              -    /**
                              -     * Return `/` delimited paths, even on Windows.
                              -     *
                              -     * On posix systems, this has no effect.  But, on Windows, it means that
                              -     * paths will be `/` delimited, and absolute paths will be their full
                              -     * resolved UNC forms, eg instead of `'C:\\foo\\bar'`, it would return
                              -     * `'//?/C:/foo/bar'`
                              -     */
                              -    posix?: boolean;
                              -}
                              -export type GlobOptionsWithFileTypesTrue = GlobOptions & {
                              -    withFileTypes: true;
                              -    absolute?: undefined;
                              -    mark?: undefined;
                              -    posix?: undefined;
                              -};
                              -export type GlobOptionsWithFileTypesFalse = GlobOptions & {
                              -    withFileTypes?: false;
                              -};
                              -export type GlobOptionsWithFileTypesUnset = GlobOptions & {
                              -    withFileTypes?: undefined;
                              -};
                              -export type Result = Opts extends GlobOptionsWithFileTypesTrue ? Path : Opts extends GlobOptionsWithFileTypesFalse ? string : Opts extends GlobOptionsWithFileTypesUnset ? string : string | Path;
                              -export type Results = Result[];
                              -export type FileTypes = Opts extends GlobOptionsWithFileTypesTrue ? true : Opts extends GlobOptionsWithFileTypesFalse ? false : Opts extends GlobOptionsWithFileTypesUnset ? false : boolean;
                              -/**
                              - * An object that can perform glob pattern traversals.
                              - */
                              -export declare class Glob implements GlobOptions {
                              -    absolute?: boolean;
                              -    cwd: string;
                              -    root?: string;
                              -    dot: boolean;
                              -    dotRelative: boolean;
                              -    follow: boolean;
                              -    ignore?: string | string[] | IgnoreLike;
                              -    magicalBraces: boolean;
                              -    mark?: boolean;
                              -    matchBase: boolean;
                              -    maxDepth: number;
                              -    nobrace: boolean;
                              -    nocase: boolean;
                              -    nodir: boolean;
                              -    noext: boolean;
                              -    noglobstar: boolean;
                              -    pattern: string[];
                              -    platform: NodeJS.Platform;
                              -    realpath: boolean;
                              -    scurry: PathScurry;
                              -    stat: boolean;
                              -    signal?: AbortSignal;
                              -    windowsPathsNoEscape: boolean;
                              -    withFileTypes: FileTypes;
                              -    /**
                              -     * The options provided to the constructor.
                              -     */
                              -    opts: Opts;
                              -    /**
                              -     * An array of parsed immutable {@link Pattern} objects.
                              -     */
                              -    patterns: Pattern[];
                              -    /**
                              -     * All options are stored as properties on the `Glob` object.
                              -     *
                              -     * See {@link GlobOptions} for full options descriptions.
                              -     *
                              -     * Note that a previous `Glob` object can be passed as the
                              -     * `GlobOptions` to another `Glob` instantiation to re-use settings
                              -     * and caches with a new pattern.
                              -     *
                              -     * Traversal functions can be called multiple times to run the walk
                              -     * again.
                              -     */
                              -    constructor(pattern: string | string[], opts: Opts);
                              -    /**
                              -     * Returns a Promise that resolves to the results array.
                              -     */
                              -    walk(): Promise>;
                              -    /**
                              -     * synchronous {@link Glob.walk}
                              -     */
                              -    walkSync(): Results;
                              -    /**
                              -     * Stream results asynchronously.
                              -     */
                              -    stream(): Minipass, Result>;
                              -    /**
                              -     * Stream results synchronously.
                              -     */
                              -    streamSync(): Minipass, Result>;
                              -    /**
                              -     * Default sync iteration function. Returns a Generator that
                              -     * iterates over the results.
                              -     */
                              -    iterateSync(): Generator, void, void>;
                              -    [Symbol.iterator](): Generator, void, void>;
                              -    /**
                              -     * Default async iteration function. Returns an AsyncGenerator that
                              -     * iterates over the results.
                              -     */
                              -    iterate(): AsyncGenerator, void, void>;
                              -    [Symbol.asyncIterator](): AsyncGenerator, void, void>;
                              -}
                              -//# sourceMappingURL=glob.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts.map
                              deleted file mode 100644
                              index d45258ac24a580..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js
                              deleted file mode 100644
                              index 8ff26154427be9..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js
                              +++ /dev/null
                              @@ -1,234 +0,0 @@
                              -import { Minimatch } from 'minimatch';
                              -import { PathScurry, PathScurryDarwin, PathScurryPosix, PathScurryWin32, } from 'path-scurry';
                              -import { fileURLToPath } from 'url';
                              -import { Pattern } from './pattern.js';
                              -import { GlobStream, GlobWalker } from './walker.js';
                              -// if no process global, just call it linux.
                              -// so we default to case-sensitive, / separators
                              -const defaultPlatform = typeof process === 'object' &&
                              -    process &&
                              -    typeof process.platform === 'string'
                              -    ? process.platform
                              -    : 'linux';
                              -/**
                              - * An object that can perform glob pattern traversals.
                              - */
                              -export class Glob {
                              -    absolute;
                              -    cwd;
                              -    root;
                              -    dot;
                              -    dotRelative;
                              -    follow;
                              -    ignore;
                              -    magicalBraces;
                              -    mark;
                              -    matchBase;
                              -    maxDepth;
                              -    nobrace;
                              -    nocase;
                              -    nodir;
                              -    noext;
                              -    noglobstar;
                              -    pattern;
                              -    platform;
                              -    realpath;
                              -    scurry;
                              -    stat;
                              -    signal;
                              -    windowsPathsNoEscape;
                              -    withFileTypes;
                              -    /**
                              -     * The options provided to the constructor.
                              -     */
                              -    opts;
                              -    /**
                              -     * An array of parsed immutable {@link Pattern} objects.
                              -     */
                              -    patterns;
                              -    /**
                              -     * All options are stored as properties on the `Glob` object.
                              -     *
                              -     * See {@link GlobOptions} for full options descriptions.
                              -     *
                              -     * Note that a previous `Glob` object can be passed as the
                              -     * `GlobOptions` to another `Glob` instantiation to re-use settings
                              -     * and caches with a new pattern.
                              -     *
                              -     * Traversal functions can be called multiple times to run the walk
                              -     * again.
                              -     */
                              -    constructor(pattern, opts) {
                              -        /* c8 ignore start */
                              -        if (!opts)
                              -            throw new TypeError('glob options required');
                              -        /* c8 ignore stop */
                              -        this.withFileTypes = !!opts.withFileTypes;
                              -        this.signal = opts.signal;
                              -        this.follow = !!opts.follow;
                              -        this.dot = !!opts.dot;
                              -        this.dotRelative = !!opts.dotRelative;
                              -        this.nodir = !!opts.nodir;
                              -        this.mark = !!opts.mark;
                              -        if (!opts.cwd) {
                              -            this.cwd = '';
                              -        }
                              -        else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {
                              -            opts.cwd = fileURLToPath(opts.cwd);
                              -        }
                              -        this.cwd = opts.cwd || '';
                              -        this.root = opts.root;
                              -        this.magicalBraces = !!opts.magicalBraces;
                              -        this.nobrace = !!opts.nobrace;
                              -        this.noext = !!opts.noext;
                              -        this.realpath = !!opts.realpath;
                              -        this.absolute = opts.absolute;
                              -        this.noglobstar = !!opts.noglobstar;
                              -        this.matchBase = !!opts.matchBase;
                              -        this.maxDepth =
                              -            typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity;
                              -        this.stat = !!opts.stat;
                              -        this.ignore = opts.ignore;
                              -        if (this.withFileTypes && this.absolute !== undefined) {
                              -            throw new Error('cannot set absolute and withFileTypes:true');
                              -        }
                              -        if (typeof pattern === 'string') {
                              -            pattern = [pattern];
                              -        }
                              -        this.windowsPathsNoEscape =
                              -            !!opts.windowsPathsNoEscape ||
                              -                opts.allowWindowsEscape === false;
                              -        if (this.windowsPathsNoEscape) {
                              -            pattern = pattern.map(p => p.replace(/\\/g, '/'));
                              -        }
                              -        if (this.matchBase) {
                              -            if (opts.noglobstar) {
                              -                throw new TypeError('base matching requires globstar');
                              -            }
                              -            pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`));
                              -        }
                              -        this.pattern = pattern;
                              -        this.platform = opts.platform || defaultPlatform;
                              -        this.opts = { ...opts, platform: this.platform };
                              -        if (opts.scurry) {
                              -            this.scurry = opts.scurry;
                              -            if (opts.nocase !== undefined &&
                              -                opts.nocase !== opts.scurry.nocase) {
                              -                throw new Error('nocase option contradicts provided scurry option');
                              -            }
                              -        }
                              -        else {
                              -            const Scurry = opts.platform === 'win32'
                              -                ? PathScurryWin32
                              -                : opts.platform === 'darwin'
                              -                    ? PathScurryDarwin
                              -                    : opts.platform
                              -                        ? PathScurryPosix
                              -                        : PathScurry;
                              -            this.scurry = new Scurry(this.cwd, {
                              -                nocase: opts.nocase,
                              -                fs: opts.fs,
                              -            });
                              -        }
                              -        this.nocase = this.scurry.nocase;
                              -        // If you do nocase:true on a case-sensitive file system, then
                              -        // we need to use regexps instead of strings for non-magic
                              -        // path portions, because statting `aBc` won't return results
                              -        // for the file `AbC` for example.
                              -        const nocaseMagicOnly = this.platform === 'darwin' || this.platform === 'win32';
                              -        const mmo = {
                              -            // default nocase based on platform
                              -            ...opts,
                              -            dot: this.dot,
                              -            matchBase: this.matchBase,
                              -            nobrace: this.nobrace,
                              -            nocase: this.nocase,
                              -            nocaseMagicOnly,
                              -            nocomment: true,
                              -            noext: this.noext,
                              -            nonegate: true,
                              -            optimizationLevel: 2,
                              -            platform: this.platform,
                              -            windowsPathsNoEscape: this.windowsPathsNoEscape,
                              -            debug: !!this.opts.debug,
                              -        };
                              -        const mms = this.pattern.map(p => new Minimatch(p, mmo));
                              -        const [matchSet, globParts] = mms.reduce((set, m) => {
                              -            set[0].push(...m.set);
                              -            set[1].push(...m.globParts);
                              -            return set;
                              -        }, [[], []]);
                              -        this.patterns = matchSet.map((set, i) => {
                              -            return new Pattern(set, globParts[i], 0, this.platform);
                              -        });
                              -    }
                              -    async walk() {
                              -        // Walkers always return array of Path objects, so we just have to
                              -        // coerce them into the right shape.  It will have already called
                              -        // realpath() if the option was set to do so, so we know that's cached.
                              -        // start out knowing the cwd, at least
                              -        return [
                              -            ...(await new GlobWalker(this.patterns, this.scurry.cwd, {
                              -                ...this.opts,
                              -                maxDepth: this.maxDepth !== Infinity
                              -                    ? this.maxDepth + this.scurry.cwd.depth()
                              -                    : Infinity,
                              -                platform: this.platform,
                              -                nocase: this.nocase,
                              -            }).walk()),
                              -        ];
                              -    }
                              -    walkSync() {
                              -        return [
                              -            ...new GlobWalker(this.patterns, this.scurry.cwd, {
                              -                ...this.opts,
                              -                maxDepth: this.maxDepth !== Infinity
                              -                    ? this.maxDepth + this.scurry.cwd.depth()
                              -                    : Infinity,
                              -                platform: this.platform,
                              -                nocase: this.nocase,
                              -            }).walkSync(),
                              -        ];
                              -    }
                              -    stream() {
                              -        return new GlobStream(this.patterns, this.scurry.cwd, {
                              -            ...this.opts,
                              -            maxDepth: this.maxDepth !== Infinity
                              -                ? this.maxDepth + this.scurry.cwd.depth()
                              -                : Infinity,
                              -            platform: this.platform,
                              -            nocase: this.nocase,
                              -        }).stream();
                              -    }
                              -    streamSync() {
                              -        return new GlobStream(this.patterns, this.scurry.cwd, {
                              -            ...this.opts,
                              -            maxDepth: this.maxDepth !== Infinity
                              -                ? this.maxDepth + this.scurry.cwd.depth()
                              -                : Infinity,
                              -            platform: this.platform,
                              -            nocase: this.nocase,
                              -        }).streamSync();
                              -    }
                              -    /**
                              -     * Default sync iteration function. Returns a Generator that
                              -     * iterates over the results.
                              -     */
                              -    iterateSync() {
                              -        return this.streamSync()[Symbol.iterator]();
                              -    }
                              -    [Symbol.iterator]() {
                              -        return this.iterateSync();
                              -    }
                              -    /**
                              -     * Default async iteration function. Returns an AsyncGenerator that
                              -     * iterates over the results.
                              -     */
                              -    iterate() {
                              -        return this.stream()[Symbol.asyncIterator]();
                              -    }
                              -    [Symbol.asyncIterator]() {
                              -        return this.iterate();
                              -    }
                              -}
                              -//# sourceMappingURL=glob.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js.map
                              deleted file mode 100644
                              index 94558c1d2c66a4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/glob.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/glob.ts"],"names":[],"mappings":"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","sourcesContent":["import { Minimatch, MinimatchOptions } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport {\n  FSOption,\n  Path,\n  PathScurry,\n  PathScurryDarwin,\n  PathScurryPosix,\n  PathScurryWin32,\n} from 'path-scurry'\nimport { fileURLToPath } from 'url'\nimport { IgnoreLike } from './ignore.js'\nimport { Pattern } from './pattern.js'\nimport { GlobStream, GlobWalker } from './walker.js'\n\nexport type MatchSet = Minimatch['set']\nexport type GlobParts = Exclude\n\n// if no process global, just call it linux.\n// so we default to case-sensitive, / separators\nconst defaultPlatform: NodeJS.Platform =\n  typeof process === 'object' &&\n  process &&\n  typeof process.platform === 'string'\n    ? process.platform\n    : 'linux'\n\n/**\n * A `GlobOptions` object may be provided to any of the exported methods, and\n * must be provided to the `Glob` constructor.\n *\n * All options are optional, boolean, and false by default, unless otherwise\n * noted.\n *\n * All resolved options are added to the Glob object as properties.\n *\n * If you are running many `glob` operations, you can pass a Glob object as the\n * `options` argument to a subsequent operation to share the previously loaded\n * cache.\n */\nexport interface GlobOptions {\n  /**\n   * Set to `true` to always receive absolute paths for\n   * matched files. Set to `false` to always return relative paths.\n   *\n   * When this option is not set, absolute paths are returned for patterns\n   * that are absolute, and otherwise paths are returned that are relative\n   * to the `cwd` setting.\n   *\n   * This does _not_ make an extra system call to get\n   * the realpath, it only does string path resolution.\n   *\n   * Conflicts with {@link withFileTypes}\n   */\n  absolute?: boolean\n\n  /**\n   * Set to false to enable {@link windowsPathsNoEscape}\n   *\n   * @deprecated\n   */\n  allowWindowsEscape?: boolean\n\n  /**\n   * The current working directory in which to search. Defaults to\n   * `process.cwd()`.\n   *\n   * May be eiher a string path or a `file://` URL object or string.\n   */\n  cwd?: string | URL\n\n  /**\n   * Include `.dot` files in normal matches and `globstar`\n   * matches. Note that an explicit dot in a portion of the pattern\n   * will always match dot files.\n   */\n  dot?: boolean\n\n  /**\n   * Prepend all relative path strings with `./` (or `.\\` on Windows).\n   *\n   * Without this option, returned relative paths are \"bare\", so instead of\n   * returning `'./foo/bar'`, they are returned as `'foo/bar'`.\n   *\n   * Relative patterns starting with `'../'` are not prepended with `./`, even\n   * if this option is set.\n   */\n  dotRelative?: boolean\n\n  /**\n   * Follow symlinked directories when expanding `**`\n   * patterns. This can result in a lot of duplicate references in\n   * the presence of cyclic links, and make performance quite bad.\n   *\n   * By default, a `**` in a pattern will follow 1 symbolic link if\n   * it is not the first item in the pattern, or none if it is the\n   * first item in the pattern, following the same behavior as Bash.\n   */\n  follow?: boolean\n\n  /**\n   * string or string[], or an object with `ignore` and `ignoreChildren`\n   * methods.\n   *\n   * If a string or string[] is provided, then this is treated as a glob\n   * pattern or array of glob patterns to exclude from matches. To ignore all\n   * children within a directory, as well as the entry itself, append `'/**'`\n   * to the ignore pattern.\n   *\n   * **Note** `ignore` patterns are _always_ in `dot:true` mode, regardless of\n   * any other settings.\n   *\n   * If an object is provided that has `ignored(path)` and/or\n   * `childrenIgnored(path)` methods, then these methods will be called to\n   * determine whether any Path is a match or if its children should be\n   * traversed, respectively.\n   */\n  ignore?: string | string[] | IgnoreLike\n\n  /**\n   * Treat brace expansion like `{a,b}` as a \"magic\" pattern. Has no\n   * effect if {@link nobrace} is set.\n   *\n   * Only has effect on the {@link hasMagic} function.\n   */\n  magicalBraces?: boolean\n\n  /**\n   * Add a `/` character to directory matches. Note that this requires\n   * additional stat calls in some cases.\n   */\n  mark?: boolean\n\n  /**\n   * Perform a basename-only match if the pattern does not contain any slash\n   * characters. That is, `*.js` would be treated as equivalent to\n   * `**\\/*.js`, matching all js files in all directories.\n   */\n  matchBase?: boolean\n\n  /**\n   * Limit the directory traversal to a given depth below the cwd.\n   * Note that this does NOT prevent traversal to sibling folders,\n   * root patterns, and so on. It only limits the maximum folder depth\n   * that the walk will descend, relative to the cwd.\n   */\n  maxDepth?: number\n\n  /**\n   * Do not expand `{a,b}` and `{1..3}` brace sets.\n   */\n  nobrace?: boolean\n\n  /**\n   * Perform a case-insensitive match. This defaults to `true` on macOS and\n   * Windows systems, and `false` on all others.\n   *\n   * **Note** `nocase` should only be explicitly set when it is\n   * known that the filesystem's case sensitivity differs from the\n   * platform default. If set `true` on case-sensitive file\n   * systems, or `false` on case-insensitive file systems, then the\n   * walk may return more or less results than expected.\n   */\n  nocase?: boolean\n\n  /**\n   * Do not match directories, only files. (Note: to match\n   * _only_ directories, put a `/` at the end of the pattern.)\n   */\n  nodir?: boolean\n\n  /**\n   * Do not match \"extglob\" patterns such as `+(a|b)`.\n   */\n  noext?: boolean\n\n  /**\n   * Do not match `**` against multiple filenames. (Ie, treat it as a normal\n   * `*` instead.)\n   *\n   * Conflicts with {@link matchBase}\n   */\n  noglobstar?: boolean\n\n  /**\n   * Defaults to value of `process.platform` if available, or `'linux'` if\n   * not. Setting `platform:'win32'` on non-Windows systems may cause strange\n   * behavior.\n   */\n  platform?: NodeJS.Platform\n\n  /**\n   * Set to true to call `fs.realpath` on all of the\n   * results. In the case of an entry that cannot be resolved, the\n   * entry is omitted. This incurs a slight performance penalty, of\n   * course, because of the added system calls.\n   */\n  realpath?: boolean\n\n  /**\n   *\n   * A string path resolved against the `cwd` option, which\n   * is used as the starting point for absolute patterns that start\n   * with `/`, (but not drive letters or UNC paths on Windows).\n   *\n   * Note that this _doesn't_ necessarily limit the walk to the\n   * `root` directory, and doesn't affect the cwd starting point for\n   * non-absolute patterns. A pattern containing `..` will still be\n   * able to traverse out of the root directory, if it is not an\n   * actual root directory on the filesystem, and any non-absolute\n   * patterns will be matched in the `cwd`. For example, the\n   * pattern `/../*` with `{root:'/some/path'}` will return all\n   * files in `/some`, not all files in `/some/path`. The pattern\n   * `*` with `{root:'/some/path'}` will return all the entries in\n   * the cwd, not the entries in `/some/path`.\n   *\n   * To start absolute and non-absolute patterns in the same\n   * path, you can use `{root:''}`. However, be aware that on\n   * Windows systems, a pattern like `x:/*` or `//host/share/*` will\n   * _always_ start in the `x:/` or `//host/share` directory,\n   * regardless of the `root` setting.\n   */\n  root?: string\n\n  /**\n   * A [PathScurry](http://npm.im/path-scurry) object used\n   * to traverse the file system. If the `nocase` option is set\n   * explicitly, then any provided `scurry` object must match this\n   * setting.\n   */\n  scurry?: PathScurry\n\n  /**\n   * Call `lstat()` on all entries, whether required or not to determine\n   * if it's a valid match. When used with {@link withFileTypes}, this means\n   * that matches will include data such as modified time, permissions, and\n   * so on.  Note that this will incur a performance cost due to the added\n   * system calls.\n   */\n  stat?: boolean\n\n  /**\n   * An AbortSignal which will cancel the Glob walk when\n   * triggered.\n   */\n  signal?: AbortSignal\n\n  /**\n   * Use `\\\\` as a path separator _only_, and\n   *  _never_ as an escape character. If set, all `\\\\` characters are\n   *  replaced with `/` in the pattern.\n   *\n   *  Note that this makes it **impossible** to match against paths\n   *  containing literal glob pattern characters, but allows matching\n   *  with patterns constructed using `path.join()` and\n   *  `path.resolve()` on Windows platforms, mimicking the (buggy!)\n   *  behavior of Glob v7 and before on Windows. Please use with\n   *  caution, and be mindful of [the caveat below about Windows\n   *  paths](#windows). (For legacy reasons, this is also set if\n   *  `allowWindowsEscape` is set to the exact value `false`.)\n   */\n  windowsPathsNoEscape?: boolean\n\n  /**\n   * Return [PathScurry](http://npm.im/path-scurry)\n   * `Path` objects instead of strings. These are similar to a\n   * NodeJS `Dirent` object, but with additional methods and\n   * properties.\n   *\n   * Conflicts with {@link absolute}\n   */\n  withFileTypes?: boolean\n\n  /**\n   * An fs implementation to override some or all of the defaults.  See\n   * http://npm.im/path-scurry for details about what can be overridden.\n   */\n  fs?: FSOption\n\n  /**\n   * Just passed along to Minimatch.  Note that this makes all pattern\n   * matching operations slower and *extremely* noisy.\n   */\n  debug?: boolean\n\n  /**\n   * Return `/` delimited paths, even on Windows.\n   *\n   * On posix systems, this has no effect.  But, on Windows, it means that\n   * paths will be `/` delimited, and absolute paths will be their full\n   * resolved UNC forms, eg instead of `'C:\\\\foo\\\\bar'`, it would return\n   * `'//?/C:/foo/bar'`\n   */\n  posix?: boolean\n}\n\nexport type GlobOptionsWithFileTypesTrue = GlobOptions & {\n  withFileTypes: true\n  // string options not relevant if returning Path objects.\n  absolute?: undefined\n  mark?: undefined\n  posix?: undefined\n}\n\nexport type GlobOptionsWithFileTypesFalse = GlobOptions & {\n  withFileTypes?: false\n}\n\nexport type GlobOptionsWithFileTypesUnset = GlobOptions & {\n  withFileTypes?: undefined\n}\n\nexport type Result = Opts extends GlobOptionsWithFileTypesTrue\n  ? Path\n  : Opts extends GlobOptionsWithFileTypesFalse\n  ? string\n  : Opts extends GlobOptionsWithFileTypesUnset\n  ? string\n  : string | Path\nexport type Results = Result[]\n\nexport type FileTypes = Opts extends GlobOptionsWithFileTypesTrue\n  ? true\n  : Opts extends GlobOptionsWithFileTypesFalse\n  ? false\n  : Opts extends GlobOptionsWithFileTypesUnset\n  ? false\n  : boolean\n\n/**\n * An object that can perform glob pattern traversals.\n */\nexport class Glob implements GlobOptions {\n  absolute?: boolean\n  cwd: string\n  root?: string\n  dot: boolean\n  dotRelative: boolean\n  follow: boolean\n  ignore?: string | string[] | IgnoreLike\n  magicalBraces: boolean\n  mark?: boolean\n  matchBase: boolean\n  maxDepth: number\n  nobrace: boolean\n  nocase: boolean\n  nodir: boolean\n  noext: boolean\n  noglobstar: boolean\n  pattern: string[]\n  platform: NodeJS.Platform\n  realpath: boolean\n  scurry: PathScurry\n  stat: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape: boolean\n  withFileTypes: FileTypes\n\n  /**\n   * The options provided to the constructor.\n   */\n  opts: Opts\n\n  /**\n   * An array of parsed immutable {@link Pattern} objects.\n   */\n  patterns: Pattern[]\n\n  /**\n   * All options are stored as properties on the `Glob` object.\n   *\n   * See {@link GlobOptions} for full options descriptions.\n   *\n   * Note that a previous `Glob` object can be passed as the\n   * `GlobOptions` to another `Glob` instantiation to re-use settings\n   * and caches with a new pattern.\n   *\n   * Traversal functions can be called multiple times to run the walk\n   * again.\n   */\n  constructor(pattern: string | string[], opts: Opts) {\n    /* c8 ignore start */\n    if (!opts) throw new TypeError('glob options required')\n    /* c8 ignore stop */\n    this.withFileTypes = !!opts.withFileTypes as FileTypes\n    this.signal = opts.signal\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.dotRelative = !!opts.dotRelative\n    this.nodir = !!opts.nodir\n    this.mark = !!opts.mark\n    if (!opts.cwd) {\n      this.cwd = ''\n    } else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {\n      opts.cwd = fileURLToPath(opts.cwd)\n    }\n    this.cwd = opts.cwd || ''\n    this.root = opts.root\n    this.magicalBraces = !!opts.magicalBraces\n    this.nobrace = !!opts.nobrace\n    this.noext = !!opts.noext\n    this.realpath = !!opts.realpath\n    this.absolute = opts.absolute\n\n    this.noglobstar = !!opts.noglobstar\n    this.matchBase = !!opts.matchBase\n    this.maxDepth =\n      typeof opts.maxDepth === 'number' ? opts.maxDepth : Infinity\n    this.stat = !!opts.stat\n    this.ignore = opts.ignore\n\n    if (this.withFileTypes && this.absolute !== undefined) {\n      throw new Error('cannot set absolute and withFileTypes:true')\n    }\n\n    if (typeof pattern === 'string') {\n      pattern = [pattern]\n    }\n\n    this.windowsPathsNoEscape =\n      !!opts.windowsPathsNoEscape ||\n      (opts as GlobOptions).allowWindowsEscape === false\n\n    if (this.windowsPathsNoEscape) {\n      pattern = pattern.map(p => p.replace(/\\\\/g, '/'))\n    }\n\n    if (this.matchBase) {\n      if (opts.noglobstar) {\n        throw new TypeError('base matching requires globstar')\n      }\n      pattern = pattern.map(p => (p.includes('/') ? p : `./**/${p}`))\n    }\n\n    this.pattern = pattern\n\n    this.platform = opts.platform || defaultPlatform\n    this.opts = { ...opts, platform: this.platform }\n    if (opts.scurry) {\n      this.scurry = opts.scurry\n      if (\n        opts.nocase !== undefined &&\n        opts.nocase !== opts.scurry.nocase\n      ) {\n        throw new Error('nocase option contradicts provided scurry option')\n      }\n    } else {\n      const Scurry =\n        opts.platform === 'win32'\n          ? PathScurryWin32\n          : opts.platform === 'darwin'\n          ? PathScurryDarwin\n          : opts.platform\n          ? PathScurryPosix\n          : PathScurry\n      this.scurry = new Scurry(this.cwd, {\n        nocase: opts.nocase,\n        fs: opts.fs,\n      })\n    }\n    this.nocase = this.scurry.nocase\n\n    // If you do nocase:true on a case-sensitive file system, then\n    // we need to use regexps instead of strings for non-magic\n    // path portions, because statting `aBc` won't return results\n    // for the file `AbC` for example.\n    const nocaseMagicOnly =\n      this.platform === 'darwin' || this.platform === 'win32'\n\n    const mmo: MinimatchOptions = {\n      // default nocase based on platform\n      ...opts,\n      dot: this.dot,\n      matchBase: this.matchBase,\n      nobrace: this.nobrace,\n      nocase: this.nocase,\n      nocaseMagicOnly,\n      nocomment: true,\n      noext: this.noext,\n      nonegate: true,\n      optimizationLevel: 2,\n      platform: this.platform,\n      windowsPathsNoEscape: this.windowsPathsNoEscape,\n      debug: !!this.opts.debug,\n    }\n\n    const mms = this.pattern.map(p => new Minimatch(p, mmo))\n    const [matchSet, globParts] = mms.reduce(\n      (set: [MatchSet, GlobParts], m) => {\n        set[0].push(...m.set)\n        set[1].push(...m.globParts)\n        return set\n      },\n      [[], []]\n    )\n    this.patterns = matchSet.map((set, i) => {\n      return new Pattern(set, globParts[i], 0, this.platform)\n    })\n  }\n\n  /**\n   * Returns a Promise that resolves to the results array.\n   */\n  async walk(): Promise>\n  async walk(): Promise<(string | Path)[]> {\n    // Walkers always return array of Path objects, so we just have to\n    // coerce them into the right shape.  It will have already called\n    // realpath() if the option was set to do so, so we know that's cached.\n    // start out knowing the cwd, at least\n    return [\n      ...(await new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity\n            ? this.maxDepth + this.scurry.cwd.depth()\n            : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n      }).walk()),\n    ]\n  }\n\n  /**\n   * synchronous {@link Glob.walk}\n   */\n  walkSync(): Results\n  walkSync(): (string | Path)[] {\n    return [\n      ...new GlobWalker(this.patterns, this.scurry.cwd, {\n        ...this.opts,\n        maxDepth:\n          this.maxDepth !== Infinity\n            ? this.maxDepth + this.scurry.cwd.depth()\n            : Infinity,\n        platform: this.platform,\n        nocase: this.nocase,\n      }).walkSync(),\n    ]\n  }\n\n  /**\n   * Stream results asynchronously.\n   */\n  stream(): Minipass, Result>\n  stream(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity\n          ? this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n    }).stream()\n  }\n\n  /**\n   * Stream results synchronously.\n   */\n  streamSync(): Minipass, Result>\n  streamSync(): Minipass {\n    return new GlobStream(this.patterns, this.scurry.cwd, {\n      ...this.opts,\n      maxDepth:\n        this.maxDepth !== Infinity\n          ? this.maxDepth + this.scurry.cwd.depth()\n          : Infinity,\n      platform: this.platform,\n      nocase: this.nocase,\n    }).streamSync()\n  }\n\n  /**\n   * Default sync iteration function. Returns a Generator that\n   * iterates over the results.\n   */\n  iterateSync(): Generator, void, void> {\n    return this.streamSync()[Symbol.iterator]()\n  }\n  [Symbol.iterator]() {\n    return this.iterateSync()\n  }\n\n  /**\n   * Default async iteration function. Returns an AsyncGenerator that\n   * iterates over the results.\n   */\n  iterate(): AsyncGenerator, void, void> {\n    return this.stream()[Symbol.asyncIterator]()\n  }\n  [Symbol.asyncIterator]() {\n    return this.iterate()\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts
                              deleted file mode 100644
                              index 8aec3bd9725175..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts
                              +++ /dev/null
                              @@ -1,14 +0,0 @@
                              -import { GlobOptions } from './glob.js';
                              -/**
                              - * Return true if the patterns provided contain any magic glob characters,
                              - * given the options provided.
                              - *
                              - * Brace expansion is not considered "magic" unless the `magicalBraces` option
                              - * is set, as brace expansion just turns one string into an array of strings.
                              - * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and
                              - * `'xby'` both do not contain any magic glob characters, and it's treated the
                              - * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`
                              - * is in the options, brace expansion _is_ treated as a pattern having magic.
                              - */
                              -export declare const hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
                              -//# sourceMappingURL=has-magic.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts.map
                              deleted file mode 100644
                              index b24dd4ec47e0bb..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js
                              deleted file mode 100644
                              index ba2321ab868d02..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js
                              +++ /dev/null
                              @@ -1,23 +0,0 @@
                              -import { Minimatch } from 'minimatch';
                              -/**
                              - * Return true if the patterns provided contain any magic glob characters,
                              - * given the options provided.
                              - *
                              - * Brace expansion is not considered "magic" unless the `magicalBraces` option
                              - * is set, as brace expansion just turns one string into an array of strings.
                              - * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and
                              - * `'xby'` both do not contain any magic glob characters, and it's treated the
                              - * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`
                              - * is in the options, brace expansion _is_ treated as a pattern having magic.
                              - */
                              -export const hasMagic = (pattern, options = {}) => {
                              -    if (!Array.isArray(pattern)) {
                              -        pattern = [pattern];
                              -    }
                              -    for (const p of pattern) {
                              -        if (new Minimatch(p, options).hasMagic())
                              -            return true;
                              -    }
                              -    return false;
                              -};
                              -//# sourceMappingURL=has-magic.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js.map
                              deleted file mode 100644
                              index 27fd78dbae62cf..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/has-magic.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"has-magic.js","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAA0B,EAC1B,UAAuB,EAAE,EAChB,EAAE;IACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;KACpB;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,CAAA;KACtD;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA","sourcesContent":["import { Minimatch } from 'minimatch'\nimport { GlobOptions } from './glob.js'\n\n/**\n * Return true if the patterns provided contain any magic glob characters,\n * given the options provided.\n *\n * Brace expansion is not considered \"magic\" unless the `magicalBraces` option\n * is set, as brace expansion just turns one string into an array of strings.\n * So a pattern like `'x{a,b}y'` would return `false`, because `'xay'` and\n * `'xby'` both do not contain any magic glob characters, and it's treated the\n * same as if you had called it on `['xay', 'xby']`. When `magicalBraces:true`\n * is in the options, brace expansion _is_ treated as a pattern having magic.\n */\nexport const hasMagic = (\n  pattern: string | string[],\n  options: GlobOptions = {}\n): boolean => {\n  if (!Array.isArray(pattern)) {\n    pattern = [pattern]\n  }\n  for (const p of pattern) {\n    if (new Minimatch(p, options).hasMagic()) return true\n  }\n  return false\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts
                              deleted file mode 100644
                              index e9d74f3b5e1291..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -import { Minimatch } from 'minimatch';
                              -import { Path } from 'path-scurry';
                              -import { GlobWalkerOpts } from './walker.js';
                              -export interface IgnoreLike {
                              -    ignored?: (p: Path) => boolean;
                              -    childrenIgnored?: (p: Path) => boolean;
                              -}
                              -/**
                              - * Class used to process ignored patterns
                              - */
                              -export declare class Ignore implements IgnoreLike {
                              -    relative: Minimatch[];
                              -    relativeChildren: Minimatch[];
                              -    absolute: Minimatch[];
                              -    absoluteChildren: Minimatch[];
                              -    constructor(ignored: string[], { nobrace, nocase, noext, noglobstar, platform, }: GlobWalkerOpts);
                              -    ignored(p: Path): boolean;
                              -    childrenIgnored(p: Path): boolean;
                              -}
                              -//# sourceMappingURL=ignore.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts.map
                              deleted file mode 100644
                              index e0018cf935b046..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAA;CACvC;AASD;;GAEG;AACH,qBAAa,MAAO,YAAW,UAAU;IACvC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,gBAAgB,EAAE,SAAS,EAAE,CAAA;gBAG3B,OAAO,EAAE,MAAM,EAAE,EACjB,EACE,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,QAA0B,GAC3B,EAAE,cAAc;IAiDnB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAczB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;CAWlC"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js
                              deleted file mode 100644
                              index 2dbaa16a11460e..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js
                              +++ /dev/null
                              @@ -1,99 +0,0 @@
                              -// give it a pattern, and it'll be able to tell you if
                              -// a given path should be ignored.
                              -// Ignoring a path ignores its children if the pattern ends in /**
                              -// Ignores are always parsed in dot:true mode
                              -import { Minimatch } from 'minimatch';
                              -import { Pattern } from './pattern.js';
                              -const defaultPlatform = typeof process === 'object' &&
                              -    process &&
                              -    typeof process.platform === 'string'
                              -    ? process.platform
                              -    : 'linux';
                              -/**
                              - * Class used to process ignored patterns
                              - */
                              -export class Ignore {
                              -    relative;
                              -    relativeChildren;
                              -    absolute;
                              -    absoluteChildren;
                              -    constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) {
                              -        this.relative = [];
                              -        this.absolute = [];
                              -        this.relativeChildren = [];
                              -        this.absoluteChildren = [];
                              -        const mmopts = {
                              -            dot: true,
                              -            nobrace,
                              -            nocase,
                              -            noext,
                              -            noglobstar,
                              -            optimizationLevel: 2,
                              -            platform,
                              -            nocomment: true,
                              -            nonegate: true,
                              -        };
                              -        // this is a little weird, but it gives us a clean set of optimized
                              -        // minimatch matchers, without getting tripped up if one of them
                              -        // ends in /** inside a brace section, and it's only inefficient at
                              -        // the start of the walk, not along it.
                              -        // It'd be nice if the Pattern class just had a .test() method, but
                              -        // handling globstars is a bit of a pita, and that code already lives
                              -        // in minimatch anyway.
                              -        // Another way would be if maybe Minimatch could take its set/globParts
                              -        // as an option, and then we could at least just use Pattern to test
                              -        // for absolute-ness.
                              -        // Yet another way, Minimatch could take an array of glob strings, and
                              -        // a cwd option, and do the right thing.
                              -        for (const ign of ignored) {
                              -            const mm = new Minimatch(ign, mmopts);
                              -            for (let i = 0; i < mm.set.length; i++) {
                              -                const parsed = mm.set[i];
                              -                const globParts = mm.globParts[i];
                              -                const p = new Pattern(parsed, globParts, 0, platform);
                              -                const m = new Minimatch(p.globString(), mmopts);
                              -                const children = globParts[globParts.length - 1] === '**';
                              -                const absolute = p.isAbsolute();
                              -                if (absolute)
                              -                    this.absolute.push(m);
                              -                else
                              -                    this.relative.push(m);
                              -                if (children) {
                              -                    if (absolute)
                              -                        this.absoluteChildren.push(m);
                              -                    else
                              -                        this.relativeChildren.push(m);
                              -                }
                              -            }
                              -        }
                              -    }
                              -    ignored(p) {
                              -        const fullpath = p.fullpath();
                              -        const fullpaths = `${fullpath}/`;
                              -        const relative = p.relative() || '.';
                              -        const relatives = `${relative}/`;
                              -        for (const m of this.relative) {
                              -            if (m.match(relative) || m.match(relatives))
                              -                return true;
                              -        }
                              -        for (const m of this.absolute) {
                              -            if (m.match(fullpath) || m.match(fullpaths))
                              -                return true;
                              -        }
                              -        return false;
                              -    }
                              -    childrenIgnored(p) {
                              -        const fullpath = p.fullpath() + '/';
                              -        const relative = (p.relative() || '.') + '/';
                              -        for (const m of this.relativeChildren) {
                              -            if (m.match(relative))
                              -                return true;
                              -        }
                              -        for (const m of this.absoluteChildren) {
                              -            if (m.match(fullpath))
                              -                true;
                              -        }
                              -        return false;
                              -    }
                              -}
                              -//# sourceMappingURL=ignore.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js.map
                              deleted file mode 100644
                              index 1038b712396eaf..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/ignore.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/ignore.ts"],"names":[],"mappings":"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","sourcesContent":["// give it a pattern, and it'll be able to tell you if\n// a given path should be ignored.\n// Ignoring a path ignores its children if the pattern ends in /**\n// Ignores are always parsed in dot:true mode\n\nimport { Minimatch } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\nexport interface IgnoreLike {\n  ignored?: (p: Path) => boolean\n  childrenIgnored?: (p: Path) => boolean\n}\n\nconst defaultPlatform: NodeJS.Platform =\n  typeof process === 'object' &&\n  process &&\n  typeof process.platform === 'string'\n    ? process.platform\n    : 'linux'\n\n/**\n * Class used to process ignored patterns\n */\nexport class Ignore implements IgnoreLike {\n  relative: Minimatch[]\n  relativeChildren: Minimatch[]\n  absolute: Minimatch[]\n  absoluteChildren: Minimatch[]\n\n  constructor(\n    ignored: string[],\n    {\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      platform = defaultPlatform,\n    }: GlobWalkerOpts\n  ) {\n    this.relative = []\n    this.absolute = []\n    this.relativeChildren = []\n    this.absoluteChildren = []\n    const mmopts = {\n      dot: true,\n      nobrace,\n      nocase,\n      noext,\n      noglobstar,\n      optimizationLevel: 2,\n      platform,\n      nocomment: true,\n      nonegate: true,\n    }\n\n    // this is a little weird, but it gives us a clean set of optimized\n    // minimatch matchers, without getting tripped up if one of them\n    // ends in /** inside a brace section, and it's only inefficient at\n    // the start of the walk, not along it.\n    // It'd be nice if the Pattern class just had a .test() method, but\n    // handling globstars is a bit of a pita, and that code already lives\n    // in minimatch anyway.\n    // Another way would be if maybe Minimatch could take its set/globParts\n    // as an option, and then we could at least just use Pattern to test\n    // for absolute-ness.\n    // Yet another way, Minimatch could take an array of glob strings, and\n    // a cwd option, and do the right thing.\n    for (const ign of ignored) {\n      const mm = new Minimatch(ign, mmopts)\n      for (let i = 0; i < mm.set.length; i++) {\n        const parsed = mm.set[i]\n        const globParts = mm.globParts[i]\n        const p = new Pattern(parsed, globParts, 0, platform)\n        const m = new Minimatch(p.globString(), mmopts)\n        const children = globParts[globParts.length - 1] === '**'\n        const absolute = p.isAbsolute()\n        if (absolute) this.absolute.push(m)\n        else this.relative.push(m)\n        if (children) {\n          if (absolute) this.absoluteChildren.push(m)\n          else this.relativeChildren.push(m)\n        }\n      }\n    }\n  }\n\n  ignored(p: Path): boolean {\n    const fullpath = p.fullpath()\n    const fullpaths = `${fullpath}/`\n    const relative = p.relative() || '.'\n    const relatives = `${relative}/`\n    for (const m of this.relative) {\n      if (m.match(relative) || m.match(relatives)) return true\n    }\n    for (const m of this.absolute) {\n      if (m.match(fullpath) || m.match(fullpaths)) return true\n    }\n    return false\n  }\n\n  childrenIgnored(p: Path): boolean {\n    const fullpath = p.fullpath() + '/'\n    const relative = (p.relative() || '.') + '/'\n    for (const m of this.relativeChildren) {\n      if (m.match(relative)) return true\n    }\n    for (const m of this.absoluteChildren) {\n      if (m.match(fullpath)) true\n    }\n    return false\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts
                              deleted file mode 100644
                              index 669bf12e6d5916..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts
                              +++ /dev/null
                              @@ -1,95 +0,0 @@
                              -import { Minipass } from 'minipass';
                              -import { Path } from 'path-scurry';
                              -import type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset } from './glob.js';
                              -import { Glob } from './glob.js';
                              -/**
                              - * Syncronous form of {@link globStream}. Will read all the matches as fast as
                              - * you consume them, even all in a single tick if you consume them immediately,
                              - * but will still respond to backpressure if they're not consumed immediately.
                              - */
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptionsWithFileTypesUnset): Minipass;
                              -export declare function globStreamSync(pattern: string | string[], options: GlobOptions): Minipass | Minipass;
                              -/**
                              - * Return a stream that emits all the strings or `Path` objects and
                              - * then emits `end` when completed.
                              - */
                              -export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Minipass;
                              -export declare function globStream(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Minipass;
                              -export declare function globStream(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Minipass;
                              -export declare function globStream(pattern: string | string[], options: GlobOptions): Minipass | Minipass;
                              -/**
                              - * Synchronous form of {@link glob}
                              - */
                              -export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): string[];
                              -export declare function globSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Path[];
                              -export declare function globSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): string[];
                              -export declare function globSync(pattern: string | string[], options: GlobOptions): Path[] | string[];
                              -/**
                              - * Perform an asynchronous glob search for the pattern(s) specified. Returns
                              - * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the
                              - * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for
                              - * full option descriptions.
                              - */
                              -declare function glob_(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Promise;
                              -declare function glob_(pattern: string | string[], options: GlobOptions): Promise;
                              -/**
                              - * Return a sync iterator for walking glob pattern matches.
                              - */
                              -export declare function globIterateSync(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): Generator;
                              -export declare function globIterateSync(pattern: string | string[], options: GlobOptions): Generator | Generator;
                              -/**
                              - * Return an async iterator for walking glob pattern matches.
                              - */
                              -export declare function globIterate(pattern: string | string[], options?: GlobOptionsWithFileTypesUnset | undefined): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesTrue): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptionsWithFileTypesFalse): AsyncGenerator;
                              -export declare function globIterate(pattern: string | string[], options: GlobOptions): AsyncGenerator | AsyncGenerator;
                              -export declare const streamSync: typeof globStreamSync;
                              -export declare const stream: typeof globStream & {
                              -    sync: typeof globStreamSync;
                              -};
                              -export declare const iterateSync: typeof globIterateSync;
                              -export declare const iterate: typeof globIterate & {
                              -    sync: typeof globIterateSync;
                              -};
                              -export declare const sync: typeof globSync & {
                              -    stream: typeof globStreamSync;
                              -    iterate: typeof globIterateSync;
                              -};
                              -export { escape, unescape } from 'minimatch';
                              -export { Glob } from './glob.js';
                              -export type { GlobOptions, GlobOptionsWithFileTypesFalse, GlobOptionsWithFileTypesTrue, GlobOptionsWithFileTypesUnset, } from './glob.js';
                              -export { hasMagic } from './has-magic.js';
                              -export type { IgnoreLike } from './ignore.js';
                              -export type { MatchStream } from './walker.js';
                              -export declare const glob: typeof glob_ & {
                              -    glob: typeof glob_;
                              -    globSync: typeof globSync;
                              -    sync: typeof globSync & {
                              -        stream: typeof globStreamSync;
                              -        iterate: typeof globIterateSync;
                              -    };
                              -    globStream: typeof globStream;
                              -    stream: typeof globStream & {
                              -        sync: typeof globStreamSync;
                              -    };
                              -    globStreamSync: typeof globStreamSync;
                              -    streamSync: typeof globStreamSync;
                              -    globIterate: typeof globIterate;
                              -    iterate: typeof globIterate & {
                              -        sync: typeof globIterateSync;
                              -    };
                              -    globIterateSync: typeof globIterateSync;
                              -    iterateSync: typeof globIterateSync;
                              -    Glob: typeof Glob;
                              -    hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
                              -    escape: (s: string, { windowsPathsNoEscape, }?: Pick | undefined) => string;
                              -    unescape: (s: string, { windowsPathsNoEscape, }?: Pick | undefined) => string;
                              -};
                              -//# sourceMappingURL=index.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts.map
                              deleted file mode 100644
                              index c60290eb118a91..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js
                              deleted file mode 100644
                              index 7b270117e740ad..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js
                              +++ /dev/null
                              @@ -1,56 +0,0 @@
                              -import { escape, unescape } from 'minimatch';
                              -import { Glob } from './glob.js';
                              -import { hasMagic } from './has-magic.js';
                              -export function globStreamSync(pattern, options = {}) {
                              -    return new Glob(pattern, options).streamSync();
                              -}
                              -export function globStream(pattern, options = {}) {
                              -    return new Glob(pattern, options).stream();
                              -}
                              -export function globSync(pattern, options = {}) {
                              -    return new Glob(pattern, options).walkSync();
                              -}
                              -async function glob_(pattern, options = {}) {
                              -    return new Glob(pattern, options).walk();
                              -}
                              -export function globIterateSync(pattern, options = {}) {
                              -    return new Glob(pattern, options).iterateSync();
                              -}
                              -export function globIterate(pattern, options = {}) {
                              -    return new Glob(pattern, options).iterate();
                              -}
                              -// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc
                              -export const streamSync = globStreamSync;
                              -export const stream = Object.assign(globStream, { sync: globStreamSync });
                              -export const iterateSync = globIterateSync;
                              -export const iterate = Object.assign(globIterate, {
                              -    sync: globIterateSync,
                              -});
                              -export const sync = Object.assign(globSync, {
                              -    stream: globStreamSync,
                              -    iterate: globIterateSync,
                              -});
                              -/* c8 ignore start */
                              -export { escape, unescape } from 'minimatch';
                              -export { Glob } from './glob.js';
                              -export { hasMagic } from './has-magic.js';
                              -/* c8 ignore stop */
                              -export const glob = Object.assign(glob_, {
                              -    glob: glob_,
                              -    globSync,
                              -    sync,
                              -    globStream,
                              -    stream,
                              -    globStreamSync,
                              -    streamSync,
                              -    globIterate,
                              -    iterate,
                              -    globIterateSync,
                              -    iterateSync,
                              -    Glob,
                              -    hasMagic,
                              -    escape,
                              -    unescape,
                              -});
                              -glob.glob = glob;
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js.map
                              deleted file mode 100644
                              index 2d4fc077271b15..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/index.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAS5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAuBzC,MAAM,UAAU,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AAsBD,MAAM,UAAU,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AAqBD,MAAM,UAAU,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAqBD,MAAM,UAAU,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAA;AACxC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAA;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,oBAAoB;AAEpB,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI;IACJ,UAAU;IACV,MAAM;IACN,cAAc;IACd,UAAU;IACV,WAAW;IACX,OAAO;IACP,eAAe;IACf,WAAW;IACX,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,QAAQ;CACT,CAAC,CAAA;AACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesUnset\n): Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Minipass | Minipass\nexport function globStreamSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions\n): Minipass | Minipass\nexport function globStream(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions\n): Promise\nasync function glob_(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions\n): Generator | Generator\nexport function globIterateSync(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n  pattern: string | string[],\n  options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions\n): AsyncGenerator | AsyncGenerator\nexport function globIterate(\n  pattern: string | string[],\n  options: GlobOptions = {}\n) {\n  return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n  sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n  stream: globStreamSync,\n  iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n  GlobOptions,\n  GlobOptionsWithFileTypesFalse,\n  GlobOptionsWithFileTypesTrue,\n  GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n  glob: glob_,\n  globSync,\n  sync,\n  globStream,\n  stream,\n  globStreamSync,\n  streamSync,\n  globIterate,\n  iterate,\n  globIterateSync,\n  iterateSync,\n  Glob,\n  hasMagic,\n  escape,\n  unescape,\n})\nglob.glob = glob\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/package.json
                              deleted file mode 100644
                              index 5cc80943d565b7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/package.json
                              +++ /dev/null
                              @@ -1,4 +0,0 @@
                              -{
                              -  "version": "10.3.3",
                              -  "type": "module"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts
                              deleted file mode 100644
                              index 109cc4e7a5dae3..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts
                              +++ /dev/null
                              @@ -1,77 +0,0 @@
                              -/// 
                              -import { GLOBSTAR } from 'minimatch';
                              -export type MMPattern = string | RegExp | typeof GLOBSTAR;
                              -export type PatternList = [p: MMPattern, ...rest: MMPattern[]];
                              -export type UNCPatternList = [
                              -    p0: '',
                              -    p1: '',
                              -    p2: string,
                              -    p3: string,
                              -    ...rest: MMPattern[]
                              -];
                              -export type DrivePatternList = [p0: string, ...rest: MMPattern[]];
                              -export type AbsolutePatternList = [p0: '', ...rest: MMPattern[]];
                              -export type GlobList = [p: string, ...rest: string[]];
                              -/**
                              - * An immutable-ish view on an array of glob parts and their parsed
                              - * results
                              - */
                              -export declare class Pattern {
                              -    #private;
                              -    readonly length: number;
                              -    constructor(patternList: MMPattern[], globList: string[], index: number, platform: NodeJS.Platform);
                              -    /**
                              -     * The first entry in the parsed list of patterns
                              -     */
                              -    pattern(): MMPattern;
                              -    /**
                              -     * true of if pattern() returns a string
                              -     */
                              -    isString(): boolean;
                              -    /**
                              -     * true of if pattern() returns GLOBSTAR
                              -     */
                              -    isGlobstar(): boolean;
                              -    /**
                              -     * true if pattern() returns a regexp
                              -     */
                              -    isRegExp(): boolean;
                              -    /**
                              -     * The /-joined set of glob parts that make up this pattern
                              -     */
                              -    globString(): string;
                              -    /**
                              -     * true if there are more pattern parts after this one
                              -     */
                              -    hasMore(): boolean;
                              -    /**
                              -     * The rest of the pattern after this part, or null if this is the end
                              -     */
                              -    rest(): Pattern | null;
                              -    /**
                              -     * true if the pattern represents a //unc/path/ on windows
                              -     */
                              -    isUNC(): boolean;
                              -    /**
                              -     * True if the pattern starts with a drive letter on Windows
                              -     */
                              -    isDrive(): boolean;
                              -    /**
                              -     * True if the pattern is rooted on an absolute path
                              -     */
                              -    isAbsolute(): boolean;
                              -    /**
                              -     * consume the root of the pattern, and return it
                              -     */
                              -    root(): string;
                              -    /**
                              -     * Check to see if the current globstar pattern is allowed to follow
                              -     * a symbolic link.
                              -     */
                              -    checkFollowGlobstar(): boolean;
                              -    /**
                              -     * Mark that the current globstar pattern is following a symbolic link
                              -     */
                              -    markFollowGlobstar(): boolean;
                              -}
                              -//# sourceMappingURL=pattern.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts.map
                              deleted file mode 100644
                              index 1430a77dadbbe4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js
                              deleted file mode 100644
                              index 60aa415d92fd12..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js
                              +++ /dev/null
                              @@ -1,215 +0,0 @@
                              -// this is just a very light wrapper around 2 arrays with an offset index
                              -import { GLOBSTAR } from 'minimatch';
                              -const isPatternList = (pl) => pl.length >= 1;
                              -const isGlobList = (gl) => gl.length >= 1;
                              -/**
                              - * An immutable-ish view on an array of glob parts and their parsed
                              - * results
                              - */
                              -export class Pattern {
                              -    #patternList;
                              -    #globList;
                              -    #index;
                              -    length;
                              -    #platform;
                              -    #rest;
                              -    #globString;
                              -    #isDrive;
                              -    #isUNC;
                              -    #isAbsolute;
                              -    #followGlobstar = true;
                              -    constructor(patternList, globList, index, platform) {
                              -        if (!isPatternList(patternList)) {
                              -            throw new TypeError('empty pattern list');
                              -        }
                              -        if (!isGlobList(globList)) {
                              -            throw new TypeError('empty glob list');
                              -        }
                              -        if (globList.length !== patternList.length) {
                              -            throw new TypeError('mismatched pattern list and glob list lengths');
                              -        }
                              -        this.length = patternList.length;
                              -        if (index < 0 || index >= this.length) {
                              -            throw new TypeError('index out of range');
                              -        }
                              -        this.#patternList = patternList;
                              -        this.#globList = globList;
                              -        this.#index = index;
                              -        this.#platform = platform;
                              -        // normalize root entries of absolute patterns on initial creation.
                              -        if (this.#index === 0) {
                              -            // c: => ['c:/']
                              -            // C:/ => ['C:/']
                              -            // C:/x => ['C:/', 'x']
                              -            // //host/share => ['//host/share/']
                              -            // //host/share/ => ['//host/share/']
                              -            // //host/share/x => ['//host/share/', 'x']
                              -            // /etc => ['/', 'etc']
                              -            // / => ['/']
                              -            if (this.isUNC()) {
                              -                // '' / '' / 'host' / 'share'
                              -                const [p0, p1, p2, p3, ...prest] = this.#patternList;
                              -                const [g0, g1, g2, g3, ...grest] = this.#globList;
                              -                if (prest[0] === '') {
                              -                    // ends in /
                              -                    prest.shift();
                              -                    grest.shift();
                              -                }
                              -                const p = [p0, p1, p2, p3, ''].join('/');
                              -                const g = [g0, g1, g2, g3, ''].join('/');
                              -                this.#patternList = [p, ...prest];
                              -                this.#globList = [g, ...grest];
                              -                this.length = this.#patternList.length;
                              -            }
                              -            else if (this.isDrive() || this.isAbsolute()) {
                              -                const [p1, ...prest] = this.#patternList;
                              -                const [g1, ...grest] = this.#globList;
                              -                if (prest[0] === '') {
                              -                    // ends in /
                              -                    prest.shift();
                              -                    grest.shift();
                              -                }
                              -                const p = p1 + '/';
                              -                const g = g1 + '/';
                              -                this.#patternList = [p, ...prest];
                              -                this.#globList = [g, ...grest];
                              -                this.length = this.#patternList.length;
                              -            }
                              -        }
                              -    }
                              -    /**
                              -     * The first entry in the parsed list of patterns
                              -     */
                              -    pattern() {
                              -        return this.#patternList[this.#index];
                              -    }
                              -    /**
                              -     * true of if pattern() returns a string
                              -     */
                              -    isString() {
                              -        return typeof this.#patternList[this.#index] === 'string';
                              -    }
                              -    /**
                              -     * true of if pattern() returns GLOBSTAR
                              -     */
                              -    isGlobstar() {
                              -        return this.#patternList[this.#index] === GLOBSTAR;
                              -    }
                              -    /**
                              -     * true if pattern() returns a regexp
                              -     */
                              -    isRegExp() {
                              -        return this.#patternList[this.#index] instanceof RegExp;
                              -    }
                              -    /**
                              -     * The /-joined set of glob parts that make up this pattern
                              -     */
                              -    globString() {
                              -        return (this.#globString =
                              -            this.#globString ||
                              -                (this.#index === 0
                              -                    ? this.isAbsolute()
                              -                        ? this.#globList[0] + this.#globList.slice(1).join('/')
                              -                        : this.#globList.join('/')
                              -                    : this.#globList.slice(this.#index).join('/')));
                              -    }
                              -    /**
                              -     * true if there are more pattern parts after this one
                              -     */
                              -    hasMore() {
                              -        return this.length > this.#index + 1;
                              -    }
                              -    /**
                              -     * The rest of the pattern after this part, or null if this is the end
                              -     */
                              -    rest() {
                              -        if (this.#rest !== undefined)
                              -            return this.#rest;
                              -        if (!this.hasMore())
                              -            return (this.#rest = null);
                              -        this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
                              -        this.#rest.#isAbsolute = this.#isAbsolute;
                              -        this.#rest.#isUNC = this.#isUNC;
                              -        this.#rest.#isDrive = this.#isDrive;
                              -        return this.#rest;
                              -    }
                              -    /**
                              -     * true if the pattern represents a //unc/path/ on windows
                              -     */
                              -    isUNC() {
                              -        const pl = this.#patternList;
                              -        return this.#isUNC !== undefined
                              -            ? this.#isUNC
                              -            : (this.#isUNC =
                              -                this.#platform === 'win32' &&
                              -                    this.#index === 0 &&
                              -                    pl[0] === '' &&
                              -                    pl[1] === '' &&
                              -                    typeof pl[2] === 'string' &&
                              -                    !!pl[2] &&
                              -                    typeof pl[3] === 'string' &&
                              -                    !!pl[3]);
                              -    }
                              -    // pattern like C:/...
                              -    // split = ['C:', ...]
                              -    // XXX: would be nice to handle patterns like `c:*` to test the cwd
                              -    // in c: for *, but I don't know of a way to even figure out what that
                              -    // cwd is without actually chdir'ing into it?
                              -    /**
                              -     * True if the pattern starts with a drive letter on Windows
                              -     */
                              -    isDrive() {
                              -        const pl = this.#patternList;
                              -        return this.#isDrive !== undefined
                              -            ? this.#isDrive
                              -            : (this.#isDrive =
                              -                this.#platform === 'win32' &&
                              -                    this.#index === 0 &&
                              -                    this.length > 1 &&
                              -                    typeof pl[0] === 'string' &&
                              -                    /^[a-z]:$/i.test(pl[0]));
                              -    }
                              -    // pattern = '/' or '/...' or '/x/...'
                              -    // split = ['', ''] or ['', ...] or ['', 'x', ...]
                              -    // Drive and UNC both considered absolute on windows
                              -    /**
                              -     * True if the pattern is rooted on an absolute path
                              -     */
                              -    isAbsolute() {
                              -        const pl = this.#patternList;
                              -        return this.#isAbsolute !== undefined
                              -            ? this.#isAbsolute
                              -            : (this.#isAbsolute =
                              -                (pl[0] === '' && pl.length > 1) ||
                              -                    this.isDrive() ||
                              -                    this.isUNC());
                              -    }
                              -    /**
                              -     * consume the root of the pattern, and return it
                              -     */
                              -    root() {
                              -        const p = this.#patternList[0];
                              -        return typeof p === 'string' && this.isAbsolute() && this.#index === 0
                              -            ? p
                              -            : '';
                              -    }
                              -    /**
                              -     * Check to see if the current globstar pattern is allowed to follow
                              -     * a symbolic link.
                              -     */
                              -    checkFollowGlobstar() {
                              -        return !(this.#index === 0 ||
                              -            !this.isGlobstar() ||
                              -            !this.#followGlobstar);
                              -    }
                              -    /**
                              -     * Mark that the current globstar pattern is following a symbolic link
                              -     */
                              -    markFollowGlobstar() {
                              -        if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
                              -            return false;
                              -        this.#followGlobstar = false;
                              -        return true;
                              -    }
                              -}
                              -//# sourceMappingURL=pattern.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js.map
                              deleted file mode 100644
                              index bb039c142107fc..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/pattern.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n  p0: '',\n  p1: '',\n  p2: string,\n  p3: string,\n  ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n  pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n  readonly #patternList: PatternList\n  readonly #globList: GlobList\n  readonly #index: number\n  readonly length: number\n  readonly #platform: NodeJS.Platform\n  #rest?: Pattern | null\n  #globString?: string\n  #isDrive?: boolean\n  #isUNC?: boolean\n  #isAbsolute?: boolean\n  #followGlobstar: boolean = true\n\n  constructor(\n    patternList: MMPattern[],\n    globList: string[],\n    index: number,\n    platform: NodeJS.Platform\n  ) {\n    if (!isPatternList(patternList)) {\n      throw new TypeError('empty pattern list')\n    }\n    if (!isGlobList(globList)) {\n      throw new TypeError('empty glob list')\n    }\n    if (globList.length !== patternList.length) {\n      throw new TypeError('mismatched pattern list and glob list lengths')\n    }\n    this.length = patternList.length\n    if (index < 0 || index >= this.length) {\n      throw new TypeError('index out of range')\n    }\n    this.#patternList = patternList\n    this.#globList = globList\n    this.#index = index\n    this.#platform = platform\n\n    // normalize root entries of absolute patterns on initial creation.\n    if (this.#index === 0) {\n      // c: => ['c:/']\n      // C:/ => ['C:/']\n      // C:/x => ['C:/', 'x']\n      // //host/share => ['//host/share/']\n      // //host/share/ => ['//host/share/']\n      // //host/share/x => ['//host/share/', 'x']\n      // /etc => ['/', 'etc']\n      // / => ['/']\n      if (this.isUNC()) {\n        // '' / '' / 'host' / 'share'\n        const [p0, p1, p2, p3, ...prest] = this.#patternList\n        const [g0, g1, g2, g3, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = [p0, p1, p2, p3, ''].join('/')\n        const g = [g0, g1, g2, g3, ''].join('/')\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      } else if (this.isDrive() || this.isAbsolute()) {\n        const [p1, ...prest] = this.#patternList\n        const [g1, ...grest] = this.#globList\n        if (prest[0] === '') {\n          // ends in /\n          prest.shift()\n          grest.shift()\n        }\n        const p = (p1 as string) + '/'\n        const g = g1 + '/'\n        this.#patternList = [p, ...prest]\n        this.#globList = [g, ...grest]\n        this.length = this.#patternList.length\n      }\n    }\n  }\n\n  /**\n   * The first entry in the parsed list of patterns\n   */\n  pattern(): MMPattern {\n    return this.#patternList[this.#index]\n  }\n\n  /**\n   * true of if pattern() returns a string\n   */\n  isString(): boolean {\n    return typeof this.#patternList[this.#index] === 'string'\n  }\n  /**\n   * true of if pattern() returns GLOBSTAR\n   */\n  isGlobstar(): boolean {\n    return this.#patternList[this.#index] === GLOBSTAR\n  }\n  /**\n   * true if pattern() returns a regexp\n   */\n  isRegExp(): boolean {\n    return this.#patternList[this.#index] instanceof RegExp\n  }\n\n  /**\n   * The /-joined set of glob parts that make up this pattern\n   */\n  globString(): string {\n    return (this.#globString =\n      this.#globString ||\n      (this.#index === 0\n        ? this.isAbsolute()\n          ? this.#globList[0] + this.#globList.slice(1).join('/')\n          : this.#globList.join('/')\n        : this.#globList.slice(this.#index).join('/')))\n  }\n\n  /**\n   * true if there are more pattern parts after this one\n   */\n  hasMore(): boolean {\n    return this.length > this.#index + 1\n  }\n\n  /**\n   * The rest of the pattern after this part, or null if this is the end\n   */\n  rest(): Pattern | null {\n    if (this.#rest !== undefined) return this.#rest\n    if (!this.hasMore()) return (this.#rest = null)\n    this.#rest = new Pattern(\n      this.#patternList,\n      this.#globList,\n      this.#index + 1,\n      this.#platform\n    )\n    this.#rest.#isAbsolute = this.#isAbsolute\n    this.#rest.#isUNC = this.#isUNC\n    this.#rest.#isDrive = this.#isDrive\n    return this.#rest\n  }\n\n  /**\n   * true if the pattern represents a //unc/path/ on windows\n   */\n  isUNC(): boolean {\n    const pl = this.#patternList\n    return this.#isUNC !== undefined\n      ? this.#isUNC\n      : (this.#isUNC =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          pl[0] === '' &&\n          pl[1] === '' &&\n          typeof pl[2] === 'string' &&\n          !!pl[2] &&\n          typeof pl[3] === 'string' &&\n          !!pl[3])\n  }\n\n  // pattern like C:/...\n  // split = ['C:', ...]\n  // XXX: would be nice to handle patterns like `c:*` to test the cwd\n  // in c: for *, but I don't know of a way to even figure out what that\n  // cwd is without actually chdir'ing into it?\n  /**\n   * True if the pattern starts with a drive letter on Windows\n   */\n  isDrive(): boolean {\n    const pl = this.#patternList\n    return this.#isDrive !== undefined\n      ? this.#isDrive\n      : (this.#isDrive =\n          this.#platform === 'win32' &&\n          this.#index === 0 &&\n          this.length > 1 &&\n          typeof pl[0] === 'string' &&\n          /^[a-z]:$/i.test(pl[0]))\n  }\n\n  // pattern = '/' or '/...' or '/x/...'\n  // split = ['', ''] or ['', ...] or ['', 'x', ...]\n  // Drive and UNC both considered absolute on windows\n  /**\n   * True if the pattern is rooted on an absolute path\n   */\n  isAbsolute(): boolean {\n    const pl = this.#patternList\n    return this.#isAbsolute !== undefined\n      ? this.#isAbsolute\n      : (this.#isAbsolute =\n          (pl[0] === '' && pl.length > 1) ||\n          this.isDrive() ||\n          this.isUNC())\n  }\n\n  /**\n   * consume the root of the pattern, and return it\n   */\n  root(): string {\n    const p = this.#patternList[0]\n    return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n      ? p\n      : ''\n  }\n\n  /**\n   * Check to see if the current globstar pattern is allowed to follow\n   * a symbolic link.\n   */\n  checkFollowGlobstar(): boolean {\n    return !(\n      this.#index === 0 ||\n      !this.isGlobstar() ||\n      !this.#followGlobstar\n    )\n  }\n\n  /**\n   * Mark that the current globstar pattern is following a symbolic link\n   */\n  markFollowGlobstar(): boolean {\n    if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n      return false\n    this.#followGlobstar = false\n    return true\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts
                              deleted file mode 100644
                              index ccedfbf2820f7d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts
                              +++ /dev/null
                              @@ -1,59 +0,0 @@
                              -import { MMRegExp } from 'minimatch';
                              -import { Path } from 'path-scurry';
                              -import { Pattern } from './pattern.js';
                              -import { GlobWalkerOpts } from './walker.js';
                              -/**
                              - * A cache of which patterns have been processed for a given Path
                              - */
                              -export declare class HasWalkedCache {
                              -    store: Map>;
                              -    constructor(store?: Map>);
                              -    copy(): HasWalkedCache;
                              -    hasWalked(target: Path, pattern: Pattern): boolean | undefined;
                              -    storeWalked(target: Path, pattern: Pattern): void;
                              -}
                              -/**
                              - * A record of which paths have been matched in a given walk step,
                              - * and whether they only are considered a match if they are a directory,
                              - * and whether their absolute or relative path should be returned.
                              - */
                              -export declare class MatchRecord {
                              -    store: Map;
                              -    add(target: Path, absolute: boolean, ifDir: boolean): void;
                              -    entries(): [Path, boolean, boolean][];
                              -}
                              -/**
                              - * A collection of patterns that must be processed in a subsequent step
                              - * for a given path.
                              - */
                              -export declare class SubWalks {
                              -    store: Map;
                              -    add(target: Path, pattern: Pattern): void;
                              -    get(target: Path): Pattern[];
                              -    entries(): [Path, Pattern[]][];
                              -    keys(): Path[];
                              -}
                              -/**
                              - * The class that processes patterns for a given path.
                              - *
                              - * Handles child entry filtering, and determining whether a path's
                              - * directory contents must be read.
                              - */
                              -export declare class Processor {
                              -    hasWalkedCache: HasWalkedCache;
                              -    matches: MatchRecord;
                              -    subwalks: SubWalks;
                              -    patterns?: Pattern[];
                              -    follow: boolean;
                              -    dot: boolean;
                              -    opts: GlobWalkerOpts;
                              -    constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache);
                              -    processPatterns(target: Path, patterns: Pattern[]): this;
                              -    subwalkTargets(): Path[];
                              -    child(): Processor;
                              -    filterEntries(parent: Path, entries: Path[]): Processor;
                              -    testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void;
                              -    testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void;
                              -    testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void;
                              -}
                              -//# sourceMappingURL=processor.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts.map
                              deleted file mode 100644
                              index 75d92efe28cb1d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAwGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js
                              deleted file mode 100644
                              index dd2228ad6761a5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js
                              +++ /dev/null
                              @@ -1,302 +0,0 @@
                              -// synchronous utility for filtering entries and calculating subwalks
                              -import { GLOBSTAR } from 'minimatch';
                              -/**
                              - * A cache of which patterns have been processed for a given Path
                              - */
                              -export class HasWalkedCache {
                              -    store;
                              -    constructor(store = new Map()) {
                              -        this.store = store;
                              -    }
                              -    copy() {
                              -        return new HasWalkedCache(new Map(this.store));
                              -    }
                              -    hasWalked(target, pattern) {
                              -        return this.store.get(target.fullpath())?.has(pattern.globString());
                              -    }
                              -    storeWalked(target, pattern) {
                              -        const fullpath = target.fullpath();
                              -        const cached = this.store.get(fullpath);
                              -        if (cached)
                              -            cached.add(pattern.globString());
                              -        else
                              -            this.store.set(fullpath, new Set([pattern.globString()]));
                              -    }
                              -}
                              -/**
                              - * A record of which paths have been matched in a given walk step,
                              - * and whether they only are considered a match if they are a directory,
                              - * and whether their absolute or relative path should be returned.
                              - */
                              -export class MatchRecord {
                              -    store = new Map();
                              -    add(target, absolute, ifDir) {
                              -        const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
                              -        const current = this.store.get(target);
                              -        this.store.set(target, current === undefined ? n : n & current);
                              -    }
                              -    // match, absolute, ifdir
                              -    entries() {
                              -        return [...this.store.entries()].map(([path, n]) => [
                              -            path,
                              -            !!(n & 2),
                              -            !!(n & 1),
                              -        ]);
                              -    }
                              -}
                              -/**
                              - * A collection of patterns that must be processed in a subsequent step
                              - * for a given path.
                              - */
                              -export class SubWalks {
                              -    store = new Map();
                              -    add(target, pattern) {
                              -        if (!target.canReaddir()) {
                              -            return;
                              -        }
                              -        const subs = this.store.get(target);
                              -        if (subs) {
                              -            if (!subs.find(p => p.globString() === pattern.globString())) {
                              -                subs.push(pattern);
                              -            }
                              -        }
                              -        else
                              -            this.store.set(target, [pattern]);
                              -    }
                              -    get(target) {
                              -        const subs = this.store.get(target);
                              -        /* c8 ignore start */
                              -        if (!subs) {
                              -            throw new Error('attempting to walk unknown path');
                              -        }
                              -        /* c8 ignore stop */
                              -        return subs;
                              -    }
                              -    entries() {
                              -        return this.keys().map(k => [k, this.store.get(k)]);
                              -    }
                              -    keys() {
                              -        return [...this.store.keys()].filter(t => t.canReaddir());
                              -    }
                              -}
                              -/**
                              - * The class that processes patterns for a given path.
                              - *
                              - * Handles child entry filtering, and determining whether a path's
                              - * directory contents must be read.
                              - */
                              -export class Processor {
                              -    hasWalkedCache;
                              -    matches = new MatchRecord();
                              -    subwalks = new SubWalks();
                              -    patterns;
                              -    follow;
                              -    dot;
                              -    opts;
                              -    constructor(opts, hasWalkedCache) {
                              -        this.opts = opts;
                              -        this.follow = !!opts.follow;
                              -        this.dot = !!opts.dot;
                              -        this.hasWalkedCache = hasWalkedCache
                              -            ? hasWalkedCache.copy()
                              -            : new HasWalkedCache();
                              -    }
                              -    processPatterns(target, patterns) {
                              -        this.patterns = patterns;
                              -        const processingSet = patterns.map(p => [target, p]);
                              -        // map of paths to the magic-starting subwalks they need to walk
                              -        // first item in patterns is the filter
                              -        for (let [t, pattern] of processingSet) {
                              -            this.hasWalkedCache.storeWalked(t, pattern);
                              -            const root = pattern.root();
                              -            const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
                              -            // start absolute patterns at root
                              -            if (root) {
                              -                t = t.resolve(root === '/' && this.opts.root !== undefined
                              -                    ? this.opts.root
                              -                    : root);
                              -                const rest = pattern.rest();
                              -                if (!rest) {
                              -                    this.matches.add(t, true, false);
                              -                    continue;
                              -                }
                              -                else {
                              -                    pattern = rest;
                              -                }
                              -            }
                              -            if (t.isENOENT())
                              -                continue;
                              -            let p;
                              -            let rest;
                              -            let changed = false;
                              -            while (typeof (p = pattern.pattern()) === 'string' &&
                              -                (rest = pattern.rest())) {
                              -                const c = t.resolve(p);
                              -                // we can be reasonably sure that .. is a readable dir
                              -                if (c.isUnknown() && p !== '..')
                              -                    break;
                              -                t = c;
                              -                pattern = rest;
                              -                changed = true;
                              -            }
                              -            p = pattern.pattern();
                              -            rest = pattern.rest();
                              -            if (changed) {
                              -                if (this.hasWalkedCache.hasWalked(t, pattern))
                              -                    continue;
                              -                this.hasWalkedCache.storeWalked(t, pattern);
                              -            }
                              -            // now we have either a final string for a known entry,
                              -            // more strings for an unknown entry,
                              -            // or a pattern starting with magic, mounted on t.
                              -            if (typeof p === 'string') {
                              -                // must be final entry
                              -                if (!rest) {
                              -                    const ifDir = p === '..' || p === '' || p === '.';
                              -                    this.matches.add(t.resolve(p), absolute, ifDir);
                              -                }
                              -                else {
                              -                    this.subwalks.add(t, pattern);
                              -                }
                              -                continue;
                              -            }
                              -            else if (p === GLOBSTAR) {
                              -                // if no rest, match and subwalk pattern
                              -                // if rest, process rest and subwalk pattern
                              -                // if it's a symlink, but we didn't get here by way of a
                              -                // globstar match (meaning it's the first time THIS globstar
                              -                // has traversed a symlink), then we follow it. Otherwise, stop.
                              -                if (!t.isSymbolicLink() ||
                              -                    this.follow ||
                              -                    pattern.checkFollowGlobstar()) {
                              -                    this.subwalks.add(t, pattern);
                              -                }
                              -                const rp = rest?.pattern();
                              -                const rrest = rest?.rest();
                              -                if (!rest || ((rp === '' || rp === '.') && !rrest)) {
                              -                    // only HAS to be a dir if it ends in **/ or **/.
                              -                    // but ending in ** will match files as well.
                              -                    this.matches.add(t, absolute, rp === '' || rp === '.');
                              -                }
                              -                else {
                              -                    if (rp === '..') {
                              -                        // this would mean you're matching **/.. at the fs root,
                              -                        // and no thanks, I'm not gonna test that specific case.
                              -                        /* c8 ignore start */
                              -                        const tp = t.parent || t;
                              -                        /* c8 ignore stop */
                              -                        if (!rrest)
                              -                            this.matches.add(tp, absolute, true);
                              -                        else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
                              -                            this.subwalks.add(tp, rrest);
                              -                        }
                              -                    }
                              -                }
                              -            }
                              -            else if (p instanceof RegExp) {
                              -                this.subwalks.add(t, pattern);
                              -            }
                              -        }
                              -        return this;
                              -    }
                              -    subwalkTargets() {
                              -        return this.subwalks.keys();
                              -    }
                              -    child() {
                              -        return new Processor(this.opts, this.hasWalkedCache);
                              -    }
                              -    // return a new Processor containing the subwalks for each
                              -    // child entry, and a set of matches, and
                              -    // a hasWalkedCache that's a copy of this one
                              -    // then we're going to call
                              -    filterEntries(parent, entries) {
                              -        const patterns = this.subwalks.get(parent);
                              -        // put matches and entry walks into the results processor
                              -        const results = this.child();
                              -        for (const e of entries) {
                              -            for (const pattern of patterns) {
                              -                const absolute = pattern.isAbsolute();
                              -                const p = pattern.pattern();
                              -                const rest = pattern.rest();
                              -                if (p === GLOBSTAR) {
                              -                    results.testGlobstar(e, pattern, rest, absolute);
                              -                }
                              -                else if (p instanceof RegExp) {
                              -                    results.testRegExp(e, p, rest, absolute);
                              -                }
                              -                else {
                              -                    results.testString(e, p, rest, absolute);
                              -                }
                              -            }
                              -        }
                              -        return results;
                              -    }
                              -    testGlobstar(e, pattern, rest, absolute) {
                              -        if (this.dot || !e.name.startsWith('.')) {
                              -            if (!pattern.hasMore()) {
                              -                this.matches.add(e, absolute, false);
                              -            }
                              -            if (e.canReaddir()) {
                              -                // if we're in follow mode or it's not a symlink, just keep
                              -                // testing the same pattern. If there's more after the globstar,
                              -                // then this symlink consumes the globstar. If not, then we can
                              -                // follow at most ONE symlink along the way, so we mark it, which
                              -                // also checks to ensure that it wasn't already marked.
                              -                if (this.follow || !e.isSymbolicLink()) {
                              -                    this.subwalks.add(e, pattern);
                              -                }
                              -                else if (e.isSymbolicLink()) {
                              -                    if (rest && pattern.checkFollowGlobstar()) {
                              -                        this.subwalks.add(e, rest);
                              -                    }
                              -                    else if (pattern.markFollowGlobstar()) {
                              -                        this.subwalks.add(e, pattern);
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        // if the NEXT thing matches this entry, then also add
                              -        // the rest.
                              -        if (rest) {
                              -            const rp = rest.pattern();
                              -            if (typeof rp === 'string' &&
                              -                // dots and empty were handled already
                              -                rp !== '..' &&
                              -                rp !== '' &&
                              -                rp !== '.') {
                              -                this.testString(e, rp, rest.rest(), absolute);
                              -            }
                              -            else if (rp === '..') {
                              -                /* c8 ignore start */
                              -                const ep = e.parent || e;
                              -                /* c8 ignore stop */
                              -                this.subwalks.add(ep, rest);
                              -            }
                              -            else if (rp instanceof RegExp) {
                              -                this.testRegExp(e, rp, rest.rest(), absolute);
                              -            }
                              -        }
                              -    }
                              -    testRegExp(e, p, rest, absolute) {
                              -        if (!p.test(e.name))
                              -            return;
                              -        if (!rest) {
                              -            this.matches.add(e, absolute, false);
                              -        }
                              -        else {
                              -            this.subwalks.add(e, rest);
                              -        }
                              -    }
                              -    testString(e, p, rest, absolute) {
                              -        // should never happen?
                              -        if (!e.isNamed(p))
                              -            return;
                              -        if (!rest) {
                              -            this.matches.add(e, absolute, false);
                              -        }
                              -        else {
                              -            this.subwalks.add(e, rest);
                              -        }
                              -    }
                              -}
                              -//# sourceMappingURL=processor.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js.map
                              deleted file mode 100644
                              index bf17d8e99b04a6..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/processor.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/processor.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,OAAO,EAAE,QAAQ,EAAY,MAAM,WAAW,CAAA;AAK9C;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,KAAK,CAA0B;IAC/B,YAAY,QAAkC,IAAI,GAAG,EAAE;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IACD,IAAI;QACF,OAAO,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,SAAS,CAAC,MAAY,EAAE,OAAgB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,WAAW,CAAC,MAAY,EAAE,OAAgB;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACtB,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAA;IACpC,GAAG,CAAC,MAAY,EAAE,QAAiB,EAAE,KAAc;QACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;IACjE,CAAC;IACD,yBAAyB;IACzB,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI;YACJ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACT,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACV,CAAC,CAAA;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACnB,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAA;IACvC,GAAG,CAAC,MAAY,EAAE,OAAgB;QAChC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;YACxB,OAAM;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE;gBAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aACnB;SACF;;YAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,GAAG,CAAC,MAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnC,qBAAqB;QACrB,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QACD,oBAAoB;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAc,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;IAC3D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,SAAS;IACpB,cAAc,CAAgB;IAC9B,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IAC3B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;IACzB,QAAQ,CAAY;IACpB,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,IAAI,CAAgB;IAEpB,YAAY,IAAoB,EAAE,cAA+B;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAA;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc;YAClC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,IAAI,cAAc,EAAE,CAAA;IAC1B,CAAC;IAED,eAAe,CAAC,MAAY,EAAE,QAAmB;QAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,MAAM,aAAa,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;QAEvE,gEAAgE;QAChE,uCAAuC;QAEvC,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE;YACtC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAA;YAErE,kCAAkC;YAClC,IAAI,IAAI,EAAE;gBACR,CAAC,GAAG,CAAC,CAAC,OAAO,CACX,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;oBAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAChB,CAAC,CAAC,IAAI,CACT,CAAA;gBACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,IAAI,EAAE;oBACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;oBAChC,SAAQ;iBACT;qBAAM;oBACL,OAAO,GAAG,IAAI,CAAA;iBACf;aACF;YAED,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAAE,SAAQ;YAE1B,IAAI,CAAY,CAAA;YAChB,IAAI,IAAoB,CAAA;YACxB,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,OACE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,QAAQ;gBAC3C,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EACvB;gBACA,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACtB,sDAAsD;gBACtD,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI;oBAAE,MAAK;gBACtC,CAAC,GAAG,CAAC,CAAA;gBACL,OAAO,GAAG,IAAI,CAAA;gBACd,OAAO,GAAG,IAAI,CAAA;aACf;YACD,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YACrB,IAAI,OAAO,EAAE;gBACX,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC;oBAAE,SAAQ;gBACvD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aAC5C;YAED,uDAAuD;YACvD,qCAAqC;YACrC,kDAAkD;YAClD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACzB,sBAAsB;gBACtB,IAAI,CAAC,IAAI,EAAE;oBACT,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAA;oBACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;iBAChD;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC9B;gBACD,SAAQ;aACT;iBAAM,IAAI,CAAC,KAAK,QAAQ,EAAE;gBACzB,wCAAwC;gBACxC,4CAA4C;gBAC5C,wDAAwD;gBACxD,4DAA4D;gBAC5D,gEAAgE;gBAChE,IACE,CAAC,CAAC,CAAC,cAAc,EAAE;oBACnB,IAAI,CAAC,MAAM;oBACX,OAAO,CAAC,mBAAmB,EAAE,EAC7B;oBACA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC9B;gBACD,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,CAAA;gBAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAClD,iDAAiD;oBACjD,6CAA6C;oBAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAA;iBACvD;qBAAM;oBACL,IAAI,EAAE,KAAK,IAAI,EAAE;wBACf,wDAAwD;wBACxD,wDAAwD;wBACxD,qBAAqB;wBACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;wBACxB,oBAAoB;wBACpB,IAAI,CAAC,KAAK;4BAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;6BAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE;4BAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;yBAC7B;qBACF;iBACF;aACF;iBAAM,IAAI,CAAC,YAAY,MAAM,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aAC9B;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACtD,CAAC;IAED,0DAA0D;IAC1D,yCAAyC;IACzC,6CAA6C;IAC7C,2BAA2B;IAC3B,aAAa,CAAC,MAAY,EAAE,OAAe;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC1C,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAC5B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;YACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;gBAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,KAAK,QAAQ,EAAE;oBAClB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACjD;qBAAM,IAAI,CAAC,YAAY,MAAM,EAAE;oBAC9B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACzC;qBAAM;oBACL,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;iBACzC;aACF;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,YAAY,CACV,CAAO,EACP,OAAgB,EAChB,IAAoB,EACpB,QAAiB;QAEjB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;aACrC;YACD,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBAClB,2DAA2D;gBAC3D,gEAAgE;gBAChE,+DAA+D;gBAC/D,iEAAiE;gBACjE,uDAAuD;gBACvD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE;oBACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;iBAC9B;qBAAM,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC7B,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,EAAE;wBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;qBAC3B;yBAAM,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE;wBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;qBAC9B;iBACF;aACF;SACF;QACD,sDAAsD;QACtD,YAAY;QACZ,IAAI,IAAI,EAAE;YACR,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YACzB,IACE,OAAO,EAAE,KAAK,QAAQ;gBACtB,sCAAsC;gBACtC,EAAE,KAAK,IAAI;gBACX,EAAE,KAAK,EAAE;gBACT,EAAE,KAAK,GAAG,EACV;gBACA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;aAC9C;iBAAM,IAAI,EAAE,KAAK,IAAI,EAAE;gBACtB,qBAAqB;gBACrB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;gBACxB,oBAAoB;gBACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;aAC5B;iBAAM,IAAI,EAAE,YAAY,MAAM,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;aAC9C;SACF;IACH,CAAC;IAED,UAAU,CACR,CAAO,EACP,CAAW,EACX,IAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAM;QAC3B,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;SACrC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;IAED,UAAU,CAAC,CAAO,EAAE,CAAS,EAAE,IAAoB,EAAE,QAAiB;QACpE,uBAAuB;QACvB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAM;QACzB,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;SACrC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;CACF","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n  store: Map>\n  constructor(store: Map> = new Map()) {\n    this.store = store\n  }\n  copy() {\n    return new HasWalkedCache(new Map(this.store))\n  }\n  hasWalked(target: Path, pattern: Pattern) {\n    return this.store.get(target.fullpath())?.has(pattern.globString())\n  }\n  storeWalked(target: Path, pattern: Pattern) {\n    const fullpath = target.fullpath()\n    const cached = this.store.get(fullpath)\n    if (cached) cached.add(pattern.globString())\n    else this.store.set(fullpath, new Set([pattern.globString()]))\n  }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n  store: Map = new Map()\n  add(target: Path, absolute: boolean, ifDir: boolean) {\n    const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n    const current = this.store.get(target)\n    this.store.set(target, current === undefined ? n : n & current)\n  }\n  // match, absolute, ifdir\n  entries(): [Path, boolean, boolean][] {\n    return [...this.store.entries()].map(([path, n]) => [\n      path,\n      !!(n & 2),\n      !!(n & 1),\n    ])\n  }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n  store: Map = new Map()\n  add(target: Path, pattern: Pattern) {\n    if (!target.canReaddir()) {\n      return\n    }\n    const subs = this.store.get(target)\n    if (subs) {\n      if (!subs.find(p => p.globString() === pattern.globString())) {\n        subs.push(pattern)\n      }\n    } else this.store.set(target, [pattern])\n  }\n  get(target: Path): Pattern[] {\n    const subs = this.store.get(target)\n    /* c8 ignore start */\n    if (!subs) {\n      throw new Error('attempting to walk unknown path')\n    }\n    /* c8 ignore stop */\n    return subs\n  }\n  entries(): [Path, Pattern[]][] {\n    return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n  }\n  keys(): Path[] {\n    return [...this.store.keys()].filter(t => t.canReaddir())\n  }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n  hasWalkedCache: HasWalkedCache\n  matches = new MatchRecord()\n  subwalks = new SubWalks()\n  patterns?: Pattern[]\n  follow: boolean\n  dot: boolean\n  opts: GlobWalkerOpts\n\n  constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n    this.opts = opts\n    this.follow = !!opts.follow\n    this.dot = !!opts.dot\n    this.hasWalkedCache = hasWalkedCache\n      ? hasWalkedCache.copy()\n      : new HasWalkedCache()\n  }\n\n  processPatterns(target: Path, patterns: Pattern[]) {\n    this.patterns = patterns\n    const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n    // map of paths to the magic-starting subwalks they need to walk\n    // first item in patterns is the filter\n\n    for (let [t, pattern] of processingSet) {\n      this.hasWalkedCache.storeWalked(t, pattern)\n\n      const root = pattern.root()\n      const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n      // start absolute patterns at root\n      if (root) {\n        t = t.resolve(\n          root === '/' && this.opts.root !== undefined\n            ? this.opts.root\n            : root\n        )\n        const rest = pattern.rest()\n        if (!rest) {\n          this.matches.add(t, true, false)\n          continue\n        } else {\n          pattern = rest\n        }\n      }\n\n      if (t.isENOENT()) continue\n\n      let p: MMPattern\n      let rest: Pattern | null\n      let changed = false\n      while (\n        typeof (p = pattern.pattern()) === 'string' &&\n        (rest = pattern.rest())\n      ) {\n        const c = t.resolve(p)\n        // we can be reasonably sure that .. is a readable dir\n        if (c.isUnknown() && p !== '..') break\n        t = c\n        pattern = rest\n        changed = true\n      }\n      p = pattern.pattern()\n      rest = pattern.rest()\n      if (changed) {\n        if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n        this.hasWalkedCache.storeWalked(t, pattern)\n      }\n\n      // now we have either a final string for a known entry,\n      // more strings for an unknown entry,\n      // or a pattern starting with magic, mounted on t.\n      if (typeof p === 'string') {\n        // must be final entry\n        if (!rest) {\n          const ifDir = p === '..' || p === '' || p === '.'\n          this.matches.add(t.resolve(p), absolute, ifDir)\n        } else {\n          this.subwalks.add(t, pattern)\n        }\n        continue\n      } else if (p === GLOBSTAR) {\n        // if no rest, match and subwalk pattern\n        // if rest, process rest and subwalk pattern\n        // if it's a symlink, but we didn't get here by way of a\n        // globstar match (meaning it's the first time THIS globstar\n        // has traversed a symlink), then we follow it. Otherwise, stop.\n        if (\n          !t.isSymbolicLink() ||\n          this.follow ||\n          pattern.checkFollowGlobstar()\n        ) {\n          this.subwalks.add(t, pattern)\n        }\n        const rp = rest?.pattern()\n        const rrest = rest?.rest()\n        if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n          // only HAS to be a dir if it ends in **/ or **/.\n          // but ending in ** will match files as well.\n          this.matches.add(t, absolute, rp === '' || rp === '.')\n        } else {\n          if (rp === '..') {\n            // this would mean you're matching **/.. at the fs root,\n            // and no thanks, I'm not gonna test that specific case.\n            /* c8 ignore start */\n            const tp = t.parent || t\n            /* c8 ignore stop */\n            if (!rrest) this.matches.add(tp, absolute, true)\n            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n              this.subwalks.add(tp, rrest)\n            }\n          }\n        }\n      } else if (p instanceof RegExp) {\n        this.subwalks.add(t, pattern)\n      }\n    }\n\n    return this\n  }\n\n  subwalkTargets(): Path[] {\n    return this.subwalks.keys()\n  }\n\n  child() {\n    return new Processor(this.opts, this.hasWalkedCache)\n  }\n\n  // return a new Processor containing the subwalks for each\n  // child entry, and a set of matches, and\n  // a hasWalkedCache that's a copy of this one\n  // then we're going to call\n  filterEntries(parent: Path, entries: Path[]): Processor {\n    const patterns = this.subwalks.get(parent)\n    // put matches and entry walks into the results processor\n    const results = this.child()\n    for (const e of entries) {\n      for (const pattern of patterns) {\n        const absolute = pattern.isAbsolute()\n        const p = pattern.pattern()\n        const rest = pattern.rest()\n        if (p === GLOBSTAR) {\n          results.testGlobstar(e, pattern, rest, absolute)\n        } else if (p instanceof RegExp) {\n          results.testRegExp(e, p, rest, absolute)\n        } else {\n          results.testString(e, p, rest, absolute)\n        }\n      }\n    }\n    return results\n  }\n\n  testGlobstar(\n    e: Path,\n    pattern: Pattern,\n    rest: Pattern | null,\n    absolute: boolean\n  ) {\n    if (this.dot || !e.name.startsWith('.')) {\n      if (!pattern.hasMore()) {\n        this.matches.add(e, absolute, false)\n      }\n      if (e.canReaddir()) {\n        // if we're in follow mode or it's not a symlink, just keep\n        // testing the same pattern. If there's more after the globstar,\n        // then this symlink consumes the globstar. If not, then we can\n        // follow at most ONE symlink along the way, so we mark it, which\n        // also checks to ensure that it wasn't already marked.\n        if (this.follow || !e.isSymbolicLink()) {\n          this.subwalks.add(e, pattern)\n        } else if (e.isSymbolicLink()) {\n          if (rest && pattern.checkFollowGlobstar()) {\n            this.subwalks.add(e, rest)\n          } else if (pattern.markFollowGlobstar()) {\n            this.subwalks.add(e, pattern)\n          }\n        }\n      }\n    }\n    // if the NEXT thing matches this entry, then also add\n    // the rest.\n    if (rest) {\n      const rp = rest.pattern()\n      if (\n        typeof rp === 'string' &&\n        // dots and empty were handled already\n        rp !== '..' &&\n        rp !== '' &&\n        rp !== '.'\n      ) {\n        this.testString(e, rp, rest.rest(), absolute)\n      } else if (rp === '..') {\n        /* c8 ignore start */\n        const ep = e.parent || e\n        /* c8 ignore stop */\n        this.subwalks.add(ep, rest)\n      } else if (rp instanceof RegExp) {\n        this.testRegExp(e, rp, rest.rest(), absolute)\n      }\n    }\n  }\n\n  testRegExp(\n    e: Path,\n    p: MMRegExp,\n    rest: Pattern | null,\n    absolute: boolean\n  ) {\n    if (!p.test(e.name)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n\n  testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n    // should never happen?\n    if (!e.isNamed(p)) return\n    if (!rest) {\n      this.matches.add(e, absolute, false)\n    } else {\n      this.subwalks.add(e, rest)\n    }\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts
                              deleted file mode 100644
                              index 5c1a0414971b3a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts
                              +++ /dev/null
                              @@ -1,96 +0,0 @@
                              -/// 
                              -/**
                              - * Single-use utility classes to provide functionality to the {@link Glob}
                              - * methods.
                              - *
                              - * @module
                              - */
                              -import { Minipass } from 'minipass';
                              -import { Path } from 'path-scurry';
                              -import { IgnoreLike } from './ignore.js';
                              -import { Pattern } from './pattern.js';
                              -import { Processor } from './processor.js';
                              -export interface GlobWalkerOpts {
                              -    absolute?: boolean;
                              -    allowWindowsEscape?: boolean;
                              -    cwd?: string | URL;
                              -    dot?: boolean;
                              -    dotRelative?: boolean;
                              -    follow?: boolean;
                              -    ignore?: string | string[] | IgnoreLike;
                              -    mark?: boolean;
                              -    matchBase?: boolean;
                              -    maxDepth?: number;
                              -    nobrace?: boolean;
                              -    nocase?: boolean;
                              -    nodir?: boolean;
                              -    noext?: boolean;
                              -    noglobstar?: boolean;
                              -    platform?: NodeJS.Platform;
                              -    posix?: boolean;
                              -    realpath?: boolean;
                              -    root?: string;
                              -    stat?: boolean;
                              -    signal?: AbortSignal;
                              -    windowsPathsNoEscape?: boolean;
                              -    withFileTypes?: boolean;
                              -}
                              -export type GWOFileTypesTrue = GlobWalkerOpts & {
                              -    withFileTypes: true;
                              -};
                              -export type GWOFileTypesFalse = GlobWalkerOpts & {
                              -    withFileTypes: false;
                              -};
                              -export type GWOFileTypesUnset = GlobWalkerOpts & {
                              -    withFileTypes?: undefined;
                              -};
                              -export type Result = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string;
                              -export type Matches = O extends GWOFileTypesTrue ? Set : O extends GWOFileTypesFalse ? Set : O extends GWOFileTypesUnset ? Set : Set;
                              -export type MatchStream = O extends GWOFileTypesTrue ? Minipass : O extends GWOFileTypesFalse ? Minipass : O extends GWOFileTypesUnset ? Minipass : Minipass;
                              -/**
                              - * basic walking utilities that all the glob walker types use
                              - */
                              -export declare abstract class GlobUtil {
                              -    #private;
                              -    path: Path;
                              -    patterns: Pattern[];
                              -    opts: O;
                              -    seen: Set;
                              -    paused: boolean;
                              -    aborted: boolean;
                              -    signal?: AbortSignal;
                              -    maxDepth: number;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    pause(): void;
                              -    resume(): void;
                              -    onResume(fn: () => any): void;
                              -    matchCheck(e: Path, ifDir: boolean): Promise;
                              -    matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined;
                              -    matchCheckSync(e: Path, ifDir: boolean): Path | undefined;
                              -    abstract matchEmit(p: Result): void;
                              -    abstract matchEmit(p: string | Path): void;
                              -    matchFinish(e: Path, absolute: boolean): void;
                              -    match(e: Path, absolute: boolean, ifDir: boolean): Promise;
                              -    matchSync(e: Path, absolute: boolean, ifDir: boolean): void;
                              -    walkCB(target: Path, patterns: Pattern[], cb: () => any): void;
                              -    walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
                              -    walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
                              -    walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void;
                              -    walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
                              -    walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
                              -}
                              -export declare class GlobWalker extends GlobUtil {
                              -    matches: O extends GWOFileTypesTrue ? Set : O extends GWOFileTypesFalse ? Set : O extends GWOFileTypesUnset ? Set : Set;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    matchEmit(e: Result): void;
                              -    walk(): Promise>;
                              -    walkSync(): Matches;
                              -}
                              -export declare class GlobStream extends GlobUtil {
                              -    results: O extends GWOFileTypesTrue ? Minipass : O extends GWOFileTypesFalse ? Minipass : O extends GWOFileTypesUnset ? Minipass : Minipass;
                              -    constructor(patterns: Pattern[], path: Path, opts: O);
                              -    matchEmit(e: Result): void;
                              -    stream(): MatchStream;
                              -    streamSync(): MatchStream;
                              -}
                              -//# sourceMappingURL=walker.d.ts.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts.map
                              deleted file mode 100644
                              index 7c8df20b2f323c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.d.ts.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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"}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js
                              deleted file mode 100644
                              index 6f3358b0c39a32..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js
                              +++ /dev/null
                              @@ -1,352 +0,0 @@
                              -/**
                              - * Single-use utility classes to provide functionality to the {@link Glob}
                              - * methods.
                              - *
                              - * @module
                              - */
                              -import { Minipass } from 'minipass';
                              -import { Ignore } from './ignore.js';
                              -import { Processor } from './processor.js';
                              -const makeIgnore = (ignore, opts) => typeof ignore === 'string'
                              -    ? new Ignore([ignore], opts)
                              -    : Array.isArray(ignore)
                              -        ? new Ignore(ignore, opts)
                              -        : ignore;
                              -/**
                              - * basic walking utilities that all the glob walker types use
                              - */
                              -export class GlobUtil {
                              -    path;
                              -    patterns;
                              -    opts;
                              -    seen = new Set();
                              -    paused = false;
                              -    aborted = false;
                              -    #onResume = [];
                              -    #ignore;
                              -    #sep;
                              -    signal;
                              -    maxDepth;
                              -    constructor(patterns, path, opts) {
                              -        this.patterns = patterns;
                              -        this.path = path;
                              -        this.opts = opts;
                              -        this.#sep = !opts.posix && opts.platform === 'win32' ? '\\' : '/';
                              -        if (opts.ignore) {
                              -            this.#ignore = makeIgnore(opts.ignore, opts);
                              -        }
                              -        // ignore, always set with maxDepth, but it's optional on the
                              -        // GlobOptions type
                              -        /* c8 ignore start */
                              -        this.maxDepth = opts.maxDepth || Infinity;
                              -        /* c8 ignore stop */
                              -        if (opts.signal) {
                              -            this.signal = opts.signal;
                              -            this.signal.addEventListener('abort', () => {
                              -                this.#onResume.length = 0;
                              -            });
                              -        }
                              -    }
                              -    #ignored(path) {
                              -        return this.seen.has(path) || !!this.#ignore?.ignored?.(path);
                              -    }
                              -    #childrenIgnored(path) {
                              -        return !!this.#ignore?.childrenIgnored?.(path);
                              -    }
                              -    // backpressure mechanism
                              -    pause() {
                              -        this.paused = true;
                              -    }
                              -    resume() {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            return;
                              -        /* c8 ignore stop */
                              -        this.paused = false;
                              -        let fn = undefined;
                              -        while (!this.paused && (fn = this.#onResume.shift())) {
                              -            fn();
                              -        }
                              -    }
                              -    onResume(fn) {
                              -        if (this.signal?.aborted)
                              -            return;
                              -        /* c8 ignore start */
                              -        if (!this.paused) {
                              -            fn();
                              -        }
                              -        else {
                              -            /* c8 ignore stop */
                              -            this.#onResume.push(fn);
                              -        }
                              -    }
                              -    // do the requisite realpath/stat checking, and return the path
                              -    // to add or undefined to filter it out.
                              -    async matchCheck(e, ifDir) {
                              -        if (ifDir && this.opts.nodir)
                              -            return undefined;
                              -        let rpc;
                              -        if (this.opts.realpath) {
                              -            rpc = e.realpathCached() || (await e.realpath());
                              -            if (!rpc)
                              -                return undefined;
                              -            e = rpc;
                              -        }
                              -        const needStat = e.isUnknown() || this.opts.stat;
                              -        return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir);
                              -    }
                              -    matchCheckTest(e, ifDir) {
                              -        return e &&
                              -            (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&
                              -            (!ifDir || e.canReaddir()) &&
                              -            (!this.opts.nodir || !e.isDirectory()) &&
                              -            !this.#ignored(e)
                              -            ? e
                              -            : undefined;
                              -    }
                              -    matchCheckSync(e, ifDir) {
                              -        if (ifDir && this.opts.nodir)
                              -            return undefined;
                              -        let rpc;
                              -        if (this.opts.realpath) {
                              -            rpc = e.realpathCached() || e.realpathSync();
                              -            if (!rpc)
                              -                return undefined;
                              -            e = rpc;
                              -        }
                              -        const needStat = e.isUnknown() || this.opts.stat;
                              -        return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir);
                              -    }
                              -    matchFinish(e, absolute) {
                              -        if (this.#ignored(e))
                              -            return;
                              -        const abs = this.opts.absolute === undefined ? absolute : this.opts.absolute;
                              -        this.seen.add(e);
                              -        const mark = this.opts.mark && e.isDirectory() ? this.#sep : '';
                              -        // ok, we have what we need!
                              -        if (this.opts.withFileTypes) {
                              -            this.matchEmit(e);
                              -        }
                              -        else if (abs) {
                              -            const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath();
                              -            this.matchEmit(abs + mark);
                              -        }
                              -        else {
                              -            const rel = this.opts.posix ? e.relativePosix() : e.relative();
                              -            const pre = this.opts.dotRelative && !rel.startsWith('..' + this.#sep)
                              -                ? '.' + this.#sep
                              -                : '';
                              -            this.matchEmit(!rel ? '.' + mark : pre + rel + mark);
                              -        }
                              -    }
                              -    async match(e, absolute, ifDir) {
                              -        const p = await this.matchCheck(e, ifDir);
                              -        if (p)
                              -            this.matchFinish(p, absolute);
                              -    }
                              -    matchSync(e, absolute, ifDir) {
                              -        const p = this.matchCheckSync(e, ifDir);
                              -        if (p)
                              -            this.matchFinish(p, absolute);
                              -    }
                              -    walkCB(target, patterns, cb) {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        /* c8 ignore stop */
                              -        this.walkCB2(target, patterns, new Processor(this.opts), cb);
                              -    }
                              -    walkCB2(target, patterns, processor, cb) {
                              -        if (this.#childrenIgnored(target))
                              -            return cb();
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        if (this.paused) {
                              -            this.onResume(() => this.walkCB2(target, patterns, processor, cb));
                              -            return;
                              -        }
                              -        processor.processPatterns(target, patterns);
                              -        // done processing.  all of the above is sync, can be abstracted out.
                              -        // subwalks is a map of paths to the entry filters they need
                              -        // matches is a map of paths to [absolute, ifDir] tuples.
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            tasks++;
                              -            this.match(m, absolute, ifDir).then(() => next());
                              -        }
                              -        for (const t of processor.subwalkTargets()) {
                              -            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
                              -                continue;
                              -            }
                              -            tasks++;
                              -            const childrenCached = t.readdirCached();
                              -            if (t.calledReaddir())
                              -                this.walkCB3(t, childrenCached, processor, next);
                              -            else {
                              -                t.readdirCB((_, entries) => this.walkCB3(t, entries, processor, next), true);
                              -            }
                              -        }
                              -        next();
                              -    }
                              -    walkCB3(target, entries, processor, cb) {
                              -        processor = processor.filterEntries(target, entries);
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            tasks++;
                              -            this.match(m, absolute, ifDir).then(() => next());
                              -        }
                              -        for (const [target, patterns] of processor.subwalks.entries()) {
                              -            tasks++;
                              -            this.walkCB2(target, patterns, processor.child(), next);
                              -        }
                              -        next();
                              -    }
                              -    walkCBSync(target, patterns, cb) {
                              -        /* c8 ignore start */
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        /* c8 ignore stop */
                              -        this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
                              -    }
                              -    walkCB2Sync(target, patterns, processor, cb) {
                              -        if (this.#childrenIgnored(target))
                              -            return cb();
                              -        if (this.signal?.aborted)
                              -            cb();
                              -        if (this.paused) {
                              -            this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
                              -            return;
                              -        }
                              -        processor.processPatterns(target, patterns);
                              -        // done processing.  all of the above is sync, can be abstracted out.
                              -        // subwalks is a map of paths to the entry filters they need
                              -        // matches is a map of paths to [absolute, ifDir] tuples.
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            this.matchSync(m, absolute, ifDir);
                              -        }
                              -        for (const t of processor.subwalkTargets()) {
                              -            if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {
                              -                continue;
                              -            }
                              -            tasks++;
                              -            const children = t.readdirSync();
                              -            this.walkCB3Sync(t, children, processor, next);
                              -        }
                              -        next();
                              -    }
                              -    walkCB3Sync(target, entries, processor, cb) {
                              -        processor = processor.filterEntries(target, entries);
                              -        let tasks = 1;
                              -        const next = () => {
                              -            if (--tasks === 0)
                              -                cb();
                              -        };
                              -        for (const [m, absolute, ifDir] of processor.matches.entries()) {
                              -            if (this.#ignored(m))
                              -                continue;
                              -            this.matchSync(m, absolute, ifDir);
                              -        }
                              -        for (const [target, patterns] of processor.subwalks.entries()) {
                              -            tasks++;
                              -            this.walkCB2Sync(target, patterns, processor.child(), next);
                              -        }
                              -        next();
                              -    }
                              -}
                              -export class GlobWalker extends GlobUtil {
                              -    matches;
                              -    constructor(patterns, path, opts) {
                              -        super(patterns, path, opts);
                              -        this.matches = new Set();
                              -    }
                              -    matchEmit(e) {
                              -        this.matches.add(e);
                              -    }
                              -    async walk() {
                              -        if (this.signal?.aborted)
                              -            throw this.signal.reason;
                              -        if (this.path.isUnknown()) {
                              -            await this.path.lstat();
                              -        }
                              -        await new Promise((res, rej) => {
                              -            this.walkCB(this.path, this.patterns, () => {
                              -                if (this.signal?.aborted) {
                              -                    rej(this.signal.reason);
                              -                }
                              -                else {
                              -                    res(this.matches);
                              -                }
                              -            });
                              -        });
                              -        return this.matches;
                              -    }
                              -    walkSync() {
                              -        if (this.signal?.aborted)
                              -            throw this.signal.reason;
                              -        if (this.path.isUnknown()) {
                              -            this.path.lstatSync();
                              -        }
                              -        // nothing for the callback to do, because this never pauses
                              -        this.walkCBSync(this.path, this.patterns, () => {
                              -            if (this.signal?.aborted)
                              -                throw this.signal.reason;
                              -        });
                              -        return this.matches;
                              -    }
                              -}
                              -export class GlobStream extends GlobUtil {
                              -    results;
                              -    constructor(patterns, path, opts) {
                              -        super(patterns, path, opts);
                              -        this.results = new Minipass({
                              -            signal: this.signal,
                              -            objectMode: true,
                              -        });
                              -        this.results.on('drain', () => this.resume());
                              -        this.results.on('resume', () => this.resume());
                              -    }
                              -    matchEmit(e) {
                              -        this.results.write(e);
                              -        if (!this.results.flowing)
                              -            this.pause();
                              -    }
                              -    stream() {
                              -        const target = this.path;
                              -        if (target.isUnknown()) {
                              -            target.lstat().then(() => {
                              -                this.walkCB(target, this.patterns, () => this.results.end());
                              -            });
                              -        }
                              -        else {
                              -            this.walkCB(target, this.patterns, () => this.results.end());
                              -        }
                              -        return this.results;
                              -    }
                              -    streamSync() {
                              -        if (this.path.isUnknown()) {
                              -            this.path.lstatSync();
                              -        }
                              -        this.walkCBSync(this.path, this.patterns, () => this.results.end());
                              -        return this.results;
                              -    }
                              -}
                              -//# sourceMappingURL=walker.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js.map b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js.map
                              deleted file mode 100644
                              index 8756bfca294503..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/dist/mjs/walker.js.map
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/walker.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Single-use utility classes to provide functionality to the {@link Glob}\n * methods.\n *\n * @module\n */\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport { Ignore, IgnoreLike } from './ignore.js'\n\n// XXX can we somehow make it so that it NEVER processes a given path more than\n// once, enough that the match set tracking is no longer needed?  that'd speed\n// things up a lot.  Or maybe bring back nounique, and skip it in that case?\n\n// a single minimatch set entry with 1 or more parts\nimport { Pattern } from './pattern.js'\nimport { Processor } from './processor.js'\n\nexport interface GlobWalkerOpts {\n  absolute?: boolean\n  allowWindowsEscape?: boolean\n  cwd?: string | URL\n  dot?: boolean\n  dotRelative?: boolean\n  follow?: boolean\n  ignore?: string | string[] | IgnoreLike\n  mark?: boolean\n  matchBase?: boolean\n  // Note: maxDepth here means \"maximum actual Path.depth()\",\n  // not \"maximum depth beyond cwd\"\n  maxDepth?: number\n  nobrace?: boolean\n  nocase?: boolean\n  nodir?: boolean\n  noext?: boolean\n  noglobstar?: boolean\n  platform?: NodeJS.Platform\n  posix?: boolean\n  realpath?: boolean\n  root?: string\n  stat?: boolean\n  signal?: AbortSignal\n  windowsPathsNoEscape?: boolean\n  withFileTypes?: boolean\n}\n\nexport type GWOFileTypesTrue = GlobWalkerOpts & {\n  withFileTypes: true\n}\nexport type GWOFileTypesFalse = GlobWalkerOpts & {\n  withFileTypes: false\n}\nexport type GWOFileTypesUnset = GlobWalkerOpts & {\n  withFileTypes?: undefined\n}\n\nexport type Result = O extends GWOFileTypesTrue\n  ? Path\n  : O extends GWOFileTypesFalse\n  ? string\n  : O extends GWOFileTypesUnset\n  ? string\n  : Path | string\n\nexport type Matches = O extends GWOFileTypesTrue\n  ? Set\n  : O extends GWOFileTypesFalse\n  ? Set\n  : O extends GWOFileTypesUnset\n  ? Set\n  : Set\n\nexport type MatchStream =\n  O extends GWOFileTypesTrue\n    ? Minipass\n    : O extends GWOFileTypesFalse\n    ? Minipass\n    : O extends GWOFileTypesUnset\n    ? Minipass\n    : Minipass\n\nconst makeIgnore = (\n  ignore: string | string[] | IgnoreLike,\n  opts: GlobWalkerOpts\n): IgnoreLike =>\n  typeof ignore === 'string'\n    ? new Ignore([ignore], opts)\n    : Array.isArray(ignore)\n    ? new Ignore(ignore, opts)\n    : ignore\n\n/**\n * basic walking utilities that all the glob walker types use\n */\nexport abstract class GlobUtil {\n  path: Path\n  patterns: Pattern[]\n  opts: O\n  seen: Set = new Set()\n  paused: boolean = false\n  aborted: boolean = false\n  #onResume: (() => any)[] = []\n  #ignore?: IgnoreLike\n  #sep: '\\\\' | '/'\n  signal?: AbortSignal\n  maxDepth: number\n\n  constructor(patterns: Pattern[], path: Path, opts: O)\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    this.patterns = patterns\n    this.path = path\n    this.opts = opts\n    this.#sep = !opts.posix && opts.platform === 'win32' ? '\\\\' : '/'\n    if (opts.ignore) {\n      this.#ignore = makeIgnore(opts.ignore, opts)\n    }\n    // ignore, always set with maxDepth, but it's optional on the\n    // GlobOptions type\n    /* c8 ignore start */\n    this.maxDepth = opts.maxDepth || Infinity\n    /* c8 ignore stop */\n    if (opts.signal) {\n      this.signal = opts.signal\n      this.signal.addEventListener('abort', () => {\n        this.#onResume.length = 0\n      })\n    }\n  }\n\n  #ignored(path: Path): boolean {\n    return this.seen.has(path) || !!this.#ignore?.ignored?.(path)\n  }\n  #childrenIgnored(path: Path): boolean {\n    return !!this.#ignore?.childrenIgnored?.(path)\n  }\n\n  // backpressure mechanism\n  pause() {\n    this.paused = true\n  }\n  resume() {\n    /* c8 ignore start */\n    if (this.signal?.aborted) return\n    /* c8 ignore stop */\n    this.paused = false\n    let fn: (() => any) | undefined = undefined\n    while (!this.paused && (fn = this.#onResume.shift())) {\n      fn()\n    }\n  }\n  onResume(fn: () => any) {\n    if (this.signal?.aborted) return\n    /* c8 ignore start */\n    if (!this.paused) {\n      fn()\n    } else {\n      /* c8 ignore stop */\n      this.#onResume.push(fn)\n    }\n  }\n\n  // do the requisite realpath/stat checking, and return the path\n  // to add or undefined to filter it out.\n  async matchCheck(e: Path, ifDir: boolean): Promise {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || (await e.realpath())\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    return this.matchCheckTest(needStat ? await e.lstat() : e, ifDir)\n  }\n\n  matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined {\n    return e &&\n      (this.maxDepth === Infinity || e.depth() <= this.maxDepth) &&\n      (!ifDir || e.canReaddir()) &&\n      (!this.opts.nodir || !e.isDirectory()) &&\n      !this.#ignored(e)\n      ? e\n      : undefined\n  }\n\n  matchCheckSync(e: Path, ifDir: boolean): Path | undefined {\n    if (ifDir && this.opts.nodir) return undefined\n    let rpc: Path | undefined\n    if (this.opts.realpath) {\n      rpc = e.realpathCached() || e.realpathSync()\n      if (!rpc) return undefined\n      e = rpc\n    }\n    const needStat = e.isUnknown() || this.opts.stat\n    return this.matchCheckTest(needStat ? e.lstatSync() : e, ifDir)\n  }\n\n  abstract matchEmit(p: Result): void\n  abstract matchEmit(p: string | Path): void\n\n  matchFinish(e: Path, absolute: boolean) {\n    if (this.#ignored(e)) return\n    const abs =\n      this.opts.absolute === undefined ? absolute : this.opts.absolute\n    this.seen.add(e)\n    const mark = this.opts.mark && e.isDirectory() ? this.#sep : ''\n    // ok, we have what we need!\n    if (this.opts.withFileTypes) {\n      this.matchEmit(e)\n    } else if (abs) {\n      const abs = this.opts.posix ? e.fullpathPosix() : e.fullpath()\n      this.matchEmit(abs + mark)\n    } else {\n      const rel = this.opts.posix ? e.relativePosix() : e.relative()\n      const pre =\n        this.opts.dotRelative && !rel.startsWith('..' + this.#sep)\n          ? '.' + this.#sep\n          : ''\n      this.matchEmit(!rel ? '.' + mark : pre + rel + mark)\n    }\n  }\n\n  async match(e: Path, absolute: boolean, ifDir: boolean): Promise {\n    const p = await this.matchCheck(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  matchSync(e: Path, absolute: boolean, ifDir: boolean): void {\n    const p = this.matchCheckSync(e, ifDir)\n    if (p) this.matchFinish(p, absolute)\n  }\n\n  walkCB(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() => this.walkCB2(target, patterns, processor, cb))\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const childrenCached = t.readdirCached()\n      if (t.calledReaddir())\n        this.walkCB3(t, childrenCached, processor, next)\n      else {\n        t.readdirCB(\n          (_, entries) => this.walkCB3(t, entries, processor, next),\n          true\n        )\n      }\n    }\n\n    next()\n  }\n\n  walkCB3(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      tasks++\n      this.match(m, absolute, ifDir).then(() => next())\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n\n  walkCBSync(target: Path, patterns: Pattern[], cb: () => any) {\n    /* c8 ignore start */\n    if (this.signal?.aborted) cb()\n    /* c8 ignore stop */\n    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb)\n  }\n\n  walkCB2Sync(\n    target: Path,\n    patterns: Pattern[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    if (this.#childrenIgnored(target)) return cb()\n    if (this.signal?.aborted) cb()\n    if (this.paused) {\n      this.onResume(() =>\n        this.walkCB2Sync(target, patterns, processor, cb)\n      )\n      return\n    }\n    processor.processPatterns(target, patterns)\n\n    // done processing.  all of the above is sync, can be abstracted out.\n    // subwalks is a map of paths to the entry filters they need\n    // matches is a map of paths to [absolute, ifDir] tuples.\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n\n    for (const t of processor.subwalkTargets()) {\n      if (this.maxDepth !== Infinity && t.depth() >= this.maxDepth) {\n        continue\n      }\n      tasks++\n      const children = t.readdirSync()\n      this.walkCB3Sync(t, children, processor, next)\n    }\n\n    next()\n  }\n\n  walkCB3Sync(\n    target: Path,\n    entries: Path[],\n    processor: Processor,\n    cb: () => any\n  ) {\n    processor = processor.filterEntries(target, entries)\n\n    let tasks = 1\n    const next = () => {\n      if (--tasks === 0) cb()\n    }\n\n    for (const [m, absolute, ifDir] of processor.matches.entries()) {\n      if (this.#ignored(m)) continue\n      this.matchSync(m, absolute, ifDir)\n    }\n    for (const [target, patterns] of processor.subwalks.entries()) {\n      tasks++\n      this.walkCB2Sync(target, patterns, processor.child(), next)\n    }\n\n    next()\n  }\n}\n\nexport class GlobWalker<\n  O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n  matches: O extends GWOFileTypesTrue\n    ? Set\n    : O extends GWOFileTypesFalse\n    ? Set\n    : O extends GWOFileTypesUnset\n    ? Set\n    : Set\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.matches = new Set() as Matches\n  }\n\n  matchEmit(e: Result): void\n  matchEmit(e: Path | string): void {\n    this.matches.add(e)\n  }\n\n  async walk(): Promise> {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      await this.path.lstat()\n    }\n    await new Promise((res, rej) => {\n      this.walkCB(this.path, this.patterns, () => {\n        if (this.signal?.aborted) {\n          rej(this.signal.reason)\n        } else {\n          res(this.matches)\n        }\n      })\n    })\n    return this.matches\n  }\n\n  walkSync(): Matches {\n    if (this.signal?.aborted) throw this.signal.reason\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    // nothing for the callback to do, because this never pauses\n    this.walkCBSync(this.path, this.patterns, () => {\n      if (this.signal?.aborted) throw this.signal.reason\n    })\n    return this.matches\n  }\n}\n\nexport class GlobStream<\n  O extends GlobWalkerOpts = GlobWalkerOpts\n> extends GlobUtil {\n  results: O extends GWOFileTypesTrue\n    ? Minipass\n    : O extends GWOFileTypesFalse\n    ? Minipass\n    : O extends GWOFileTypesUnset\n    ? Minipass\n    : Minipass\n\n  constructor(patterns: Pattern[], path: Path, opts: O) {\n    super(patterns, path, opts)\n    this.results = new Minipass({\n      signal: this.signal,\n      objectMode: true,\n    }) as MatchStream\n    this.results.on('drain', () => this.resume())\n    this.results.on('resume', () => this.resume())\n  }\n\n  matchEmit(e: Result): void\n  matchEmit(e: Path | string): void {\n    this.results.write(e)\n    if (!this.results.flowing) this.pause()\n  }\n\n  stream(): MatchStream {\n    const target = this.path\n    if (target.isUnknown()) {\n      target.lstat().then(() => {\n        this.walkCB(target, this.patterns, () => this.results.end())\n      })\n    } else {\n      this.walkCB(target, this.patterns, () => this.results.end())\n    }\n    return this.results\n  }\n\n  streamSync(): MatchStream {\n    if (this.path.isUnknown()) {\n      this.path.lstatSync()\n    }\n    this.walkCBSync(this.path, this.patterns, () => this.results.end())\n    return this.results\n  }\n}\n"]}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/package.json
                              deleted file mode 100644
                              index 2d25985d2bbb5d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob/package.json
                              +++ /dev/null
                              @@ -1,98 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (https://blog.izs.me/)",
                              -  "name": "glob",
                              -  "description": "the most correct and second fastest glob implementation in JavaScript",
                              -  "version": "10.3.3",
                              -  "bin": "./dist/cjs/src/bin.js",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/node-glob.git"
                              -  },
                              -  "main": "./dist/cjs/src/index.js",
                              -  "module": "./dist/mjs/index.js",
                              -  "types": "./dist/mjs/index.d.ts",
                              -  "exports": {
                              -    ".": {
                              -      "import": {
                              -        "types": "./dist/mjs/index.d.ts",
                              -        "default": "./dist/mjs/index.js"
                              -      },
                              -      "require": {
                              -        "types": "./dist/cjs/src/index.d.ts",
                              -        "default": "./dist/cjs/src/index.js"
                              -      }
                              -    }
                              -  },
                              -  "files": [
                              -    "dist"
                              -  ],
                              -  "scripts": {
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "preprepare": "rm -rf dist",
                              -    "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash fixup.sh",
                              -    "pretest": "npm run prepare",
                              -    "presnap": "npm run prepare",
                              -    "test": "c8 tap",
                              -    "snap": "c8 tap",
                              -    "format": "prettier --write . --loglevel warn",
                              -    "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts",
                              -    "prepublish": "npm run benchclean",
                              -    "profclean": "rm -f v8.log profile.txt",
                              -    "test-regen": "npm run profclean && TEST_REGEN=1 node --no-warnings --loader ts-node/esm test/00-setup.ts",
                              -    "prebench": "npm run prepare",
                              -    "bench": "bash benchmark.sh",
                              -    "preprof": "npm run prepare",
                              -    "prof": "bash prof.sh",
                              -    "benchclean": "node benchclean.js"
                              -  },
                              -  "prettier": {
                              -    "semi": false,
                              -    "printWidth": 75,
                              -    "tabWidth": 2,
                              -    "useTabs": false,
                              -    "singleQuote": true,
                              -    "jsxSingleQuote": false,
                              -    "bracketSameLine": true,
                              -    "arrowParens": "avoid",
                              -    "endOfLine": "lf"
                              -  },
                              -  "dependencies": {
                              -    "foreground-child": "^3.1.0",
                              -    "jackspeak": "^2.0.3",
                              -    "minimatch": "^9.0.1",
                              -    "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
                              -    "path-scurry": "^1.10.1"
                              -  },
                              -  "devDependencies": {
                              -    "@types/node": "^20.3.2",
                              -    "@types/tap": "^15.0.7",
                              -    "c8": "^7.12.0",
                              -    "memfs": "^3.4.13",
                              -    "mkdirp": "^2.1.4",
                              -    "prettier": "^2.8.3",
                              -    "rimraf": "^4.1.3",
                              -    "tap": "^16.3.4",
                              -    "ts-node": "^10.9.1",
                              -    "typedoc": "^0.23.24",
                              -    "typescript": "^4.9.4"
                              -  },
                              -  "tap": {
                              -    "before": "test/00-setup.ts",
                              -    "coverage": false,
                              -    "node-arg": [
                              -      "--no-warnings",
                              -      "--loader",
                              -      "ts-node/esm"
                              -    ],
                              -    "ts": false
                              -  },
                              -  "license": "ISC",
                              -  "funding": {
                              -    "url": "https://github.com/sponsors/isaacs"
                              -  },
                              -  "engines": {
                              -    "node": ">=16 || 14 >=14.17"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/LICENSE
                              deleted file mode 100644
                              index 1493534e60dce4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js
                              deleted file mode 100644
                              index 5fc86bbd0116c9..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/assert-valid-pattern.js
                              +++ /dev/null
                              @@ -1,14 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.assertValidPattern = void 0;
                              -const MAX_PATTERN_LENGTH = 1024 * 64;
                              -const assertValidPattern = (pattern) => {
                              -    if (typeof pattern !== 'string') {
                              -        throw new TypeError('invalid pattern');
                              -    }
                              -    if (pattern.length > MAX_PATTERN_LENGTH) {
                              -        throw new TypeError('pattern is too long');
                              -    }
                              -};
                              -exports.assertValidPattern = assertValidPattern;
                              -//# sourceMappingURL=assert-valid-pattern.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js
                              deleted file mode 100644
                              index 0b0cc8f3c50b3d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/ast.js
                              +++ /dev/null
                              @@ -1,589 +0,0 @@
                              -"use strict";
                              -// parse a single path portion
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.AST = void 0;
                              -const brace_expressions_js_1 = require("./brace-expressions.js");
                              -const unescape_js_1 = require("./unescape.js");
                              -const types = new Set(['!', '?', '+', '*', '@']);
                              -const isExtglobType = (c) => types.has(c);
                              -// Patterns that get prepended to bind to the start of either the
                              -// entire string, or just a single path portion, to prevent dots
                              -// and/or traversal patterns, when needed.
                              -// Exts don't need the ^ or / bit, because the root binds that already.
                              -const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))';
                              -const startNoDot = '(?!\\.)';
                              -// characters that indicate a start of pattern needs the "no dots" bit,
                              -// because a dot *might* be matched. ( is not in the list, because in
                              -// the case of a child extglob, it will handle the prevention itself.
                              -const addPatternStart = new Set(['[', '.']);
                              -// cases where traversal is A-OK, no dot prevention needed
                              -const justDots = new Set(['..', '.']);
                              -const reSpecials = new Set('().*{}+?[]^$\\!');
                              -const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -// any single thing other than /
                              -const qmark = '[^/]';
                              -// * => any number of characters
                              -const star = qmark + '*?';
                              -// use + when we need to ensure that *something* matches, because the * is
                              -// the only thing in the path portion.
                              -const starNoEmpty = qmark + '+?';
                              -// remove the \ chars that we added if we end up doing a nonmagic compare
                              -// const deslash = (s: string) => s.replace(/\\(.)/g, '$1')
                              -class AST {
                              -    type;
                              -    #root;
                              -    #hasMagic;
                              -    #uflag = false;
                              -    #parts = [];
                              -    #parent;
                              -    #parentIndex;
                              -    #negs;
                              -    #filledNegs = false;
                              -    #options;
                              -    #toString;
                              -    // set to true if it's an extglob with no children
                              -    // (which really means one child of '')
                              -    #emptyExt = false;
                              -    constructor(type, parent, options = {}) {
                              -        this.type = type;
                              -        // extglobs are inherently magical
                              -        if (type)
                              -            this.#hasMagic = true;
                              -        this.#parent = parent;
                              -        this.#root = this.#parent ? this.#parent.#root : this;
                              -        this.#options = this.#root === this ? options : this.#root.#options;
                              -        this.#negs = this.#root === this ? [] : this.#root.#negs;
                              -        if (type === '!' && !this.#root.#filledNegs)
                              -            this.#negs.push(this);
                              -        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;
                              -    }
                              -    get hasMagic() {
                              -        /* c8 ignore start */
                              -        if (this.#hasMagic !== undefined)
                              -            return this.#hasMagic;
                              -        /* c8 ignore stop */
                              -        for (const p of this.#parts) {
                              -            if (typeof p === 'string')
                              -                continue;
                              -            if (p.type || p.hasMagic)
                              -                return (this.#hasMagic = true);
                              -        }
                              -        // note: will be undefined until we generate the regexp src and find out
                              -        return this.#hasMagic;
                              -    }
                              -    // reconstructs the pattern
                              -    toString() {
                              -        if (this.#toString !== undefined)
                              -            return this.#toString;
                              -        if (!this.type) {
                              -            return (this.#toString = this.#parts.map(p => String(p)).join(''));
                              -        }
                              -        else {
                              -            return (this.#toString =
                              -                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');
                              -        }
                              -    }
                              -    #fillNegs() {
                              -        /* c8 ignore start */
                              -        if (this !== this.#root)
                              -            throw new Error('should only call on root');
                              -        if (this.#filledNegs)
                              -            return this;
                              -        /* c8 ignore stop */
                              -        // call toString() once to fill this out
                              -        this.toString();
                              -        this.#filledNegs = true;
                              -        let n;
                              -        while ((n = this.#negs.pop())) {
                              -            if (n.type !== '!')
                              -                continue;
                              -            // walk up the tree, appending everthing that comes AFTER parentIndex
                              -            let p = n;
                              -            let pp = p.#parent;
                              -            while (pp) {
                              -                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {
                              -                    for (const part of n.#parts) {
                              -                        /* c8 ignore start */
                              -                        if (typeof part === 'string') {
                              -                            throw new Error('string part in extglob AST??');
                              -                        }
                              -                        /* c8 ignore stop */
                              -                        part.copyIn(pp.#parts[i]);
                              -                    }
                              -                }
                              -                p = pp;
                              -                pp = p.#parent;
                              -            }
                              -        }
                              -        return this;
                              -    }
                              -    push(...parts) {
                              -        for (const p of parts) {
                              -            if (p === '')
                              -                continue;
                              -            /* c8 ignore start */
                              -            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {
                              -                throw new Error('invalid part: ' + p);
                              -            }
                              -            /* c8 ignore stop */
                              -            this.#parts.push(p);
                              -        }
                              -    }
                              -    toJSON() {
                              -        const ret = this.type === null
                              -            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))
                              -            : [this.type, ...this.#parts.map(p => p.toJSON())];
                              -        if (this.isStart() && !this.type)
                              -            ret.unshift([]);
                              -        if (this.isEnd() &&
                              -            (this === this.#root ||
                              -                (this.#root.#filledNegs && this.#parent?.type === '!'))) {
                              -            ret.push({});
                              -        }
                              -        return ret;
                              -    }
                              -    isStart() {
                              -        if (this.#root === this)
                              -            return true;
                              -        // if (this.type) return !!this.#parent?.isStart()
                              -        if (!this.#parent?.isStart())
                              -            return false;
                              -        if (this.#parentIndex === 0)
                              -            return true;
                              -        // if everything AHEAD of this is a negation, then it's still the "start"
                              -        const p = this.#parent;
                              -        for (let i = 0; i < this.#parentIndex; i++) {
                              -            const pp = p.#parts[i];
                              -            if (!(pp instanceof AST && pp.type === '!')) {
                              -                return false;
                              -            }
                              -        }
                              -        return true;
                              -    }
                              -    isEnd() {
                              -        if (this.#root === this)
                              -            return true;
                              -        if (this.#parent?.type === '!')
                              -            return true;
                              -        if (!this.#parent?.isEnd())
                              -            return false;
                              -        if (!this.type)
                              -            return this.#parent?.isEnd();
                              -        // if not root, it'll always have a parent
                              -        /* c8 ignore start */
                              -        const pl = this.#parent ? this.#parent.#parts.length : 0;
                              -        /* c8 ignore stop */
                              -        return this.#parentIndex === pl - 1;
                              -    }
                              -    copyIn(part) {
                              -        if (typeof part === 'string')
                              -            this.push(part);
                              -        else
                              -            this.push(part.clone(this));
                              -    }
                              -    clone(parent) {
                              -        const c = new AST(this.type, parent);
                              -        for (const p of this.#parts) {
                              -            c.copyIn(p);
                              -        }
                              -        return c;
                              -    }
                              -    static #parseAST(str, ast, pos, opt) {
                              -        let escaping = false;
                              -        let inBrace = false;
                              -        let braceStart = -1;
                              -        let braceNeg = false;
                              -        if (ast.type === null) {
                              -            // outside of a extglob, append until we find a start
                              -            let i = pos;
                              -            let acc = '';
                              -            while (i < str.length) {
                              -                const c = str.charAt(i++);
                              -                // still accumulate escapes at this point, but we do ignore
                              -                // starts that are escaped
                              -                if (escaping || c === '\\') {
                              -                    escaping = !escaping;
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                if (inBrace) {
                              -                    if (i === braceStart + 1) {
                              -                        if (c === '^' || c === '!') {
                              -                            braceNeg = true;
                              -                        }
                              -                    }
                              -                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {
                              -                        inBrace = false;
                              -                    }
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                else if (c === '[') {
                              -                    inBrace = true;
                              -                    braceStart = i;
                              -                    braceNeg = false;
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {
                              -                    ast.push(acc);
                              -                    acc = '';
                              -                    const ext = new AST(c, ast);
                              -                    i = AST.#parseAST(str, ext, i, opt);
                              -                    ast.push(ext);
                              -                    continue;
                              -                }
                              -                acc += c;
                              -            }
                              -            ast.push(acc);
                              -            return i;
                              -        }
                              -        // some kind of extglob, pos is at the (
                              -        // find the next | or )
                              -        let i = pos + 1;
                              -        let part = new AST(null, ast);
                              -        const parts = [];
                              -        let acc = '';
                              -        while (i < str.length) {
                              -            const c = str.charAt(i++);
                              -            // still accumulate escapes at this point, but we do ignore
                              -            // starts that are escaped
                              -            if (escaping || c === '\\') {
                              -                escaping = !escaping;
                              -                acc += c;
                              -                continue;
                              -            }
                              -            if (inBrace) {
                              -                if (i === braceStart + 1) {
                              -                    if (c === '^' || c === '!') {
                              -                        braceNeg = true;
                              -                    }
                              -                }
                              -                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {
                              -                    inBrace = false;
                              -                }
                              -                acc += c;
                              -                continue;
                              -            }
                              -            else if (c === '[') {
                              -                inBrace = true;
                              -                braceStart = i;
                              -                braceNeg = false;
                              -                acc += c;
                              -                continue;
                              -            }
                              -            if (isExtglobType(c) && str.charAt(i) === '(') {
                              -                part.push(acc);
                              -                acc = '';
                              -                const ext = new AST(c, part);
                              -                part.push(ext);
                              -                i = AST.#parseAST(str, ext, i, opt);
                              -                continue;
                              -            }
                              -            if (c === '|') {
                              -                part.push(acc);
                              -                acc = '';
                              -                parts.push(part);
                              -                part = new AST(null, ast);
                              -                continue;
                              -            }
                              -            if (c === ')') {
                              -                if (acc === '' && ast.#parts.length === 0) {
                              -                    ast.#emptyExt = true;
                              -                }
                              -                part.push(acc);
                              -                acc = '';
                              -                ast.push(...parts, part);
                              -                return i;
                              -            }
                              -            acc += c;
                              -        }
                              -        // unfinished extglob
                              -        // if we got here, it was a malformed extglob! not an extglob, but
                              -        // maybe something else in there.
                              -        ast.type = null;
                              -        ast.#hasMagic = undefined;
                              -        ast.#parts = [str.substring(pos - 1)];
                              -        return i;
                              -    }
                              -    static fromGlob(pattern, options = {}) {
                              -        const ast = new AST(null, undefined, options);
                              -        AST.#parseAST(pattern, ast, 0, options);
                              -        return ast;
                              -    }
                              -    // returns the regular expression if there's magic, or the unescaped
                              -    // string if not.
                              -    toMMPattern() {
                              -        // should only be called on root
                              -        /* c8 ignore start */
                              -        if (this !== this.#root)
                              -            return this.#root.toMMPattern();
                              -        /* c8 ignore stop */
                              -        const glob = this.toString();
                              -        const [re, body, hasMagic, uflag] = this.toRegExpSource();
                              -        // if we're in nocase mode, and not nocaseMagicOnly, then we do
                              -        // still need a regular expression if we have to case-insensitively
                              -        // match capital/lowercase characters.
                              -        const anyMagic = hasMagic ||
                              -            this.#hasMagic ||
                              -            (this.#options.nocase &&
                              -                !this.#options.nocaseMagicOnly &&
                              -                glob.toUpperCase() !== glob.toLowerCase());
                              -        if (!anyMagic) {
                              -            return body;
                              -        }
                              -        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');
                              -        return Object.assign(new RegExp(`^${re}$`, flags), {
                              -            _src: re,
                              -            _glob: glob,
                              -        });
                              -    }
                              -    // returns the string match, the regexp source, whether there's magic
                              -    // in the regexp (so a regular expression is required) and whether or
                              -    // not the uflag is needed for the regular expression (for posix classes)
                              -    // TODO: instead of injecting the start/end at this point, just return
                              -    // the BODY of the regexp, along with the start/end portions suitable
                              -    // for binding the start/end in either a joined full-path makeRe context
                              -    // (where we bind to (^|/), or a standalone matchPart context (where
                              -    // we bind to ^, and not /).  Otherwise slashes get duped!
                              -    //
                              -    // In part-matching mode, the start is:
                              -    // - if not isStart: nothing
                              -    // - if traversal possible, but not allowed: ^(?!\.\.?$)
                              -    // - if dots allowed or not possible: ^
                              -    // - if dots possible and not allowed: ^(?!\.)
                              -    // end is:
                              -    // - if not isEnd(): nothing
                              -    // - else: $
                              -    //
                              -    // In full-path matching mode, we put the slash at the START of the
                              -    // pattern, so start is:
                              -    // - if first pattern: same as part-matching mode
                              -    // - if not isStart(): nothing
                              -    // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/))
                              -    // - if dots allowed or not possible: /
                              -    // - if dots possible and not allowed: /(?!\.)
                              -    // end is:
                              -    // - if last pattern, same as part-matching mode
                              -    // - else nothing
                              -    //
                              -    // Always put the (?:$|/) on negated tails, though, because that has to be
                              -    // there to bind the end of the negated pattern portion, and it's easier to
                              -    // just stick it in now rather than try to inject it later in the middle of
                              -    // the pattern.
                              -    //
                              -    // We can just always return the same end, and leave it up to the caller
                              -    // to know whether it's going to be used joined or in parts.
                              -    // And, if the start is adjusted slightly, can do the same there:
                              -    // - if not isStart: nothing
                              -    // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$)
                              -    // - if dots allowed or not possible: (?:/|^)
                              -    // - if dots possible and not allowed: (?:/|^)(?!\.)
                              -    //
                              -    // But it's better to have a simpler binding without a conditional, for
                              -    // performance, so probably better to return both start options.
                              -    //
                              -    // Then the caller just ignores the end if it's not the first pattern,
                              -    // and the start always gets applied.
                              -    //
                              -    // But that's always going to be $ if it's the ending pattern, or nothing,
                              -    // so the caller can just attach $ at the end of the pattern when building.
                              -    //
                              -    // So the todo is:
                              -    // - better detect what kind of start is needed
                              -    // - return both flavors of starting pattern
                              -    // - attach $ at the end of the pattern when creating the actual RegExp
                              -    //
                              -    // Ah, but wait, no, that all only applies to the root when the first pattern
                              -    // is not an extglob. If the first pattern IS an extglob, then we need all
                              -    // that dot prevention biz to live in the extglob portions, because eg
                              -    // +(*|.x*) can match .xy but not .yx.
                              -    //
                              -    // So, return the two flavors if it's #root and the first child is not an
                              -    // AST, otherwise leave it to the child AST to handle it, and there,
                              -    // use the (?:^|/) style of start binding.
                              -    //
                              -    // Even simplified further:
                              -    // - Since the start for a join is eg /(?!\.) and the start for a part
                              -    // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
                              -    // or start or whatever) and prepend ^ or / at the Regexp construction.
                              -    toRegExpSource(allowDot) {
                              -        const dot = allowDot ?? !!this.#options.dot;
                              -        if (this.#root === this)
                              -            this.#fillNegs();
                              -        if (!this.type) {
                              -            const noEmpty = this.isStart() && this.isEnd();
                              -            const src = this.#parts
                              -                .map(p => {
                              -                const [re, _, hasMagic, uflag] = typeof p === 'string'
                              -                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)
                              -                    : p.toRegExpSource(allowDot);
                              -                this.#hasMagic = this.#hasMagic || hasMagic;
                              -                this.#uflag = this.#uflag || uflag;
                              -                return re;
                              -            })
                              -                .join('');
                              -            let start = '';
                              -            if (this.isStart()) {
                              -                if (typeof this.#parts[0] === 'string') {
                              -                    // this is the string that will match the start of the pattern,
                              -                    // so we need to protect against dots and such.
                              -                    // '.' and '..' cannot match unless the pattern is that exactly,
                              -                    // even if it starts with . or dot:true is set.
                              -                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);
                              -                    if (!dotTravAllowed) {
                              -                        const aps = addPatternStart;
                              -                        // check if we have a possibility of matching . or ..,
                              -                        // and prevent that.
                              -                        const needNoTrav =
                              -                        // dots are allowed, and the pattern starts with [ or .
                              -                        (dot && aps.has(src.charAt(0))) ||
                              -                            // the pattern starts with \., and then [ or .
                              -                            (src.startsWith('\\.') && aps.has(src.charAt(2))) ||
                              -                            // the pattern starts with \.\., and then [ or .
                              -                            (src.startsWith('\\.\\.') && aps.has(src.charAt(4)));
                              -                        // no need to prevent dots if it can't match a dot, or if a
                              -                        // sub-pattern will be preventing it anyway.
                              -                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));
                              -                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';
                              -                    }
                              -                }
                              -            }
                              -            // append the "end of path portion" pattern to negation tails
                              -            let end = '';
                              -            if (this.isEnd() &&
                              -                this.#root.#filledNegs &&
                              -                this.#parent?.type === '!') {
                              -                end = '(?:$|\\/)';
                              -            }
                              -            const final = start + src + end;
                              -            return [
                              -                final,
                              -                (0, unescape_js_1.unescape)(src),
                              -                (this.#hasMagic = !!this.#hasMagic),
                              -                this.#uflag,
                              -            ];
                              -        }
                              -        // We need to calculate the body *twice* if it's a repeat pattern
                              -        // at the start, once in nodot mode, then again in dot mode, so a
                              -        // pattern like *(?) can match 'x.y'
                              -        const repeated = this.type === '*' || this.type === '+';
                              -        // some kind of extglob
                              -        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';
                              -        let body = this.#partsToRegExp(dot);
                              -        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {
                              -            // invalid extglob, has to at least be *something* present, if it's
                              -            // the entire path portion.
                              -            const s = this.toString();
                              -            this.#parts = [s];
                              -            this.type = null;
                              -            this.#hasMagic = undefined;
                              -            return [s, (0, unescape_js_1.unescape)(this.toString()), false, false];
                              -        }
                              -        // XXX abstract out this map method
                              -        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot
                              -            ? ''
                              -            : this.#partsToRegExp(true);
                              -        if (bodyDotAllowed === body) {
                              -            bodyDotAllowed = '';
                              -        }
                              -        if (bodyDotAllowed) {
                              -            body = `(?:${body})(?:${bodyDotAllowed})*?`;
                              -        }
                              -        // an empty !() is exactly equivalent to a starNoEmpty
                              -        let final = '';
                              -        if (this.type === '!' && this.#emptyExt) {
                              -            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;
                              -        }
                              -        else {
                              -            const close = this.type === '!'
                              -                ? // !() must match something,but !(x) can match ''
                              -                    '))' +
                              -                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +
                              -                        star +
                              -                        ')'
                              -                : this.type === '@'
                              -                    ? ')'
                              -                    : this.type === '?'
                              -                        ? ')?'
                              -                        : this.type === '+' && bodyDotAllowed
                              -                            ? ')'
                              -                            : this.type === '*' && bodyDotAllowed
                              -                                ? `)?`
                              -                                : `)${this.type}`;
                              -            final = start + body + close;
                              -        }
                              -        return [
                              -            final,
                              -            (0, unescape_js_1.unescape)(body),
                              -            (this.#hasMagic = !!this.#hasMagic),
                              -            this.#uflag,
                              -        ];
                              -    }
                              -    #partsToRegExp(dot) {
                              -        return this.#parts
                              -            .map(p => {
                              -            // extglob ASTs should only contain parent ASTs
                              -            /* c8 ignore start */
                              -            if (typeof p === 'string') {
                              -                throw new Error('string type in extglob ast??');
                              -            }
                              -            /* c8 ignore stop */
                              -            // can ignore hasMagic, because extglobs are already always magic
                              -            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);
                              -            this.#uflag = this.#uflag || uflag;
                              -            return re;
                              -        })
                              -            .filter(p => !(this.isStart() && this.isEnd()) || !!p)
                              -            .join('|');
                              -    }
                              -    static #parseGlob(glob, hasMagic, noEmpty = false) {
                              -        let escaping = false;
                              -        let re = '';
                              -        let uflag = false;
                              -        for (let i = 0; i < glob.length; i++) {
                              -            const c = glob.charAt(i);
                              -            if (escaping) {
                              -                escaping = false;
                              -                re += (reSpecials.has(c) ? '\\' : '') + c;
                              -                continue;
                              -            }
                              -            if (c === '\\') {
                              -                if (i === glob.length - 1) {
                              -                    re += '\\\\';
                              -                }
                              -                else {
                              -                    escaping = true;
                              -                }
                              -                continue;
                              -            }
                              -            if (c === '[') {
                              -                const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(glob, i);
                              -                if (consumed) {
                              -                    re += src;
                              -                    uflag = uflag || needUflag;
                              -                    i += consumed - 1;
                              -                    hasMagic = hasMagic || magic;
                              -                    continue;
                              -                }
                              -            }
                              -            if (c === '*') {
                              -                if (noEmpty && glob === '*')
                              -                    re += starNoEmpty;
                              -                else
                              -                    re += star;
                              -                hasMagic = true;
                              -                continue;
                              -            }
                              -            if (c === '?') {
                              -                re += qmark;
                              -                hasMagic = true;
                              -                continue;
                              -            }
                              -            re += regExpEscape(c);
                              -        }
                              -        return [re, (0, unescape_js_1.unescape)(glob), !!hasMagic, uflag];
                              -    }
                              -}
                              -exports.AST = AST;
                              -//# sourceMappingURL=ast.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js
                              deleted file mode 100644
                              index 0e13eefc4cfee2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/brace-expressions.js
                              +++ /dev/null
                              @@ -1,152 +0,0 @@
                              -"use strict";
                              -// translate the various posix character classes into unicode properties
                              -// this works across all unicode locales
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.parseClass = void 0;
                              -// { : [, /u flag required, negated]
                              -const posixClasses = {
                              -    '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true],
                              -    '[:alpha:]': ['\\p{L}\\p{Nl}', true],
                              -    '[:ascii:]': ['\\x' + '00-\\x' + '7f', false],
                              -    '[:blank:]': ['\\p{Zs}\\t', true],
                              -    '[:cntrl:]': ['\\p{Cc}', true],
                              -    '[:digit:]': ['\\p{Nd}', true],
                              -    '[:graph:]': ['\\p{Z}\\p{C}', true, true],
                              -    '[:lower:]': ['\\p{Ll}', true],
                              -    '[:print:]': ['\\p{C}', true],
                              -    '[:punct:]': ['\\p{P}', true],
                              -    '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true],
                              -    '[:upper:]': ['\\p{Lu}', true],
                              -    '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true],
                              -    '[:xdigit:]': ['A-Fa-f0-9', false],
                              -};
                              -// only need to escape a few things inside of brace expressions
                              -// escapes: [ \ ] -
                              -const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&');
                              -// escape all regexp magic characters
                              -const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -// everything has already been escaped, we just have to join
                              -const rangesToString = (ranges) => ranges.join('');
                              -// takes a glob string at a posix brace expression, and returns
                              -// an equivalent regular expression source, and boolean indicating
                              -// whether the /u flag needs to be applied, and the number of chars
                              -// consumed to parse the character class.
                              -// This also removes out of order ranges, and returns ($.) if the
                              -// entire class just no good.
                              -const parseClass = (glob, position) => {
                              -    const pos = position;
                              -    /* c8 ignore start */
                              -    if (glob.charAt(pos) !== '[') {
                              -        throw new Error('not in a brace expression');
                              -    }
                              -    /* c8 ignore stop */
                              -    const ranges = [];
                              -    const negs = [];
                              -    let i = pos + 1;
                              -    let sawStart = false;
                              -    let uflag = false;
                              -    let escaping = false;
                              -    let negate = false;
                              -    let endPos = pos;
                              -    let rangeStart = '';
                              -    WHILE: while (i < glob.length) {
                              -        const c = glob.charAt(i);
                              -        if ((c === '!' || c === '^') && i === pos + 1) {
                              -            negate = true;
                              -            i++;
                              -            continue;
                              -        }
                              -        if (c === ']' && sawStart && !escaping) {
                              -            endPos = i + 1;
                              -            break;
                              -        }
                              -        sawStart = true;
                              -        if (c === '\\') {
                              -            if (!escaping) {
                              -                escaping = true;
                              -                i++;
                              -                continue;
                              -            }
                              -            // escaped \ char, fall through and treat like normal char
                              -        }
                              -        if (c === '[' && !escaping) {
                              -            // either a posix class, a collation equivalent, or just a [
                              -            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {
                              -                if (glob.startsWith(cls, i)) {
                              -                    // invalid, [a-[] is fine, but not [a-[:alpha]]
                              -                    if (rangeStart) {
                              -                        return ['$.', false, glob.length - pos, true];
                              -                    }
                              -                    i += cls.length;
                              -                    if (neg)
                              -                        negs.push(unip);
                              -                    else
                              -                        ranges.push(unip);
                              -                    uflag = uflag || u;
                              -                    continue WHILE;
                              -                }
                              -            }
                              -        }
                              -        // now it's just a normal character, effectively
                              -        escaping = false;
                              -        if (rangeStart) {
                              -            // throw this range away if it's not valid, but others
                              -            // can still match.
                              -            if (c > rangeStart) {
                              -                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));
                              -            }
                              -            else if (c === rangeStart) {
                              -                ranges.push(braceEscape(c));
                              -            }
                              -            rangeStart = '';
                              -            i++;
                              -            continue;
                              -        }
                              -        // now might be the start of a range.
                              -        // can be either c-d or c-] or c] or c] at this point
                              -        if (glob.startsWith('-]', i + 1)) {
                              -            ranges.push(braceEscape(c + '-'));
                              -            i += 2;
                              -            continue;
                              -        }
                              -        if (glob.startsWith('-', i + 1)) {
                              -            rangeStart = c;
                              -            i += 2;
                              -            continue;
                              -        }
                              -        // not the start of a range, just a single character
                              -        ranges.push(braceEscape(c));
                              -        i++;
                              -    }
                              -    if (endPos < i) {
                              -        // didn't see the end of the class, not a valid class,
                              -        // but might still be valid as a literal match.
                              -        return ['', false, 0, false];
                              -    }
                              -    // if we got no ranges and no negates, then we have a range that
                              -    // cannot possibly match anything, and that poisons the whole glob
                              -    if (!ranges.length && !negs.length) {
                              -        return ['$.', false, glob.length - pos, true];
                              -    }
                              -    // if we got one positive range, and it's a single character, then that's
                              -    // not actually a magic pattern, it's just that one literal character.
                              -    // we should not treat that as "magic", we should just return the literal
                              -    // character. [_] is a perfectly valid way to escape glob magic chars.
                              -    if (negs.length === 0 &&
                              -        ranges.length === 1 &&
                              -        /^\\?.$/.test(ranges[0]) &&
                              -        !negate) {
                              -        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];
                              -        return [regexpEscape(r), false, endPos - pos, false];
                              -    }
                              -    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';
                              -    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';
                              -    const comb = ranges.length && negs.length
                              -        ? '(' + sranges + '|' + snegs + ')'
                              -        : ranges.length
                              -            ? sranges
                              -            : snegs;
                              -    return [comb, uflag, endPos - pos, true];
                              -};
                              -exports.parseClass = parseClass;
                              -//# sourceMappingURL=brace-expressions.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js
                              deleted file mode 100644
                              index 02a4f8a8e0a588..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/escape.js
                              +++ /dev/null
                              @@ -1,22 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.escape = void 0;
                              -/**
                              - * Escape all magic characters in a glob pattern.
                              - *
                              - * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
                              - * option is used, then characters are escaped by wrapping in `[]`, because
                              - * a magic character wrapped in a character class can only be satisfied by
                              - * that exact character.  In this mode, `\` is _not_ escaped, because it is
                              - * not interpreted as a magic character, but instead as a path separator.
                              - */
                              -const escape = (s, { windowsPathsNoEscape = false, } = {}) => {
                              -    // don't need to escape +@! because we escape the parens
                              -    // that make those magic, and escaping ! as [!] isn't valid,
                              -    // because [!]] is a valid glob class meaning not ']'.
                              -    return windowsPathsNoEscape
                              -        ? s.replace(/[?*()[\]]/g, '[$&]')
                              -        : s.replace(/[?*()[\]\\]/g, '\\$&');
                              -};
                              -exports.escape = escape;
                              -//# sourceMappingURL=escape.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js
                              deleted file mode 100644
                              index d70e681fef5d7d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/index.js
                              +++ /dev/null
                              @@ -1,1011 +0,0 @@
                              -"use strict";
                              -var __importDefault = (this && this.__importDefault) || function (mod) {
                              -    return (mod && mod.__esModule) ? mod : { "default": mod };
                              -};
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.unescape = exports.escape = exports.AST = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0;
                              -const brace_expansion_1 = __importDefault(require("brace-expansion"));
                              -const assert_valid_pattern_js_1 = require("./assert-valid-pattern.js");
                              -const ast_js_1 = require("./ast.js");
                              -const escape_js_1 = require("./escape.js");
                              -const unescape_js_1 = require("./unescape.js");
                              -const minimatch = (p, pattern, options = {}) => {
                              -    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
                              -    // shortcut: comments match nothing.
                              -    if (!options.nocomment && pattern.charAt(0) === '#') {
                              -        return false;
                              -    }
                              -    return new Minimatch(pattern, options).match(p);
                              -};
                              -exports.minimatch = minimatch;
                              -// Optimized checking for the most common glob patterns.
                              -const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
                              -const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);
                              -const starDotExtTestDot = (ext) => (f) => f.endsWith(ext);
                              -const starDotExtTestNocase = (ext) => {
                              -    ext = ext.toLowerCase();
                              -    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);
                              -};
                              -const starDotExtTestNocaseDot = (ext) => {
                              -    ext = ext.toLowerCase();
                              -    return (f) => f.toLowerCase().endsWith(ext);
                              -};
                              -const starDotStarRE = /^\*+\.\*+$/;
                              -const starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');
                              -const starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');
                              -const dotStarRE = /^\.\*+$/;
                              -const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');
                              -const starRE = /^\*+$/;
                              -const starTest = (f) => f.length !== 0 && !f.startsWith('.');
                              -const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';
                              -const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
                              -const qmarksTestNocase = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExt([$0]);
                              -    if (!ext)
                              -        return noext;
                              -    ext = ext.toLowerCase();
                              -    return (f) => noext(f) && f.toLowerCase().endsWith(ext);
                              -};
                              -const qmarksTestNocaseDot = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExtDot([$0]);
                              -    if (!ext)
                              -        return noext;
                              -    ext = ext.toLowerCase();
                              -    return (f) => noext(f) && f.toLowerCase().endsWith(ext);
                              -};
                              -const qmarksTestDot = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExtDot([$0]);
                              -    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);
                              -};
                              -const qmarksTest = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExt([$0]);
                              -    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);
                              -};
                              -const qmarksTestNoExt = ([$0]) => {
                              -    const len = $0.length;
                              -    return (f) => f.length === len && !f.startsWith('.');
                              -};
                              -const qmarksTestNoExtDot = ([$0]) => {
                              -    const len = $0.length;
                              -    return (f) => f.length === len && f !== '.' && f !== '..';
                              -};
                              -/* c8 ignore start */
                              -const defaultPlatform = (typeof process === 'object' && process
                              -    ? (typeof process.env === 'object' &&
                              -        process.env &&
                              -        process.env.__MINIMATCH_TESTING_PLATFORM__) ||
                              -        process.platform
                              -    : 'posix');
                              -const path = {
                              -    win32: { sep: '\\' },
                              -    posix: { sep: '/' },
                              -};
                              -/* c8 ignore stop */
                              -exports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;
                              -exports.minimatch.sep = exports.sep;
                              -exports.GLOBSTAR = Symbol('globstar **');
                              -exports.minimatch.GLOBSTAR = exports.GLOBSTAR;
                              -// any single thing other than /
                              -// don't need to escape / when using new RegExp()
                              -const qmark = '[^/]';
                              -// * => any number of characters
                              -const star = qmark + '*?';
                              -// ** when dots are allowed.  Anything goes, except .. and .
                              -// not (^ or / followed by one or two dots followed by $ or /),
                              -// followed by anything, any number of times.
                              -const twoStarDot = '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?';
                              -// not a ^ or / followed by a dot,
                              -// followed by anything, any number of times.
                              -const twoStarNoDot = '(?:(?!(?:\\/|^)\\.).)*?';
                              -const filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options);
                              -exports.filter = filter;
                              -exports.minimatch.filter = exports.filter;
                              -const ext = (a, b = {}) => Object.assign({}, a, b);
                              -const defaults = (def) => {
                              -    if (!def || typeof def !== 'object' || !Object.keys(def).length) {
                              -        return exports.minimatch;
                              -    }
                              -    const orig = exports.minimatch;
                              -    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));
                              -    return Object.assign(m, {
                              -        Minimatch: class Minimatch extends orig.Minimatch {
                              -            constructor(pattern, options = {}) {
                              -                super(pattern, ext(def, options));
                              -            }
                              -            static defaults(options) {
                              -                return orig.defaults(ext(def, options)).Minimatch;
                              -            }
                              -        },
                              -        AST: class AST extends orig.AST {
                              -            /* c8 ignore start */
                              -            constructor(type, parent, options = {}) {
                              -                super(type, parent, ext(def, options));
                              -            }
                              -            /* c8 ignore stop */
                              -            static fromGlob(pattern, options = {}) {
                              -                return orig.AST.fromGlob(pattern, ext(def, options));
                              -            }
                              -        },
                              -        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),
                              -        escape: (s, options = {}) => orig.escape(s, ext(def, options)),
                              -        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),
                              -        defaults: (options) => orig.defaults(ext(def, options)),
                              -        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),
                              -        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),
                              -        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),
                              -        sep: orig.sep,
                              -        GLOBSTAR: exports.GLOBSTAR,
                              -    });
                              -};
                              -exports.defaults = defaults;
                              -exports.minimatch.defaults = exports.defaults;
                              -// Brace expansion:
                              -// a{b,c}d -> abd acd
                              -// a{b,}c -> abc ac
                              -// a{0..3}d -> a0d a1d a2d a3d
                              -// a{b,c{d,e}f}g -> abg acdfg acefg
                              -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
                              -//
                              -// Invalid sets are not expanded.
                              -// a{2..}b -> a{2..}b
                              -// a{b}c -> a{b}c
                              -const braceExpand = (pattern, options = {}) => {
                              -    (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
                              -    // Thanks to Yeting Li  for
                              -    // improving this regexp to avoid a ReDOS vulnerability.
                              -    if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
                              -        // shortcut. no need to expand.
                              -        return [pattern];
                              -    }
                              -    return (0, brace_expansion_1.default)(pattern);
                              -};
                              -exports.braceExpand = braceExpand;
                              -exports.minimatch.braceExpand = exports.braceExpand;
                              -// parse a component of the expanded set.
                              -// At this point, no pattern may contain "/" in it
                              -// so we're going to return a 2d array, where each entry is the full
                              -// pattern, split on '/', and then turned into a regular expression.
                              -// A regexp is made at the end which joins each array with an
                              -// escaped /, and another full one which joins each regexp with |.
                              -//
                              -// Following the lead of Bash 4.1, note that "**" only has special meaning
                              -// when it is the *only* thing in a path portion.  Otherwise, any series
                              -// of * is equivalent to a single *.  Globstar behavior is enabled by
                              -// default, and can be disabled by setting options.noglobstar.
                              -const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();
                              -exports.makeRe = makeRe;
                              -exports.minimatch.makeRe = exports.makeRe;
                              -const match = (list, pattern, options = {}) => {
                              -    const mm = new Minimatch(pattern, options);
                              -    list = list.filter(f => mm.match(f));
                              -    if (mm.options.nonull && !list.length) {
                              -        list.push(pattern);
                              -    }
                              -    return list;
                              -};
                              -exports.match = match;
                              -exports.minimatch.match = exports.match;
                              -// replace stuff like \* with *
                              -const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
                              -const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -class Minimatch {
                              -    options;
                              -    set;
                              -    pattern;
                              -    windowsPathsNoEscape;
                              -    nonegate;
                              -    negate;
                              -    comment;
                              -    empty;
                              -    preserveMultipleSlashes;
                              -    partial;
                              -    globSet;
                              -    globParts;
                              -    nocase;
                              -    isWindows;
                              -    platform;
                              -    windowsNoMagicRoot;
                              -    regexp;
                              -    constructor(pattern, options = {}) {
                              -        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
                              -        options = options || {};
                              -        this.options = options;
                              -        this.pattern = pattern;
                              -        this.platform = options.platform || defaultPlatform;
                              -        this.isWindows = this.platform === 'win32';
                              -        this.windowsPathsNoEscape =
                              -            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
                              -        if (this.windowsPathsNoEscape) {
                              -            this.pattern = this.pattern.replace(/\\/g, '/');
                              -        }
                              -        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;
                              -        this.regexp = null;
                              -        this.negate = false;
                              -        this.nonegate = !!options.nonegate;
                              -        this.comment = false;
                              -        this.empty = false;
                              -        this.partial = !!options.partial;
                              -        this.nocase = !!this.options.nocase;
                              -        this.windowsNoMagicRoot =
                              -            options.windowsNoMagicRoot !== undefined
                              -                ? options.windowsNoMagicRoot
                              -                : !!(this.isWindows && this.nocase);
                              -        this.globSet = [];
                              -        this.globParts = [];
                              -        this.set = [];
                              -        // make the set of regexps etc.
                              -        this.make();
                              -    }
                              -    hasMagic() {
                              -        if (this.options.magicalBraces && this.set.length > 1) {
                              -            return true;
                              -        }
                              -        for (const pattern of this.set) {
                              -            for (const part of pattern) {
                              -                if (typeof part !== 'string')
                              -                    return true;
                              -            }
                              -        }
                              -        return false;
                              -    }
                              -    debug(..._) { }
                              -    make() {
                              -        const pattern = this.pattern;
                              -        const options = this.options;
                              -        // empty patterns and comments match nothing.
                              -        if (!options.nocomment && pattern.charAt(0) === '#') {
                              -            this.comment = true;
                              -            return;
                              -        }
                              -        if (!pattern) {
                              -            this.empty = true;
                              -            return;
                              -        }
                              -        // step 1: figure out negation, etc.
                              -        this.parseNegate();
                              -        // step 2: expand braces
                              -        this.globSet = [...new Set(this.braceExpand())];
                              -        if (options.debug) {
                              -            this.debug = (...args) => console.error(...args);
                              -        }
                              -        this.debug(this.pattern, this.globSet);
                              -        // step 3: now we have a set, so turn each one into a series of
                              -        // path-portion matching patterns.
                              -        // These will be regexps, except in the case of "**", which is
                              -        // set to the GLOBSTAR object for globstar behavior,
                              -        // and will not contain any / characters
                              -        //
                              -        // First, we preprocess to make the glob pattern sets a bit simpler
                              -        // and deduped.  There are some perf-killing patterns that can cause
                              -        // problems with a glob walk, but we can simplify them down a bit.
                              -        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));
                              -        this.globParts = this.preprocess(rawGlobParts);
                              -        this.debug(this.pattern, this.globParts);
                              -        // glob --> regexps
                              -        let set = this.globParts.map((s, _, __) => {
                              -            if (this.isWindows && this.windowsNoMagicRoot) {
                              -                // check if it's a drive or unc path.
                              -                const isUNC = s[0] === '' &&
                              -                    s[1] === '' &&
                              -                    (s[2] === '?' || !globMagic.test(s[2])) &&
                              -                    !globMagic.test(s[3]);
                              -                const isDrive = /^[a-z]:/i.test(s[0]);
                              -                if (isUNC) {
                              -                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];
                              -                }
                              -                else if (isDrive) {
                              -                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];
                              -                }
                              -            }
                              -            return s.map(ss => this.parse(ss));
                              -        });
                              -        this.debug(this.pattern, set);
                              -        // filter out everything that didn't compile properly.
                              -        this.set = set.filter(s => s.indexOf(false) === -1);
                              -        // do not treat the ? in UNC paths as magic
                              -        if (this.isWindows) {
                              -            for (let i = 0; i < this.set.length; i++) {
                              -                const p = this.set[i];
                              -                if (p[0] === '' &&
                              -                    p[1] === '' &&
                              -                    this.globParts[i][2] === '?' &&
                              -                    typeof p[3] === 'string' &&
                              -                    /^[a-z]:$/i.test(p[3])) {
                              -                    p[2] = '?';
                              -                }
                              -            }
                              -        }
                              -        this.debug(this.pattern, this.set);
                              -    }
                              -    // various transforms to equivalent pattern sets that are
                              -    // faster to process in a filesystem walk.  The goal is to
                              -    // eliminate what we can, and push all ** patterns as far
                              -    // to the right as possible, even if it increases the number
                              -    // of patterns that we have to process.
                              -    preprocess(globParts) {
                              -        // if we're not in globstar mode, then turn all ** into *
                              -        if (this.options.noglobstar) {
                              -            for (let i = 0; i < globParts.length; i++) {
                              -                for (let j = 0; j < globParts[i].length; j++) {
                              -                    if (globParts[i][j] === '**') {
                              -                        globParts[i][j] = '*';
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        const { optimizationLevel = 1 } = this.options;
                              -        if (optimizationLevel >= 2) {
                              -            // aggressive optimization for the purpose of fs walking
                              -            globParts = this.firstPhasePreProcess(globParts);
                              -            globParts = this.secondPhasePreProcess(globParts);
                              -        }
                              -        else if (optimizationLevel >= 1) {
                              -            // just basic optimizations to remove some .. parts
                              -            globParts = this.levelOneOptimize(globParts);
                              -        }
                              -        else {
                              -            globParts = this.adjascentGlobstarOptimize(globParts);
                              -        }
                              -        return globParts;
                              -    }
                              -    // just get rid of adjascent ** portions
                              -    adjascentGlobstarOptimize(globParts) {
                              -        return globParts.map(parts => {
                              -            let gs = -1;
                              -            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {
                              -                let i = gs;
                              -                while (parts[i + 1] === '**') {
                              -                    i++;
                              -                }
                              -                if (i !== gs) {
                              -                    parts.splice(gs, i - gs);
                              -                }
                              -            }
                              -            return parts;
                              -        });
                              -    }
                              -    // get rid of adjascent ** and resolve .. portions
                              -    levelOneOptimize(globParts) {
                              -        return globParts.map(parts => {
                              -            parts = parts.reduce((set, part) => {
                              -                const prev = set[set.length - 1];
                              -                if (part === '**' && prev === '**') {
                              -                    return set;
                              -                }
                              -                if (part === '..') {
                              -                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {
                              -                        set.pop();
                              -                        return set;
                              -                    }
                              -                }
                              -                set.push(part);
                              -                return set;
                              -            }, []);
                              -            return parts.length === 0 ? [''] : parts;
                              -        });
                              -    }
                              -    levelTwoFileOptimize(parts) {
                              -        if (!Array.isArray(parts)) {
                              -            parts = this.slashSplit(parts);
                              -        }
                              -        let didSomething = false;
                              -        do {
                              -            didSomething = false;
                              -            // 
                              // -> 
                              /
                              -            if (!this.preserveMultipleSlashes) {
                              -                for (let i = 1; i < parts.length - 1; i++) {
                              -                    const p = parts[i];
                              -                    // don't squeeze out UNC patterns
                              -                    if (i === 1 && p === '' && parts[0] === '')
                              -                        continue;
                              -                    if (p === '.' || p === '') {
                              -                        didSomething = true;
                              -                        parts.splice(i, 1);
                              -                        i--;
                              -                    }
                              -                }
                              -                if (parts[0] === '.' &&
                              -                    parts.length === 2 &&
                              -                    (parts[1] === '.' || parts[1] === '')) {
                              -                    didSomething = true;
                              -                    parts.pop();
                              -                }
                              -            }
                              -            // 
                              /

                              /../ ->

                              /
                              -            let dd = 0;
                              -            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
                              -                const p = parts[dd - 1];
                              -                if (p && p !== '.' && p !== '..' && p !== '**') {
                              -                    didSomething = true;
                              -                    parts.splice(dd - 1, 2);
                              -                    dd -= 2;
                              -                }
                              -            }
                              -        } while (didSomething);
                              -        return parts.length === 0 ? [''] : parts;
                              -    }
                              -    // First phase: single-pattern processing
                              -    // 
                               is 1 or more portions
                              -    //  is 1 or more portions
                              -    // 

                              is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

                              /**/../

                              /

                              / -> {

                              /../

                              /

                              /,

                              /**/

                              /

                              /} - //

                              // -> 
                              /
                              -    // 
                              /

                              /../ ->

                              /
                              -    // **/**/ -> **/
                              -    //
                              -    // **/*/ -> */**/ <== not valid because ** doesn't follow
                              -    // this WOULD be allowed if ** did follow symlinks, or * didn't
                              -    firstPhasePreProcess(globParts) {
                              -        let didSomething = false;
                              -        do {
                              -            didSomething = false;
                              -            // 
                              /**/../

                              /

                              / -> {

                              /../

                              /

                              /,

                              /**/

                              /

                              /} - for (let parts of globParts) { - let gs = -1; - while (-1 !== (gs = parts.indexOf('**', gs + 1))) { - let gss = gs; - while (parts[gss + 1] === '**') { - //

                              /**/**/ -> 
                              /**/
                              -                        gss++;
                              -                    }
                              -                    // eg, if gs is 2 and gss is 4, that means we have 3 **
                              -                    // parts, and can remove 2 of them.
                              -                    if (gss > gs) {
                              -                        parts.splice(gs + 1, gss - gs);
                              -                    }
                              -                    let next = parts[gs + 1];
                              -                    const p = parts[gs + 2];
                              -                    const p2 = parts[gs + 3];
                              -                    if (next !== '..')
                              -                        continue;
                              -                    if (!p ||
                              -                        p === '.' ||
                              -                        p === '..' ||
                              -                        !p2 ||
                              -                        p2 === '.' ||
                              -                        p2 === '..') {
                              -                        continue;
                              -                    }
                              -                    didSomething = true;
                              -                    // edit parts in place, and push the new one
                              -                    parts.splice(gs, 1);
                              -                    const other = parts.slice(0);
                              -                    other[gs] = '**';
                              -                    globParts.push(other);
                              -                    gs--;
                              -                }
                              -                // 
                              // -> 
                              /
                              -                if (!this.preserveMultipleSlashes) {
                              -                    for (let i = 1; i < parts.length - 1; i++) {
                              -                        const p = parts[i];
                              -                        // don't squeeze out UNC patterns
                              -                        if (i === 1 && p === '' && parts[0] === '')
                              -                            continue;
                              -                        if (p === '.' || p === '') {
                              -                            didSomething = true;
                              -                            parts.splice(i, 1);
                              -                            i--;
                              -                        }
                              -                    }
                              -                    if (parts[0] === '.' &&
                              -                        parts.length === 2 &&
                              -                        (parts[1] === '.' || parts[1] === '')) {
                              -                        didSomething = true;
                              -                        parts.pop();
                              -                    }
                              -                }
                              -                // 
                              /

                              /../ ->

                              /
                              -                let dd = 0;
                              -                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
                              -                    const p = parts[dd - 1];
                              -                    if (p && p !== '.' && p !== '..' && p !== '**') {
                              -                        didSomething = true;
                              -                        const needDot = dd === 1 && parts[dd + 1] === '**';
                              -                        const splin = needDot ? ['.'] : [];
                              -                        parts.splice(dd - 1, 2, ...splin);
                              -                        if (parts.length === 0)
                              -                            parts.push('');
                              -                        dd -= 2;
                              -                    }
                              -                }
                              -            }
                              -        } while (didSomething);
                              -        return globParts;
                              -    }
                              -    // second phase: multi-pattern dedupes
                              -    // {
                              /*/,
                              /

                              /} ->

                              /*/
                              -    // {
                              /,
                              /} -> 
                              /
                              -    // {
                              /**/,
                              /} -> 
                              /**/
                              -    //
                              -    // {
                              /**/,
                              /**/

                              /} ->

                              /**/
                              -    // ^-- not valid because ** doens't follow symlinks
                              -    secondPhasePreProcess(globParts) {
                              -        for (let i = 0; i < globParts.length - 1; i++) {
                              -            for (let j = i + 1; j < globParts.length; j++) {
                              -                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
                              -                if (!matched)
                              -                    continue;
                              -                globParts[i] = matched;
                              -                globParts[j] = [];
                              -            }
                              -        }
                              -        return globParts.filter(gs => gs.length);
                              -    }
                              -    partsMatch(a, b, emptyGSMatch = false) {
                              -        let ai = 0;
                              -        let bi = 0;
                              -        let result = [];
                              -        let which = '';
                              -        while (ai < a.length && bi < b.length) {
                              -            if (a[ai] === b[bi]) {
                              -                result.push(which === 'b' ? b[bi] : a[ai]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {
                              -                result.push(a[ai]);
                              -                ai++;
                              -            }
                              -            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {
                              -                result.push(b[bi]);
                              -                bi++;
                              -            }
                              -            else if (a[ai] === '*' &&
                              -                b[bi] &&
                              -                (this.options.dot || !b[bi].startsWith('.')) &&
                              -                b[bi] !== '**') {
                              -                if (which === 'b')
                              -                    return false;
                              -                which = 'a';
                              -                result.push(a[ai]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else if (b[bi] === '*' &&
                              -                a[ai] &&
                              -                (this.options.dot || !a[ai].startsWith('.')) &&
                              -                a[ai] !== '**') {
                              -                if (which === 'a')
                              -                    return false;
                              -                which = 'b';
                              -                result.push(b[bi]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else {
                              -                return false;
                              -            }
                              -        }
                              -        // if we fall out of the loop, it means they two are identical
                              -        // as long as their lengths match
                              -        return a.length === b.length && result;
                              -    }
                              -    parseNegate() {
                              -        if (this.nonegate)
                              -            return;
                              -        const pattern = this.pattern;
                              -        let negate = false;
                              -        let negateOffset = 0;
                              -        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {
                              -            negate = !negate;
                              -            negateOffset++;
                              -        }
                              -        if (negateOffset)
                              -            this.pattern = pattern.slice(negateOffset);
                              -        this.negate = negate;
                              -    }
                              -    // set partial to true to test if, for example,
                              -    // "/a/b" matches the start of "/*/b/*/d"
                              -    // Partial means, if you run out of file before you run
                              -    // out of pattern, then that's fine, as long as all
                              -    // the parts match.
                              -    matchOne(file, pattern, partial = false) {
                              -        const options = this.options;
                              -        // UNC paths like //?/X:/... can match X:/... and vice versa
                              -        // Drive letters in absolute drive or unc paths are always compared
                              -        // case-insensitively.
                              -        if (this.isWindows) {
                              -            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);
                              -            const fileUNC = !fileDrive &&
                              -                file[0] === '' &&
                              -                file[1] === '' &&
                              -                file[2] === '?' &&
                              -                /^[a-z]:$/i.test(file[3]);
                              -            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);
                              -            const patternUNC = !patternDrive &&
                              -                pattern[0] === '' &&
                              -                pattern[1] === '' &&
                              -                pattern[2] === '?' &&
                              -                typeof pattern[3] === 'string' &&
                              -                /^[a-z]:$/i.test(pattern[3]);
                              -            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;
                              -            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;
                              -            if (typeof fdi === 'number' && typeof pdi === 'number') {
                              -                const [fd, pd] = [file[fdi], pattern[pdi]];
                              -                if (fd.toLowerCase() === pd.toLowerCase()) {
                              -                    pattern[pdi] = fd;
                              -                    if (pdi > fdi) {
                              -                        pattern = pattern.slice(pdi);
                              -                    }
                              -                    else if (fdi > pdi) {
                              -                        file = file.slice(fdi);
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        // resolve and reduce . and .. portions in the file as well.
                              -        // dont' need to do the second phase, because it's only one string[]
                              -        const { optimizationLevel = 1 } = this.options;
                              -        if (optimizationLevel >= 2) {
                              -            file = this.levelTwoFileOptimize(file);
                              -        }
                              -        this.debug('matchOne', this, { file, pattern });
                              -        this.debug('matchOne', file.length, pattern.length);
                              -        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
                              -            this.debug('matchOne loop');
                              -            var p = pattern[pi];
                              -            var f = file[fi];
                              -            this.debug(pattern, p, f);
                              -            // should be impossible.
                              -            // some invalid regexp stuff in the set.
                              -            /* c8 ignore start */
                              -            if (p === false) {
                              -                return false;
                              -            }
                              -            /* c8 ignore stop */
                              -            if (p === exports.GLOBSTAR) {
                              -                this.debug('GLOBSTAR', [pattern, p, f]);
                              -                // "**"
                              -                // a/**/b/**/c would match the following:
                              -                // a/b/x/y/z/c
                              -                // a/x/y/z/b/c
                              -                // a/b/x/b/x/c
                              -                // a/b/c
                              -                // To do this, take the rest of the pattern after
                              -                // the **, and see if it would match the file remainder.
                              -                // If so, return success.
                              -                // If not, the ** "swallows" a segment, and try again.
                              -                // This is recursively awful.
                              -                //
                              -                // a/**/b/**/c matching a/b/x/y/z/c
                              -                // - a matches a
                              -                // - doublestar
                              -                //   - matchOne(b/x/y/z/c, b/**/c)
                              -                //     - b matches b
                              -                //     - doublestar
                              -                //       - matchOne(x/y/z/c, c) -> no
                              -                //       - matchOne(y/z/c, c) -> no
                              -                //       - matchOne(z/c, c) -> no
                              -                //       - matchOne(c, c) yes, hit
                              -                var fr = fi;
                              -                var pr = pi + 1;
                              -                if (pr === pl) {
                              -                    this.debug('** at the end');
                              -                    // a ** at the end will just swallow the rest.
                              -                    // We have found a match.
                              -                    // however, it will not swallow /.x, unless
                              -                    // options.dot is set.
                              -                    // . and .. are *never* matched by **, for explosively
                              -                    // exponential reasons.
                              -                    for (; fi < fl; fi++) {
                              -                        if (file[fi] === '.' ||
                              -                            file[fi] === '..' ||
                              -                            (!options.dot && file[fi].charAt(0) === '.'))
                              -                            return false;
                              -                    }
                              -                    return true;
                              -                }
                              -                // ok, let's see if we can swallow whatever we can.
                              -                while (fr < fl) {
                              -                    var swallowee = file[fr];
                              -                    this.debug('\nglobstar while', file, fr, pattern, pr, swallowee);
                              -                    // XXX remove this slice.  Just pass the start index.
                              -                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
                              -                        this.debug('globstar found match!', fr, fl, swallowee);
                              -                        // found a match.
                              -                        return true;
                              -                    }
                              -                    else {
                              -                        // can't swallow "." or ".." ever.
                              -                        // can only swallow ".foo" when explicitly asked.
                              -                        if (swallowee === '.' ||
                              -                            swallowee === '..' ||
                              -                            (!options.dot && swallowee.charAt(0) === '.')) {
                              -                            this.debug('dot detected!', file, fr, pattern, pr);
                              -                            break;
                              -                        }
                              -                        // ** swallows a segment, and continue.
                              -                        this.debug('globstar swallow a segment, and continue');
                              -                        fr++;
                              -                    }
                              -                }
                              -                // no match was found.
                              -                // However, in partial mode, we can't say this is necessarily over.
                              -                /* c8 ignore start */
                              -                if (partial) {
                              -                    // ran out of file
                              -                    this.debug('\n>>> no match, partial?', file, fr, pattern, pr);
                              -                    if (fr === fl) {
                              -                        return true;
                              -                    }
                              -                }
                              -                /* c8 ignore stop */
                              -                return false;
                              -            }
                              -            // something other than **
                              -            // non-magic patterns just have to match exactly
                              -            // patterns with magic have been turned into regexps.
                              -            let hit;
                              -            if (typeof p === 'string') {
                              -                hit = f === p;
                              -                this.debug('string match', p, f, hit);
                              -            }
                              -            else {
                              -                hit = p.test(f);
                              -                this.debug('pattern match', p, f, hit);
                              -            }
                              -            if (!hit)
                              -                return false;
                              -        }
                              -        // Note: ending in / means that we'll get a final ""
                              -        // at the end of the pattern.  This can only match a
                              -        // corresponding "" at the end of the file.
                              -        // If the file ends in /, then it can only match a
                              -        // a pattern that ends in /, unless the pattern just
                              -        // doesn't have any more for it. But, a/b/ should *not*
                              -        // match "a/b/*", even though "" matches against the
                              -        // [^/]*? pattern, except in partial mode, where it might
                              -        // simply not be reached yet.
                              -        // However, a/b/ should still satisfy a/*
                              -        // now either we fell off the end of the pattern, or we're done.
                              -        if (fi === fl && pi === pl) {
                              -            // ran out of pattern and filename at the same time.
                              -            // an exact hit!
                              -            return true;
                              -        }
                              -        else if (fi === fl) {
                              -            // ran out of file, but still had pattern left.
                              -            // this is ok if we're doing the match as part of
                              -            // a glob fs traversal.
                              -            return partial;
                              -        }
                              -        else if (pi === pl) {
                              -            // ran out of pattern, still have file left.
                              -            // this is only acceptable if we're on the very last
                              -            // empty segment of a file with a trailing slash.
                              -            // a/* should match a/b/
                              -            return fi === fl - 1 && file[fi] === '';
                              -            /* c8 ignore start */
                              -        }
                              -        else {
                              -            // should be unreachable.
                              -            throw new Error('wtf?');
                              -        }
                              -        /* c8 ignore stop */
                              -    }
                              -    braceExpand() {
                              -        return (0, exports.braceExpand)(this.pattern, this.options);
                              -    }
                              -    parse(pattern) {
                              -        (0, assert_valid_pattern_js_1.assertValidPattern)(pattern);
                              -        const options = this.options;
                              -        // shortcuts
                              -        if (pattern === '**')
                              -            return exports.GLOBSTAR;
                              -        if (pattern === '')
                              -            return '';
                              -        // far and away, the most common glob pattern parts are
                              -        // *, *.*, and *.  Add a fast check method for those.
                              -        let m;
                              -        let fastTest = null;
                              -        if ((m = pattern.match(starRE))) {
                              -            fastTest = options.dot ? starTestDot : starTest;
                              -        }
                              -        else if ((m = pattern.match(starDotExtRE))) {
                              -            fastTest = (options.nocase
                              -                ? options.dot
                              -                    ? starDotExtTestNocaseDot
                              -                    : starDotExtTestNocase
                              -                : options.dot
                              -                    ? starDotExtTestDot
                              -                    : starDotExtTest)(m[1]);
                              -        }
                              -        else if ((m = pattern.match(qmarksRE))) {
                              -            fastTest = (options.nocase
                              -                ? options.dot
                              -                    ? qmarksTestNocaseDot
                              -                    : qmarksTestNocase
                              -                : options.dot
                              -                    ? qmarksTestDot
                              -                    : qmarksTest)(m);
                              -        }
                              -        else if ((m = pattern.match(starDotStarRE))) {
                              -            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
                              -        }
                              -        else if ((m = pattern.match(dotStarRE))) {
                              -            fastTest = dotStarTest;
                              -        }
                              -        const re = ast_js_1.AST.fromGlob(pattern, this.options).toMMPattern();
                              -        return fastTest ? Object.assign(re, { test: fastTest }) : re;
                              -    }
                              -    makeRe() {
                              -        if (this.regexp || this.regexp === false)
                              -            return this.regexp;
                              -        // at this point, this.set is a 2d array of partial
                              -        // pattern strings, or "**".
                              -        //
                              -        // It's better to use .match().  This function shouldn't
                              -        // be used, really, but it's pretty convenient sometimes,
                              -        // when you just want to work with a regex.
                              -        const set = this.set;
                              -        if (!set.length) {
                              -            this.regexp = false;
                              -            return this.regexp;
                              -        }
                              -        const options = this.options;
                              -        const twoStar = options.noglobstar
                              -            ? star
                              -            : options.dot
                              -                ? twoStarDot
                              -                : twoStarNoDot;
                              -        const flags = new Set(options.nocase ? ['i'] : []);
                              -        // regexpify non-globstar patterns
                              -        // if ** is only item, then we just do one twoStar
                              -        // if ** is first, and there are more, prepend (\/|twoStar\/)? to next
                              -        // if ** is last, append (\/twoStar|) to previous
                              -        // if ** is in the middle, append (\/|\/twoStar\/) to previous
                              -        // then filter out GLOBSTAR symbols
                              -        let re = set
                              -            .map(pattern => {
                              -            const pp = pattern.map(p => {
                              -                if (p instanceof RegExp) {
                              -                    for (const f of p.flags.split(''))
                              -                        flags.add(f);
                              -                }
                              -                return typeof p === 'string'
                              -                    ? regExpEscape(p)
                              -                    : p === exports.GLOBSTAR
                              -                        ? exports.GLOBSTAR
                              -                        : p._src;
                              -            });
                              -            pp.forEach((p, i) => {
                              -                const next = pp[i + 1];
                              -                const prev = pp[i - 1];
                              -                if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {
                              -                    return;
                              -                }
                              -                if (prev === undefined) {
                              -                    if (next !== undefined && next !== exports.GLOBSTAR) {
                              -                        pp[i + 1] = '(?:\\/|' + twoStar + '\\/)?' + next;
                              -                    }
                              -                    else {
                              -                        pp[i] = twoStar;
                              -                    }
                              -                }
                              -                else if (next === undefined) {
                              -                    pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?';
                              -                }
                              -                else if (next !== exports.GLOBSTAR) {
                              -                    pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
                              -                    pp[i + 1] = exports.GLOBSTAR;
                              -                }
                              -            });
                              -            return pp.filter(p => p !== exports.GLOBSTAR).join('/');
                              -        })
                              -            .join('|');
                              -        // need to wrap in parens if we had more than one thing with |,
                              -        // otherwise only the first will be anchored to ^ and the last to $
                              -        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];
                              -        // must match entire pattern
                              -        // ending in a * or ** will make it less strict.
                              -        re = '^' + open + re + close + '$';
                              -        // can match anything, as long as it's not this.
                              -        if (this.negate)
                              -            re = '^(?!' + re + ').+$';
                              -        try {
                              -            this.regexp = new RegExp(re, [...flags].join(''));
                              -            /* c8 ignore start */
                              -        }
                              -        catch (ex) {
                              -            // should be impossible
                              -            this.regexp = false;
                              -        }
                              -        /* c8 ignore stop */
                              -        return this.regexp;
                              -    }
                              -    slashSplit(p) {
                              -        // if p starts with // on windows, we preserve that
                              -        // so that UNC paths aren't broken.  Otherwise, any number of
                              -        // / characters are coalesced into one, unless
                              -        // preserveMultipleSlashes is set to true.
                              -        if (this.preserveMultipleSlashes) {
                              -            return p.split('/');
                              -        }
                              -        else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
                              -            // add an extra '' for the one we lose
                              -            return ['', ...p.split(/\/+/)];
                              -        }
                              -        else {
                              -            return p.split(/\/+/);
                              -        }
                              -    }
                              -    match(f, partial = this.partial) {
                              -        this.debug('match', f, this.pattern);
                              -        // short-circuit in the case of busted things.
                              -        // comments, etc.
                              -        if (this.comment) {
                              -            return false;
                              -        }
                              -        if (this.empty) {
                              -            return f === '';
                              -        }
                              -        if (f === '/' && partial) {
                              -            return true;
                              -        }
                              -        const options = this.options;
                              -        // windows: need to use /, not \
                              -        if (this.isWindows) {
                              -            f = f.split('\\').join('/');
                              -        }
                              -        // treat the test path as a set of pathparts.
                              -        const ff = this.slashSplit(f);
                              -        this.debug(this.pattern, 'split', ff);
                              -        // just ONE of the pattern sets in this.set needs to match
                              -        // in order for it to be valid.  If negating, then just one
                              -        // match means that we have failed.
                              -        // Either way, return on the first hit.
                              -        const set = this.set;
                              -        this.debug(this.pattern, 'set', set);
                              -        // Find the basename of the path by looking for the last non-empty segment
                              -        let filename = ff[ff.length - 1];
                              -        if (!filename) {
                              -            for (let i = ff.length - 2; !filename && i >= 0; i--) {
                              -                filename = ff[i];
                              -            }
                              -        }
                              -        for (let i = 0; i < set.length; i++) {
                              -            const pattern = set[i];
                              -            let file = ff;
                              -            if (options.matchBase && pattern.length === 1) {
                              -                file = [filename];
                              -            }
                              -            const hit = this.matchOne(file, pattern, partial);
                              -            if (hit) {
                              -                if (options.flipNegate) {
                              -                    return true;
                              -                }
                              -                return !this.negate;
                              -            }
                              -        }
                              -        // didn't get any hits.  this is success if it's a negative
                              -        // pattern, failure otherwise.
                              -        if (options.flipNegate) {
                              -            return false;
                              -        }
                              -        return this.negate;
                              -    }
                              -    static defaults(def) {
                              -        return exports.minimatch.defaults(def).Minimatch;
                              -    }
                              -}
                              -exports.Minimatch = Minimatch;
                              -/* c8 ignore start */
                              -var ast_js_2 = require("./ast.js");
                              -Object.defineProperty(exports, "AST", { enumerable: true, get: function () { return ast_js_2.AST; } });
                              -var escape_js_2 = require("./escape.js");
                              -Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return escape_js_2.escape; } });
                              -var unescape_js_2 = require("./unescape.js");
                              -Object.defineProperty(exports, "unescape", { enumerable: true, get: function () { return unescape_js_2.unescape; } });
                              -/* c8 ignore stop */
                              -exports.minimatch.AST = ast_js_1.AST;
                              -exports.minimatch.Minimatch = Minimatch;
                              -exports.minimatch.escape = escape_js_1.escape;
                              -exports.minimatch.unescape = unescape_js_1.unescape;
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/package.json
                              deleted file mode 100644
                              index 5bbefffbabee39..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/package.json
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -{
                              -  "type": "commonjs"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js
                              deleted file mode 100644
                              index 47c36bcee5a02a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/cjs/unescape.js
                              +++ /dev/null
                              @@ -1,24 +0,0 @@
                              -"use strict";
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.unescape = void 0;
                              -/**
                              - * Un-escape a string that has been escaped with {@link escape}.
                              - *
                              - * If the {@link windowsPathsNoEscape} option is used, then square-brace
                              - * escapes are removed, but not backslash escapes.  For example, it will turn
                              - * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
                              - * becuase `\` is a path separator in `windowsPathsNoEscape` mode.
                              - *
                              - * When `windowsPathsNoEscape` is not set, then both brace escapes and
                              - * backslash escapes are removed.
                              - *
                              - * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
                              - * or unescaped.
                              - */
                              -const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
                              -    return windowsPathsNoEscape
                              -        ? s.replace(/\[([^\/\\])\]/g, '$1')
                              -        : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
                              -};
                              -exports.unescape = unescape;
                              -//# sourceMappingURL=unescape.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js
                              deleted file mode 100644
                              index 7b534fc30200bb..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/assert-valid-pattern.js
                              +++ /dev/null
                              @@ -1,10 +0,0 @@
                              -const MAX_PATTERN_LENGTH = 1024 * 64;
                              -export const assertValidPattern = (pattern) => {
                              -    if (typeof pattern !== 'string') {
                              -        throw new TypeError('invalid pattern');
                              -    }
                              -    if (pattern.length > MAX_PATTERN_LENGTH) {
                              -        throw new TypeError('pattern is too long');
                              -    }
                              -};
                              -//# sourceMappingURL=assert-valid-pattern.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js
                              deleted file mode 100644
                              index 7fb1f83e6182a0..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/ast.js
                              +++ /dev/null
                              @@ -1,585 +0,0 @@
                              -// parse a single path portion
                              -import { parseClass } from './brace-expressions.js';
                              -import { unescape } from './unescape.js';
                              -const types = new Set(['!', '?', '+', '*', '@']);
                              -const isExtglobType = (c) => types.has(c);
                              -// Patterns that get prepended to bind to the start of either the
                              -// entire string, or just a single path portion, to prevent dots
                              -// and/or traversal patterns, when needed.
                              -// Exts don't need the ^ or / bit, because the root binds that already.
                              -const startNoTraversal = '(?!(?:^|/)\\.\\.?(?:$|/))';
                              -const startNoDot = '(?!\\.)';
                              -// characters that indicate a start of pattern needs the "no dots" bit,
                              -// because a dot *might* be matched. ( is not in the list, because in
                              -// the case of a child extglob, it will handle the prevention itself.
                              -const addPatternStart = new Set(['[', '.']);
                              -// cases where traversal is A-OK, no dot prevention needed
                              -const justDots = new Set(['..', '.']);
                              -const reSpecials = new Set('().*{}+?[]^$\\!');
                              -const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -// any single thing other than /
                              -const qmark = '[^/]';
                              -// * => any number of characters
                              -const star = qmark + '*?';
                              -// use + when we need to ensure that *something* matches, because the * is
                              -// the only thing in the path portion.
                              -const starNoEmpty = qmark + '+?';
                              -// remove the \ chars that we added if we end up doing a nonmagic compare
                              -// const deslash = (s: string) => s.replace(/\\(.)/g, '$1')
                              -export class AST {
                              -    type;
                              -    #root;
                              -    #hasMagic;
                              -    #uflag = false;
                              -    #parts = [];
                              -    #parent;
                              -    #parentIndex;
                              -    #negs;
                              -    #filledNegs = false;
                              -    #options;
                              -    #toString;
                              -    // set to true if it's an extglob with no children
                              -    // (which really means one child of '')
                              -    #emptyExt = false;
                              -    constructor(type, parent, options = {}) {
                              -        this.type = type;
                              -        // extglobs are inherently magical
                              -        if (type)
                              -            this.#hasMagic = true;
                              -        this.#parent = parent;
                              -        this.#root = this.#parent ? this.#parent.#root : this;
                              -        this.#options = this.#root === this ? options : this.#root.#options;
                              -        this.#negs = this.#root === this ? [] : this.#root.#negs;
                              -        if (type === '!' && !this.#root.#filledNegs)
                              -            this.#negs.push(this);
                              -        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;
                              -    }
                              -    get hasMagic() {
                              -        /* c8 ignore start */
                              -        if (this.#hasMagic !== undefined)
                              -            return this.#hasMagic;
                              -        /* c8 ignore stop */
                              -        for (const p of this.#parts) {
                              -            if (typeof p === 'string')
                              -                continue;
                              -            if (p.type || p.hasMagic)
                              -                return (this.#hasMagic = true);
                              -        }
                              -        // note: will be undefined until we generate the regexp src and find out
                              -        return this.#hasMagic;
                              -    }
                              -    // reconstructs the pattern
                              -    toString() {
                              -        if (this.#toString !== undefined)
                              -            return this.#toString;
                              -        if (!this.type) {
                              -            return (this.#toString = this.#parts.map(p => String(p)).join(''));
                              -        }
                              -        else {
                              -            return (this.#toString =
                              -                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');
                              -        }
                              -    }
                              -    #fillNegs() {
                              -        /* c8 ignore start */
                              -        if (this !== this.#root)
                              -            throw new Error('should only call on root');
                              -        if (this.#filledNegs)
                              -            return this;
                              -        /* c8 ignore stop */
                              -        // call toString() once to fill this out
                              -        this.toString();
                              -        this.#filledNegs = true;
                              -        let n;
                              -        while ((n = this.#negs.pop())) {
                              -            if (n.type !== '!')
                              -                continue;
                              -            // walk up the tree, appending everthing that comes AFTER parentIndex
                              -            let p = n;
                              -            let pp = p.#parent;
                              -            while (pp) {
                              -                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {
                              -                    for (const part of n.#parts) {
                              -                        /* c8 ignore start */
                              -                        if (typeof part === 'string') {
                              -                            throw new Error('string part in extglob AST??');
                              -                        }
                              -                        /* c8 ignore stop */
                              -                        part.copyIn(pp.#parts[i]);
                              -                    }
                              -                }
                              -                p = pp;
                              -                pp = p.#parent;
                              -            }
                              -        }
                              -        return this;
                              -    }
                              -    push(...parts) {
                              -        for (const p of parts) {
                              -            if (p === '')
                              -                continue;
                              -            /* c8 ignore start */
                              -            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {
                              -                throw new Error('invalid part: ' + p);
                              -            }
                              -            /* c8 ignore stop */
                              -            this.#parts.push(p);
                              -        }
                              -    }
                              -    toJSON() {
                              -        const ret = this.type === null
                              -            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))
                              -            : [this.type, ...this.#parts.map(p => p.toJSON())];
                              -        if (this.isStart() && !this.type)
                              -            ret.unshift([]);
                              -        if (this.isEnd() &&
                              -            (this === this.#root ||
                              -                (this.#root.#filledNegs && this.#parent?.type === '!'))) {
                              -            ret.push({});
                              -        }
                              -        return ret;
                              -    }
                              -    isStart() {
                              -        if (this.#root === this)
                              -            return true;
                              -        // if (this.type) return !!this.#parent?.isStart()
                              -        if (!this.#parent?.isStart())
                              -            return false;
                              -        if (this.#parentIndex === 0)
                              -            return true;
                              -        // if everything AHEAD of this is a negation, then it's still the "start"
                              -        const p = this.#parent;
                              -        for (let i = 0; i < this.#parentIndex; i++) {
                              -            const pp = p.#parts[i];
                              -            if (!(pp instanceof AST && pp.type === '!')) {
                              -                return false;
                              -            }
                              -        }
                              -        return true;
                              -    }
                              -    isEnd() {
                              -        if (this.#root === this)
                              -            return true;
                              -        if (this.#parent?.type === '!')
                              -            return true;
                              -        if (!this.#parent?.isEnd())
                              -            return false;
                              -        if (!this.type)
                              -            return this.#parent?.isEnd();
                              -        // if not root, it'll always have a parent
                              -        /* c8 ignore start */
                              -        const pl = this.#parent ? this.#parent.#parts.length : 0;
                              -        /* c8 ignore stop */
                              -        return this.#parentIndex === pl - 1;
                              -    }
                              -    copyIn(part) {
                              -        if (typeof part === 'string')
                              -            this.push(part);
                              -        else
                              -            this.push(part.clone(this));
                              -    }
                              -    clone(parent) {
                              -        const c = new AST(this.type, parent);
                              -        for (const p of this.#parts) {
                              -            c.copyIn(p);
                              -        }
                              -        return c;
                              -    }
                              -    static #parseAST(str, ast, pos, opt) {
                              -        let escaping = false;
                              -        let inBrace = false;
                              -        let braceStart = -1;
                              -        let braceNeg = false;
                              -        if (ast.type === null) {
                              -            // outside of a extglob, append until we find a start
                              -            let i = pos;
                              -            let acc = '';
                              -            while (i < str.length) {
                              -                const c = str.charAt(i++);
                              -                // still accumulate escapes at this point, but we do ignore
                              -                // starts that are escaped
                              -                if (escaping || c === '\\') {
                              -                    escaping = !escaping;
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                if (inBrace) {
                              -                    if (i === braceStart + 1) {
                              -                        if (c === '^' || c === '!') {
                              -                            braceNeg = true;
                              -                        }
                              -                    }
                              -                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {
                              -                        inBrace = false;
                              -                    }
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                else if (c === '[') {
                              -                    inBrace = true;
                              -                    braceStart = i;
                              -                    braceNeg = false;
                              -                    acc += c;
                              -                    continue;
                              -                }
                              -                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {
                              -                    ast.push(acc);
                              -                    acc = '';
                              -                    const ext = new AST(c, ast);
                              -                    i = AST.#parseAST(str, ext, i, opt);
                              -                    ast.push(ext);
                              -                    continue;
                              -                }
                              -                acc += c;
                              -            }
                              -            ast.push(acc);
                              -            return i;
                              -        }
                              -        // some kind of extglob, pos is at the (
                              -        // find the next | or )
                              -        let i = pos + 1;
                              -        let part = new AST(null, ast);
                              -        const parts = [];
                              -        let acc = '';
                              -        while (i < str.length) {
                              -            const c = str.charAt(i++);
                              -            // still accumulate escapes at this point, but we do ignore
                              -            // starts that are escaped
                              -            if (escaping || c === '\\') {
                              -                escaping = !escaping;
                              -                acc += c;
                              -                continue;
                              -            }
                              -            if (inBrace) {
                              -                if (i === braceStart + 1) {
                              -                    if (c === '^' || c === '!') {
                              -                        braceNeg = true;
                              -                    }
                              -                }
                              -                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {
                              -                    inBrace = false;
                              -                }
                              -                acc += c;
                              -                continue;
                              -            }
                              -            else if (c === '[') {
                              -                inBrace = true;
                              -                braceStart = i;
                              -                braceNeg = false;
                              -                acc += c;
                              -                continue;
                              -            }
                              -            if (isExtglobType(c) && str.charAt(i) === '(') {
                              -                part.push(acc);
                              -                acc = '';
                              -                const ext = new AST(c, part);
                              -                part.push(ext);
                              -                i = AST.#parseAST(str, ext, i, opt);
                              -                continue;
                              -            }
                              -            if (c === '|') {
                              -                part.push(acc);
                              -                acc = '';
                              -                parts.push(part);
                              -                part = new AST(null, ast);
                              -                continue;
                              -            }
                              -            if (c === ')') {
                              -                if (acc === '' && ast.#parts.length === 0) {
                              -                    ast.#emptyExt = true;
                              -                }
                              -                part.push(acc);
                              -                acc = '';
                              -                ast.push(...parts, part);
                              -                return i;
                              -            }
                              -            acc += c;
                              -        }
                              -        // unfinished extglob
                              -        // if we got here, it was a malformed extglob! not an extglob, but
                              -        // maybe something else in there.
                              -        ast.type = null;
                              -        ast.#hasMagic = undefined;
                              -        ast.#parts = [str.substring(pos - 1)];
                              -        return i;
                              -    }
                              -    static fromGlob(pattern, options = {}) {
                              -        const ast = new AST(null, undefined, options);
                              -        AST.#parseAST(pattern, ast, 0, options);
                              -        return ast;
                              -    }
                              -    // returns the regular expression if there's magic, or the unescaped
                              -    // string if not.
                              -    toMMPattern() {
                              -        // should only be called on root
                              -        /* c8 ignore start */
                              -        if (this !== this.#root)
                              -            return this.#root.toMMPattern();
                              -        /* c8 ignore stop */
                              -        const glob = this.toString();
                              -        const [re, body, hasMagic, uflag] = this.toRegExpSource();
                              -        // if we're in nocase mode, and not nocaseMagicOnly, then we do
                              -        // still need a regular expression if we have to case-insensitively
                              -        // match capital/lowercase characters.
                              -        const anyMagic = hasMagic ||
                              -            this.#hasMagic ||
                              -            (this.#options.nocase &&
                              -                !this.#options.nocaseMagicOnly &&
                              -                glob.toUpperCase() !== glob.toLowerCase());
                              -        if (!anyMagic) {
                              -            return body;
                              -        }
                              -        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');
                              -        return Object.assign(new RegExp(`^${re}$`, flags), {
                              -            _src: re,
                              -            _glob: glob,
                              -        });
                              -    }
                              -    // returns the string match, the regexp source, whether there's magic
                              -    // in the regexp (so a regular expression is required) and whether or
                              -    // not the uflag is needed for the regular expression (for posix classes)
                              -    // TODO: instead of injecting the start/end at this point, just return
                              -    // the BODY of the regexp, along with the start/end portions suitable
                              -    // for binding the start/end in either a joined full-path makeRe context
                              -    // (where we bind to (^|/), or a standalone matchPart context (where
                              -    // we bind to ^, and not /).  Otherwise slashes get duped!
                              -    //
                              -    // In part-matching mode, the start is:
                              -    // - if not isStart: nothing
                              -    // - if traversal possible, but not allowed: ^(?!\.\.?$)
                              -    // - if dots allowed or not possible: ^
                              -    // - if dots possible and not allowed: ^(?!\.)
                              -    // end is:
                              -    // - if not isEnd(): nothing
                              -    // - else: $
                              -    //
                              -    // In full-path matching mode, we put the slash at the START of the
                              -    // pattern, so start is:
                              -    // - if first pattern: same as part-matching mode
                              -    // - if not isStart(): nothing
                              -    // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/))
                              -    // - if dots allowed or not possible: /
                              -    // - if dots possible and not allowed: /(?!\.)
                              -    // end is:
                              -    // - if last pattern, same as part-matching mode
                              -    // - else nothing
                              -    //
                              -    // Always put the (?:$|/) on negated tails, though, because that has to be
                              -    // there to bind the end of the negated pattern portion, and it's easier to
                              -    // just stick it in now rather than try to inject it later in the middle of
                              -    // the pattern.
                              -    //
                              -    // We can just always return the same end, and leave it up to the caller
                              -    // to know whether it's going to be used joined or in parts.
                              -    // And, if the start is adjusted slightly, can do the same there:
                              -    // - if not isStart: nothing
                              -    // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$)
                              -    // - if dots allowed or not possible: (?:/|^)
                              -    // - if dots possible and not allowed: (?:/|^)(?!\.)
                              -    //
                              -    // But it's better to have a simpler binding without a conditional, for
                              -    // performance, so probably better to return both start options.
                              -    //
                              -    // Then the caller just ignores the end if it's not the first pattern,
                              -    // and the start always gets applied.
                              -    //
                              -    // But that's always going to be $ if it's the ending pattern, or nothing,
                              -    // so the caller can just attach $ at the end of the pattern when building.
                              -    //
                              -    // So the todo is:
                              -    // - better detect what kind of start is needed
                              -    // - return both flavors of starting pattern
                              -    // - attach $ at the end of the pattern when creating the actual RegExp
                              -    //
                              -    // Ah, but wait, no, that all only applies to the root when the first pattern
                              -    // is not an extglob. If the first pattern IS an extglob, then we need all
                              -    // that dot prevention biz to live in the extglob portions, because eg
                              -    // +(*|.x*) can match .xy but not .yx.
                              -    //
                              -    // So, return the two flavors if it's #root and the first child is not an
                              -    // AST, otherwise leave it to the child AST to handle it, and there,
                              -    // use the (?:^|/) style of start binding.
                              -    //
                              -    // Even simplified further:
                              -    // - Since the start for a join is eg /(?!\.) and the start for a part
                              -    // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root
                              -    // or start or whatever) and prepend ^ or / at the Regexp construction.
                              -    toRegExpSource(allowDot) {
                              -        const dot = allowDot ?? !!this.#options.dot;
                              -        if (this.#root === this)
                              -            this.#fillNegs();
                              -        if (!this.type) {
                              -            const noEmpty = this.isStart() && this.isEnd();
                              -            const src = this.#parts
                              -                .map(p => {
                              -                const [re, _, hasMagic, uflag] = typeof p === 'string'
                              -                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)
                              -                    : p.toRegExpSource(allowDot);
                              -                this.#hasMagic = this.#hasMagic || hasMagic;
                              -                this.#uflag = this.#uflag || uflag;
                              -                return re;
                              -            })
                              -                .join('');
                              -            let start = '';
                              -            if (this.isStart()) {
                              -                if (typeof this.#parts[0] === 'string') {
                              -                    // this is the string that will match the start of the pattern,
                              -                    // so we need to protect against dots and such.
                              -                    // '.' and '..' cannot match unless the pattern is that exactly,
                              -                    // even if it starts with . or dot:true is set.
                              -                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);
                              -                    if (!dotTravAllowed) {
                              -                        const aps = addPatternStart;
                              -                        // check if we have a possibility of matching . or ..,
                              -                        // and prevent that.
                              -                        const needNoTrav =
                              -                        // dots are allowed, and the pattern starts with [ or .
                              -                        (dot && aps.has(src.charAt(0))) ||
                              -                            // the pattern starts with \., and then [ or .
                              -                            (src.startsWith('\\.') && aps.has(src.charAt(2))) ||
                              -                            // the pattern starts with \.\., and then [ or .
                              -                            (src.startsWith('\\.\\.') && aps.has(src.charAt(4)));
                              -                        // no need to prevent dots if it can't match a dot, or if a
                              -                        // sub-pattern will be preventing it anyway.
                              -                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));
                              -                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';
                              -                    }
                              -                }
                              -            }
                              -            // append the "end of path portion" pattern to negation tails
                              -            let end = '';
                              -            if (this.isEnd() &&
                              -                this.#root.#filledNegs &&
                              -                this.#parent?.type === '!') {
                              -                end = '(?:$|\\/)';
                              -            }
                              -            const final = start + src + end;
                              -            return [
                              -                final,
                              -                unescape(src),
                              -                (this.#hasMagic = !!this.#hasMagic),
                              -                this.#uflag,
                              -            ];
                              -        }
                              -        // We need to calculate the body *twice* if it's a repeat pattern
                              -        // at the start, once in nodot mode, then again in dot mode, so a
                              -        // pattern like *(?) can match 'x.y'
                              -        const repeated = this.type === '*' || this.type === '+';
                              -        // some kind of extglob
                              -        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';
                              -        let body = this.#partsToRegExp(dot);
                              -        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {
                              -            // invalid extglob, has to at least be *something* present, if it's
                              -            // the entire path portion.
                              -            const s = this.toString();
                              -            this.#parts = [s];
                              -            this.type = null;
                              -            this.#hasMagic = undefined;
                              -            return [s, unescape(this.toString()), false, false];
                              -        }
                              -        // XXX abstract out this map method
                              -        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot
                              -            ? ''
                              -            : this.#partsToRegExp(true);
                              -        if (bodyDotAllowed === body) {
                              -            bodyDotAllowed = '';
                              -        }
                              -        if (bodyDotAllowed) {
                              -            body = `(?:${body})(?:${bodyDotAllowed})*?`;
                              -        }
                              -        // an empty !() is exactly equivalent to a starNoEmpty
                              -        let final = '';
                              -        if (this.type === '!' && this.#emptyExt) {
                              -            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;
                              -        }
                              -        else {
                              -            const close = this.type === '!'
                              -                ? // !() must match something,but !(x) can match ''
                              -                    '))' +
                              -                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +
                              -                        star +
                              -                        ')'
                              -                : this.type === '@'
                              -                    ? ')'
                              -                    : this.type === '?'
                              -                        ? ')?'
                              -                        : this.type === '+' && bodyDotAllowed
                              -                            ? ')'
                              -                            : this.type === '*' && bodyDotAllowed
                              -                                ? `)?`
                              -                                : `)${this.type}`;
                              -            final = start + body + close;
                              -        }
                              -        return [
                              -            final,
                              -            unescape(body),
                              -            (this.#hasMagic = !!this.#hasMagic),
                              -            this.#uflag,
                              -        ];
                              -    }
                              -    #partsToRegExp(dot) {
                              -        return this.#parts
                              -            .map(p => {
                              -            // extglob ASTs should only contain parent ASTs
                              -            /* c8 ignore start */
                              -            if (typeof p === 'string') {
                              -                throw new Error('string type in extglob ast??');
                              -            }
                              -            /* c8 ignore stop */
                              -            // can ignore hasMagic, because extglobs are already always magic
                              -            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);
                              -            this.#uflag = this.#uflag || uflag;
                              -            return re;
                              -        })
                              -            .filter(p => !(this.isStart() && this.isEnd()) || !!p)
                              -            .join('|');
                              -    }
                              -    static #parseGlob(glob, hasMagic, noEmpty = false) {
                              -        let escaping = false;
                              -        let re = '';
                              -        let uflag = false;
                              -        for (let i = 0; i < glob.length; i++) {
                              -            const c = glob.charAt(i);
                              -            if (escaping) {
                              -                escaping = false;
                              -                re += (reSpecials.has(c) ? '\\' : '') + c;
                              -                continue;
                              -            }
                              -            if (c === '\\') {
                              -                if (i === glob.length - 1) {
                              -                    re += '\\\\';
                              -                }
                              -                else {
                              -                    escaping = true;
                              -                }
                              -                continue;
                              -            }
                              -            if (c === '[') {
                              -                const [src, needUflag, consumed, magic] = parseClass(glob, i);
                              -                if (consumed) {
                              -                    re += src;
                              -                    uflag = uflag || needUflag;
                              -                    i += consumed - 1;
                              -                    hasMagic = hasMagic || magic;
                              -                    continue;
                              -                }
                              -            }
                              -            if (c === '*') {
                              -                if (noEmpty && glob === '*')
                              -                    re += starNoEmpty;
                              -                else
                              -                    re += star;
                              -                hasMagic = true;
                              -                continue;
                              -            }
                              -            if (c === '?') {
                              -                re += qmark;
                              -                hasMagic = true;
                              -                continue;
                              -            }
                              -            re += regExpEscape(c);
                              -        }
                              -        return [re, unescape(glob), !!hasMagic, uflag];
                              -    }
                              -}
                              -//# sourceMappingURL=ast.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js
                              deleted file mode 100644
                              index c629d6ae816e27..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/brace-expressions.js
                              +++ /dev/null
                              @@ -1,148 +0,0 @@
                              -// translate the various posix character classes into unicode properties
                              -// this works across all unicode locales
                              -// { : [, /u flag required, negated]
                              -const posixClasses = {
                              -    '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true],
                              -    '[:alpha:]': ['\\p{L}\\p{Nl}', true],
                              -    '[:ascii:]': ['\\x' + '00-\\x' + '7f', false],
                              -    '[:blank:]': ['\\p{Zs}\\t', true],
                              -    '[:cntrl:]': ['\\p{Cc}', true],
                              -    '[:digit:]': ['\\p{Nd}', true],
                              -    '[:graph:]': ['\\p{Z}\\p{C}', true, true],
                              -    '[:lower:]': ['\\p{Ll}', true],
                              -    '[:print:]': ['\\p{C}', true],
                              -    '[:punct:]': ['\\p{P}', true],
                              -    '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true],
                              -    '[:upper:]': ['\\p{Lu}', true],
                              -    '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true],
                              -    '[:xdigit:]': ['A-Fa-f0-9', false],
                              -};
                              -// only need to escape a few things inside of brace expressions
                              -// escapes: [ \ ] -
                              -const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&');
                              -// escape all regexp magic characters
                              -const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -// everything has already been escaped, we just have to join
                              -const rangesToString = (ranges) => ranges.join('');
                              -// takes a glob string at a posix brace expression, and returns
                              -// an equivalent regular expression source, and boolean indicating
                              -// whether the /u flag needs to be applied, and the number of chars
                              -// consumed to parse the character class.
                              -// This also removes out of order ranges, and returns ($.) if the
                              -// entire class just no good.
                              -export const parseClass = (glob, position) => {
                              -    const pos = position;
                              -    /* c8 ignore start */
                              -    if (glob.charAt(pos) !== '[') {
                              -        throw new Error('not in a brace expression');
                              -    }
                              -    /* c8 ignore stop */
                              -    const ranges = [];
                              -    const negs = [];
                              -    let i = pos + 1;
                              -    let sawStart = false;
                              -    let uflag = false;
                              -    let escaping = false;
                              -    let negate = false;
                              -    let endPos = pos;
                              -    let rangeStart = '';
                              -    WHILE: while (i < glob.length) {
                              -        const c = glob.charAt(i);
                              -        if ((c === '!' || c === '^') && i === pos + 1) {
                              -            negate = true;
                              -            i++;
                              -            continue;
                              -        }
                              -        if (c === ']' && sawStart && !escaping) {
                              -            endPos = i + 1;
                              -            break;
                              -        }
                              -        sawStart = true;
                              -        if (c === '\\') {
                              -            if (!escaping) {
                              -                escaping = true;
                              -                i++;
                              -                continue;
                              -            }
                              -            // escaped \ char, fall through and treat like normal char
                              -        }
                              -        if (c === '[' && !escaping) {
                              -            // either a posix class, a collation equivalent, or just a [
                              -            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {
                              -                if (glob.startsWith(cls, i)) {
                              -                    // invalid, [a-[] is fine, but not [a-[:alpha]]
                              -                    if (rangeStart) {
                              -                        return ['$.', false, glob.length - pos, true];
                              -                    }
                              -                    i += cls.length;
                              -                    if (neg)
                              -                        negs.push(unip);
                              -                    else
                              -                        ranges.push(unip);
                              -                    uflag = uflag || u;
                              -                    continue WHILE;
                              -                }
                              -            }
                              -        }
                              -        // now it's just a normal character, effectively
                              -        escaping = false;
                              -        if (rangeStart) {
                              -            // throw this range away if it's not valid, but others
                              -            // can still match.
                              -            if (c > rangeStart) {
                              -                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));
                              -            }
                              -            else if (c === rangeStart) {
                              -                ranges.push(braceEscape(c));
                              -            }
                              -            rangeStart = '';
                              -            i++;
                              -            continue;
                              -        }
                              -        // now might be the start of a range.
                              -        // can be either c-d or c-] or c] or c] at this point
                              -        if (glob.startsWith('-]', i + 1)) {
                              -            ranges.push(braceEscape(c + '-'));
                              -            i += 2;
                              -            continue;
                              -        }
                              -        if (glob.startsWith('-', i + 1)) {
                              -            rangeStart = c;
                              -            i += 2;
                              -            continue;
                              -        }
                              -        // not the start of a range, just a single character
                              -        ranges.push(braceEscape(c));
                              -        i++;
                              -    }
                              -    if (endPos < i) {
                              -        // didn't see the end of the class, not a valid class,
                              -        // but might still be valid as a literal match.
                              -        return ['', false, 0, false];
                              -    }
                              -    // if we got no ranges and no negates, then we have a range that
                              -    // cannot possibly match anything, and that poisons the whole glob
                              -    if (!ranges.length && !negs.length) {
                              -        return ['$.', false, glob.length - pos, true];
                              -    }
                              -    // if we got one positive range, and it's a single character, then that's
                              -    // not actually a magic pattern, it's just that one literal character.
                              -    // we should not treat that as "magic", we should just return the literal
                              -    // character. [_] is a perfectly valid way to escape glob magic chars.
                              -    if (negs.length === 0 &&
                              -        ranges.length === 1 &&
                              -        /^\\?.$/.test(ranges[0]) &&
                              -        !negate) {
                              -        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];
                              -        return [regexpEscape(r), false, endPos - pos, false];
                              -    }
                              -    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';
                              -    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';
                              -    const comb = ranges.length && negs.length
                              -        ? '(' + sranges + '|' + snegs + ')'
                              -        : ranges.length
                              -            ? sranges
                              -            : snegs;
                              -    return [comb, uflag, endPos - pos, true];
                              -};
                              -//# sourceMappingURL=brace-expressions.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js
                              deleted file mode 100644
                              index 16f7c8c7bdc646..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/escape.js
                              +++ /dev/null
                              @@ -1,18 +0,0 @@
                              -/**
                              - * Escape all magic characters in a glob pattern.
                              - *
                              - * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
                              - * option is used, then characters are escaped by wrapping in `[]`, because
                              - * a magic character wrapped in a character class can only be satisfied by
                              - * that exact character.  In this mode, `\` is _not_ escaped, because it is
                              - * not interpreted as a magic character, but instead as a path separator.
                              - */
                              -export const escape = (s, { windowsPathsNoEscape = false, } = {}) => {
                              -    // don't need to escape +@! because we escape the parens
                              -    // that make those magic, and escaping ! as [!] isn't valid,
                              -    // because [!]] is a valid glob class meaning not ']'.
                              -    return windowsPathsNoEscape
                              -        ? s.replace(/[?*()[\]]/g, '[$&]')
                              -        : s.replace(/[?*()[\]\\]/g, '\\$&');
                              -};
                              -//# sourceMappingURL=escape.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js
                              deleted file mode 100644
                              index 831b6a67f63fb4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/index.js
                              +++ /dev/null
                              @@ -1,995 +0,0 @@
                              -import expand from 'brace-expansion';
                              -import { assertValidPattern } from './assert-valid-pattern.js';
                              -import { AST } from './ast.js';
                              -import { escape } from './escape.js';
                              -import { unescape } from './unescape.js';
                              -export const minimatch = (p, pattern, options = {}) => {
                              -    assertValidPattern(pattern);
                              -    // shortcut: comments match nothing.
                              -    if (!options.nocomment && pattern.charAt(0) === '#') {
                              -        return false;
                              -    }
                              -    return new Minimatch(pattern, options).match(p);
                              -};
                              -// Optimized checking for the most common glob patterns.
                              -const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/;
                              -const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);
                              -const starDotExtTestDot = (ext) => (f) => f.endsWith(ext);
                              -const starDotExtTestNocase = (ext) => {
                              -    ext = ext.toLowerCase();
                              -    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);
                              -};
                              -const starDotExtTestNocaseDot = (ext) => {
                              -    ext = ext.toLowerCase();
                              -    return (f) => f.toLowerCase().endsWith(ext);
                              -};
                              -const starDotStarRE = /^\*+\.\*+$/;
                              -const starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');
                              -const starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');
                              -const dotStarRE = /^\.\*+$/;
                              -const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');
                              -const starRE = /^\*+$/;
                              -const starTest = (f) => f.length !== 0 && !f.startsWith('.');
                              -const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';
                              -const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/;
                              -const qmarksTestNocase = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExt([$0]);
                              -    if (!ext)
                              -        return noext;
                              -    ext = ext.toLowerCase();
                              -    return (f) => noext(f) && f.toLowerCase().endsWith(ext);
                              -};
                              -const qmarksTestNocaseDot = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExtDot([$0]);
                              -    if (!ext)
                              -        return noext;
                              -    ext = ext.toLowerCase();
                              -    return (f) => noext(f) && f.toLowerCase().endsWith(ext);
                              -};
                              -const qmarksTestDot = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExtDot([$0]);
                              -    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);
                              -};
                              -const qmarksTest = ([$0, ext = '']) => {
                              -    const noext = qmarksTestNoExt([$0]);
                              -    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);
                              -};
                              -const qmarksTestNoExt = ([$0]) => {
                              -    const len = $0.length;
                              -    return (f) => f.length === len && !f.startsWith('.');
                              -};
                              -const qmarksTestNoExtDot = ([$0]) => {
                              -    const len = $0.length;
                              -    return (f) => f.length === len && f !== '.' && f !== '..';
                              -};
                              -/* c8 ignore start */
                              -const defaultPlatform = (typeof process === 'object' && process
                              -    ? (typeof process.env === 'object' &&
                              -        process.env &&
                              -        process.env.__MINIMATCH_TESTING_PLATFORM__) ||
                              -        process.platform
                              -    : 'posix');
                              -const path = {
                              -    win32: { sep: '\\' },
                              -    posix: { sep: '/' },
                              -};
                              -/* c8 ignore stop */
                              -export const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;
                              -minimatch.sep = sep;
                              -export const GLOBSTAR = Symbol('globstar **');
                              -minimatch.GLOBSTAR = GLOBSTAR;
                              -// any single thing other than /
                              -// don't need to escape / when using new RegExp()
                              -const qmark = '[^/]';
                              -// * => any number of characters
                              -const star = qmark + '*?';
                              -// ** when dots are allowed.  Anything goes, except .. and .
                              -// not (^ or / followed by one or two dots followed by $ or /),
                              -// followed by anything, any number of times.
                              -const twoStarDot = '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?';
                              -// not a ^ or / followed by a dot,
                              -// followed by anything, any number of times.
                              -const twoStarNoDot = '(?:(?!(?:\\/|^)\\.).)*?';
                              -export const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);
                              -minimatch.filter = filter;
                              -const ext = (a, b = {}) => Object.assign({}, a, b);
                              -export const defaults = (def) => {
                              -    if (!def || typeof def !== 'object' || !Object.keys(def).length) {
                              -        return minimatch;
                              -    }
                              -    const orig = minimatch;
                              -    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));
                              -    return Object.assign(m, {
                              -        Minimatch: class Minimatch extends orig.Minimatch {
                              -            constructor(pattern, options = {}) {
                              -                super(pattern, ext(def, options));
                              -            }
                              -            static defaults(options) {
                              -                return orig.defaults(ext(def, options)).Minimatch;
                              -            }
                              -        },
                              -        AST: class AST extends orig.AST {
                              -            /* c8 ignore start */
                              -            constructor(type, parent, options = {}) {
                              -                super(type, parent, ext(def, options));
                              -            }
                              -            /* c8 ignore stop */
                              -            static fromGlob(pattern, options = {}) {
                              -                return orig.AST.fromGlob(pattern, ext(def, options));
                              -            }
                              -        },
                              -        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),
                              -        escape: (s, options = {}) => orig.escape(s, ext(def, options)),
                              -        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),
                              -        defaults: (options) => orig.defaults(ext(def, options)),
                              -        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),
                              -        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),
                              -        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),
                              -        sep: orig.sep,
                              -        GLOBSTAR: GLOBSTAR,
                              -    });
                              -};
                              -minimatch.defaults = defaults;
                              -// Brace expansion:
                              -// a{b,c}d -> abd acd
                              -// a{b,}c -> abc ac
                              -// a{0..3}d -> a0d a1d a2d a3d
                              -// a{b,c{d,e}f}g -> abg acdfg acefg
                              -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
                              -//
                              -// Invalid sets are not expanded.
                              -// a{2..}b -> a{2..}b
                              -// a{b}c -> a{b}c
                              -export const braceExpand = (pattern, options = {}) => {
                              -    assertValidPattern(pattern);
                              -    // Thanks to Yeting Li  for
                              -    // improving this regexp to avoid a ReDOS vulnerability.
                              -    if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
                              -        // shortcut. no need to expand.
                              -        return [pattern];
                              -    }
                              -    return expand(pattern);
                              -};
                              -minimatch.braceExpand = braceExpand;
                              -// parse a component of the expanded set.
                              -// At this point, no pattern may contain "/" in it
                              -// so we're going to return a 2d array, where each entry is the full
                              -// pattern, split on '/', and then turned into a regular expression.
                              -// A regexp is made at the end which joins each array with an
                              -// escaped /, and another full one which joins each regexp with |.
                              -//
                              -// Following the lead of Bash 4.1, note that "**" only has special meaning
                              -// when it is the *only* thing in a path portion.  Otherwise, any series
                              -// of * is equivalent to a single *.  Globstar behavior is enabled by
                              -// default, and can be disabled by setting options.noglobstar.
                              -export const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();
                              -minimatch.makeRe = makeRe;
                              -export const match = (list, pattern, options = {}) => {
                              -    const mm = new Minimatch(pattern, options);
                              -    list = list.filter(f => mm.match(f));
                              -    if (mm.options.nonull && !list.length) {
                              -        list.push(pattern);
                              -    }
                              -    return list;
                              -};
                              -minimatch.match = match;
                              -// replace stuff like \* with *
                              -const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/;
                              -const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
                              -export class Minimatch {
                              -    options;
                              -    set;
                              -    pattern;
                              -    windowsPathsNoEscape;
                              -    nonegate;
                              -    negate;
                              -    comment;
                              -    empty;
                              -    preserveMultipleSlashes;
                              -    partial;
                              -    globSet;
                              -    globParts;
                              -    nocase;
                              -    isWindows;
                              -    platform;
                              -    windowsNoMagicRoot;
                              -    regexp;
                              -    constructor(pattern, options = {}) {
                              -        assertValidPattern(pattern);
                              -        options = options || {};
                              -        this.options = options;
                              -        this.pattern = pattern;
                              -        this.platform = options.platform || defaultPlatform;
                              -        this.isWindows = this.platform === 'win32';
                              -        this.windowsPathsNoEscape =
                              -            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;
                              -        if (this.windowsPathsNoEscape) {
                              -            this.pattern = this.pattern.replace(/\\/g, '/');
                              -        }
                              -        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;
                              -        this.regexp = null;
                              -        this.negate = false;
                              -        this.nonegate = !!options.nonegate;
                              -        this.comment = false;
                              -        this.empty = false;
                              -        this.partial = !!options.partial;
                              -        this.nocase = !!this.options.nocase;
                              -        this.windowsNoMagicRoot =
                              -            options.windowsNoMagicRoot !== undefined
                              -                ? options.windowsNoMagicRoot
                              -                : !!(this.isWindows && this.nocase);
                              -        this.globSet = [];
                              -        this.globParts = [];
                              -        this.set = [];
                              -        // make the set of regexps etc.
                              -        this.make();
                              -    }
                              -    hasMagic() {
                              -        if (this.options.magicalBraces && this.set.length > 1) {
                              -            return true;
                              -        }
                              -        for (const pattern of this.set) {
                              -            for (const part of pattern) {
                              -                if (typeof part !== 'string')
                              -                    return true;
                              -            }
                              -        }
                              -        return false;
                              -    }
                              -    debug(..._) { }
                              -    make() {
                              -        const pattern = this.pattern;
                              -        const options = this.options;
                              -        // empty patterns and comments match nothing.
                              -        if (!options.nocomment && pattern.charAt(0) === '#') {
                              -            this.comment = true;
                              -            return;
                              -        }
                              -        if (!pattern) {
                              -            this.empty = true;
                              -            return;
                              -        }
                              -        // step 1: figure out negation, etc.
                              -        this.parseNegate();
                              -        // step 2: expand braces
                              -        this.globSet = [...new Set(this.braceExpand())];
                              -        if (options.debug) {
                              -            this.debug = (...args) => console.error(...args);
                              -        }
                              -        this.debug(this.pattern, this.globSet);
                              -        // step 3: now we have a set, so turn each one into a series of
                              -        // path-portion matching patterns.
                              -        // These will be regexps, except in the case of "**", which is
                              -        // set to the GLOBSTAR object for globstar behavior,
                              -        // and will not contain any / characters
                              -        //
                              -        // First, we preprocess to make the glob pattern sets a bit simpler
                              -        // and deduped.  There are some perf-killing patterns that can cause
                              -        // problems with a glob walk, but we can simplify them down a bit.
                              -        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));
                              -        this.globParts = this.preprocess(rawGlobParts);
                              -        this.debug(this.pattern, this.globParts);
                              -        // glob --> regexps
                              -        let set = this.globParts.map((s, _, __) => {
                              -            if (this.isWindows && this.windowsNoMagicRoot) {
                              -                // check if it's a drive or unc path.
                              -                const isUNC = s[0] === '' &&
                              -                    s[1] === '' &&
                              -                    (s[2] === '?' || !globMagic.test(s[2])) &&
                              -                    !globMagic.test(s[3]);
                              -                const isDrive = /^[a-z]:/i.test(s[0]);
                              -                if (isUNC) {
                              -                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];
                              -                }
                              -                else if (isDrive) {
                              -                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];
                              -                }
                              -            }
                              -            return s.map(ss => this.parse(ss));
                              -        });
                              -        this.debug(this.pattern, set);
                              -        // filter out everything that didn't compile properly.
                              -        this.set = set.filter(s => s.indexOf(false) === -1);
                              -        // do not treat the ? in UNC paths as magic
                              -        if (this.isWindows) {
                              -            for (let i = 0; i < this.set.length; i++) {
                              -                const p = this.set[i];
                              -                if (p[0] === '' &&
                              -                    p[1] === '' &&
                              -                    this.globParts[i][2] === '?' &&
                              -                    typeof p[3] === 'string' &&
                              -                    /^[a-z]:$/i.test(p[3])) {
                              -                    p[2] = '?';
                              -                }
                              -            }
                              -        }
                              -        this.debug(this.pattern, this.set);
                              -    }
                              -    // various transforms to equivalent pattern sets that are
                              -    // faster to process in a filesystem walk.  The goal is to
                              -    // eliminate what we can, and push all ** patterns as far
                              -    // to the right as possible, even if it increases the number
                              -    // of patterns that we have to process.
                              -    preprocess(globParts) {
                              -        // if we're not in globstar mode, then turn all ** into *
                              -        if (this.options.noglobstar) {
                              -            for (let i = 0; i < globParts.length; i++) {
                              -                for (let j = 0; j < globParts[i].length; j++) {
                              -                    if (globParts[i][j] === '**') {
                              -                        globParts[i][j] = '*';
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        const { optimizationLevel = 1 } = this.options;
                              -        if (optimizationLevel >= 2) {
                              -            // aggressive optimization for the purpose of fs walking
                              -            globParts = this.firstPhasePreProcess(globParts);
                              -            globParts = this.secondPhasePreProcess(globParts);
                              -        }
                              -        else if (optimizationLevel >= 1) {
                              -            // just basic optimizations to remove some .. parts
                              -            globParts = this.levelOneOptimize(globParts);
                              -        }
                              -        else {
                              -            globParts = this.adjascentGlobstarOptimize(globParts);
                              -        }
                              -        return globParts;
                              -    }
                              -    // just get rid of adjascent ** portions
                              -    adjascentGlobstarOptimize(globParts) {
                              -        return globParts.map(parts => {
                              -            let gs = -1;
                              -            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {
                              -                let i = gs;
                              -                while (parts[i + 1] === '**') {
                              -                    i++;
                              -                }
                              -                if (i !== gs) {
                              -                    parts.splice(gs, i - gs);
                              -                }
                              -            }
                              -            return parts;
                              -        });
                              -    }
                              -    // get rid of adjascent ** and resolve .. portions
                              -    levelOneOptimize(globParts) {
                              -        return globParts.map(parts => {
                              -            parts = parts.reduce((set, part) => {
                              -                const prev = set[set.length - 1];
                              -                if (part === '**' && prev === '**') {
                              -                    return set;
                              -                }
                              -                if (part === '..') {
                              -                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {
                              -                        set.pop();
                              -                        return set;
                              -                    }
                              -                }
                              -                set.push(part);
                              -                return set;
                              -            }, []);
                              -            return parts.length === 0 ? [''] : parts;
                              -        });
                              -    }
                              -    levelTwoFileOptimize(parts) {
                              -        if (!Array.isArray(parts)) {
                              -            parts = this.slashSplit(parts);
                              -        }
                              -        let didSomething = false;
                              -        do {
                              -            didSomething = false;
                              -            // 
                              // -> 
                              /
                              -            if (!this.preserveMultipleSlashes) {
                              -                for (let i = 1; i < parts.length - 1; i++) {
                              -                    const p = parts[i];
                              -                    // don't squeeze out UNC patterns
                              -                    if (i === 1 && p === '' && parts[0] === '')
                              -                        continue;
                              -                    if (p === '.' || p === '') {
                              -                        didSomething = true;
                              -                        parts.splice(i, 1);
                              -                        i--;
                              -                    }
                              -                }
                              -                if (parts[0] === '.' &&
                              -                    parts.length === 2 &&
                              -                    (parts[1] === '.' || parts[1] === '')) {
                              -                    didSomething = true;
                              -                    parts.pop();
                              -                }
                              -            }
                              -            // 
                              /

                              /../ ->

                              /
                              -            let dd = 0;
                              -            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
                              -                const p = parts[dd - 1];
                              -                if (p && p !== '.' && p !== '..' && p !== '**') {
                              -                    didSomething = true;
                              -                    parts.splice(dd - 1, 2);
                              -                    dd -= 2;
                              -                }
                              -            }
                              -        } while (didSomething);
                              -        return parts.length === 0 ? [''] : parts;
                              -    }
                              -    // First phase: single-pattern processing
                              -    // 
                               is 1 or more portions
                              -    //  is 1 or more portions
                              -    // 

                              is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

                              /**/../

                              /

                              / -> {

                              /../

                              /

                              /,

                              /**/

                              /

                              /} - //

                              // -> 
                              /
                              -    // 
                              /

                              /../ ->

                              /
                              -    // **/**/ -> **/
                              -    //
                              -    // **/*/ -> */**/ <== not valid because ** doesn't follow
                              -    // this WOULD be allowed if ** did follow symlinks, or * didn't
                              -    firstPhasePreProcess(globParts) {
                              -        let didSomething = false;
                              -        do {
                              -            didSomething = false;
                              -            // 
                              /**/../

                              /

                              / -> {

                              /../

                              /

                              /,

                              /**/

                              /

                              /} - for (let parts of globParts) { - let gs = -1; - while (-1 !== (gs = parts.indexOf('**', gs + 1))) { - let gss = gs; - while (parts[gss + 1] === '**') { - //

                              /**/**/ -> 
                              /**/
                              -                        gss++;
                              -                    }
                              -                    // eg, if gs is 2 and gss is 4, that means we have 3 **
                              -                    // parts, and can remove 2 of them.
                              -                    if (gss > gs) {
                              -                        parts.splice(gs + 1, gss - gs);
                              -                    }
                              -                    let next = parts[gs + 1];
                              -                    const p = parts[gs + 2];
                              -                    const p2 = parts[gs + 3];
                              -                    if (next !== '..')
                              -                        continue;
                              -                    if (!p ||
                              -                        p === '.' ||
                              -                        p === '..' ||
                              -                        !p2 ||
                              -                        p2 === '.' ||
                              -                        p2 === '..') {
                              -                        continue;
                              -                    }
                              -                    didSomething = true;
                              -                    // edit parts in place, and push the new one
                              -                    parts.splice(gs, 1);
                              -                    const other = parts.slice(0);
                              -                    other[gs] = '**';
                              -                    globParts.push(other);
                              -                    gs--;
                              -                }
                              -                // 
                              // -> 
                              /
                              -                if (!this.preserveMultipleSlashes) {
                              -                    for (let i = 1; i < parts.length - 1; i++) {
                              -                        const p = parts[i];
                              -                        // don't squeeze out UNC patterns
                              -                        if (i === 1 && p === '' && parts[0] === '')
                              -                            continue;
                              -                        if (p === '.' || p === '') {
                              -                            didSomething = true;
                              -                            parts.splice(i, 1);
                              -                            i--;
                              -                        }
                              -                    }
                              -                    if (parts[0] === '.' &&
                              -                        parts.length === 2 &&
                              -                        (parts[1] === '.' || parts[1] === '')) {
                              -                        didSomething = true;
                              -                        parts.pop();
                              -                    }
                              -                }
                              -                // 
                              /

                              /../ ->

                              /
                              -                let dd = 0;
                              -                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
                              -                    const p = parts[dd - 1];
                              -                    if (p && p !== '.' && p !== '..' && p !== '**') {
                              -                        didSomething = true;
                              -                        const needDot = dd === 1 && parts[dd + 1] === '**';
                              -                        const splin = needDot ? ['.'] : [];
                              -                        parts.splice(dd - 1, 2, ...splin);
                              -                        if (parts.length === 0)
                              -                            parts.push('');
                              -                        dd -= 2;
                              -                    }
                              -                }
                              -            }
                              -        } while (didSomething);
                              -        return globParts;
                              -    }
                              -    // second phase: multi-pattern dedupes
                              -    // {
                              /*/,
                              /

                              /} ->

                              /*/
                              -    // {
                              /,
                              /} -> 
                              /
                              -    // {
                              /**/,
                              /} -> 
                              /**/
                              -    //
                              -    // {
                              /**/,
                              /**/

                              /} ->

                              /**/
                              -    // ^-- not valid because ** doens't follow symlinks
                              -    secondPhasePreProcess(globParts) {
                              -        for (let i = 0; i < globParts.length - 1; i++) {
                              -            for (let j = i + 1; j < globParts.length; j++) {
                              -                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
                              -                if (!matched)
                              -                    continue;
                              -                globParts[i] = matched;
                              -                globParts[j] = [];
                              -            }
                              -        }
                              -        return globParts.filter(gs => gs.length);
                              -    }
                              -    partsMatch(a, b, emptyGSMatch = false) {
                              -        let ai = 0;
                              -        let bi = 0;
                              -        let result = [];
                              -        let which = '';
                              -        while (ai < a.length && bi < b.length) {
                              -            if (a[ai] === b[bi]) {
                              -                result.push(which === 'b' ? b[bi] : a[ai]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {
                              -                result.push(a[ai]);
                              -                ai++;
                              -            }
                              -            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {
                              -                result.push(b[bi]);
                              -                bi++;
                              -            }
                              -            else if (a[ai] === '*' &&
                              -                b[bi] &&
                              -                (this.options.dot || !b[bi].startsWith('.')) &&
                              -                b[bi] !== '**') {
                              -                if (which === 'b')
                              -                    return false;
                              -                which = 'a';
                              -                result.push(a[ai]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else if (b[bi] === '*' &&
                              -                a[ai] &&
                              -                (this.options.dot || !a[ai].startsWith('.')) &&
                              -                a[ai] !== '**') {
                              -                if (which === 'a')
                              -                    return false;
                              -                which = 'b';
                              -                result.push(b[bi]);
                              -                ai++;
                              -                bi++;
                              -            }
                              -            else {
                              -                return false;
                              -            }
                              -        }
                              -        // if we fall out of the loop, it means they two are identical
                              -        // as long as their lengths match
                              -        return a.length === b.length && result;
                              -    }
                              -    parseNegate() {
                              -        if (this.nonegate)
                              -            return;
                              -        const pattern = this.pattern;
                              -        let negate = false;
                              -        let negateOffset = 0;
                              -        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {
                              -            negate = !negate;
                              -            negateOffset++;
                              -        }
                              -        if (negateOffset)
                              -            this.pattern = pattern.slice(negateOffset);
                              -        this.negate = negate;
                              -    }
                              -    // set partial to true to test if, for example,
                              -    // "/a/b" matches the start of "/*/b/*/d"
                              -    // Partial means, if you run out of file before you run
                              -    // out of pattern, then that's fine, as long as all
                              -    // the parts match.
                              -    matchOne(file, pattern, partial = false) {
                              -        const options = this.options;
                              -        // UNC paths like //?/X:/... can match X:/... and vice versa
                              -        // Drive letters in absolute drive or unc paths are always compared
                              -        // case-insensitively.
                              -        if (this.isWindows) {
                              -            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);
                              -            const fileUNC = !fileDrive &&
                              -                file[0] === '' &&
                              -                file[1] === '' &&
                              -                file[2] === '?' &&
                              -                /^[a-z]:$/i.test(file[3]);
                              -            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);
                              -            const patternUNC = !patternDrive &&
                              -                pattern[0] === '' &&
                              -                pattern[1] === '' &&
                              -                pattern[2] === '?' &&
                              -                typeof pattern[3] === 'string' &&
                              -                /^[a-z]:$/i.test(pattern[3]);
                              -            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;
                              -            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;
                              -            if (typeof fdi === 'number' && typeof pdi === 'number') {
                              -                const [fd, pd] = [file[fdi], pattern[pdi]];
                              -                if (fd.toLowerCase() === pd.toLowerCase()) {
                              -                    pattern[pdi] = fd;
                              -                    if (pdi > fdi) {
                              -                        pattern = pattern.slice(pdi);
                              -                    }
                              -                    else if (fdi > pdi) {
                              -                        file = file.slice(fdi);
                              -                    }
                              -                }
                              -            }
                              -        }
                              -        // resolve and reduce . and .. portions in the file as well.
                              -        // dont' need to do the second phase, because it's only one string[]
                              -        const { optimizationLevel = 1 } = this.options;
                              -        if (optimizationLevel >= 2) {
                              -            file = this.levelTwoFileOptimize(file);
                              -        }
                              -        this.debug('matchOne', this, { file, pattern });
                              -        this.debug('matchOne', file.length, pattern.length);
                              -        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
                              -            this.debug('matchOne loop');
                              -            var p = pattern[pi];
                              -            var f = file[fi];
                              -            this.debug(pattern, p, f);
                              -            // should be impossible.
                              -            // some invalid regexp stuff in the set.
                              -            /* c8 ignore start */
                              -            if (p === false) {
                              -                return false;
                              -            }
                              -            /* c8 ignore stop */
                              -            if (p === GLOBSTAR) {
                              -                this.debug('GLOBSTAR', [pattern, p, f]);
                              -                // "**"
                              -                // a/**/b/**/c would match the following:
                              -                // a/b/x/y/z/c
                              -                // a/x/y/z/b/c
                              -                // a/b/x/b/x/c
                              -                // a/b/c
                              -                // To do this, take the rest of the pattern after
                              -                // the **, and see if it would match the file remainder.
                              -                // If so, return success.
                              -                // If not, the ** "swallows" a segment, and try again.
                              -                // This is recursively awful.
                              -                //
                              -                // a/**/b/**/c matching a/b/x/y/z/c
                              -                // - a matches a
                              -                // - doublestar
                              -                //   - matchOne(b/x/y/z/c, b/**/c)
                              -                //     - b matches b
                              -                //     - doublestar
                              -                //       - matchOne(x/y/z/c, c) -> no
                              -                //       - matchOne(y/z/c, c) -> no
                              -                //       - matchOne(z/c, c) -> no
                              -                //       - matchOne(c, c) yes, hit
                              -                var fr = fi;
                              -                var pr = pi + 1;
                              -                if (pr === pl) {
                              -                    this.debug('** at the end');
                              -                    // a ** at the end will just swallow the rest.
                              -                    // We have found a match.
                              -                    // however, it will not swallow /.x, unless
                              -                    // options.dot is set.
                              -                    // . and .. are *never* matched by **, for explosively
                              -                    // exponential reasons.
                              -                    for (; fi < fl; fi++) {
                              -                        if (file[fi] === '.' ||
                              -                            file[fi] === '..' ||
                              -                            (!options.dot && file[fi].charAt(0) === '.'))
                              -                            return false;
                              -                    }
                              -                    return true;
                              -                }
                              -                // ok, let's see if we can swallow whatever we can.
                              -                while (fr < fl) {
                              -                    var swallowee = file[fr];
                              -                    this.debug('\nglobstar while', file, fr, pattern, pr, swallowee);
                              -                    // XXX remove this slice.  Just pass the start index.
                              -                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
                              -                        this.debug('globstar found match!', fr, fl, swallowee);
                              -                        // found a match.
                              -                        return true;
                              -                    }
                              -                    else {
                              -                        // can't swallow "." or ".." ever.
                              -                        // can only swallow ".foo" when explicitly asked.
                              -                        if (swallowee === '.' ||
                              -                            swallowee === '..' ||
                              -                            (!options.dot && swallowee.charAt(0) === '.')) {
                              -                            this.debug('dot detected!', file, fr, pattern, pr);
                              -                            break;
                              -                        }
                              -                        // ** swallows a segment, and continue.
                              -                        this.debug('globstar swallow a segment, and continue');
                              -                        fr++;
                              -                    }
                              -                }
                              -                // no match was found.
                              -                // However, in partial mode, we can't say this is necessarily over.
                              -                /* c8 ignore start */
                              -                if (partial) {
                              -                    // ran out of file
                              -                    this.debug('\n>>> no match, partial?', file, fr, pattern, pr);
                              -                    if (fr === fl) {
                              -                        return true;
                              -                    }
                              -                }
                              -                /* c8 ignore stop */
                              -                return false;
                              -            }
                              -            // something other than **
                              -            // non-magic patterns just have to match exactly
                              -            // patterns with magic have been turned into regexps.
                              -            let hit;
                              -            if (typeof p === 'string') {
                              -                hit = f === p;
                              -                this.debug('string match', p, f, hit);
                              -            }
                              -            else {
                              -                hit = p.test(f);
                              -                this.debug('pattern match', p, f, hit);
                              -            }
                              -            if (!hit)
                              -                return false;
                              -        }
                              -        // Note: ending in / means that we'll get a final ""
                              -        // at the end of the pattern.  This can only match a
                              -        // corresponding "" at the end of the file.
                              -        // If the file ends in /, then it can only match a
                              -        // a pattern that ends in /, unless the pattern just
                              -        // doesn't have any more for it. But, a/b/ should *not*
                              -        // match "a/b/*", even though "" matches against the
                              -        // [^/]*? pattern, except in partial mode, where it might
                              -        // simply not be reached yet.
                              -        // However, a/b/ should still satisfy a/*
                              -        // now either we fell off the end of the pattern, or we're done.
                              -        if (fi === fl && pi === pl) {
                              -            // ran out of pattern and filename at the same time.
                              -            // an exact hit!
                              -            return true;
                              -        }
                              -        else if (fi === fl) {
                              -            // ran out of file, but still had pattern left.
                              -            // this is ok if we're doing the match as part of
                              -            // a glob fs traversal.
                              -            return partial;
                              -        }
                              -        else if (pi === pl) {
                              -            // ran out of pattern, still have file left.
                              -            // this is only acceptable if we're on the very last
                              -            // empty segment of a file with a trailing slash.
                              -            // a/* should match a/b/
                              -            return fi === fl - 1 && file[fi] === '';
                              -            /* c8 ignore start */
                              -        }
                              -        else {
                              -            // should be unreachable.
                              -            throw new Error('wtf?');
                              -        }
                              -        /* c8 ignore stop */
                              -    }
                              -    braceExpand() {
                              -        return braceExpand(this.pattern, this.options);
                              -    }
                              -    parse(pattern) {
                              -        assertValidPattern(pattern);
                              -        const options = this.options;
                              -        // shortcuts
                              -        if (pattern === '**')
                              -            return GLOBSTAR;
                              -        if (pattern === '')
                              -            return '';
                              -        // far and away, the most common glob pattern parts are
                              -        // *, *.*, and *.  Add a fast check method for those.
                              -        let m;
                              -        let fastTest = null;
                              -        if ((m = pattern.match(starRE))) {
                              -            fastTest = options.dot ? starTestDot : starTest;
                              -        }
                              -        else if ((m = pattern.match(starDotExtRE))) {
                              -            fastTest = (options.nocase
                              -                ? options.dot
                              -                    ? starDotExtTestNocaseDot
                              -                    : starDotExtTestNocase
                              -                : options.dot
                              -                    ? starDotExtTestDot
                              -                    : starDotExtTest)(m[1]);
                              -        }
                              -        else if ((m = pattern.match(qmarksRE))) {
                              -            fastTest = (options.nocase
                              -                ? options.dot
                              -                    ? qmarksTestNocaseDot
                              -                    : qmarksTestNocase
                              -                : options.dot
                              -                    ? qmarksTestDot
                              -                    : qmarksTest)(m);
                              -        }
                              -        else if ((m = pattern.match(starDotStarRE))) {
                              -            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
                              -        }
                              -        else if ((m = pattern.match(dotStarRE))) {
                              -            fastTest = dotStarTest;
                              -        }
                              -        const re = AST.fromGlob(pattern, this.options).toMMPattern();
                              -        return fastTest ? Object.assign(re, { test: fastTest }) : re;
                              -    }
                              -    makeRe() {
                              -        if (this.regexp || this.regexp === false)
                              -            return this.regexp;
                              -        // at this point, this.set is a 2d array of partial
                              -        // pattern strings, or "**".
                              -        //
                              -        // It's better to use .match().  This function shouldn't
                              -        // be used, really, but it's pretty convenient sometimes,
                              -        // when you just want to work with a regex.
                              -        const set = this.set;
                              -        if (!set.length) {
                              -            this.regexp = false;
                              -            return this.regexp;
                              -        }
                              -        const options = this.options;
                              -        const twoStar = options.noglobstar
                              -            ? star
                              -            : options.dot
                              -                ? twoStarDot
                              -                : twoStarNoDot;
                              -        const flags = new Set(options.nocase ? ['i'] : []);
                              -        // regexpify non-globstar patterns
                              -        // if ** is only item, then we just do one twoStar
                              -        // if ** is first, and there are more, prepend (\/|twoStar\/)? to next
                              -        // if ** is last, append (\/twoStar|) to previous
                              -        // if ** is in the middle, append (\/|\/twoStar\/) to previous
                              -        // then filter out GLOBSTAR symbols
                              -        let re = set
                              -            .map(pattern => {
                              -            const pp = pattern.map(p => {
                              -                if (p instanceof RegExp) {
                              -                    for (const f of p.flags.split(''))
                              -                        flags.add(f);
                              -                }
                              -                return typeof p === 'string'
                              -                    ? regExpEscape(p)
                              -                    : p === GLOBSTAR
                              -                        ? GLOBSTAR
                              -                        : p._src;
                              -            });
                              -            pp.forEach((p, i) => {
                              -                const next = pp[i + 1];
                              -                const prev = pp[i - 1];
                              -                if (p !== GLOBSTAR || prev === GLOBSTAR) {
                              -                    return;
                              -                }
                              -                if (prev === undefined) {
                              -                    if (next !== undefined && next !== GLOBSTAR) {
                              -                        pp[i + 1] = '(?:\\/|' + twoStar + '\\/)?' + next;
                              -                    }
                              -                    else {
                              -                        pp[i] = twoStar;
                              -                    }
                              -                }
                              -                else if (next === undefined) {
                              -                    pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?';
                              -                }
                              -                else if (next !== GLOBSTAR) {
                              -                    pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
                              -                    pp[i + 1] = GLOBSTAR;
                              -                }
                              -            });
                              -            return pp.filter(p => p !== GLOBSTAR).join('/');
                              -        })
                              -            .join('|');
                              -        // need to wrap in parens if we had more than one thing with |,
                              -        // otherwise only the first will be anchored to ^ and the last to $
                              -        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];
                              -        // must match entire pattern
                              -        // ending in a * or ** will make it less strict.
                              -        re = '^' + open + re + close + '$';
                              -        // can match anything, as long as it's not this.
                              -        if (this.negate)
                              -            re = '^(?!' + re + ').+$';
                              -        try {
                              -            this.regexp = new RegExp(re, [...flags].join(''));
                              -            /* c8 ignore start */
                              -        }
                              -        catch (ex) {
                              -            // should be impossible
                              -            this.regexp = false;
                              -        }
                              -        /* c8 ignore stop */
                              -        return this.regexp;
                              -    }
                              -    slashSplit(p) {
                              -        // if p starts with // on windows, we preserve that
                              -        // so that UNC paths aren't broken.  Otherwise, any number of
                              -        // / characters are coalesced into one, unless
                              -        // preserveMultipleSlashes is set to true.
                              -        if (this.preserveMultipleSlashes) {
                              -            return p.split('/');
                              -        }
                              -        else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
                              -            // add an extra '' for the one we lose
                              -            return ['', ...p.split(/\/+/)];
                              -        }
                              -        else {
                              -            return p.split(/\/+/);
                              -        }
                              -    }
                              -    match(f, partial = this.partial) {
                              -        this.debug('match', f, this.pattern);
                              -        // short-circuit in the case of busted things.
                              -        // comments, etc.
                              -        if (this.comment) {
                              -            return false;
                              -        }
                              -        if (this.empty) {
                              -            return f === '';
                              -        }
                              -        if (f === '/' && partial) {
                              -            return true;
                              -        }
                              -        const options = this.options;
                              -        // windows: need to use /, not \
                              -        if (this.isWindows) {
                              -            f = f.split('\\').join('/');
                              -        }
                              -        // treat the test path as a set of pathparts.
                              -        const ff = this.slashSplit(f);
                              -        this.debug(this.pattern, 'split', ff);
                              -        // just ONE of the pattern sets in this.set needs to match
                              -        // in order for it to be valid.  If negating, then just one
                              -        // match means that we have failed.
                              -        // Either way, return on the first hit.
                              -        const set = this.set;
                              -        this.debug(this.pattern, 'set', set);
                              -        // Find the basename of the path by looking for the last non-empty segment
                              -        let filename = ff[ff.length - 1];
                              -        if (!filename) {
                              -            for (let i = ff.length - 2; !filename && i >= 0; i--) {
                              -                filename = ff[i];
                              -            }
                              -        }
                              -        for (let i = 0; i < set.length; i++) {
                              -            const pattern = set[i];
                              -            let file = ff;
                              -            if (options.matchBase && pattern.length === 1) {
                              -                file = [filename];
                              -            }
                              -            const hit = this.matchOne(file, pattern, partial);
                              -            if (hit) {
                              -                if (options.flipNegate) {
                              -                    return true;
                              -                }
                              -                return !this.negate;
                              -            }
                              -        }
                              -        // didn't get any hits.  this is success if it's a negative
                              -        // pattern, failure otherwise.
                              -        if (options.flipNegate) {
                              -            return false;
                              -        }
                              -        return this.negate;
                              -    }
                              -    static defaults(def) {
                              -        return minimatch.defaults(def).Minimatch;
                              -    }
                              -}
                              -/* c8 ignore start */
                              -export { AST } from './ast.js';
                              -export { escape } from './escape.js';
                              -export { unescape } from './unescape.js';
                              -/* c8 ignore stop */
                              -minimatch.AST = AST;
                              -minimatch.Minimatch = Minimatch;
                              -minimatch.escape = escape;
                              -minimatch.unescape = unescape;
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/package.json
                              deleted file mode 100644
                              index 3dbc1ca591c055..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/package.json
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -{
                              -  "type": "module"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js
                              deleted file mode 100644
                              index 0faf9a2b7306f7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/dist/mjs/unescape.js
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -/**
                              - * Un-escape a string that has been escaped with {@link escape}.
                              - *
                              - * If the {@link windowsPathsNoEscape} option is used, then square-brace
                              - * escapes are removed, but not backslash escapes.  For example, it will turn
                              - * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
                              - * becuase `\` is a path separator in `windowsPathsNoEscape` mode.
                              - *
                              - * When `windowsPathsNoEscape` is not set, then both brace escapes and
                              - * backslash escapes are removed.
                              - *
                              - * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
                              - * or unescaped.
                              - */
                              -export const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
                              -    return windowsPathsNoEscape
                              -        ? s.replace(/\[([^\/\\])\]/g, '$1')
                              -        : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
                              -};
                              -//# sourceMappingURL=unescape.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/package.json
                              deleted file mode 100644
                              index 061c3b9f343306..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch/package.json
                              +++ /dev/null
                              @@ -1,86 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me)",
                              -  "name": "minimatch",
                              -  "description": "a glob matcher in javascript",
                              -  "version": "9.0.3",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/minimatch.git"
                              -  },
                              -  "main": "./dist/cjs/index.js",
                              -  "module": "./dist/mjs/index.js",
                              -  "types": "./dist/cjs/index.d.ts",
                              -  "exports": {
                              -    ".": {
                              -      "import": {
                              -        "types": "./dist/mjs/index.d.ts",
                              -        "default": "./dist/mjs/index.js"
                              -      },
                              -      "require": {
                              -        "types": "./dist/cjs/index.d.ts",
                              -        "default": "./dist/cjs/index.js"
                              -      }
                              -    }
                              -  },
                              -  "files": [
                              -    "dist"
                              -  ],
                              -  "scripts": {
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "preprepare": "rm -rf dist",
                              -    "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json",
                              -    "postprepare": "bash fixup.sh",
                              -    "pretest": "npm run prepare",
                              -    "presnap": "npm run prepare",
                              -    "test": "c8 tap",
                              -    "snap": "c8 tap",
                              -    "format": "prettier --write . --loglevel warn",
                              -    "benchmark": "node benchmark/index.js",
                              -    "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts"
                              -  },
                              -  "prettier": {
                              -    "semi": false,
                              -    "printWidth": 80,
                              -    "tabWidth": 2,
                              -    "useTabs": false,
                              -    "singleQuote": true,
                              -    "jsxSingleQuote": false,
                              -    "bracketSameLine": true,
                              -    "arrowParens": "avoid",
                              -    "endOfLine": "lf"
                              -  },
                              -  "engines": {
                              -    "node": ">=16 || 14 >=14.17"
                              -  },
                              -  "dependencies": {
                              -    "brace-expansion": "^2.0.1"
                              -  },
                              -  "devDependencies": {
                              -    "@types/brace-expansion": "^1.1.0",
                              -    "@types/node": "^18.15.11",
                              -    "@types/tap": "^15.0.8",
                              -    "c8": "^7.12.0",
                              -    "eslint-config-prettier": "^8.6.0",
                              -    "mkdirp": "1",
                              -    "prettier": "^2.8.2",
                              -    "tap": "^16.3.7",
                              -    "ts-node": "^10.9.1",
                              -    "typedoc": "^0.23.21",
                              -    "typescript": "^4.9.3"
                              -  },
                              -  "tap": {
                              -    "coverage": false,
                              -    "node-arg": [
                              -      "--no-warnings",
                              -      "--loader",
                              -      "ts-node/esm"
                              -    ],
                              -    "ts": false
                              -  },
                              -  "funding": {
                              -    "url": "https://github.com/sponsors/isaacs"
                              -  },
                              -  "license": "ISC"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/LICENSE
                              deleted file mode 100644
                              index 97f8e32ed82e4c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/index.js
                              deleted file mode 100644
                              index b6cdae8eb514b8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/index.js
                              +++ /dev/null
                              @@ -1,1028 +0,0 @@
                              -"use strict";
                              -var __importDefault = (this && this.__importDefault) || function (mod) {
                              -    return (mod && mod.__esModule) ? mod : { "default": mod };
                              -};
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.Minipass = exports.isWritable = exports.isReadable = exports.isStream = void 0;
                              -const proc = typeof process === 'object' && process
                              -    ? process
                              -    : {
                              -        stdout: null,
                              -        stderr: null,
                              -    };
                              -const events_1 = require("events");
                              -const stream_1 = __importDefault(require("stream"));
                              -const string_decoder_1 = require("string_decoder");
                              -/**
                              - * Return true if the argument is a Minipass stream, Node stream, or something
                              - * else that Minipass can interact with.
                              - */
                              -const isStream = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    (s instanceof Minipass ||
                              -        s instanceof stream_1.default ||
                              -        (0, exports.isReadable)(s) ||
                              -        (0, exports.isWritable)(s));
                              -exports.isStream = isStream;
                              -/**
                              - * Return true if the argument is a valid {@link Minipass.Readable}
                              - */
                              -const isReadable = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    s instanceof events_1.EventEmitter &&
                              -    typeof s.pipe === 'function' &&
                              -    // node core Writable streams have a pipe() method, but it throws
                              -    s.pipe !== stream_1.default.Writable.prototype.pipe;
                              -exports.isReadable = isReadable;
                              -/**
                              - * Return true if the argument is a valid {@link Minipass.Writable}
                              - */
                              -const isWritable = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    s instanceof events_1.EventEmitter &&
                              -    typeof s.write === 'function' &&
                              -    typeof s.end === 'function';
                              -exports.isWritable = isWritable;
                              -const EOF = Symbol('EOF');
                              -const MAYBE_EMIT_END = Symbol('maybeEmitEnd');
                              -const EMITTED_END = Symbol('emittedEnd');
                              -const EMITTING_END = Symbol('emittingEnd');
                              -const EMITTED_ERROR = Symbol('emittedError');
                              -const CLOSED = Symbol('closed');
                              -const READ = Symbol('read');
                              -const FLUSH = Symbol('flush');
                              -const FLUSHCHUNK = Symbol('flushChunk');
                              -const ENCODING = Symbol('encoding');
                              -const DECODER = Symbol('decoder');
                              -const FLOWING = Symbol('flowing');
                              -const PAUSED = Symbol('paused');
                              -const RESUME = Symbol('resume');
                              -const BUFFER = Symbol('buffer');
                              -const PIPES = Symbol('pipes');
                              -const BUFFERLENGTH = Symbol('bufferLength');
                              -const BUFFERPUSH = Symbol('bufferPush');
                              -const BUFFERSHIFT = Symbol('bufferShift');
                              -const OBJECTMODE = Symbol('objectMode');
                              -// internal event when stream is destroyed
                              -const DESTROYED = Symbol('destroyed');
                              -// internal event when stream has an error
                              -const ERROR = Symbol('error');
                              -const EMITDATA = Symbol('emitData');
                              -const EMITEND = Symbol('emitEnd');
                              -const EMITEND2 = Symbol('emitEnd2');
                              -const ASYNC = Symbol('async');
                              -const ABORT = Symbol('abort');
                              -const ABORTED = Symbol('aborted');
                              -const SIGNAL = Symbol('signal');
                              -const DATALISTENERS = Symbol('dataListeners');
                              -const DISCARDED = Symbol('discarded');
                              -const defer = (fn) => Promise.resolve().then(fn);
                              -const nodefer = (fn) => fn();
                              -const isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';
                              -const isArrayBufferLike = (b) => b instanceof ArrayBuffer ||
                              -    (!!b &&
                              -        typeof b === 'object' &&
                              -        b.constructor &&
                              -        b.constructor.name === 'ArrayBuffer' &&
                              -        b.byteLength >= 0);
                              -const isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
                              -/**
                              - * Internal class representing a pipe to a destination stream.
                              - *
                              - * @internal
                              - */
                              -class Pipe {
                              -    src;
                              -    dest;
                              -    opts;
                              -    ondrain;
                              -    constructor(src, dest, opts) {
                              -        this.src = src;
                              -        this.dest = dest;
                              -        this.opts = opts;
                              -        this.ondrain = () => src[RESUME]();
                              -        this.dest.on('drain', this.ondrain);
                              -    }
                              -    unpipe() {
                              -        this.dest.removeListener('drain', this.ondrain);
                              -    }
                              -    // only here for the prototype
                              -    /* c8 ignore start */
                              -    proxyErrors(_er) { }
                              -    /* c8 ignore stop */
                              -    end() {
                              -        this.unpipe();
                              -        if (this.opts.end)
                              -            this.dest.end();
                              -    }
                              -}
                              -/**
                              - * Internal class representing a pipe to a destination stream where
                              - * errors are proxied.
                              - *
                              - * @internal
                              - */
                              -class PipeProxyErrors extends Pipe {
                              -    unpipe() {
                              -        this.src.removeListener('error', this.proxyErrors);
                              -        super.unpipe();
                              -    }
                              -    constructor(src, dest, opts) {
                              -        super(src, dest, opts);
                              -        this.proxyErrors = er => dest.emit('error', er);
                              -        src.on('error', this.proxyErrors);
                              -    }
                              -}
                              -const isObjectModeOptions = (o) => !!o.objectMode;
                              -const isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';
                              -/**
                              - * Main export, the Minipass class
                              - *
                              - * `RType` is the type of data emitted, defaults to Buffer
                              - *
                              - * `WType` is the type of data to be written, if RType is buffer or string,
                              - * then any {@link Minipass.ContiguousData} is allowed.
                              - *
                              - * `Events` is the set of event handler signatures that this object
                              - * will emit, see {@link Minipass.Events}
                              - */
                              -class Minipass extends events_1.EventEmitter {
                              -    [FLOWING] = false;
                              -    [PAUSED] = false;
                              -    [PIPES] = [];
                              -    [BUFFER] = [];
                              -    [OBJECTMODE];
                              -    [ENCODING];
                              -    [ASYNC];
                              -    [DECODER];
                              -    [EOF] = false;
                              -    [EMITTED_END] = false;
                              -    [EMITTING_END] = false;
                              -    [CLOSED] = false;
                              -    [EMITTED_ERROR] = null;
                              -    [BUFFERLENGTH] = 0;
                              -    [DESTROYED] = false;
                              -    [SIGNAL];
                              -    [ABORTED] = false;
                              -    [DATALISTENERS] = 0;
                              -    [DISCARDED] = false;
                              -    /**
                              -     * true if the stream can be written
                              -     */
                              -    writable = true;
                              -    /**
                              -     * true if the stream can be read
                              -     */
                              -    readable = true;
                              -    /**
                              -     * If `RType` is Buffer, then options do not need to be provided.
                              -     * Otherwise, an options object must be provided to specify either
                              -     * {@link Minipass.SharedOptions.objectMode} or
                              -     * {@link Minipass.SharedOptions.encoding}, as appropriate.
                              -     */
                              -    constructor(...args) {
                              -        const options = (args[0] ||
                              -            {});
                              -        super();
                              -        if (options.objectMode && typeof options.encoding === 'string') {
                              -            throw new TypeError('Encoding and objectMode may not be used together');
                              -        }
                              -        if (isObjectModeOptions(options)) {
                              -            this[OBJECTMODE] = true;
                              -            this[ENCODING] = null;
                              -        }
                              -        else if (isEncodingOptions(options)) {
                              -            this[ENCODING] = options.encoding;
                              -            this[OBJECTMODE] = false;
                              -        }
                              -        else {
                              -            this[OBJECTMODE] = false;
                              -            this[ENCODING] = null;
                              -        }
                              -        this[ASYNC] = !!options.async;
                              -        this[DECODER] = this[ENCODING]
                              -            ? new string_decoder_1.StringDecoder(this[ENCODING])
                              -            : null;
                              -        //@ts-ignore - private option for debugging and testing
                              -        if (options && options.debugExposeBuffer === true) {
                              -            Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });
                              -        }
                              -        //@ts-ignore - private option for debugging and testing
                              -        if (options && options.debugExposePipes === true) {
                              -            Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });
                              -        }
                              -        const { signal } = options;
                              -        if (signal) {
                              -            this[SIGNAL] = signal;
                              -            if (signal.aborted) {
                              -                this[ABORT]();
                              -            }
                              -            else {
                              -                signal.addEventListener('abort', () => this[ABORT]());
                              -            }
                              -        }
                              -    }
                              -    /**
                              -     * The amount of data stored in the buffer waiting to be read.
                              -     *
                              -     * For Buffer strings, this will be the total byte length.
                              -     * For string encoding streams, this will be the string character length,
                              -     * according to JavaScript's `string.length` logic.
                              -     * For objectMode streams, this is a count of the items waiting to be
                              -     * emitted.
                              -     */
                              -    get bufferLength() {
                              -        return this[BUFFERLENGTH];
                              -    }
                              -    /**
                              -     * The `BufferEncoding` currently in use, or `null`
                              -     */
                              -    get encoding() {
                              -        return this[ENCODING];
                              -    }
                              -    /**
                              -     * @deprecated - This is a read only property
                              -     */
                              -    set encoding(_enc) {
                              -        throw new Error('Encoding must be set at instantiation time');
                              -    }
                              -    /**
                              -     * @deprecated - Encoding may only be set at instantiation time
                              -     */
                              -    setEncoding(_enc) {
                              -        throw new Error('Encoding must be set at instantiation time');
                              -    }
                              -    /**
                              -     * True if this is an objectMode stream
                              -     */
                              -    get objectMode() {
                              -        return this[OBJECTMODE];
                              -    }
                              -    /**
                              -     * @deprecated - This is a read-only property
                              -     */
                              -    set objectMode(_om) {
                              -        throw new Error('objectMode must be set at instantiation time');
                              -    }
                              -    /**
                              -     * true if this is an async stream
                              -     */
                              -    get ['async']() {
                              -        return this[ASYNC];
                              -    }
                              -    /**
                              -     * Set to true to make this stream async.
                              -     *
                              -     * Once set, it cannot be unset, as this would potentially cause incorrect
                              -     * behavior.  Ie, a sync stream can be made async, but an async stream
                              -     * cannot be safely made sync.
                              -     */
                              -    set ['async'](a) {
                              -        this[ASYNC] = this[ASYNC] || !!a;
                              -    }
                              -    // drop everything and get out of the flow completely
                              -    [ABORT]() {
                              -        this[ABORTED] = true;
                              -        this.emit('abort', this[SIGNAL]?.reason);
                              -        this.destroy(this[SIGNAL]?.reason);
                              -    }
                              -    /**
                              -     * True if the stream has been aborted.
                              -     */
                              -    get aborted() {
                              -        return this[ABORTED];
                              -    }
                              -    /**
                              -     * No-op setter. Stream aborted status is set via the AbortSignal provided
                              -     * in the constructor options.
                              -     */
                              -    set aborted(_) { }
                              -    write(chunk, encoding, cb) {
                              -        if (this[ABORTED])
                              -            return false;
                              -        if (this[EOF])
                              -            throw new Error('write after end');
                              -        if (this[DESTROYED]) {
                              -            this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));
                              -            return true;
                              -        }
                              -        if (typeof encoding === 'function') {
                              -            cb = encoding;
                              -            encoding = 'utf8';
                              -        }
                              -        if (!encoding)
                              -            encoding = 'utf8';
                              -        const fn = this[ASYNC] ? defer : nodefer;
                              -        // convert array buffers and typed array views into buffers
                              -        // at some point in the future, we may want to do the opposite!
                              -        // leave strings and buffers as-is
                              -        // anything is only allowed if in object mode, so throw
                              -        if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
                              -            if (isArrayBufferView(chunk)) {
                              -                //@ts-ignore - sinful unsafe type changing
                              -                chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
                              -            }
                              -            else if (isArrayBufferLike(chunk)) {
                              -                //@ts-ignore - sinful unsafe type changing
                              -                chunk = Buffer.from(chunk);
                              -            }
                              -            else if (typeof chunk !== 'string') {
                              -                throw new Error('Non-contiguous data written to non-objectMode stream');
                              -            }
                              -        }
                              -        // handle object mode up front, since it's simpler
                              -        // this yields better performance, fewer checks later.
                              -        if (this[OBJECTMODE]) {
                              -            // maybe impossible?
                              -            /* c8 ignore start */
                              -            if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
                              -                this[FLUSH](true);
                              -            /* c8 ignore stop */
                              -            if (this[FLOWING])
                              -                this.emit('data', chunk);
                              -            else
                              -                this[BUFFERPUSH](chunk);
                              -            if (this[BUFFERLENGTH] !== 0)
                              -                this.emit('readable');
                              -            if (cb)
                              -                fn(cb);
                              -            return this[FLOWING];
                              -        }
                              -        // at this point the chunk is a buffer or string
                              -        // don't buffer it up or send it to the decoder
                              -        if (!chunk.length) {
                              -            if (this[BUFFERLENGTH] !== 0)
                              -                this.emit('readable');
                              -            if (cb)
                              -                fn(cb);
                              -            return this[FLOWING];
                              -        }
                              -        // fast-path writing strings of same encoding to a stream with
                              -        // an empty buffer, skipping the buffer/decoder dance
                              -        if (typeof chunk === 'string' &&
                              -            // unless it is a string already ready for us to use
                              -            !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
                              -            //@ts-ignore - sinful unsafe type change
                              -            chunk = Buffer.from(chunk, encoding);
                              -        }
                              -        if (Buffer.isBuffer(chunk) && this[ENCODING]) {
                              -            //@ts-ignore - sinful unsafe type change
                              -            chunk = this[DECODER].write(chunk);
                              -        }
                              -        // Note: flushing CAN potentially switch us into not-flowing mode
                              -        if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
                              -            this[FLUSH](true);
                              -        if (this[FLOWING])
                              -            this.emit('data', chunk);
                              -        else
                              -            this[BUFFERPUSH](chunk);
                              -        if (this[BUFFERLENGTH] !== 0)
                              -            this.emit('readable');
                              -        if (cb)
                              -            fn(cb);
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * Low-level explicit read method.
                              -     *
                              -     * In objectMode, the argument is ignored, and one item is returned if
                              -     * available.
                              -     *
                              -     * `n` is the number of bytes (or in the case of encoding streams,
                              -     * characters) to consume. If `n` is not provided, then the entire buffer
                              -     * is returned, or `null` is returned if no data is available.
                              -     *
                              -     * If `n` is greater that the amount of data in the internal buffer,
                              -     * then `null` is returned.
                              -     */
                              -    read(n) {
                              -        if (this[DESTROYED])
                              -            return null;
                              -        this[DISCARDED] = false;
                              -        if (this[BUFFERLENGTH] === 0 ||
                              -            n === 0 ||
                              -            (n && n > this[BUFFERLENGTH])) {
                              -            this[MAYBE_EMIT_END]();
                              -            return null;
                              -        }
                              -        if (this[OBJECTMODE])
                              -            n = null;
                              -        if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
                              -            // not object mode, so if we have an encoding, then RType is string
                              -            // otherwise, must be Buffer
                              -            this[BUFFER] = [
                              -                (this[ENCODING]
                              -                    ? this[BUFFER].join('')
                              -                    : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),
                              -            ];
                              -        }
                              -        const ret = this[READ](n || null, this[BUFFER][0]);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [READ](n, chunk) {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERSHIFT]();
                              -        else {
                              -            const c = chunk;
                              -            if (n === c.length || n === null)
                              -                this[BUFFERSHIFT]();
                              -            else if (typeof c === 'string') {
                              -                this[BUFFER][0] = c.slice(n);
                              -                chunk = c.slice(0, n);
                              -                this[BUFFERLENGTH] -= n;
                              -            }
                              -            else {
                              -                this[BUFFER][0] = c.subarray(n);
                              -                chunk = c.subarray(0, n);
                              -                this[BUFFERLENGTH] -= n;
                              -            }
                              -        }
                              -        this.emit('data', chunk);
                              -        if (!this[BUFFER].length && !this[EOF])
                              -            this.emit('drain');
                              -        return chunk;
                              -    }
                              -    end(chunk, encoding, cb) {
                              -        if (typeof chunk === 'function') {
                              -            cb = chunk;
                              -            chunk = undefined;
                              -        }
                              -        if (typeof encoding === 'function') {
                              -            cb = encoding;
                              -            encoding = 'utf8';
                              -        }
                              -        if (chunk !== undefined)
                              -            this.write(chunk, encoding);
                              -        if (cb)
                              -            this.once('end', cb);
                              -        this[EOF] = true;
                              -        this.writable = false;
                              -        // if we haven't written anything, then go ahead and emit,
                              -        // even if we're not reading.
                              -        // we'll re-emit if a new 'end' listener is added anyway.
                              -        // This makes MP more suitable to write-only use cases.
                              -        if (this[FLOWING] || !this[PAUSED])
                              -            this[MAYBE_EMIT_END]();
                              -        return this;
                              -    }
                              -    // don't let the internal resume be overwritten
                              -    [RESUME]() {
                              -        if (this[DESTROYED])
                              -            return;
                              -        if (!this[DATALISTENERS] && !this[PIPES].length) {
                              -            this[DISCARDED] = true;
                              -        }
                              -        this[PAUSED] = false;
                              -        this[FLOWING] = true;
                              -        this.emit('resume');
                              -        if (this[BUFFER].length)
                              -            this[FLUSH]();
                              -        else if (this[EOF])
                              -            this[MAYBE_EMIT_END]();
                              -        else
                              -            this.emit('drain');
                              -    }
                              -    /**
                              -     * Resume the stream if it is currently in a paused state
                              -     *
                              -     * If called when there are no pipe destinations or `data` event listeners,
                              -     * this will place the stream in a "discarded" state, where all data will
                              -     * be thrown away. The discarded state is removed if a pipe destination or
                              -     * data handler is added, if pause() is called, or if any synchronous or
                              -     * asynchronous iteration is started.
                              -     */
                              -    resume() {
                              -        return this[RESUME]();
                              -    }
                              -    /**
                              -     * Pause the stream
                              -     */
                              -    pause() {
                              -        this[FLOWING] = false;
                              -        this[PAUSED] = true;
                              -        this[DISCARDED] = false;
                              -    }
                              -    /**
                              -     * true if the stream has been forcibly destroyed
                              -     */
                              -    get destroyed() {
                              -        return this[DESTROYED];
                              -    }
                              -    /**
                              -     * true if the stream is currently in a flowing state, meaning that
                              -     * any writes will be immediately emitted.
                              -     */
                              -    get flowing() {
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * true if the stream is currently in a paused state
                              -     */
                              -    get paused() {
                              -        return this[PAUSED];
                              -    }
                              -    [BUFFERPUSH](chunk) {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERLENGTH] += 1;
                              -        else
                              -            this[BUFFERLENGTH] += chunk.length;
                              -        this[BUFFER].push(chunk);
                              -    }
                              -    [BUFFERSHIFT]() {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERLENGTH] -= 1;
                              -        else
                              -            this[BUFFERLENGTH] -= this[BUFFER][0].length;
                              -        return this[BUFFER].shift();
                              -    }
                              -    [FLUSH](noDrain = false) {
                              -        do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&
                              -            this[BUFFER].length);
                              -        if (!noDrain && !this[BUFFER].length && !this[EOF])
                              -            this.emit('drain');
                              -    }
                              -    [FLUSHCHUNK](chunk) {
                              -        this.emit('data', chunk);
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * Pipe all data emitted by this stream into the destination provided.
                              -     *
                              -     * Triggers the flow of data.
                              -     */
                              -    pipe(dest, opts) {
                              -        if (this[DESTROYED])
                              -            return dest;
                              -        this[DISCARDED] = false;
                              -        const ended = this[EMITTED_END];
                              -        opts = opts || {};
                              -        if (dest === proc.stdout || dest === proc.stderr)
                              -            opts.end = false;
                              -        else
                              -            opts.end = opts.end !== false;
                              -        opts.proxyErrors = !!opts.proxyErrors;
                              -        // piping an ended stream ends immediately
                              -        if (ended) {
                              -            if (opts.end)
                              -                dest.end();
                              -        }
                              -        else {
                              -            // "as" here just ignores the WType, which pipes don't care about,
                              -            // since they're only consuming from us, and writing to the dest
                              -            this[PIPES].push(!opts.proxyErrors
                              -                ? new Pipe(this, dest, opts)
                              -                : new PipeProxyErrors(this, dest, opts));
                              -            if (this[ASYNC])
                              -                defer(() => this[RESUME]());
                              -            else
                              -                this[RESUME]();
                              -        }
                              -        return dest;
                              -    }
                              -    /**
                              -     * Fully unhook a piped destination stream.
                              -     *
                              -     * If the destination stream was the only consumer of this stream (ie,
                              -     * there are no other piped destinations or `'data'` event listeners)
                              -     * then the flow of data will stop until there is another consumer or
                              -     * {@link Minipass#resume} is explicitly called.
                              -     */
                              -    unpipe(dest) {
                              -        const p = this[PIPES].find(p => p.dest === dest);
                              -        if (p) {
                              -            if (this[PIPES].length === 1) {
                              -                if (this[FLOWING] && this[DATALISTENERS] === 0) {
                              -                    this[FLOWING] = false;
                              -                }
                              -                this[PIPES] = [];
                              -            }
                              -            else
                              -                this[PIPES].splice(this[PIPES].indexOf(p), 1);
                              -            p.unpipe();
                              -        }
                              -    }
                              -    /**
                              -     * Alias for {@link Minipass#on}
                              -     */
                              -    addListener(ev, handler) {
                              -        return this.on(ev, handler);
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.on`, with the following
                              -     * behavior differences to prevent data loss and unnecessary hangs:
                              -     *
                              -     * - Adding a 'data' event handler will trigger the flow of data
                              -     *
                              -     * - Adding a 'readable' event handler when there is data waiting to be read
                              -     *   will cause 'readable' to be emitted immediately.
                              -     *
                              -     * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
                              -     *   already passed will cause the event to be emitted immediately and all
                              -     *   handlers removed.
                              -     *
                              -     * - Adding an 'error' event handler after an error has been emitted will
                              -     *   cause the event to be re-emitted immediately with the error previously
                              -     *   raised.
                              -     */
                              -    on(ev, handler) {
                              -        const ret = super.on(ev, handler);
                              -        if (ev === 'data') {
                              -            this[DISCARDED] = false;
                              -            this[DATALISTENERS]++;
                              -            if (!this[PIPES].length && !this[FLOWING]) {
                              -                this[RESUME]();
                              -            }
                              -        }
                              -        else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {
                              -            super.emit('readable');
                              -        }
                              -        else if (isEndish(ev) && this[EMITTED_END]) {
                              -            super.emit(ev);
                              -            this.removeAllListeners(ev);
                              -        }
                              -        else if (ev === 'error' && this[EMITTED_ERROR]) {
                              -            const h = handler;
                              -            if (this[ASYNC])
                              -                defer(() => h.call(this, this[EMITTED_ERROR]));
                              -            else
                              -                h.call(this, this[EMITTED_ERROR]);
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * Alias for {@link Minipass#off}
                              -     */
                              -    removeListener(ev, handler) {
                              -        return this.off(ev, handler);
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.off`
                              -     *
                              -     * If a 'data' event handler is removed, and it was the last consumer
                              -     * (ie, there are no pipe destinations or other 'data' event listeners),
                              -     * then the flow of data will stop until there is another consumer or
                              -     * {@link Minipass#resume} is explicitly called.
                              -     */
                              -    off(ev, handler) {
                              -        const ret = super.off(ev, handler);
                              -        // if we previously had listeners, and now we don't, and we don't
                              -        // have any pipes, then stop the flow, unless it's been explicitly
                              -        // put in a discarded flowing state via stream.resume().
                              -        if (ev === 'data') {
                              -            this[DATALISTENERS] = this.listeners('data').length;
                              -            if (this[DATALISTENERS] === 0 &&
                              -                !this[DISCARDED] &&
                              -                !this[PIPES].length) {
                              -                this[FLOWING] = false;
                              -            }
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.removeAllListeners`
                              -     *
                              -     * If all 'data' event handlers are removed, and they were the last consumer
                              -     * (ie, there are no pipe destinations), then the flow of data will stop
                              -     * until there is another consumer or {@link Minipass#resume} is explicitly
                              -     * called.
                              -     */
                              -    removeAllListeners(ev) {
                              -        const ret = super.removeAllListeners(ev);
                              -        if (ev === 'data' || ev === undefined) {
                              -            this[DATALISTENERS] = 0;
                              -            if (!this[DISCARDED] && !this[PIPES].length) {
                              -                this[FLOWING] = false;
                              -            }
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * true if the 'end' event has been emitted
                              -     */
                              -    get emittedEnd() {
                              -        return this[EMITTED_END];
                              -    }
                              -    [MAYBE_EMIT_END]() {
                              -        if (!this[EMITTING_END] &&
                              -            !this[EMITTED_END] &&
                              -            !this[DESTROYED] &&
                              -            this[BUFFER].length === 0 &&
                              -            this[EOF]) {
                              -            this[EMITTING_END] = true;
                              -            this.emit('end');
                              -            this.emit('prefinish');
                              -            this.emit('finish');
                              -            if (this[CLOSED])
                              -                this.emit('close');
                              -            this[EMITTING_END] = false;
                              -        }
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.emit`, with the following
                              -     * behavior differences to prevent data loss and unnecessary hangs:
                              -     *
                              -     * If the stream has been destroyed, and the event is something other
                              -     * than 'close' or 'error', then `false` is returned and no handlers
                              -     * are called.
                              -     *
                              -     * If the event is 'end', and has already been emitted, then the event
                              -     * is ignored. If the stream is in a paused or non-flowing state, then
                              -     * the event will be deferred until data flow resumes. If the stream is
                              -     * async, then handlers will be called on the next tick rather than
                              -     * immediately.
                              -     *
                              -     * If the event is 'close', and 'end' has not yet been emitted, then
                              -     * the event will be deferred until after 'end' is emitted.
                              -     *
                              -     * If the event is 'error', and an AbortSignal was provided for the stream,
                              -     * and there are no listeners, then the event is ignored, matching the
                              -     * behavior of node core streams in the presense of an AbortSignal.
                              -     *
                              -     * If the event is 'finish' or 'prefinish', then all listeners will be
                              -     * removed after emitting the event, to prevent double-firing.
                              -     */
                              -    emit(ev, ...args) {
                              -        const data = args[0];
                              -        // error and close are only events allowed after calling destroy()
                              -        if (ev !== 'error' &&
                              -            ev !== 'close' &&
                              -            ev !== DESTROYED &&
                              -            this[DESTROYED]) {
                              -            return false;
                              -        }
                              -        else if (ev === 'data') {
                              -            return !this[OBJECTMODE] && !data
                              -                ? false
                              -                : this[ASYNC]
                              -                    ? (defer(() => this[EMITDATA](data)), true)
                              -                    : this[EMITDATA](data);
                              -        }
                              -        else if (ev === 'end') {
                              -            return this[EMITEND]();
                              -        }
                              -        else if (ev === 'close') {
                              -            this[CLOSED] = true;
                              -            // don't emit close before 'end' and 'finish'
                              -            if (!this[EMITTED_END] && !this[DESTROYED])
                              -                return false;
                              -            const ret = super.emit('close');
                              -            this.removeAllListeners('close');
                              -            return ret;
                              -        }
                              -        else if (ev === 'error') {
                              -            this[EMITTED_ERROR] = data;
                              -            super.emit(ERROR, data);
                              -            const ret = !this[SIGNAL] || this.listeners('error').length
                              -                ? super.emit('error', data)
                              -                : false;
                              -            this[MAYBE_EMIT_END]();
                              -            return ret;
                              -        }
                              -        else if (ev === 'resume') {
                              -            const ret = super.emit('resume');
                              -            this[MAYBE_EMIT_END]();
                              -            return ret;
                              -        }
                              -        else if (ev === 'finish' || ev === 'prefinish') {
                              -            const ret = super.emit(ev);
                              -            this.removeAllListeners(ev);
                              -            return ret;
                              -        }
                              -        // Some other unknown event
                              -        const ret = super.emit(ev, ...args);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [EMITDATA](data) {
                              -        for (const p of this[PIPES]) {
                              -            if (p.dest.write(data) === false)
                              -                this.pause();
                              -        }
                              -        const ret = this[DISCARDED] ? false : super.emit('data', data);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [EMITEND]() {
                              -        if (this[EMITTED_END])
                              -            return false;
                              -        this[EMITTED_END] = true;
                              -        this.readable = false;
                              -        return this[ASYNC]
                              -            ? (defer(() => this[EMITEND2]()), true)
                              -            : this[EMITEND2]();
                              -    }
                              -    [EMITEND2]() {
                              -        if (this[DECODER]) {
                              -            const data = this[DECODER].end();
                              -            if (data) {
                              -                for (const p of this[PIPES]) {
                              -                    p.dest.write(data);
                              -                }
                              -                if (!this[DISCARDED])
                              -                    super.emit('data', data);
                              -            }
                              -        }
                              -        for (const p of this[PIPES]) {
                              -            p.end();
                              -        }
                              -        const ret = super.emit('end');
                              -        this.removeAllListeners('end');
                              -        return ret;
                              -    }
                              -    /**
                              -     * Return a Promise that resolves to an array of all emitted data once
                              -     * the stream ends.
                              -     */
                              -    async collect() {
                              -        const buf = Object.assign([], {
                              -            dataLength: 0,
                              -        });
                              -        if (!this[OBJECTMODE])
                              -            buf.dataLength = 0;
                              -        // set the promise first, in case an error is raised
                              -        // by triggering the flow here.
                              -        const p = this.promise();
                              -        this.on('data', c => {
                              -            buf.push(c);
                              -            if (!this[OBJECTMODE])
                              -                buf.dataLength += c.length;
                              -        });
                              -        await p;
                              -        return buf;
                              -    }
                              -    /**
                              -     * Return a Promise that resolves to the concatenation of all emitted data
                              -     * once the stream ends.
                              -     *
                              -     * Not allowed on objectMode streams.
                              -     */
                              -    async concat() {
                              -        if (this[OBJECTMODE]) {
                              -            throw new Error('cannot concat in objectMode');
                              -        }
                              -        const buf = await this.collect();
                              -        return (this[ENCODING]
                              -            ? buf.join('')
                              -            : Buffer.concat(buf, buf.dataLength));
                              -    }
                              -    /**
                              -     * Return a void Promise that resolves once the stream ends.
                              -     */
                              -    async promise() {
                              -        return new Promise((resolve, reject) => {
                              -            this.on(DESTROYED, () => reject(new Error('stream destroyed')));
                              -            this.on('error', er => reject(er));
                              -            this.on('end', () => resolve());
                              -        });
                              -    }
                              -    /**
                              -     * Asynchronous `for await of` iteration.
                              -     *
                              -     * This will continue emitting all chunks until the stream terminates.
                              -     */
                              -    [Symbol.asyncIterator]() {
                              -        // set this up front, in case the consumer doesn't call next()
                              -        // right away.
                              -        this[DISCARDED] = false;
                              -        let stopped = false;
                              -        const stop = async () => {
                              -            this.pause();
                              -            stopped = true;
                              -            return { value: undefined, done: true };
                              -        };
                              -        const next = () => {
                              -            if (stopped)
                              -                return stop();
                              -            const res = this.read();
                              -            if (res !== null)
                              -                return Promise.resolve({ done: false, value: res });
                              -            if (this[EOF])
                              -                return stop();
                              -            let resolve;
                              -            let reject;
                              -            const onerr = (er) => {
                              -                this.off('data', ondata);
                              -                this.off('end', onend);
                              -                this.off(DESTROYED, ondestroy);
                              -                stop();
                              -                reject(er);
                              -            };
                              -            const ondata = (value) => {
                              -                this.off('error', onerr);
                              -                this.off('end', onend);
                              -                this.off(DESTROYED, ondestroy);
                              -                this.pause();
                              -                resolve({ value, done: !!this[EOF] });
                              -            };
                              -            const onend = () => {
                              -                this.off('error', onerr);
                              -                this.off('data', ondata);
                              -                this.off(DESTROYED, ondestroy);
                              -                stop();
                              -                resolve({ done: true, value: undefined });
                              -            };
                              -            const ondestroy = () => onerr(new Error('stream destroyed'));
                              -            return new Promise((res, rej) => {
                              -                reject = rej;
                              -                resolve = res;
                              -                this.once(DESTROYED, ondestroy);
                              -                this.once('error', onerr);
                              -                this.once('end', onend);
                              -                this.once('data', ondata);
                              -            });
                              -        };
                              -        return {
                              -            next,
                              -            throw: stop,
                              -            return: stop,
                              -            [Symbol.asyncIterator]() {
                              -                return this;
                              -            },
                              -        };
                              -    }
                              -    /**
                              -     * Synchronous `for of` iteration.
                              -     *
                              -     * The iteration will terminate when the internal buffer runs out, even
                              -     * if the stream has not yet terminated.
                              -     */
                              -    [Symbol.iterator]() {
                              -        // set this up front, in case the consumer doesn't call next()
                              -        // right away.
                              -        this[DISCARDED] = false;
                              -        let stopped = false;
                              -        const stop = () => {
                              -            this.pause();
                              -            this.off(ERROR, stop);
                              -            this.off(DESTROYED, stop);
                              -            this.off('end', stop);
                              -            stopped = true;
                              -            return { done: true, value: undefined };
                              -        };
                              -        const next = () => {
                              -            if (stopped)
                              -                return stop();
                              -            const value = this.read();
                              -            return value === null ? stop() : { done: false, value };
                              -        };
                              -        this.once('end', stop);
                              -        this.once(ERROR, stop);
                              -        this.once(DESTROYED, stop);
                              -        return {
                              -            next,
                              -            throw: stop,
                              -            return: stop,
                              -            [Symbol.iterator]() {
                              -                return this;
                              -            },
                              -        };
                              -    }
                              -    /**
                              -     * Destroy a stream, preventing it from being used for any further purpose.
                              -     *
                              -     * If the stream has a `close()` method, then it will be called on
                              -     * destruction.
                              -     *
                              -     * After destruction, any attempt to write data, read data, or emit most
                              -     * events will be ignored.
                              -     *
                              -     * If an error argument is provided, then it will be emitted in an
                              -     * 'error' event.
                              -     */
                              -    destroy(er) {
                              -        if (this[DESTROYED]) {
                              -            if (er)
                              -                this.emit('error', er);
                              -            else
                              -                this.emit(DESTROYED);
                              -            return this;
                              -        }
                              -        this[DESTROYED] = true;
                              -        this[DISCARDED] = true;
                              -        // throw away all buffered data, it's never coming out
                              -        this[BUFFER].length = 0;
                              -        this[BUFFERLENGTH] = 0;
                              -        const wc = this;
                              -        if (typeof wc.close === 'function' && !this[CLOSED])
                              -            wc.close();
                              -        if (er)
                              -            this.emit('error', er);
                              -        // if no error to emit, still reject pending promises
                              -        else
                              -            this.emit(DESTROYED);
                              -        return this;
                              -    }
                              -    /**
                              -     * Alias for {@link isStream}
                              -     *
                              -     * Former export location, maintained for backwards compatibility.
                              -     *
                              -     * @deprecated
                              -     */
                              -    static get isStream() {
                              -        return exports.isStream;
                              -    }
                              -}
                              -exports.Minipass = Minipass;
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/package.json
                              deleted file mode 100644
                              index 5bbefffbabee39..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/cjs/package.json
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -{
                              -  "type": "commonjs"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/index.js b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/index.js
                              deleted file mode 100644
                              index b65fafbae43a4e..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/index.js
                              +++ /dev/null
                              @@ -1,1018 +0,0 @@
                              -const proc = typeof process === 'object' && process
                              -    ? process
                              -    : {
                              -        stdout: null,
                              -        stderr: null,
                              -    };
                              -import { EventEmitter } from 'events';
                              -import Stream from 'stream';
                              -import { StringDecoder } from 'string_decoder';
                              -/**
                              - * Return true if the argument is a Minipass stream, Node stream, or something
                              - * else that Minipass can interact with.
                              - */
                              -export const isStream = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    (s instanceof Minipass ||
                              -        s instanceof Stream ||
                              -        isReadable(s) ||
                              -        isWritable(s));
                              -/**
                              - * Return true if the argument is a valid {@link Minipass.Readable}
                              - */
                              -export const isReadable = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    s instanceof EventEmitter &&
                              -    typeof s.pipe === 'function' &&
                              -    // node core Writable streams have a pipe() method, but it throws
                              -    s.pipe !== Stream.Writable.prototype.pipe;
                              -/**
                              - * Return true if the argument is a valid {@link Minipass.Writable}
                              - */
                              -export const isWritable = (s) => !!s &&
                              -    typeof s === 'object' &&
                              -    s instanceof EventEmitter &&
                              -    typeof s.write === 'function' &&
                              -    typeof s.end === 'function';
                              -const EOF = Symbol('EOF');
                              -const MAYBE_EMIT_END = Symbol('maybeEmitEnd');
                              -const EMITTED_END = Symbol('emittedEnd');
                              -const EMITTING_END = Symbol('emittingEnd');
                              -const EMITTED_ERROR = Symbol('emittedError');
                              -const CLOSED = Symbol('closed');
                              -const READ = Symbol('read');
                              -const FLUSH = Symbol('flush');
                              -const FLUSHCHUNK = Symbol('flushChunk');
                              -const ENCODING = Symbol('encoding');
                              -const DECODER = Symbol('decoder');
                              -const FLOWING = Symbol('flowing');
                              -const PAUSED = Symbol('paused');
                              -const RESUME = Symbol('resume');
                              -const BUFFER = Symbol('buffer');
                              -const PIPES = Symbol('pipes');
                              -const BUFFERLENGTH = Symbol('bufferLength');
                              -const BUFFERPUSH = Symbol('bufferPush');
                              -const BUFFERSHIFT = Symbol('bufferShift');
                              -const OBJECTMODE = Symbol('objectMode');
                              -// internal event when stream is destroyed
                              -const DESTROYED = Symbol('destroyed');
                              -// internal event when stream has an error
                              -const ERROR = Symbol('error');
                              -const EMITDATA = Symbol('emitData');
                              -const EMITEND = Symbol('emitEnd');
                              -const EMITEND2 = Symbol('emitEnd2');
                              -const ASYNC = Symbol('async');
                              -const ABORT = Symbol('abort');
                              -const ABORTED = Symbol('aborted');
                              -const SIGNAL = Symbol('signal');
                              -const DATALISTENERS = Symbol('dataListeners');
                              -const DISCARDED = Symbol('discarded');
                              -const defer = (fn) => Promise.resolve().then(fn);
                              -const nodefer = (fn) => fn();
                              -const isEndish = (ev) => ev === 'end' || ev === 'finish' || ev === 'prefinish';
                              -const isArrayBufferLike = (b) => b instanceof ArrayBuffer ||
                              -    (!!b &&
                              -        typeof b === 'object' &&
                              -        b.constructor &&
                              -        b.constructor.name === 'ArrayBuffer' &&
                              -        b.byteLength >= 0);
                              -const isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
                              -/**
                              - * Internal class representing a pipe to a destination stream.
                              - *
                              - * @internal
                              - */
                              -class Pipe {
                              -    src;
                              -    dest;
                              -    opts;
                              -    ondrain;
                              -    constructor(src, dest, opts) {
                              -        this.src = src;
                              -        this.dest = dest;
                              -        this.opts = opts;
                              -        this.ondrain = () => src[RESUME]();
                              -        this.dest.on('drain', this.ondrain);
                              -    }
                              -    unpipe() {
                              -        this.dest.removeListener('drain', this.ondrain);
                              -    }
                              -    // only here for the prototype
                              -    /* c8 ignore start */
                              -    proxyErrors(_er) { }
                              -    /* c8 ignore stop */
                              -    end() {
                              -        this.unpipe();
                              -        if (this.opts.end)
                              -            this.dest.end();
                              -    }
                              -}
                              -/**
                              - * Internal class representing a pipe to a destination stream where
                              - * errors are proxied.
                              - *
                              - * @internal
                              - */
                              -class PipeProxyErrors extends Pipe {
                              -    unpipe() {
                              -        this.src.removeListener('error', this.proxyErrors);
                              -        super.unpipe();
                              -    }
                              -    constructor(src, dest, opts) {
                              -        super(src, dest, opts);
                              -        this.proxyErrors = er => dest.emit('error', er);
                              -        src.on('error', this.proxyErrors);
                              -    }
                              -}
                              -const isObjectModeOptions = (o) => !!o.objectMode;
                              -const isEncodingOptions = (o) => !o.objectMode && !!o.encoding && o.encoding !== 'buffer';
                              -/**
                              - * Main export, the Minipass class
                              - *
                              - * `RType` is the type of data emitted, defaults to Buffer
                              - *
                              - * `WType` is the type of data to be written, if RType is buffer or string,
                              - * then any {@link Minipass.ContiguousData} is allowed.
                              - *
                              - * `Events` is the set of event handler signatures that this object
                              - * will emit, see {@link Minipass.Events}
                              - */
                              -export class Minipass extends EventEmitter {
                              -    [FLOWING] = false;
                              -    [PAUSED] = false;
                              -    [PIPES] = [];
                              -    [BUFFER] = [];
                              -    [OBJECTMODE];
                              -    [ENCODING];
                              -    [ASYNC];
                              -    [DECODER];
                              -    [EOF] = false;
                              -    [EMITTED_END] = false;
                              -    [EMITTING_END] = false;
                              -    [CLOSED] = false;
                              -    [EMITTED_ERROR] = null;
                              -    [BUFFERLENGTH] = 0;
                              -    [DESTROYED] = false;
                              -    [SIGNAL];
                              -    [ABORTED] = false;
                              -    [DATALISTENERS] = 0;
                              -    [DISCARDED] = false;
                              -    /**
                              -     * true if the stream can be written
                              -     */
                              -    writable = true;
                              -    /**
                              -     * true if the stream can be read
                              -     */
                              -    readable = true;
                              -    /**
                              -     * If `RType` is Buffer, then options do not need to be provided.
                              -     * Otherwise, an options object must be provided to specify either
                              -     * {@link Minipass.SharedOptions.objectMode} or
                              -     * {@link Minipass.SharedOptions.encoding}, as appropriate.
                              -     */
                              -    constructor(...args) {
                              -        const options = (args[0] ||
                              -            {});
                              -        super();
                              -        if (options.objectMode && typeof options.encoding === 'string') {
                              -            throw new TypeError('Encoding and objectMode may not be used together');
                              -        }
                              -        if (isObjectModeOptions(options)) {
                              -            this[OBJECTMODE] = true;
                              -            this[ENCODING] = null;
                              -        }
                              -        else if (isEncodingOptions(options)) {
                              -            this[ENCODING] = options.encoding;
                              -            this[OBJECTMODE] = false;
                              -        }
                              -        else {
                              -            this[OBJECTMODE] = false;
                              -            this[ENCODING] = null;
                              -        }
                              -        this[ASYNC] = !!options.async;
                              -        this[DECODER] = this[ENCODING]
                              -            ? new StringDecoder(this[ENCODING])
                              -            : null;
                              -        //@ts-ignore - private option for debugging and testing
                              -        if (options && options.debugExposeBuffer === true) {
                              -            Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] });
                              -        }
                              -        //@ts-ignore - private option for debugging and testing
                              -        if (options && options.debugExposePipes === true) {
                              -            Object.defineProperty(this, 'pipes', { get: () => this[PIPES] });
                              -        }
                              -        const { signal } = options;
                              -        if (signal) {
                              -            this[SIGNAL] = signal;
                              -            if (signal.aborted) {
                              -                this[ABORT]();
                              -            }
                              -            else {
                              -                signal.addEventListener('abort', () => this[ABORT]());
                              -            }
                              -        }
                              -    }
                              -    /**
                              -     * The amount of data stored in the buffer waiting to be read.
                              -     *
                              -     * For Buffer strings, this will be the total byte length.
                              -     * For string encoding streams, this will be the string character length,
                              -     * according to JavaScript's `string.length` logic.
                              -     * For objectMode streams, this is a count of the items waiting to be
                              -     * emitted.
                              -     */
                              -    get bufferLength() {
                              -        return this[BUFFERLENGTH];
                              -    }
                              -    /**
                              -     * The `BufferEncoding` currently in use, or `null`
                              -     */
                              -    get encoding() {
                              -        return this[ENCODING];
                              -    }
                              -    /**
                              -     * @deprecated - This is a read only property
                              -     */
                              -    set encoding(_enc) {
                              -        throw new Error('Encoding must be set at instantiation time');
                              -    }
                              -    /**
                              -     * @deprecated - Encoding may only be set at instantiation time
                              -     */
                              -    setEncoding(_enc) {
                              -        throw new Error('Encoding must be set at instantiation time');
                              -    }
                              -    /**
                              -     * True if this is an objectMode stream
                              -     */
                              -    get objectMode() {
                              -        return this[OBJECTMODE];
                              -    }
                              -    /**
                              -     * @deprecated - This is a read-only property
                              -     */
                              -    set objectMode(_om) {
                              -        throw new Error('objectMode must be set at instantiation time');
                              -    }
                              -    /**
                              -     * true if this is an async stream
                              -     */
                              -    get ['async']() {
                              -        return this[ASYNC];
                              -    }
                              -    /**
                              -     * Set to true to make this stream async.
                              -     *
                              -     * Once set, it cannot be unset, as this would potentially cause incorrect
                              -     * behavior.  Ie, a sync stream can be made async, but an async stream
                              -     * cannot be safely made sync.
                              -     */
                              -    set ['async'](a) {
                              -        this[ASYNC] = this[ASYNC] || !!a;
                              -    }
                              -    // drop everything and get out of the flow completely
                              -    [ABORT]() {
                              -        this[ABORTED] = true;
                              -        this.emit('abort', this[SIGNAL]?.reason);
                              -        this.destroy(this[SIGNAL]?.reason);
                              -    }
                              -    /**
                              -     * True if the stream has been aborted.
                              -     */
                              -    get aborted() {
                              -        return this[ABORTED];
                              -    }
                              -    /**
                              -     * No-op setter. Stream aborted status is set via the AbortSignal provided
                              -     * in the constructor options.
                              -     */
                              -    set aborted(_) { }
                              -    write(chunk, encoding, cb) {
                              -        if (this[ABORTED])
                              -            return false;
                              -        if (this[EOF])
                              -            throw new Error('write after end');
                              -        if (this[DESTROYED]) {
                              -            this.emit('error', Object.assign(new Error('Cannot call write after a stream was destroyed'), { code: 'ERR_STREAM_DESTROYED' }));
                              -            return true;
                              -        }
                              -        if (typeof encoding === 'function') {
                              -            cb = encoding;
                              -            encoding = 'utf8';
                              -        }
                              -        if (!encoding)
                              -            encoding = 'utf8';
                              -        const fn = this[ASYNC] ? defer : nodefer;
                              -        // convert array buffers and typed array views into buffers
                              -        // at some point in the future, we may want to do the opposite!
                              -        // leave strings and buffers as-is
                              -        // anything is only allowed if in object mode, so throw
                              -        if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
                              -            if (isArrayBufferView(chunk)) {
                              -                //@ts-ignore - sinful unsafe type changing
                              -                chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
                              -            }
                              -            else if (isArrayBufferLike(chunk)) {
                              -                //@ts-ignore - sinful unsafe type changing
                              -                chunk = Buffer.from(chunk);
                              -            }
                              -            else if (typeof chunk !== 'string') {
                              -                throw new Error('Non-contiguous data written to non-objectMode stream');
                              -            }
                              -        }
                              -        // handle object mode up front, since it's simpler
                              -        // this yields better performance, fewer checks later.
                              -        if (this[OBJECTMODE]) {
                              -            // maybe impossible?
                              -            /* c8 ignore start */
                              -            if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
                              -                this[FLUSH](true);
                              -            /* c8 ignore stop */
                              -            if (this[FLOWING])
                              -                this.emit('data', chunk);
                              -            else
                              -                this[BUFFERPUSH](chunk);
                              -            if (this[BUFFERLENGTH] !== 0)
                              -                this.emit('readable');
                              -            if (cb)
                              -                fn(cb);
                              -            return this[FLOWING];
                              -        }
                              -        // at this point the chunk is a buffer or string
                              -        // don't buffer it up or send it to the decoder
                              -        if (!chunk.length) {
                              -            if (this[BUFFERLENGTH] !== 0)
                              -                this.emit('readable');
                              -            if (cb)
                              -                fn(cb);
                              -            return this[FLOWING];
                              -        }
                              -        // fast-path writing strings of same encoding to a stream with
                              -        // an empty buffer, skipping the buffer/decoder dance
                              -        if (typeof chunk === 'string' &&
                              -            // unless it is a string already ready for us to use
                              -            !(encoding === this[ENCODING] && !this[DECODER]?.lastNeed)) {
                              -            //@ts-ignore - sinful unsafe type change
                              -            chunk = Buffer.from(chunk, encoding);
                              -        }
                              -        if (Buffer.isBuffer(chunk) && this[ENCODING]) {
                              -            //@ts-ignore - sinful unsafe type change
                              -            chunk = this[DECODER].write(chunk);
                              -        }
                              -        // Note: flushing CAN potentially switch us into not-flowing mode
                              -        if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
                              -            this[FLUSH](true);
                              -        if (this[FLOWING])
                              -            this.emit('data', chunk);
                              -        else
                              -            this[BUFFERPUSH](chunk);
                              -        if (this[BUFFERLENGTH] !== 0)
                              -            this.emit('readable');
                              -        if (cb)
                              -            fn(cb);
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * Low-level explicit read method.
                              -     *
                              -     * In objectMode, the argument is ignored, and one item is returned if
                              -     * available.
                              -     *
                              -     * `n` is the number of bytes (or in the case of encoding streams,
                              -     * characters) to consume. If `n` is not provided, then the entire buffer
                              -     * is returned, or `null` is returned if no data is available.
                              -     *
                              -     * If `n` is greater that the amount of data in the internal buffer,
                              -     * then `null` is returned.
                              -     */
                              -    read(n) {
                              -        if (this[DESTROYED])
                              -            return null;
                              -        this[DISCARDED] = false;
                              -        if (this[BUFFERLENGTH] === 0 ||
                              -            n === 0 ||
                              -            (n && n > this[BUFFERLENGTH])) {
                              -            this[MAYBE_EMIT_END]();
                              -            return null;
                              -        }
                              -        if (this[OBJECTMODE])
                              -            n = null;
                              -        if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
                              -            // not object mode, so if we have an encoding, then RType is string
                              -            // otherwise, must be Buffer
                              -            this[BUFFER] = [
                              -                (this[ENCODING]
                              -                    ? this[BUFFER].join('')
                              -                    : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])),
                              -            ];
                              -        }
                              -        const ret = this[READ](n || null, this[BUFFER][0]);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [READ](n, chunk) {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERSHIFT]();
                              -        else {
                              -            const c = chunk;
                              -            if (n === c.length || n === null)
                              -                this[BUFFERSHIFT]();
                              -            else if (typeof c === 'string') {
                              -                this[BUFFER][0] = c.slice(n);
                              -                chunk = c.slice(0, n);
                              -                this[BUFFERLENGTH] -= n;
                              -            }
                              -            else {
                              -                this[BUFFER][0] = c.subarray(n);
                              -                chunk = c.subarray(0, n);
                              -                this[BUFFERLENGTH] -= n;
                              -            }
                              -        }
                              -        this.emit('data', chunk);
                              -        if (!this[BUFFER].length && !this[EOF])
                              -            this.emit('drain');
                              -        return chunk;
                              -    }
                              -    end(chunk, encoding, cb) {
                              -        if (typeof chunk === 'function') {
                              -            cb = chunk;
                              -            chunk = undefined;
                              -        }
                              -        if (typeof encoding === 'function') {
                              -            cb = encoding;
                              -            encoding = 'utf8';
                              -        }
                              -        if (chunk !== undefined)
                              -            this.write(chunk, encoding);
                              -        if (cb)
                              -            this.once('end', cb);
                              -        this[EOF] = true;
                              -        this.writable = false;
                              -        // if we haven't written anything, then go ahead and emit,
                              -        // even if we're not reading.
                              -        // we'll re-emit if a new 'end' listener is added anyway.
                              -        // This makes MP more suitable to write-only use cases.
                              -        if (this[FLOWING] || !this[PAUSED])
                              -            this[MAYBE_EMIT_END]();
                              -        return this;
                              -    }
                              -    // don't let the internal resume be overwritten
                              -    [RESUME]() {
                              -        if (this[DESTROYED])
                              -            return;
                              -        if (!this[DATALISTENERS] && !this[PIPES].length) {
                              -            this[DISCARDED] = true;
                              -        }
                              -        this[PAUSED] = false;
                              -        this[FLOWING] = true;
                              -        this.emit('resume');
                              -        if (this[BUFFER].length)
                              -            this[FLUSH]();
                              -        else if (this[EOF])
                              -            this[MAYBE_EMIT_END]();
                              -        else
                              -            this.emit('drain');
                              -    }
                              -    /**
                              -     * Resume the stream if it is currently in a paused state
                              -     *
                              -     * If called when there are no pipe destinations or `data` event listeners,
                              -     * this will place the stream in a "discarded" state, where all data will
                              -     * be thrown away. The discarded state is removed if a pipe destination or
                              -     * data handler is added, if pause() is called, or if any synchronous or
                              -     * asynchronous iteration is started.
                              -     */
                              -    resume() {
                              -        return this[RESUME]();
                              -    }
                              -    /**
                              -     * Pause the stream
                              -     */
                              -    pause() {
                              -        this[FLOWING] = false;
                              -        this[PAUSED] = true;
                              -        this[DISCARDED] = false;
                              -    }
                              -    /**
                              -     * true if the stream has been forcibly destroyed
                              -     */
                              -    get destroyed() {
                              -        return this[DESTROYED];
                              -    }
                              -    /**
                              -     * true if the stream is currently in a flowing state, meaning that
                              -     * any writes will be immediately emitted.
                              -     */
                              -    get flowing() {
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * true if the stream is currently in a paused state
                              -     */
                              -    get paused() {
                              -        return this[PAUSED];
                              -    }
                              -    [BUFFERPUSH](chunk) {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERLENGTH] += 1;
                              -        else
                              -            this[BUFFERLENGTH] += chunk.length;
                              -        this[BUFFER].push(chunk);
                              -    }
                              -    [BUFFERSHIFT]() {
                              -        if (this[OBJECTMODE])
                              -            this[BUFFERLENGTH] -= 1;
                              -        else
                              -            this[BUFFERLENGTH] -= this[BUFFER][0].length;
                              -        return this[BUFFER].shift();
                              -    }
                              -    [FLUSH](noDrain = false) {
                              -        do { } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) &&
                              -            this[BUFFER].length);
                              -        if (!noDrain && !this[BUFFER].length && !this[EOF])
                              -            this.emit('drain');
                              -    }
                              -    [FLUSHCHUNK](chunk) {
                              -        this.emit('data', chunk);
                              -        return this[FLOWING];
                              -    }
                              -    /**
                              -     * Pipe all data emitted by this stream into the destination provided.
                              -     *
                              -     * Triggers the flow of data.
                              -     */
                              -    pipe(dest, opts) {
                              -        if (this[DESTROYED])
                              -            return dest;
                              -        this[DISCARDED] = false;
                              -        const ended = this[EMITTED_END];
                              -        opts = opts || {};
                              -        if (dest === proc.stdout || dest === proc.stderr)
                              -            opts.end = false;
                              -        else
                              -            opts.end = opts.end !== false;
                              -        opts.proxyErrors = !!opts.proxyErrors;
                              -        // piping an ended stream ends immediately
                              -        if (ended) {
                              -            if (opts.end)
                              -                dest.end();
                              -        }
                              -        else {
                              -            // "as" here just ignores the WType, which pipes don't care about,
                              -            // since they're only consuming from us, and writing to the dest
                              -            this[PIPES].push(!opts.proxyErrors
                              -                ? new Pipe(this, dest, opts)
                              -                : new PipeProxyErrors(this, dest, opts));
                              -            if (this[ASYNC])
                              -                defer(() => this[RESUME]());
                              -            else
                              -                this[RESUME]();
                              -        }
                              -        return dest;
                              -    }
                              -    /**
                              -     * Fully unhook a piped destination stream.
                              -     *
                              -     * If the destination stream was the only consumer of this stream (ie,
                              -     * there are no other piped destinations or `'data'` event listeners)
                              -     * then the flow of data will stop until there is another consumer or
                              -     * {@link Minipass#resume} is explicitly called.
                              -     */
                              -    unpipe(dest) {
                              -        const p = this[PIPES].find(p => p.dest === dest);
                              -        if (p) {
                              -            if (this[PIPES].length === 1) {
                              -                if (this[FLOWING] && this[DATALISTENERS] === 0) {
                              -                    this[FLOWING] = false;
                              -                }
                              -                this[PIPES] = [];
                              -            }
                              -            else
                              -                this[PIPES].splice(this[PIPES].indexOf(p), 1);
                              -            p.unpipe();
                              -        }
                              -    }
                              -    /**
                              -     * Alias for {@link Minipass#on}
                              -     */
                              -    addListener(ev, handler) {
                              -        return this.on(ev, handler);
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.on`, with the following
                              -     * behavior differences to prevent data loss and unnecessary hangs:
                              -     *
                              -     * - Adding a 'data' event handler will trigger the flow of data
                              -     *
                              -     * - Adding a 'readable' event handler when there is data waiting to be read
                              -     *   will cause 'readable' to be emitted immediately.
                              -     *
                              -     * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
                              -     *   already passed will cause the event to be emitted immediately and all
                              -     *   handlers removed.
                              -     *
                              -     * - Adding an 'error' event handler after an error has been emitted will
                              -     *   cause the event to be re-emitted immediately with the error previously
                              -     *   raised.
                              -     */
                              -    on(ev, handler) {
                              -        const ret = super.on(ev, handler);
                              -        if (ev === 'data') {
                              -            this[DISCARDED] = false;
                              -            this[DATALISTENERS]++;
                              -            if (!this[PIPES].length && !this[FLOWING]) {
                              -                this[RESUME]();
                              -            }
                              -        }
                              -        else if (ev === 'readable' && this[BUFFERLENGTH] !== 0) {
                              -            super.emit('readable');
                              -        }
                              -        else if (isEndish(ev) && this[EMITTED_END]) {
                              -            super.emit(ev);
                              -            this.removeAllListeners(ev);
                              -        }
                              -        else if (ev === 'error' && this[EMITTED_ERROR]) {
                              -            const h = handler;
                              -            if (this[ASYNC])
                              -                defer(() => h.call(this, this[EMITTED_ERROR]));
                              -            else
                              -                h.call(this, this[EMITTED_ERROR]);
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * Alias for {@link Minipass#off}
                              -     */
                              -    removeListener(ev, handler) {
                              -        return this.off(ev, handler);
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.off`
                              -     *
                              -     * If a 'data' event handler is removed, and it was the last consumer
                              -     * (ie, there are no pipe destinations or other 'data' event listeners),
                              -     * then the flow of data will stop until there is another consumer or
                              -     * {@link Minipass#resume} is explicitly called.
                              -     */
                              -    off(ev, handler) {
                              -        const ret = super.off(ev, handler);
                              -        // if we previously had listeners, and now we don't, and we don't
                              -        // have any pipes, then stop the flow, unless it's been explicitly
                              -        // put in a discarded flowing state via stream.resume().
                              -        if (ev === 'data') {
                              -            this[DATALISTENERS] = this.listeners('data').length;
                              -            if (this[DATALISTENERS] === 0 &&
                              -                !this[DISCARDED] &&
                              -                !this[PIPES].length) {
                              -                this[FLOWING] = false;
                              -            }
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.removeAllListeners`
                              -     *
                              -     * If all 'data' event handlers are removed, and they were the last consumer
                              -     * (ie, there are no pipe destinations), then the flow of data will stop
                              -     * until there is another consumer or {@link Minipass#resume} is explicitly
                              -     * called.
                              -     */
                              -    removeAllListeners(ev) {
                              -        const ret = super.removeAllListeners(ev);
                              -        if (ev === 'data' || ev === undefined) {
                              -            this[DATALISTENERS] = 0;
                              -            if (!this[DISCARDED] && !this[PIPES].length) {
                              -                this[FLOWING] = false;
                              -            }
                              -        }
                              -        return ret;
                              -    }
                              -    /**
                              -     * true if the 'end' event has been emitted
                              -     */
                              -    get emittedEnd() {
                              -        return this[EMITTED_END];
                              -    }
                              -    [MAYBE_EMIT_END]() {
                              -        if (!this[EMITTING_END] &&
                              -            !this[EMITTED_END] &&
                              -            !this[DESTROYED] &&
                              -            this[BUFFER].length === 0 &&
                              -            this[EOF]) {
                              -            this[EMITTING_END] = true;
                              -            this.emit('end');
                              -            this.emit('prefinish');
                              -            this.emit('finish');
                              -            if (this[CLOSED])
                              -                this.emit('close');
                              -            this[EMITTING_END] = false;
                              -        }
                              -    }
                              -    /**
                              -     * Mostly identical to `EventEmitter.emit`, with the following
                              -     * behavior differences to prevent data loss and unnecessary hangs:
                              -     *
                              -     * If the stream has been destroyed, and the event is something other
                              -     * than 'close' or 'error', then `false` is returned and no handlers
                              -     * are called.
                              -     *
                              -     * If the event is 'end', and has already been emitted, then the event
                              -     * is ignored. If the stream is in a paused or non-flowing state, then
                              -     * the event will be deferred until data flow resumes. If the stream is
                              -     * async, then handlers will be called on the next tick rather than
                              -     * immediately.
                              -     *
                              -     * If the event is 'close', and 'end' has not yet been emitted, then
                              -     * the event will be deferred until after 'end' is emitted.
                              -     *
                              -     * If the event is 'error', and an AbortSignal was provided for the stream,
                              -     * and there are no listeners, then the event is ignored, matching the
                              -     * behavior of node core streams in the presense of an AbortSignal.
                              -     *
                              -     * If the event is 'finish' or 'prefinish', then all listeners will be
                              -     * removed after emitting the event, to prevent double-firing.
                              -     */
                              -    emit(ev, ...args) {
                              -        const data = args[0];
                              -        // error and close are only events allowed after calling destroy()
                              -        if (ev !== 'error' &&
                              -            ev !== 'close' &&
                              -            ev !== DESTROYED &&
                              -            this[DESTROYED]) {
                              -            return false;
                              -        }
                              -        else if (ev === 'data') {
                              -            return !this[OBJECTMODE] && !data
                              -                ? false
                              -                : this[ASYNC]
                              -                    ? (defer(() => this[EMITDATA](data)), true)
                              -                    : this[EMITDATA](data);
                              -        }
                              -        else if (ev === 'end') {
                              -            return this[EMITEND]();
                              -        }
                              -        else if (ev === 'close') {
                              -            this[CLOSED] = true;
                              -            // don't emit close before 'end' and 'finish'
                              -            if (!this[EMITTED_END] && !this[DESTROYED])
                              -                return false;
                              -            const ret = super.emit('close');
                              -            this.removeAllListeners('close');
                              -            return ret;
                              -        }
                              -        else if (ev === 'error') {
                              -            this[EMITTED_ERROR] = data;
                              -            super.emit(ERROR, data);
                              -            const ret = !this[SIGNAL] || this.listeners('error').length
                              -                ? super.emit('error', data)
                              -                : false;
                              -            this[MAYBE_EMIT_END]();
                              -            return ret;
                              -        }
                              -        else if (ev === 'resume') {
                              -            const ret = super.emit('resume');
                              -            this[MAYBE_EMIT_END]();
                              -            return ret;
                              -        }
                              -        else if (ev === 'finish' || ev === 'prefinish') {
                              -            const ret = super.emit(ev);
                              -            this.removeAllListeners(ev);
                              -            return ret;
                              -        }
                              -        // Some other unknown event
                              -        const ret = super.emit(ev, ...args);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [EMITDATA](data) {
                              -        for (const p of this[PIPES]) {
                              -            if (p.dest.write(data) === false)
                              -                this.pause();
                              -        }
                              -        const ret = this[DISCARDED] ? false : super.emit('data', data);
                              -        this[MAYBE_EMIT_END]();
                              -        return ret;
                              -    }
                              -    [EMITEND]() {
                              -        if (this[EMITTED_END])
                              -            return false;
                              -        this[EMITTED_END] = true;
                              -        this.readable = false;
                              -        return this[ASYNC]
                              -            ? (defer(() => this[EMITEND2]()), true)
                              -            : this[EMITEND2]();
                              -    }
                              -    [EMITEND2]() {
                              -        if (this[DECODER]) {
                              -            const data = this[DECODER].end();
                              -            if (data) {
                              -                for (const p of this[PIPES]) {
                              -                    p.dest.write(data);
                              -                }
                              -                if (!this[DISCARDED])
                              -                    super.emit('data', data);
                              -            }
                              -        }
                              -        for (const p of this[PIPES]) {
                              -            p.end();
                              -        }
                              -        const ret = super.emit('end');
                              -        this.removeAllListeners('end');
                              -        return ret;
                              -    }
                              -    /**
                              -     * Return a Promise that resolves to an array of all emitted data once
                              -     * the stream ends.
                              -     */
                              -    async collect() {
                              -        const buf = Object.assign([], {
                              -            dataLength: 0,
                              -        });
                              -        if (!this[OBJECTMODE])
                              -            buf.dataLength = 0;
                              -        // set the promise first, in case an error is raised
                              -        // by triggering the flow here.
                              -        const p = this.promise();
                              -        this.on('data', c => {
                              -            buf.push(c);
                              -            if (!this[OBJECTMODE])
                              -                buf.dataLength += c.length;
                              -        });
                              -        await p;
                              -        return buf;
                              -    }
                              -    /**
                              -     * Return a Promise that resolves to the concatenation of all emitted data
                              -     * once the stream ends.
                              -     *
                              -     * Not allowed on objectMode streams.
                              -     */
                              -    async concat() {
                              -        if (this[OBJECTMODE]) {
                              -            throw new Error('cannot concat in objectMode');
                              -        }
                              -        const buf = await this.collect();
                              -        return (this[ENCODING]
                              -            ? buf.join('')
                              -            : Buffer.concat(buf, buf.dataLength));
                              -    }
                              -    /**
                              -     * Return a void Promise that resolves once the stream ends.
                              -     */
                              -    async promise() {
                              -        return new Promise((resolve, reject) => {
                              -            this.on(DESTROYED, () => reject(new Error('stream destroyed')));
                              -            this.on('error', er => reject(er));
                              -            this.on('end', () => resolve());
                              -        });
                              -    }
                              -    /**
                              -     * Asynchronous `for await of` iteration.
                              -     *
                              -     * This will continue emitting all chunks until the stream terminates.
                              -     */
                              -    [Symbol.asyncIterator]() {
                              -        // set this up front, in case the consumer doesn't call next()
                              -        // right away.
                              -        this[DISCARDED] = false;
                              -        let stopped = false;
                              -        const stop = async () => {
                              -            this.pause();
                              -            stopped = true;
                              -            return { value: undefined, done: true };
                              -        };
                              -        const next = () => {
                              -            if (stopped)
                              -                return stop();
                              -            const res = this.read();
                              -            if (res !== null)
                              -                return Promise.resolve({ done: false, value: res });
                              -            if (this[EOF])
                              -                return stop();
                              -            let resolve;
                              -            let reject;
                              -            const onerr = (er) => {
                              -                this.off('data', ondata);
                              -                this.off('end', onend);
                              -                this.off(DESTROYED, ondestroy);
                              -                stop();
                              -                reject(er);
                              -            };
                              -            const ondata = (value) => {
                              -                this.off('error', onerr);
                              -                this.off('end', onend);
                              -                this.off(DESTROYED, ondestroy);
                              -                this.pause();
                              -                resolve({ value, done: !!this[EOF] });
                              -            };
                              -            const onend = () => {
                              -                this.off('error', onerr);
                              -                this.off('data', ondata);
                              -                this.off(DESTROYED, ondestroy);
                              -                stop();
                              -                resolve({ done: true, value: undefined });
                              -            };
                              -            const ondestroy = () => onerr(new Error('stream destroyed'));
                              -            return new Promise((res, rej) => {
                              -                reject = rej;
                              -                resolve = res;
                              -                this.once(DESTROYED, ondestroy);
                              -                this.once('error', onerr);
                              -                this.once('end', onend);
                              -                this.once('data', ondata);
                              -            });
                              -        };
                              -        return {
                              -            next,
                              -            throw: stop,
                              -            return: stop,
                              -            [Symbol.asyncIterator]() {
                              -                return this;
                              -            },
                              -        };
                              -    }
                              -    /**
                              -     * Synchronous `for of` iteration.
                              -     *
                              -     * The iteration will terminate when the internal buffer runs out, even
                              -     * if the stream has not yet terminated.
                              -     */
                              -    [Symbol.iterator]() {
                              -        // set this up front, in case the consumer doesn't call next()
                              -        // right away.
                              -        this[DISCARDED] = false;
                              -        let stopped = false;
                              -        const stop = () => {
                              -            this.pause();
                              -            this.off(ERROR, stop);
                              -            this.off(DESTROYED, stop);
                              -            this.off('end', stop);
                              -            stopped = true;
                              -            return { done: true, value: undefined };
                              -        };
                              -        const next = () => {
                              -            if (stopped)
                              -                return stop();
                              -            const value = this.read();
                              -            return value === null ? stop() : { done: false, value };
                              -        };
                              -        this.once('end', stop);
                              -        this.once(ERROR, stop);
                              -        this.once(DESTROYED, stop);
                              -        return {
                              -            next,
                              -            throw: stop,
                              -            return: stop,
                              -            [Symbol.iterator]() {
                              -                return this;
                              -            },
                              -        };
                              -    }
                              -    /**
                              -     * Destroy a stream, preventing it from being used for any further purpose.
                              -     *
                              -     * If the stream has a `close()` method, then it will be called on
                              -     * destruction.
                              -     *
                              -     * After destruction, any attempt to write data, read data, or emit most
                              -     * events will be ignored.
                              -     *
                              -     * If an error argument is provided, then it will be emitted in an
                              -     * 'error' event.
                              -     */
                              -    destroy(er) {
                              -        if (this[DESTROYED]) {
                              -            if (er)
                              -                this.emit('error', er);
                              -            else
                              -                this.emit(DESTROYED);
                              -            return this;
                              -        }
                              -        this[DESTROYED] = true;
                              -        this[DISCARDED] = true;
                              -        // throw away all buffered data, it's never coming out
                              -        this[BUFFER].length = 0;
                              -        this[BUFFERLENGTH] = 0;
                              -        const wc = this;
                              -        if (typeof wc.close === 'function' && !this[CLOSED])
                              -            wc.close();
                              -        if (er)
                              -            this.emit('error', er);
                              -        // if no error to emit, still reject pending promises
                              -        else
                              -            this.emit(DESTROYED);
                              -        return this;
                              -    }
                              -    /**
                              -     * Alias for {@link isStream}
                              -     *
                              -     * Former export location, maintained for backwards compatibility.
                              -     *
                              -     * @deprecated
                              -     */
                              -    static get isStream() {
                              -        return isStream;
                              -    }
                              -}
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/package.json
                              deleted file mode 100644
                              index 3dbc1ca591c055..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/dist/mjs/package.json
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -{
                              -  "type": "module"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/package.json
                              deleted file mode 100644
                              index 6faaa247a5bc66..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass/package.json
                              +++ /dev/null
                              @@ -1,82 +0,0 @@
                              -{
                              -  "name": "minipass",
                              -  "version": "7.0.3",
                              -  "description": "minimal implementation of a PassThrough stream",
                              -  "main": "./dist/cjs/index.js",
                              -  "module": "./dist/mjs/index.js",
                              -  "types": "./dist/cjs/index.js",
                              -  "exports": {
                              -    ".": {
                              -      "import": {
                              -        "types": "./dist/mjs/index.d.ts",
                              -        "default": "./dist/mjs/index.js"
                              -      },
                              -      "require": {
                              -        "types": "./dist/cjs/index.d.ts",
                              -        "default": "./dist/cjs/index.js"
                              -      }
                              -    },
                              -    "./package.json": "./package.json"
                              -  },
                              -  "files": [
                              -    "dist"
                              -  ],
                              -  "scripts": {
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "preprepare": "rm -rf dist",
                              -    "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash ./scripts/fixup.sh",
                              -    "pretest": "npm run prepare",
                              -    "presnap": "npm run prepare",
                              -    "test": "c8 tap",
                              -    "snap": "c8 tap",
                              -    "format": "prettier --write . --loglevel warn",
                              -    "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts"
                              -  },
                              -  "tap": {
                              -    "coverage": false,
                              -    "node-arg": [
                              -      "--enable-source-maps",
                              -      "--no-warnings",
                              -      "--loader",
                              -      "ts-node/esm"
                              -    ],
                              -    "ts": false
                              -  },
                              -  "prettier": {
                              -    "semi": false,
                              -    "printWidth": 75,
                              -    "tabWidth": 2,
                              -    "useTabs": false,
                              -    "singleQuote": true,
                              -    "jsxSingleQuote": false,
                              -    "bracketSameLine": true,
                              -    "arrowParens": "avoid",
                              -    "endOfLine": "lf"
                              -  },
                              -  "devDependencies": {
                              -    "@types/node": "^20.1.2",
                              -    "@types/tap": "^15.0.8",
                              -    "c8": "^7.13.0",
                              -    "prettier": "^2.6.2",
                              -    "tap": "^16.3.0",
                              -    "ts-node": "^10.9.1",
                              -    "typedoc": "^0.24.8",
                              -    "typescript": "^5.1.3",
                              -    "end-of-stream": "^1.4.0",
                              -    "node-abort-controller": "^3.1.1",
                              -    "sync-content": "^1.0.2",
                              -    "through2": "^2.0.3"
                              -  },
                              -  "repository": "https://github.com/isaacs/minipass",
                              -  "keywords": [
                              -    "passthrough",
                              -    "stream"
                              -  ],
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "license": "ISC",
                              -  "engines": {
                              -    "node": ">=16 || 14 >=14.17"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/cacache/package.json b/deps/npm/node_modules/node-gyp/node_modules/cacache/package.json
                              deleted file mode 100644
                              index ab58cb8b7c50f4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/cacache/package.json
                              +++ /dev/null
                              @@ -1,82 +0,0 @@
                              -{
                              -  "name": "cacache",
                              -  "version": "17.1.4",
                              -  "cache-version": {
                              -    "content": "2",
                              -    "index": "5"
                              -  },
                              -  "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",
                              -  "main": "lib/index.js",
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "scripts": {
                              -    "test": "tap",
                              -    "snap": "tap",
                              -    "coverage": "tap",
                              -    "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "npmclilint": "npmcli-lint",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "postsnap": "npm run lintfix --",
                              -    "postlint": "template-oss-check",
                              -    "posttest": "npm run lint",
                              -    "template-oss-apply": "template-oss-apply --force"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/cacache.git"
                              -  },
                              -  "keywords": [
                              -    "cache",
                              -    "caching",
                              -    "content-addressable",
                              -    "sri",
                              -    "sri hash",
                              -    "subresource integrity",
                              -    "cache",
                              -    "storage",
                              -    "store",
                              -    "file store",
                              -    "filesystem",
                              -    "disk cache",
                              -    "disk storage"
                              -  ],
                              -  "license": "ISC",
                              -  "dependencies": {
                              -    "@npmcli/fs": "^3.1.0",
                              -    "fs-minipass": "^3.0.0",
                              -    "glob": "^10.2.2",
                              -    "lru-cache": "^7.7.1",
                              -    "minipass": "^7.0.3",
                              -    "minipass-collect": "^1.0.2",
                              -    "minipass-flush": "^1.0.5",
                              -    "minipass-pipeline": "^1.2.4",
                              -    "p-map": "^4.0.0",
                              -    "ssri": "^10.0.0",
                              -    "tar": "^6.1.11",
                              -    "unique-filename": "^3.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^4.0.0",
                              -    "@npmcli/template-oss": "4.18.0",
                              -    "tap": "^16.0.0"
                              -  },
                              -  "engines": {
                              -    "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "windowsCI": false,
                              -    "version": "4.18.0",
                              -    "publish": "true"
                              -  },
                              -  "author": "GitHub Inc.",
                              -  "tap": {
                              -    "nyc-arg": [
                              -      "--exclude",
                              -      "tap-snapshots/**"
                              -    ]
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/LICENSE.md b/deps/npm/node_modules/node-gyp/node_modules/gauge/LICENSE.md
                              deleted file mode 100644
                              index 5fc208ff122e08..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/LICENSE.md
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -
                              -
                              -ISC License
                              -
                              -Copyright npm, Inc.
                              -
                              -Permission to use, copy, modify, and/or distribute this
                              -software for any purpose with or without fee is hereby
                              -granted, provided that the above copyright notice and this
                              -permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND NPM DISCLAIMS ALL
                              -WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
                              -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
                              -EVENT SHALL NPM BE LIABLE FOR ANY SPECIAL, DIRECT,
                              -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                              -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
                              -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
                              -USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/base-theme.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/base-theme.js
                              deleted file mode 100644
                              index 00bf5684cddab8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/base-theme.js
                              +++ /dev/null
                              @@ -1,18 +0,0 @@
                              -'use strict'
                              -var spin = require('./spin.js')
                              -var progressBar = require('./progress-bar.js')
                              -
                              -module.exports = {
                              -  activityIndicator: function (values, theme, width) {
                              -    if (values.spun == null) {
                              -      return
                              -    }
                              -    return spin(theme, values.spun)
                              -  },
                              -  progressbar: function (values, theme, width) {
                              -    if (values.completed == null) {
                              -      return
                              -    }
                              -    return progressBar(theme, width, values.completed)
                              -  },
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/error.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/error.js
                              deleted file mode 100644
                              index d9914ba5335d25..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/error.js
                              +++ /dev/null
                              @@ -1,24 +0,0 @@
                              -'use strict'
                              -var util = require('util')
                              -
                              -var User = exports.User = function User (msg) {
                              -  var err = new Error(msg)
                              -  Error.captureStackTrace(err, User)
                              -  err.code = 'EGAUGE'
                              -  return err
                              -}
                              -
                              -exports.MissingTemplateValue = function MissingTemplateValue (item, values) {
                              -  var err = new User(util.format('Missing template value "%s"', item.type))
                              -  Error.captureStackTrace(err, MissingTemplateValue)
                              -  err.template = item
                              -  err.values = values
                              -  return err
                              -}
                              -
                              -exports.Internal = function Internal (msg) {
                              -  var err = new Error(msg)
                              -  Error.captureStackTrace(err, Internal)
                              -  err.code = 'EGAUGEINTERNAL'
                              -  return err
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/has-color.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/has-color.js
                              deleted file mode 100644
                              index 16cba0eb47d332..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/has-color.js
                              +++ /dev/null
                              @@ -1,4 +0,0 @@
                              -'use strict'
                              -var colorSupport = require('color-support')
                              -
                              -module.exports = colorSupport().hasBasic
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/index.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/index.js
                              deleted file mode 100644
                              index 37fc5ac60a16fd..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/index.js
                              +++ /dev/null
                              @@ -1,289 +0,0 @@
                              -'use strict'
                              -var Plumbing = require('./plumbing.js')
                              -var hasUnicode = require('has-unicode')
                              -var hasColor = require('./has-color.js')
                              -var onExit = require('signal-exit')
                              -var defaultThemes = require('./themes')
                              -var setInterval = require('./set-interval.js')
                              -var process = require('./process.js')
                              -var setImmediate = require('./set-immediate')
                              -
                              -module.exports = Gauge
                              -
                              -function callWith (obj, method) {
                              -  return function () {
                              -    return method.call(obj)
                              -  }
                              -}
                              -
                              -function Gauge (arg1, arg2) {
                              -  var options, writeTo
                              -  if (arg1 && arg1.write) {
                              -    writeTo = arg1
                              -    options = arg2 || {}
                              -  } else if (arg2 && arg2.write) {
                              -    writeTo = arg2
                              -    options = arg1 || {}
                              -  } else {
                              -    writeTo = process.stderr
                              -    options = arg1 || arg2 || {}
                              -  }
                              -
                              -  this._status = {
                              -    spun: 0,
                              -    section: '',
                              -    subsection: '',
                              -  }
                              -  this._paused = false // are we paused for back pressure?
                              -  this._disabled = true // are all progress bar updates disabled?
                              -  this._showing = false // do we WANT the progress bar on screen
                              -  this._onScreen = false // IS the progress bar on screen
                              -  this._needsRedraw = false // should we print something at next tick?
                              -  this._hideCursor = options.hideCursor == null ? true : options.hideCursor
                              -  this._fixedFramerate = options.fixedFramerate == null
                              -    ? !(/^v0\.8\./.test(process.version))
                              -    : options.fixedFramerate
                              -  this._lastUpdateAt = null
                              -  this._updateInterval = options.updateInterval == null ? 50 : options.updateInterval
                              -
                              -  this._themes = options.themes || defaultThemes
                              -  this._theme = options.theme
                              -  var theme = this._computeTheme(options.theme)
                              -  var template = options.template || [
                              -    { type: 'progressbar', length: 20 },
                              -    { type: 'activityIndicator', kerning: 1, length: 1 },
                              -    { type: 'section', kerning: 1, default: '' },
                              -    { type: 'subsection', kerning: 1, default: '' },
                              -  ]
                              -  this.setWriteTo(writeTo, options.tty)
                              -  var PlumbingClass = options.Plumbing || Plumbing
                              -  this._gauge = new PlumbingClass(theme, template, this.getWidth())
                              -
                              -  this._$$doRedraw = callWith(this, this._doRedraw)
                              -  this._$$handleSizeChange = callWith(this, this._handleSizeChange)
                              -
                              -  this._cleanupOnExit = options.cleanupOnExit == null || options.cleanupOnExit
                              -  this._removeOnExit = null
                              -
                              -  if (options.enabled || (options.enabled == null && this._tty && this._tty.isTTY)) {
                              -    this.enable()
                              -  } else {
                              -    this.disable()
                              -  }
                              -}
                              -Gauge.prototype = {}
                              -
                              -Gauge.prototype.isEnabled = function () {
                              -  return !this._disabled
                              -}
                              -
                              -Gauge.prototype.setTemplate = function (template) {
                              -  this._gauge.setTemplate(template)
                              -  if (this._showing) {
                              -    this._requestRedraw()
                              -  }
                              -}
                              -
                              -Gauge.prototype._computeTheme = function (theme) {
                              -  if (!theme) {
                              -    theme = {}
                              -  }
                              -  if (typeof theme === 'string') {
                              -    theme = this._themes.getTheme(theme)
                              -  } else if (
                              -    Object.keys(theme).length === 0 || theme.hasUnicode != null || theme.hasColor != null
                              -  ) {
                              -    var useUnicode = theme.hasUnicode == null ? hasUnicode() : theme.hasUnicode
                              -    var useColor = theme.hasColor == null ? hasColor : theme.hasColor
                              -    theme = this._themes.getDefault({
                              -      hasUnicode: useUnicode,
                              -      hasColor: useColor,
                              -      platform: theme.platform,
                              -    })
                              -  }
                              -  return theme
                              -}
                              -
                              -Gauge.prototype.setThemeset = function (themes) {
                              -  this._themes = themes
                              -  this.setTheme(this._theme)
                              -}
                              -
                              -Gauge.prototype.setTheme = function (theme) {
                              -  this._gauge.setTheme(this._computeTheme(theme))
                              -  if (this._showing) {
                              -    this._requestRedraw()
                              -  }
                              -  this._theme = theme
                              -}
                              -
                              -Gauge.prototype._requestRedraw = function () {
                              -  this._needsRedraw = true
                              -  if (!this._fixedFramerate) {
                              -    this._doRedraw()
                              -  }
                              -}
                              -
                              -Gauge.prototype.getWidth = function () {
                              -  return ((this._tty && this._tty.columns) || 80) - 1
                              -}
                              -
                              -Gauge.prototype.setWriteTo = function (writeTo, tty) {
                              -  var enabled = !this._disabled
                              -  if (enabled) {
                              -    this.disable()
                              -  }
                              -  this._writeTo = writeTo
                              -  this._tty = tty ||
                              -    (writeTo === process.stderr && process.stdout.isTTY && process.stdout) ||
                              -    (writeTo.isTTY && writeTo) ||
                              -    this._tty
                              -  if (this._gauge) {
                              -    this._gauge.setWidth(this.getWidth())
                              -  }
                              -  if (enabled) {
                              -    this.enable()
                              -  }
                              -}
                              -
                              -Gauge.prototype.enable = function () {
                              -  if (!this._disabled) {
                              -    return
                              -  }
                              -  this._disabled = false
                              -  if (this._tty) {
                              -    this._enableEvents()
                              -  }
                              -  if (this._showing) {
                              -    this.show()
                              -  }
                              -}
                              -
                              -Gauge.prototype.disable = function () {
                              -  if (this._disabled) {
                              -    return
                              -  }
                              -  if (this._showing) {
                              -    this._lastUpdateAt = null
                              -    this._showing = false
                              -    this._doRedraw()
                              -    this._showing = true
                              -  }
                              -  this._disabled = true
                              -  if (this._tty) {
                              -    this._disableEvents()
                              -  }
                              -}
                              -
                              -Gauge.prototype._enableEvents = function () {
                              -  if (this._cleanupOnExit) {
                              -    this._removeOnExit = onExit(callWith(this, this.disable))
                              -  }
                              -  this._tty.on('resize', this._$$handleSizeChange)
                              -  if (this._fixedFramerate) {
                              -    this.redrawTracker = setInterval(this._$$doRedraw, this._updateInterval)
                              -    if (this.redrawTracker.unref) {
                              -      this.redrawTracker.unref()
                              -    }
                              -  }
                              -}
                              -
                              -Gauge.prototype._disableEvents = function () {
                              -  this._tty.removeListener('resize', this._$$handleSizeChange)
                              -  if (this._fixedFramerate) {
                              -    clearInterval(this.redrawTracker)
                              -  }
                              -  if (this._removeOnExit) {
                              -    this._removeOnExit()
                              -  }
                              -}
                              -
                              -Gauge.prototype.hide = function (cb) {
                              -  if (this._disabled) {
                              -    return cb && process.nextTick(cb)
                              -  }
                              -  if (!this._showing) {
                              -    return cb && process.nextTick(cb)
                              -  }
                              -  this._showing = false
                              -  this._doRedraw()
                              -  cb && setImmediate(cb)
                              -}
                              -
                              -Gauge.prototype.show = function (section, completed) {
                              -  this._showing = true
                              -  if (typeof section === 'string') {
                              -    this._status.section = section
                              -  } else if (typeof section === 'object') {
                              -    var sectionKeys = Object.keys(section)
                              -    for (var ii = 0; ii < sectionKeys.length; ++ii) {
                              -      var key = sectionKeys[ii]
                              -      this._status[key] = section[key]
                              -    }
                              -  }
                              -  if (completed != null) {
                              -    this._status.completed = completed
                              -  }
                              -  if (this._disabled) {
                              -    return
                              -  }
                              -  this._requestRedraw()
                              -}
                              -
                              -Gauge.prototype.pulse = function (subsection) {
                              -  this._status.subsection = subsection || ''
                              -  this._status.spun++
                              -  if (this._disabled) {
                              -    return
                              -  }
                              -  if (!this._showing) {
                              -    return
                              -  }
                              -  this._requestRedraw()
                              -}
                              -
                              -Gauge.prototype._handleSizeChange = function () {
                              -  this._gauge.setWidth(this._tty.columns - 1)
                              -  this._requestRedraw()
                              -}
                              -
                              -Gauge.prototype._doRedraw = function () {
                              -  if (this._disabled || this._paused) {
                              -    return
                              -  }
                              -  if (!this._fixedFramerate) {
                              -    var now = Date.now()
                              -    if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) {
                              -      return
                              -    }
                              -    this._lastUpdateAt = now
                              -  }
                              -  if (!this._showing && this._onScreen) {
                              -    this._onScreen = false
                              -    var result = this._gauge.hide()
                              -    if (this._hideCursor) {
                              -      result += this._gauge.showCursor()
                              -    }
                              -    return this._writeTo.write(result)
                              -  }
                              -  if (!this._showing && !this._onScreen) {
                              -    return
                              -  }
                              -  if (this._showing && !this._onScreen) {
                              -    this._onScreen = true
                              -    this._needsRedraw = true
                              -    if (this._hideCursor) {
                              -      this._writeTo.write(this._gauge.hideCursor())
                              -    }
                              -  }
                              -  if (!this._needsRedraw) {
                              -    return
                              -  }
                              -  if (!this._writeTo.write(this._gauge.show(this._status))) {
                              -    this._paused = true
                              -    this._writeTo.on('drain', callWith(this, function () {
                              -      this._paused = false
                              -      this._doRedraw()
                              -    }))
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/plumbing.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/plumbing.js
                              deleted file mode 100644
                              index c4dc3e074b95e8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/plumbing.js
                              +++ /dev/null
                              @@ -1,50 +0,0 @@
                              -'use strict'
                              -var consoleControl = require('console-control-strings')
                              -var renderTemplate = require('./render-template.js')
                              -var validate = require('aproba')
                              -
                              -var Plumbing = module.exports = function (theme, template, width) {
                              -  if (!width) {
                              -    width = 80
                              -  }
                              -  validate('OAN', [theme, template, width])
                              -  this.showing = false
                              -  this.theme = theme
                              -  this.width = width
                              -  this.template = template
                              -}
                              -Plumbing.prototype = {}
                              -
                              -Plumbing.prototype.setTheme = function (theme) {
                              -  validate('O', [theme])
                              -  this.theme = theme
                              -}
                              -
                              -Plumbing.prototype.setTemplate = function (template) {
                              -  validate('A', [template])
                              -  this.template = template
                              -}
                              -
                              -Plumbing.prototype.setWidth = function (width) {
                              -  validate('N', [width])
                              -  this.width = width
                              -}
                              -
                              -Plumbing.prototype.hide = function () {
                              -  return consoleControl.gotoSOL() + consoleControl.eraseLine()
                              -}
                              -
                              -Plumbing.prototype.hideCursor = consoleControl.hideCursor
                              -
                              -Plumbing.prototype.showCursor = consoleControl.showCursor
                              -
                              -Plumbing.prototype.show = function (status) {
                              -  var values = Object.create(this.theme)
                              -  for (var key in status) {
                              -    values[key] = status[key]
                              -  }
                              -
                              -  return renderTemplate(this.width, this.template, values).trim() +
                              -         consoleControl.color('reset') +
                              -         consoleControl.eraseLine() + consoleControl.gotoSOL()
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/process.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/process.js
                              deleted file mode 100644
                              index 05e85694d755b6..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/process.js
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -'use strict'
                              -// this exists so we can replace it during testing
                              -module.exports = process
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/progress-bar.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/progress-bar.js
                              deleted file mode 100644
                              index 184ff2500aae4d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/progress-bar.js
                              +++ /dev/null
                              @@ -1,41 +0,0 @@
                              -'use strict'
                              -var validate = require('aproba')
                              -var renderTemplate = require('./render-template.js')
                              -var wideTruncate = require('./wide-truncate')
                              -var stringWidth = require('string-width')
                              -
                              -module.exports = function (theme, width, completed) {
                              -  validate('ONN', [theme, width, completed])
                              -  if (completed < 0) {
                              -    completed = 0
                              -  }
                              -  if (completed > 1) {
                              -    completed = 1
                              -  }
                              -  if (width <= 0) {
                              -    return ''
                              -  }
                              -  var sofar = Math.round(width * completed)
                              -  var rest = width - sofar
                              -  var template = [
                              -    { type: 'complete', value: repeat(theme.complete, sofar), length: sofar },
                              -    { type: 'remaining', value: repeat(theme.remaining, rest), length: rest },
                              -  ]
                              -  return renderTemplate(width, template, theme)
                              -}
                              -
                              -// lodash's way of repeating
                              -function repeat (string, width) {
                              -  var result = ''
                              -  var n = width
                              -  do {
                              -    if (n % 2) {
                              -      result += string
                              -    }
                              -    n = Math.floor(n / 2)
                              -    /* eslint no-self-assign: 0 */
                              -    string += string
                              -  } while (n && stringWidth(result) < width)
                              -
                              -  return wideTruncate(result, width)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/render-template.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/render-template.js
                              deleted file mode 100644
                              index d1b52c0f48095a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/render-template.js
                              +++ /dev/null
                              @@ -1,222 +0,0 @@
                              -'use strict'
                              -var align = require('wide-align')
                              -var validate = require('aproba')
                              -var wideTruncate = require('./wide-truncate')
                              -var error = require('./error')
                              -var TemplateItem = require('./template-item')
                              -
                              -function renderValueWithValues (values) {
                              -  return function (item) {
                              -    return renderValue(item, values)
                              -  }
                              -}
                              -
                              -var renderTemplate = module.exports = function (width, template, values) {
                              -  var items = prepareItems(width, template, values)
                              -  var rendered = items.map(renderValueWithValues(values)).join('')
                              -  return align.left(wideTruncate(rendered, width), width)
                              -}
                              -
                              -function preType (item) {
                              -  var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1)
                              -  return 'pre' + cappedTypeName
                              -}
                              -
                              -function postType (item) {
                              -  var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1)
                              -  return 'post' + cappedTypeName
                              -}
                              -
                              -function hasPreOrPost (item, values) {
                              -  if (!item.type) {
                              -    return
                              -  }
                              -  return values[preType(item)] || values[postType(item)]
                              -}
                              -
                              -function generatePreAndPost (baseItem, parentValues) {
                              -  var item = Object.assign({}, baseItem)
                              -  var values = Object.create(parentValues)
                              -  var template = []
                              -  var pre = preType(item)
                              -  var post = postType(item)
                              -  if (values[pre]) {
                              -    template.push({ value: values[pre] })
                              -    values[pre] = null
                              -  }
                              -  item.minLength = null
                              -  item.length = null
                              -  item.maxLength = null
                              -  template.push(item)
                              -  values[item.type] = values[item.type]
                              -  if (values[post]) {
                              -    template.push({ value: values[post] })
                              -    values[post] = null
                              -  }
                              -  return function ($1, $2, length) {
                              -    return renderTemplate(length, template, values)
                              -  }
                              -}
                              -
                              -function prepareItems (width, template, values) {
                              -  function cloneAndObjectify (item, index, arr) {
                              -    var cloned = new TemplateItem(item, width)
                              -    var type = cloned.type
                              -    if (cloned.value == null) {
                              -      if (!(type in values)) {
                              -        if (cloned.default == null) {
                              -          throw new error.MissingTemplateValue(cloned, values)
                              -        } else {
                              -          cloned.value = cloned.default
                              -        }
                              -      } else {
                              -        cloned.value = values[type]
                              -      }
                              -    }
                              -    if (cloned.value == null || cloned.value === '') {
                              -      return null
                              -    }
                              -    cloned.index = index
                              -    cloned.first = index === 0
                              -    cloned.last = index === arr.length - 1
                              -    if (hasPreOrPost(cloned, values)) {
                              -      cloned.value = generatePreAndPost(cloned, values)
                              -    }
                              -    return cloned
                              -  }
                              -
                              -  var output = template.map(cloneAndObjectify).filter(function (item) {
                              -    return item != null
                              -  })
                              -
                              -  var remainingSpace = width
                              -  var variableCount = output.length
                              -
                              -  function consumeSpace (length) {
                              -    if (length > remainingSpace) {
                              -      length = remainingSpace
                              -    }
                              -    remainingSpace -= length
                              -  }
                              -
                              -  function finishSizing (item, length) {
                              -    if (item.finished) {
                              -      throw new error.Internal('Tried to finish template item that was already finished')
                              -    }
                              -    if (length === Infinity) {
                              -      throw new error.Internal('Length of template item cannot be infinity')
                              -    }
                              -    if (length != null) {
                              -      item.length = length
                              -    }
                              -    item.minLength = null
                              -    item.maxLength = null
                              -    --variableCount
                              -    item.finished = true
                              -    if (item.length == null) {
                              -      item.length = item.getBaseLength()
                              -    }
                              -    if (item.length == null) {
                              -      throw new error.Internal('Finished template items must have a length')
                              -    }
                              -    consumeSpace(item.getLength())
                              -  }
                              -
                              -  output.forEach(function (item) {
                              -    if (!item.kerning) {
                              -      return
                              -    }
                              -    var prevPadRight = item.first ? 0 : output[item.index - 1].padRight
                              -    if (!item.first && prevPadRight < item.kerning) {
                              -      item.padLeft = item.kerning - prevPadRight
                              -    }
                              -    if (!item.last) {
                              -      item.padRight = item.kerning
                              -    }
                              -  })
                              -
                              -  // Finish any that have a fixed (literal or intuited) length
                              -  output.forEach(function (item) {
                              -    if (item.getBaseLength() == null) {
                              -      return
                              -    }
                              -    finishSizing(item)
                              -  })
                              -
                              -  var resized = 0
                              -  var resizing
                              -  var hunkSize
                              -  do {
                              -    resizing = false
                              -    hunkSize = Math.round(remainingSpace / variableCount)
                              -    output.forEach(function (item) {
                              -      if (item.finished) {
                              -        return
                              -      }
                              -      if (!item.maxLength) {
                              -        return
                              -      }
                              -      if (item.getMaxLength() < hunkSize) {
                              -        finishSizing(item, item.maxLength)
                              -        resizing = true
                              -      }
                              -    })
                              -  } while (resizing && resized++ < output.length)
                              -  if (resizing) {
                              -    throw new error.Internal('Resize loop iterated too many times while determining maxLength')
                              -  }
                              -
                              -  resized = 0
                              -  do {
                              -    resizing = false
                              -    hunkSize = Math.round(remainingSpace / variableCount)
                              -    output.forEach(function (item) {
                              -      if (item.finished) {
                              -        return
                              -      }
                              -      if (!item.minLength) {
                              -        return
                              -      }
                              -      if (item.getMinLength() >= hunkSize) {
                              -        finishSizing(item, item.minLength)
                              -        resizing = true
                              -      }
                              -    })
                              -  } while (resizing && resized++ < output.length)
                              -  if (resizing) {
                              -    throw new error.Internal('Resize loop iterated too many times while determining minLength')
                              -  }
                              -
                              -  hunkSize = Math.round(remainingSpace / variableCount)
                              -  output.forEach(function (item) {
                              -    if (item.finished) {
                              -      return
                              -    }
                              -    finishSizing(item, hunkSize)
                              -  })
                              -
                              -  return output
                              -}
                              -
                              -function renderFunction (item, values, length) {
                              -  validate('OON', arguments)
                              -  if (item.type) {
                              -    return item.value(values, values[item.type + 'Theme'] || {}, length)
                              -  } else {
                              -    return item.value(values, {}, length)
                              -  }
                              -}
                              -
                              -function renderValue (item, values) {
                              -  var length = item.getBaseLength()
                              -  var value = typeof item.value === 'function' ? renderFunction(item, values, length) : item.value
                              -  if (value == null || value === '') {
                              -    return ''
                              -  }
                              -  var alignWith = align[item.align] || align.left
                              -  var leftPadding = item.padLeft ? align.left('', item.padLeft) : ''
                              -  var rightPadding = item.padRight ? align.right('', item.padRight) : ''
                              -  var truncated = wideTruncate(String(value), length)
                              -  var aligned = alignWith(truncated, length)
                              -  return leftPadding + aligned + rightPadding
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-immediate.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-immediate.js
                              deleted file mode 100644
                              index 6650a485c49933..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-immediate.js
                              +++ /dev/null
                              @@ -1,7 +0,0 @@
                              -'use strict'
                              -var process = require('./process')
                              -try {
                              -  module.exports = setImmediate
                              -} catch (ex) {
                              -  module.exports = process.nextTick
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-interval.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-interval.js
                              deleted file mode 100644
                              index 576198793c5504..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/set-interval.js
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -'use strict'
                              -// this exists so we can replace it during testing
                              -module.exports = setInterval
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/spin.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/spin.js
                              deleted file mode 100644
                              index 34142ee31acc7c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/spin.js
                              +++ /dev/null
                              @@ -1,5 +0,0 @@
                              -'use strict'
                              -
                              -module.exports = function spin (spinstr, spun) {
                              -  return spinstr[spun % spinstr.length]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/template-item.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/template-item.js
                              deleted file mode 100644
                              index e307e9b7421e73..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/template-item.js
                              +++ /dev/null
                              @@ -1,87 +0,0 @@
                              -'use strict'
                              -var stringWidth = require('string-width')
                              -
                              -module.exports = TemplateItem
                              -
                              -function isPercent (num) {
                              -  if (typeof num !== 'string') {
                              -    return false
                              -  }
                              -  return num.slice(-1) === '%'
                              -}
                              -
                              -function percent (num) {
                              -  return Number(num.slice(0, -1)) / 100
                              -}
                              -
                              -function TemplateItem (values, outputLength) {
                              -  this.overallOutputLength = outputLength
                              -  this.finished = false
                              -  this.type = null
                              -  this.value = null
                              -  this.length = null
                              -  this.maxLength = null
                              -  this.minLength = null
                              -  this.kerning = null
                              -  this.align = 'left'
                              -  this.padLeft = 0
                              -  this.padRight = 0
                              -  this.index = null
                              -  this.first = null
                              -  this.last = null
                              -  if (typeof values === 'string') {
                              -    this.value = values
                              -  } else {
                              -    for (var prop in values) {
                              -      this[prop] = values[prop]
                              -    }
                              -  }
                              -  // Realize percents
                              -  if (isPercent(this.length)) {
                              -    this.length = Math.round(this.overallOutputLength * percent(this.length))
                              -  }
                              -  if (isPercent(this.minLength)) {
                              -    this.minLength = Math.round(this.overallOutputLength * percent(this.minLength))
                              -  }
                              -  if (isPercent(this.maxLength)) {
                              -    this.maxLength = Math.round(this.overallOutputLength * percent(this.maxLength))
                              -  }
                              -  return this
                              -}
                              -
                              -TemplateItem.prototype = {}
                              -
                              -TemplateItem.prototype.getBaseLength = function () {
                              -  var length = this.length
                              -  if (
                              -    length == null &&
                              -    typeof this.value === 'string' &&
                              -    this.maxLength == null &&
                              -    this.minLength == null
                              -  ) {
                              -    length = stringWidth(this.value)
                              -  }
                              -  return length
                              -}
                              -
                              -TemplateItem.prototype.getLength = function () {
                              -  var length = this.getBaseLength()
                              -  if (length == null) {
                              -    return null
                              -  }
                              -  return length + this.padLeft + this.padRight
                              -}
                              -
                              -TemplateItem.prototype.getMaxLength = function () {
                              -  if (this.maxLength == null) {
                              -    return null
                              -  }
                              -  return this.maxLength + this.padLeft + this.padRight
                              -}
                              -
                              -TemplateItem.prototype.getMinLength = function () {
                              -  if (this.minLength == null) {
                              -    return null
                              -  }
                              -  return this.minLength + this.padLeft + this.padRight
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/theme-set.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/theme-set.js
                              deleted file mode 100644
                              index 643d7dbb1da346..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/theme-set.js
                              +++ /dev/null
                              @@ -1,122 +0,0 @@
                              -'use strict'
                              -
                              -module.exports = function () {
                              -  return ThemeSetProto.newThemeSet()
                              -}
                              -
                              -var ThemeSetProto = {}
                              -
                              -ThemeSetProto.baseTheme = require('./base-theme.js')
                              -
                              -ThemeSetProto.newTheme = function (parent, theme) {
                              -  if (!theme) {
                              -    theme = parent
                              -    parent = this.baseTheme
                              -  }
                              -  return Object.assign({}, parent, theme)
                              -}
                              -
                              -ThemeSetProto.getThemeNames = function () {
                              -  return Object.keys(this.themes)
                              -}
                              -
                              -ThemeSetProto.addTheme = function (name, parent, theme) {
                              -  this.themes[name] = this.newTheme(parent, theme)
                              -}
                              -
                              -ThemeSetProto.addToAllThemes = function (theme) {
                              -  var themes = this.themes
                              -  Object.keys(themes).forEach(function (name) {
                              -    Object.assign(themes[name], theme)
                              -  })
                              -  Object.assign(this.baseTheme, theme)
                              -}
                              -
                              -ThemeSetProto.getTheme = function (name) {
                              -  if (!this.themes[name]) {
                              -    throw this.newMissingThemeError(name)
                              -  }
                              -  return this.themes[name]
                              -}
                              -
                              -ThemeSetProto.setDefault = function (opts, name) {
                              -  if (name == null) {
                              -    name = opts
                              -    opts = {}
                              -  }
                              -  var platform = opts.platform == null ? 'fallback' : opts.platform
                              -  var hasUnicode = !!opts.hasUnicode
                              -  var hasColor = !!opts.hasColor
                              -  if (!this.defaults[platform]) {
                              -    this.defaults[platform] = { true: {}, false: {} }
                              -  }
                              -  this.defaults[platform][hasUnicode][hasColor] = name
                              -}
                              -
                              -ThemeSetProto.getDefault = function (opts) {
                              -  if (!opts) {
                              -    opts = {}
                              -  }
                              -  var platformName = opts.platform || process.platform
                              -  var platform = this.defaults[platformName] || this.defaults.fallback
                              -  var hasUnicode = !!opts.hasUnicode
                              -  var hasColor = !!opts.hasColor
                              -  if (!platform) {
                              -    throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)
                              -  }
                              -  if (!platform[hasUnicode][hasColor]) {
                              -    if (hasUnicode && hasColor && platform[!hasUnicode][hasColor]) {
                              -      hasUnicode = false
                              -    } else if (hasUnicode && hasColor && platform[hasUnicode][!hasColor]) {
                              -      hasColor = false
                              -    } else if (hasUnicode && hasColor && platform[!hasUnicode][!hasColor]) {
                              -      hasUnicode = false
                              -      hasColor = false
                              -    } else if (hasUnicode && !hasColor && platform[!hasUnicode][hasColor]) {
                              -      hasUnicode = false
                              -    } else if (!hasUnicode && hasColor && platform[hasUnicode][!hasColor]) {
                              -      hasColor = false
                              -    } else if (platform === this.defaults.fallback) {
                              -      throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)
                              -    }
                              -  }
                              -  if (platform[hasUnicode][hasColor]) {
                              -    return this.getTheme(platform[hasUnicode][hasColor])
                              -  } else {
                              -    return this.getDefault(Object.assign({}, opts, { platform: 'fallback' }))
                              -  }
                              -}
                              -
                              -ThemeSetProto.newMissingThemeError = function newMissingThemeError (name) {
                              -  var err = new Error('Could not find a gauge theme named "' + name + '"')
                              -  Error.captureStackTrace.call(err, newMissingThemeError)
                              -  err.theme = name
                              -  err.code = 'EMISSINGTHEME'
                              -  return err
                              -}
                              -
                              -ThemeSetProto.newMissingDefaultThemeError =
                              -  function newMissingDefaultThemeError (platformName, hasUnicode, hasColor) {
                              -    var err = new Error(
                              -      'Could not find a gauge theme for your platform/unicode/color use combo:\n' +
                              -    '    platform = ' + platformName + '\n' +
                              -    '    hasUnicode = ' + hasUnicode + '\n' +
                              -    '    hasColor = ' + hasColor)
                              -    Error.captureStackTrace.call(err, newMissingDefaultThemeError)
                              -    err.platform = platformName
                              -    err.hasUnicode = hasUnicode
                              -    err.hasColor = hasColor
                              -    err.code = 'EMISSINGTHEME'
                              -    return err
                              -  }
                              -
                              -ThemeSetProto.newThemeSet = function () {
                              -  var themeset = function (opts) {
                              -    return themeset.getDefault(opts)
                              -  }
                              -  return Object.assign(themeset, ThemeSetProto, {
                              -    themes: Object.assign({}, this.themes),
                              -    baseTheme: Object.assign({}, this.baseTheme),
                              -    defaults: JSON.parse(JSON.stringify(this.defaults || {})),
                              -  })
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/themes.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/themes.js
                              deleted file mode 100644
                              index d2e62bbccb3d82..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/themes.js
                              +++ /dev/null
                              @@ -1,56 +0,0 @@
                              -'use strict'
                              -var color = require('console-control-strings').color
                              -var ThemeSet = require('./theme-set.js')
                              -
                              -var themes = module.exports = new ThemeSet()
                              -
                              -themes.addTheme('ASCII', {
                              -  preProgressbar: '[',
                              -  postProgressbar: ']',
                              -  progressbarTheme: {
                              -    complete: '#',
                              -    remaining: '.',
                              -  },
                              -  activityIndicatorTheme: '-\\|/',
                              -  preSubsection: '>',
                              -})
                              -
                              -themes.addTheme('colorASCII', themes.getTheme('ASCII'), {
                              -  progressbarTheme: {
                              -    preComplete: color('bgBrightWhite', 'brightWhite'),
                              -    complete: '#',
                              -    postComplete: color('reset'),
                              -    preRemaining: color('bgBrightBlack', 'brightBlack'),
                              -    remaining: '.',
                              -    postRemaining: color('reset'),
                              -  },
                              -})
                              -
                              -themes.addTheme('brailleSpinner', {
                              -  preProgressbar: '(',
                              -  postProgressbar: ')',
                              -  progressbarTheme: {
                              -    complete: '#',
                              -    remaining: '⠂',
                              -  },
                              -  activityIndicatorTheme: '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏',
                              -  preSubsection: '>',
                              -})
                              -
                              -themes.addTheme('colorBrailleSpinner', themes.getTheme('brailleSpinner'), {
                              -  progressbarTheme: {
                              -    preComplete: color('bgBrightWhite', 'brightWhite'),
                              -    complete: '#',
                              -    postComplete: color('reset'),
                              -    preRemaining: color('bgBrightBlack', 'brightBlack'),
                              -    remaining: '⠂',
                              -    postRemaining: color('reset'),
                              -  },
                              -})
                              -
                              -themes.setDefault({}, 'ASCII')
                              -themes.setDefault({ hasColor: true }, 'colorASCII')
                              -themes.setDefault({ platform: 'darwin', hasUnicode: true }, 'brailleSpinner')
                              -themes.setDefault({ platform: 'darwin', hasUnicode: true, hasColor: true }, 'colorBrailleSpinner')
                              -themes.setDefault({ platform: 'linux', hasUnicode: true }, 'brailleSpinner')
                              -themes.setDefault({ platform: 'linux', hasUnicode: true, hasColor: true }, 'colorBrailleSpinner')
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/wide-truncate.js b/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/wide-truncate.js
                              deleted file mode 100644
                              index 5284a699ac3fb5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/lib/wide-truncate.js
                              +++ /dev/null
                              @@ -1,31 +0,0 @@
                              -'use strict'
                              -var stringWidth = require('string-width')
                              -var stripAnsi = require('strip-ansi')
                              -
                              -module.exports = wideTruncate
                              -
                              -function wideTruncate (str, target) {
                              -  if (stringWidth(str) === 0) {
                              -    return str
                              -  }
                              -  if (target <= 0) {
                              -    return ''
                              -  }
                              -  if (stringWidth(str) <= target) {
                              -    return str
                              -  }
                              -
                              -  // We compute the number of bytes of ansi sequences here and add
                              -  // that to our initial truncation to ensure that we don't slice one
                              -  // that we want to keep in half.
                              -  var noAnsi = stripAnsi(str)
                              -  var ansiSize = str.length + noAnsi.length
                              -  var truncated = str.slice(0, target + ansiSize)
                              -
                              -  // we have to shrink the result to account for our ansi sequence buffer
                              -  // (if an ansi sequence was truncated) and double width characters.
                              -  while (stringWidth(truncated) > target) {
                              -    truncated = truncated.slice(0, -1)
                              -  }
                              -  return truncated
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/gauge/package.json b/deps/npm/node_modules/node-gyp/node_modules/gauge/package.json
                              deleted file mode 100644
                              index bce3e68a33f699..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/gauge/package.json
                              +++ /dev/null
                              @@ -1,66 +0,0 @@
                              -{
                              -  "name": "gauge",
                              -  "version": "4.0.4",
                              -  "description": "A terminal based horizontal gauge",
                              -  "main": "lib",
                              -  "scripts": {
                              -    "test": "tap",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "postlint": "template-oss-check",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "snap": "tap",
                              -    "posttest": "npm run lint",
                              -    "template-oss-apply": "template-oss-apply --force"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/gauge.git"
                              -  },
                              -  "keywords": [
                              -    "progressbar",
                              -    "progress",
                              -    "gauge"
                              -  ],
                              -  "author": "GitHub Inc.",
                              -  "license": "ISC",
                              -  "bugs": {
                              -    "url": "https://github.com/npm/gauge/issues"
                              -  },
                              -  "homepage": "https://github.com/npm/gauge",
                              -  "dependencies": {
                              -    "aproba": "^1.0.3 || ^2.0.0",
                              -    "color-support": "^1.1.3",
                              -    "console-control-strings": "^1.1.0",
                              -    "has-unicode": "^2.0.1",
                              -    "signal-exit": "^3.0.7",
                              -    "string-width": "^4.2.3",
                              -    "strip-ansi": "^6.0.1",
                              -    "wide-align": "^1.1.5"
                              -  },
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^3.0.1",
                              -    "@npmcli/template-oss": "3.2.0",
                              -    "readable-stream": "^3.6.0",
                              -    "tap": "^16.0.1"
                              -  },
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "engines": {
                              -    "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
                              -  },
                              -  "tap": {
                              -    "branches": 79,
                              -    "statements": 89,
                              -    "functions": 92,
                              -    "lines": 90
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "3.2.0"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/glob/LICENSE
                              deleted file mode 100644
                              index 42ca266df1d523..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/glob/LICENSE
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              -
                              -## Glob Logo
                              -
                              -Glob's logo created by Tanya Brassie , licensed
                              -under a Creative Commons Attribution-ShareAlike 4.0 International License
                              -https://creativecommons.org/licenses/by-sa/4.0/
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/common.js b/deps/npm/node_modules/node-gyp/node_modules/glob/common.js
                              deleted file mode 100644
                              index 424c46e1dab1be..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/glob/common.js
                              +++ /dev/null
                              @@ -1,238 +0,0 @@
                              -exports.setopts = setopts
                              -exports.ownProp = ownProp
                              -exports.makeAbs = makeAbs
                              -exports.finish = finish
                              -exports.mark = mark
                              -exports.isIgnored = isIgnored
                              -exports.childrenIgnored = childrenIgnored
                              -
                              -function ownProp (obj, field) {
                              -  return Object.prototype.hasOwnProperty.call(obj, field)
                              -}
                              -
                              -var fs = require("fs")
                              -var path = require("path")
                              -var minimatch = require("minimatch")
                              -var isAbsolute = require("path-is-absolute")
                              -var Minimatch = minimatch.Minimatch
                              -
                              -function alphasort (a, b) {
                              -  return a.localeCompare(b, 'en')
                              -}
                              -
                              -function setupIgnores (self, options) {
                              -  self.ignore = options.ignore || []
                              -
                              -  if (!Array.isArray(self.ignore))
                              -    self.ignore = [self.ignore]
                              -
                              -  if (self.ignore.length) {
                              -    self.ignore = self.ignore.map(ignoreMap)
                              -  }
                              -}
                              -
                              -// ignore patterns are always in dot:true mode.
                              -function ignoreMap (pattern) {
                              -  var gmatcher = null
                              -  if (pattern.slice(-3) === '/**') {
                              -    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
                              -    gmatcher = new Minimatch(gpattern, { dot: true })
                              -  }
                              -
                              -  return {
                              -    matcher: new Minimatch(pattern, { dot: true }),
                              -    gmatcher: gmatcher
                              -  }
                              -}
                              -
                              -function setopts (self, pattern, options) {
                              -  if (!options)
                              -    options = {}
                              -
                              -  // base-matching: just use globstar for that.
                              -  if (options.matchBase && -1 === pattern.indexOf("/")) {
                              -    if (options.noglobstar) {
                              -      throw new Error("base matching requires globstar")
                              -    }
                              -    pattern = "**/" + pattern
                              -  }
                              -
                              -  self.silent = !!options.silent
                              -  self.pattern = pattern
                              -  self.strict = options.strict !== false
                              -  self.realpath = !!options.realpath
                              -  self.realpathCache = options.realpathCache || Object.create(null)
                              -  self.follow = !!options.follow
                              -  self.dot = !!options.dot
                              -  self.mark = !!options.mark
                              -  self.nodir = !!options.nodir
                              -  if (self.nodir)
                              -    self.mark = true
                              -  self.sync = !!options.sync
                              -  self.nounique = !!options.nounique
                              -  self.nonull = !!options.nonull
                              -  self.nosort = !!options.nosort
                              -  self.nocase = !!options.nocase
                              -  self.stat = !!options.stat
                              -  self.noprocess = !!options.noprocess
                              -  self.absolute = !!options.absolute
                              -  self.fs = options.fs || fs
                              -
                              -  self.maxLength = options.maxLength || Infinity
                              -  self.cache = options.cache || Object.create(null)
                              -  self.statCache = options.statCache || Object.create(null)
                              -  self.symlinks = options.symlinks || Object.create(null)
                              -
                              -  setupIgnores(self, options)
                              -
                              -  self.changedCwd = false
                              -  var cwd = process.cwd()
                              -  if (!ownProp(options, "cwd"))
                              -    self.cwd = cwd
                              -  else {
                              -    self.cwd = path.resolve(options.cwd)
                              -    self.changedCwd = self.cwd !== cwd
                              -  }
                              -
                              -  self.root = options.root || path.resolve(self.cwd, "/")
                              -  self.root = path.resolve(self.root)
                              -  if (process.platform === "win32")
                              -    self.root = self.root.replace(/\\/g, "/")
                              -
                              -  // TODO: is an absolute `cwd` supposed to be resolved against `root`?
                              -  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
                              -  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
                              -  if (process.platform === "win32")
                              -    self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
                              -  self.nomount = !!options.nomount
                              -
                              -  // disable comments and negation in Minimatch.
                              -  // Note that they are not supported in Glob itself anyway.
                              -  options.nonegate = true
                              -  options.nocomment = true
                              -  // always treat \ in patterns as escapes, not path separators
                              -  options.allowWindowsEscape = false
                              -
                              -  self.minimatch = new Minimatch(pattern, options)
                              -  self.options = self.minimatch.options
                              -}
                              -
                              -function finish (self) {
                              -  var nou = self.nounique
                              -  var all = nou ? [] : Object.create(null)
                              -
                              -  for (var i = 0, l = self.matches.length; i < l; i ++) {
                              -    var matches = self.matches[i]
                              -    if (!matches || Object.keys(matches).length === 0) {
                              -      if (self.nonull) {
                              -        // do like the shell, and spit out the literal glob
                              -        var literal = self.minimatch.globSet[i]
                              -        if (nou)
                              -          all.push(literal)
                              -        else
                              -          all[literal] = true
                              -      }
                              -    } else {
                              -      // had matches
                              -      var m = Object.keys(matches)
                              -      if (nou)
                              -        all.push.apply(all, m)
                              -      else
                              -        m.forEach(function (m) {
                              -          all[m] = true
                              -        })
                              -    }
                              -  }
                              -
                              -  if (!nou)
                              -    all = Object.keys(all)
                              -
                              -  if (!self.nosort)
                              -    all = all.sort(alphasort)
                              -
                              -  // at *some* point we statted all of these
                              -  if (self.mark) {
                              -    for (var i = 0; i < all.length; i++) {
                              -      all[i] = self._mark(all[i])
                              -    }
                              -    if (self.nodir) {
                              -      all = all.filter(function (e) {
                              -        var notDir = !(/\/$/.test(e))
                              -        var c = self.cache[e] || self.cache[makeAbs(self, e)]
                              -        if (notDir && c)
                              -          notDir = c !== 'DIR' && !Array.isArray(c)
                              -        return notDir
                              -      })
                              -    }
                              -  }
                              -
                              -  if (self.ignore.length)
                              -    all = all.filter(function(m) {
                              -      return !isIgnored(self, m)
                              -    })
                              -
                              -  self.found = all
                              -}
                              -
                              -function mark (self, p) {
                              -  var abs = makeAbs(self, p)
                              -  var c = self.cache[abs]
                              -  var m = p
                              -  if (c) {
                              -    var isDir = c === 'DIR' || Array.isArray(c)
                              -    var slash = p.slice(-1) === '/'
                              -
                              -    if (isDir && !slash)
                              -      m += '/'
                              -    else if (!isDir && slash)
                              -      m = m.slice(0, -1)
                              -
                              -    if (m !== p) {
                              -      var mabs = makeAbs(self, m)
                              -      self.statCache[mabs] = self.statCache[abs]
                              -      self.cache[mabs] = self.cache[abs]
                              -    }
                              -  }
                              -
                              -  return m
                              -}
                              -
                              -// lotta situps...
                              -function makeAbs (self, f) {
                              -  var abs = f
                              -  if (f.charAt(0) === '/') {
                              -    abs = path.join(self.root, f)
                              -  } else if (isAbsolute(f) || f === '') {
                              -    abs = f
                              -  } else if (self.changedCwd) {
                              -    abs = path.resolve(self.cwd, f)
                              -  } else {
                              -    abs = path.resolve(f)
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    abs = abs.replace(/\\/g, '/')
                              -
                              -  return abs
                              -}
                              -
                              -
                              -// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
                              -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
                              -function isIgnored (self, path) {
                              -  if (!self.ignore.length)
                              -    return false
                              -
                              -  return self.ignore.some(function(item) {
                              -    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
                              -  })
                              -}
                              -
                              -function childrenIgnored (self, path) {
                              -  if (!self.ignore.length)
                              -    return false
                              -
                              -  return self.ignore.some(function(item) {
                              -    return !!(item.gmatcher && item.gmatcher.match(path))
                              -  })
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/glob.js b/deps/npm/node_modules/node-gyp/node_modules/glob/glob.js
                              deleted file mode 100644
                              index 37a4d7e60775a3..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/glob/glob.js
                              +++ /dev/null
                              @@ -1,790 +0,0 @@
                              -// Approach:
                              -//
                              -// 1. Get the minimatch set
                              -// 2. For each pattern in the set, PROCESS(pattern, false)
                              -// 3. Store matches per-set, then uniq them
                              -//
                              -// PROCESS(pattern, inGlobStar)
                              -// Get the first [n] items from pattern that are all strings
                              -// Join these together.  This is PREFIX.
                              -//   If there is no more remaining, then stat(PREFIX) and
                              -//   add to matches if it succeeds.  END.
                              -//
                              -// If inGlobStar and PREFIX is symlink and points to dir
                              -//   set ENTRIES = []
                              -// else readdir(PREFIX) as ENTRIES
                              -//   If fail, END
                              -//
                              -// with ENTRIES
                              -//   If pattern[n] is GLOBSTAR
                              -//     // handle the case where the globstar match is empty
                              -//     // by pruning it out, and testing the resulting pattern
                              -//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
                              -//     // handle other cases.
                              -//     for ENTRY in ENTRIES (not dotfiles)
                              -//       // attach globstar + tail onto the entry
                              -//       // Mark that this entry is a globstar match
                              -//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
                              -//
                              -//   else // not globstar
                              -//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
                              -//       Test ENTRY against pattern[n]
                              -//       If fails, continue
                              -//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
                              -//
                              -// Caveat:
                              -//   Cache all stats and readdirs results to minimize syscall.  Since all
                              -//   we ever care about is existence and directory-ness, we can just keep
                              -//   `true` for files, and [children,...] for directories, or `false` for
                              -//   things that don't exist.
                              -
                              -module.exports = glob
                              -
                              -var rp = require('fs.realpath')
                              -var minimatch = require('minimatch')
                              -var Minimatch = minimatch.Minimatch
                              -var inherits = require('inherits')
                              -var EE = require('events').EventEmitter
                              -var path = require('path')
                              -var assert = require('assert')
                              -var isAbsolute = require('path-is-absolute')
                              -var globSync = require('./sync.js')
                              -var common = require('./common.js')
                              -var setopts = common.setopts
                              -var ownProp = common.ownProp
                              -var inflight = require('inflight')
                              -var util = require('util')
                              -var childrenIgnored = common.childrenIgnored
                              -var isIgnored = common.isIgnored
                              -
                              -var once = require('once')
                              -
                              -function glob (pattern, options, cb) {
                              -  if (typeof options === 'function') cb = options, options = {}
                              -  if (!options) options = {}
                              -
                              -  if (options.sync) {
                              -    if (cb)
                              -      throw new TypeError('callback provided to sync glob')
                              -    return globSync(pattern, options)
                              -  }
                              -
                              -  return new Glob(pattern, options, cb)
                              -}
                              -
                              -glob.sync = globSync
                              -var GlobSync = glob.GlobSync = globSync.GlobSync
                              -
                              -// old api surface
                              -glob.glob = glob
                              -
                              -function extend (origin, add) {
                              -  if (add === null || typeof add !== 'object') {
                              -    return origin
                              -  }
                              -
                              -  var keys = Object.keys(add)
                              -  var i = keys.length
                              -  while (i--) {
                              -    origin[keys[i]] = add[keys[i]]
                              -  }
                              -  return origin
                              -}
                              -
                              -glob.hasMagic = function (pattern, options_) {
                              -  var options = extend({}, options_)
                              -  options.noprocess = true
                              -
                              -  var g = new Glob(pattern, options)
                              -  var set = g.minimatch.set
                              -
                              -  if (!pattern)
                              -    return false
                              -
                              -  if (set.length > 1)
                              -    return true
                              -
                              -  for (var j = 0; j < set[0].length; j++) {
                              -    if (typeof set[0][j] !== 'string')
                              -      return true
                              -  }
                              -
                              -  return false
                              -}
                              -
                              -glob.Glob = Glob
                              -inherits(Glob, EE)
                              -function Glob (pattern, options, cb) {
                              -  if (typeof options === 'function') {
                              -    cb = options
                              -    options = null
                              -  }
                              -
                              -  if (options && options.sync) {
                              -    if (cb)
                              -      throw new TypeError('callback provided to sync glob')
                              -    return new GlobSync(pattern, options)
                              -  }
                              -
                              -  if (!(this instanceof Glob))
                              -    return new Glob(pattern, options, cb)
                              -
                              -  setopts(this, pattern, options)
                              -  this._didRealPath = false
                              -
                              -  // process each pattern in the minimatch set
                              -  var n = this.minimatch.set.length
                              -
                              -  // The matches are stored as {: true,...} so that
                              -  // duplicates are automagically pruned.
                              -  // Later, we do an Object.keys() on these.
                              -  // Keep them as a list so we can fill in when nonull is set.
                              -  this.matches = new Array(n)
                              -
                              -  if (typeof cb === 'function') {
                              -    cb = once(cb)
                              -    this.on('error', cb)
                              -    this.on('end', function (matches) {
                              -      cb(null, matches)
                              -    })
                              -  }
                              -
                              -  var self = this
                              -  this._processing = 0
                              -
                              -  this._emitQueue = []
                              -  this._processQueue = []
                              -  this.paused = false
                              -
                              -  if (this.noprocess)
                              -    return this
                              -
                              -  if (n === 0)
                              -    return done()
                              -
                              -  var sync = true
                              -  for (var i = 0; i < n; i ++) {
                              -    this._process(this.minimatch.set[i], i, false, done)
                              -  }
                              -  sync = false
                              -
                              -  function done () {
                              -    --self._processing
                              -    if (self._processing <= 0) {
                              -      if (sync) {
                              -        process.nextTick(function () {
                              -          self._finish()
                              -        })
                              -      } else {
                              -        self._finish()
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._finish = function () {
                              -  assert(this instanceof Glob)
                              -  if (this.aborted)
                              -    return
                              -
                              -  if (this.realpath && !this._didRealpath)
                              -    return this._realpath()
                              -
                              -  common.finish(this)
                              -  this.emit('end', this.found)
                              -}
                              -
                              -Glob.prototype._realpath = function () {
                              -  if (this._didRealpath)
                              -    return
                              -
                              -  this._didRealpath = true
                              -
                              -  var n = this.matches.length
                              -  if (n === 0)
                              -    return this._finish()
                              -
                              -  var self = this
                              -  for (var i = 0; i < this.matches.length; i++)
                              -    this._realpathSet(i, next)
                              -
                              -  function next () {
                              -    if (--n === 0)
                              -      self._finish()
                              -  }
                              -}
                              -
                              -Glob.prototype._realpathSet = function (index, cb) {
                              -  var matchset = this.matches[index]
                              -  if (!matchset)
                              -    return cb()
                              -
                              -  var found = Object.keys(matchset)
                              -  var self = this
                              -  var n = found.length
                              -
                              -  if (n === 0)
                              -    return cb()
                              -
                              -  var set = this.matches[index] = Object.create(null)
                              -  found.forEach(function (p, i) {
                              -    // If there's a problem with the stat, then it means that
                              -    // one or more of the links in the realpath couldn't be
                              -    // resolved.  just return the abs value in that case.
                              -    p = self._makeAbs(p)
                              -    rp.realpath(p, self.realpathCache, function (er, real) {
                              -      if (!er)
                              -        set[real] = true
                              -      else if (er.syscall === 'stat')
                              -        set[p] = true
                              -      else
                              -        self.emit('error', er) // srsly wtf right here
                              -
                              -      if (--n === 0) {
                              -        self.matches[index] = set
                              -        cb()
                              -      }
                              -    })
                              -  })
                              -}
                              -
                              -Glob.prototype._mark = function (p) {
                              -  return common.mark(this, p)
                              -}
                              -
                              -Glob.prototype._makeAbs = function (f) {
                              -  return common.makeAbs(this, f)
                              -}
                              -
                              -Glob.prototype.abort = function () {
                              -  this.aborted = true
                              -  this.emit('abort')
                              -}
                              -
                              -Glob.prototype.pause = function () {
                              -  if (!this.paused) {
                              -    this.paused = true
                              -    this.emit('pause')
                              -  }
                              -}
                              -
                              -Glob.prototype.resume = function () {
                              -  if (this.paused) {
                              -    this.emit('resume')
                              -    this.paused = false
                              -    if (this._emitQueue.length) {
                              -      var eq = this._emitQueue.slice(0)
                              -      this._emitQueue.length = 0
                              -      for (var i = 0; i < eq.length; i ++) {
                              -        var e = eq[i]
                              -        this._emitMatch(e[0], e[1])
                              -      }
                              -    }
                              -    if (this._processQueue.length) {
                              -      var pq = this._processQueue.slice(0)
                              -      this._processQueue.length = 0
                              -      for (var i = 0; i < pq.length; i ++) {
                              -        var p = pq[i]
                              -        this._processing--
                              -        this._process(p[0], p[1], p[2], p[3])
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
                              -  assert(this instanceof Glob)
                              -  assert(typeof cb === 'function')
                              -
                              -  if (this.aborted)
                              -    return
                              -
                              -  this._processing++
                              -  if (this.paused) {
                              -    this._processQueue.push([pattern, index, inGlobStar, cb])
                              -    return
                              -  }
                              -
                              -  //console.error('PROCESS %d', this._processing, pattern)
                              -
                              -  // Get the first [n] parts of pattern that are all strings.
                              -  var n = 0
                              -  while (typeof pattern[n] === 'string') {
                              -    n ++
                              -  }
                              -  // now n is the index of the first one that is *not* a string.
                              -
                              -  // see if there's anything else
                              -  var prefix
                              -  switch (n) {
                              -    // if not, then this is rather simple
                              -    case pattern.length:
                              -      this._processSimple(pattern.join('/'), index, cb)
                              -      return
                              -
                              -    case 0:
                              -      // pattern *starts* with some non-trivial item.
                              -      // going to readdir(cwd), but not include the prefix in matches.
                              -      prefix = null
                              -      break
                              -
                              -    default:
                              -      // pattern has some string bits in the front.
                              -      // whatever it starts with, whether that's 'absolute' like /foo/bar,
                              -      // or 'relative' like '../baz'
                              -      prefix = pattern.slice(0, n).join('/')
                              -      break
                              -  }
                              -
                              -  var remain = pattern.slice(n)
                              -
                              -  // get the list of entries.
                              -  var read
                              -  if (prefix === null)
                              -    read = '.'
                              -  else if (isAbsolute(prefix) ||
                              -      isAbsolute(pattern.map(function (p) {
                              -        return typeof p === 'string' ? p : '[*]'
                              -      }).join('/'))) {
                              -    if (!prefix || !isAbsolute(prefix))
                              -      prefix = '/' + prefix
                              -    read = prefix
                              -  } else
                              -    read = prefix
                              -
                              -  var abs = this._makeAbs(read)
                              -
                              -  //if ignored, skip _processing
                              -  if (childrenIgnored(this, read))
                              -    return cb()
                              -
                              -  var isGlobStar = remain[0] === minimatch.GLOBSTAR
                              -  if (isGlobStar)
                              -    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
                              -  else
                              -    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
                              -}
                              -
                              -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
                              -  var self = this
                              -  this._readdir(abs, inGlobStar, function (er, entries) {
                              -    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
                              -  })
                              -}
                              -
                              -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
                              -
                              -  // if the abs isn't a dir, then nothing can match!
                              -  if (!entries)
                              -    return cb()
                              -
                              -  // It will only match dot entries if it starts with a dot, or if
                              -  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
                              -  var pn = remain[0]
                              -  var negate = !!this.minimatch.negate
                              -  var rawGlob = pn._glob
                              -  var dotOk = this.dot || rawGlob.charAt(0) === '.'
                              -
                              -  var matchedEntries = []
                              -  for (var i = 0; i < entries.length; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) !== '.' || dotOk) {
                              -      var m
                              -      if (negate && !prefix) {
                              -        m = !e.match(pn)
                              -      } else {
                              -        m = e.match(pn)
                              -      }
                              -      if (m)
                              -        matchedEntries.push(e)
                              -    }
                              -  }
                              -
                              -  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
                              -
                              -  var len = matchedEntries.length
                              -  // If there are no matched entries, then nothing matches.
                              -  if (len === 0)
                              -    return cb()
                              -
                              -  // if this is the last remaining pattern bit, then no need for
                              -  // an additional stat *unless* the user has specified mark or
                              -  // stat explicitly.  We know they exist, since readdir returned
                              -  // them.
                              -
                              -  if (remain.length === 1 && !this.mark && !this.stat) {
                              -    if (!this.matches[index])
                              -      this.matches[index] = Object.create(null)
                              -
                              -    for (var i = 0; i < len; i ++) {
                              -      var e = matchedEntries[i]
                              -      if (prefix) {
                              -        if (prefix !== '/')
                              -          e = prefix + '/' + e
                              -        else
                              -          e = prefix + e
                              -      }
                              -
                              -      if (e.charAt(0) === '/' && !this.nomount) {
                              -        e = path.join(this.root, e)
                              -      }
                              -      this._emitMatch(index, e)
                              -    }
                              -    // This was the last one, and no stats were needed
                              -    return cb()
                              -  }
                              -
                              -  // now test all matched entries as stand-ins for that part
                              -  // of the pattern.
                              -  remain.shift()
                              -  for (var i = 0; i < len; i ++) {
                              -    var e = matchedEntries[i]
                              -    var newPattern
                              -    if (prefix) {
                              -      if (prefix !== '/')
                              -        e = prefix + '/' + e
                              -      else
                              -        e = prefix + e
                              -    }
                              -    this._process([e].concat(remain), index, inGlobStar, cb)
                              -  }
                              -  cb()
                              -}
                              -
                              -Glob.prototype._emitMatch = function (index, e) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  if (isIgnored(this, e))
                              -    return
                              -
                              -  if (this.paused) {
                              -    this._emitQueue.push([index, e])
                              -    return
                              -  }
                              -
                              -  var abs = isAbsolute(e) ? e : this._makeAbs(e)
                              -
                              -  if (this.mark)
                              -    e = this._mark(e)
                              -
                              -  if (this.absolute)
                              -    e = abs
                              -
                              -  if (this.matches[index][e])
                              -    return
                              -
                              -  if (this.nodir) {
                              -    var c = this.cache[abs]
                              -    if (c === 'DIR' || Array.isArray(c))
                              -      return
                              -  }
                              -
                              -  this.matches[index][e] = true
                              -
                              -  var st = this.statCache[abs]
                              -  if (st)
                              -    this.emit('stat', e, st)
                              -
                              -  this.emit('match', e)
                              -}
                              -
                              -Glob.prototype._readdirInGlobStar = function (abs, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // follow all symlinked directories forever
                              -  // just proceed as if this is a non-globstar situation
                              -  if (this.follow)
                              -    return this._readdir(abs, false, cb)
                              -
                              -  var lstatkey = 'lstat\0' + abs
                              -  var self = this
                              -  var lstatcb = inflight(lstatkey, lstatcb_)
                              -
                              -  if (lstatcb)
                              -    self.fs.lstat(abs, lstatcb)
                              -
                              -  function lstatcb_ (er, lstat) {
                              -    if (er && er.code === 'ENOENT')
                              -      return cb()
                              -
                              -    var isSym = lstat && lstat.isSymbolicLink()
                              -    self.symlinks[abs] = isSym
                              -
                              -    // If it's not a symlink or a dir, then it's definitely a regular file.
                              -    // don't bother doing a readdir in that case.
                              -    if (!isSym && lstat && !lstat.isDirectory()) {
                              -      self.cache[abs] = 'FILE'
                              -      cb()
                              -    } else
                              -      self._readdir(abs, false, cb)
                              -  }
                              -}
                              -
                              -Glob.prototype._readdir = function (abs, inGlobStar, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
                              -  if (!cb)
                              -    return
                              -
                              -  //console.error('RD %j %j', +inGlobStar, abs)
                              -  if (inGlobStar && !ownProp(this.symlinks, abs))
                              -    return this._readdirInGlobStar(abs, cb)
                              -
                              -  if (ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -    if (!c || c === 'FILE')
                              -      return cb()
                              -
                              -    if (Array.isArray(c))
                              -      return cb(null, c)
                              -  }
                              -
                              -  var self = this
                              -  self.fs.readdir(abs, readdirCb(this, abs, cb))
                              -}
                              -
                              -function readdirCb (self, abs, cb) {
                              -  return function (er, entries) {
                              -    if (er)
                              -      self._readdirError(abs, er, cb)
                              -    else
                              -      self._readdirEntries(abs, entries, cb)
                              -  }
                              -}
                              -
                              -Glob.prototype._readdirEntries = function (abs, entries, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // if we haven't asked to stat everything, then just
                              -  // assume that everything in there exists, so we can avoid
                              -  // having to stat it a second time.
                              -  if (!this.mark && !this.stat) {
                              -    for (var i = 0; i < entries.length; i ++) {
                              -      var e = entries[i]
                              -      if (abs === '/')
                              -        e = abs + e
                              -      else
                              -        e = abs + '/' + e
                              -      this.cache[e] = true
                              -    }
                              -  }
                              -
                              -  this.cache[abs] = entries
                              -  return cb(null, entries)
                              -}
                              -
                              -Glob.prototype._readdirError = function (f, er, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // handle errors, and cache the information
                              -  switch (er.code) {
                              -    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
                              -    case 'ENOTDIR': // totally normal. means it *does* exist.
                              -      var abs = this._makeAbs(f)
                              -      this.cache[abs] = 'FILE'
                              -      if (abs === this.cwdAbs) {
                              -        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
                              -        error.path = this.cwd
                              -        error.code = er.code
                              -        this.emit('error', error)
                              -        this.abort()
                              -      }
                              -      break
                              -
                              -    case 'ENOENT': // not terribly unusual
                              -    case 'ELOOP':
                              -    case 'ENAMETOOLONG':
                              -    case 'UNKNOWN':
                              -      this.cache[this._makeAbs(f)] = false
                              -      break
                              -
                              -    default: // some unusual error.  Treat as failure.
                              -      this.cache[this._makeAbs(f)] = false
                              -      if (this.strict) {
                              -        this.emit('error', er)
                              -        // If the error is handled, then we abort
                              -        // if not, we threw out of here
                              -        this.abort()
                              -      }
                              -      if (!this.silent)
                              -        console.error('glob error', er)
                              -      break
                              -  }
                              -
                              -  return cb()
                              -}
                              -
                              -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
                              -  var self = this
                              -  this._readdir(abs, inGlobStar, function (er, entries) {
                              -    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
                              -  })
                              -}
                              -
                              -
                              -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
                              -  //console.error('pgs2', prefix, remain[0], entries)
                              -
                              -  // no entries means not a dir, so it can never have matches
                              -  // foo.txt/** doesn't match foo.txt
                              -  if (!entries)
                              -    return cb()
                              -
                              -  // test without the globstar, and with every child both below
                              -  // and replacing the globstar.
                              -  var remainWithoutGlobStar = remain.slice(1)
                              -  var gspref = prefix ? [ prefix ] : []
                              -  var noGlobStar = gspref.concat(remainWithoutGlobStar)
                              -
                              -  // the noGlobStar pattern exits the inGlobStar state
                              -  this._process(noGlobStar, index, false, cb)
                              -
                              -  var isSym = this.symlinks[abs]
                              -  var len = entries.length
                              -
                              -  // If it's a symlink, and we're in a globstar, then stop
                              -  if (isSym && inGlobStar)
                              -    return cb()
                              -
                              -  for (var i = 0; i < len; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) === '.' && !this.dot)
                              -      continue
                              -
                              -    // these two cases enter the inGlobStar state
                              -    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
                              -    this._process(instead, index, true, cb)
                              -
                              -    var below = gspref.concat(entries[i], remain)
                              -    this._process(below, index, true, cb)
                              -  }
                              -
                              -  cb()
                              -}
                              -
                              -Glob.prototype._processSimple = function (prefix, index, cb) {
                              -  // XXX review this.  Shouldn't it be doing the mounting etc
                              -  // before doing stat?  kinda weird?
                              -  var self = this
                              -  this._stat(prefix, function (er, exists) {
                              -    self._processSimple2(prefix, index, er, exists, cb)
                              -  })
                              -}
                              -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
                              -
                              -  //console.error('ps2', prefix, exists)
                              -
                              -  if (!this.matches[index])
                              -    this.matches[index] = Object.create(null)
                              -
                              -  // If it doesn't exist, then just mark the lack of results
                              -  if (!exists)
                              -    return cb()
                              -
                              -  if (prefix && isAbsolute(prefix) && !this.nomount) {
                              -    var trail = /[\/\\]$/.test(prefix)
                              -    if (prefix.charAt(0) === '/') {
                              -      prefix = path.join(this.root, prefix)
                              -    } else {
                              -      prefix = path.resolve(this.root, prefix)
                              -      if (trail)
                              -        prefix += '/'
                              -    }
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    prefix = prefix.replace(/\\/g, '/')
                              -
                              -  // Mark this as a match
                              -  this._emitMatch(index, prefix)
                              -  cb()
                              -}
                              -
                              -// Returns either 'DIR', 'FILE', or false
                              -Glob.prototype._stat = function (f, cb) {
                              -  var abs = this._makeAbs(f)
                              -  var needDir = f.slice(-1) === '/'
                              -
                              -  if (f.length > this.maxLength)
                              -    return cb()
                              -
                              -  if (!this.stat && ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -
                              -    if (Array.isArray(c))
                              -      c = 'DIR'
                              -
                              -    // It exists, but maybe not how we need it
                              -    if (!needDir || c === 'DIR')
                              -      return cb(null, c)
                              -
                              -    if (needDir && c === 'FILE')
                              -      return cb()
                              -
                              -    // otherwise we have to stat, because maybe c=true
                              -    // if we know it exists, but not what it is.
                              -  }
                              -
                              -  var exists
                              -  var stat = this.statCache[abs]
                              -  if (stat !== undefined) {
                              -    if (stat === false)
                              -      return cb(null, stat)
                              -    else {
                              -      var type = stat.isDirectory() ? 'DIR' : 'FILE'
                              -      if (needDir && type === 'FILE')
                              -        return cb()
                              -      else
                              -        return cb(null, type, stat)
                              -    }
                              -  }
                              -
                              -  var self = this
                              -  var statcb = inflight('stat\0' + abs, lstatcb_)
                              -  if (statcb)
                              -    self.fs.lstat(abs, statcb)
                              -
                              -  function lstatcb_ (er, lstat) {
                              -    if (lstat && lstat.isSymbolicLink()) {
                              -      // If it's a symlink, then treat it as the target, unless
                              -      // the target does not exist, then treat it as a file.
                              -      return self.fs.stat(abs, function (er, stat) {
                              -        if (er)
                              -          self._stat2(f, abs, null, lstat, cb)
                              -        else
                              -          self._stat2(f, abs, er, stat, cb)
                              -      })
                              -    } else {
                              -      self._stat2(f, abs, er, lstat, cb)
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
                              -  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
                              -    this.statCache[abs] = false
                              -    return cb()
                              -  }
                              -
                              -  var needDir = f.slice(-1) === '/'
                              -  this.statCache[abs] = stat
                              -
                              -  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
                              -    return cb(null, false, stat)
                              -
                              -  var c = true
                              -  if (stat)
                              -    c = stat.isDirectory() ? 'DIR' : 'FILE'
                              -  this.cache[abs] = this.cache[abs] || c
                              -
                              -  if (needDir && c === 'FILE')
                              -    return cb()
                              -
                              -  return cb(null, c, stat)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/package.json b/deps/npm/node_modules/node-gyp/node_modules/glob/package.json
                              deleted file mode 100644
                              index 5940b649b7e65a..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/glob/package.json
                              +++ /dev/null
                              @@ -1,55 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "name": "glob",
                              -  "description": "a little globber",
                              -  "version": "7.2.3",
                              -  "publishConfig": {
                              -    "tag": "v7-legacy"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/node-glob.git"
                              -  },
                              -  "main": "glob.js",
                              -  "files": [
                              -    "glob.js",
                              -    "sync.js",
                              -    "common.js"
                              -  ],
                              -  "engines": {
                              -    "node": "*"
                              -  },
                              -  "dependencies": {
                              -    "fs.realpath": "^1.0.0",
                              -    "inflight": "^1.0.4",
                              -    "inherits": "2",
                              -    "minimatch": "^3.1.1",
                              -    "once": "^1.3.0",
                              -    "path-is-absolute": "^1.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "memfs": "^3.2.0",
                              -    "mkdirp": "0",
                              -    "rimraf": "^2.2.8",
                              -    "tap": "^15.0.6",
                              -    "tick": "0.0.6"
                              -  },
                              -  "tap": {
                              -    "before": "test/00-setup.js",
                              -    "after": "test/zz-cleanup.js",
                              -    "jobs": 1
                              -  },
                              -  "scripts": {
                              -    "prepublish": "npm run benchclean",
                              -    "profclean": "rm -f v8.log profile.txt",
                              -    "test": "tap",
                              -    "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
                              -    "bench": "bash benchmark.sh",
                              -    "prof": "bash prof.sh && cat profile.txt",
                              -    "benchclean": "node benchclean.js"
                              -  },
                              -  "license": "ISC",
                              -  "funding": {
                              -    "url": "https://github.com/sponsors/isaacs"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/glob/sync.js b/deps/npm/node_modules/node-gyp/node_modules/glob/sync.js
                              deleted file mode 100644
                              index 2c4f480192d28d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/glob/sync.js
                              +++ /dev/null
                              @@ -1,486 +0,0 @@
                              -module.exports = globSync
                              -globSync.GlobSync = GlobSync
                              -
                              -var rp = require('fs.realpath')
                              -var minimatch = require('minimatch')
                              -var Minimatch = minimatch.Minimatch
                              -var Glob = require('./glob.js').Glob
                              -var util = require('util')
                              -var path = require('path')
                              -var assert = require('assert')
                              -var isAbsolute = require('path-is-absolute')
                              -var common = require('./common.js')
                              -var setopts = common.setopts
                              -var ownProp = common.ownProp
                              -var childrenIgnored = common.childrenIgnored
                              -var isIgnored = common.isIgnored
                              -
                              -function globSync (pattern, options) {
                              -  if (typeof options === 'function' || arguments.length === 3)
                              -    throw new TypeError('callback provided to sync glob\n'+
                              -                        'See: https://github.com/isaacs/node-glob/issues/167')
                              -
                              -  return new GlobSync(pattern, options).found
                              -}
                              -
                              -function GlobSync (pattern, options) {
                              -  if (!pattern)
                              -    throw new Error('must provide pattern')
                              -
                              -  if (typeof options === 'function' || arguments.length === 3)
                              -    throw new TypeError('callback provided to sync glob\n'+
                              -                        'See: https://github.com/isaacs/node-glob/issues/167')
                              -
                              -  if (!(this instanceof GlobSync))
                              -    return new GlobSync(pattern, options)
                              -
                              -  setopts(this, pattern, options)
                              -
                              -  if (this.noprocess)
                              -    return this
                              -
                              -  var n = this.minimatch.set.length
                              -  this.matches = new Array(n)
                              -  for (var i = 0; i < n; i ++) {
                              -    this._process(this.minimatch.set[i], i, false)
                              -  }
                              -  this._finish()
                              -}
                              -
                              -GlobSync.prototype._finish = function () {
                              -  assert.ok(this instanceof GlobSync)
                              -  if (this.realpath) {
                              -    var self = this
                              -    this.matches.forEach(function (matchset, index) {
                              -      var set = self.matches[index] = Object.create(null)
                              -      for (var p in matchset) {
                              -        try {
                              -          p = self._makeAbs(p)
                              -          var real = rp.realpathSync(p, self.realpathCache)
                              -          set[real] = true
                              -        } catch (er) {
                              -          if (er.syscall === 'stat')
                              -            set[self._makeAbs(p)] = true
                              -          else
                              -            throw er
                              -        }
                              -      }
                              -    })
                              -  }
                              -  common.finish(this)
                              -}
                              -
                              -
                              -GlobSync.prototype._process = function (pattern, index, inGlobStar) {
                              -  assert.ok(this instanceof GlobSync)
                              -
                              -  // Get the first [n] parts of pattern that are all strings.
                              -  var n = 0
                              -  while (typeof pattern[n] === 'string') {
                              -    n ++
                              -  }
                              -  // now n is the index of the first one that is *not* a string.
                              -
                              -  // See if there's anything else
                              -  var prefix
                              -  switch (n) {
                              -    // if not, then this is rather simple
                              -    case pattern.length:
                              -      this._processSimple(pattern.join('/'), index)
                              -      return
                              -
                              -    case 0:
                              -      // pattern *starts* with some non-trivial item.
                              -      // going to readdir(cwd), but not include the prefix in matches.
                              -      prefix = null
                              -      break
                              -
                              -    default:
                              -      // pattern has some string bits in the front.
                              -      // whatever it starts with, whether that's 'absolute' like /foo/bar,
                              -      // or 'relative' like '../baz'
                              -      prefix = pattern.slice(0, n).join('/')
                              -      break
                              -  }
                              -
                              -  var remain = pattern.slice(n)
                              -
                              -  // get the list of entries.
                              -  var read
                              -  if (prefix === null)
                              -    read = '.'
                              -  else if (isAbsolute(prefix) ||
                              -      isAbsolute(pattern.map(function (p) {
                              -        return typeof p === 'string' ? p : '[*]'
                              -      }).join('/'))) {
                              -    if (!prefix || !isAbsolute(prefix))
                              -      prefix = '/' + prefix
                              -    read = prefix
                              -  } else
                              -    read = prefix
                              -
                              -  var abs = this._makeAbs(read)
                              -
                              -  //if ignored, skip processing
                              -  if (childrenIgnored(this, read))
                              -    return
                              -
                              -  var isGlobStar = remain[0] === minimatch.GLOBSTAR
                              -  if (isGlobStar)
                              -    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
                              -  else
                              -    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
                              -}
                              -
                              -
                              -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
                              -  var entries = this._readdir(abs, inGlobStar)
                              -
                              -  // if the abs isn't a dir, then nothing can match!
                              -  if (!entries)
                              -    return
                              -
                              -  // It will only match dot entries if it starts with a dot, or if
                              -  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
                              -  var pn = remain[0]
                              -  var negate = !!this.minimatch.negate
                              -  var rawGlob = pn._glob
                              -  var dotOk = this.dot || rawGlob.charAt(0) === '.'
                              -
                              -  var matchedEntries = []
                              -  for (var i = 0; i < entries.length; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) !== '.' || dotOk) {
                              -      var m
                              -      if (negate && !prefix) {
                              -        m = !e.match(pn)
                              -      } else {
                              -        m = e.match(pn)
                              -      }
                              -      if (m)
                              -        matchedEntries.push(e)
                              -    }
                              -  }
                              -
                              -  var len = matchedEntries.length
                              -  // If there are no matched entries, then nothing matches.
                              -  if (len === 0)
                              -    return
                              -
                              -  // if this is the last remaining pattern bit, then no need for
                              -  // an additional stat *unless* the user has specified mark or
                              -  // stat explicitly.  We know they exist, since readdir returned
                              -  // them.
                              -
                              -  if (remain.length === 1 && !this.mark && !this.stat) {
                              -    if (!this.matches[index])
                              -      this.matches[index] = Object.create(null)
                              -
                              -    for (var i = 0; i < len; i ++) {
                              -      var e = matchedEntries[i]
                              -      if (prefix) {
                              -        if (prefix.slice(-1) !== '/')
                              -          e = prefix + '/' + e
                              -        else
                              -          e = prefix + e
                              -      }
                              -
                              -      if (e.charAt(0) === '/' && !this.nomount) {
                              -        e = path.join(this.root, e)
                              -      }
                              -      this._emitMatch(index, e)
                              -    }
                              -    // This was the last one, and no stats were needed
                              -    return
                              -  }
                              -
                              -  // now test all matched entries as stand-ins for that part
                              -  // of the pattern.
                              -  remain.shift()
                              -  for (var i = 0; i < len; i ++) {
                              -    var e = matchedEntries[i]
                              -    var newPattern
                              -    if (prefix)
                              -      newPattern = [prefix, e]
                              -    else
                              -      newPattern = [e]
                              -    this._process(newPattern.concat(remain), index, inGlobStar)
                              -  }
                              -}
                              -
                              -
                              -GlobSync.prototype._emitMatch = function (index, e) {
                              -  if (isIgnored(this, e))
                              -    return
                              -
                              -  var abs = this._makeAbs(e)
                              -
                              -  if (this.mark)
                              -    e = this._mark(e)
                              -
                              -  if (this.absolute) {
                              -    e = abs
                              -  }
                              -
                              -  if (this.matches[index][e])
                              -    return
                              -
                              -  if (this.nodir) {
                              -    var c = this.cache[abs]
                              -    if (c === 'DIR' || Array.isArray(c))
                              -      return
                              -  }
                              -
                              -  this.matches[index][e] = true
                              -
                              -  if (this.stat)
                              -    this._stat(e)
                              -}
                              -
                              -
                              -GlobSync.prototype._readdirInGlobStar = function (abs) {
                              -  // follow all symlinked directories forever
                              -  // just proceed as if this is a non-globstar situation
                              -  if (this.follow)
                              -    return this._readdir(abs, false)
                              -
                              -  var entries
                              -  var lstat
                              -  var stat
                              -  try {
                              -    lstat = this.fs.lstatSync(abs)
                              -  } catch (er) {
                              -    if (er.code === 'ENOENT') {
                              -      // lstat failed, doesn't exist
                              -      return null
                              -    }
                              -  }
                              -
                              -  var isSym = lstat && lstat.isSymbolicLink()
                              -  this.symlinks[abs] = isSym
                              -
                              -  // If it's not a symlink or a dir, then it's definitely a regular file.
                              -  // don't bother doing a readdir in that case.
                              -  if (!isSym && lstat && !lstat.isDirectory())
                              -    this.cache[abs] = 'FILE'
                              -  else
                              -    entries = this._readdir(abs, false)
                              -
                              -  return entries
                              -}
                              -
                              -GlobSync.prototype._readdir = function (abs, inGlobStar) {
                              -  var entries
                              -
                              -  if (inGlobStar && !ownProp(this.symlinks, abs))
                              -    return this._readdirInGlobStar(abs)
                              -
                              -  if (ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -    if (!c || c === 'FILE')
                              -      return null
                              -
                              -    if (Array.isArray(c))
                              -      return c
                              -  }
                              -
                              -  try {
                              -    return this._readdirEntries(abs, this.fs.readdirSync(abs))
                              -  } catch (er) {
                              -    this._readdirError(abs, er)
                              -    return null
                              -  }
                              -}
                              -
                              -GlobSync.prototype._readdirEntries = function (abs, entries) {
                              -  // if we haven't asked to stat everything, then just
                              -  // assume that everything in there exists, so we can avoid
                              -  // having to stat it a second time.
                              -  if (!this.mark && !this.stat) {
                              -    for (var i = 0; i < entries.length; i ++) {
                              -      var e = entries[i]
                              -      if (abs === '/')
                              -        e = abs + e
                              -      else
                              -        e = abs + '/' + e
                              -      this.cache[e] = true
                              -    }
                              -  }
                              -
                              -  this.cache[abs] = entries
                              -
                              -  // mark and cache dir-ness
                              -  return entries
                              -}
                              -
                              -GlobSync.prototype._readdirError = function (f, er) {
                              -  // handle errors, and cache the information
                              -  switch (er.code) {
                              -    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
                              -    case 'ENOTDIR': // totally normal. means it *does* exist.
                              -      var abs = this._makeAbs(f)
                              -      this.cache[abs] = 'FILE'
                              -      if (abs === this.cwdAbs) {
                              -        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
                              -        error.path = this.cwd
                              -        error.code = er.code
                              -        throw error
                              -      }
                              -      break
                              -
                              -    case 'ENOENT': // not terribly unusual
                              -    case 'ELOOP':
                              -    case 'ENAMETOOLONG':
                              -    case 'UNKNOWN':
                              -      this.cache[this._makeAbs(f)] = false
                              -      break
                              -
                              -    default: // some unusual error.  Treat as failure.
                              -      this.cache[this._makeAbs(f)] = false
                              -      if (this.strict)
                              -        throw er
                              -      if (!this.silent)
                              -        console.error('glob error', er)
                              -      break
                              -  }
                              -}
                              -
                              -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
                              -
                              -  var entries = this._readdir(abs, inGlobStar)
                              -
                              -  // no entries means not a dir, so it can never have matches
                              -  // foo.txt/** doesn't match foo.txt
                              -  if (!entries)
                              -    return
                              -
                              -  // test without the globstar, and with every child both below
                              -  // and replacing the globstar.
                              -  var remainWithoutGlobStar = remain.slice(1)
                              -  var gspref = prefix ? [ prefix ] : []
                              -  var noGlobStar = gspref.concat(remainWithoutGlobStar)
                              -
                              -  // the noGlobStar pattern exits the inGlobStar state
                              -  this._process(noGlobStar, index, false)
                              -
                              -  var len = entries.length
                              -  var isSym = this.symlinks[abs]
                              -
                              -  // If it's a symlink, and we're in a globstar, then stop
                              -  if (isSym && inGlobStar)
                              -    return
                              -
                              -  for (var i = 0; i < len; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) === '.' && !this.dot)
                              -      continue
                              -
                              -    // these two cases enter the inGlobStar state
                              -    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
                              -    this._process(instead, index, true)
                              -
                              -    var below = gspref.concat(entries[i], remain)
                              -    this._process(below, index, true)
                              -  }
                              -}
                              -
                              -GlobSync.prototype._processSimple = function (prefix, index) {
                              -  // XXX review this.  Shouldn't it be doing the mounting etc
                              -  // before doing stat?  kinda weird?
                              -  var exists = this._stat(prefix)
                              -
                              -  if (!this.matches[index])
                              -    this.matches[index] = Object.create(null)
                              -
                              -  // If it doesn't exist, then just mark the lack of results
                              -  if (!exists)
                              -    return
                              -
                              -  if (prefix && isAbsolute(prefix) && !this.nomount) {
                              -    var trail = /[\/\\]$/.test(prefix)
                              -    if (prefix.charAt(0) === '/') {
                              -      prefix = path.join(this.root, prefix)
                              -    } else {
                              -      prefix = path.resolve(this.root, prefix)
                              -      if (trail)
                              -        prefix += '/'
                              -    }
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    prefix = prefix.replace(/\\/g, '/')
                              -
                              -  // Mark this as a match
                              -  this._emitMatch(index, prefix)
                              -}
                              -
                              -// Returns either 'DIR', 'FILE', or false
                              -GlobSync.prototype._stat = function (f) {
                              -  var abs = this._makeAbs(f)
                              -  var needDir = f.slice(-1) === '/'
                              -
                              -  if (f.length > this.maxLength)
                              -    return false
                              -
                              -  if (!this.stat && ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -
                              -    if (Array.isArray(c))
                              -      c = 'DIR'
                              -
                              -    // It exists, but maybe not how we need it
                              -    if (!needDir || c === 'DIR')
                              -      return c
                              -
                              -    if (needDir && c === 'FILE')
                              -      return false
                              -
                              -    // otherwise we have to stat, because maybe c=true
                              -    // if we know it exists, but not what it is.
                              -  }
                              -
                              -  var exists
                              -  var stat = this.statCache[abs]
                              -  if (!stat) {
                              -    var lstat
                              -    try {
                              -      lstat = this.fs.lstatSync(abs)
                              -    } catch (er) {
                              -      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
                              -        this.statCache[abs] = false
                              -        return false
                              -      }
                              -    }
                              -
                              -    if (lstat && lstat.isSymbolicLink()) {
                              -      try {
                              -        stat = this.fs.statSync(abs)
                              -      } catch (er) {
                              -        stat = lstat
                              -      }
                              -    } else {
                              -      stat = lstat
                              -    }
                              -  }
                              -
                              -  this.statCache[abs] = stat
                              -
                              -  var c = true
                              -  if (stat)
                              -    c = stat.isDirectory() ? 'DIR' : 'FILE'
                              -
                              -  this.cache[abs] = this.cache[abs] || c
                              -
                              -  if (needDir && c === 'FILE')
                              -    return false
                              -
                              -  return c
                              -}
                              -
                              -GlobSync.prototype._mark = function (p) {
                              -  return common.mark(this, p)
                              -}
                              -
                              -GlobSync.prototype._makeAbs = function (f) {
                              -  return common.makeAbs(this, f)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/lru-cache/LICENSE
                              deleted file mode 100644
                              index f785757cd63f86..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2010-2023 Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.js b/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.js
                              deleted file mode 100644
                              index 48e99fe5e5a70c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.js
                              +++ /dev/null
                              @@ -1,1227 +0,0 @@
                              -const perf =
                              -  typeof performance === 'object' &&
                              -  performance &&
                              -  typeof performance.now === 'function'
                              -    ? performance
                              -    : Date
                              -
                              -const hasAbortController = typeof AbortController === 'function'
                              -
                              -// minimal backwards-compatibility polyfill
                              -// this doesn't have nearly all the checks and whatnot that
                              -// actual AbortController/Signal has, but it's enough for
                              -// our purposes, and if used properly, behaves the same.
                              -const AC = hasAbortController
                              -  ? AbortController
                              -  : class AbortController {
                              -      constructor() {
                              -        this.signal = new AS()
                              -      }
                              -      abort(reason = new Error('This operation was aborted')) {
                              -        this.signal.reason = this.signal.reason || reason
                              -        this.signal.aborted = true
                              -        this.signal.dispatchEvent({
                              -          type: 'abort',
                              -          target: this.signal,
                              -        })
                              -      }
                              -    }
                              -
                              -const hasAbortSignal = typeof AbortSignal === 'function'
                              -// Some polyfills put this on the AC class, not global
                              -const hasACAbortSignal = typeof AC.AbortSignal === 'function'
                              -const AS = hasAbortSignal
                              -  ? AbortSignal
                              -  : hasACAbortSignal
                              -  ? AC.AbortController
                              -  : class AbortSignal {
                              -      constructor() {
                              -        this.reason = undefined
                              -        this.aborted = false
                              -        this._listeners = []
                              -      }
                              -      dispatchEvent(e) {
                              -        if (e.type === 'abort') {
                              -          this.aborted = true
                              -          this.onabort(e)
                              -          this._listeners.forEach(f => f(e), this)
                              -        }
                              -      }
                              -      onabort() {}
                              -      addEventListener(ev, fn) {
                              -        if (ev === 'abort') {
                              -          this._listeners.push(fn)
                              -        }
                              -      }
                              -      removeEventListener(ev, fn) {
                              -        if (ev === 'abort') {
                              -          this._listeners = this._listeners.filter(f => f !== fn)
                              -        }
                              -      }
                              -    }
                              -
                              -const warned = new Set()
                              -const deprecatedOption = (opt, instead) => {
                              -  const code = `LRU_CACHE_OPTION_${opt}`
                              -  if (shouldWarn(code)) {
                              -    warn(code, `${opt} option`, `options.${instead}`, LRUCache)
                              -  }
                              -}
                              -const deprecatedMethod = (method, instead) => {
                              -  const code = `LRU_CACHE_METHOD_${method}`
                              -  if (shouldWarn(code)) {
                              -    const { prototype } = LRUCache
                              -    const { get } = Object.getOwnPropertyDescriptor(prototype, method)
                              -    warn(code, `${method} method`, `cache.${instead}()`, get)
                              -  }
                              -}
                              -const deprecatedProperty = (field, instead) => {
                              -  const code = `LRU_CACHE_PROPERTY_${field}`
                              -  if (shouldWarn(code)) {
                              -    const { prototype } = LRUCache
                              -    const { get } = Object.getOwnPropertyDescriptor(prototype, field)
                              -    warn(code, `${field} property`, `cache.${instead}`, get)
                              -  }
                              -}
                              -
                              -const emitWarning = (...a) => {
                              -  typeof process === 'object' &&
                              -  process &&
                              -  typeof process.emitWarning === 'function'
                              -    ? process.emitWarning(...a)
                              -    : console.error(...a)
                              -}
                              -
                              -const shouldWarn = code => !warned.has(code)
                              -
                              -const warn = (code, what, instead, fn) => {
                              -  warned.add(code)
                              -  const msg = `The ${what} is deprecated. Please use ${instead} instead.`
                              -  emitWarning(msg, 'DeprecationWarning', code, fn)
                              -}
                              -
                              -const isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n)
                              -
                              -/* istanbul ignore next - This is a little bit ridiculous, tbh.
                              - * The maximum array length is 2^32-1 or thereabouts on most JS impls.
                              - * And well before that point, you're caching the entire world, I mean,
                              - * that's ~32GB of just integers for the next/prev links, plus whatever
                              - * else to hold that many keys and values.  Just filling the memory with
                              - * zeroes at init time is brutal when you get that big.
                              - * But why not be complete?
                              - * Maybe in the future, these limits will have expanded. */
                              -const getUintArray = max =>
                              -  !isPosInt(max)
                              -    ? null
                              -    : max <= Math.pow(2, 8)
                              -    ? Uint8Array
                              -    : max <= Math.pow(2, 16)
                              -    ? Uint16Array
                              -    : max <= Math.pow(2, 32)
                              -    ? Uint32Array
                              -    : max <= Number.MAX_SAFE_INTEGER
                              -    ? ZeroArray
                              -    : null
                              -
                              -class ZeroArray extends Array {
                              -  constructor(size) {
                              -    super(size)
                              -    this.fill(0)
                              -  }
                              -}
                              -
                              -class Stack {
                              -  constructor(max) {
                              -    if (max === 0) {
                              -      return []
                              -    }
                              -    const UintArray = getUintArray(max)
                              -    this.heap = new UintArray(max)
                              -    this.length = 0
                              -  }
                              -  push(n) {
                              -    this.heap[this.length++] = n
                              -  }
                              -  pop() {
                              -    return this.heap[--this.length]
                              -  }
                              -}
                              -
                              -class LRUCache {
                              -  constructor(options = {}) {
                              -    const {
                              -      max = 0,
                              -      ttl,
                              -      ttlResolution = 1,
                              -      ttlAutopurge,
                              -      updateAgeOnGet,
                              -      updateAgeOnHas,
                              -      allowStale,
                              -      dispose,
                              -      disposeAfter,
                              -      noDisposeOnSet,
                              -      noUpdateTTL,
                              -      maxSize = 0,
                              -      maxEntrySize = 0,
                              -      sizeCalculation,
                              -      fetchMethod,
                              -      fetchContext,
                              -      noDeleteOnFetchRejection,
                              -      noDeleteOnStaleGet,
                              -      allowStaleOnFetchRejection,
                              -      allowStaleOnFetchAbort,
                              -      ignoreFetchAbort,
                              -    } = options
                              -
                              -    // deprecated options, don't trigger a warning for getting them if
                              -    // the thing being passed in is another LRUCache we're copying.
                              -    const { length, maxAge, stale } =
                              -      options instanceof LRUCache ? {} : options
                              -
                              -    if (max !== 0 && !isPosInt(max)) {
                              -      throw new TypeError('max option must be a nonnegative integer')
                              -    }
                              -
                              -    const UintArray = max ? getUintArray(max) : Array
                              -    if (!UintArray) {
                              -      throw new Error('invalid max value: ' + max)
                              -    }
                              -
                              -    this.max = max
                              -    this.maxSize = maxSize
                              -    this.maxEntrySize = maxEntrySize || this.maxSize
                              -    this.sizeCalculation = sizeCalculation || length
                              -    if (this.sizeCalculation) {
                              -      if (!this.maxSize && !this.maxEntrySize) {
                              -        throw new TypeError(
                              -          'cannot set sizeCalculation without setting maxSize or maxEntrySize'
                              -        )
                              -      }
                              -      if (typeof this.sizeCalculation !== 'function') {
                              -        throw new TypeError('sizeCalculation set to non-function')
                              -      }
                              -    }
                              -
                              -    this.fetchMethod = fetchMethod || null
                              -    if (this.fetchMethod && typeof this.fetchMethod !== 'function') {
                              -      throw new TypeError(
                              -        'fetchMethod must be a function if specified'
                              -      )
                              -    }
                              -
                              -    this.fetchContext = fetchContext
                              -    if (!this.fetchMethod && fetchContext !== undefined) {
                              -      throw new TypeError(
                              -        'cannot set fetchContext without fetchMethod'
                              -      )
                              -    }
                              -
                              -    this.keyMap = new Map()
                              -    this.keyList = new Array(max).fill(null)
                              -    this.valList = new Array(max).fill(null)
                              -    this.next = new UintArray(max)
                              -    this.prev = new UintArray(max)
                              -    this.head = 0
                              -    this.tail = 0
                              -    this.free = new Stack(max)
                              -    this.initialFill = 1
                              -    this.size = 0
                              -
                              -    if (typeof dispose === 'function') {
                              -      this.dispose = dispose
                              -    }
                              -    if (typeof disposeAfter === 'function') {
                              -      this.disposeAfter = disposeAfter
                              -      this.disposed = []
                              -    } else {
                              -      this.disposeAfter = null
                              -      this.disposed = null
                              -    }
                              -    this.noDisposeOnSet = !!noDisposeOnSet
                              -    this.noUpdateTTL = !!noUpdateTTL
                              -    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection
                              -    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection
                              -    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort
                              -    this.ignoreFetchAbort = !!ignoreFetchAbort
                              -
                              -    // NB: maxEntrySize is set to maxSize if it's set
                              -    if (this.maxEntrySize !== 0) {
                              -      if (this.maxSize !== 0) {
                              -        if (!isPosInt(this.maxSize)) {
                              -          throw new TypeError(
                              -            'maxSize must be a positive integer if specified'
                              -          )
                              -        }
                              -      }
                              -      if (!isPosInt(this.maxEntrySize)) {
                              -        throw new TypeError(
                              -          'maxEntrySize must be a positive integer if specified'
                              -        )
                              -      }
                              -      this.initializeSizeTracking()
                              -    }
                              -
                              -    this.allowStale = !!allowStale || !!stale
                              -    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet
                              -    this.updateAgeOnGet = !!updateAgeOnGet
                              -    this.updateAgeOnHas = !!updateAgeOnHas
                              -    this.ttlResolution =
                              -      isPosInt(ttlResolution) || ttlResolution === 0
                              -        ? ttlResolution
                              -        : 1
                              -    this.ttlAutopurge = !!ttlAutopurge
                              -    this.ttl = ttl || maxAge || 0
                              -    if (this.ttl) {
                              -      if (!isPosInt(this.ttl)) {
                              -        throw new TypeError(
                              -          'ttl must be a positive integer if specified'
                              -        )
                              -      }
                              -      this.initializeTTLTracking()
                              -    }
                              -
                              -    // do not allow completely unbounded caches
                              -    if (this.max === 0 && this.ttl === 0 && this.maxSize === 0) {
                              -      throw new TypeError(
                              -        'At least one of max, maxSize, or ttl is required'
                              -      )
                              -    }
                              -    if (!this.ttlAutopurge && !this.max && !this.maxSize) {
                              -      const code = 'LRU_CACHE_UNBOUNDED'
                              -      if (shouldWarn(code)) {
                              -        warned.add(code)
                              -        const msg =
                              -          'TTL caching without ttlAutopurge, max, or maxSize can ' +
                              -          'result in unbounded memory consumption.'
                              -        emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)
                              -      }
                              -    }
                              -
                              -    if (stale) {
                              -      deprecatedOption('stale', 'allowStale')
                              -    }
                              -    if (maxAge) {
                              -      deprecatedOption('maxAge', 'ttl')
                              -    }
                              -    if (length) {
                              -      deprecatedOption('length', 'sizeCalculation')
                              -    }
                              -  }
                              -
                              -  getRemainingTTL(key) {
                              -    return this.has(key, { updateAgeOnHas: false }) ? Infinity : 0
                              -  }
                              -
                              -  initializeTTLTracking() {
                              -    this.ttls = new ZeroArray(this.max)
                              -    this.starts = new ZeroArray(this.max)
                              -
                              -    this.setItemTTL = (index, ttl, start = perf.now()) => {
                              -      this.starts[index] = ttl !== 0 ? start : 0
                              -      this.ttls[index] = ttl
                              -      if (ttl !== 0 && this.ttlAutopurge) {
                              -        const t = setTimeout(() => {
                              -          if (this.isStale(index)) {
                              -            this.delete(this.keyList[index])
                              -          }
                              -        }, ttl + 1)
                              -        /* istanbul ignore else - unref() not supported on all platforms */
                              -        if (t.unref) {
                              -          t.unref()
                              -        }
                              -      }
                              -    }
                              -
                              -    this.updateItemAge = index => {
                              -      this.starts[index] = this.ttls[index] !== 0 ? perf.now() : 0
                              -    }
                              -
                              -    this.statusTTL = (status, index) => {
                              -      if (status) {
                              -        status.ttl = this.ttls[index]
                              -        status.start = this.starts[index]
                              -        status.now = cachedNow || getNow()
                              -        status.remainingTTL = status.now + status.ttl - status.start
                              -      }
                              -    }
                              -
                              -    // debounce calls to perf.now() to 1s so we're not hitting
                              -    // that costly call repeatedly.
                              -    let cachedNow = 0
                              -    const getNow = () => {
                              -      const n = perf.now()
                              -      if (this.ttlResolution > 0) {
                              -        cachedNow = n
                              -        const t = setTimeout(
                              -          () => (cachedNow = 0),
                              -          this.ttlResolution
                              -        )
                              -        /* istanbul ignore else - not available on all platforms */
                              -        if (t.unref) {
                              -          t.unref()
                              -        }
                              -      }
                              -      return n
                              -    }
                              -
                              -    this.getRemainingTTL = key => {
                              -      const index = this.keyMap.get(key)
                              -      if (index === undefined) {
                              -        return 0
                              -      }
                              -      return this.ttls[index] === 0 || this.starts[index] === 0
                              -        ? Infinity
                              -        : this.starts[index] +
                              -            this.ttls[index] -
                              -            (cachedNow || getNow())
                              -    }
                              -
                              -    this.isStale = index => {
                              -      return (
                              -        this.ttls[index] !== 0 &&
                              -        this.starts[index] !== 0 &&
                              -        (cachedNow || getNow()) - this.starts[index] >
                              -          this.ttls[index]
                              -      )
                              -    }
                              -  }
                              -  updateItemAge(_index) {}
                              -  statusTTL(_status, _index) {}
                              -  setItemTTL(_index, _ttl, _start) {}
                              -  isStale(_index) {
                              -    return false
                              -  }
                              -
                              -  initializeSizeTracking() {
                              -    this.calculatedSize = 0
                              -    this.sizes = new ZeroArray(this.max)
                              -    this.removeItemSize = index => {
                              -      this.calculatedSize -= this.sizes[index]
                              -      this.sizes[index] = 0
                              -    }
                              -    this.requireSize = (k, v, size, sizeCalculation) => {
                              -      // provisionally accept background fetches.
                              -      // actual value size will be checked when they return.
                              -      if (this.isBackgroundFetch(v)) {
                              -        return 0
                              -      }
                              -      if (!isPosInt(size)) {
                              -        if (sizeCalculation) {
                              -          if (typeof sizeCalculation !== 'function') {
                              -            throw new TypeError('sizeCalculation must be a function')
                              -          }
                              -          size = sizeCalculation(v, k)
                              -          if (!isPosInt(size)) {
                              -            throw new TypeError(
                              -              'sizeCalculation return invalid (expect positive integer)'
                              -            )
                              -          }
                              -        } else {
                              -          throw new TypeError(
                              -            'invalid size value (must be positive integer). ' +
                              -              'When maxSize or maxEntrySize is used, sizeCalculation or size ' +
                              -              'must be set.'
                              -          )
                              -        }
                              -      }
                              -      return size
                              -    }
                              -    this.addItemSize = (index, size, status) => {
                              -      this.sizes[index] = size
                              -      if (this.maxSize) {
                              -        const maxSize = this.maxSize - this.sizes[index]
                              -        while (this.calculatedSize > maxSize) {
                              -          this.evict(true)
                              -        }
                              -      }
                              -      this.calculatedSize += this.sizes[index]
                              -      if (status) {
                              -        status.entrySize = size
                              -        status.totalCalculatedSize = this.calculatedSize
                              -      }
                              -    }
                              -  }
                              -  removeItemSize(_index) {}
                              -  addItemSize(_index, _size) {}
                              -  requireSize(_k, _v, size, sizeCalculation) {
                              -    if (size || sizeCalculation) {
                              -      throw new TypeError(
                              -        'cannot set size without setting maxSize or maxEntrySize on cache'
                              -      )
                              -    }
                              -  }
                              -
                              -  *indexes({ allowStale = this.allowStale } = {}) {
                              -    if (this.size) {
                              -      for (let i = this.tail; true; ) {
                              -        if (!this.isValidIndex(i)) {
                              -          break
                              -        }
                              -        if (allowStale || !this.isStale(i)) {
                              -          yield i
                              -        }
                              -        if (i === this.head) {
                              -          break
                              -        } else {
                              -          i = this.prev[i]
                              -        }
                              -      }
                              -    }
                              -  }
                              -
                              -  *rindexes({ allowStale = this.allowStale } = {}) {
                              -    if (this.size) {
                              -      for (let i = this.head; true; ) {
                              -        if (!this.isValidIndex(i)) {
                              -          break
                              -        }
                              -        if (allowStale || !this.isStale(i)) {
                              -          yield i
                              -        }
                              -        if (i === this.tail) {
                              -          break
                              -        } else {
                              -          i = this.next[i]
                              -        }
                              -      }
                              -    }
                              -  }
                              -
                              -  isValidIndex(index) {
                              -    return (
                              -      index !== undefined &&
                              -      this.keyMap.get(this.keyList[index]) === index
                              -    )
                              -  }
                              -
                              -  *entries() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield [this.keyList[i], this.valList[i]]
                              -      }
                              -    }
                              -  }
                              -  *rentries() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield [this.keyList[i], this.valList[i]]
                              -      }
                              -    }
                              -  }
                              -
                              -  *keys() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.keyList[i]
                              -      }
                              -    }
                              -  }
                              -  *rkeys() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.keyList[i]
                              -      }
                              -    }
                              -  }
                              -
                              -  *values() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.valList[i]
                              -      }
                              -    }
                              -  }
                              -  *rvalues() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.valList[i]
                              -      }
                              -    }
                              -  }
                              -
                              -  [Symbol.iterator]() {
                              -    return this.entries()
                              -  }
                              -
                              -  find(fn, getOptions) {
                              -    for (const i of this.indexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      if (fn(value, this.keyList[i], this)) {
                              -        return this.get(this.keyList[i], getOptions)
                              -      }
                              -    }
                              -  }
                              -
                              -  forEach(fn, thisp = this) {
                              -    for (const i of this.indexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      fn.call(thisp, value, this.keyList[i], this)
                              -    }
                              -  }
                              -
                              -  rforEach(fn, thisp = this) {
                              -    for (const i of this.rindexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      fn.call(thisp, value, this.keyList[i], this)
                              -    }
                              -  }
                              -
                              -  get prune() {
                              -    deprecatedMethod('prune', 'purgeStale')
                              -    return this.purgeStale
                              -  }
                              -
                              -  purgeStale() {
                              -    let deleted = false
                              -    for (const i of this.rindexes({ allowStale: true })) {
                              -      if (this.isStale(i)) {
                              -        this.delete(this.keyList[i])
                              -        deleted = true
                              -      }
                              -    }
                              -    return deleted
                              -  }
                              -
                              -  dump() {
                              -    const arr = []
                              -    for (const i of this.indexes({ allowStale: true })) {
                              -      const key = this.keyList[i]
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      const entry = { value }
                              -      if (this.ttls) {
                              -        entry.ttl = this.ttls[i]
                              -        // always dump the start relative to a portable timestamp
                              -        // it's ok for this to be a bit slow, it's a rare operation.
                              -        const age = perf.now() - this.starts[i]
                              -        entry.start = Math.floor(Date.now() - age)
                              -      }
                              -      if (this.sizes) {
                              -        entry.size = this.sizes[i]
                              -      }
                              -      arr.unshift([key, entry])
                              -    }
                              -    return arr
                              -  }
                              -
                              -  load(arr) {
                              -    this.clear()
                              -    for (const [key, entry] of arr) {
                              -      if (entry.start) {
                              -        // entry.start is a portable timestamp, but we may be using
                              -        // node's performance.now(), so calculate the offset.
                              -        // it's ok for this to be a bit slow, it's a rare operation.
                              -        const age = Date.now() - entry.start
                              -        entry.start = perf.now() - age
                              -      }
                              -      this.set(key, entry.value, entry)
                              -    }
                              -  }
                              -
                              -  dispose(_v, _k, _reason) {}
                              -
                              -  set(
                              -    k,
                              -    v,
                              -    {
                              -      ttl = this.ttl,
                              -      start,
                              -      noDisposeOnSet = this.noDisposeOnSet,
                              -      size = 0,
                              -      sizeCalculation = this.sizeCalculation,
                              -      noUpdateTTL = this.noUpdateTTL,
                              -      status,
                              -    } = {}
                              -  ) {
                              -    size = this.requireSize(k, v, size, sizeCalculation)
                              -    // if the item doesn't fit, don't do anything
                              -    // NB: maxEntrySize set to maxSize by default
                              -    if (this.maxEntrySize && size > this.maxEntrySize) {
                              -      if (status) {
                              -        status.set = 'miss'
                              -        status.maxEntrySizeExceeded = true
                              -      }
                              -      // have to delete, in case a background fetch is there already.
                              -      // in non-async cases, this is a no-op
                              -      this.delete(k)
                              -      return this
                              -    }
                              -    let index = this.size === 0 ? undefined : this.keyMap.get(k)
                              -    if (index === undefined) {
                              -      // addition
                              -      index = this.newIndex()
                              -      this.keyList[index] = k
                              -      this.valList[index] = v
                              -      this.keyMap.set(k, index)
                              -      this.next[this.tail] = index
                              -      this.prev[index] = this.tail
                              -      this.tail = index
                              -      this.size++
                              -      this.addItemSize(index, size, status)
                              -      if (status) {
                              -        status.set = 'add'
                              -      }
                              -      noUpdateTTL = false
                              -    } else {
                              -      // update
                              -      this.moveToTail(index)
                              -      const oldVal = this.valList[index]
                              -      if (v !== oldVal) {
                              -        if (this.isBackgroundFetch(oldVal)) {
                              -          oldVal.__abortController.abort(new Error('replaced'))
                              -        } else {
                              -          if (!noDisposeOnSet) {
                              -            this.dispose(oldVal, k, 'set')
                              -            if (this.disposeAfter) {
                              -              this.disposed.push([oldVal, k, 'set'])
                              -            }
                              -          }
                              -        }
                              -        this.removeItemSize(index)
                              -        this.valList[index] = v
                              -        this.addItemSize(index, size, status)
                              -        if (status) {
                              -          status.set = 'replace'
                              -          const oldValue =
                              -            oldVal && this.isBackgroundFetch(oldVal)
                              -              ? oldVal.__staleWhileFetching
                              -              : oldVal
                              -          if (oldValue !== undefined) status.oldValue = oldValue
                              -        }
                              -      } else if (status) {
                              -        status.set = 'update'
                              -      }
                              -    }
                              -    if (ttl !== 0 && this.ttl === 0 && !this.ttls) {
                              -      this.initializeTTLTracking()
                              -    }
                              -    if (!noUpdateTTL) {
                              -      this.setItemTTL(index, ttl, start)
                              -    }
                              -    this.statusTTL(status, index)
                              -    if (this.disposeAfter) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -    return this
                              -  }
                              -
                              -  newIndex() {
                              -    if (this.size === 0) {
                              -      return this.tail
                              -    }
                              -    if (this.size === this.max && this.max !== 0) {
                              -      return this.evict(false)
                              -    }
                              -    if (this.free.length !== 0) {
                              -      return this.free.pop()
                              -    }
                              -    // initial fill, just keep writing down the list
                              -    return this.initialFill++
                              -  }
                              -
                              -  pop() {
                              -    if (this.size) {
                              -      const val = this.valList[this.head]
                              -      this.evict(true)
                              -      return val
                              -    }
                              -  }
                              -
                              -  evict(free) {
                              -    const head = this.head
                              -    const k = this.keyList[head]
                              -    const v = this.valList[head]
                              -    if (this.isBackgroundFetch(v)) {
                              -      v.__abortController.abort(new Error('evicted'))
                              -    } else {
                              -      this.dispose(v, k, 'evict')
                              -      if (this.disposeAfter) {
                              -        this.disposed.push([v, k, 'evict'])
                              -      }
                              -    }
                              -    this.removeItemSize(head)
                              -    // if we aren't about to use the index, then null these out
                              -    if (free) {
                              -      this.keyList[head] = null
                              -      this.valList[head] = null
                              -      this.free.push(head)
                              -    }
                              -    this.head = this.next[head]
                              -    this.keyMap.delete(k)
                              -    this.size--
                              -    return head
                              -  }
                              -
                              -  has(k, { updateAgeOnHas = this.updateAgeOnHas, status } = {}) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined) {
                              -      if (!this.isStale(index)) {
                              -        if (updateAgeOnHas) {
                              -          this.updateItemAge(index)
                              -        }
                              -        if (status) status.has = 'hit'
                              -        this.statusTTL(status, index)
                              -        return true
                              -      } else if (status) {
                              -        status.has = 'stale'
                              -        this.statusTTL(status, index)
                              -      }
                              -    } else if (status) {
                              -      status.has = 'miss'
                              -    }
                              -    return false
                              -  }
                              -
                              -  // like get(), but without any LRU updating or TTL expiration
                              -  peek(k, { allowStale = this.allowStale } = {}) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined && (allowStale || !this.isStale(index))) {
                              -      const v = this.valList[index]
                              -      // either stale and allowed, or forcing a refresh of non-stale value
                              -      return this.isBackgroundFetch(v) ? v.__staleWhileFetching : v
                              -    }
                              -  }
                              -
                              -  backgroundFetch(k, index, options, context) {
                              -    const v = index === undefined ? undefined : this.valList[index]
                              -    if (this.isBackgroundFetch(v)) {
                              -      return v
                              -    }
                              -    const ac = new AC()
                              -    if (options.signal) {
                              -      options.signal.addEventListener('abort', () =>
                              -        ac.abort(options.signal.reason)
                              -      )
                              -    }
                              -    const fetchOpts = {
                              -      signal: ac.signal,
                              -      options,
                              -      context,
                              -    }
                              -    const cb = (v, updateCache = false) => {
                              -      const { aborted } = ac.signal
                              -      const ignoreAbort = options.ignoreFetchAbort && v !== undefined
                              -      if (options.status) {
                              -        if (aborted && !updateCache) {
                              -          options.status.fetchAborted = true
                              -          options.status.fetchError = ac.signal.reason
                              -          if (ignoreAbort) options.status.fetchAbortIgnored = true
                              -        } else {
                              -          options.status.fetchResolved = true
                              -        }
                              -      }
                              -      if (aborted && !ignoreAbort && !updateCache) {
                              -        return fetchFail(ac.signal.reason)
                              -      }
                              -      // either we didn't abort, and are still here, or we did, and ignored
                              -      if (this.valList[index] === p) {
                              -        if (v === undefined) {
                              -          if (p.__staleWhileFetching) {
                              -            this.valList[index] = p.__staleWhileFetching
                              -          } else {
                              -            this.delete(k)
                              -          }
                              -        } else {
                              -          if (options.status) options.status.fetchUpdated = true
                              -          this.set(k, v, fetchOpts.options)
                              -        }
                              -      }
                              -      return v
                              -    }
                              -    const eb = er => {
                              -      if (options.status) {
                              -        options.status.fetchRejected = true
                              -        options.status.fetchError = er
                              -      }
                              -      return fetchFail(er)
                              -    }
                              -    const fetchFail = er => {
                              -      const { aborted } = ac.signal
                              -      const allowStaleAborted =
                              -        aborted && options.allowStaleOnFetchAbort
                              -      const allowStale =
                              -        allowStaleAborted || options.allowStaleOnFetchRejection
                              -      const noDelete = allowStale || options.noDeleteOnFetchRejection
                              -      if (this.valList[index] === p) {
                              -        // if we allow stale on fetch rejections, then we need to ensure that
                              -        // the stale value is not removed from the cache when the fetch fails.
                              -        const del = !noDelete || p.__staleWhileFetching === undefined
                              -        if (del) {
                              -          this.delete(k)
                              -        } else if (!allowStaleAborted) {
                              -          // still replace the *promise* with the stale value,
                              -          // since we are done with the promise at this point.
                              -          // leave it untouched if we're still waiting for an
                              -          // aborted background fetch that hasn't yet returned.
                              -          this.valList[index] = p.__staleWhileFetching
                              -        }
                              -      }
                              -      if (allowStale) {
                              -        if (options.status && p.__staleWhileFetching !== undefined) {
                              -          options.status.returnedStale = true
                              -        }
                              -        return p.__staleWhileFetching
                              -      } else if (p.__returned === p) {
                              -        throw er
                              -      }
                              -    }
                              -    const pcall = (res, rej) => {
                              -      this.fetchMethod(k, v, fetchOpts).then(v => res(v), rej)
                              -      // ignored, we go until we finish, regardless.
                              -      // defer check until we are actually aborting,
                              -      // so fetchMethod can override.
                              -      ac.signal.addEventListener('abort', () => {
                              -        if (
                              -          !options.ignoreFetchAbort ||
                              -          options.allowStaleOnFetchAbort
                              -        ) {
                              -          res()
                              -          // when it eventually resolves, update the cache.
                              -          if (options.allowStaleOnFetchAbort) {
                              -            res = v => cb(v, true)
                              -          }
                              -        }
                              -      })
                              -    }
                              -    if (options.status) options.status.fetchDispatched = true
                              -    const p = new Promise(pcall).then(cb, eb)
                              -    p.__abortController = ac
                              -    p.__staleWhileFetching = v
                              -    p.__returned = null
                              -    if (index === undefined) {
                              -      // internal, don't expose status.
                              -      this.set(k, p, { ...fetchOpts.options, status: undefined })
                              -      index = this.keyMap.get(k)
                              -    } else {
                              -      this.valList[index] = p
                              -    }
                              -    return p
                              -  }
                              -
                              -  isBackgroundFetch(p) {
                              -    return (
                              -      p &&
                              -      typeof p === 'object' &&
                              -      typeof p.then === 'function' &&
                              -      Object.prototype.hasOwnProperty.call(
                              -        p,
                              -        '__staleWhileFetching'
                              -      ) &&
                              -      Object.prototype.hasOwnProperty.call(p, '__returned') &&
                              -      (p.__returned === p || p.__returned === null)
                              -    )
                              -  }
                              -
                              -  // this takes the union of get() and set() opts, because it does both
                              -  async fetch(
                              -    k,
                              -    {
                              -      // get options
                              -      allowStale = this.allowStale,
                              -      updateAgeOnGet = this.updateAgeOnGet,
                              -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
                              -      // set options
                              -      ttl = this.ttl,
                              -      noDisposeOnSet = this.noDisposeOnSet,
                              -      size = 0,
                              -      sizeCalculation = this.sizeCalculation,
                              -      noUpdateTTL = this.noUpdateTTL,
                              -      // fetch exclusive options
                              -      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
                              -      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
                              -      ignoreFetchAbort = this.ignoreFetchAbort,
                              -      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
                              -      fetchContext = this.fetchContext,
                              -      forceRefresh = false,
                              -      status,
                              -      signal,
                              -    } = {}
                              -  ) {
                              -    if (!this.fetchMethod) {
                              -      if (status) status.fetch = 'get'
                              -      return this.get(k, {
                              -        allowStale,
                              -        updateAgeOnGet,
                              -        noDeleteOnStaleGet,
                              -        status,
                              -      })
                              -    }
                              -
                              -    const options = {
                              -      allowStale,
                              -      updateAgeOnGet,
                              -      noDeleteOnStaleGet,
                              -      ttl,
                              -      noDisposeOnSet,
                              -      size,
                              -      sizeCalculation,
                              -      noUpdateTTL,
                              -      noDeleteOnFetchRejection,
                              -      allowStaleOnFetchRejection,
                              -      allowStaleOnFetchAbort,
                              -      ignoreFetchAbort,
                              -      status,
                              -      signal,
                              -    }
                              -
                              -    let index = this.keyMap.get(k)
                              -    if (index === undefined) {
                              -      if (status) status.fetch = 'miss'
                              -      const p = this.backgroundFetch(k, index, options, fetchContext)
                              -      return (p.__returned = p)
                              -    } else {
                              -      // in cache, maybe already fetching
                              -      const v = this.valList[index]
                              -      if (this.isBackgroundFetch(v)) {
                              -        const stale =
                              -          allowStale && v.__staleWhileFetching !== undefined
                              -        if (status) {
                              -          status.fetch = 'inflight'
                              -          if (stale) status.returnedStale = true
                              -        }
                              -        return stale ? v.__staleWhileFetching : (v.__returned = v)
                              -      }
                              -
                              -      // if we force a refresh, that means do NOT serve the cached value,
                              -      // unless we are already in the process of refreshing the cache.
                              -      const isStale = this.isStale(index)
                              -      if (!forceRefresh && !isStale) {
                              -        if (status) status.fetch = 'hit'
                              -        this.moveToTail(index)
                              -        if (updateAgeOnGet) {
                              -          this.updateItemAge(index)
                              -        }
                              -        this.statusTTL(status, index)
                              -        return v
                              -      }
                              -
                              -      // ok, it is stale or a forced refresh, and not already fetching.
                              -      // refresh the cache.
                              -      const p = this.backgroundFetch(k, index, options, fetchContext)
                              -      const hasStale = p.__staleWhileFetching !== undefined
                              -      const staleVal = hasStale && allowStale
                              -      if (status) {
                              -        status.fetch = hasStale && isStale ? 'stale' : 'refresh'
                              -        if (staleVal && isStale) status.returnedStale = true
                              -      }
                              -      return staleVal ? p.__staleWhileFetching : (p.__returned = p)
                              -    }
                              -  }
                              -
                              -  get(
                              -    k,
                              -    {
                              -      allowStale = this.allowStale,
                              -      updateAgeOnGet = this.updateAgeOnGet,
                              -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
                              -      status,
                              -    } = {}
                              -  ) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined) {
                              -      const value = this.valList[index]
                              -      const fetching = this.isBackgroundFetch(value)
                              -      this.statusTTL(status, index)
                              -      if (this.isStale(index)) {
                              -        if (status) status.get = 'stale'
                              -        // delete only if not an in-flight background fetch
                              -        if (!fetching) {
                              -          if (!noDeleteOnStaleGet) {
                              -            this.delete(k)
                              -          }
                              -          if (status) status.returnedStale = allowStale
                              -          return allowStale ? value : undefined
                              -        } else {
                              -          if (status) {
                              -            status.returnedStale =
                              -              allowStale && value.__staleWhileFetching !== undefined
                              -          }
                              -          return allowStale ? value.__staleWhileFetching : undefined
                              -        }
                              -      } else {
                              -        if (status) status.get = 'hit'
                              -        // if we're currently fetching it, we don't actually have it yet
                              -        // it's not stale, which means this isn't a staleWhileRefetching.
                              -        // If it's not stale, and fetching, AND has a __staleWhileFetching
                              -        // value, then that means the user fetched with {forceRefresh:true},
                              -        // so it's safe to return that value.
                              -        if (fetching) {
                              -          return value.__staleWhileFetching
                              -        }
                              -        this.moveToTail(index)
                              -        if (updateAgeOnGet) {
                              -          this.updateItemAge(index)
                              -        }
                              -        return value
                              -      }
                              -    } else if (status) {
                              -      status.get = 'miss'
                              -    }
                              -  }
                              -
                              -  connect(p, n) {
                              -    this.prev[n] = p
                              -    this.next[p] = n
                              -  }
                              -
                              -  moveToTail(index) {
                              -    // if tail already, nothing to do
                              -    // if head, move head to next[index]
                              -    // else
                              -    //   move next[prev[index]] to next[index] (head has no prev)
                              -    //   move prev[next[index]] to prev[index]
                              -    // prev[index] = tail
                              -    // next[tail] = index
                              -    // tail = index
                              -    if (index !== this.tail) {
                              -      if (index === this.head) {
                              -        this.head = this.next[index]
                              -      } else {
                              -        this.connect(this.prev[index], this.next[index])
                              -      }
                              -      this.connect(this.tail, index)
                              -      this.tail = index
                              -    }
                              -  }
                              -
                              -  get del() {
                              -    deprecatedMethod('del', 'delete')
                              -    return this.delete
                              -  }
                              -
                              -  delete(k) {
                              -    let deleted = false
                              -    if (this.size !== 0) {
                              -      const index = this.keyMap.get(k)
                              -      if (index !== undefined) {
                              -        deleted = true
                              -        if (this.size === 1) {
                              -          this.clear()
                              -        } else {
                              -          this.removeItemSize(index)
                              -          const v = this.valList[index]
                              -          if (this.isBackgroundFetch(v)) {
                              -            v.__abortController.abort(new Error('deleted'))
                              -          } else {
                              -            this.dispose(v, k, 'delete')
                              -            if (this.disposeAfter) {
                              -              this.disposed.push([v, k, 'delete'])
                              -            }
                              -          }
                              -          this.keyMap.delete(k)
                              -          this.keyList[index] = null
                              -          this.valList[index] = null
                              -          if (index === this.tail) {
                              -            this.tail = this.prev[index]
                              -          } else if (index === this.head) {
                              -            this.head = this.next[index]
                              -          } else {
                              -            this.next[this.prev[index]] = this.next[index]
                              -            this.prev[this.next[index]] = this.prev[index]
                              -          }
                              -          this.size--
                              -          this.free.push(index)
                              -        }
                              -      }
                              -    }
                              -    if (this.disposed) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -    return deleted
                              -  }
                              -
                              -  clear() {
                              -    for (const index of this.rindexes({ allowStale: true })) {
                              -      const v = this.valList[index]
                              -      if (this.isBackgroundFetch(v)) {
                              -        v.__abortController.abort(new Error('deleted'))
                              -      } else {
                              -        const k = this.keyList[index]
                              -        this.dispose(v, k, 'delete')
                              -        if (this.disposeAfter) {
                              -          this.disposed.push([v, k, 'delete'])
                              -        }
                              -      }
                              -    }
                              -
                              -    this.keyMap.clear()
                              -    this.valList.fill(null)
                              -    this.keyList.fill(null)
                              -    if (this.ttls) {
                              -      this.ttls.fill(0)
                              -      this.starts.fill(0)
                              -    }
                              -    if (this.sizes) {
                              -      this.sizes.fill(0)
                              -    }
                              -    this.head = 0
                              -    this.tail = 0
                              -    this.initialFill = 1
                              -    this.free.length = 0
                              -    this.calculatedSize = 0
                              -    this.size = 0
                              -    if (this.disposed) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -  }
                              -
                              -  get reset() {
                              -    deprecatedMethod('reset', 'clear')
                              -    return this.clear
                              -  }
                              -
                              -  get length() {
                              -    deprecatedProperty('length', 'size')
                              -    return this.size
                              -  }
                              -
                              -  static get AbortController() {
                              -    return AC
                              -  }
                              -  static get AbortSignal() {
                              -    return AS
                              -  }
                              -}
                              -
                              -module.exports = LRUCache
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.mjs b/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.mjs
                              deleted file mode 100644
                              index 4a0b4813ec5157..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/index.mjs
                              +++ /dev/null
                              @@ -1,1227 +0,0 @@
                              -const perf =
                              -  typeof performance === 'object' &&
                              -  performance &&
                              -  typeof performance.now === 'function'
                              -    ? performance
                              -    : Date
                              -
                              -const hasAbortController = typeof AbortController === 'function'
                              -
                              -// minimal backwards-compatibility polyfill
                              -// this doesn't have nearly all the checks and whatnot that
                              -// actual AbortController/Signal has, but it's enough for
                              -// our purposes, and if used properly, behaves the same.
                              -const AC = hasAbortController
                              -  ? AbortController
                              -  : class AbortController {
                              -      constructor() {
                              -        this.signal = new AS()
                              -      }
                              -      abort(reason = new Error('This operation was aborted')) {
                              -        this.signal.reason = this.signal.reason || reason
                              -        this.signal.aborted = true
                              -        this.signal.dispatchEvent({
                              -          type: 'abort',
                              -          target: this.signal,
                              -        })
                              -      }
                              -    }
                              -
                              -const hasAbortSignal = typeof AbortSignal === 'function'
                              -// Some polyfills put this on the AC class, not global
                              -const hasACAbortSignal = typeof AC.AbortSignal === 'function'
                              -const AS = hasAbortSignal
                              -  ? AbortSignal
                              -  : hasACAbortSignal
                              -  ? AC.AbortController
                              -  : class AbortSignal {
                              -      constructor() {
                              -        this.reason = undefined
                              -        this.aborted = false
                              -        this._listeners = []
                              -      }
                              -      dispatchEvent(e) {
                              -        if (e.type === 'abort') {
                              -          this.aborted = true
                              -          this.onabort(e)
                              -          this._listeners.forEach(f => f(e), this)
                              -        }
                              -      }
                              -      onabort() {}
                              -      addEventListener(ev, fn) {
                              -        if (ev === 'abort') {
                              -          this._listeners.push(fn)
                              -        }
                              -      }
                              -      removeEventListener(ev, fn) {
                              -        if (ev === 'abort') {
                              -          this._listeners = this._listeners.filter(f => f !== fn)
                              -        }
                              -      }
                              -    }
                              -
                              -const warned = new Set()
                              -const deprecatedOption = (opt, instead) => {
                              -  const code = `LRU_CACHE_OPTION_${opt}`
                              -  if (shouldWarn(code)) {
                              -    warn(code, `${opt} option`, `options.${instead}`, LRUCache)
                              -  }
                              -}
                              -const deprecatedMethod = (method, instead) => {
                              -  const code = `LRU_CACHE_METHOD_${method}`
                              -  if (shouldWarn(code)) {
                              -    const { prototype } = LRUCache
                              -    const { get } = Object.getOwnPropertyDescriptor(prototype, method)
                              -    warn(code, `${method} method`, `cache.${instead}()`, get)
                              -  }
                              -}
                              -const deprecatedProperty = (field, instead) => {
                              -  const code = `LRU_CACHE_PROPERTY_${field}`
                              -  if (shouldWarn(code)) {
                              -    const { prototype } = LRUCache
                              -    const { get } = Object.getOwnPropertyDescriptor(prototype, field)
                              -    warn(code, `${field} property`, `cache.${instead}`, get)
                              -  }
                              -}
                              -
                              -const emitWarning = (...a) => {
                              -  typeof process === 'object' &&
                              -  process &&
                              -  typeof process.emitWarning === 'function'
                              -    ? process.emitWarning(...a)
                              -    : console.error(...a)
                              -}
                              -
                              -const shouldWarn = code => !warned.has(code)
                              -
                              -const warn = (code, what, instead, fn) => {
                              -  warned.add(code)
                              -  const msg = `The ${what} is deprecated. Please use ${instead} instead.`
                              -  emitWarning(msg, 'DeprecationWarning', code, fn)
                              -}
                              -
                              -const isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n)
                              -
                              -/* istanbul ignore next - This is a little bit ridiculous, tbh.
                              - * The maximum array length is 2^32-1 or thereabouts on most JS impls.
                              - * And well before that point, you're caching the entire world, I mean,
                              - * that's ~32GB of just integers for the next/prev links, plus whatever
                              - * else to hold that many keys and values.  Just filling the memory with
                              - * zeroes at init time is brutal when you get that big.
                              - * But why not be complete?
                              - * Maybe in the future, these limits will have expanded. */
                              -const getUintArray = max =>
                              -  !isPosInt(max)
                              -    ? null
                              -    : max <= Math.pow(2, 8)
                              -    ? Uint8Array
                              -    : max <= Math.pow(2, 16)
                              -    ? Uint16Array
                              -    : max <= Math.pow(2, 32)
                              -    ? Uint32Array
                              -    : max <= Number.MAX_SAFE_INTEGER
                              -    ? ZeroArray
                              -    : null
                              -
                              -class ZeroArray extends Array {
                              -  constructor(size) {
                              -    super(size)
                              -    this.fill(0)
                              -  }
                              -}
                              -
                              -class Stack {
                              -  constructor(max) {
                              -    if (max === 0) {
                              -      return []
                              -    }
                              -    const UintArray = getUintArray(max)
                              -    this.heap = new UintArray(max)
                              -    this.length = 0
                              -  }
                              -  push(n) {
                              -    this.heap[this.length++] = n
                              -  }
                              -  pop() {
                              -    return this.heap[--this.length]
                              -  }
                              -}
                              -
                              -class LRUCache {
                              -  constructor(options = {}) {
                              -    const {
                              -      max = 0,
                              -      ttl,
                              -      ttlResolution = 1,
                              -      ttlAutopurge,
                              -      updateAgeOnGet,
                              -      updateAgeOnHas,
                              -      allowStale,
                              -      dispose,
                              -      disposeAfter,
                              -      noDisposeOnSet,
                              -      noUpdateTTL,
                              -      maxSize = 0,
                              -      maxEntrySize = 0,
                              -      sizeCalculation,
                              -      fetchMethod,
                              -      fetchContext,
                              -      noDeleteOnFetchRejection,
                              -      noDeleteOnStaleGet,
                              -      allowStaleOnFetchRejection,
                              -      allowStaleOnFetchAbort,
                              -      ignoreFetchAbort,
                              -    } = options
                              -
                              -    // deprecated options, don't trigger a warning for getting them if
                              -    // the thing being passed in is another LRUCache we're copying.
                              -    const { length, maxAge, stale } =
                              -      options instanceof LRUCache ? {} : options
                              -
                              -    if (max !== 0 && !isPosInt(max)) {
                              -      throw new TypeError('max option must be a nonnegative integer')
                              -    }
                              -
                              -    const UintArray = max ? getUintArray(max) : Array
                              -    if (!UintArray) {
                              -      throw new Error('invalid max value: ' + max)
                              -    }
                              -
                              -    this.max = max
                              -    this.maxSize = maxSize
                              -    this.maxEntrySize = maxEntrySize || this.maxSize
                              -    this.sizeCalculation = sizeCalculation || length
                              -    if (this.sizeCalculation) {
                              -      if (!this.maxSize && !this.maxEntrySize) {
                              -        throw new TypeError(
                              -          'cannot set sizeCalculation without setting maxSize or maxEntrySize'
                              -        )
                              -      }
                              -      if (typeof this.sizeCalculation !== 'function') {
                              -        throw new TypeError('sizeCalculation set to non-function')
                              -      }
                              -    }
                              -
                              -    this.fetchMethod = fetchMethod || null
                              -    if (this.fetchMethod && typeof this.fetchMethod !== 'function') {
                              -      throw new TypeError(
                              -        'fetchMethod must be a function if specified'
                              -      )
                              -    }
                              -
                              -    this.fetchContext = fetchContext
                              -    if (!this.fetchMethod && fetchContext !== undefined) {
                              -      throw new TypeError(
                              -        'cannot set fetchContext without fetchMethod'
                              -      )
                              -    }
                              -
                              -    this.keyMap = new Map()
                              -    this.keyList = new Array(max).fill(null)
                              -    this.valList = new Array(max).fill(null)
                              -    this.next = new UintArray(max)
                              -    this.prev = new UintArray(max)
                              -    this.head = 0
                              -    this.tail = 0
                              -    this.free = new Stack(max)
                              -    this.initialFill = 1
                              -    this.size = 0
                              -
                              -    if (typeof dispose === 'function') {
                              -      this.dispose = dispose
                              -    }
                              -    if (typeof disposeAfter === 'function') {
                              -      this.disposeAfter = disposeAfter
                              -      this.disposed = []
                              -    } else {
                              -      this.disposeAfter = null
                              -      this.disposed = null
                              -    }
                              -    this.noDisposeOnSet = !!noDisposeOnSet
                              -    this.noUpdateTTL = !!noUpdateTTL
                              -    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection
                              -    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection
                              -    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort
                              -    this.ignoreFetchAbort = !!ignoreFetchAbort
                              -
                              -    // NB: maxEntrySize is set to maxSize if it's set
                              -    if (this.maxEntrySize !== 0) {
                              -      if (this.maxSize !== 0) {
                              -        if (!isPosInt(this.maxSize)) {
                              -          throw new TypeError(
                              -            'maxSize must be a positive integer if specified'
                              -          )
                              -        }
                              -      }
                              -      if (!isPosInt(this.maxEntrySize)) {
                              -        throw new TypeError(
                              -          'maxEntrySize must be a positive integer if specified'
                              -        )
                              -      }
                              -      this.initializeSizeTracking()
                              -    }
                              -
                              -    this.allowStale = !!allowStale || !!stale
                              -    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet
                              -    this.updateAgeOnGet = !!updateAgeOnGet
                              -    this.updateAgeOnHas = !!updateAgeOnHas
                              -    this.ttlResolution =
                              -      isPosInt(ttlResolution) || ttlResolution === 0
                              -        ? ttlResolution
                              -        : 1
                              -    this.ttlAutopurge = !!ttlAutopurge
                              -    this.ttl = ttl || maxAge || 0
                              -    if (this.ttl) {
                              -      if (!isPosInt(this.ttl)) {
                              -        throw new TypeError(
                              -          'ttl must be a positive integer if specified'
                              -        )
                              -      }
                              -      this.initializeTTLTracking()
                              -    }
                              -
                              -    // do not allow completely unbounded caches
                              -    if (this.max === 0 && this.ttl === 0 && this.maxSize === 0) {
                              -      throw new TypeError(
                              -        'At least one of max, maxSize, or ttl is required'
                              -      )
                              -    }
                              -    if (!this.ttlAutopurge && !this.max && !this.maxSize) {
                              -      const code = 'LRU_CACHE_UNBOUNDED'
                              -      if (shouldWarn(code)) {
                              -        warned.add(code)
                              -        const msg =
                              -          'TTL caching without ttlAutopurge, max, or maxSize can ' +
                              -          'result in unbounded memory consumption.'
                              -        emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)
                              -      }
                              -    }
                              -
                              -    if (stale) {
                              -      deprecatedOption('stale', 'allowStale')
                              -    }
                              -    if (maxAge) {
                              -      deprecatedOption('maxAge', 'ttl')
                              -    }
                              -    if (length) {
                              -      deprecatedOption('length', 'sizeCalculation')
                              -    }
                              -  }
                              -
                              -  getRemainingTTL(key) {
                              -    return this.has(key, { updateAgeOnHas: false }) ? Infinity : 0
                              -  }
                              -
                              -  initializeTTLTracking() {
                              -    this.ttls = new ZeroArray(this.max)
                              -    this.starts = new ZeroArray(this.max)
                              -
                              -    this.setItemTTL = (index, ttl, start = perf.now()) => {
                              -      this.starts[index] = ttl !== 0 ? start : 0
                              -      this.ttls[index] = ttl
                              -      if (ttl !== 0 && this.ttlAutopurge) {
                              -        const t = setTimeout(() => {
                              -          if (this.isStale(index)) {
                              -            this.delete(this.keyList[index])
                              -          }
                              -        }, ttl + 1)
                              -        /* istanbul ignore else - unref() not supported on all platforms */
                              -        if (t.unref) {
                              -          t.unref()
                              -        }
                              -      }
                              -    }
                              -
                              -    this.updateItemAge = index => {
                              -      this.starts[index] = this.ttls[index] !== 0 ? perf.now() : 0
                              -    }
                              -
                              -    this.statusTTL = (status, index) => {
                              -      if (status) {
                              -        status.ttl = this.ttls[index]
                              -        status.start = this.starts[index]
                              -        status.now = cachedNow || getNow()
                              -        status.remainingTTL = status.now + status.ttl - status.start
                              -      }
                              -    }
                              -
                              -    // debounce calls to perf.now() to 1s so we're not hitting
                              -    // that costly call repeatedly.
                              -    let cachedNow = 0
                              -    const getNow = () => {
                              -      const n = perf.now()
                              -      if (this.ttlResolution > 0) {
                              -        cachedNow = n
                              -        const t = setTimeout(
                              -          () => (cachedNow = 0),
                              -          this.ttlResolution
                              -        )
                              -        /* istanbul ignore else - not available on all platforms */
                              -        if (t.unref) {
                              -          t.unref()
                              -        }
                              -      }
                              -      return n
                              -    }
                              -
                              -    this.getRemainingTTL = key => {
                              -      const index = this.keyMap.get(key)
                              -      if (index === undefined) {
                              -        return 0
                              -      }
                              -      return this.ttls[index] === 0 || this.starts[index] === 0
                              -        ? Infinity
                              -        : this.starts[index] +
                              -            this.ttls[index] -
                              -            (cachedNow || getNow())
                              -    }
                              -
                              -    this.isStale = index => {
                              -      return (
                              -        this.ttls[index] !== 0 &&
                              -        this.starts[index] !== 0 &&
                              -        (cachedNow || getNow()) - this.starts[index] >
                              -          this.ttls[index]
                              -      )
                              -    }
                              -  }
                              -  updateItemAge(_index) {}
                              -  statusTTL(_status, _index) {}
                              -  setItemTTL(_index, _ttl, _start) {}
                              -  isStale(_index) {
                              -    return false
                              -  }
                              -
                              -  initializeSizeTracking() {
                              -    this.calculatedSize = 0
                              -    this.sizes = new ZeroArray(this.max)
                              -    this.removeItemSize = index => {
                              -      this.calculatedSize -= this.sizes[index]
                              -      this.sizes[index] = 0
                              -    }
                              -    this.requireSize = (k, v, size, sizeCalculation) => {
                              -      // provisionally accept background fetches.
                              -      // actual value size will be checked when they return.
                              -      if (this.isBackgroundFetch(v)) {
                              -        return 0
                              -      }
                              -      if (!isPosInt(size)) {
                              -        if (sizeCalculation) {
                              -          if (typeof sizeCalculation !== 'function') {
                              -            throw new TypeError('sizeCalculation must be a function')
                              -          }
                              -          size = sizeCalculation(v, k)
                              -          if (!isPosInt(size)) {
                              -            throw new TypeError(
                              -              'sizeCalculation return invalid (expect positive integer)'
                              -            )
                              -          }
                              -        } else {
                              -          throw new TypeError(
                              -            'invalid size value (must be positive integer). ' +
                              -              'When maxSize or maxEntrySize is used, sizeCalculation or size ' +
                              -              'must be set.'
                              -          )
                              -        }
                              -      }
                              -      return size
                              -    }
                              -    this.addItemSize = (index, size, status) => {
                              -      this.sizes[index] = size
                              -      if (this.maxSize) {
                              -        const maxSize = this.maxSize - this.sizes[index]
                              -        while (this.calculatedSize > maxSize) {
                              -          this.evict(true)
                              -        }
                              -      }
                              -      this.calculatedSize += this.sizes[index]
                              -      if (status) {
                              -        status.entrySize = size
                              -        status.totalCalculatedSize = this.calculatedSize
                              -      }
                              -    }
                              -  }
                              -  removeItemSize(_index) {}
                              -  addItemSize(_index, _size) {}
                              -  requireSize(_k, _v, size, sizeCalculation) {
                              -    if (size || sizeCalculation) {
                              -      throw new TypeError(
                              -        'cannot set size without setting maxSize or maxEntrySize on cache'
                              -      )
                              -    }
                              -  }
                              -
                              -  *indexes({ allowStale = this.allowStale } = {}) {
                              -    if (this.size) {
                              -      for (let i = this.tail; true; ) {
                              -        if (!this.isValidIndex(i)) {
                              -          break
                              -        }
                              -        if (allowStale || !this.isStale(i)) {
                              -          yield i
                              -        }
                              -        if (i === this.head) {
                              -          break
                              -        } else {
                              -          i = this.prev[i]
                              -        }
                              -      }
                              -    }
                              -  }
                              -
                              -  *rindexes({ allowStale = this.allowStale } = {}) {
                              -    if (this.size) {
                              -      for (let i = this.head; true; ) {
                              -        if (!this.isValidIndex(i)) {
                              -          break
                              -        }
                              -        if (allowStale || !this.isStale(i)) {
                              -          yield i
                              -        }
                              -        if (i === this.tail) {
                              -          break
                              -        } else {
                              -          i = this.next[i]
                              -        }
                              -      }
                              -    }
                              -  }
                              -
                              -  isValidIndex(index) {
                              -    return (
                              -      index !== undefined &&
                              -      this.keyMap.get(this.keyList[index]) === index
                              -    )
                              -  }
                              -
                              -  *entries() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield [this.keyList[i], this.valList[i]]
                              -      }
                              -    }
                              -  }
                              -  *rentries() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield [this.keyList[i], this.valList[i]]
                              -      }
                              -    }
                              -  }
                              -
                              -  *keys() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.keyList[i]
                              -      }
                              -    }
                              -  }
                              -  *rkeys() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.keyList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.keyList[i]
                              -      }
                              -    }
                              -  }
                              -
                              -  *values() {
                              -    for (const i of this.indexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.valList[i]
                              -      }
                              -    }
                              -  }
                              -  *rvalues() {
                              -    for (const i of this.rindexes()) {
                              -      if (
                              -        this.valList[i] !== undefined &&
                              -        !this.isBackgroundFetch(this.valList[i])
                              -      ) {
                              -        yield this.valList[i]
                              -      }
                              -    }
                              -  }
                              -
                              -  [Symbol.iterator]() {
                              -    return this.entries()
                              -  }
                              -
                              -  find(fn, getOptions) {
                              -    for (const i of this.indexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      if (fn(value, this.keyList[i], this)) {
                              -        return this.get(this.keyList[i], getOptions)
                              -      }
                              -    }
                              -  }
                              -
                              -  forEach(fn, thisp = this) {
                              -    for (const i of this.indexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      fn.call(thisp, value, this.keyList[i], this)
                              -    }
                              -  }
                              -
                              -  rforEach(fn, thisp = this) {
                              -    for (const i of this.rindexes()) {
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      fn.call(thisp, value, this.keyList[i], this)
                              -    }
                              -  }
                              -
                              -  get prune() {
                              -    deprecatedMethod('prune', 'purgeStale')
                              -    return this.purgeStale
                              -  }
                              -
                              -  purgeStale() {
                              -    let deleted = false
                              -    for (const i of this.rindexes({ allowStale: true })) {
                              -      if (this.isStale(i)) {
                              -        this.delete(this.keyList[i])
                              -        deleted = true
                              -      }
                              -    }
                              -    return deleted
                              -  }
                              -
                              -  dump() {
                              -    const arr = []
                              -    for (const i of this.indexes({ allowStale: true })) {
                              -      const key = this.keyList[i]
                              -      const v = this.valList[i]
                              -      const value = this.isBackgroundFetch(v)
                              -        ? v.__staleWhileFetching
                              -        : v
                              -      if (value === undefined) continue
                              -      const entry = { value }
                              -      if (this.ttls) {
                              -        entry.ttl = this.ttls[i]
                              -        // always dump the start relative to a portable timestamp
                              -        // it's ok for this to be a bit slow, it's a rare operation.
                              -        const age = perf.now() - this.starts[i]
                              -        entry.start = Math.floor(Date.now() - age)
                              -      }
                              -      if (this.sizes) {
                              -        entry.size = this.sizes[i]
                              -      }
                              -      arr.unshift([key, entry])
                              -    }
                              -    return arr
                              -  }
                              -
                              -  load(arr) {
                              -    this.clear()
                              -    for (const [key, entry] of arr) {
                              -      if (entry.start) {
                              -        // entry.start is a portable timestamp, but we may be using
                              -        // node's performance.now(), so calculate the offset.
                              -        // it's ok for this to be a bit slow, it's a rare operation.
                              -        const age = Date.now() - entry.start
                              -        entry.start = perf.now() - age
                              -      }
                              -      this.set(key, entry.value, entry)
                              -    }
                              -  }
                              -
                              -  dispose(_v, _k, _reason) {}
                              -
                              -  set(
                              -    k,
                              -    v,
                              -    {
                              -      ttl = this.ttl,
                              -      start,
                              -      noDisposeOnSet = this.noDisposeOnSet,
                              -      size = 0,
                              -      sizeCalculation = this.sizeCalculation,
                              -      noUpdateTTL = this.noUpdateTTL,
                              -      status,
                              -    } = {}
                              -  ) {
                              -    size = this.requireSize(k, v, size, sizeCalculation)
                              -    // if the item doesn't fit, don't do anything
                              -    // NB: maxEntrySize set to maxSize by default
                              -    if (this.maxEntrySize && size > this.maxEntrySize) {
                              -      if (status) {
                              -        status.set = 'miss'
                              -        status.maxEntrySizeExceeded = true
                              -      }
                              -      // have to delete, in case a background fetch is there already.
                              -      // in non-async cases, this is a no-op
                              -      this.delete(k)
                              -      return this
                              -    }
                              -    let index = this.size === 0 ? undefined : this.keyMap.get(k)
                              -    if (index === undefined) {
                              -      // addition
                              -      index = this.newIndex()
                              -      this.keyList[index] = k
                              -      this.valList[index] = v
                              -      this.keyMap.set(k, index)
                              -      this.next[this.tail] = index
                              -      this.prev[index] = this.tail
                              -      this.tail = index
                              -      this.size++
                              -      this.addItemSize(index, size, status)
                              -      if (status) {
                              -        status.set = 'add'
                              -      }
                              -      noUpdateTTL = false
                              -    } else {
                              -      // update
                              -      this.moveToTail(index)
                              -      const oldVal = this.valList[index]
                              -      if (v !== oldVal) {
                              -        if (this.isBackgroundFetch(oldVal)) {
                              -          oldVal.__abortController.abort(new Error('replaced'))
                              -        } else {
                              -          if (!noDisposeOnSet) {
                              -            this.dispose(oldVal, k, 'set')
                              -            if (this.disposeAfter) {
                              -              this.disposed.push([oldVal, k, 'set'])
                              -            }
                              -          }
                              -        }
                              -        this.removeItemSize(index)
                              -        this.valList[index] = v
                              -        this.addItemSize(index, size, status)
                              -        if (status) {
                              -          status.set = 'replace'
                              -          const oldValue =
                              -            oldVal && this.isBackgroundFetch(oldVal)
                              -              ? oldVal.__staleWhileFetching
                              -              : oldVal
                              -          if (oldValue !== undefined) status.oldValue = oldValue
                              -        }
                              -      } else if (status) {
                              -        status.set = 'update'
                              -      }
                              -    }
                              -    if (ttl !== 0 && this.ttl === 0 && !this.ttls) {
                              -      this.initializeTTLTracking()
                              -    }
                              -    if (!noUpdateTTL) {
                              -      this.setItemTTL(index, ttl, start)
                              -    }
                              -    this.statusTTL(status, index)
                              -    if (this.disposeAfter) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -    return this
                              -  }
                              -
                              -  newIndex() {
                              -    if (this.size === 0) {
                              -      return this.tail
                              -    }
                              -    if (this.size === this.max && this.max !== 0) {
                              -      return this.evict(false)
                              -    }
                              -    if (this.free.length !== 0) {
                              -      return this.free.pop()
                              -    }
                              -    // initial fill, just keep writing down the list
                              -    return this.initialFill++
                              -  }
                              -
                              -  pop() {
                              -    if (this.size) {
                              -      const val = this.valList[this.head]
                              -      this.evict(true)
                              -      return val
                              -    }
                              -  }
                              -
                              -  evict(free) {
                              -    const head = this.head
                              -    const k = this.keyList[head]
                              -    const v = this.valList[head]
                              -    if (this.isBackgroundFetch(v)) {
                              -      v.__abortController.abort(new Error('evicted'))
                              -    } else {
                              -      this.dispose(v, k, 'evict')
                              -      if (this.disposeAfter) {
                              -        this.disposed.push([v, k, 'evict'])
                              -      }
                              -    }
                              -    this.removeItemSize(head)
                              -    // if we aren't about to use the index, then null these out
                              -    if (free) {
                              -      this.keyList[head] = null
                              -      this.valList[head] = null
                              -      this.free.push(head)
                              -    }
                              -    this.head = this.next[head]
                              -    this.keyMap.delete(k)
                              -    this.size--
                              -    return head
                              -  }
                              -
                              -  has(k, { updateAgeOnHas = this.updateAgeOnHas, status } = {}) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined) {
                              -      if (!this.isStale(index)) {
                              -        if (updateAgeOnHas) {
                              -          this.updateItemAge(index)
                              -        }
                              -        if (status) status.has = 'hit'
                              -        this.statusTTL(status, index)
                              -        return true
                              -      } else if (status) {
                              -        status.has = 'stale'
                              -        this.statusTTL(status, index)
                              -      }
                              -    } else if (status) {
                              -      status.has = 'miss'
                              -    }
                              -    return false
                              -  }
                              -
                              -  // like get(), but without any LRU updating or TTL expiration
                              -  peek(k, { allowStale = this.allowStale } = {}) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined && (allowStale || !this.isStale(index))) {
                              -      const v = this.valList[index]
                              -      // either stale and allowed, or forcing a refresh of non-stale value
                              -      return this.isBackgroundFetch(v) ? v.__staleWhileFetching : v
                              -    }
                              -  }
                              -
                              -  backgroundFetch(k, index, options, context) {
                              -    const v = index === undefined ? undefined : this.valList[index]
                              -    if (this.isBackgroundFetch(v)) {
                              -      return v
                              -    }
                              -    const ac = new AC()
                              -    if (options.signal) {
                              -      options.signal.addEventListener('abort', () =>
                              -        ac.abort(options.signal.reason)
                              -      )
                              -    }
                              -    const fetchOpts = {
                              -      signal: ac.signal,
                              -      options,
                              -      context,
                              -    }
                              -    const cb = (v, updateCache = false) => {
                              -      const { aborted } = ac.signal
                              -      const ignoreAbort = options.ignoreFetchAbort && v !== undefined
                              -      if (options.status) {
                              -        if (aborted && !updateCache) {
                              -          options.status.fetchAborted = true
                              -          options.status.fetchError = ac.signal.reason
                              -          if (ignoreAbort) options.status.fetchAbortIgnored = true
                              -        } else {
                              -          options.status.fetchResolved = true
                              -        }
                              -      }
                              -      if (aborted && !ignoreAbort && !updateCache) {
                              -        return fetchFail(ac.signal.reason)
                              -      }
                              -      // either we didn't abort, and are still here, or we did, and ignored
                              -      if (this.valList[index] === p) {
                              -        if (v === undefined) {
                              -          if (p.__staleWhileFetching) {
                              -            this.valList[index] = p.__staleWhileFetching
                              -          } else {
                              -            this.delete(k)
                              -          }
                              -        } else {
                              -          if (options.status) options.status.fetchUpdated = true
                              -          this.set(k, v, fetchOpts.options)
                              -        }
                              -      }
                              -      return v
                              -    }
                              -    const eb = er => {
                              -      if (options.status) {
                              -        options.status.fetchRejected = true
                              -        options.status.fetchError = er
                              -      }
                              -      return fetchFail(er)
                              -    }
                              -    const fetchFail = er => {
                              -      const { aborted } = ac.signal
                              -      const allowStaleAborted =
                              -        aborted && options.allowStaleOnFetchAbort
                              -      const allowStale =
                              -        allowStaleAborted || options.allowStaleOnFetchRejection
                              -      const noDelete = allowStale || options.noDeleteOnFetchRejection
                              -      if (this.valList[index] === p) {
                              -        // if we allow stale on fetch rejections, then we need to ensure that
                              -        // the stale value is not removed from the cache when the fetch fails.
                              -        const del = !noDelete || p.__staleWhileFetching === undefined
                              -        if (del) {
                              -          this.delete(k)
                              -        } else if (!allowStaleAborted) {
                              -          // still replace the *promise* with the stale value,
                              -          // since we are done with the promise at this point.
                              -          // leave it untouched if we're still waiting for an
                              -          // aborted background fetch that hasn't yet returned.
                              -          this.valList[index] = p.__staleWhileFetching
                              -        }
                              -      }
                              -      if (allowStale) {
                              -        if (options.status && p.__staleWhileFetching !== undefined) {
                              -          options.status.returnedStale = true
                              -        }
                              -        return p.__staleWhileFetching
                              -      } else if (p.__returned === p) {
                              -        throw er
                              -      }
                              -    }
                              -    const pcall = (res, rej) => {
                              -      this.fetchMethod(k, v, fetchOpts).then(v => res(v), rej)
                              -      // ignored, we go until we finish, regardless.
                              -      // defer check until we are actually aborting,
                              -      // so fetchMethod can override.
                              -      ac.signal.addEventListener('abort', () => {
                              -        if (
                              -          !options.ignoreFetchAbort ||
                              -          options.allowStaleOnFetchAbort
                              -        ) {
                              -          res()
                              -          // when it eventually resolves, update the cache.
                              -          if (options.allowStaleOnFetchAbort) {
                              -            res = v => cb(v, true)
                              -          }
                              -        }
                              -      })
                              -    }
                              -    if (options.status) options.status.fetchDispatched = true
                              -    const p = new Promise(pcall).then(cb, eb)
                              -    p.__abortController = ac
                              -    p.__staleWhileFetching = v
                              -    p.__returned = null
                              -    if (index === undefined) {
                              -      // internal, don't expose status.
                              -      this.set(k, p, { ...fetchOpts.options, status: undefined })
                              -      index = this.keyMap.get(k)
                              -    } else {
                              -      this.valList[index] = p
                              -    }
                              -    return p
                              -  }
                              -
                              -  isBackgroundFetch(p) {
                              -    return (
                              -      p &&
                              -      typeof p === 'object' &&
                              -      typeof p.then === 'function' &&
                              -      Object.prototype.hasOwnProperty.call(
                              -        p,
                              -        '__staleWhileFetching'
                              -      ) &&
                              -      Object.prototype.hasOwnProperty.call(p, '__returned') &&
                              -      (p.__returned === p || p.__returned === null)
                              -    )
                              -  }
                              -
                              -  // this takes the union of get() and set() opts, because it does both
                              -  async fetch(
                              -    k,
                              -    {
                              -      // get options
                              -      allowStale = this.allowStale,
                              -      updateAgeOnGet = this.updateAgeOnGet,
                              -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
                              -      // set options
                              -      ttl = this.ttl,
                              -      noDisposeOnSet = this.noDisposeOnSet,
                              -      size = 0,
                              -      sizeCalculation = this.sizeCalculation,
                              -      noUpdateTTL = this.noUpdateTTL,
                              -      // fetch exclusive options
                              -      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
                              -      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
                              -      ignoreFetchAbort = this.ignoreFetchAbort,
                              -      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
                              -      fetchContext = this.fetchContext,
                              -      forceRefresh = false,
                              -      status,
                              -      signal,
                              -    } = {}
                              -  ) {
                              -    if (!this.fetchMethod) {
                              -      if (status) status.fetch = 'get'
                              -      return this.get(k, {
                              -        allowStale,
                              -        updateAgeOnGet,
                              -        noDeleteOnStaleGet,
                              -        status,
                              -      })
                              -    }
                              -
                              -    const options = {
                              -      allowStale,
                              -      updateAgeOnGet,
                              -      noDeleteOnStaleGet,
                              -      ttl,
                              -      noDisposeOnSet,
                              -      size,
                              -      sizeCalculation,
                              -      noUpdateTTL,
                              -      noDeleteOnFetchRejection,
                              -      allowStaleOnFetchRejection,
                              -      allowStaleOnFetchAbort,
                              -      ignoreFetchAbort,
                              -      status,
                              -      signal,
                              -    }
                              -
                              -    let index = this.keyMap.get(k)
                              -    if (index === undefined) {
                              -      if (status) status.fetch = 'miss'
                              -      const p = this.backgroundFetch(k, index, options, fetchContext)
                              -      return (p.__returned = p)
                              -    } else {
                              -      // in cache, maybe already fetching
                              -      const v = this.valList[index]
                              -      if (this.isBackgroundFetch(v)) {
                              -        const stale =
                              -          allowStale && v.__staleWhileFetching !== undefined
                              -        if (status) {
                              -          status.fetch = 'inflight'
                              -          if (stale) status.returnedStale = true
                              -        }
                              -        return stale ? v.__staleWhileFetching : (v.__returned = v)
                              -      }
                              -
                              -      // if we force a refresh, that means do NOT serve the cached value,
                              -      // unless we are already in the process of refreshing the cache.
                              -      const isStale = this.isStale(index)
                              -      if (!forceRefresh && !isStale) {
                              -        if (status) status.fetch = 'hit'
                              -        this.moveToTail(index)
                              -        if (updateAgeOnGet) {
                              -          this.updateItemAge(index)
                              -        }
                              -        this.statusTTL(status, index)
                              -        return v
                              -      }
                              -
                              -      // ok, it is stale or a forced refresh, and not already fetching.
                              -      // refresh the cache.
                              -      const p = this.backgroundFetch(k, index, options, fetchContext)
                              -      const hasStale = p.__staleWhileFetching !== undefined
                              -      const staleVal = hasStale && allowStale
                              -      if (status) {
                              -        status.fetch = hasStale && isStale ? 'stale' : 'refresh'
                              -        if (staleVal && isStale) status.returnedStale = true
                              -      }
                              -      return staleVal ? p.__staleWhileFetching : (p.__returned = p)
                              -    }
                              -  }
                              -
                              -  get(
                              -    k,
                              -    {
                              -      allowStale = this.allowStale,
                              -      updateAgeOnGet = this.updateAgeOnGet,
                              -      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
                              -      status,
                              -    } = {}
                              -  ) {
                              -    const index = this.keyMap.get(k)
                              -    if (index !== undefined) {
                              -      const value = this.valList[index]
                              -      const fetching = this.isBackgroundFetch(value)
                              -      this.statusTTL(status, index)
                              -      if (this.isStale(index)) {
                              -        if (status) status.get = 'stale'
                              -        // delete only if not an in-flight background fetch
                              -        if (!fetching) {
                              -          if (!noDeleteOnStaleGet) {
                              -            this.delete(k)
                              -          }
                              -          if (status) status.returnedStale = allowStale
                              -          return allowStale ? value : undefined
                              -        } else {
                              -          if (status) {
                              -            status.returnedStale =
                              -              allowStale && value.__staleWhileFetching !== undefined
                              -          }
                              -          return allowStale ? value.__staleWhileFetching : undefined
                              -        }
                              -      } else {
                              -        if (status) status.get = 'hit'
                              -        // if we're currently fetching it, we don't actually have it yet
                              -        // it's not stale, which means this isn't a staleWhileRefetching.
                              -        // If it's not stale, and fetching, AND has a __staleWhileFetching
                              -        // value, then that means the user fetched with {forceRefresh:true},
                              -        // so it's safe to return that value.
                              -        if (fetching) {
                              -          return value.__staleWhileFetching
                              -        }
                              -        this.moveToTail(index)
                              -        if (updateAgeOnGet) {
                              -          this.updateItemAge(index)
                              -        }
                              -        return value
                              -      }
                              -    } else if (status) {
                              -      status.get = 'miss'
                              -    }
                              -  }
                              -
                              -  connect(p, n) {
                              -    this.prev[n] = p
                              -    this.next[p] = n
                              -  }
                              -
                              -  moveToTail(index) {
                              -    // if tail already, nothing to do
                              -    // if head, move head to next[index]
                              -    // else
                              -    //   move next[prev[index]] to next[index] (head has no prev)
                              -    //   move prev[next[index]] to prev[index]
                              -    // prev[index] = tail
                              -    // next[tail] = index
                              -    // tail = index
                              -    if (index !== this.tail) {
                              -      if (index === this.head) {
                              -        this.head = this.next[index]
                              -      } else {
                              -        this.connect(this.prev[index], this.next[index])
                              -      }
                              -      this.connect(this.tail, index)
                              -      this.tail = index
                              -    }
                              -  }
                              -
                              -  get del() {
                              -    deprecatedMethod('del', 'delete')
                              -    return this.delete
                              -  }
                              -
                              -  delete(k) {
                              -    let deleted = false
                              -    if (this.size !== 0) {
                              -      const index = this.keyMap.get(k)
                              -      if (index !== undefined) {
                              -        deleted = true
                              -        if (this.size === 1) {
                              -          this.clear()
                              -        } else {
                              -          this.removeItemSize(index)
                              -          const v = this.valList[index]
                              -          if (this.isBackgroundFetch(v)) {
                              -            v.__abortController.abort(new Error('deleted'))
                              -          } else {
                              -            this.dispose(v, k, 'delete')
                              -            if (this.disposeAfter) {
                              -              this.disposed.push([v, k, 'delete'])
                              -            }
                              -          }
                              -          this.keyMap.delete(k)
                              -          this.keyList[index] = null
                              -          this.valList[index] = null
                              -          if (index === this.tail) {
                              -            this.tail = this.prev[index]
                              -          } else if (index === this.head) {
                              -            this.head = this.next[index]
                              -          } else {
                              -            this.next[this.prev[index]] = this.next[index]
                              -            this.prev[this.next[index]] = this.prev[index]
                              -          }
                              -          this.size--
                              -          this.free.push(index)
                              -        }
                              -      }
                              -    }
                              -    if (this.disposed) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -    return deleted
                              -  }
                              -
                              -  clear() {
                              -    for (const index of this.rindexes({ allowStale: true })) {
                              -      const v = this.valList[index]
                              -      if (this.isBackgroundFetch(v)) {
                              -        v.__abortController.abort(new Error('deleted'))
                              -      } else {
                              -        const k = this.keyList[index]
                              -        this.dispose(v, k, 'delete')
                              -        if (this.disposeAfter) {
                              -          this.disposed.push([v, k, 'delete'])
                              -        }
                              -      }
                              -    }
                              -
                              -    this.keyMap.clear()
                              -    this.valList.fill(null)
                              -    this.keyList.fill(null)
                              -    if (this.ttls) {
                              -      this.ttls.fill(0)
                              -      this.starts.fill(0)
                              -    }
                              -    if (this.sizes) {
                              -      this.sizes.fill(0)
                              -    }
                              -    this.head = 0
                              -    this.tail = 0
                              -    this.initialFill = 1
                              -    this.free.length = 0
                              -    this.calculatedSize = 0
                              -    this.size = 0
                              -    if (this.disposed) {
                              -      while (this.disposed.length) {
                              -        this.disposeAfter(...this.disposed.shift())
                              -      }
                              -    }
                              -  }
                              -
                              -  get reset() {
                              -    deprecatedMethod('reset', 'clear')
                              -    return this.clear
                              -  }
                              -
                              -  get length() {
                              -    deprecatedProperty('length', 'size')
                              -    return this.size
                              -  }
                              -
                              -  static get AbortController() {
                              -    return AC
                              -  }
                              -  static get AbortSignal() {
                              -    return AS
                              -  }
                              -}
                              -
                              -export default LRUCache
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/package.json b/deps/npm/node_modules/node-gyp/node_modules/lru-cache/package.json
                              deleted file mode 100644
                              index 9684991727e7a2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/lru-cache/package.json
                              +++ /dev/null
                              @@ -1,96 +0,0 @@
                              -{
                              -  "name": "lru-cache",
                              -  "description": "A cache object that deletes the least-recently-used items.",
                              -  "version": "7.18.3",
                              -  "author": "Isaac Z. Schlueter ",
                              -  "keywords": [
                              -    "mru",
                              -    "lru",
                              -    "cache"
                              -  ],
                              -  "sideEffects": false,
                              -  "scripts": {
                              -    "build": "npm run prepare",
                              -    "pretest": "npm run prepare",
                              -    "presnap": "npm run prepare",
                              -    "prepare": "node ./scripts/transpile-to-esm.js",
                              -    "size": "size-limit",
                              -    "test": "tap",
                              -    "snap": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "format": "prettier --write .",
                              -    "typedoc": "typedoc ./index.d.ts"
                              -  },
                              -  "type": "commonjs",
                              -  "main": "./index.js",
                              -  "module": "./index.mjs",
                              -  "types": "./index.d.ts",
                              -  "exports": {
                              -    ".": {
                              -      "import": {
                              -        "types": "./index.d.ts",
                              -        "default": "./index.mjs"
                              -      },
                              -      "require": {
                              -        "types": "./index.d.ts",
                              -        "default": "./index.js"
                              -      }
                              -    },
                              -    "./package.json": "./package.json"
                              -  },
                              -  "repository": "git://github.com/isaacs/node-lru-cache.git",
                              -  "devDependencies": {
                              -    "@size-limit/preset-small-lib": "^7.0.8",
                              -    "@types/node": "^17.0.31",
                              -    "@types/tap": "^15.0.6",
                              -    "benchmark": "^2.1.4",
                              -    "c8": "^7.11.2",
                              -    "clock-mock": "^1.0.6",
                              -    "eslint-config-prettier": "^8.5.0",
                              -    "prettier": "^2.6.2",
                              -    "size-limit": "^7.0.8",
                              -    "tap": "^16.3.4",
                              -    "ts-node": "^10.7.0",
                              -    "tslib": "^2.4.0",
                              -    "typedoc": "^0.23.24",
                              -    "typescript": "^4.6.4"
                              -  },
                              -  "license": "ISC",
                              -  "files": [
                              -    "index.js",
                              -    "index.mjs",
                              -    "index.d.ts"
                              -  ],
                              -  "engines": {
                              -    "node": ">=12"
                              -  },
                              -  "prettier": {
                              -    "semi": false,
                              -    "printWidth": 70,
                              -    "tabWidth": 2,
                              -    "useTabs": false,
                              -    "singleQuote": true,
                              -    "jsxSingleQuote": false,
                              -    "bracketSameLine": true,
                              -    "arrowParens": "avoid",
                              -    "endOfLine": "lf"
                              -  },
                              -  "tap": {
                              -    "nyc-arg": [
                              -      "--include=index.js"
                              -    ],
                              -    "node-arg": [
                              -      "--expose-gc",
                              -      "--require",
                              -      "ts-node/register"
                              -    ],
                              -    "ts": false
                              -  },
                              -  "size-limit": [
                              -    {
                              -      "path": "./index.js"
                              -    }
                              -  ]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE
                              deleted file mode 100644
                              index 1808eb2844231c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/LICENSE
                              +++ /dev/null
                              @@ -1,16 +0,0 @@
                              -ISC License
                              -
                              -Copyright 2017-2022 (c) npm, Inc.
                              -
                              -Permission to use, copy, modify, and/or distribute this software for
                              -any purpose with or without fee is hereby granted, provided that the
                              -above copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE COPYRIGHT HOLDER DISCLAIMS
                              -ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
                              -WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
                              -COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
                              -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
                              -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
                              -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
                              -USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/agent.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/agent.js
                              deleted file mode 100644
                              index dd68492ed7ea7b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/agent.js
                              +++ /dev/null
                              @@ -1,214 +0,0 @@
                              -'use strict'
                              -const LRU = require('lru-cache')
                              -const url = require('url')
                              -const isLambda = require('is-lambda')
                              -const dns = require('./dns.js')
                              -
                              -const AGENT_CACHE = new LRU({ max: 50 })
                              -const HttpAgent = require('agentkeepalive')
                              -const HttpsAgent = HttpAgent.HttpsAgent
                              -
                              -module.exports = getAgent
                              -
                              -const getAgentTimeout = timeout =>
                              -  typeof timeout !== 'number' || !timeout ? 0 : timeout + 1
                              -
                              -const getMaxSockets = maxSockets => maxSockets || 15
                              -
                              -function getAgent (uri, opts) {
                              -  const parsedUri = new url.URL(typeof uri === 'string' ? uri : uri.url)
                              -  const isHttps = parsedUri.protocol === 'https:'
                              -  const pxuri = getProxyUri(parsedUri.href, opts)
                              -
                              -  // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout
                              -  // of zero disables the timeout behavior (OS limits still apply). Else, if
                              -  // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that
                              -  // the node-fetch-npm timeout will always fire first, giving us more
                              -  // consistent errors.
                              -  const agentTimeout = getAgentTimeout(opts.timeout)
                              -  const agentMaxSockets = getMaxSockets(opts.maxSockets)
                              -
                              -  const key = [
                              -    `https:${isHttps}`,
                              -    pxuri
                              -      ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}`
                              -      : '>no-proxy<',
                              -    `local-address:${opts.localAddress || '>no-local-address<'}`,
                              -    `strict-ssl:${isHttps ? opts.rejectUnauthorized : '>no-strict-ssl<'}`,
                              -    `ca:${(isHttps && opts.ca) || '>no-ca<'}`,
                              -    `cert:${(isHttps && opts.cert) || '>no-cert<'}`,
                              -    `key:${(isHttps && opts.key) || '>no-key<'}`,
                              -    `timeout:${agentTimeout}`,
                              -    `maxSockets:${agentMaxSockets}`,
                              -  ].join(':')
                              -
                              -  if (opts.agent != null) { // `agent: false` has special behavior!
                              -    return opts.agent
                              -  }
                              -
                              -  // keep alive in AWS lambda makes no sense
                              -  const lambdaAgent = !isLambda ? null
                              -    : isHttps ? require('https').globalAgent
                              -    : require('http').globalAgent
                              -
                              -  if (isLambda && !pxuri) {
                              -    return lambdaAgent
                              -  }
                              -
                              -  if (AGENT_CACHE.peek(key)) {
                              -    return AGENT_CACHE.get(key)
                              -  }
                              -
                              -  if (pxuri) {
                              -    const pxopts = isLambda ? {
                              -      ...opts,
                              -      agent: lambdaAgent,
                              -    } : opts
                              -    const proxy = getProxy(pxuri, pxopts, isHttps)
                              -    AGENT_CACHE.set(key, proxy)
                              -    return proxy
                              -  }
                              -
                              -  const agent = isHttps ? new HttpsAgent({
                              -    maxSockets: agentMaxSockets,
                              -    ca: opts.ca,
                              -    cert: opts.cert,
                              -    key: opts.key,
                              -    localAddress: opts.localAddress,
                              -    rejectUnauthorized: opts.rejectUnauthorized,
                              -    timeout: agentTimeout,
                              -    freeSocketTimeout: 15000,
                              -    lookup: dns.getLookup(opts.dns),
                              -  }) : new HttpAgent({
                              -    maxSockets: agentMaxSockets,
                              -    localAddress: opts.localAddress,
                              -    timeout: agentTimeout,
                              -    freeSocketTimeout: 15000,
                              -    lookup: dns.getLookup(opts.dns),
                              -  })
                              -  AGENT_CACHE.set(key, agent)
                              -  return agent
                              -}
                              -
                              -function checkNoProxy (uri, opts) {
                              -  const host = new url.URL(uri).hostname.split('.').reverse()
                              -  let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
                              -  if (typeof noproxy === 'string') {
                              -    noproxy = noproxy.split(',').map(n => n.trim())
                              -  }
                              -
                              -  return noproxy && noproxy.some(no => {
                              -    const noParts = no.split('.').filter(x => x).reverse()
                              -    if (!noParts.length) {
                              -      return false
                              -    }
                              -    for (let i = 0; i < noParts.length; i++) {
                              -      if (host[i] !== noParts[i]) {
                              -        return false
                              -      }
                              -    }
                              -    return true
                              -  })
                              -}
                              -
                              -module.exports.getProcessEnv = getProcessEnv
                              -
                              -function getProcessEnv (env) {
                              -  if (!env) {
                              -    return
                              -  }
                              -
                              -  let value
                              -
                              -  if (Array.isArray(env)) {
                              -    for (const e of env) {
                              -      value = process.env[e] ||
                              -        process.env[e.toUpperCase()] ||
                              -        process.env[e.toLowerCase()]
                              -      if (typeof value !== 'undefined') {
                              -        break
                              -      }
                              -    }
                              -  }
                              -
                              -  if (typeof env === 'string') {
                              -    value = process.env[env] ||
                              -      process.env[env.toUpperCase()] ||
                              -      process.env[env.toLowerCase()]
                              -  }
                              -
                              -  return value
                              -}
                              -
                              -module.exports.getProxyUri = getProxyUri
                              -function getProxyUri (uri, opts) {
                              -  const protocol = new url.URL(uri).protocol
                              -
                              -  const proxy = opts.proxy ||
                              -    (
                              -      protocol === 'https:' &&
                              -      getProcessEnv('https_proxy')
                              -    ) ||
                              -    (
                              -      protocol === 'http:' &&
                              -      getProcessEnv(['https_proxy', 'http_proxy', 'proxy'])
                              -    )
                              -  if (!proxy) {
                              -    return null
                              -  }
                              -
                              -  const parsedProxy = (typeof proxy === 'string') ? new url.URL(proxy) : proxy
                              -
                              -  return !checkNoProxy(uri, opts) && parsedProxy
                              -}
                              -
                              -const getAuth = u =>
                              -  u.username && u.password ? decodeURIComponent(`${u.username}:${u.password}`)
                              -  : u.username ? decodeURIComponent(u.username)
                              -  : null
                              -
                              -const getPath = u => u.pathname + u.search + u.hash
                              -
                              -const HttpProxyAgent = require('http-proxy-agent')
                              -const HttpsProxyAgent = require('https-proxy-agent')
                              -const { SocksProxyAgent } = require('socks-proxy-agent')
                              -module.exports.getProxy = getProxy
                              -function getProxy (proxyUrl, opts, isHttps) {
                              -  // our current proxy agents do not support an overridden dns lookup method, so will not
                              -  // benefit from the dns cache
                              -  const popts = {
                              -    host: proxyUrl.hostname,
                              -    port: proxyUrl.port,
                              -    protocol: proxyUrl.protocol,
                              -    path: getPath(proxyUrl),
                              -    auth: getAuth(proxyUrl),
                              -    ca: opts.ca,
                              -    cert: opts.cert,
                              -    key: opts.key,
                              -    timeout: getAgentTimeout(opts.timeout),
                              -    localAddress: opts.localAddress,
                              -    maxSockets: getMaxSockets(opts.maxSockets),
                              -    rejectUnauthorized: opts.rejectUnauthorized,
                              -  }
                              -
                              -  if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') {
                              -    if (!isHttps) {
                              -      return new HttpProxyAgent(popts)
                              -    } else {
                              -      return new HttpsProxyAgent(popts)
                              -    }
                              -  } else if (proxyUrl.protocol.startsWith('socks')) {
                              -    // socks-proxy-agent uses hostname not host
                              -    popts.hostname = popts.host
                              -    delete popts.host
                              -    return new SocksProxyAgent(popts)
                              -  } else {
                              -    throw Object.assign(
                              -      new Error(`unsupported proxy protocol: '${proxyUrl.protocol}'`),
                              -      {
                              -        code: 'EUNSUPPORTEDPROXY',
                              -        url: proxyUrl.href,
                              -      }
                              -    )
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/entry.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/entry.js
                              deleted file mode 100644
                              index 45141095074ecb..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/entry.js
                              +++ /dev/null
                              @@ -1,469 +0,0 @@
                              -const { Request, Response } = require('minipass-fetch')
                              -const { Minipass } = require('minipass')
                              -const MinipassFlush = require('minipass-flush')
                              -const cacache = require('cacache')
                              -const url = require('url')
                              -
                              -const CachingMinipassPipeline = require('../pipeline.js')
                              -const CachePolicy = require('./policy.js')
                              -const cacheKey = require('./key.js')
                              -const remote = require('../remote.js')
                              -
                              -const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
                              -
                              -// allow list for request headers that will be written to the cache index
                              -// note: we will also store any request headers
                              -// that are named in a response's vary header
                              -const KEEP_REQUEST_HEADERS = [
                              -  'accept-charset',
                              -  'accept-encoding',
                              -  'accept-language',
                              -  'accept',
                              -  'cache-control',
                              -]
                              -
                              -// allow list for response headers that will be written to the cache index
                              -// note: we must not store the real response's age header, or when we load
                              -// a cache policy based on the metadata it will think the cached response
                              -// is always stale
                              -const KEEP_RESPONSE_HEADERS = [
                              -  'cache-control',
                              -  'content-encoding',
                              -  'content-language',
                              -  'content-type',
                              -  'date',
                              -  'etag',
                              -  'expires',
                              -  'last-modified',
                              -  'link',
                              -  'location',
                              -  'pragma',
                              -  'vary',
                              -]
                              -
                              -// return an object containing all metadata to be written to the index
                              -const getMetadata = (request, response, options) => {
                              -  const metadata = {
                              -    time: Date.now(),
                              -    url: request.url,
                              -    reqHeaders: {},
                              -    resHeaders: {},
                              -
                              -    // options on which we must match the request and vary the response
                              -    options: {
                              -      compress: options.compress != null ? options.compress : request.compress,
                              -    },
                              -  }
                              -
                              -  // only save the status if it's not a 200 or 304
                              -  if (response.status !== 200 && response.status !== 304) {
                              -    metadata.status = response.status
                              -  }
                              -
                              -  for (const name of KEEP_REQUEST_HEADERS) {
                              -    if (request.headers.has(name)) {
                              -      metadata.reqHeaders[name] = request.headers.get(name)
                              -    }
                              -  }
                              -
                              -  // if the request's host header differs from the host in the url
                              -  // we need to keep it, otherwise it's just noise and we ignore it
                              -  const host = request.headers.get('host')
                              -  const parsedUrl = new url.URL(request.url)
                              -  if (host && parsedUrl.host !== host) {
                              -    metadata.reqHeaders.host = host
                              -  }
                              -
                              -  // if the response has a vary header, make sure
                              -  // we store the relevant request headers too
                              -  if (response.headers.has('vary')) {
                              -    const vary = response.headers.get('vary')
                              -    // a vary of "*" means every header causes a different response.
                              -    // in that scenario, we do not include any additional headers
                              -    // as the freshness check will always fail anyway and we don't
                              -    // want to bloat the cache indexes
                              -    if (vary !== '*') {
                              -      // copy any other request headers that will vary the response
                              -      const varyHeaders = vary.trim().toLowerCase().split(/\s*,\s*/)
                              -      for (const name of varyHeaders) {
                              -        if (request.headers.has(name)) {
                              -          metadata.reqHeaders[name] = request.headers.get(name)
                              -        }
                              -      }
                              -    }
                              -  }
                              -
                              -  for (const name of KEEP_RESPONSE_HEADERS) {
                              -    if (response.headers.has(name)) {
                              -      metadata.resHeaders[name] = response.headers.get(name)
                              -    }
                              -  }
                              -
                              -  for (const name of options.cacheAdditionalHeaders) {
                              -    if (response.headers.has(name)) {
                              -      metadata.resHeaders[name] = response.headers.get(name)
                              -    }
                              -  }
                              -
                              -  return metadata
                              -}
                              -
                              -// symbols used to hide objects that may be lazily evaluated in a getter
                              -const _request = Symbol('request')
                              -const _response = Symbol('response')
                              -const _policy = Symbol('policy')
                              -
                              -class CacheEntry {
                              -  constructor ({ entry, request, response, options }) {
                              -    if (entry) {
                              -      this.key = entry.key
                              -      this.entry = entry
                              -      // previous versions of this module didn't write an explicit timestamp in
                              -      // the metadata, so fall back to the entry's timestamp. we can't use the
                              -      // entry timestamp to determine staleness because cacache will update it
                              -      // when it verifies its data
                              -      this.entry.metadata.time = this.entry.metadata.time || this.entry.time
                              -    } else {
                              -      this.key = cacheKey(request)
                              -    }
                              -
                              -    this.options = options
                              -
                              -    // these properties are behind getters that lazily evaluate
                              -    this[_request] = request
                              -    this[_response] = response
                              -    this[_policy] = null
                              -  }
                              -
                              -  // returns a CacheEntry instance that satisfies the given request
                              -  // or undefined if no existing entry satisfies
                              -  static async find (request, options) {
                              -    try {
                              -      // compacts the index and returns an array of unique entries
                              -      var matches = await cacache.index.compact(options.cachePath, cacheKey(request), (A, B) => {
                              -        const entryA = new CacheEntry({ entry: A, options })
                              -        const entryB = new CacheEntry({ entry: B, options })
                              -        return entryA.policy.satisfies(entryB.request)
                              -      }, {
                              -        validateEntry: (entry) => {
                              -          // clean out entries with a buggy content-encoding value
                              -          if (entry.metadata &&
                              -              entry.metadata.resHeaders &&
                              -              entry.metadata.resHeaders['content-encoding'] === null) {
                              -            return false
                              -          }
                              -
                              -          // if an integrity is null, it needs to have a status specified
                              -          if (entry.integrity === null) {
                              -            return !!(entry.metadata && entry.metadata.status)
                              -          }
                              -
                              -          return true
                              -        },
                              -      })
                              -    } catch (err) {
                              -      // if the compact request fails, ignore the error and return
                              -      return
                              -    }
                              -
                              -    // a cache mode of 'reload' means to behave as though we have no cache
                              -    // on the way to the network. return undefined to allow cacheFetch to
                              -    // create a brand new request no matter what.
                              -    if (options.cache === 'reload') {
                              -      return
                              -    }
                              -
                              -    // find the specific entry that satisfies the request
                              -    let match
                              -    for (const entry of matches) {
                              -      const _entry = new CacheEntry({
                              -        entry,
                              -        options,
                              -      })
                              -
                              -      if (_entry.policy.satisfies(request)) {
                              -        match = _entry
                              -        break
                              -      }
                              -    }
                              -
                              -    return match
                              -  }
                              -
                              -  // if the user made a PUT/POST/PATCH then we invalidate our
                              -  // cache for the same url by deleting the index entirely
                              -  static async invalidate (request, options) {
                              -    const key = cacheKey(request)
                              -    try {
                              -      await cacache.rm.entry(options.cachePath, key, { removeFully: true })
                              -    } catch (err) {
                              -      // ignore errors
                              -    }
                              -  }
                              -
                              -  get request () {
                              -    if (!this[_request]) {
                              -      this[_request] = new Request(this.entry.metadata.url, {
                              -        method: 'GET',
                              -        headers: this.entry.metadata.reqHeaders,
                              -        ...this.entry.metadata.options,
                              -      })
                              -    }
                              -
                              -    return this[_request]
                              -  }
                              -
                              -  get response () {
                              -    if (!this[_response]) {
                              -      this[_response] = new Response(null, {
                              -        url: this.entry.metadata.url,
                              -        counter: this.options.counter,
                              -        status: this.entry.metadata.status || 200,
                              -        headers: {
                              -          ...this.entry.metadata.resHeaders,
                              -          'content-length': this.entry.size,
                              -        },
                              -      })
                              -    }
                              -
                              -    return this[_response]
                              -  }
                              -
                              -  get policy () {
                              -    if (!this[_policy]) {
                              -      this[_policy] = new CachePolicy({
                              -        entry: this.entry,
                              -        request: this.request,
                              -        response: this.response,
                              -        options: this.options,
                              -      })
                              -    }
                              -
                              -    return this[_policy]
                              -  }
                              -
                              -  // wraps the response in a pipeline that stores the data
                              -  // in the cache while the user consumes it
                              -  async store (status) {
                              -    // if we got a status other than 200, 301, or 308,
                              -    // or the CachePolicy forbid storage, append the
                              -    // cache status header and return it untouched
                              -    if (
                              -      this.request.method !== 'GET' ||
                              -      ![200, 301, 308].includes(this.response.status) ||
                              -      !this.policy.storable()
                              -    ) {
                              -      this.response.headers.set('x-local-cache-status', 'skip')
                              -      return this.response
                              -    }
                              -
                              -    const size = this.response.headers.get('content-length')
                              -    const cacheOpts = {
                              -      algorithms: this.options.algorithms,
                              -      metadata: getMetadata(this.request, this.response, this.options),
                              -      size,
                              -      integrity: this.options.integrity,
                              -      integrityEmitter: this.response.body.hasIntegrityEmitter && this.response.body,
                              -    }
                              -
                              -    let body = null
                              -    // we only set a body if the status is a 200, redirects are
                              -    // stored as metadata only
                              -    if (this.response.status === 200) {
                              -      let cacheWriteResolve, cacheWriteReject
                              -      const cacheWritePromise = new Promise((resolve, reject) => {
                              -        cacheWriteResolve = resolve
                              -        cacheWriteReject = reject
                              -      })
                              -
                              -      body = new CachingMinipassPipeline({ events: ['integrity', 'size'] }, new MinipassFlush({
                              -        flush () {
                              -          return cacheWritePromise
                              -        },
                              -      }))
                              -      // this is always true since if we aren't reusing the one from the remote fetch, we
                              -      // are using the one from cacache
                              -      body.hasIntegrityEmitter = true
                              -
                              -      const onResume = () => {
                              -        const tee = new Minipass()
                              -        const cacheStream = cacache.put.stream(this.options.cachePath, this.key, cacheOpts)
                              -        // re-emit the integrity and size events on our new response body so they can be reused
                              -        cacheStream.on('integrity', i => body.emit('integrity', i))
                              -        cacheStream.on('size', s => body.emit('size', s))
                              -        // stick a flag on here so downstream users will know if they can expect integrity events
                              -        tee.pipe(cacheStream)
                              -        // TODO if the cache write fails, log a warning but return the response anyway
                              -        // eslint-disable-next-line promise/catch-or-return
                              -        cacheStream.promise().then(cacheWriteResolve, cacheWriteReject)
                              -        body.unshift(tee)
                              -        body.unshift(this.response.body)
                              -      }
                              -
                              -      body.once('resume', onResume)
                              -      body.once('end', () => body.removeListener('resume', onResume))
                              -    } else {
                              -      await cacache.index.insert(this.options.cachePath, this.key, null, cacheOpts)
                              -    }
                              -
                              -    // note: we do not set the x-local-cache-hash header because we do not know
                              -    // the hash value until after the write to the cache completes, which doesn't
                              -    // happen until after the response has been sent and it's too late to write
                              -    // the header anyway
                              -    this.response.headers.set('x-local-cache', encodeURIComponent(this.options.cachePath))
                              -    this.response.headers.set('x-local-cache-key', encodeURIComponent(this.key))
                              -    this.response.headers.set('x-local-cache-mode', 'stream')
                              -    this.response.headers.set('x-local-cache-status', status)
                              -    this.response.headers.set('x-local-cache-time', new Date().toISOString())
                              -    const newResponse = new Response(body, {
                              -      url: this.response.url,
                              -      status: this.response.status,
                              -      headers: this.response.headers,
                              -      counter: this.options.counter,
                              -    })
                              -    return newResponse
                              -  }
                              -
                              -  // use the cached data to create a response and return it
                              -  async respond (method, options, status) {
                              -    let response
                              -    if (method === 'HEAD' || [301, 308].includes(this.response.status)) {
                              -      // if the request is a HEAD, or the response is a redirect,
                              -      // then the metadata in the entry already includes everything
                              -      // we need to build a response
                              -      response = this.response
                              -    } else {
                              -      // we're responding with a full cached response, so create a body
                              -      // that reads from cacache and attach it to a new Response
                              -      const body = new Minipass()
                              -      const headers = { ...this.policy.responseHeaders() }
                              -
                              -      const onResume = () => {
                              -        const cacheStream = cacache.get.stream.byDigest(
                              -          this.options.cachePath, this.entry.integrity, { memoize: this.options.memoize }
                              -        )
                              -        cacheStream.on('error', async (err) => {
                              -          cacheStream.pause()
                              -          if (err.code === 'EINTEGRITY') {
                              -            await cacache.rm.content(
                              -              this.options.cachePath, this.entry.integrity, { memoize: this.options.memoize }
                              -            )
                              -          }
                              -          if (err.code === 'ENOENT' || err.code === 'EINTEGRITY') {
                              -            await CacheEntry.invalidate(this.request, this.options)
                              -          }
                              -          body.emit('error', err)
                              -          cacheStream.resume()
                              -        })
                              -        // emit the integrity and size events based on our metadata so we're consistent
                              -        body.emit('integrity', this.entry.integrity)
                              -        body.emit('size', Number(headers['content-length']))
                              -        cacheStream.pipe(body)
                              -      }
                              -
                              -      body.once('resume', onResume)
                              -      body.once('end', () => body.removeListener('resume', onResume))
                              -      response = new Response(body, {
                              -        url: this.entry.metadata.url,
                              -        counter: options.counter,
                              -        status: 200,
                              -        headers,
                              -      })
                              -    }
                              -
                              -    response.headers.set('x-local-cache', encodeURIComponent(this.options.cachePath))
                              -    response.headers.set('x-local-cache-hash', encodeURIComponent(this.entry.integrity))
                              -    response.headers.set('x-local-cache-key', encodeURIComponent(this.key))
                              -    response.headers.set('x-local-cache-mode', 'stream')
                              -    response.headers.set('x-local-cache-status', status)
                              -    response.headers.set('x-local-cache-time', new Date(this.entry.metadata.time).toUTCString())
                              -    return response
                              -  }
                              -
                              -  // use the provided request along with this cache entry to
                              -  // revalidate the stored response. returns a response, either
                              -  // from the cache or from the update
                              -  async revalidate (request, options) {
                              -    const revalidateRequest = new Request(request, {
                              -      headers: this.policy.revalidationHeaders(request),
                              -    })
                              -
                              -    try {
                              -      // NOTE: be sure to remove the headers property from the
                              -      // user supplied options, since we have already defined
                              -      // them on the new request object. if they're still in the
                              -      // options then those will overwrite the ones from the policy
                              -      var response = await remote(revalidateRequest, {
                              -        ...options,
                              -        headers: undefined,
                              -      })
                              -    } catch (err) {
                              -      // if the network fetch fails, return the stale
                              -      // cached response unless it has a cache-control
                              -      // of 'must-revalidate'
                              -      if (!this.policy.mustRevalidate) {
                              -        return this.respond(request.method, options, 'stale')
                              -      }
                              -
                              -      throw err
                              -    }
                              -
                              -    if (this.policy.revalidated(revalidateRequest, response)) {
                              -      // we got a 304, write a new index to the cache and respond from cache
                              -      const metadata = getMetadata(request, response, options)
                              -      // 304 responses do not include headers that are specific to the response data
                              -      // since they do not include a body, so we copy values for headers that were
                              -      // in the old cache entry to the new one, if the new metadata does not already
                              -      // include that header
                              -      for (const name of KEEP_RESPONSE_HEADERS) {
                              -        if (
                              -          !hasOwnProperty(metadata.resHeaders, name) &&
                              -          hasOwnProperty(this.entry.metadata.resHeaders, name)
                              -        ) {
                              -          metadata.resHeaders[name] = this.entry.metadata.resHeaders[name]
                              -        }
                              -      }
                              -
                              -      for (const name of options.cacheAdditionalHeaders) {
                              -        const inMeta = hasOwnProperty(metadata.resHeaders, name)
                              -        const inEntry = hasOwnProperty(this.entry.metadata.resHeaders, name)
                              -        const inPolicy = hasOwnProperty(this.policy.response.headers, name)
                              -
                              -        // if the header is in the existing entry, but it is not in the metadata
                              -        // then we need to write it to the metadata as this will refresh the on-disk cache
                              -        if (!inMeta && inEntry) {
                              -          metadata.resHeaders[name] = this.entry.metadata.resHeaders[name]
                              -        }
                              -        // if the header is in the metadata, but not in the policy, then we need to set
                              -        // it in the policy so that it's included in the immediate response. future
                              -        // responses will load a new cache entry, so we don't need to change that
                              -        if (!inPolicy && inMeta) {
                              -          this.policy.response.headers[name] = metadata.resHeaders[name]
                              -        }
                              -      }
                              -
                              -      try {
                              -        await cacache.index.insert(options.cachePath, this.key, this.entry.integrity, {
                              -          size: this.entry.size,
                              -          metadata,
                              -        })
                              -      } catch (err) {
                              -        // if updating the cache index fails, we ignore it and
                              -        // respond anyway
                              -      }
                              -      return this.respond(request.method, options, 'revalidated')
                              -    }
                              -
                              -    // if we got a modified response, create a new entry based on it
                              -    const newEntry = new CacheEntry({
                              -      request,
                              -      response,
                              -      options,
                              -    })
                              -
                              -    // respond with the new entry while writing it to the cache
                              -    return newEntry.store('updated')
                              -  }
                              -}
                              -
                              -module.exports = CacheEntry
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/errors.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/errors.js
                              deleted file mode 100644
                              index 67a66573bebe66..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/errors.js
                              +++ /dev/null
                              @@ -1,11 +0,0 @@
                              -class NotCachedError extends Error {
                              -  constructor (url) {
                              -    /* eslint-disable-next-line max-len */
                              -    super(`request to ${url} failed: cache mode is 'only-if-cached' but no cached response is available.`)
                              -    this.code = 'ENOTCACHED'
                              -  }
                              -}
                              -
                              -module.exports = {
                              -  NotCachedError,
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/index.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/index.js
                              deleted file mode 100644
                              index 0de49d23fb9336..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/index.js
                              +++ /dev/null
                              @@ -1,49 +0,0 @@
                              -const { NotCachedError } = require('./errors.js')
                              -const CacheEntry = require('./entry.js')
                              -const remote = require('../remote.js')
                              -
                              -// do whatever is necessary to get a Response and return it
                              -const cacheFetch = async (request, options) => {
                              -  // try to find a cached entry that satisfies this request
                              -  const entry = await CacheEntry.find(request, options)
                              -  if (!entry) {
                              -    // no cached result, if the cache mode is 'only-if-cached' that's a failure
                              -    if (options.cache === 'only-if-cached') {
                              -      throw new NotCachedError(request.url)
                              -    }
                              -
                              -    // otherwise, we make a request, store it and return it
                              -    const response = await remote(request, options)
                              -    const newEntry = new CacheEntry({ request, response, options })
                              -    return newEntry.store('miss')
                              -  }
                              -
                              -  // we have a cached response that satisfies this request, however if the cache
                              -  // mode is 'no-cache' then we send the revalidation request no matter what
                              -  if (options.cache === 'no-cache') {
                              -    return entry.revalidate(request, options)
                              -  }
                              -
                              -  // if the cached entry is not stale, or if the cache mode is 'force-cache' or
                              -  // 'only-if-cached' we can respond with the cached entry. set the status
                              -  // based on the result of needsRevalidation and respond
                              -  const _needsRevalidation = entry.policy.needsRevalidation(request)
                              -  if (options.cache === 'force-cache' ||
                              -      options.cache === 'only-if-cached' ||
                              -      !_needsRevalidation) {
                              -    return entry.respond(request.method, options, _needsRevalidation ? 'stale' : 'hit')
                              -  }
                              -
                              -  // if we got here, the cache entry is stale so revalidate it
                              -  return entry.revalidate(request, options)
                              -}
                              -
                              -cacheFetch.invalidate = async (request, options) => {
                              -  if (!options.cachePath) {
                              -    return
                              -  }
                              -
                              -  return CacheEntry.invalidate(request, options)
                              -}
                              -
                              -module.exports = cacheFetch
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/key.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/key.js
                              deleted file mode 100644
                              index f7684d562b7fae..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/key.js
                              +++ /dev/null
                              @@ -1,17 +0,0 @@
                              -const { URL, format } = require('url')
                              -
                              -// options passed to url.format() when generating a key
                              -const formatOptions = {
                              -  auth: false,
                              -  fragment: false,
                              -  search: true,
                              -  unicode: false,
                              -}
                              -
                              -// returns a string to be used as the cache key for the Request
                              -const cacheKey = (request) => {
                              -  const parsed = new URL(request.url)
                              -  return `make-fetch-happen:request-cache:${format(parsed, formatOptions)}`
                              -}
                              -
                              -module.exports = cacheKey
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/policy.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/policy.js
                              deleted file mode 100644
                              index ada3c8600dae92..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/cache/policy.js
                              +++ /dev/null
                              @@ -1,161 +0,0 @@
                              -const CacheSemantics = require('http-cache-semantics')
                              -const Negotiator = require('negotiator')
                              -const ssri = require('ssri')
                              -
                              -// options passed to http-cache-semantics constructor
                              -const policyOptions = {
                              -  shared: false,
                              -  ignoreCargoCult: true,
                              -}
                              -
                              -// a fake empty response, used when only testing the
                              -// request for storability
                              -const emptyResponse = { status: 200, headers: {} }
                              -
                              -// returns a plain object representation of the Request
                              -const requestObject = (request) => {
                              -  const _obj = {
                              -    method: request.method,
                              -    url: request.url,
                              -    headers: {},
                              -    compress: request.compress,
                              -  }
                              -
                              -  request.headers.forEach((value, key) => {
                              -    _obj.headers[key] = value
                              -  })
                              -
                              -  return _obj
                              -}
                              -
                              -// returns a plain object representation of the Response
                              -const responseObject = (response) => {
                              -  const _obj = {
                              -    status: response.status,
                              -    headers: {},
                              -  }
                              -
                              -  response.headers.forEach((value, key) => {
                              -    _obj.headers[key] = value
                              -  })
                              -
                              -  return _obj
                              -}
                              -
                              -class CachePolicy {
                              -  constructor ({ entry, request, response, options }) {
                              -    this.entry = entry
                              -    this.request = requestObject(request)
                              -    this.response = responseObject(response)
                              -    this.options = options
                              -    this.policy = new CacheSemantics(this.request, this.response, policyOptions)
                              -
                              -    if (this.entry) {
                              -      // if we have an entry, copy the timestamp to the _responseTime
                              -      // this is necessary because the CacheSemantics constructor forces
                              -      // the value to Date.now() which means a policy created from a
                              -      // cache entry is likely to always identify itself as stale
                              -      this.policy._responseTime = this.entry.metadata.time
                              -    }
                              -  }
                              -
                              -  // static method to quickly determine if a request alone is storable
                              -  static storable (request, options) {
                              -    // no cachePath means no caching
                              -    if (!options.cachePath) {
                              -      return false
                              -    }
                              -
                              -    // user explicitly asked not to cache
                              -    if (options.cache === 'no-store') {
                              -      return false
                              -    }
                              -
                              -    // we only cache GET and HEAD requests
                              -    if (!['GET', 'HEAD'].includes(request.method)) {
                              -      return false
                              -    }
                              -
                              -    // otherwise, let http-cache-semantics make the decision
                              -    // based on the request's headers
                              -    const policy = new CacheSemantics(requestObject(request), emptyResponse, policyOptions)
                              -    return policy.storable()
                              -  }
                              -
                              -  // returns true if the policy satisfies the request
                              -  satisfies (request) {
                              -    const _req = requestObject(request)
                              -    if (this.request.headers.host !== _req.headers.host) {
                              -      return false
                              -    }
                              -
                              -    if (this.request.compress !== _req.compress) {
                              -      return false
                              -    }
                              -
                              -    const negotiatorA = new Negotiator(this.request)
                              -    const negotiatorB = new Negotiator(_req)
                              -
                              -    if (JSON.stringify(negotiatorA.mediaTypes()) !== JSON.stringify(negotiatorB.mediaTypes())) {
                              -      return false
                              -    }
                              -
                              -    if (JSON.stringify(negotiatorA.languages()) !== JSON.stringify(negotiatorB.languages())) {
                              -      return false
                              -    }
                              -
                              -    if (JSON.stringify(negotiatorA.encodings()) !== JSON.stringify(negotiatorB.encodings())) {
                              -      return false
                              -    }
                              -
                              -    if (this.options.integrity) {
                              -      return ssri.parse(this.options.integrity).match(this.entry.integrity)
                              -    }
                              -
                              -    return true
                              -  }
                              -
                              -  // returns true if the request and response allow caching
                              -  storable () {
                              -    return this.policy.storable()
                              -  }
                              -
                              -  // NOTE: this is a hack to avoid parsing the cache-control
                              -  // header ourselves, it returns true if the response's
                              -  // cache-control contains must-revalidate
                              -  get mustRevalidate () {
                              -    return !!this.policy._rescc['must-revalidate']
                              -  }
                              -
                              -  // returns true if the cached response requires revalidation
                              -  // for the given request
                              -  needsRevalidation (request) {
                              -    const _req = requestObject(request)
                              -    // force method to GET because we only cache GETs
                              -    // but can serve a HEAD from a cached GET
                              -    _req.method = 'GET'
                              -    return !this.policy.satisfiesWithoutRevalidation(_req)
                              -  }
                              -
                              -  responseHeaders () {
                              -    return this.policy.responseHeaders()
                              -  }
                              -
                              -  // returns a new object containing the appropriate headers
                              -  // to send a revalidation request
                              -  revalidationHeaders (request) {
                              -    const _req = requestObject(request)
                              -    return this.policy.revalidationHeaders(_req)
                              -  }
                              -
                              -  // returns true if the request/response was revalidated
                              -  // successfully. returns false if a new response was received
                              -  revalidated (request, response) {
                              -    const _req = requestObject(request)
                              -    const _res = responseObject(response)
                              -    const policy = this.policy.revalidatedPolicy(_req, _res)
                              -    return !policy.modified
                              -  }
                              -}
                              -
                              -module.exports = CachePolicy
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/dns.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/dns.js
                              deleted file mode 100644
                              index 13102b57c4aa06..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/dns.js
                              +++ /dev/null
                              @@ -1,49 +0,0 @@
                              -const LRUCache = require('lru-cache')
                              -const dns = require('dns')
                              -
                              -const defaultOptions = exports.defaultOptions = {
                              -  family: undefined,
                              -  hints: dns.ADDRCONFIG,
                              -  all: false,
                              -  verbatim: undefined,
                              -}
                              -
                              -const lookupCache = exports.lookupCache = new LRUCache({ max: 50 })
                              -
                              -// this is a factory so that each request can have its own opts (i.e. ttl)
                              -// while still sharing the cache across all requests
                              -exports.getLookup = (dnsOptions) => {
                              -  return (hostname, options, callback) => {
                              -    if (typeof options === 'function') {
                              -      callback = options
                              -      options = null
                              -    } else if (typeof options === 'number') {
                              -      options = { family: options }
                              -    }
                              -
                              -    options = { ...defaultOptions, ...options }
                              -
                              -    const key = JSON.stringify({
                              -      hostname,
                              -      family: options.family,
                              -      hints: options.hints,
                              -      all: options.all,
                              -      verbatim: options.verbatim,
                              -    })
                              -
                              -    if (lookupCache.has(key)) {
                              -      const [address, family] = lookupCache.get(key)
                              -      process.nextTick(callback, null, address, family)
                              -      return
                              -    }
                              -
                              -    dnsOptions.lookup(hostname, options, (err, address, family) => {
                              -      if (err) {
                              -        return callback(err)
                              -      }
                              -
                              -      lookupCache.set(key, [address, family], { ttl: dnsOptions.ttl })
                              -      return callback(null, address, family)
                              -    })
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/fetch.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/fetch.js
                              deleted file mode 100644
                              index 233ba67e165502..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/fetch.js
                              +++ /dev/null
                              @@ -1,118 +0,0 @@
                              -'use strict'
                              -
                              -const { FetchError, Request, isRedirect } = require('minipass-fetch')
                              -const url = require('url')
                              -
                              -const CachePolicy = require('./cache/policy.js')
                              -const cache = require('./cache/index.js')
                              -const remote = require('./remote.js')
                              -
                              -// given a Request, a Response and user options
                              -// return true if the response is a redirect that
                              -// can be followed. we throw errors that will result
                              -// in the fetch being rejected if the redirect is
                              -// possible but invalid for some reason
                              -const canFollowRedirect = (request, response, options) => {
                              -  if (!isRedirect(response.status)) {
                              -    return false
                              -  }
                              -
                              -  if (options.redirect === 'manual') {
                              -    return false
                              -  }
                              -
                              -  if (options.redirect === 'error') {
                              -    throw new FetchError(`redirect mode is set to error: ${request.url}`,
                              -      'no-redirect', { code: 'ENOREDIRECT' })
                              -  }
                              -
                              -  if (!response.headers.has('location')) {
                              -    throw new FetchError(`redirect location header missing for: ${request.url}`,
                              -      'no-location', { code: 'EINVALIDREDIRECT' })
                              -  }
                              -
                              -  if (request.counter >= request.follow) {
                              -    throw new FetchError(`maximum redirect reached at: ${request.url}`,
                              -      'max-redirect', { code: 'EMAXREDIRECT' })
                              -  }
                              -
                              -  return true
                              -}
                              -
                              -// given a Request, a Response, and the user's options return an object
                              -// with a new Request and a new options object that will be used for
                              -// following the redirect
                              -const getRedirect = (request, response, options) => {
                              -  const _opts = { ...options }
                              -  const location = response.headers.get('location')
                              -  const redirectUrl = new url.URL(location, /^https?:/.test(location) ? undefined : request.url)
                              -  // Comment below is used under the following license:
                              -  /**
                              -   * @license
                              -   * Copyright (c) 2010-2012 Mikeal Rogers
                              -   * Licensed under the Apache License, Version 2.0 (the "License");
                              -   * you may not use this file except in compliance with the License.
                              -   * You may obtain a copy of the License at
                              -   * http://www.apache.org/licenses/LICENSE-2.0
                              -   * Unless required by applicable law or agreed to in writing,
                              -   * software distributed under the License is distributed on an "AS
                              -   * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
                              -   * express or implied. See the License for the specific language
                              -   * governing permissions and limitations under the License.
                              -   */
                              -
                              -  // Remove authorization if changing hostnames (but not if just
                              -  // changing ports or protocols).  This matches the behavior of request:
                              -  // https://github.com/request/request/blob/b12a6245/lib/redirect.js#L134-L138
                              -  if (new url.URL(request.url).hostname !== redirectUrl.hostname) {
                              -    request.headers.delete('authorization')
                              -    request.headers.delete('cookie')
                              -  }
                              -
                              -  // for POST request with 301/302 response, or any request with 303 response,
                              -  // use GET when following redirect
                              -  if (
                              -    response.status === 303 ||
                              -    (request.method === 'POST' && [301, 302].includes(response.status))
                              -  ) {
                              -    _opts.method = 'GET'
                              -    _opts.body = null
                              -    request.headers.delete('content-length')
                              -  }
                              -
                              -  _opts.headers = {}
                              -  request.headers.forEach((value, key) => {
                              -    _opts.headers[key] = value
                              -  })
                              -
                              -  _opts.counter = ++request.counter
                              -  const redirectReq = new Request(url.format(redirectUrl), _opts)
                              -  return {
                              -    request: redirectReq,
                              -    options: _opts,
                              -  }
                              -}
                              -
                              -const fetch = async (request, options) => {
                              -  const response = CachePolicy.storable(request, options)
                              -    ? await cache(request, options)
                              -    : await remote(request, options)
                              -
                              -  // if the request wasn't a GET or HEAD, and the response
                              -  // status is between 200 and 399 inclusive, invalidate the
                              -  // request url
                              -  if (!['GET', 'HEAD'].includes(request.method) &&
                              -      response.status >= 200 &&
                              -      response.status <= 399) {
                              -    await cache.invalidate(request, options)
                              -  }
                              -
                              -  if (!canFollowRedirect(request, response, options)) {
                              -    return response
                              -  }
                              -
                              -  const redirect = getRedirect(request, response, options)
                              -  return fetch(redirect.request, redirect.options)
                              -}
                              -
                              -module.exports = fetch
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/index.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/index.js
                              deleted file mode 100644
                              index 2f12e8e1b61131..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/index.js
                              +++ /dev/null
                              @@ -1,41 +0,0 @@
                              -const { FetchError, Headers, Request, Response } = require('minipass-fetch')
                              -
                              -const configureOptions = require('./options.js')
                              -const fetch = require('./fetch.js')
                              -
                              -const makeFetchHappen = (url, opts) => {
                              -  const options = configureOptions(opts)
                              -
                              -  const request = new Request(url, options)
                              -  return fetch(request, options)
                              -}
                              -
                              -makeFetchHappen.defaults = (defaultUrl, defaultOptions = {}, wrappedFetch = makeFetchHappen) => {
                              -  if (typeof defaultUrl === 'object') {
                              -    defaultOptions = defaultUrl
                              -    defaultUrl = null
                              -  }
                              -
                              -  const defaultedFetch = (url, options = {}) => {
                              -    const finalUrl = url || defaultUrl
                              -    const finalOptions = {
                              -      ...defaultOptions,
                              -      ...options,
                              -      headers: {
                              -        ...defaultOptions.headers,
                              -        ...options.headers,
                              -      },
                              -    }
                              -    return wrappedFetch(finalUrl, finalOptions)
                              -  }
                              -
                              -  defaultedFetch.defaults = (defaultUrl1, defaultOptions1 = {}) =>
                              -    makeFetchHappen.defaults(defaultUrl1, defaultOptions1, defaultedFetch)
                              -  return defaultedFetch
                              -}
                              -
                              -module.exports = makeFetchHappen
                              -module.exports.FetchError = FetchError
                              -module.exports.Headers = Headers
                              -module.exports.Request = Request
                              -module.exports.Response = Response
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/options.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/options.js
                              deleted file mode 100644
                              index f77511279f831d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/options.js
                              +++ /dev/null
                              @@ -1,54 +0,0 @@
                              -const dns = require('dns')
                              -
                              -const conditionalHeaders = [
                              -  'if-modified-since',
                              -  'if-none-match',
                              -  'if-unmodified-since',
                              -  'if-match',
                              -  'if-range',
                              -]
                              -
                              -const configureOptions = (opts) => {
                              -  const { strictSSL, ...options } = { ...opts }
                              -  options.method = options.method ? options.method.toUpperCase() : 'GET'
                              -  options.rejectUnauthorized = strictSSL !== false
                              -
                              -  if (!options.retry) {
                              -    options.retry = { retries: 0 }
                              -  } else if (typeof options.retry === 'string') {
                              -    const retries = parseInt(options.retry, 10)
                              -    if (isFinite(retries)) {
                              -      options.retry = { retries }
                              -    } else {
                              -      options.retry = { retries: 0 }
                              -    }
                              -  } else if (typeof options.retry === 'number') {
                              -    options.retry = { retries: options.retry }
                              -  } else {
                              -    options.retry = { retries: 0, ...options.retry }
                              -  }
                              -
                              -  options.dns = { ttl: 5 * 60 * 1000, lookup: dns.lookup, ...options.dns }
                              -
                              -  options.cache = options.cache || 'default'
                              -  if (options.cache === 'default') {
                              -    const hasConditionalHeader = Object.keys(options.headers || {}).some((name) => {
                              -      return conditionalHeaders.includes(name.toLowerCase())
                              -    })
                              -    if (hasConditionalHeader) {
                              -      options.cache = 'no-store'
                              -    }
                              -  }
                              -
                              -  options.cacheAdditionalHeaders = options.cacheAdditionalHeaders || []
                              -
                              -  // cacheManager is deprecated, but if it's set and
                              -  // cachePath is not we should copy it to the new field
                              -  if (options.cacheManager && !options.cachePath) {
                              -    options.cachePath = options.cacheManager
                              -  }
                              -
                              -  return options
                              -}
                              -
                              -module.exports = configureOptions
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/pipeline.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/pipeline.js
                              deleted file mode 100644
                              index b1d221b2d0ce31..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/pipeline.js
                              +++ /dev/null
                              @@ -1,41 +0,0 @@
                              -'use strict'
                              -
                              -const MinipassPipeline = require('minipass-pipeline')
                              -
                              -class CachingMinipassPipeline extends MinipassPipeline {
                              -  #events = []
                              -  #data = new Map()
                              -
                              -  constructor (opts, ...streams) {
                              -    // CRITICAL: do NOT pass the streams to the call to super(), this will start
                              -    // the flow of data and potentially cause the events we need to catch to emit
                              -    // before we've finished our own setup. instead we call super() with no args,
                              -    // finish our setup, and then push the streams into ourselves to start the
                              -    // data flow
                              -    super()
                              -    this.#events = opts.events
                              -
                              -    /* istanbul ignore next - coverage disabled because this is pointless to test here */
                              -    if (streams.length) {
                              -      this.push(...streams)
                              -    }
                              -  }
                              -
                              -  on (event, handler) {
                              -    if (this.#events.includes(event) && this.#data.has(event)) {
                              -      return handler(...this.#data.get(event))
                              -    }
                              -
                              -    return super.on(event, handler)
                              -  }
                              -
                              -  emit (event, ...data) {
                              -    if (this.#events.includes(event)) {
                              -      this.#data.set(event, data)
                              -    }
                              -
                              -    return super.emit(event, ...data)
                              -  }
                              -}
                              -
                              -module.exports = CachingMinipassPipeline
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/remote.js b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/remote.js
                              deleted file mode 100644
                              index bdbcc79cad908d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/lib/remote.js
                              +++ /dev/null
                              @@ -1,121 +0,0 @@
                              -const { Minipass } = require('minipass')
                              -const fetch = require('minipass-fetch')
                              -const promiseRetry = require('promise-retry')
                              -const ssri = require('ssri')
                              -
                              -const CachingMinipassPipeline = require('./pipeline.js')
                              -const getAgent = require('./agent.js')
                              -const pkg = require('../package.json')
                              -
                              -const USER_AGENT = `${pkg.name}/${pkg.version} (+https://npm.im/${pkg.name})`
                              -
                              -const RETRY_ERRORS = [
                              -  'ECONNRESET', // remote socket closed on us
                              -  'ECONNREFUSED', // remote host refused to open connection
                              -  'EADDRINUSE', // failed to bind to a local port (proxy?)
                              -  'ETIMEDOUT', // someone in the transaction is WAY TOO SLOW
                              -  'ERR_SOCKET_TIMEOUT', // same as above, but this one comes from agentkeepalive
                              -  // Known codes we do NOT retry on:
                              -  // ENOTFOUND (getaddrinfo failure. Either bad hostname, or offline)
                              -]
                              -
                              -const RETRY_TYPES = [
                              -  'request-timeout',
                              -]
                              -
                              -// make a request directly to the remote source,
                              -// retrying certain classes of errors as well as
                              -// following redirects (through the cache if necessary)
                              -// and verifying response integrity
                              -const remoteFetch = (request, options) => {
                              -  const agent = getAgent(request.url, options)
                              -  if (!request.headers.has('connection')) {
                              -    request.headers.set('connection', agent ? 'keep-alive' : 'close')
                              -  }
                              -
                              -  if (!request.headers.has('user-agent')) {
                              -    request.headers.set('user-agent', USER_AGENT)
                              -  }
                              -
                              -  // keep our own options since we're overriding the agent
                              -  // and the redirect mode
                              -  const _opts = {
                              -    ...options,
                              -    agent,
                              -    redirect: 'manual',
                              -  }
                              -
                              -  return promiseRetry(async (retryHandler, attemptNum) => {
                              -    const req = new fetch.Request(request, _opts)
                              -    try {
                              -      let res = await fetch(req, _opts)
                              -      if (_opts.integrity && res.status === 200) {
                              -        // we got a 200 response and the user has specified an expected
                              -        // integrity value, so wrap the response in an ssri stream to verify it
                              -        const integrityStream = ssri.integrityStream({
                              -          algorithms: _opts.algorithms,
                              -          integrity: _opts.integrity,
                              -          size: _opts.size,
                              -        })
                              -        const pipeline = new CachingMinipassPipeline({
                              -          events: ['integrity', 'size'],
                              -        }, res.body, integrityStream)
                              -        // we also propagate the integrity and size events out to the pipeline so we can use
                              -        // this new response body as an integrityEmitter for cacache
                              -        integrityStream.on('integrity', i => pipeline.emit('integrity', i))
                              -        integrityStream.on('size', s => pipeline.emit('size', s))
                              -        res = new fetch.Response(pipeline, res)
                              -        // set an explicit flag so we know if our response body will emit integrity and size
                              -        res.body.hasIntegrityEmitter = true
                              -      }
                              -
                              -      res.headers.set('x-fetch-attempts', attemptNum)
                              -
                              -      // do not retry POST requests, or requests with a streaming body
                              -      // do retry requests with a 408, 420, 429 or 500+ status in the response
                              -      const isStream = Minipass.isStream(req.body)
                              -      const isRetriable = req.method !== 'POST' &&
                              -          !isStream &&
                              -          ([408, 420, 429].includes(res.status) || res.status >= 500)
                              -
                              -      if (isRetriable) {
                              -        if (typeof options.onRetry === 'function') {
                              -          options.onRetry(res)
                              -        }
                              -
                              -        return retryHandler(res)
                              -      }
                              -
                              -      return res
                              -    } catch (err) {
                              -      const code = (err.code === 'EPROMISERETRY')
                              -        ? err.retried.code
                              -        : err.code
                              -
                              -      // err.retried will be the thing that was thrown from above
                              -      // if it's a response, we just got a bad status code and we
                              -      // can re-throw to allow the retry
                              -      const isRetryError = err.retried instanceof fetch.Response ||
                              -        (RETRY_ERRORS.includes(code) && RETRY_TYPES.includes(err.type))
                              -
                              -      if (req.method === 'POST' || isRetryError) {
                              -        throw err
                              -      }
                              -
                              -      if (typeof options.onRetry === 'function') {
                              -        options.onRetry(err)
                              -      }
                              -
                              -      return retryHandler(err)
                              -    }
                              -  }, options.retry).catch((err) => {
                              -    // don't reject for http errors, just return them
                              -    if (err.status >= 400 && err.type !== 'system') {
                              -      return err
                              -    }
                              -
                              -    throw err
                              -  })
                              -}
                              -
                              -module.exports = remoteFetch
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json
                              deleted file mode 100644
                              index fd415dc9966faa..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/make-fetch-happen/package.json
                              +++ /dev/null
                              @@ -1,78 +0,0 @@
                              -{
                              -  "name": "make-fetch-happen",
                              -  "version": "11.1.1",
                              -  "description": "Opinionated, caching, retrying fetch client",
                              -  "main": "lib/index.js",
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "scripts": {
                              -    "test": "tap",
                              -    "posttest": "npm run lint",
                              -    "eslint": "eslint",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "postlint": "template-oss-check",
                              -    "snap": "tap",
                              -    "template-oss-apply": "template-oss-apply --force"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/make-fetch-happen.git"
                              -  },
                              -  "keywords": [
                              -    "http",
                              -    "request",
                              -    "fetch",
                              -    "mean girls",
                              -    "caching",
                              -    "cache",
                              -    "subresource integrity"
                              -  ],
                              -  "author": "GitHub Inc.",
                              -  "license": "ISC",
                              -  "dependencies": {
                              -    "agentkeepalive": "^4.2.1",
                              -    "cacache": "^17.0.0",
                              -    "http-cache-semantics": "^4.1.1",
                              -    "http-proxy-agent": "^5.0.0",
                              -    "https-proxy-agent": "^5.0.0",
                              -    "is-lambda": "^1.0.1",
                              -    "lru-cache": "^7.7.1",
                              -    "minipass": "^5.0.0",
                              -    "minipass-fetch": "^3.0.0",
                              -    "minipass-flush": "^1.0.5",
                              -    "minipass-pipeline": "^1.2.4",
                              -    "negotiator": "^0.6.3",
                              -    "promise-retry": "^2.0.1",
                              -    "socks-proxy-agent": "^7.0.0",
                              -    "ssri": "^10.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^4.0.0",
                              -    "@npmcli/template-oss": "4.14.1",
                              -    "nock": "^13.2.4",
                              -    "safe-buffer": "^5.2.1",
                              -    "standard-version": "^9.3.2",
                              -    "tap": "^16.0.0"
                              -  },
                              -  "engines": {
                              -    "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
                              -  },
                              -  "tap": {
                              -    "color": 1,
                              -    "files": "test/*.js",
                              -    "check-coverage": true,
                              -    "timeout": 60,
                              -    "nyc-arg": [
                              -      "--exclude",
                              -      "tap-snapshots/**"
                              -    ]
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "4.14.1",
                              -    "publish": "true"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js
                              deleted file mode 100644
                              index fda45ade7cfc35..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js
                              +++ /dev/null
                              @@ -1,947 +0,0 @@
                              -module.exports = minimatch
                              -minimatch.Minimatch = Minimatch
                              -
                              -var path = (function () { try { return require('path') } catch (e) {}}()) || {
                              -  sep: '/'
                              -}
                              -minimatch.sep = path.sep
                              -
                              -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
                              -var expand = require('brace-expansion')
                              -
                              -var plTypes = {
                              -  '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
                              -  '?': { open: '(?:', close: ')?' },
                              -  '+': { open: '(?:', close: ')+' },
                              -  '*': { open: '(?:', close: ')*' },
                              -  '@': { open: '(?:', close: ')' }
                              -}
                              -
                              -// any single thing other than /
                              -// don't need to escape / when using new RegExp()
                              -var qmark = '[^/]'
                              -
                              -// * => any number of characters
                              -var star = qmark + '*?'
                              -
                              -// ** when dots are allowed.  Anything goes, except .. and .
                              -// not (^ or / followed by one or two dots followed by $ or /),
                              -// followed by anything, any number of times.
                              -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
                              -
                              -// not a ^ or / followed by a dot,
                              -// followed by anything, any number of times.
                              -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
                              -
                              -// characters that need to be escaped in RegExp.
                              -var reSpecials = charSet('().*{}+?[]^$\\!')
                              -
                              -// "abc" -> { a:true, b:true, c:true }
                              -function charSet (s) {
                              -  return s.split('').reduce(function (set, c) {
                              -    set[c] = true
                              -    return set
                              -  }, {})
                              -}
                              -
                              -// normalizes slashes.
                              -var slashSplit = /\/+/
                              -
                              -minimatch.filter = filter
                              -function filter (pattern, options) {
                              -  options = options || {}
                              -  return function (p, i, list) {
                              -    return minimatch(p, pattern, options)
                              -  }
                              -}
                              -
                              -function ext (a, b) {
                              -  b = b || {}
                              -  var t = {}
                              -  Object.keys(a).forEach(function (k) {
                              -    t[k] = a[k]
                              -  })
                              -  Object.keys(b).forEach(function (k) {
                              -    t[k] = b[k]
                              -  })
                              -  return t
                              -}
                              -
                              -minimatch.defaults = function (def) {
                              -  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
                              -    return minimatch
                              -  }
                              -
                              -  var orig = minimatch
                              -
                              -  var m = function minimatch (p, pattern, options) {
                              -    return orig(p, pattern, ext(def, options))
                              -  }
                              -
                              -  m.Minimatch = function Minimatch (pattern, options) {
                              -    return new orig.Minimatch(pattern, ext(def, options))
                              -  }
                              -  m.Minimatch.defaults = function defaults (options) {
                              -    return orig.defaults(ext(def, options)).Minimatch
                              -  }
                              -
                              -  m.filter = function filter (pattern, options) {
                              -    return orig.filter(pattern, ext(def, options))
                              -  }
                              -
                              -  m.defaults = function defaults (options) {
                              -    return orig.defaults(ext(def, options))
                              -  }
                              -
                              -  m.makeRe = function makeRe (pattern, options) {
                              -    return orig.makeRe(pattern, ext(def, options))
                              -  }
                              -
                              -  m.braceExpand = function braceExpand (pattern, options) {
                              -    return orig.braceExpand(pattern, ext(def, options))
                              -  }
                              -
                              -  m.match = function (list, pattern, options) {
                              -    return orig.match(list, pattern, ext(def, options))
                              -  }
                              -
                              -  return m
                              -}
                              -
                              -Minimatch.defaults = function (def) {
                              -  return minimatch.defaults(def).Minimatch
                              -}
                              -
                              -function minimatch (p, pattern, options) {
                              -  assertValidPattern(pattern)
                              -
                              -  if (!options) options = {}
                              -
                              -  // shortcut: comments match nothing.
                              -  if (!options.nocomment && pattern.charAt(0) === '#') {
                              -    return false
                              -  }
                              -
                              -  return new Minimatch(pattern, options).match(p)
                              -}
                              -
                              -function Minimatch (pattern, options) {
                              -  if (!(this instanceof Minimatch)) {
                              -    return new Minimatch(pattern, options)
                              -  }
                              -
                              -  assertValidPattern(pattern)
                              -
                              -  if (!options) options = {}
                              -
                              -  pattern = pattern.trim()
                              -
                              -  // windows support: need to use /, not \
                              -  if (!options.allowWindowsEscape && path.sep !== '/') {
                              -    pattern = pattern.split(path.sep).join('/')
                              -  }
                              -
                              -  this.options = options
                              -  this.set = []
                              -  this.pattern = pattern
                              -  this.regexp = null
                              -  this.negate = false
                              -  this.comment = false
                              -  this.empty = false
                              -  this.partial = !!options.partial
                              -
                              -  // make the set of regexps etc.
                              -  this.make()
                              -}
                              -
                              -Minimatch.prototype.debug = function () {}
                              -
                              -Minimatch.prototype.make = make
                              -function make () {
                              -  var pattern = this.pattern
                              -  var options = this.options
                              -
                              -  // empty patterns and comments match nothing.
                              -  if (!options.nocomment && pattern.charAt(0) === '#') {
                              -    this.comment = true
                              -    return
                              -  }
                              -  if (!pattern) {
                              -    this.empty = true
                              -    return
                              -  }
                              -
                              -  // step 1: figure out negation, etc.
                              -  this.parseNegate()
                              -
                              -  // step 2: expand braces
                              -  var set = this.globSet = this.braceExpand()
                              -
                              -  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // step 3: now we have a set, so turn each one into a series of path-portion
                              -  // matching patterns.
                              -  // These will be regexps, except in the case of "**", which is
                              -  // set to the GLOBSTAR object for globstar behavior,
                              -  // and will not contain any / characters
                              -  set = this.globParts = set.map(function (s) {
                              -    return s.split(slashSplit)
                              -  })
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // glob --> regexps
                              -  set = set.map(function (s, si, set) {
                              -    return s.map(this.parse, this)
                              -  }, this)
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // filter out everything that didn't compile properly.
                              -  set = set.filter(function (s) {
                              -    return s.indexOf(false) === -1
                              -  })
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  this.set = set
                              -}
                              -
                              -Minimatch.prototype.parseNegate = parseNegate
                              -function parseNegate () {
                              -  var pattern = this.pattern
                              -  var negate = false
                              -  var options = this.options
                              -  var negateOffset = 0
                              -
                              -  if (options.nonegate) return
                              -
                              -  for (var i = 0, l = pattern.length
                              -    ; i < l && pattern.charAt(i) === '!'
                              -    ; i++) {
                              -    negate = !negate
                              -    negateOffset++
                              -  }
                              -
                              -  if (negateOffset) this.pattern = pattern.substr(negateOffset)
                              -  this.negate = negate
                              -}
                              -
                              -// Brace expansion:
                              -// a{b,c}d -> abd acd
                              -// a{b,}c -> abc ac
                              -// a{0..3}d -> a0d a1d a2d a3d
                              -// a{b,c{d,e}f}g -> abg acdfg acefg
                              -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
                              -//
                              -// Invalid sets are not expanded.
                              -// a{2..}b -> a{2..}b
                              -// a{b}c -> a{b}c
                              -minimatch.braceExpand = function (pattern, options) {
                              -  return braceExpand(pattern, options)
                              -}
                              -
                              -Minimatch.prototype.braceExpand = braceExpand
                              -
                              -function braceExpand (pattern, options) {
                              -  if (!options) {
                              -    if (this instanceof Minimatch) {
                              -      options = this.options
                              -    } else {
                              -      options = {}
                              -    }
                              -  }
                              -
                              -  pattern = typeof pattern === 'undefined'
                              -    ? this.pattern : pattern
                              -
                              -  assertValidPattern(pattern)
                              -
                              -  // Thanks to Yeting Li  for
                              -  // improving this regexp to avoid a ReDOS vulnerability.
                              -  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
                              -    // shortcut. no need to expand.
                              -    return [pattern]
                              -  }
                              -
                              -  return expand(pattern)
                              -}
                              -
                              -var MAX_PATTERN_LENGTH = 1024 * 64
                              -var assertValidPattern = function (pattern) {
                              -  if (typeof pattern !== 'string') {
                              -    throw new TypeError('invalid pattern')
                              -  }
                              -
                              -  if (pattern.length > MAX_PATTERN_LENGTH) {
                              -    throw new TypeError('pattern is too long')
                              -  }
                              -}
                              -
                              -// parse a component of the expanded set.
                              -// At this point, no pattern may contain "/" in it
                              -// so we're going to return a 2d array, where each entry is the full
                              -// pattern, split on '/', and then turned into a regular expression.
                              -// A regexp is made at the end which joins each array with an
                              -// escaped /, and another full one which joins each regexp with |.
                              -//
                              -// Following the lead of Bash 4.1, note that "**" only has special meaning
                              -// when it is the *only* thing in a path portion.  Otherwise, any series
                              -// of * is equivalent to a single *.  Globstar behavior is enabled by
                              -// default, and can be disabled by setting options.noglobstar.
                              -Minimatch.prototype.parse = parse
                              -var SUBPARSE = {}
                              -function parse (pattern, isSub) {
                              -  assertValidPattern(pattern)
                              -
                              -  var options = this.options
                              -
                              -  // shortcuts
                              -  if (pattern === '**') {
                              -    if (!options.noglobstar)
                              -      return GLOBSTAR
                              -    else
                              -      pattern = '*'
                              -  }
                              -  if (pattern === '') return ''
                              -
                              -  var re = ''
                              -  var hasMagic = !!options.nocase
                              -  var escaping = false
                              -  // ? => one single character
                              -  var patternListStack = []
                              -  var negativeLists = []
                              -  var stateChar
                              -  var inClass = false
                              -  var reClassStart = -1
                              -  var classStart = -1
                              -  // . and .. never match anything that doesn't start with .,
                              -  // even when options.dot is set.
                              -  var patternStart = pattern.charAt(0) === '.' ? '' // anything
                              -  // not (start or / followed by . or .. followed by / or end)
                              -  : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
                              -  : '(?!\\.)'
                              -  var self = this
                              -
                              -  function clearStateChar () {
                              -    if (stateChar) {
                              -      // we had some state-tracking character
                              -      // that wasn't consumed by this pass.
                              -      switch (stateChar) {
                              -        case '*':
                              -          re += star
                              -          hasMagic = true
                              -        break
                              -        case '?':
                              -          re += qmark
                              -          hasMagic = true
                              -        break
                              -        default:
                              -          re += '\\' + stateChar
                              -        break
                              -      }
                              -      self.debug('clearStateChar %j %j', stateChar, re)
                              -      stateChar = false
                              -    }
                              -  }
                              -
                              -  for (var i = 0, len = pattern.length, c
                              -    ; (i < len) && (c = pattern.charAt(i))
                              -    ; i++) {
                              -    this.debug('%s\t%s %s %j', pattern, i, re, c)
                              -
                              -    // skip over any that are escaped.
                              -    if (escaping && reSpecials[c]) {
                              -      re += '\\' + c
                              -      escaping = false
                              -      continue
                              -    }
                              -
                              -    switch (c) {
                              -      /* istanbul ignore next */
                              -      case '/': {
                              -        // completely not allowed, even escaped.
                              -        // Should already be path-split by now.
                              -        return false
                              -      }
                              -
                              -      case '\\':
                              -        clearStateChar()
                              -        escaping = true
                              -      continue
                              -
                              -      // the various stateChar values
                              -      // for the "extglob" stuff.
                              -      case '?':
                              -      case '*':
                              -      case '+':
                              -      case '@':
                              -      case '!':
                              -        this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
                              -
                              -        // all of those are literals inside a class, except that
                              -        // the glob [!a] means [^a] in regexp
                              -        if (inClass) {
                              -          this.debug('  in class')
                              -          if (c === '!' && i === classStart + 1) c = '^'
                              -          re += c
                              -          continue
                              -        }
                              -
                              -        // if we already have a stateChar, then it means
                              -        // that there was something like ** or +? in there.
                              -        // Handle the stateChar, then proceed with this one.
                              -        self.debug('call clearStateChar %j', stateChar)
                              -        clearStateChar()
                              -        stateChar = c
                              -        // if extglob is disabled, then +(asdf|foo) isn't a thing.
                              -        // just clear the statechar *now*, rather than even diving into
                              -        // the patternList stuff.
                              -        if (options.noext) clearStateChar()
                              -      continue
                              -
                              -      case '(':
                              -        if (inClass) {
                              -          re += '('
                              -          continue
                              -        }
                              -
                              -        if (!stateChar) {
                              -          re += '\\('
                              -          continue
                              -        }
                              -
                              -        patternListStack.push({
                              -          type: stateChar,
                              -          start: i - 1,
                              -          reStart: re.length,
                              -          open: plTypes[stateChar].open,
                              -          close: plTypes[stateChar].close
                              -        })
                              -        // negation is (?:(?!js)[^/]*)
                              -        re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
                              -        this.debug('plType %j %j', stateChar, re)
                              -        stateChar = false
                              -      continue
                              -
                              -      case ')':
                              -        if (inClass || !patternListStack.length) {
                              -          re += '\\)'
                              -          continue
                              -        }
                              -
                              -        clearStateChar()
                              -        hasMagic = true
                              -        var pl = patternListStack.pop()
                              -        // negation is (?:(?!js)[^/]*)
                              -        // The others are (?:)
                              -        re += pl.close
                              -        if (pl.type === '!') {
                              -          negativeLists.push(pl)
                              -        }
                              -        pl.reEnd = re.length
                              -      continue
                              -
                              -      case '|':
                              -        if (inClass || !patternListStack.length || escaping) {
                              -          re += '\\|'
                              -          escaping = false
                              -          continue
                              -        }
                              -
                              -        clearStateChar()
                              -        re += '|'
                              -      continue
                              -
                              -      // these are mostly the same in regexp and glob
                              -      case '[':
                              -        // swallow any state-tracking char before the [
                              -        clearStateChar()
                              -
                              -        if (inClass) {
                              -          re += '\\' + c
                              -          continue
                              -        }
                              -
                              -        inClass = true
                              -        classStart = i
                              -        reClassStart = re.length
                              -        re += c
                              -      continue
                              -
                              -      case ']':
                              -        //  a right bracket shall lose its special
                              -        //  meaning and represent itself in
                              -        //  a bracket expression if it occurs
                              -        //  first in the list.  -- POSIX.2 2.8.3.2
                              -        if (i === classStart + 1 || !inClass) {
                              -          re += '\\' + c
                              -          escaping = false
                              -          continue
                              -        }
                              -
                              -        // handle the case where we left a class open.
                              -        // "[z-a]" is valid, equivalent to "\[z-a\]"
                              -        // split where the last [ was, make sure we don't have
                              -        // an invalid re. if so, re-walk the contents of the
                              -        // would-be class to re-translate any characters that
                              -        // were passed through as-is
                              -        // TODO: It would probably be faster to determine this
                              -        // without a try/catch and a new RegExp, but it's tricky
                              -        // to do safely.  For now, this is safe and works.
                              -        var cs = pattern.substring(classStart + 1, i)
                              -        try {
                              -          RegExp('[' + cs + ']')
                              -        } catch (er) {
                              -          // not a valid class!
                              -          var sp = this.parse(cs, SUBPARSE)
                              -          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
                              -          hasMagic = hasMagic || sp[1]
                              -          inClass = false
                              -          continue
                              -        }
                              -
                              -        // finish up the class.
                              -        hasMagic = true
                              -        inClass = false
                              -        re += c
                              -      continue
                              -
                              -      default:
                              -        // swallow any state char that wasn't consumed
                              -        clearStateChar()
                              -
                              -        if (escaping) {
                              -          // no need
                              -          escaping = false
                              -        } else if (reSpecials[c]
                              -          && !(c === '^' && inClass)) {
                              -          re += '\\'
                              -        }
                              -
                              -        re += c
                              -
                              -    } // switch
                              -  } // for
                              -
                              -  // handle the case where we left a class open.
                              -  // "[abc" is valid, equivalent to "\[abc"
                              -  if (inClass) {
                              -    // split where the last [ was, and escape it
                              -    // this is a huge pita.  We now have to re-walk
                              -    // the contents of the would-be class to re-translate
                              -    // any characters that were passed through as-is
                              -    cs = pattern.substr(classStart + 1)
                              -    sp = this.parse(cs, SUBPARSE)
                              -    re = re.substr(0, reClassStart) + '\\[' + sp[0]
                              -    hasMagic = hasMagic || sp[1]
                              -  }
                              -
                              -  // handle the case where we had a +( thing at the *end*
                              -  // of the pattern.
                              -  // each pattern list stack adds 3 chars, and we need to go through
                              -  // and escape any | chars that were passed through as-is for the regexp.
                              -  // Go through and escape them, taking care not to double-escape any
                              -  // | chars that were already escaped.
                              -  for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
                              -    var tail = re.slice(pl.reStart + pl.open.length)
                              -    this.debug('setting tail', re, pl)
                              -    // maybe some even number of \, then maybe 1 \, followed by a |
                              -    tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
                              -      if (!$2) {
                              -        // the | isn't already escaped, so escape it.
                              -        $2 = '\\'
                              -      }
                              -
                              -      // need to escape all those slashes *again*, without escaping the
                              -      // one that we need for escaping the | character.  As it works out,
                              -      // escaping an even number of slashes can be done by simply repeating
                              -      // it exactly after itself.  That's why this trick works.
                              -      //
                              -      // I am sorry that you have to see this.
                              -      return $1 + $1 + $2 + '|'
                              -    })
                              -
                              -    this.debug('tail=%j\n   %s', tail, tail, pl, re)
                              -    var t = pl.type === '*' ? star
                              -      : pl.type === '?' ? qmark
                              -      : '\\' + pl.type
                              -
                              -    hasMagic = true
                              -    re = re.slice(0, pl.reStart) + t + '\\(' + tail
                              -  }
                              -
                              -  // handle trailing things that only matter at the very end.
                              -  clearStateChar()
                              -  if (escaping) {
                              -    // trailing \\
                              -    re += '\\\\'
                              -  }
                              -
                              -  // only need to apply the nodot start if the re starts with
                              -  // something that could conceivably capture a dot
                              -  var addPatternStart = false
                              -  switch (re.charAt(0)) {
                              -    case '[': case '.': case '(': addPatternStart = true
                              -  }
                              -
                              -  // Hack to work around lack of negative lookbehind in JS
                              -  // A pattern like: *.!(x).!(y|z) needs to ensure that a name
                              -  // like 'a.xyz.yz' doesn't match.  So, the first negative
                              -  // lookahead, has to look ALL the way ahead, to the end of
                              -  // the pattern.
                              -  for (var n = negativeLists.length - 1; n > -1; n--) {
                              -    var nl = negativeLists[n]
                              -
                              -    var nlBefore = re.slice(0, nl.reStart)
                              -    var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
                              -    var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
                              -    var nlAfter = re.slice(nl.reEnd)
                              -
                              -    nlLast += nlAfter
                              -
                              -    // Handle nested stuff like *(*.js|!(*.json)), where open parens
                              -    // mean that we should *not* include the ) in the bit that is considered
                              -    // "after" the negated section.
                              -    var openParensBefore = nlBefore.split('(').length - 1
                              -    var cleanAfter = nlAfter
                              -    for (i = 0; i < openParensBefore; i++) {
                              -      cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
                              -    }
                              -    nlAfter = cleanAfter
                              -
                              -    var dollar = ''
                              -    if (nlAfter === '' && isSub !== SUBPARSE) {
                              -      dollar = '$'
                              -    }
                              -    var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
                              -    re = newRe
                              -  }
                              -
                              -  // if the re is not "" at this point, then we need to make sure
                              -  // it doesn't match against an empty path part.
                              -  // Otherwise a/* will match a/, which it should not.
                              -  if (re !== '' && hasMagic) {
                              -    re = '(?=.)' + re
                              -  }
                              -
                              -  if (addPatternStart) {
                              -    re = patternStart + re
                              -  }
                              -
                              -  // parsing just a piece of a larger pattern.
                              -  if (isSub === SUBPARSE) {
                              -    return [re, hasMagic]
                              -  }
                              -
                              -  // skip the regexp for non-magical patterns
                              -  // unescape anything in it, though, so that it'll be
                              -  // an exact match against a file etc.
                              -  if (!hasMagic) {
                              -    return globUnescape(pattern)
                              -  }
                              -
                              -  var flags = options.nocase ? 'i' : ''
                              -  try {
                              -    var regExp = new RegExp('^' + re + '$', flags)
                              -  } catch (er) /* istanbul ignore next - should be impossible */ {
                              -    // If it was an invalid regular expression, then it can't match
                              -    // anything.  This trick looks for a character after the end of
                              -    // the string, which is of course impossible, except in multi-line
                              -    // mode, but it's not a /m regex.
                              -    return new RegExp('$.')
                              -  }
                              -
                              -  regExp._glob = pattern
                              -  regExp._src = re
                              -
                              -  return regExp
                              -}
                              -
                              -minimatch.makeRe = function (pattern, options) {
                              -  return new Minimatch(pattern, options || {}).makeRe()
                              -}
                              -
                              -Minimatch.prototype.makeRe = makeRe
                              -function makeRe () {
                              -  if (this.regexp || this.regexp === false) return this.regexp
                              -
                              -  // at this point, this.set is a 2d array of partial
                              -  // pattern strings, or "**".
                              -  //
                              -  // It's better to use .match().  This function shouldn't
                              -  // be used, really, but it's pretty convenient sometimes,
                              -  // when you just want to work with a regex.
                              -  var set = this.set
                              -
                              -  if (!set.length) {
                              -    this.regexp = false
                              -    return this.regexp
                              -  }
                              -  var options = this.options
                              -
                              -  var twoStar = options.noglobstar ? star
                              -    : options.dot ? twoStarDot
                              -    : twoStarNoDot
                              -  var flags = options.nocase ? 'i' : ''
                              -
                              -  var re = set.map(function (pattern) {
                              -    return pattern.map(function (p) {
                              -      return (p === GLOBSTAR) ? twoStar
                              -      : (typeof p === 'string') ? regExpEscape(p)
                              -      : p._src
                              -    }).join('\\\/')
                              -  }).join('|')
                              -
                              -  // must match entire pattern
                              -  // ending in a * or ** will make it less strict.
                              -  re = '^(?:' + re + ')$'
                              -
                              -  // can match anything, as long as it's not this.
                              -  if (this.negate) re = '^(?!' + re + ').*$'
                              -
                              -  try {
                              -    this.regexp = new RegExp(re, flags)
                              -  } catch (ex) /* istanbul ignore next - should be impossible */ {
                              -    this.regexp = false
                              -  }
                              -  return this.regexp
                              -}
                              -
                              -minimatch.match = function (list, pattern, options) {
                              -  options = options || {}
                              -  var mm = new Minimatch(pattern, options)
                              -  list = list.filter(function (f) {
                              -    return mm.match(f)
                              -  })
                              -  if (mm.options.nonull && !list.length) {
                              -    list.push(pattern)
                              -  }
                              -  return list
                              -}
                              -
                              -Minimatch.prototype.match = function match (f, partial) {
                              -  if (typeof partial === 'undefined') partial = this.partial
                              -  this.debug('match', f, this.pattern)
                              -  // short-circuit in the case of busted things.
                              -  // comments, etc.
                              -  if (this.comment) return false
                              -  if (this.empty) return f === ''
                              -
                              -  if (f === '/' && partial) return true
                              -
                              -  var options = this.options
                              -
                              -  // windows: need to use /, not \
                              -  if (path.sep !== '/') {
                              -    f = f.split(path.sep).join('/')
                              -  }
                              -
                              -  // treat the test path as a set of pathparts.
                              -  f = f.split(slashSplit)
                              -  this.debug(this.pattern, 'split', f)
                              -
                              -  // just ONE of the pattern sets in this.set needs to match
                              -  // in order for it to be valid.  If negating, then just one
                              -  // match means that we have failed.
                              -  // Either way, return on the first hit.
                              -
                              -  var set = this.set
                              -  this.debug(this.pattern, 'set', set)
                              -
                              -  // Find the basename of the path by looking for the last non-empty segment
                              -  var filename
                              -  var i
                              -  for (i = f.length - 1; i >= 0; i--) {
                              -    filename = f[i]
                              -    if (filename) break
                              -  }
                              -
                              -  for (i = 0; i < set.length; i++) {
                              -    var pattern = set[i]
                              -    var file = f
                              -    if (options.matchBase && pattern.length === 1) {
                              -      file = [filename]
                              -    }
                              -    var hit = this.matchOne(file, pattern, partial)
                              -    if (hit) {
                              -      if (options.flipNegate) return true
                              -      return !this.negate
                              -    }
                              -  }
                              -
                              -  // didn't get any hits.  this is success if it's a negative
                              -  // pattern, failure otherwise.
                              -  if (options.flipNegate) return false
                              -  return this.negate
                              -}
                              -
                              -// set partial to true to test if, for example,
                              -// "/a/b" matches the start of "/*/b/*/d"
                              -// Partial means, if you run out of file before you run
                              -// out of pattern, then that's fine, as long as all
                              -// the parts match.
                              -Minimatch.prototype.matchOne = function (file, pattern, partial) {
                              -  var options = this.options
                              -
                              -  this.debug('matchOne',
                              -    { 'this': this, file: file, pattern: pattern })
                              -
                              -  this.debug('matchOne', file.length, pattern.length)
                              -
                              -  for (var fi = 0,
                              -      pi = 0,
                              -      fl = file.length,
                              -      pl = pattern.length
                              -      ; (fi < fl) && (pi < pl)
                              -      ; fi++, pi++) {
                              -    this.debug('matchOne loop')
                              -    var p = pattern[pi]
                              -    var f = file[fi]
                              -
                              -    this.debug(pattern, p, f)
                              -
                              -    // should be impossible.
                              -    // some invalid regexp stuff in the set.
                              -    /* istanbul ignore if */
                              -    if (p === false) return false
                              -
                              -    if (p === GLOBSTAR) {
                              -      this.debug('GLOBSTAR', [pattern, p, f])
                              -
                              -      // "**"
                              -      // a/**/b/**/c would match the following:
                              -      // a/b/x/y/z/c
                              -      // a/x/y/z/b/c
                              -      // a/b/x/b/x/c
                              -      // a/b/c
                              -      // To do this, take the rest of the pattern after
                              -      // the **, and see if it would match the file remainder.
                              -      // If so, return success.
                              -      // If not, the ** "swallows" a segment, and try again.
                              -      // This is recursively awful.
                              -      //
                              -      // a/**/b/**/c matching a/b/x/y/z/c
                              -      // - a matches a
                              -      // - doublestar
                              -      //   - matchOne(b/x/y/z/c, b/**/c)
                              -      //     - b matches b
                              -      //     - doublestar
                              -      //       - matchOne(x/y/z/c, c) -> no
                              -      //       - matchOne(y/z/c, c) -> no
                              -      //       - matchOne(z/c, c) -> no
                              -      //       - matchOne(c, c) yes, hit
                              -      var fr = fi
                              -      var pr = pi + 1
                              -      if (pr === pl) {
                              -        this.debug('** at the end')
                              -        // a ** at the end will just swallow the rest.
                              -        // We have found a match.
                              -        // however, it will not swallow /.x, unless
                              -        // options.dot is set.
                              -        // . and .. are *never* matched by **, for explosively
                              -        // exponential reasons.
                              -        for (; fi < fl; fi++) {
                              -          if (file[fi] === '.' || file[fi] === '..' ||
                              -            (!options.dot && file[fi].charAt(0) === '.')) return false
                              -        }
                              -        return true
                              -      }
                              -
                              -      // ok, let's see if we can swallow whatever we can.
                              -      while (fr < fl) {
                              -        var swallowee = file[fr]
                              -
                              -        this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
                              -
                              -        // XXX remove this slice.  Just pass the start index.
                              -        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
                              -          this.debug('globstar found match!', fr, fl, swallowee)
                              -          // found a match.
                              -          return true
                              -        } else {
                              -          // can't swallow "." or ".." ever.
                              -          // can only swallow ".foo" when explicitly asked.
                              -          if (swallowee === '.' || swallowee === '..' ||
                              -            (!options.dot && swallowee.charAt(0) === '.')) {
                              -            this.debug('dot detected!', file, fr, pattern, pr)
                              -            break
                              -          }
                              -
                              -          // ** swallows a segment, and continue.
                              -          this.debug('globstar swallow a segment, and continue')
                              -          fr++
                              -        }
                              -      }
                              -
                              -      // no match was found.
                              -      // However, in partial mode, we can't say this is necessarily over.
                              -      // If there's more *pattern* left, then
                              -      /* istanbul ignore if */
                              -      if (partial) {
                              -        // ran out of file
                              -        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
                              -        if (fr === fl) return true
                              -      }
                              -      return false
                              -    }
                              -
                              -    // something other than **
                              -    // non-magic patterns just have to match exactly
                              -    // patterns with magic have been turned into regexps.
                              -    var hit
                              -    if (typeof p === 'string') {
                              -      hit = f === p
                              -      this.debug('string match', p, f, hit)
                              -    } else {
                              -      hit = f.match(p)
                              -      this.debug('pattern match', p, f, hit)
                              -    }
                              -
                              -    if (!hit) return false
                              -  }
                              -
                              -  // Note: ending in / means that we'll get a final ""
                              -  // at the end of the pattern.  This can only match a
                              -  // corresponding "" at the end of the file.
                              -  // If the file ends in /, then it can only match a
                              -  // a pattern that ends in /, unless the pattern just
                              -  // doesn't have any more for it. But, a/b/ should *not*
                              -  // match "a/b/*", even though "" matches against the
                              -  // [^/]*? pattern, except in partial mode, where it might
                              -  // simply not be reached yet.
                              -  // However, a/b/ should still satisfy a/*
                              -
                              -  // now either we fell off the end of the pattern, or we're done.
                              -  if (fi === fl && pi === pl) {
                              -    // ran out of pattern and filename at the same time.
                              -    // an exact hit!
                              -    return true
                              -  } else if (fi === fl) {
                              -    // ran out of file, but still had pattern left.
                              -    // this is ok if we're doing the match as part of
                              -    // a glob fs traversal.
                              -    return partial
                              -  } else /* istanbul ignore else */ if (pi === pl) {
                              -    // ran out of pattern, still have file left.
                              -    // this is only acceptable if we're on the very last
                              -    // empty segment of a file with a trailing slash.
                              -    // a/* should match a/b/
                              -    return (fi === fl - 1) && (file[fi] === '')
                              -  }
                              -
                              -  // should be unreachable.
                              -  /* istanbul ignore next */
                              -  throw new Error('wtf?')
                              -}
                              -
                              -// replace stuff like \* with *
                              -function globUnescape (s) {
                              -  return s.replace(/\\(.)/g, '$1')
                              -}
                              -
                              -function regExpEscape (s) {
                              -  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json
                              deleted file mode 100644
                              index 566efdfe45cb80..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json
                              +++ /dev/null
                              @@ -1,33 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me)",
                              -  "name": "minimatch",
                              -  "description": "a glob matcher in javascript",
                              -  "version": "3.1.2",
                              -  "publishConfig": {
                              -    "tag": "v3-legacy"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/minimatch.git"
                              -  },
                              -  "main": "minimatch.js",
                              -  "scripts": {
                              -    "test": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "postpublish": "git push origin --all; git push origin --tags"
                              -  },
                              -  "engines": {
                              -    "node": "*"
                              -  },
                              -  "dependencies": {
                              -    "brace-expansion": "^1.1.7"
                              -  },
                              -  "devDependencies": {
                              -    "tap": "^15.1.6"
                              -  },
                              -  "license": "ISC",
                              -  "files": [
                              -    "minimatch.js"
                              -  ]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minipass/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/minipass/LICENSE
                              deleted file mode 100644
                              index 97f8e32ed82e4c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minipass/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minipass/index.js b/deps/npm/node_modules/node-gyp/node_modules/minipass/index.js
                              deleted file mode 100644
                              index ed07c17acd97b7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minipass/index.js
                              +++ /dev/null
                              @@ -1,702 +0,0 @@
                              -'use strict'
                              -const proc =
                              -  typeof process === 'object' && process
                              -    ? process
                              -    : {
                              -        stdout: null,
                              -        stderr: null,
                              -      }
                              -const EE = require('events')
                              -const Stream = require('stream')
                              -const stringdecoder = require('string_decoder')
                              -const SD = stringdecoder.StringDecoder
                              -
                              -const EOF = Symbol('EOF')
                              -const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
                              -const EMITTED_END = Symbol('emittedEnd')
                              -const EMITTING_END = Symbol('emittingEnd')
                              -const EMITTED_ERROR = Symbol('emittedError')
                              -const CLOSED = Symbol('closed')
                              -const READ = Symbol('read')
                              -const FLUSH = Symbol('flush')
                              -const FLUSHCHUNK = Symbol('flushChunk')
                              -const ENCODING = Symbol('encoding')
                              -const DECODER = Symbol('decoder')
                              -const FLOWING = Symbol('flowing')
                              -const PAUSED = Symbol('paused')
                              -const RESUME = Symbol('resume')
                              -const BUFFER = Symbol('buffer')
                              -const PIPES = Symbol('pipes')
                              -const BUFFERLENGTH = Symbol('bufferLength')
                              -const BUFFERPUSH = Symbol('bufferPush')
                              -const BUFFERSHIFT = Symbol('bufferShift')
                              -const OBJECTMODE = Symbol('objectMode')
                              -// internal event when stream is destroyed
                              -const DESTROYED = Symbol('destroyed')
                              -// internal event when stream has an error
                              -const ERROR = Symbol('error')
                              -const EMITDATA = Symbol('emitData')
                              -const EMITEND = Symbol('emitEnd')
                              -const EMITEND2 = Symbol('emitEnd2')
                              -const ASYNC = Symbol('async')
                              -const ABORT = Symbol('abort')
                              -const ABORTED = Symbol('aborted')
                              -const SIGNAL = Symbol('signal')
                              -
                              -const defer = fn => Promise.resolve().then(fn)
                              -
                              -// TODO remove when Node v8 support drops
                              -const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1'
                              -const ASYNCITERATOR =
                              -  (doIter && Symbol.asyncIterator) || Symbol('asyncIterator not implemented')
                              -const ITERATOR =
                              -  (doIter && Symbol.iterator) || Symbol('iterator not implemented')
                              -
                              -// events that mean 'the stream is over'
                              -// these are treated specially, and re-emitted
                              -// if they are listened for after emitting.
                              -const isEndish = ev => ev === 'end' || ev === 'finish' || ev === 'prefinish'
                              -
                              -const isArrayBuffer = b =>
                              -  b instanceof ArrayBuffer ||
                              -  (typeof b === 'object' &&
                              -    b.constructor &&
                              -    b.constructor.name === 'ArrayBuffer' &&
                              -    b.byteLength >= 0)
                              -
                              -const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b)
                              -
                              -class Pipe {
                              -  constructor(src, dest, opts) {
                              -    this.src = src
                              -    this.dest = dest
                              -    this.opts = opts
                              -    this.ondrain = () => src[RESUME]()
                              -    dest.on('drain', this.ondrain)
                              -  }
                              -  unpipe() {
                              -    this.dest.removeListener('drain', this.ondrain)
                              -  }
                              -  // istanbul ignore next - only here for the prototype
                              -  proxyErrors() {}
                              -  end() {
                              -    this.unpipe()
                              -    if (this.opts.end) this.dest.end()
                              -  }
                              -}
                              -
                              -class PipeProxyErrors extends Pipe {
                              -  unpipe() {
                              -    this.src.removeListener('error', this.proxyErrors)
                              -    super.unpipe()
                              -  }
                              -  constructor(src, dest, opts) {
                              -    super(src, dest, opts)
                              -    this.proxyErrors = er => dest.emit('error', er)
                              -    src.on('error', this.proxyErrors)
                              -  }
                              -}
                              -
                              -class Minipass extends Stream {
                              -  constructor(options) {
                              -    super()
                              -    this[FLOWING] = false
                              -    // whether we're explicitly paused
                              -    this[PAUSED] = false
                              -    this[PIPES] = []
                              -    this[BUFFER] = []
                              -    this[OBJECTMODE] = (options && options.objectMode) || false
                              -    if (this[OBJECTMODE]) this[ENCODING] = null
                              -    else this[ENCODING] = (options && options.encoding) || null
                              -    if (this[ENCODING] === 'buffer') this[ENCODING] = null
                              -    this[ASYNC] = (options && !!options.async) || false
                              -    this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
                              -    this[EOF] = false
                              -    this[EMITTED_END] = false
                              -    this[EMITTING_END] = false
                              -    this[CLOSED] = false
                              -    this[EMITTED_ERROR] = null
                              -    this.writable = true
                              -    this.readable = true
                              -    this[BUFFERLENGTH] = 0
                              -    this[DESTROYED] = false
                              -    if (options && options.debugExposeBuffer === true) {
                              -      Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] })
                              -    }
                              -    if (options && options.debugExposePipes === true) {
                              -      Object.defineProperty(this, 'pipes', { get: () => this[PIPES] })
                              -    }
                              -    this[SIGNAL] = options && options.signal
                              -    this[ABORTED] = false
                              -    if (this[SIGNAL]) {
                              -      this[SIGNAL].addEventListener('abort', () => this[ABORT]())
                              -      if (this[SIGNAL].aborted) {
                              -        this[ABORT]()
                              -      }
                              -    }
                              -  }
                              -
                              -  get bufferLength() {
                              -    return this[BUFFERLENGTH]
                              -  }
                              -
                              -  get encoding() {
                              -    return this[ENCODING]
                              -  }
                              -  set encoding(enc) {
                              -    if (this[OBJECTMODE]) throw new Error('cannot set encoding in objectMode')
                              -
                              -    if (
                              -      this[ENCODING] &&
                              -      enc !== this[ENCODING] &&
                              -      ((this[DECODER] && this[DECODER].lastNeed) || this[BUFFERLENGTH])
                              -    )
                              -      throw new Error('cannot change encoding')
                              -
                              -    if (this[ENCODING] !== enc) {
                              -      this[DECODER] = enc ? new SD(enc) : null
                              -      if (this[BUFFER].length)
                              -        this[BUFFER] = this[BUFFER].map(chunk => this[DECODER].write(chunk))
                              -    }
                              -
                              -    this[ENCODING] = enc
                              -  }
                              -
                              -  setEncoding(enc) {
                              -    this.encoding = enc
                              -  }
                              -
                              -  get objectMode() {
                              -    return this[OBJECTMODE]
                              -  }
                              -  set objectMode(om) {
                              -    this[OBJECTMODE] = this[OBJECTMODE] || !!om
                              -  }
                              -
                              -  get ['async']() {
                              -    return this[ASYNC]
                              -  }
                              -  set ['async'](a) {
                              -    this[ASYNC] = this[ASYNC] || !!a
                              -  }
                              -
                              -  // drop everything and get out of the flow completely
                              -  [ABORT]() {
                              -    this[ABORTED] = true
                              -    this.emit('abort', this[SIGNAL].reason)
                              -    this.destroy(this[SIGNAL].reason)
                              -  }
                              -
                              -  get aborted() {
                              -    return this[ABORTED]
                              -  }
                              -  set aborted(_) {}
                              -
                              -  write(chunk, encoding, cb) {
                              -    if (this[ABORTED]) return false
                              -    if (this[EOF]) throw new Error('write after end')
                              -
                              -    if (this[DESTROYED]) {
                              -      this.emit(
                              -        'error',
                              -        Object.assign(
                              -          new Error('Cannot call write after a stream was destroyed'),
                              -          { code: 'ERR_STREAM_DESTROYED' }
                              -        )
                              -      )
                              -      return true
                              -    }
                              -
                              -    if (typeof encoding === 'function') (cb = encoding), (encoding = 'utf8')
                              -
                              -    if (!encoding) encoding = 'utf8'
                              -
                              -    const fn = this[ASYNC] ? defer : f => f()
                              -
                              -    // convert array buffers and typed array views into buffers
                              -    // at some point in the future, we may want to do the opposite!
                              -    // leave strings and buffers as-is
                              -    // anything else switches us into object mode
                              -    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
                              -      if (isArrayBufferView(chunk))
                              -        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)
                              -      else if (isArrayBuffer(chunk)) chunk = Buffer.from(chunk)
                              -      else if (typeof chunk !== 'string')
                              -        // use the setter so we throw if we have encoding set
                              -        this.objectMode = true
                              -    }
                              -
                              -    // handle object mode up front, since it's simpler
                              -    // this yields better performance, fewer checks later.
                              -    if (this[OBJECTMODE]) {
                              -      /* istanbul ignore if - maybe impossible? */
                              -      if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true)
                              -
                              -      if (this.flowing) this.emit('data', chunk)
                              -      else this[BUFFERPUSH](chunk)
                              -
                              -      if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -
                              -      if (cb) fn(cb)
                              -
                              -      return this.flowing
                              -    }
                              -
                              -    // at this point the chunk is a buffer or string
                              -    // don't buffer it up or send it to the decoder
                              -    if (!chunk.length) {
                              -      if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -      if (cb) fn(cb)
                              -      return this.flowing
                              -    }
                              -
                              -    // fast-path writing strings of same encoding to a stream with
                              -    // an empty buffer, skipping the buffer/decoder dance
                              -    if (
                              -      typeof chunk === 'string' &&
                              -      // unless it is a string already ready for us to use
                              -      !(encoding === this[ENCODING] && !this[DECODER].lastNeed)
                              -    ) {
                              -      chunk = Buffer.from(chunk, encoding)
                              -    }
                              -
                              -    if (Buffer.isBuffer(chunk) && this[ENCODING])
                              -      chunk = this[DECODER].write(chunk)
                              -
                              -    // Note: flushing CAN potentially switch us into not-flowing mode
                              -    if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true)
                              -
                              -    if (this.flowing) this.emit('data', chunk)
                              -    else this[BUFFERPUSH](chunk)
                              -
                              -    if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -
                              -    if (cb) fn(cb)
                              -
                              -    return this.flowing
                              -  }
                              -
                              -  read(n) {
                              -    if (this[DESTROYED]) return null
                              -
                              -    if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) {
                              -      this[MAYBE_EMIT_END]()
                              -      return null
                              -    }
                              -
                              -    if (this[OBJECTMODE]) n = null
                              -
                              -    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
                              -      if (this.encoding) this[BUFFER] = [this[BUFFER].join('')]
                              -      else this[BUFFER] = [Buffer.concat(this[BUFFER], this[BUFFERLENGTH])]
                              -    }
                              -
                              -    const ret = this[READ](n || null, this[BUFFER][0])
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [READ](n, chunk) {
                              -    if (n === chunk.length || n === null) this[BUFFERSHIFT]()
                              -    else {
                              -      this[BUFFER][0] = chunk.slice(n)
                              -      chunk = chunk.slice(0, n)
                              -      this[BUFFERLENGTH] -= n
                              -    }
                              -
                              -    this.emit('data', chunk)
                              -
                              -    if (!this[BUFFER].length && !this[EOF]) this.emit('drain')
                              -
                              -    return chunk
                              -  }
                              -
                              -  end(chunk, encoding, cb) {
                              -    if (typeof chunk === 'function') (cb = chunk), (chunk = null)
                              -    if (typeof encoding === 'function') (cb = encoding), (encoding = 'utf8')
                              -    if (chunk) this.write(chunk, encoding)
                              -    if (cb) this.once('end', cb)
                              -    this[EOF] = true
                              -    this.writable = false
                              -
                              -    // if we haven't written anything, then go ahead and emit,
                              -    // even if we're not reading.
                              -    // we'll re-emit if a new 'end' listener is added anyway.
                              -    // This makes MP more suitable to write-only use cases.
                              -    if (this.flowing || !this[PAUSED]) this[MAYBE_EMIT_END]()
                              -    return this
                              -  }
                              -
                              -  // don't let the internal resume be overwritten
                              -  [RESUME]() {
                              -    if (this[DESTROYED]) return
                              -
                              -    this[PAUSED] = false
                              -    this[FLOWING] = true
                              -    this.emit('resume')
                              -    if (this[BUFFER].length) this[FLUSH]()
                              -    else if (this[EOF]) this[MAYBE_EMIT_END]()
                              -    else this.emit('drain')
                              -  }
                              -
                              -  resume() {
                              -    return this[RESUME]()
                              -  }
                              -
                              -  pause() {
                              -    this[FLOWING] = false
                              -    this[PAUSED] = true
                              -  }
                              -
                              -  get destroyed() {
                              -    return this[DESTROYED]
                              -  }
                              -
                              -  get flowing() {
                              -    return this[FLOWING]
                              -  }
                              -
                              -  get paused() {
                              -    return this[PAUSED]
                              -  }
                              -
                              -  [BUFFERPUSH](chunk) {
                              -    if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1
                              -    else this[BUFFERLENGTH] += chunk.length
                              -    this[BUFFER].push(chunk)
                              -  }
                              -
                              -  [BUFFERSHIFT]() {
                              -    if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1
                              -    else this[BUFFERLENGTH] -= this[BUFFER][0].length
                              -    return this[BUFFER].shift()
                              -  }
                              -
                              -  [FLUSH](noDrain) {
                              -    do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length)
                              -
                              -    if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit('drain')
                              -  }
                              -
                              -  [FLUSHCHUNK](chunk) {
                              -    this.emit('data', chunk)
                              -    return this.flowing
                              -  }
                              -
                              -  pipe(dest, opts) {
                              -    if (this[DESTROYED]) return
                              -
                              -    const ended = this[EMITTED_END]
                              -    opts = opts || {}
                              -    if (dest === proc.stdout || dest === proc.stderr) opts.end = false
                              -    else opts.end = opts.end !== false
                              -    opts.proxyErrors = !!opts.proxyErrors
                              -
                              -    // piping an ended stream ends immediately
                              -    if (ended) {
                              -      if (opts.end) dest.end()
                              -    } else {
                              -      this[PIPES].push(
                              -        !opts.proxyErrors
                              -          ? new Pipe(this, dest, opts)
                              -          : new PipeProxyErrors(this, dest, opts)
                              -      )
                              -      if (this[ASYNC]) defer(() => this[RESUME]())
                              -      else this[RESUME]()
                              -    }
                              -
                              -    return dest
                              -  }
                              -
                              -  unpipe(dest) {
                              -    const p = this[PIPES].find(p => p.dest === dest)
                              -    if (p) {
                              -      this[PIPES].splice(this[PIPES].indexOf(p), 1)
                              -      p.unpipe()
                              -    }
                              -  }
                              -
                              -  addListener(ev, fn) {
                              -    return this.on(ev, fn)
                              -  }
                              -
                              -  on(ev, fn) {
                              -    const ret = super.on(ev, fn)
                              -    if (ev === 'data' && !this[PIPES].length && !this.flowing) this[RESUME]()
                              -    else if (ev === 'readable' && this[BUFFERLENGTH] !== 0)
                              -      super.emit('readable')
                              -    else if (isEndish(ev) && this[EMITTED_END]) {
                              -      super.emit(ev)
                              -      this.removeAllListeners(ev)
                              -    } else if (ev === 'error' && this[EMITTED_ERROR]) {
                              -      if (this[ASYNC]) defer(() => fn.call(this, this[EMITTED_ERROR]))
                              -      else fn.call(this, this[EMITTED_ERROR])
                              -    }
                              -    return ret
                              -  }
                              -
                              -  get emittedEnd() {
                              -    return this[EMITTED_END]
                              -  }
                              -
                              -  [MAYBE_EMIT_END]() {
                              -    if (
                              -      !this[EMITTING_END] &&
                              -      !this[EMITTED_END] &&
                              -      !this[DESTROYED] &&
                              -      this[BUFFER].length === 0 &&
                              -      this[EOF]
                              -    ) {
                              -      this[EMITTING_END] = true
                              -      this.emit('end')
                              -      this.emit('prefinish')
                              -      this.emit('finish')
                              -      if (this[CLOSED]) this.emit('close')
                              -      this[EMITTING_END] = false
                              -    }
                              -  }
                              -
                              -  emit(ev, data, ...extra) {
                              -    // error and close are only events allowed after calling destroy()
                              -    if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED])
                              -      return
                              -    else if (ev === 'data') {
                              -      return !this[OBJECTMODE] && !data
                              -        ? false
                              -        : this[ASYNC]
                              -        ? defer(() => this[EMITDATA](data))
                              -        : this[EMITDATA](data)
                              -    } else if (ev === 'end') {
                              -      return this[EMITEND]()
                              -    } else if (ev === 'close') {
                              -      this[CLOSED] = true
                              -      // don't emit close before 'end' and 'finish'
                              -      if (!this[EMITTED_END] && !this[DESTROYED]) return
                              -      const ret = super.emit('close')
                              -      this.removeAllListeners('close')
                              -      return ret
                              -    } else if (ev === 'error') {
                              -      this[EMITTED_ERROR] = data
                              -      super.emit(ERROR, data)
                              -      const ret =
                              -        !this[SIGNAL] || this.listeners('error').length
                              -          ? super.emit('error', data)
                              -          : false
                              -      this[MAYBE_EMIT_END]()
                              -      return ret
                              -    } else if (ev === 'resume') {
                              -      const ret = super.emit('resume')
                              -      this[MAYBE_EMIT_END]()
                              -      return ret
                              -    } else if (ev === 'finish' || ev === 'prefinish') {
                              -      const ret = super.emit(ev)
                              -      this.removeAllListeners(ev)
                              -      return ret
                              -    }
                              -
                              -    // Some other unknown event
                              -    const ret = super.emit(ev, data, ...extra)
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [EMITDATA](data) {
                              -    for (const p of this[PIPES]) {
                              -      if (p.dest.write(data) === false) this.pause()
                              -    }
                              -    const ret = super.emit('data', data)
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [EMITEND]() {
                              -    if (this[EMITTED_END]) return
                              -
                              -    this[EMITTED_END] = true
                              -    this.readable = false
                              -    if (this[ASYNC]) defer(() => this[EMITEND2]())
                              -    else this[EMITEND2]()
                              -  }
                              -
                              -  [EMITEND2]() {
                              -    if (this[DECODER]) {
                              -      const data = this[DECODER].end()
                              -      if (data) {
                              -        for (const p of this[PIPES]) {
                              -          p.dest.write(data)
                              -        }
                              -        super.emit('data', data)
                              -      }
                              -    }
                              -
                              -    for (const p of this[PIPES]) {
                              -      p.end()
                              -    }
                              -    const ret = super.emit('end')
                              -    this.removeAllListeners('end')
                              -    return ret
                              -  }
                              -
                              -  // const all = await stream.collect()
                              -  collect() {
                              -    const buf = []
                              -    if (!this[OBJECTMODE]) buf.dataLength = 0
                              -    // set the promise first, in case an error is raised
                              -    // by triggering the flow here.
                              -    const p = this.promise()
                              -    this.on('data', c => {
                              -      buf.push(c)
                              -      if (!this[OBJECTMODE]) buf.dataLength += c.length
                              -    })
                              -    return p.then(() => buf)
                              -  }
                              -
                              -  // const data = await stream.concat()
                              -  concat() {
                              -    return this[OBJECTMODE]
                              -      ? Promise.reject(new Error('cannot concat in objectMode'))
                              -      : this.collect().then(buf =>
                              -          this[OBJECTMODE]
                              -            ? Promise.reject(new Error('cannot concat in objectMode'))
                              -            : this[ENCODING]
                              -            ? buf.join('')
                              -            : Buffer.concat(buf, buf.dataLength)
                              -        )
                              -  }
                              -
                              -  // stream.promise().then(() => done, er => emitted error)
                              -  promise() {
                              -    return new Promise((resolve, reject) => {
                              -      this.on(DESTROYED, () => reject(new Error('stream destroyed')))
                              -      this.on('error', er => reject(er))
                              -      this.on('end', () => resolve())
                              -    })
                              -  }
                              -
                              -  // for await (let chunk of stream)
                              -  [ASYNCITERATOR]() {
                              -    let stopped = false
                              -    const stop = () => {
                              -      this.pause()
                              -      stopped = true
                              -      return Promise.resolve({ done: true })
                              -    }
                              -    const next = () => {
                              -      if (stopped) return stop()
                              -      const res = this.read()
                              -      if (res !== null) return Promise.resolve({ done: false, value: res })
                              -
                              -      if (this[EOF]) return stop()
                              -
                              -      let resolve = null
                              -      let reject = null
                              -      const onerr = er => {
                              -        this.removeListener('data', ondata)
                              -        this.removeListener('end', onend)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        stop()
                              -        reject(er)
                              -      }
                              -      const ondata = value => {
                              -        this.removeListener('error', onerr)
                              -        this.removeListener('end', onend)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        this.pause()
                              -        resolve({ value: value, done: !!this[EOF] })
                              -      }
                              -      const onend = () => {
                              -        this.removeListener('error', onerr)
                              -        this.removeListener('data', ondata)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        stop()
                              -        resolve({ done: true })
                              -      }
                              -      const ondestroy = () => onerr(new Error('stream destroyed'))
                              -      return new Promise((res, rej) => {
                              -        reject = rej
                              -        resolve = res
                              -        this.once(DESTROYED, ondestroy)
                              -        this.once('error', onerr)
                              -        this.once('end', onend)
                              -        this.once('data', ondata)
                              -      })
                              -    }
                              -
                              -    return {
                              -      next,
                              -      throw: stop,
                              -      return: stop,
                              -      [ASYNCITERATOR]() {
                              -        return this
                              -      },
                              -    }
                              -  }
                              -
                              -  // for (let chunk of stream)
                              -  [ITERATOR]() {
                              -    let stopped = false
                              -    const stop = () => {
                              -      this.pause()
                              -      this.removeListener(ERROR, stop)
                              -      this.removeListener(DESTROYED, stop)
                              -      this.removeListener('end', stop)
                              -      stopped = true
                              -      return { done: true }
                              -    }
                              -
                              -    const next = () => {
                              -      if (stopped) return stop()
                              -      const value = this.read()
                              -      return value === null ? stop() : { value }
                              -    }
                              -    this.once('end', stop)
                              -    this.once(ERROR, stop)
                              -    this.once(DESTROYED, stop)
                              -
                              -    return {
                              -      next,
                              -      throw: stop,
                              -      return: stop,
                              -      [ITERATOR]() {
                              -        return this
                              -      },
                              -    }
                              -  }
                              -
                              -  destroy(er) {
                              -    if (this[DESTROYED]) {
                              -      if (er) this.emit('error', er)
                              -      else this.emit(DESTROYED)
                              -      return this
                              -    }
                              -
                              -    this[DESTROYED] = true
                              -
                              -    // throw away all buffered data, it's never coming out
                              -    this[BUFFER].length = 0
                              -    this[BUFFERLENGTH] = 0
                              -
                              -    if (typeof this.close === 'function' && !this[CLOSED]) this.close()
                              -
                              -    if (er) this.emit('error', er)
                              -    // if no error to emit, still reject pending promises
                              -    else this.emit(DESTROYED)
                              -
                              -    return this
                              -  }
                              -
                              -  static isStream(s) {
                              -    return (
                              -      !!s &&
                              -      (s instanceof Minipass ||
                              -        s instanceof Stream ||
                              -        (s instanceof EE &&
                              -          // readable
                              -          (typeof s.pipe === 'function' ||
                              -            // writable
                              -            (typeof s.write === 'function' && typeof s.end === 'function'))))
                              -    )
                              -  }
                              -}
                              -
                              -exports.Minipass = Minipass
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minipass/index.mjs b/deps/npm/node_modules/node-gyp/node_modules/minipass/index.mjs
                              deleted file mode 100644
                              index 89b3fbf1a4d445..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minipass/index.mjs
                              +++ /dev/null
                              @@ -1,700 +0,0 @@
                              -'use strict'
                              -const proc =
                              -  typeof process === 'object' && process
                              -    ? process
                              -    : {
                              -        stdout: null,
                              -        stderr: null,
                              -      }
                              -import EE from 'events'
                              -import Stream from 'stream'
                              -import stringdecoder from 'string_decoder'
                              -const SD = stringdecoder.StringDecoder
                              -
                              -const EOF = Symbol('EOF')
                              -const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
                              -const EMITTED_END = Symbol('emittedEnd')
                              -const EMITTING_END = Symbol('emittingEnd')
                              -const EMITTED_ERROR = Symbol('emittedError')
                              -const CLOSED = Symbol('closed')
                              -const READ = Symbol('read')
                              -const FLUSH = Symbol('flush')
                              -const FLUSHCHUNK = Symbol('flushChunk')
                              -const ENCODING = Symbol('encoding')
                              -const DECODER = Symbol('decoder')
                              -const FLOWING = Symbol('flowing')
                              -const PAUSED = Symbol('paused')
                              -const RESUME = Symbol('resume')
                              -const BUFFER = Symbol('buffer')
                              -const PIPES = Symbol('pipes')
                              -const BUFFERLENGTH = Symbol('bufferLength')
                              -const BUFFERPUSH = Symbol('bufferPush')
                              -const BUFFERSHIFT = Symbol('bufferShift')
                              -const OBJECTMODE = Symbol('objectMode')
                              -// internal event when stream is destroyed
                              -const DESTROYED = Symbol('destroyed')
                              -// internal event when stream has an error
                              -const ERROR = Symbol('error')
                              -const EMITDATA = Symbol('emitData')
                              -const EMITEND = Symbol('emitEnd')
                              -const EMITEND2 = Symbol('emitEnd2')
                              -const ASYNC = Symbol('async')
                              -const ABORT = Symbol('abort')
                              -const ABORTED = Symbol('aborted')
                              -const SIGNAL = Symbol('signal')
                              -
                              -const defer = fn => Promise.resolve().then(fn)
                              -
                              -// TODO remove when Node v8 support drops
                              -const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1'
                              -const ASYNCITERATOR =
                              -  (doIter && Symbol.asyncIterator) || Symbol('asyncIterator not implemented')
                              -const ITERATOR =
                              -  (doIter && Symbol.iterator) || Symbol('iterator not implemented')
                              -
                              -// events that mean 'the stream is over'
                              -// these are treated specially, and re-emitted
                              -// if they are listened for after emitting.
                              -const isEndish = ev => ev === 'end' || ev === 'finish' || ev === 'prefinish'
                              -
                              -const isArrayBuffer = b =>
                              -  b instanceof ArrayBuffer ||
                              -  (typeof b === 'object' &&
                              -    b.constructor &&
                              -    b.constructor.name === 'ArrayBuffer' &&
                              -    b.byteLength >= 0)
                              -
                              -const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b)
                              -
                              -class Pipe {
                              -  constructor(src, dest, opts) {
                              -    this.src = src
                              -    this.dest = dest
                              -    this.opts = opts
                              -    this.ondrain = () => src[RESUME]()
                              -    dest.on('drain', this.ondrain)
                              -  }
                              -  unpipe() {
                              -    this.dest.removeListener('drain', this.ondrain)
                              -  }
                              -  // istanbul ignore next - only here for the prototype
                              -  proxyErrors() {}
                              -  end() {
                              -    this.unpipe()
                              -    if (this.opts.end) this.dest.end()
                              -  }
                              -}
                              -
                              -class PipeProxyErrors extends Pipe {
                              -  unpipe() {
                              -    this.src.removeListener('error', this.proxyErrors)
                              -    super.unpipe()
                              -  }
                              -  constructor(src, dest, opts) {
                              -    super(src, dest, opts)
                              -    this.proxyErrors = er => dest.emit('error', er)
                              -    src.on('error', this.proxyErrors)
                              -  }
                              -}
                              -
                              -export class Minipass extends Stream {
                              -  constructor(options) {
                              -    super()
                              -    this[FLOWING] = false
                              -    // whether we're explicitly paused
                              -    this[PAUSED] = false
                              -    this[PIPES] = []
                              -    this[BUFFER] = []
                              -    this[OBJECTMODE] = (options && options.objectMode) || false
                              -    if (this[OBJECTMODE]) this[ENCODING] = null
                              -    else this[ENCODING] = (options && options.encoding) || null
                              -    if (this[ENCODING] === 'buffer') this[ENCODING] = null
                              -    this[ASYNC] = (options && !!options.async) || false
                              -    this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
                              -    this[EOF] = false
                              -    this[EMITTED_END] = false
                              -    this[EMITTING_END] = false
                              -    this[CLOSED] = false
                              -    this[EMITTED_ERROR] = null
                              -    this.writable = true
                              -    this.readable = true
                              -    this[BUFFERLENGTH] = 0
                              -    this[DESTROYED] = false
                              -    if (options && options.debugExposeBuffer === true) {
                              -      Object.defineProperty(this, 'buffer', { get: () => this[BUFFER] })
                              -    }
                              -    if (options && options.debugExposePipes === true) {
                              -      Object.defineProperty(this, 'pipes', { get: () => this[PIPES] })
                              -    }
                              -    this[SIGNAL] = options && options.signal
                              -    this[ABORTED] = false
                              -    if (this[SIGNAL]) {
                              -      this[SIGNAL].addEventListener('abort', () => this[ABORT]())
                              -      if (this[SIGNAL].aborted) {
                              -        this[ABORT]()
                              -      }
                              -    }
                              -  }
                              -
                              -  get bufferLength() {
                              -    return this[BUFFERLENGTH]
                              -  }
                              -
                              -  get encoding() {
                              -    return this[ENCODING]
                              -  }
                              -  set encoding(enc) {
                              -    if (this[OBJECTMODE]) throw new Error('cannot set encoding in objectMode')
                              -
                              -    if (
                              -      this[ENCODING] &&
                              -      enc !== this[ENCODING] &&
                              -      ((this[DECODER] && this[DECODER].lastNeed) || this[BUFFERLENGTH])
                              -    )
                              -      throw new Error('cannot change encoding')
                              -
                              -    if (this[ENCODING] !== enc) {
                              -      this[DECODER] = enc ? new SD(enc) : null
                              -      if (this[BUFFER].length)
                              -        this[BUFFER] = this[BUFFER].map(chunk => this[DECODER].write(chunk))
                              -    }
                              -
                              -    this[ENCODING] = enc
                              -  }
                              -
                              -  setEncoding(enc) {
                              -    this.encoding = enc
                              -  }
                              -
                              -  get objectMode() {
                              -    return this[OBJECTMODE]
                              -  }
                              -  set objectMode(om) {
                              -    this[OBJECTMODE] = this[OBJECTMODE] || !!om
                              -  }
                              -
                              -  get ['async']() {
                              -    return this[ASYNC]
                              -  }
                              -  set ['async'](a) {
                              -    this[ASYNC] = this[ASYNC] || !!a
                              -  }
                              -
                              -  // drop everything and get out of the flow completely
                              -  [ABORT]() {
                              -    this[ABORTED] = true
                              -    this.emit('abort', this[SIGNAL].reason)
                              -    this.destroy(this[SIGNAL].reason)
                              -  }
                              -
                              -  get aborted() {
                              -    return this[ABORTED]
                              -  }
                              -  set aborted(_) {}
                              -
                              -  write(chunk, encoding, cb) {
                              -    if (this[ABORTED]) return false
                              -    if (this[EOF]) throw new Error('write after end')
                              -
                              -    if (this[DESTROYED]) {
                              -      this.emit(
                              -        'error',
                              -        Object.assign(
                              -          new Error('Cannot call write after a stream was destroyed'),
                              -          { code: 'ERR_STREAM_DESTROYED' }
                              -        )
                              -      )
                              -      return true
                              -    }
                              -
                              -    if (typeof encoding === 'function') (cb = encoding), (encoding = 'utf8')
                              -
                              -    if (!encoding) encoding = 'utf8'
                              -
                              -    const fn = this[ASYNC] ? defer : f => f()
                              -
                              -    // convert array buffers and typed array views into buffers
                              -    // at some point in the future, we may want to do the opposite!
                              -    // leave strings and buffers as-is
                              -    // anything else switches us into object mode
                              -    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
                              -      if (isArrayBufferView(chunk))
                              -        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)
                              -      else if (isArrayBuffer(chunk)) chunk = Buffer.from(chunk)
                              -      else if (typeof chunk !== 'string')
                              -        // use the setter so we throw if we have encoding set
                              -        this.objectMode = true
                              -    }
                              -
                              -    // handle object mode up front, since it's simpler
                              -    // this yields better performance, fewer checks later.
                              -    if (this[OBJECTMODE]) {
                              -      /* istanbul ignore if - maybe impossible? */
                              -      if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true)
                              -
                              -      if (this.flowing) this.emit('data', chunk)
                              -      else this[BUFFERPUSH](chunk)
                              -
                              -      if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -
                              -      if (cb) fn(cb)
                              -
                              -      return this.flowing
                              -    }
                              -
                              -    // at this point the chunk is a buffer or string
                              -    // don't buffer it up or send it to the decoder
                              -    if (!chunk.length) {
                              -      if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -      if (cb) fn(cb)
                              -      return this.flowing
                              -    }
                              -
                              -    // fast-path writing strings of same encoding to a stream with
                              -    // an empty buffer, skipping the buffer/decoder dance
                              -    if (
                              -      typeof chunk === 'string' &&
                              -      // unless it is a string already ready for us to use
                              -      !(encoding === this[ENCODING] && !this[DECODER].lastNeed)
                              -    ) {
                              -      chunk = Buffer.from(chunk, encoding)
                              -    }
                              -
                              -    if (Buffer.isBuffer(chunk) && this[ENCODING])
                              -      chunk = this[DECODER].write(chunk)
                              -
                              -    // Note: flushing CAN potentially switch us into not-flowing mode
                              -    if (this.flowing && this[BUFFERLENGTH] !== 0) this[FLUSH](true)
                              -
                              -    if (this.flowing) this.emit('data', chunk)
                              -    else this[BUFFERPUSH](chunk)
                              -
                              -    if (this[BUFFERLENGTH] !== 0) this.emit('readable')
                              -
                              -    if (cb) fn(cb)
                              -
                              -    return this.flowing
                              -  }
                              -
                              -  read(n) {
                              -    if (this[DESTROYED]) return null
                              -
                              -    if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) {
                              -      this[MAYBE_EMIT_END]()
                              -      return null
                              -    }
                              -
                              -    if (this[OBJECTMODE]) n = null
                              -
                              -    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
                              -      if (this.encoding) this[BUFFER] = [this[BUFFER].join('')]
                              -      else this[BUFFER] = [Buffer.concat(this[BUFFER], this[BUFFERLENGTH])]
                              -    }
                              -
                              -    const ret = this[READ](n || null, this[BUFFER][0])
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [READ](n, chunk) {
                              -    if (n === chunk.length || n === null) this[BUFFERSHIFT]()
                              -    else {
                              -      this[BUFFER][0] = chunk.slice(n)
                              -      chunk = chunk.slice(0, n)
                              -      this[BUFFERLENGTH] -= n
                              -    }
                              -
                              -    this.emit('data', chunk)
                              -
                              -    if (!this[BUFFER].length && !this[EOF]) this.emit('drain')
                              -
                              -    return chunk
                              -  }
                              -
                              -  end(chunk, encoding, cb) {
                              -    if (typeof chunk === 'function') (cb = chunk), (chunk = null)
                              -    if (typeof encoding === 'function') (cb = encoding), (encoding = 'utf8')
                              -    if (chunk) this.write(chunk, encoding)
                              -    if (cb) this.once('end', cb)
                              -    this[EOF] = true
                              -    this.writable = false
                              -
                              -    // if we haven't written anything, then go ahead and emit,
                              -    // even if we're not reading.
                              -    // we'll re-emit if a new 'end' listener is added anyway.
                              -    // This makes MP more suitable to write-only use cases.
                              -    if (this.flowing || !this[PAUSED]) this[MAYBE_EMIT_END]()
                              -    return this
                              -  }
                              -
                              -  // don't let the internal resume be overwritten
                              -  [RESUME]() {
                              -    if (this[DESTROYED]) return
                              -
                              -    this[PAUSED] = false
                              -    this[FLOWING] = true
                              -    this.emit('resume')
                              -    if (this[BUFFER].length) this[FLUSH]()
                              -    else if (this[EOF]) this[MAYBE_EMIT_END]()
                              -    else this.emit('drain')
                              -  }
                              -
                              -  resume() {
                              -    return this[RESUME]()
                              -  }
                              -
                              -  pause() {
                              -    this[FLOWING] = false
                              -    this[PAUSED] = true
                              -  }
                              -
                              -  get destroyed() {
                              -    return this[DESTROYED]
                              -  }
                              -
                              -  get flowing() {
                              -    return this[FLOWING]
                              -  }
                              -
                              -  get paused() {
                              -    return this[PAUSED]
                              -  }
                              -
                              -  [BUFFERPUSH](chunk) {
                              -    if (this[OBJECTMODE]) this[BUFFERLENGTH] += 1
                              -    else this[BUFFERLENGTH] += chunk.length
                              -    this[BUFFER].push(chunk)
                              -  }
                              -
                              -  [BUFFERSHIFT]() {
                              -    if (this[OBJECTMODE]) this[BUFFERLENGTH] -= 1
                              -    else this[BUFFERLENGTH] -= this[BUFFER][0].length
                              -    return this[BUFFER].shift()
                              -  }
                              -
                              -  [FLUSH](noDrain) {
                              -    do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length)
                              -
                              -    if (!noDrain && !this[BUFFER].length && !this[EOF]) this.emit('drain')
                              -  }
                              -
                              -  [FLUSHCHUNK](chunk) {
                              -    this.emit('data', chunk)
                              -    return this.flowing
                              -  }
                              -
                              -  pipe(dest, opts) {
                              -    if (this[DESTROYED]) return
                              -
                              -    const ended = this[EMITTED_END]
                              -    opts = opts || {}
                              -    if (dest === proc.stdout || dest === proc.stderr) opts.end = false
                              -    else opts.end = opts.end !== false
                              -    opts.proxyErrors = !!opts.proxyErrors
                              -
                              -    // piping an ended stream ends immediately
                              -    if (ended) {
                              -      if (opts.end) dest.end()
                              -    } else {
                              -      this[PIPES].push(
                              -        !opts.proxyErrors
                              -          ? new Pipe(this, dest, opts)
                              -          : new PipeProxyErrors(this, dest, opts)
                              -      )
                              -      if (this[ASYNC]) defer(() => this[RESUME]())
                              -      else this[RESUME]()
                              -    }
                              -
                              -    return dest
                              -  }
                              -
                              -  unpipe(dest) {
                              -    const p = this[PIPES].find(p => p.dest === dest)
                              -    if (p) {
                              -      this[PIPES].splice(this[PIPES].indexOf(p), 1)
                              -      p.unpipe()
                              -    }
                              -  }
                              -
                              -  addListener(ev, fn) {
                              -    return this.on(ev, fn)
                              -  }
                              -
                              -  on(ev, fn) {
                              -    const ret = super.on(ev, fn)
                              -    if (ev === 'data' && !this[PIPES].length && !this.flowing) this[RESUME]()
                              -    else if (ev === 'readable' && this[BUFFERLENGTH] !== 0)
                              -      super.emit('readable')
                              -    else if (isEndish(ev) && this[EMITTED_END]) {
                              -      super.emit(ev)
                              -      this.removeAllListeners(ev)
                              -    } else if (ev === 'error' && this[EMITTED_ERROR]) {
                              -      if (this[ASYNC]) defer(() => fn.call(this, this[EMITTED_ERROR]))
                              -      else fn.call(this, this[EMITTED_ERROR])
                              -    }
                              -    return ret
                              -  }
                              -
                              -  get emittedEnd() {
                              -    return this[EMITTED_END]
                              -  }
                              -
                              -  [MAYBE_EMIT_END]() {
                              -    if (
                              -      !this[EMITTING_END] &&
                              -      !this[EMITTED_END] &&
                              -      !this[DESTROYED] &&
                              -      this[BUFFER].length === 0 &&
                              -      this[EOF]
                              -    ) {
                              -      this[EMITTING_END] = true
                              -      this.emit('end')
                              -      this.emit('prefinish')
                              -      this.emit('finish')
                              -      if (this[CLOSED]) this.emit('close')
                              -      this[EMITTING_END] = false
                              -    }
                              -  }
                              -
                              -  emit(ev, data, ...extra) {
                              -    // error and close are only events allowed after calling destroy()
                              -    if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED])
                              -      return
                              -    else if (ev === 'data') {
                              -      return !this[OBJECTMODE] && !data
                              -        ? false
                              -        : this[ASYNC]
                              -        ? defer(() => this[EMITDATA](data))
                              -        : this[EMITDATA](data)
                              -    } else if (ev === 'end') {
                              -      return this[EMITEND]()
                              -    } else if (ev === 'close') {
                              -      this[CLOSED] = true
                              -      // don't emit close before 'end' and 'finish'
                              -      if (!this[EMITTED_END] && !this[DESTROYED]) return
                              -      const ret = super.emit('close')
                              -      this.removeAllListeners('close')
                              -      return ret
                              -    } else if (ev === 'error') {
                              -      this[EMITTED_ERROR] = data
                              -      super.emit(ERROR, data)
                              -      const ret =
                              -        !this[SIGNAL] || this.listeners('error').length
                              -          ? super.emit('error', data)
                              -          : false
                              -      this[MAYBE_EMIT_END]()
                              -      return ret
                              -    } else if (ev === 'resume') {
                              -      const ret = super.emit('resume')
                              -      this[MAYBE_EMIT_END]()
                              -      return ret
                              -    } else if (ev === 'finish' || ev === 'prefinish') {
                              -      const ret = super.emit(ev)
                              -      this.removeAllListeners(ev)
                              -      return ret
                              -    }
                              -
                              -    // Some other unknown event
                              -    const ret = super.emit(ev, data, ...extra)
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [EMITDATA](data) {
                              -    for (const p of this[PIPES]) {
                              -      if (p.dest.write(data) === false) this.pause()
                              -    }
                              -    const ret = super.emit('data', data)
                              -    this[MAYBE_EMIT_END]()
                              -    return ret
                              -  }
                              -
                              -  [EMITEND]() {
                              -    if (this[EMITTED_END]) return
                              -
                              -    this[EMITTED_END] = true
                              -    this.readable = false
                              -    if (this[ASYNC]) defer(() => this[EMITEND2]())
                              -    else this[EMITEND2]()
                              -  }
                              -
                              -  [EMITEND2]() {
                              -    if (this[DECODER]) {
                              -      const data = this[DECODER].end()
                              -      if (data) {
                              -        for (const p of this[PIPES]) {
                              -          p.dest.write(data)
                              -        }
                              -        super.emit('data', data)
                              -      }
                              -    }
                              -
                              -    for (const p of this[PIPES]) {
                              -      p.end()
                              -    }
                              -    const ret = super.emit('end')
                              -    this.removeAllListeners('end')
                              -    return ret
                              -  }
                              -
                              -  // const all = await stream.collect()
                              -  collect() {
                              -    const buf = []
                              -    if (!this[OBJECTMODE]) buf.dataLength = 0
                              -    // set the promise first, in case an error is raised
                              -    // by triggering the flow here.
                              -    const p = this.promise()
                              -    this.on('data', c => {
                              -      buf.push(c)
                              -      if (!this[OBJECTMODE]) buf.dataLength += c.length
                              -    })
                              -    return p.then(() => buf)
                              -  }
                              -
                              -  // const data = await stream.concat()
                              -  concat() {
                              -    return this[OBJECTMODE]
                              -      ? Promise.reject(new Error('cannot concat in objectMode'))
                              -      : this.collect().then(buf =>
                              -          this[OBJECTMODE]
                              -            ? Promise.reject(new Error('cannot concat in objectMode'))
                              -            : this[ENCODING]
                              -            ? buf.join('')
                              -            : Buffer.concat(buf, buf.dataLength)
                              -        )
                              -  }
                              -
                              -  // stream.promise().then(() => done, er => emitted error)
                              -  promise() {
                              -    return new Promise((resolve, reject) => {
                              -      this.on(DESTROYED, () => reject(new Error('stream destroyed')))
                              -      this.on('error', er => reject(er))
                              -      this.on('end', () => resolve())
                              -    })
                              -  }
                              -
                              -  // for await (let chunk of stream)
                              -  [ASYNCITERATOR]() {
                              -    let stopped = false
                              -    const stop = () => {
                              -      this.pause()
                              -      stopped = true
                              -      return Promise.resolve({ done: true })
                              -    }
                              -    const next = () => {
                              -      if (stopped) return stop()
                              -      const res = this.read()
                              -      if (res !== null) return Promise.resolve({ done: false, value: res })
                              -
                              -      if (this[EOF]) return stop()
                              -
                              -      let resolve = null
                              -      let reject = null
                              -      const onerr = er => {
                              -        this.removeListener('data', ondata)
                              -        this.removeListener('end', onend)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        stop()
                              -        reject(er)
                              -      }
                              -      const ondata = value => {
                              -        this.removeListener('error', onerr)
                              -        this.removeListener('end', onend)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        this.pause()
                              -        resolve({ value: value, done: !!this[EOF] })
                              -      }
                              -      const onend = () => {
                              -        this.removeListener('error', onerr)
                              -        this.removeListener('data', ondata)
                              -        this.removeListener(DESTROYED, ondestroy)
                              -        stop()
                              -        resolve({ done: true })
                              -      }
                              -      const ondestroy = () => onerr(new Error('stream destroyed'))
                              -      return new Promise((res, rej) => {
                              -        reject = rej
                              -        resolve = res
                              -        this.once(DESTROYED, ondestroy)
                              -        this.once('error', onerr)
                              -        this.once('end', onend)
                              -        this.once('data', ondata)
                              -      })
                              -    }
                              -
                              -    return {
                              -      next,
                              -      throw: stop,
                              -      return: stop,
                              -      [ASYNCITERATOR]() {
                              -        return this
                              -      },
                              -    }
                              -  }
                              -
                              -  // for (let chunk of stream)
                              -  [ITERATOR]() {
                              -    let stopped = false
                              -    const stop = () => {
                              -      this.pause()
                              -      this.removeListener(ERROR, stop)
                              -      this.removeListener(DESTROYED, stop)
                              -      this.removeListener('end', stop)
                              -      stopped = true
                              -      return { done: true }
                              -    }
                              -
                              -    const next = () => {
                              -      if (stopped) return stop()
                              -      const value = this.read()
                              -      return value === null ? stop() : { value }
                              -    }
                              -    this.once('end', stop)
                              -    this.once(ERROR, stop)
                              -    this.once(DESTROYED, stop)
                              -
                              -    return {
                              -      next,
                              -      throw: stop,
                              -      return: stop,
                              -      [ITERATOR]() {
                              -        return this
                              -      },
                              -    }
                              -  }
                              -
                              -  destroy(er) {
                              -    if (this[DESTROYED]) {
                              -      if (er) this.emit('error', er)
                              -      else this.emit(DESTROYED)
                              -      return this
                              -    }
                              -
                              -    this[DESTROYED] = true
                              -
                              -    // throw away all buffered data, it's never coming out
                              -    this[BUFFER].length = 0
                              -    this[BUFFERLENGTH] = 0
                              -
                              -    if (typeof this.close === 'function' && !this[CLOSED]) this.close()
                              -
                              -    if (er) this.emit('error', er)
                              -    // if no error to emit, still reject pending promises
                              -    else this.emit(DESTROYED)
                              -
                              -    return this
                              -  }
                              -
                              -  static isStream(s) {
                              -    return (
                              -      !!s &&
                              -      (s instanceof Minipass ||
                              -        s instanceof Stream ||
                              -        (s instanceof EE &&
                              -          // readable
                              -          (typeof s.pipe === 'function' ||
                              -            // writable
                              -            (typeof s.write === 'function' && typeof s.end === 'function'))))
                              -    )
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/minipass/package.json b/deps/npm/node_modules/node-gyp/node_modules/minipass/package.json
                              deleted file mode 100644
                              index 0e20e988047f23..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/minipass/package.json
                              +++ /dev/null
                              @@ -1,76 +0,0 @@
                              -{
                              -  "name": "minipass",
                              -  "version": "5.0.0",
                              -  "description": "minimal implementation of a PassThrough stream",
                              -  "main": "./index.js",
                              -  "module": "./index.mjs",
                              -  "types": "./index.d.ts",
                              -  "exports": {
                              -    ".": {
                              -      "import": {
                              -        "types": "./index.d.ts",
                              -        "default": "./index.mjs"
                              -      },
                              -      "require": {
                              -        "types": "./index.d.ts",
                              -        "default": "./index.js"
                              -      }
                              -    },
                              -    "./package.json": "./package.json"
                              -  },
                              -  "devDependencies": {
                              -    "@types/node": "^17.0.41",
                              -    "end-of-stream": "^1.4.0",
                              -    "node-abort-controller": "^3.1.1",
                              -    "prettier": "^2.6.2",
                              -    "tap": "^16.2.0",
                              -    "through2": "^2.0.3",
                              -    "ts-node": "^10.8.1",
                              -    "typedoc": "^0.23.24",
                              -    "typescript": "^4.7.3"
                              -  },
                              -  "scripts": {
                              -    "pretest": "npm run prepare",
                              -    "presnap": "npm run prepare",
                              -    "prepare": "node ./scripts/transpile-to-esm.js",
                              -    "snap": "tap",
                              -    "test": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "postpublish": "git push origin --follow-tags",
                              -    "typedoc": "typedoc ./index.d.ts",
                              -    "format": "prettier --write . --loglevel warn"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git+https://github.com/isaacs/minipass.git"
                              -  },
                              -  "keywords": [
                              -    "passthrough",
                              -    "stream"
                              -  ],
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "license": "ISC",
                              -  "files": [
                              -    "index.d.ts",
                              -    "index.js",
                              -    "index.mjs"
                              -  ],
                              -  "tap": {
                              -    "check-coverage": true
                              -  },
                              -  "engines": {
                              -    "node": ">=8"
                              -  },
                              -  "prettier": {
                              -    "semi": false,
                              -    "printWidth": 80,
                              -    "tabWidth": 2,
                              -    "useTabs": false,
                              -    "singleQuote": true,
                              -    "jsxSingleQuote": false,
                              -    "bracketSameLine": true,
                              -    "arrowParens": "avoid",
                              -    "endOfLine": "lf"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/nopt/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/nopt/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/README.md b/deps/npm/node_modules/node-gyp/node_modules/nopt/README.md
                              deleted file mode 100644
                              index a99531c04655fe..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/nopt/README.md
                              +++ /dev/null
                              @@ -1,213 +0,0 @@
                              -If you want to write an option parser, and have it be good, there are
                              -two ways to do it.  The Right Way, and the Wrong Way.
                              -
                              -The Wrong Way is to sit down and write an option parser.  We've all done
                              -that.
                              -
                              -The Right Way is to write some complex configurable program with so many
                              -options that you hit the limit of your frustration just trying to
                              -manage them all, and defer it with duct-tape solutions until you see
                              -exactly to the core of the problem, and finally snap and write an
                              -awesome option parser.
                              -
                              -If you want to write an option parser, don't write an option parser.
                              -Write a package manager, or a source control system, or a service
                              -restarter, or an operating system.  You probably won't end up with a
                              -good one of those, but if you don't give up, and you are relentless and
                              -diligent enough in your procrastination, you may just end up with a very
                              -nice option parser.
                              -
                              -## USAGE
                              -
                              -```javascript
                              -// my-program.js
                              -var nopt = require("nopt")
                              -  , Stream = require("stream").Stream
                              -  , path = require("path")
                              -  , knownOpts = { "foo" : [String, null]
                              -                , "bar" : [Stream, Number]
                              -                , "baz" : path
                              -                , "bloo" : [ "big", "medium", "small" ]
                              -                , "flag" : Boolean
                              -                , "pick" : Boolean
                              -                , "many1" : [String, Array]
                              -                , "many2" : [path, Array]
                              -                }
                              -  , shortHands = { "foofoo" : ["--foo", "Mr. Foo"]
                              -                 , "b7" : ["--bar", "7"]
                              -                 , "m" : ["--bloo", "medium"]
                              -                 , "p" : ["--pick"]
                              -                 , "f" : ["--flag"]
                              -                 }
                              -             // everything is optional.
                              -             // knownOpts and shorthands default to {}
                              -             // arg list defaults to process.argv
                              -             // slice defaults to 2
                              -  , parsed = nopt(knownOpts, shortHands, process.argv, 2)
                              -console.log(parsed)
                              -```
                              -
                              -This would give you support for any of the following:
                              -
                              -```console
                              -$ node my-program.js --foo "blerp" --no-flag
                              -{ "foo" : "blerp", "flag" : false }
                              -
                              -$ node my-program.js ---bar 7 --foo "Mr. Hand" --flag
                              -{ bar: 7, foo: "Mr. Hand", flag: true }
                              -
                              -$ node my-program.js --foo "blerp" -f -----p
                              -{ foo: "blerp", flag: true, pick: true }
                              -
                              -$ node my-program.js -fp --foofoo
                              -{ foo: "Mr. Foo", flag: true, pick: true }
                              -
                              -$ node my-program.js --foofoo -- -fp  # -- stops the flag parsing.
                              -{ foo: "Mr. Foo", argv: { remain: ["-fp"] } }
                              -
                              -$ node my-program.js --blatzk -fp # unknown opts are ok.
                              -{ blatzk: true, flag: true, pick: true }
                              -
                              -$ node my-program.js --blatzk=1000 -fp # but you need to use = if they have a value
                              -{ blatzk: 1000, flag: true, pick: true }
                              -
                              -$ node my-program.js --no-blatzk -fp # unless they start with "no-"
                              -{ blatzk: false, flag: true, pick: true }
                              -
                              -$ node my-program.js --baz b/a/z # known paths are resolved.
                              -{ baz: "/Users/isaacs/b/a/z" }
                              -
                              -# if Array is one of the types, then it can take many
                              -# values, and will always be an array.  The other types provided
                              -# specify what types are allowed in the list.
                              -
                              -$ node my-program.js --many1 5 --many1 null --many1 foo
                              -{ many1: ["5", "null", "foo"] }
                              -
                              -$ node my-program.js --many2 foo --many2 bar
                              -{ many2: ["/path/to/foo", "path/to/bar"] }
                              -```
                              -
                              -Read the tests at the bottom of `lib/nopt.js` for more examples of
                              -what this puppy can do.
                              -
                              -## Types
                              -
                              -The following types are supported, and defined on `nopt.typeDefs`
                              -
                              -* String: A normal string.  No parsing is done.
                              -* path: A file system path.  Gets resolved against cwd if not absolute.
                              -* url: A url.  If it doesn't parse, it isn't accepted.
                              -* Number: Must be numeric.
                              -* Date: Must parse as a date. If it does, and `Date` is one of the options,
                              -  then it will return a Date object, not a string.
                              -* Boolean: Must be either `true` or `false`.  If an option is a boolean,
                              -  then it does not need a value, and its presence will imply `true` as
                              -  the value.  To negate boolean flags, do `--no-whatever` or `--whatever
                              -  false`
                              -* NaN: Means that the option is strictly not allowed.  Any value will
                              -  fail.
                              -* Stream: An object matching the "Stream" class in node.  Valuable
                              -  for use when validating programmatically.  (npm uses this to let you
                              -  supply any WriteStream on the `outfd` and `logfd` config options.)
                              -* Array: If `Array` is specified as one of the types, then the value
                              -  will be parsed as a list of options.  This means that multiple values
                              -  can be specified, and that the value will always be an array.
                              -
                              -If a type is an array of values not on this list, then those are
                              -considered valid values.  For instance, in the example above, the
                              -`--bloo` option can only be one of `"big"`, `"medium"`, or `"small"`,
                              -and any other value will be rejected.
                              -
                              -When parsing unknown fields, `"true"`, `"false"`, and `"null"` will be
                              -interpreted as their JavaScript equivalents.
                              -
                              -You can also mix types and values, or multiple types, in a list.  For
                              -instance `{ blah: [Number, null] }` would allow a value to be set to
                              -either a Number or null.  When types are ordered, this implies a
                              -preference, and the first type that can be used to properly interpret
                              -the value will be used.
                              -
                              -To define a new type, add it to `nopt.typeDefs`.  Each item in that
                              -hash is an object with a `type` member and a `validate` method.  The
                              -`type` member is an object that matches what goes in the type list.  The
                              -`validate` method is a function that gets called with `validate(data,
                              -key, val)`.  Validate methods should assign `data[key]` to the valid
                              -value of `val` if it can be handled properly, or return boolean
                              -`false` if it cannot.
                              -
                              -You can also call `nopt.clean(data, types, typeDefs)` to clean up a
                              -config object and remove its invalid properties.
                              -
                              -## Error Handling
                              -
                              -By default, nopt outputs a warning to standard error when invalid values for
                              -known options are found.  You can change this behavior by assigning a method
                              -to `nopt.invalidHandler`.  This method will be called with
                              -the offending `nopt.invalidHandler(key, val, types)`.
                              -
                              -If no `nopt.invalidHandler` is assigned, then it will console.error
                              -its whining.  If it is assigned to boolean `false` then the warning is
                              -suppressed.
                              -
                              -## Abbreviations
                              -
                              -Yes, they are supported.  If you define options like this:
                              -
                              -```javascript
                              -{ "foolhardyelephants" : Boolean
                              -, "pileofmonkeys" : Boolean }
                              -```
                              -
                              -Then this will work:
                              -
                              -```bash
                              -node program.js --foolhar --pil
                              -node program.js --no-f --pileofmon
                              -# etc.
                              -```
                              -
                              -## Shorthands
                              -
                              -Shorthands are a hash of shorter option names to a snippet of args that
                              -they expand to.
                              -
                              -If multiple one-character shorthands are all combined, and the
                              -combination does not unambiguously match any other option or shorthand,
                              -then they will be broken up into their constituent parts.  For example:
                              -
                              -```json
                              -{ "s" : ["--loglevel", "silent"]
                              -, "g" : "--global"
                              -, "f" : "--force"
                              -, "p" : "--parseable"
                              -, "l" : "--long"
                              -}
                              -```
                              -
                              -```bash
                              -npm ls -sgflp
                              -# just like doing this:
                              -npm ls --loglevel silent --global --force --long --parseable
                              -```
                              -
                              -## The Rest of the args
                              -
                              -The config object returned by nopt is given a special member called
                              -`argv`, which is an object with the following fields:
                              -
                              -* `remain`: The remaining args after all the parsing has occurred.
                              -* `original`: The args as they originally appeared.
                              -* `cooked`: The args after flags and shorthands are expanded.
                              -
                              -## Slicing
                              -
                              -Node programs are called with more or less the exact argv as it appears
                              -in C land, after the v8 and node-specific options have been plucked off.
                              -As such, `argv[0]` is always `node` and `argv[1]` is always the
                              -JavaScript program being run.
                              -
                              -That's usually not very useful to you.  So they're sliced off by
                              -default.  If you want them, then you can pass in `0` as the last
                              -argument, or any other number that you'd like to slice off the start of
                              -the list.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js b/deps/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js
                              deleted file mode 100755
                              index bb04291c607acf..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/nopt/bin/nopt.js
                              +++ /dev/null
                              @@ -1,56 +0,0 @@
                              -#!/usr/bin/env node
                              -var nopt = require('../lib/nopt')
                              -var path = require('path')
                              -var types = { num: Number,
                              -  bool: Boolean,
                              -  help: Boolean,
                              -  list: Array,
                              -  'num-list': [Number, Array],
                              -  'str-list': [String, Array],
                              -  'bool-list': [Boolean, Array],
                              -  str: String,
                              -  clear: Boolean,
                              -  config: Boolean,
                              -  length: Number,
                              -  file: path,
                              -}
                              -var shorthands = { s: ['--str', 'astring'],
                              -  b: ['--bool'],
                              -  nb: ['--no-bool'],
                              -  tft: ['--bool-list', '--no-bool-list', '--bool-list', 'true'],
                              -  '?': ['--help'],
                              -  h: ['--help'],
                              -  H: ['--help'],
                              -  n: ['--num', '125'],
                              -  c: ['--config'],
                              -  l: ['--length'],
                              -  f: ['--file'],
                              -}
                              -var parsed = nopt(types
                              -  , shorthands
                              -  , process.argv
                              -  , 2)
                              -
                              -console.log('parsed', parsed)
                              -
                              -if (parsed.help) {
                              -  console.log('')
                              -  console.log('nopt cli tester')
                              -  console.log('')
                              -  console.log('types')
                              -  console.log(Object.keys(types).map(function M (t) {
                              -    var type = types[t]
                              -    if (Array.isArray(type)) {
                              -      return [t, type.map(function (mappedType) {
                              -        return mappedType.name
                              -      })]
                              -    }
                              -    return [t, type && type.name]
                              -  }).reduce(function (s, i) {
                              -    s[i[0]] = i[1]
                              -    return s
                              -  }, {}))
                              -  console.log('')
                              -  console.log('shorthands')
                              -  console.log(shorthands)
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/lib/nopt.js b/deps/npm/node_modules/node-gyp/node_modules/nopt/lib/nopt.js
                              deleted file mode 100644
                              index 5829c2fe0f6379..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/nopt/lib/nopt.js
                              +++ /dev/null
                              @@ -1,515 +0,0 @@
                              -// info about each config option.
                              -
                              -var debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG
                              -  ? function () {
                              -    console.error.apply(console, arguments)
                              -  }
                              -  : function () {}
                              -
                              -var url = require('url')
                              -var path = require('path')
                              -var Stream = require('stream').Stream
                              -var abbrev = require('abbrev')
                              -var os = require('os')
                              -
                              -module.exports = exports = nopt
                              -exports.clean = clean
                              -
                              -exports.typeDefs =
                              -  { String: { type: String, validate: validateString },
                              -    Boolean: { type: Boolean, validate: validateBoolean },
                              -    url: { type: url, validate: validateUrl },
                              -    Number: { type: Number, validate: validateNumber },
                              -    path: { type: path, validate: validatePath },
                              -    Stream: { type: Stream, validate: validateStream },
                              -    Date: { type: Date, validate: validateDate },
                              -  }
                              -
                              -function nopt (types, shorthands, args, slice) {
                              -  args = args || process.argv
                              -  types = types || {}
                              -  shorthands = shorthands || {}
                              -  if (typeof slice !== 'number') {
                              -    slice = 2
                              -  }
                              -
                              -  debug(types, shorthands, args, slice)
                              -
                              -  args = args.slice(slice)
                              -  var data = {}
                              -  var argv = {
                              -    remain: [],
                              -    cooked: args,
                              -    original: args.slice(0),
                              -  }
                              -
                              -  parse(args, data, argv.remain, types, shorthands)
                              -  // now data is full
                              -  clean(data, types, exports.typeDefs)
                              -  data.argv = argv
                              -  Object.defineProperty(data.argv, 'toString', { value: function () {
                              -    return this.original.map(JSON.stringify).join(' ')
                              -  },
                              -  enumerable: false })
                              -  return data
                              -}
                              -
                              -function clean (data, types, typeDefs) {
                              -  typeDefs = typeDefs || exports.typeDefs
                              -  var remove = {}
                              -  var typeDefault = [false, true, null, String, Array]
                              -
                              -  Object.keys(data).forEach(function (k) {
                              -    if (k === 'argv') {
                              -      return
                              -    }
                              -    var val = data[k]
                              -    var isArray = Array.isArray(val)
                              -    var type = types[k]
                              -    if (!isArray) {
                              -      val = [val]
                              -    }
                              -    if (!type) {
                              -      type = typeDefault
                              -    }
                              -    if (type === Array) {
                              -      type = typeDefault.concat(Array)
                              -    }
                              -    if (!Array.isArray(type)) {
                              -      type = [type]
                              -    }
                              -
                              -    debug('val=%j', val)
                              -    debug('types=', type)
                              -    val = val.map(function (v) {
                              -      // if it's an unknown value, then parse false/true/null/numbers/dates
                              -      if (typeof v === 'string') {
                              -        debug('string %j', v)
                              -        v = v.trim()
                              -        if ((v === 'null' && ~type.indexOf(null))
                              -            || (v === 'true' &&
                              -               (~type.indexOf(true) || ~type.indexOf(Boolean)))
                              -            || (v === 'false' &&
                              -               (~type.indexOf(false) || ~type.indexOf(Boolean)))) {
                              -          v = JSON.parse(v)
                              -          debug('jsonable %j', v)
                              -        } else if (~type.indexOf(Number) && !isNaN(v)) {
                              -          debug('convert to number', v)
                              -          v = +v
                              -        } else if (~type.indexOf(Date) && !isNaN(Date.parse(v))) {
                              -          debug('convert to date', v)
                              -          v = new Date(v)
                              -        }
                              -      }
                              -
                              -      if (!Object.prototype.hasOwnProperty.call(types, k)) {
                              -        return v
                              -      }
                              -
                              -      // allow `--no-blah` to set 'blah' to null if null is allowed
                              -      if (v === false && ~type.indexOf(null) &&
                              -          !(~type.indexOf(false) || ~type.indexOf(Boolean))) {
                              -        v = null
                              -      }
                              -
                              -      var d = {}
                              -      d[k] = v
                              -      debug('prevalidated val', d, v, types[k])
                              -      if (!validate(d, k, v, types[k], typeDefs)) {
                              -        if (exports.invalidHandler) {
                              -          exports.invalidHandler(k, v, types[k], data)
                              -        } else if (exports.invalidHandler !== false) {
                              -          debug('invalid: ' + k + '=' + v, types[k])
                              -        }
                              -        return remove
                              -      }
                              -      debug('validated v', d, v, types[k])
                              -      return d[k]
                              -    }).filter(function (v) {
                              -      return v !== remove
                              -    })
                              -
                              -    // if we allow Array specifically, then an empty array is how we
                              -    // express 'no value here', not null.  Allow it.
                              -    if (!val.length && type.indexOf(Array) === -1) {
                              -      debug('VAL HAS NO LENGTH, DELETE IT', val, k, type.indexOf(Array))
                              -      delete data[k]
                              -    } else if (isArray) {
                              -      debug(isArray, data[k], val)
                              -      data[k] = val
                              -    } else {
                              -      data[k] = val[0]
                              -    }
                              -
                              -    debug('k=%s val=%j', k, val, data[k])
                              -  })
                              -}
                              -
                              -function validateString (data, k, val) {
                              -  data[k] = String(val)
                              -}
                              -
                              -function validatePath (data, k, val) {
                              -  if (val === true) {
                              -    return false
                              -  }
                              -  if (val === null) {
                              -    return true
                              -  }
                              -
                              -  val = String(val)
                              -
                              -  var isWin = process.platform === 'win32'
                              -  var homePattern = isWin ? /^~(\/|\\)/ : /^~\//
                              -  var home = os.homedir()
                              -
                              -  if (home && val.match(homePattern)) {
                              -    data[k] = path.resolve(home, val.slice(2))
                              -  } else {
                              -    data[k] = path.resolve(val)
                              -  }
                              -  return true
                              -}
                              -
                              -function validateNumber (data, k, val) {
                              -  debug('validate Number %j %j %j', k, val, isNaN(val))
                              -  if (isNaN(val)) {
                              -    return false
                              -  }
                              -  data[k] = +val
                              -}
                              -
                              -function validateDate (data, k, val) {
                              -  var s = Date.parse(val)
                              -  debug('validate Date %j %j %j', k, val, s)
                              -  if (isNaN(s)) {
                              -    return false
                              -  }
                              -  data[k] = new Date(val)
                              -}
                              -
                              -function validateBoolean (data, k, val) {
                              -  if (val instanceof Boolean) {
                              -    val = val.valueOf()
                              -  } else if (typeof val === 'string') {
                              -    if (!isNaN(val)) {
                              -      val = !!(+val)
                              -    } else if (val === 'null' || val === 'false') {
                              -      val = false
                              -    } else {
                              -      val = true
                              -    }
                              -  } else {
                              -    val = !!val
                              -  }
                              -  data[k] = val
                              -}
                              -
                              -function validateUrl (data, k, val) {
                              -  // Changing this would be a breaking change in the npm cli
                              -  /* eslint-disable-next-line node/no-deprecated-api */
                              -  val = url.parse(String(val))
                              -  if (!val.host) {
                              -    return false
                              -  }
                              -  data[k] = val.href
                              -}
                              -
                              -function validateStream (data, k, val) {
                              -  if (!(val instanceof Stream)) {
                              -    return false
                              -  }
                              -  data[k] = val
                              -}
                              -
                              -function validate (data, k, val, type, typeDefs) {
                              -  // arrays are lists of types.
                              -  if (Array.isArray(type)) {
                              -    for (let i = 0, l = type.length; i < l; i++) {
                              -      if (type[i] === Array) {
                              -        continue
                              -      }
                              -      if (validate(data, k, val, type[i], typeDefs)) {
                              -        return true
                              -      }
                              -    }
                              -    delete data[k]
                              -    return false
                              -  }
                              -
                              -  // an array of anything?
                              -  if (type === Array) {
                              -    return true
                              -  }
                              -
                              -  // Original comment:
                              -  // NaN is poisonous.  Means that something is not allowed.
                              -  // New comment: Changing this to an isNaN check breaks a lot of tests.
                              -  // Something is being assumed here that is not actually what happens in
                              -  // practice.  Fixing it is outside the scope of getting linting to pass in
                              -  // this repo. Leaving as-is for now.
                              -  /* eslint-disable-next-line no-self-compare */
                              -  if (type !== type) {
                              -    debug('Poison NaN', k, val, type)
                              -    delete data[k]
                              -    return false
                              -  }
                              -
                              -  // explicit list of values
                              -  if (val === type) {
                              -    debug('Explicitly allowed %j', val)
                              -    // if (isArray) (data[k] = data[k] || []).push(val)
                              -    // else data[k] = val
                              -    data[k] = val
                              -    return true
                              -  }
                              -
                              -  // now go through the list of typeDefs, validate against each one.
                              -  var ok = false
                              -  var types = Object.keys(typeDefs)
                              -  for (let i = 0, l = types.length; i < l; i++) {
                              -    debug('test type %j %j %j', k, val, types[i])
                              -    var t = typeDefs[types[i]]
                              -    if (t && (
                              -      (type && type.name && t.type && t.type.name) ?
                              -        (type.name === t.type.name) :
                              -        (type === t.type)
                              -    )) {
                              -      var d = {}
                              -      ok = t.validate(d, k, val) !== false
                              -      val = d[k]
                              -      if (ok) {
                              -        // if (isArray) (data[k] = data[k] || []).push(val)
                              -        // else data[k] = val
                              -        data[k] = val
                              -        break
                              -      }
                              -    }
                              -  }
                              -  debug('OK? %j (%j %j %j)', ok, k, val, types[types.length - 1])
                              -
                              -  if (!ok) {
                              -    delete data[k]
                              -  }
                              -  return ok
                              -}
                              -
                              -function parse (args, data, remain, types, shorthands) {
                              -  debug('parse', args, data, remain)
                              -
                              -  var abbrevs = abbrev(Object.keys(types))
                              -  var shortAbbr = abbrev(Object.keys(shorthands))
                              -
                              -  for (var i = 0; i < args.length; i++) {
                              -    var arg = args[i]
                              -    debug('arg', arg)
                              -
                              -    if (arg.match(/^-{2,}$/)) {
                              -      // done with keys.
                              -      // the rest are args.
                              -      remain.push.apply(remain, args.slice(i + 1))
                              -      args[i] = '--'
                              -      break
                              -    }
                              -    var hadEq = false
                              -    if (arg.charAt(0) === '-' && arg.length > 1) {
                              -      var at = arg.indexOf('=')
                              -      if (at > -1) {
                              -        hadEq = true
                              -        var v = arg.slice(at + 1)
                              -        arg = arg.slice(0, at)
                              -        args.splice(i, 1, arg, v)
                              -      }
                              -
                              -      // see if it's a shorthand
                              -      // if so, splice and back up to re-parse it.
                              -      var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs)
                              -      debug('arg=%j shRes=%j', arg, shRes)
                              -      if (shRes) {
                              -        debug(arg, shRes)
                              -        args.splice.apply(args, [i, 1].concat(shRes))
                              -        if (arg !== shRes[0]) {
                              -          i--
                              -          continue
                              -        }
                              -      }
                              -      arg = arg.replace(/^-+/, '')
                              -      var no = null
                              -      while (arg.toLowerCase().indexOf('no-') === 0) {
                              -        no = !no
                              -        arg = arg.slice(3)
                              -      }
                              -
                              -      if (abbrevs[arg]) {
                              -        arg = abbrevs[arg]
                              -      }
                              -
                              -      var argType = types[arg]
                              -      var isTypeArray = Array.isArray(argType)
                              -      if (isTypeArray && argType.length === 1) {
                              -        isTypeArray = false
                              -        argType = argType[0]
                              -      }
                              -
                              -      var isArray = argType === Array ||
                              -        isTypeArray && argType.indexOf(Array) !== -1
                              -
                              -      // allow unknown things to be arrays if specified multiple times.
                              -      if (
                              -        !Object.prototype.hasOwnProperty.call(types, arg) &&
                              -        Object.prototype.hasOwnProperty.call(data, arg)
                              -      ) {
                              -        if (!Array.isArray(data[arg])) {
                              -          data[arg] = [data[arg]]
                              -        }
                              -        isArray = true
                              -      }
                              -
                              -      var val
                              -      var la = args[i + 1]
                              -
                              -      var isBool = typeof no === 'boolean' ||
                              -        argType === Boolean ||
                              -        isTypeArray && argType.indexOf(Boolean) !== -1 ||
                              -        (typeof argType === 'undefined' && !hadEq) ||
                              -        (la === 'false' &&
                              -         (argType === null ||
                              -          isTypeArray && ~argType.indexOf(null)))
                              -
                              -      if (isBool) {
                              -        // just set and move along
                              -        val = !no
                              -        // however, also support --bool true or --bool false
                              -        if (la === 'true' || la === 'false') {
                              -          val = JSON.parse(la)
                              -          la = null
                              -          if (no) {
                              -            val = !val
                              -          }
                              -          i++
                              -        }
                              -
                              -        // also support "foo":[Boolean, "bar"] and "--foo bar"
                              -        if (isTypeArray && la) {
                              -          if (~argType.indexOf(la)) {
                              -            // an explicit type
                              -            val = la
                              -            i++
                              -          } else if (la === 'null' && ~argType.indexOf(null)) {
                              -            // null allowed
                              -            val = null
                              -            i++
                              -          } else if (!la.match(/^-{2,}[^-]/) &&
                              -                      !isNaN(la) &&
                              -                      ~argType.indexOf(Number)) {
                              -            // number
                              -            val = +la
                              -            i++
                              -          } else if (!la.match(/^-[^-]/) && ~argType.indexOf(String)) {
                              -            // string
                              -            val = la
                              -            i++
                              -          }
                              -        }
                              -
                              -        if (isArray) {
                              -          (data[arg] = data[arg] || []).push(val)
                              -        } else {
                              -          data[arg] = val
                              -        }
                              -
                              -        continue
                              -      }
                              -
                              -      if (argType === String) {
                              -        if (la === undefined) {
                              -          la = ''
                              -        } else if (la.match(/^-{1,2}[^-]+/)) {
                              -          la = ''
                              -          i--
                              -        }
                              -      }
                              -
                              -      if (la && la.match(/^-{2,}$/)) {
                              -        la = undefined
                              -        i--
                              -      }
                              -
                              -      val = la === undefined ? true : la
                              -      if (isArray) {
                              -        (data[arg] = data[arg] || []).push(val)
                              -      } else {
                              -        data[arg] = val
                              -      }
                              -
                              -      i++
                              -      continue
                              -    }
                              -    remain.push(arg)
                              -  }
                              -}
                              -
                              -function resolveShort (arg, shorthands, shortAbbr, abbrevs) {
                              -  // handle single-char shorthands glommed together, like
                              -  // npm ls -glp, but only if there is one dash, and only if
                              -  // all of the chars are single-char shorthands, and it's
                              -  // not a match to some other abbrev.
                              -  arg = arg.replace(/^-+/, '')
                              -
                              -  // if it's an exact known option, then don't go any further
                              -  if (abbrevs[arg] === arg) {
                              -    return null
                              -  }
                              -
                              -  // if it's an exact known shortopt, same deal
                              -  if (shorthands[arg]) {
                              -    // make it an array, if it's a list of words
                              -    if (shorthands[arg] && !Array.isArray(shorthands[arg])) {
                              -      shorthands[arg] = shorthands[arg].split(/\s+/)
                              -    }
                              -
                              -    return shorthands[arg]
                              -  }
                              -
                              -  // first check to see if this arg is a set of single-char shorthands
                              -  var singles = shorthands.___singles
                              -  if (!singles) {
                              -    singles = Object.keys(shorthands).filter(function (s) {
                              -      return s.length === 1
                              -    }).reduce(function (l, r) {
                              -      l[r] = true
                              -      return l
                              -    }, {})
                              -    shorthands.___singles = singles
                              -    debug('shorthand singles', singles)
                              -  }
                              -
                              -  var chrs = arg.split('').filter(function (c) {
                              -    return singles[c]
                              -  })
                              -
                              -  if (chrs.join('') === arg) {
                              -    return chrs.map(function (c) {
                              -      return shorthands[c]
                              -    }).reduce(function (l, r) {
                              -      return l.concat(r)
                              -    }, [])
                              -  }
                              -
                              -  // if it's an arg abbrev, and not a literal shorthand, then prefer the arg
                              -  if (abbrevs[arg] && !shorthands[arg]) {
                              -    return null
                              -  }
                              -
                              -  // if it's an abbr for a shorthand, then use that
                              -  if (shortAbbr[arg]) {
                              -    arg = shortAbbr[arg]
                              -  }
                              -
                              -  // make it an array, if it's a list of words
                              -  if (shorthands[arg] && !Array.isArray(shorthands[arg])) {
                              -    shorthands[arg] = shorthands[arg].split(/\s+/)
                              -  }
                              -
                              -  return shorthands[arg]
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json b/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json
                              deleted file mode 100644
                              index a3cd13d8c714bd..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json
                              +++ /dev/null
                              @@ -1,53 +0,0 @@
                              -{
                              -  "name": "nopt",
                              -  "version": "6.0.0",
                              -  "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.",
                              -  "author": "GitHub Inc.",
                              -  "main": "lib/nopt.js",
                              -  "scripts": {
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "test": "tap",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "postlint": "template-oss-check",
                              -    "template-oss-apply": "template-oss-apply --force",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "snap": "tap",
                              -    "posttest": "npm run lint"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/nopt.git"
                              -  },
                              -  "bin": {
                              -    "nopt": "bin/nopt.js"
                              -  },
                              -  "license": "ISC",
                              -  "dependencies": {
                              -    "abbrev": "^1.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^3.0.1",
                              -    "@npmcli/template-oss": "3.5.0",
                              -    "tap": "^16.3.0"
                              -  },
                              -  "tap": {
                              -    "lines": 87,
                              -    "functions": 91,
                              -    "branches": 81,
                              -    "statements": 87
                              -  },
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "engines": {
                              -    "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "windowsCI": false,
                              -    "version": "3.5.0"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE.md b/deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE.md
                              deleted file mode 100644
                              index 5fc208ff122e08..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/LICENSE.md
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -
                              -
                              -ISC License
                              -
                              -Copyright npm, Inc.
                              -
                              -Permission to use, copy, modify, and/or distribute this
                              -software for any purpose with or without fee is hereby
                              -granted, provided that the above copyright notice and this
                              -permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND NPM DISCLAIMS ALL
                              -WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
                              -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
                              -EVENT SHALL NPM BE LIABLE FOR ANY SPECIAL, DIRECT,
                              -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                              -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
                              -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
                              -USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/lib/log.js b/deps/npm/node_modules/node-gyp/node_modules/npmlog/lib/log.js
                              deleted file mode 100644
                              index be650c6a426080..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/lib/log.js
                              +++ /dev/null
                              @@ -1,404 +0,0 @@
                              -'use strict'
                              -var Progress = require('are-we-there-yet')
                              -var Gauge = require('gauge')
                              -var EE = require('events').EventEmitter
                              -var log = exports = module.exports = new EE()
                              -var util = require('util')
                              -
                              -var setBlocking = require('set-blocking')
                              -var consoleControl = require('console-control-strings')
                              -
                              -setBlocking(true)
                              -var stream = process.stderr
                              -Object.defineProperty(log, 'stream', {
                              -  set: function (newStream) {
                              -    stream = newStream
                              -    if (this.gauge) {
                              -      this.gauge.setWriteTo(stream, stream)
                              -    }
                              -  },
                              -  get: function () {
                              -    return stream
                              -  },
                              -})
                              -
                              -// by default, decide based on tty-ness.
                              -var colorEnabled
                              -log.useColor = function () {
                              -  return colorEnabled != null ? colorEnabled : stream.isTTY
                              -}
                              -
                              -log.enableColor = function () {
                              -  colorEnabled = true
                              -  this.gauge.setTheme({ hasColor: colorEnabled, hasUnicode: unicodeEnabled })
                              -}
                              -log.disableColor = function () {
                              -  colorEnabled = false
                              -  this.gauge.setTheme({ hasColor: colorEnabled, hasUnicode: unicodeEnabled })
                              -}
                              -
                              -// default level
                              -log.level = 'info'
                              -
                              -log.gauge = new Gauge(stream, {
                              -  enabled: false, // no progress bars unless asked
                              -  theme: { hasColor: log.useColor() },
                              -  template: [
                              -    { type: 'progressbar', length: 20 },
                              -    { type: 'activityIndicator', kerning: 1, length: 1 },
                              -    { type: 'section', default: '' },
                              -    ':',
                              -    { type: 'logline', kerning: 1, default: '' },
                              -  ],
                              -})
                              -
                              -log.tracker = new Progress.TrackerGroup()
                              -
                              -// we track this separately as we may need to temporarily disable the
                              -// display of the status bar for our own loggy purposes.
                              -log.progressEnabled = log.gauge.isEnabled()
                              -
                              -var unicodeEnabled
                              -
                              -log.enableUnicode = function () {
                              -  unicodeEnabled = true
                              -  this.gauge.setTheme({ hasColor: this.useColor(), hasUnicode: unicodeEnabled })
                              -}
                              -
                              -log.disableUnicode = function () {
                              -  unicodeEnabled = false
                              -  this.gauge.setTheme({ hasColor: this.useColor(), hasUnicode: unicodeEnabled })
                              -}
                              -
                              -log.setGaugeThemeset = function (themes) {
                              -  this.gauge.setThemeset(themes)
                              -}
                              -
                              -log.setGaugeTemplate = function (template) {
                              -  this.gauge.setTemplate(template)
                              -}
                              -
                              -log.enableProgress = function () {
                              -  if (this.progressEnabled) {
                              -    return
                              -  }
                              -
                              -  this.progressEnabled = true
                              -  this.tracker.on('change', this.showProgress)
                              -  if (this._paused) {
                              -    return
                              -  }
                              -
                              -  this.gauge.enable()
                              -}
                              -
                              -log.disableProgress = function () {
                              -  if (!this.progressEnabled) {
                              -    return
                              -  }
                              -  this.progressEnabled = false
                              -  this.tracker.removeListener('change', this.showProgress)
                              -  this.gauge.disable()
                              -}
                              -
                              -var trackerConstructors = ['newGroup', 'newItem', 'newStream']
                              -
                              -var mixinLog = function (tracker) {
                              -  // mixin the public methods from log into the tracker
                              -  // (except: conflicts and one's we handle specially)
                              -  Object.keys(log).forEach(function (P) {
                              -    if (P[0] === '_') {
                              -      return
                              -    }
                              -
                              -    if (trackerConstructors.filter(function (C) {
                              -      return C === P
                              -    }).length) {
                              -      return
                              -    }
                              -
                              -    if (tracker[P]) {
                              -      return
                              -    }
                              -
                              -    if (typeof log[P] !== 'function') {
                              -      return
                              -    }
                              -
                              -    var func = log[P]
                              -    tracker[P] = function () {
                              -      return func.apply(log, arguments)
                              -    }
                              -  })
                              -  // if the new tracker is a group, make sure any subtrackers get
                              -  // mixed in too
                              -  if (tracker instanceof Progress.TrackerGroup) {
                              -    trackerConstructors.forEach(function (C) {
                              -      var func = tracker[C]
                              -      tracker[C] = function () {
                              -        return mixinLog(func.apply(tracker, arguments))
                              -      }
                              -    })
                              -  }
                              -  return tracker
                              -}
                              -
                              -// Add tracker constructors to the top level log object
                              -trackerConstructors.forEach(function (C) {
                              -  log[C] = function () {
                              -    return mixinLog(this.tracker[C].apply(this.tracker, arguments))
                              -  }
                              -})
                              -
                              -log.clearProgress = function (cb) {
                              -  if (!this.progressEnabled) {
                              -    return cb && process.nextTick(cb)
                              -  }
                              -
                              -  this.gauge.hide(cb)
                              -}
                              -
                              -log.showProgress = function (name, completed) {
                              -  if (!this.progressEnabled) {
                              -    return
                              -  }
                              -
                              -  var values = {}
                              -  if (name) {
                              -    values.section = name
                              -  }
                              -
                              -  var last = log.record[log.record.length - 1]
                              -  if (last) {
                              -    values.subsection = last.prefix
                              -    var disp = log.disp[last.level] || last.level
                              -    var logline = this._format(disp, log.style[last.level])
                              -    if (last.prefix) {
                              -      logline += ' ' + this._format(last.prefix, this.prefixStyle)
                              -    }
                              -
                              -    logline += ' ' + last.message.split(/\r?\n/)[0]
                              -    values.logline = logline
                              -  }
                              -  values.completed = completed || this.tracker.completed()
                              -  this.gauge.show(values)
                              -}.bind(log) // bind for use in tracker's on-change listener
                              -
                              -// temporarily stop emitting, but don't drop
                              -log.pause = function () {
                              -  this._paused = true
                              -  if (this.progressEnabled) {
                              -    this.gauge.disable()
                              -  }
                              -}
                              -
                              -log.resume = function () {
                              -  if (!this._paused) {
                              -    return
                              -  }
                              -
                              -  this._paused = false
                              -
                              -  var b = this._buffer
                              -  this._buffer = []
                              -  b.forEach(function (m) {
                              -    this.emitLog(m)
                              -  }, this)
                              -  if (this.progressEnabled) {
                              -    this.gauge.enable()
                              -  }
                              -}
                              -
                              -log._buffer = []
                              -
                              -var id = 0
                              -log.record = []
                              -log.maxRecordSize = 10000
                              -log.log = function (lvl, prefix, message) {
                              -  var l = this.levels[lvl]
                              -  if (l === undefined) {
                              -    return this.emit('error', new Error(util.format(
                              -      'Undefined log level: %j', lvl)))
                              -  }
                              -
                              -  var a = new Array(arguments.length - 2)
                              -  var stack = null
                              -  for (var i = 2; i < arguments.length; i++) {
                              -    var arg = a[i - 2] = arguments[i]
                              -
                              -    // resolve stack traces to a plain string.
                              -    if (typeof arg === 'object' && arg instanceof Error && arg.stack) {
                              -      Object.defineProperty(arg, 'stack', {
                              -        value: stack = arg.stack + '',
                              -        enumerable: true,
                              -        writable: true,
                              -      })
                              -    }
                              -  }
                              -  if (stack) {
                              -    a.unshift(stack + '\n')
                              -  }
                              -  message = util.format.apply(util, a)
                              -
                              -  var m = {
                              -    id: id++,
                              -    level: lvl,
                              -    prefix: String(prefix || ''),
                              -    message: message,
                              -    messageRaw: a,
                              -  }
                              -
                              -  this.emit('log', m)
                              -  this.emit('log.' + lvl, m)
                              -  if (m.prefix) {
                              -    this.emit(m.prefix, m)
                              -  }
                              -
                              -  this.record.push(m)
                              -  var mrs = this.maxRecordSize
                              -  var n = this.record.length - mrs
                              -  if (n > mrs / 10) {
                              -    var newSize = Math.floor(mrs * 0.9)
                              -    this.record = this.record.slice(-1 * newSize)
                              -  }
                              -
                              -  this.emitLog(m)
                              -}.bind(log)
                              -
                              -log.emitLog = function (m) {
                              -  if (this._paused) {
                              -    this._buffer.push(m)
                              -    return
                              -  }
                              -  if (this.progressEnabled) {
                              -    this.gauge.pulse(m.prefix)
                              -  }
                              -
                              -  var l = this.levels[m.level]
                              -  if (l === undefined) {
                              -    return
                              -  }
                              -
                              -  if (l < this.levels[this.level]) {
                              -    return
                              -  }
                              -
                              -  if (l > 0 && !isFinite(l)) {
                              -    return
                              -  }
                              -
                              -  // If 'disp' is null or undefined, use the lvl as a default
                              -  // Allows: '', 0 as valid disp
                              -  var disp = log.disp[m.level] != null ? log.disp[m.level] : m.level
                              -  this.clearProgress()
                              -  m.message.split(/\r?\n/).forEach(function (line) {
                              -    var heading = this.heading
                              -    if (heading) {
                              -      this.write(heading, this.headingStyle)
                              -      this.write(' ')
                              -    }
                              -    this.write(disp, log.style[m.level])
                              -    var p = m.prefix || ''
                              -    if (p) {
                              -      this.write(' ')
                              -    }
                              -
                              -    this.write(p, this.prefixStyle)
                              -    this.write(' ' + line + '\n')
                              -  }, this)
                              -  this.showProgress()
                              -}
                              -
                              -log._format = function (msg, style) {
                              -  if (!stream) {
                              -    return
                              -  }
                              -
                              -  var output = ''
                              -  if (this.useColor()) {
                              -    style = style || {}
                              -    var settings = []
                              -    if (style.fg) {
                              -      settings.push(style.fg)
                              -    }
                              -
                              -    if (style.bg) {
                              -      settings.push('bg' + style.bg[0].toUpperCase() + style.bg.slice(1))
                              -    }
                              -
                              -    if (style.bold) {
                              -      settings.push('bold')
                              -    }
                              -
                              -    if (style.underline) {
                              -      settings.push('underline')
                              -    }
                              -
                              -    if (style.inverse) {
                              -      settings.push('inverse')
                              -    }
                              -
                              -    if (settings.length) {
                              -      output += consoleControl.color(settings)
                              -    }
                              -
                              -    if (style.beep) {
                              -      output += consoleControl.beep()
                              -    }
                              -  }
                              -  output += msg
                              -  if (this.useColor()) {
                              -    output += consoleControl.color('reset')
                              -  }
                              -
                              -  return output
                              -}
                              -
                              -log.write = function (msg, style) {
                              -  if (!stream) {
                              -    return
                              -  }
                              -
                              -  stream.write(this._format(msg, style))
                              -}
                              -
                              -log.addLevel = function (lvl, n, style, disp) {
                              -  // If 'disp' is null or undefined, use the lvl as a default
                              -  if (disp == null) {
                              -    disp = lvl
                              -  }
                              -
                              -  this.levels[lvl] = n
                              -  this.style[lvl] = style
                              -  if (!this[lvl]) {
                              -    this[lvl] = function () {
                              -      var a = new Array(arguments.length + 1)
                              -      a[0] = lvl
                              -      for (var i = 0; i < arguments.length; i++) {
                              -        a[i + 1] = arguments[i]
                              -      }
                              -
                              -      return this.log.apply(this, a)
                              -    }.bind(this)
                              -  }
                              -  this.disp[lvl] = disp
                              -}
                              -
                              -log.prefixStyle = { fg: 'magenta' }
                              -log.headingStyle = { fg: 'white', bg: 'black' }
                              -
                              -log.style = {}
                              -log.levels = {}
                              -log.disp = {}
                              -log.addLevel('silly', -Infinity, { inverse: true }, 'sill')
                              -log.addLevel('verbose', 1000, { fg: 'cyan', bg: 'black' }, 'verb')
                              -log.addLevel('info', 2000, { fg: 'green' })
                              -log.addLevel('timing', 2500, { fg: 'green', bg: 'black' })
                              -log.addLevel('http', 3000, { fg: 'green', bg: 'black' })
                              -log.addLevel('notice', 3500, { fg: 'cyan', bg: 'black' })
                              -log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')
                              -log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')
                              -log.addLevel('silent', Infinity)
                              -
                              -// allow 'error' prefix
                              -log.on('error', function () {})
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json b/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json
                              deleted file mode 100644
                              index bdb5a384781ce8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/npmlog/package.json
                              +++ /dev/null
                              @@ -1,51 +0,0 @@
                              -{
                              -  "author": "GitHub Inc.",
                              -  "name": "npmlog",
                              -  "description": "logger for npm",
                              -  "version": "6.0.2",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/npmlog.git"
                              -  },
                              -  "main": "lib/log.js",
                              -  "files": [
                              -    "bin/",
                              -    "lib/"
                              -  ],
                              -  "scripts": {
                              -    "test": "tap",
                              -    "npmclilint": "npmcli-lint",
                              -    "lint": "eslint \"**/*.js\"",
                              -    "lintfix": "npm run lint -- --fix",
                              -    "posttest": "npm run lint",
                              -    "postsnap": "npm run lintfix --",
                              -    "postlint": "template-oss-check",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags",
                              -    "snap": "tap",
                              -    "template-oss-apply": "template-oss-apply --force"
                              -  },
                              -  "dependencies": {
                              -    "are-we-there-yet": "^3.0.0",
                              -    "console-control-strings": "^1.1.0",
                              -    "gauge": "^4.0.3",
                              -    "set-blocking": "^2.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "@npmcli/eslint-config": "^3.0.1",
                              -    "@npmcli/template-oss": "3.4.1",
                              -    "tap": "^16.0.1"
                              -  },
                              -  "license": "ISC",
                              -  "engines": {
                              -    "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
                              -  },
                              -  "tap": {
                              -    "branches": 95
                              -  },
                              -  "templateOSS": {
                              -    "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "3.4.1"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/CONTRIBUTING.md b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/CONTRIBUTING.md
                              deleted file mode 100644
                              index f478d58dca85b2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/CONTRIBUTING.md
                              +++ /dev/null
                              @@ -1,38 +0,0 @@
                              -# Developer's Certificate of Origin 1.1
                              -
                              -By making a contribution to this project, I certify that:
                              -
                              -* (a) The contribution was created in whole or in part by me and I
                              -  have the right to submit it under the open source license
                              -  indicated in the file; or
                              -
                              -* (b) The contribution is based upon previous work that, to the best
                              -  of my knowledge, is covered under an appropriate open source
                              -  license and I have the right under that license to submit that
                              -  work with modifications, whether created in whole or in part
                              -  by me, under the same open source license (unless I am
                              -  permitted to submit under a different license), as indicated
                              -  in the file; or
                              -
                              -* (c) The contribution was provided directly to me by some other
                              -  person who certified (a), (b) or (c) and I have not modified
                              -  it.
                              -
                              -* (d) I understand and agree that this project and the contribution
                              -  are public and that a record of the contribution (including all
                              -  personal information I submit with it, including my sign-off) is
                              -  maintained indefinitely and may be redistributed consistent with
                              -  this project or the open source license(s) involved.
                              -
                              -## Moderation Policy
                              -
                              -The [Node.js Moderation Policy] applies to this WG.
                              -
                              -## Code of Conduct
                              -
                              -The [Node.js Code of Conduct][] applies to this WG.
                              -
                              -[Node.js Code of Conduct]:
                              -https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md
                              -[Node.js Moderation Policy]:
                              -https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/GOVERNANCE.md b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/GOVERNANCE.md
                              deleted file mode 100644
                              index 16ffb93f24bece..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/GOVERNANCE.md
                              +++ /dev/null
                              @@ -1,136 +0,0 @@
                              -### Streams Working Group
                              -
                              -The Node.js Streams is jointly governed by a Working Group
                              -(WG)
                              -that is responsible for high-level guidance of the project.
                              -
                              -The WG has final authority over this project including:
                              -
                              -* Technical direction
                              -* Project governance and process (including this policy)
                              -* Contribution policy
                              -* GitHub repository hosting
                              -* Conduct guidelines
                              -* Maintaining the list of additional Collaborators
                              -
                              -For the current list of WG members, see the project
                              -[README.md](./README.md#current-project-team-members).
                              -
                              -### Collaborators
                              -
                              -The readable-stream GitHub repository is
                              -maintained by the WG and additional Collaborators who are added by the
                              -WG on an ongoing basis.
                              -
                              -Individuals making significant and valuable contributions are made
                              -Collaborators and given commit-access to the project. These
                              -individuals are identified by the WG and their addition as
                              -Collaborators is discussed during the WG meeting.
                              -
                              -_Note:_ If you make a significant contribution and are not considered
                              -for commit-access log an issue or contact a WG member directly and it
                              -will be brought up in the next WG meeting.
                              -
                              -Modifications of the contents of the readable-stream repository are
                              -made on
                              -a collaborative basis. Anybody with a GitHub account may propose a
                              -modification via pull request and it will be considered by the project
                              -Collaborators. All pull requests must be reviewed and accepted by a
                              -Collaborator with sufficient expertise who is able to take full
                              -responsibility for the change. In the case of pull requests proposed
                              -by an existing Collaborator, an additional Collaborator is required
                              -for sign-off. Consensus should be sought if additional Collaborators
                              -participate and there is disagreement around a particular
                              -modification. See _Consensus Seeking Process_ below for further detail
                              -on the consensus model used for governance.
                              -
                              -Collaborators may opt to elevate significant or controversial
                              -modifications, or modifications that have not found consensus to the
                              -WG for discussion by assigning the ***WG-agenda*** tag to a pull
                              -request or issue. The WG should serve as the final arbiter where
                              -required.
                              -
                              -For the current list of Collaborators, see the project
                              -[README.md](./README.md#members).
                              -
                              -### WG Membership
                              -
                              -WG seats are not time-limited.  There is no fixed size of the WG.
                              -However, the expected target is between 6 and 12, to ensure adequate
                              -coverage of important areas of expertise, balanced with the ability to
                              -make decisions efficiently.
                              -
                              -There is no specific set of requirements or qualifications for WG
                              -membership beyond these rules.
                              -
                              -The WG may add additional members to the WG by unanimous consensus.
                              -
                              -A WG member may be removed from the WG by voluntary resignation, or by
                              -unanimous consensus of all other WG members.
                              -
                              -Changes to WG membership should be posted in the agenda, and may be
                              -suggested as any other agenda item (see "WG Meetings" below).
                              -
                              -If an addition or removal is proposed during a meeting, and the full
                              -WG is not in attendance to participate, then the addition or removal
                              -is added to the agenda for the subsequent meeting.  This is to ensure
                              -that all members are given the opportunity to participate in all
                              -membership decisions.  If a WG member is unable to attend a meeting
                              -where a planned membership decision is being made, then their consent
                              -is assumed.
                              -
                              -No more than 1/3 of the WG members may be affiliated with the same
                              -employer.  If removal or resignation of a WG member, or a change of
                              -employment by a WG member, creates a situation where more than 1/3 of
                              -the WG membership shares an employer, then the situation must be
                              -immediately remedied by the resignation or removal of one or more WG
                              -members affiliated with the over-represented employer(s).
                              -
                              -### WG Meetings
                              -
                              -The WG meets occasionally on a Google Hangout On Air. A designated moderator
                              -approved by the WG runs the meeting. Each meeting should be
                              -published to YouTube.
                              -
                              -Items are added to the WG agenda that are considered contentious or
                              -are modifications of governance, contribution policy, WG membership,
                              -or release process.
                              -
                              -The intention of the agenda is not to approve or review all patches;
                              -that should happen continuously on GitHub and be handled by the larger
                              -group of Collaborators.
                              -
                              -Any community member or contributor can ask that something be added to
                              -the next meeting's agenda by logging a GitHub Issue. Any Collaborator,
                              -WG member or the moderator can add the item to the agenda by adding
                              -the ***WG-agenda*** tag to the issue.
                              -
                              -Prior to each WG meeting the moderator will share the Agenda with
                              -members of the WG. WG members can add any items they like to the
                              -agenda at the beginning of each meeting. The moderator and the WG
                              -cannot veto or remove items.
                              -
                              -The WG may invite persons or representatives from certain projects to
                              -participate in a non-voting capacity.
                              -
                              -The moderator is responsible for summarizing the discussion of each
                              -agenda item and sends it as a pull request after the meeting.
                              -
                              -### Consensus Seeking Process
                              -
                              -The WG follows a
                              -[Consensus
                              -Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
                              -decision-making model.
                              -
                              -When an agenda item has appeared to reach a consensus the moderator
                              -will ask "Does anyone object?" as a final call for dissent from the
                              -consensus.
                              -
                              -If an agenda item cannot reach a consensus a WG member can call for
                              -either a closing vote or a vote to table the issue to the next
                              -meeting. The call for a vote must be seconded by a majority of the WG
                              -or else the discussion will continue. Simple majority wins.
                              -
                              -Note that changes to WG membership require a majority consensus.  See
                              -"WG Membership" above.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/LICENSE
                              deleted file mode 100644
                              index 2873b3b2e59507..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/LICENSE
                              +++ /dev/null
                              @@ -1,47 +0,0 @@
                              -Node.js is licensed for use as follows:
                              -
                              -"""
                              -Copyright Node.js contributors. All rights reserved.
                              -
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to
                              -deal in the Software without restriction, including without limitation the
                              -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
                              -sell copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in
                              -all copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
                              -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
                              -IN THE SOFTWARE.
                              -"""
                              -
                              -This license applies to parts of Node.js originating from the
                              -https://github.com/joyent/node repository:
                              -
                              -"""
                              -Copyright Joyent, Inc. and other Node contributors. All rights reserved.
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to
                              -deal in the Software without restriction, including without limitation the
                              -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
                              -sell copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in
                              -all copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
                              -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
                              -IN THE SOFTWARE.
                              -"""
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors-browser.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors-browser.js
                              deleted file mode 100644
                              index fb8e73e1893b10..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors-browser.js
                              +++ /dev/null
                              @@ -1,127 +0,0 @@
                              -'use strict';
                              -
                              -function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
                              -
                              -var codes = {};
                              -
                              -function createErrorType(code, message, Base) {
                              -  if (!Base) {
                              -    Base = Error;
                              -  }
                              -
                              -  function getMessage(arg1, arg2, arg3) {
                              -    if (typeof message === 'string') {
                              -      return message;
                              -    } else {
                              -      return message(arg1, arg2, arg3);
                              -    }
                              -  }
                              -
                              -  var NodeError =
                              -  /*#__PURE__*/
                              -  function (_Base) {
                              -    _inheritsLoose(NodeError, _Base);
                              -
                              -    function NodeError(arg1, arg2, arg3) {
                              -      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;
                              -    }
                              -
                              -    return NodeError;
                              -  }(Base);
                              -
                              -  NodeError.prototype.name = Base.name;
                              -  NodeError.prototype.code = code;
                              -  codes[code] = NodeError;
                              -} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
                              -
                              -
                              -function oneOf(expected, thing) {
                              -  if (Array.isArray(expected)) {
                              -    var len = expected.length;
                              -    expected = expected.map(function (i) {
                              -      return String(i);
                              -    });
                              -
                              -    if (len > 2) {
                              -      return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(', '), ", or ") + expected[len - 1];
                              -    } else if (len === 2) {
                              -      return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);
                              -    } else {
                              -      return "of ".concat(thing, " ").concat(expected[0]);
                              -    }
                              -  } else {
                              -    return "of ".concat(thing, " ").concat(String(expected));
                              -  }
                              -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
                              -
                              -
                              -function startsWith(str, search, pos) {
                              -  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
                              -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
                              -
                              -
                              -function endsWith(str, search, this_len) {
                              -  if (this_len === undefined || this_len > str.length) {
                              -    this_len = str.length;
                              -  }
                              -
                              -  return str.substring(this_len - search.length, this_len) === search;
                              -} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
                              -
                              -
                              -function includes(str, search, start) {
                              -  if (typeof start !== 'number') {
                              -    start = 0;
                              -  }
                              -
                              -  if (start + search.length > str.length) {
                              -    return false;
                              -  } else {
                              -    return str.indexOf(search, start) !== -1;
                              -  }
                              -}
                              -
                              -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {
                              -  return 'The value "' + value + '" is invalid for option "' + name + '"';
                              -}, TypeError);
                              -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {
                              -  // determiner: 'must be' or 'must not be'
                              -  var determiner;
                              -
                              -  if (typeof expected === 'string' && startsWith(expected, 'not ')) {
                              -    determiner = 'must not be';
                              -    expected = expected.replace(/^not /, '');
                              -  } else {
                              -    determiner = 'must be';
                              -  }
                              -
                              -  var msg;
                              -
                              -  if (endsWith(name, ' argument')) {
                              -    // For cases like 'first argument'
                              -    msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
                              -  } else {
                              -    var type = includes(name, '.') ? 'property' : 'argument';
                              -    msg = "The \"".concat(name, "\" ").concat(type, " ").concat(determiner, " ").concat(oneOf(expected, 'type'));
                              -  }
                              -
                              -  msg += ". Received type ".concat(typeof actual);
                              -  return msg;
                              -}, TypeError);
                              -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');
                              -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {
                              -  return 'The ' + name + ' method is not implemented';
                              -});
                              -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');
                              -createErrorType('ERR_STREAM_DESTROYED', function (name) {
                              -  return 'Cannot call ' + name + ' after a stream was destroyed';
                              -});
                              -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');
                              -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');
                              -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');
                              -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);
                              -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) {
                              -  return 'Unknown encoding: ' + arg;
                              -}, TypeError);
                              -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');
                              -module.exports.codes = codes;
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors.js
                              deleted file mode 100644
                              index 8471526d6e7f75..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/errors.js
                              +++ /dev/null
                              @@ -1,116 +0,0 @@
                              -'use strict';
                              -
                              -const codes = {};
                              -
                              -function createErrorType(code, message, Base) {
                              -  if (!Base) {
                              -    Base = Error
                              -  }
                              -
                              -  function getMessage (arg1, arg2, arg3) {
                              -    if (typeof message === 'string') {
                              -      return message
                              -    } else {
                              -      return message(arg1, arg2, arg3)
                              -    }
                              -  }
                              -
                              -  class NodeError extends Base {
                              -    constructor (arg1, arg2, arg3) {
                              -      super(getMessage(arg1, arg2, arg3));
                              -    }
                              -  }
                              -
                              -  NodeError.prototype.name = Base.name;
                              -  NodeError.prototype.code = code;
                              -
                              -  codes[code] = NodeError;
                              -}
                              -
                              -// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
                              -function oneOf(expected, thing) {
                              -  if (Array.isArray(expected)) {
                              -    const len = expected.length;
                              -    expected = expected.map((i) => String(i));
                              -    if (len > 2) {
                              -      return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +
                              -             expected[len - 1];
                              -    } else if (len === 2) {
                              -      return `one of ${thing} ${expected[0]} or ${expected[1]}`;
                              -    } else {
                              -      return `of ${thing} ${expected[0]}`;
                              -    }
                              -  } else {
                              -    return `of ${thing} ${String(expected)}`;
                              -  }
                              -}
                              -
                              -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
                              -function startsWith(str, search, pos) {
                              -	return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;
                              -}
                              -
                              -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
                              -function endsWith(str, search, this_len) {
                              -	if (this_len === undefined || this_len > str.length) {
                              -		this_len = str.length;
                              -	}
                              -	return str.substring(this_len - search.length, this_len) === search;
                              -}
                              -
                              -// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
                              -function includes(str, search, start) {
                              -  if (typeof start !== 'number') {
                              -    start = 0;
                              -  }
                              -
                              -  if (start + search.length > str.length) {
                              -    return false;
                              -  } else {
                              -    return str.indexOf(search, start) !== -1;
                              -  }
                              -}
                              -
                              -createErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {
                              -  return 'The value "' + value + '" is invalid for option "' + name + '"'
                              -}, TypeError);
                              -createErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {
                              -  // determiner: 'must be' or 'must not be'
                              -  let determiner;
                              -  if (typeof expected === 'string' && startsWith(expected, 'not ')) {
                              -    determiner = 'must not be';
                              -    expected = expected.replace(/^not /, '');
                              -  } else {
                              -    determiner = 'must be';
                              -  }
                              -
                              -  let msg;
                              -  if (endsWith(name, ' argument')) {
                              -    // For cases like 'first argument'
                              -    msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;
                              -  } else {
                              -    const type = includes(name, '.') ? 'property' : 'argument';
                              -    msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`;
                              -  }
                              -
                              -  msg += `. Received type ${typeof actual}`;
                              -  return msg;
                              -}, TypeError);
                              -createErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');
                              -createErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {
                              -  return 'The ' + name + ' method is not implemented'
                              -});
                              -createErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');
                              -createErrorType('ERR_STREAM_DESTROYED', function (name) {
                              -  return 'Cannot call ' + name + ' after a stream was destroyed';
                              -});
                              -createErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');
                              -createErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');
                              -createErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');
                              -createErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);
                              -createErrorType('ERR_UNKNOWN_ENCODING', function (arg) {
                              -  return 'Unknown encoding: ' + arg
                              -}, TypeError);
                              -createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');
                              -
                              -module.exports.codes = codes;
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/experimentalWarning.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/experimentalWarning.js
                              deleted file mode 100644
                              index 78e841495bf24d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/experimentalWarning.js
                              +++ /dev/null
                              @@ -1,17 +0,0 @@
                              -'use strict'
                              -
                              -var experimentalWarnings = new Set();
                              -
                              -function emitExperimentalWarning(feature) {
                              -  if (experimentalWarnings.has(feature)) return;
                              -  var msg = feature + ' is an experimental feature. This feature could ' +
                              -       'change at any time';
                              -  experimentalWarnings.add(feature);
                              -  process.emitWarning(msg, 'ExperimentalWarning');
                              -}
                              -
                              -function noop() {}
                              -
                              -module.exports.emitExperimentalWarning = process.emitWarning
                              -  ? emitExperimentalWarning
                              -  : noop;
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_duplex.js
                              deleted file mode 100644
                              index 19abfa604d5ef7..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_duplex.js
                              +++ /dev/null
                              @@ -1,126 +0,0 @@
                              -// Copyright Joyent, Inc. and other Node contributors.
                              -//
                              -// Permission is hereby granted, free of charge, to any person obtaining a
                              -// copy of this software and associated documentation files (the
                              -// "Software"), to deal in the Software without restriction, including
                              -// without limitation the rights to use, copy, modify, merge, publish,
                              -// distribute, sublicense, and/or sell copies of the Software, and to permit
                              -// persons to whom the Software is furnished to do so, subject to the
                              -// following conditions:
                              -//
                              -// The above copyright notice and this permission notice shall be included
                              -// in all copies or substantial portions of the Software.
                              -//
                              -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
                              -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                              -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
                              -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
                              -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
                              -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
                              -// USE OR OTHER DEALINGS IN THE SOFTWARE.
                              -
                              -// a duplex stream is just a stream that is both readable and writable.
                              -// Since JS doesn't have multiple prototypal inheritance, this class
                              -// prototypally inherits from Readable, and then parasitically from
                              -// Writable.
                              -
                              -'use strict';
                              -
                              -/**/
                              -var objectKeys = Object.keys || function (obj) {
                              -  var keys = [];
                              -  for (var key in obj) keys.push(key);
                              -  return keys;
                              -};
                              -/**/
                              -
                              -module.exports = Duplex;
                              -var Readable = require('./_stream_readable');
                              -var Writable = require('./_stream_writable');
                              -require('inherits')(Duplex, Readable);
                              -{
                              -  // Allow the keys array to be GC'ed.
                              -  var keys = objectKeys(Writable.prototype);
                              -  for (var v = 0; v < keys.length; v++) {
                              -    var method = keys[v];
                              -    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
                              -  }
                              -}
                              -function Duplex(options) {
                              -  if (!(this instanceof Duplex)) return new Duplex(options);
                              -  Readable.call(this, options);
                              -  Writable.call(this, options);
                              -  this.allowHalfOpen = true;
                              -  if (options) {
                              -    if (options.readable === false) this.readable = false;
                              -    if (options.writable === false) this.writable = false;
                              -    if (options.allowHalfOpen === false) {
                              -      this.allowHalfOpen = false;
                              -      this.once('end', onend);
                              -    }
                              -  }
                              -}
                              -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState.highWaterMark;
                              -  }
                              -});
                              -Object.defineProperty(Duplex.prototype, 'writableBuffer', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState && this._writableState.getBuffer();
                              -  }
                              -});
                              -Object.defineProperty(Duplex.prototype, 'writableLength', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState.length;
                              -  }
                              -});
                              -
                              -// the no-half-open enforcer
                              -function onend() {
                              -  // If the writable side ended, then we're ok.
                              -  if (this._writableState.ended) return;
                              -
                              -  // no more data can be written.
                              -  // But allow more writes to happen in this tick.
                              -  process.nextTick(onEndNT, this);
                              -}
                              -function onEndNT(self) {
                              -  self.end();
                              -}
                              -Object.defineProperty(Duplex.prototype, 'destroyed', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    if (this._readableState === undefined || this._writableState === undefined) {
                              -      return false;
                              -    }
                              -    return this._readableState.destroyed && this._writableState.destroyed;
                              -  },
                              -  set: function set(value) {
                              -    // we ignore the value if the stream
                              -    // has not been initialized yet
                              -    if (this._readableState === undefined || this._writableState === undefined) {
                              -      return;
                              -    }
                              -
                              -    // backward compatibility, the user is explicitly
                              -    // managing destroyed
                              -    this._readableState.destroyed = value;
                              -    this._writableState.destroyed = value;
                              -  }
                              -});
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_passthrough.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_passthrough.js
                              deleted file mode 100644
                              index 24a6bdde2903fa..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_passthrough.js
                              +++ /dev/null
                              @@ -1,37 +0,0 @@
                              -// Copyright Joyent, Inc. and other Node contributors.
                              -//
                              -// Permission is hereby granted, free of charge, to any person obtaining a
                              -// copy of this software and associated documentation files (the
                              -// "Software"), to deal in the Software without restriction, including
                              -// without limitation the rights to use, copy, modify, merge, publish,
                              -// distribute, sublicense, and/or sell copies of the Software, and to permit
                              -// persons to whom the Software is furnished to do so, subject to the
                              -// following conditions:
                              -//
                              -// The above copyright notice and this permission notice shall be included
                              -// in all copies or substantial portions of the Software.
                              -//
                              -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
                              -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                              -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
                              -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
                              -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
                              -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
                              -// USE OR OTHER DEALINGS IN THE SOFTWARE.
                              -
                              -// a passthrough stream.
                              -// basically just the most minimal sort of Transform stream.
                              -// Every written chunk gets output as-is.
                              -
                              -'use strict';
                              -
                              -module.exports = PassThrough;
                              -var Transform = require('./_stream_transform');
                              -require('inherits')(PassThrough, Transform);
                              -function PassThrough(options) {
                              -  if (!(this instanceof PassThrough)) return new PassThrough(options);
                              -  Transform.call(this, options);
                              -}
                              -PassThrough.prototype._transform = function (chunk, encoding, cb) {
                              -  cb(null, chunk);
                              -};
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_readable.js
                              deleted file mode 100644
                              index df1f608d532606..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_readable.js
                              +++ /dev/null
                              @@ -1,1027 +0,0 @@
                              -// Copyright Joyent, Inc. and other Node contributors.
                              -//
                              -// Permission is hereby granted, free of charge, to any person obtaining a
                              -// copy of this software and associated documentation files (the
                              -// "Software"), to deal in the Software without restriction, including
                              -// without limitation the rights to use, copy, modify, merge, publish,
                              -// distribute, sublicense, and/or sell copies of the Software, and to permit
                              -// persons to whom the Software is furnished to do so, subject to the
                              -// following conditions:
                              -//
                              -// The above copyright notice and this permission notice shall be included
                              -// in all copies or substantial portions of the Software.
                              -//
                              -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
                              -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                              -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
                              -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
                              -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
                              -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
                              -// USE OR OTHER DEALINGS IN THE SOFTWARE.
                              -
                              -'use strict';
                              -
                              -module.exports = Readable;
                              -
                              -/**/
                              -var Duplex;
                              -/**/
                              -
                              -Readable.ReadableState = ReadableState;
                              -
                              -/**/
                              -var EE = require('events').EventEmitter;
                              -var EElistenerCount = function EElistenerCount(emitter, type) {
                              -  return emitter.listeners(type).length;
                              -};
                              -/**/
                              -
                              -/**/
                              -var Stream = require('./internal/streams/stream');
                              -/**/
                              -
                              -var Buffer = require('buffer').Buffer;
                              -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
                              -function _uint8ArrayToBuffer(chunk) {
                              -  return Buffer.from(chunk);
                              -}
                              -function _isUint8Array(obj) {
                              -  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
                              -}
                              -
                              -/**/
                              -var debugUtil = require('util');
                              -var debug;
                              -if (debugUtil && debugUtil.debuglog) {
                              -  debug = debugUtil.debuglog('stream');
                              -} else {
                              -  debug = function debug() {};
                              -}
                              -/**/
                              -
                              -var BufferList = require('./internal/streams/buffer_list');
                              -var destroyImpl = require('./internal/streams/destroy');
                              -var _require = require('./internal/streams/state'),
                              -  getHighWaterMark = _require.getHighWaterMark;
                              -var _require$codes = require('../errors').codes,
                              -  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
                              -  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,
                              -  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
                              -  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
                              -
                              -// Lazy loaded to improve the startup performance.
                              -var StringDecoder;
                              -var createReadableStreamAsyncIterator;
                              -var from;
                              -require('inherits')(Readable, Stream);
                              -var errorOrDestroy = destroyImpl.errorOrDestroy;
                              -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
                              -function prependListener(emitter, event, fn) {
                              -  // Sadly this is not cacheable as some libraries bundle their own
                              -  // event emitter implementation with them.
                              -  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
                              -
                              -  // This is a hack to make sure that our error handler is attached before any
                              -  // userland ones.  NEVER DO THIS. This is here only because this code needs
                              -  // to continue to work with older versions of Node.js that do not include
                              -  // the prependListener() method. The goal is to eventually remove this hack.
                              -  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
                              -}
                              -function ReadableState(options, stream, isDuplex) {
                              -  Duplex = Duplex || require('./_stream_duplex');
                              -  options = options || {};
                              -
                              -  // Duplex streams are both readable and writable, but share
                              -  // the same options object.
                              -  // However, some cases require setting options to different
                              -  // values for the readable and the writable sides of the duplex stream.
                              -  // These options can be provided separately as readableXXX and writableXXX.
                              -  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
                              -
                              -  // object stream flag. Used to make read(n) ignore n and to
                              -  // make all the buffer merging and length checks go away
                              -  this.objectMode = !!options.objectMode;
                              -  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
                              -
                              -  // the point at which it stops calling _read() to fill the buffer
                              -  // Note: 0 is a valid value, means "don't call _read preemptively ever"
                              -  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);
                              -
                              -  // A linked list is used to store data chunks instead of an array because the
                              -  // linked list can remove elements from the beginning faster than
                              -  // array.shift()
                              -  this.buffer = new BufferList();
                              -  this.length = 0;
                              -  this.pipes = null;
                              -  this.pipesCount = 0;
                              -  this.flowing = null;
                              -  this.ended = false;
                              -  this.endEmitted = false;
                              -  this.reading = false;
                              -
                              -  // a flag to be able to tell if the event 'readable'/'data' is emitted
                              -  // immediately, or on a later tick.  We set this to true at first, because
                              -  // any actions that shouldn't happen until "later" should generally also
                              -  // not happen before the first read call.
                              -  this.sync = true;
                              -
                              -  // whenever we return null, then we set a flag to say
                              -  // that we're awaiting a 'readable' event emission.
                              -  this.needReadable = false;
                              -  this.emittedReadable = false;
                              -  this.readableListening = false;
                              -  this.resumeScheduled = false;
                              -  this.paused = true;
                              -
                              -  // Should close be emitted on destroy. Defaults to true.
                              -  this.emitClose = options.emitClose !== false;
                              -
                              -  // Should .destroy() be called after 'end' (and potentially 'finish')
                              -  this.autoDestroy = !!options.autoDestroy;
                              -
                              -  // has it been destroyed
                              -  this.destroyed = false;
                              -
                              -  // Crypto is kind of old and crusty.  Historically, its default string
                              -  // encoding is 'binary' so we have to make this configurable.
                              -  // Everything else in the universe uses 'utf8', though.
                              -  this.defaultEncoding = options.defaultEncoding || 'utf8';
                              -
                              -  // the number of writers that are awaiting a drain event in .pipe()s
                              -  this.awaitDrain = 0;
                              -
                              -  // if true, a maybeReadMore has been scheduled
                              -  this.readingMore = false;
                              -  this.decoder = null;
                              -  this.encoding = null;
                              -  if (options.encoding) {
                              -    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
                              -    this.decoder = new StringDecoder(options.encoding);
                              -    this.encoding = options.encoding;
                              -  }
                              -}
                              -function Readable(options) {
                              -  Duplex = Duplex || require('./_stream_duplex');
                              -  if (!(this instanceof Readable)) return new Readable(options);
                              -
                              -  // Checking for a Stream.Duplex instance is faster here instead of inside
                              -  // the ReadableState constructor, at least with V8 6.5
                              -  var isDuplex = this instanceof Duplex;
                              -  this._readableState = new ReadableState(options, this, isDuplex);
                              -
                              -  // legacy
                              -  this.readable = true;
                              -  if (options) {
                              -    if (typeof options.read === 'function') this._read = options.read;
                              -    if (typeof options.destroy === 'function') this._destroy = options.destroy;
                              -  }
                              -  Stream.call(this);
                              -}
                              -Object.defineProperty(Readable.prototype, 'destroyed', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    if (this._readableState === undefined) {
                              -      return false;
                              -    }
                              -    return this._readableState.destroyed;
                              -  },
                              -  set: function set(value) {
                              -    // we ignore the value if the stream
                              -    // has not been initialized yet
                              -    if (!this._readableState) {
                              -      return;
                              -    }
                              -
                              -    // backward compatibility, the user is explicitly
                              -    // managing destroyed
                              -    this._readableState.destroyed = value;
                              -  }
                              -});
                              -Readable.prototype.destroy = destroyImpl.destroy;
                              -Readable.prototype._undestroy = destroyImpl.undestroy;
                              -Readable.prototype._destroy = function (err, cb) {
                              -  cb(err);
                              -};
                              -
                              -// Manually shove something into the read() buffer.
                              -// This returns true if the highWaterMark has not been hit yet,
                              -// similar to how Writable.write() returns true if you should
                              -// write() some more.
                              -Readable.prototype.push = function (chunk, encoding) {
                              -  var state = this._readableState;
                              -  var skipChunkCheck;
                              -  if (!state.objectMode) {
                              -    if (typeof chunk === 'string') {
                              -      encoding = encoding || state.defaultEncoding;
                              -      if (encoding !== state.encoding) {
                              -        chunk = Buffer.from(chunk, encoding);
                              -        encoding = '';
                              -      }
                              -      skipChunkCheck = true;
                              -    }
                              -  } else {
                              -    skipChunkCheck = true;
                              -  }
                              -  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
                              -};
                              -
                              -// Unshift should *always* be something directly out of read()
                              -Readable.prototype.unshift = function (chunk) {
                              -  return readableAddChunk(this, chunk, null, true, false);
                              -};
                              -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
                              -  debug('readableAddChunk', chunk);
                              -  var state = stream._readableState;
                              -  if (chunk === null) {
                              -    state.reading = false;
                              -    onEofChunk(stream, state);
                              -  } else {
                              -    var er;
                              -    if (!skipChunkCheck) er = chunkInvalid(state, chunk);
                              -    if (er) {
                              -      errorOrDestroy(stream, er);
                              -    } else if (state.objectMode || chunk && chunk.length > 0) {
                              -      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
                              -        chunk = _uint8ArrayToBuffer(chunk);
                              -      }
                              -      if (addToFront) {
                              -        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);
                              -      } else if (state.ended) {
                              -        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());
                              -      } else if (state.destroyed) {
                              -        return false;
                              -      } else {
                              -        state.reading = false;
                              -        if (state.decoder && !encoding) {
                              -          chunk = state.decoder.write(chunk);
                              -          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
                              -        } else {
                              -          addChunk(stream, state, chunk, false);
                              -        }
                              -      }
                              -    } else if (!addToFront) {
                              -      state.reading = false;
                              -      maybeReadMore(stream, state);
                              -    }
                              -  }
                              -
                              -  // We can push more data if we are below the highWaterMark.
                              -  // Also, if we have no data yet, we can stand some more bytes.
                              -  // This is to work around cases where hwm=0, such as the repl.
                              -  return !state.ended && (state.length < state.highWaterMark || state.length === 0);
                              -}
                              -function addChunk(stream, state, chunk, addToFront) {
                              -  if (state.flowing && state.length === 0 && !state.sync) {
                              -    state.awaitDrain = 0;
                              -    stream.emit('data', chunk);
                              -  } else {
                              -    // update the buffer info.
                              -    state.length += state.objectMode ? 1 : chunk.length;
                              -    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
                              -    if (state.needReadable) emitReadable(stream);
                              -  }
                              -  maybeReadMore(stream, state);
                              -}
                              -function chunkInvalid(state, chunk) {
                              -  var er;
                              -  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
                              -    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);
                              -  }
                              -  return er;
                              -}
                              -Readable.prototype.isPaused = function () {
                              -  return this._readableState.flowing === false;
                              -};
                              -
                              -// backwards compatibility.
                              -Readable.prototype.setEncoding = function (enc) {
                              -  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
                              -  var decoder = new StringDecoder(enc);
                              -  this._readableState.decoder = decoder;
                              -  // If setEncoding(null), decoder.encoding equals utf8
                              -  this._readableState.encoding = this._readableState.decoder.encoding;
                              -
                              -  // Iterate over current buffer to convert already stored Buffers:
                              -  var p = this._readableState.buffer.head;
                              -  var content = '';
                              -  while (p !== null) {
                              -    content += decoder.write(p.data);
                              -    p = p.next;
                              -  }
                              -  this._readableState.buffer.clear();
                              -  if (content !== '') this._readableState.buffer.push(content);
                              -  this._readableState.length = content.length;
                              -  return this;
                              -};
                              -
                              -// Don't raise the hwm > 1GB
                              -var MAX_HWM = 0x40000000;
                              -function computeNewHighWaterMark(n) {
                              -  if (n >= MAX_HWM) {
                              -    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.
                              -    n = MAX_HWM;
                              -  } else {
                              -    // Get the next highest power of 2 to prevent increasing hwm excessively in
                              -    // tiny amounts
                              -    n--;
                              -    n |= n >>> 1;
                              -    n |= n >>> 2;
                              -    n |= n >>> 4;
                              -    n |= n >>> 8;
                              -    n |= n >>> 16;
                              -    n++;
                              -  }
                              -  return n;
                              -}
                              -
                              -// This function is designed to be inlinable, so please take care when making
                              -// changes to the function body.
                              -function howMuchToRead(n, state) {
                              -  if (n <= 0 || state.length === 0 && state.ended) return 0;
                              -  if (state.objectMode) return 1;
                              -  if (n !== n) {
                              -    // Only flow one buffer at a time
                              -    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
                              -  }
                              -  // If we're asking for more than the current hwm, then raise the hwm.
                              -  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
                              -  if (n <= state.length) return n;
                              -  // Don't have enough
                              -  if (!state.ended) {
                              -    state.needReadable = true;
                              -    return 0;
                              -  }
                              -  return state.length;
                              -}
                              -
                              -// you can override either this method, or the async _read(n) below.
                              -Readable.prototype.read = function (n) {
                              -  debug('read', n);
                              -  n = parseInt(n, 10);
                              -  var state = this._readableState;
                              -  var nOrig = n;
                              -  if (n !== 0) state.emittedReadable = false;
                              -
                              -  // if we're doing read(0) to trigger a readable event, but we
                              -  // already have a bunch of data in the buffer, then just trigger
                              -  // the 'readable' event and move on.
                              -  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {
                              -    debug('read: emitReadable', state.length, state.ended);
                              -    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
                              -    return null;
                              -  }
                              -  n = howMuchToRead(n, state);
                              -
                              -  // if we've ended, and we're now clear, then finish it up.
                              -  if (n === 0 && state.ended) {
                              -    if (state.length === 0) endReadable(this);
                              -    return null;
                              -  }
                              -
                              -  // All the actual chunk generation logic needs to be
                              -  // *below* the call to _read.  The reason is that in certain
                              -  // synthetic stream cases, such as passthrough streams, _read
                              -  // may be a completely synchronous operation which may change
                              -  // the state of the read buffer, providing enough data when
                              -  // before there was *not* enough.
                              -  //
                              -  // So, the steps are:
                              -  // 1. Figure out what the state of things will be after we do
                              -  // a read from the buffer.
                              -  //
                              -  // 2. If that resulting state will trigger a _read, then call _read.
                              -  // Note that this may be asynchronous, or synchronous.  Yes, it is
                              -  // deeply ugly to write APIs this way, but that still doesn't mean
                              -  // that the Readable class should behave improperly, as streams are
                              -  // designed to be sync/async agnostic.
                              -  // Take note if the _read call is sync or async (ie, if the read call
                              -  // has returned yet), so that we know whether or not it's safe to emit
                              -  // 'readable' etc.
                              -  //
                              -  // 3. Actually pull the requested chunks out of the buffer and return.
                              -
                              -  // if we need a readable event, then we need to do some reading.
                              -  var doRead = state.needReadable;
                              -  debug('need readable', doRead);
                              -
                              -  // if we currently have less than the highWaterMark, then also read some
                              -  if (state.length === 0 || state.length - n < state.highWaterMark) {
                              -    doRead = true;
                              -    debug('length less than watermark', doRead);
                              -  }
                              -
                              -  // however, if we've ended, then there's no point, and if we're already
                              -  // reading, then it's unnecessary.
                              -  if (state.ended || state.reading) {
                              -    doRead = false;
                              -    debug('reading or ended', doRead);
                              -  } else if (doRead) {
                              -    debug('do read');
                              -    state.reading = true;
                              -    state.sync = true;
                              -    // if the length is currently zero, then we *need* a readable event.
                              -    if (state.length === 0) state.needReadable = true;
                              -    // call internal read method
                              -    this._read(state.highWaterMark);
                              -    state.sync = false;
                              -    // If _read pushed data synchronously, then `reading` will be false,
                              -    // and we need to re-evaluate how much data we can return to the user.
                              -    if (!state.reading) n = howMuchToRead(nOrig, state);
                              -  }
                              -  var ret;
                              -  if (n > 0) ret = fromList(n, state);else ret = null;
                              -  if (ret === null) {
                              -    state.needReadable = state.length <= state.highWaterMark;
                              -    n = 0;
                              -  } else {
                              -    state.length -= n;
                              -    state.awaitDrain = 0;
                              -  }
                              -  if (state.length === 0) {
                              -    // If we have nothing in the buffer, then we want to know
                              -    // as soon as we *do* get something into the buffer.
                              -    if (!state.ended) state.needReadable = true;
                              -
                              -    // If we tried to read() past the EOF, then emit end on the next tick.
                              -    if (nOrig !== n && state.ended) endReadable(this);
                              -  }
                              -  if (ret !== null) this.emit('data', ret);
                              -  return ret;
                              -};
                              -function onEofChunk(stream, state) {
                              -  debug('onEofChunk');
                              -  if (state.ended) return;
                              -  if (state.decoder) {
                              -    var chunk = state.decoder.end();
                              -    if (chunk && chunk.length) {
                              -      state.buffer.push(chunk);
                              -      state.length += state.objectMode ? 1 : chunk.length;
                              -    }
                              -  }
                              -  state.ended = true;
                              -  if (state.sync) {
                              -    // if we are sync, wait until next tick to emit the data.
                              -    // Otherwise we risk emitting data in the flow()
                              -    // the readable code triggers during a read() call
                              -    emitReadable(stream);
                              -  } else {
                              -    // emit 'readable' now to make sure it gets picked up.
                              -    state.needReadable = false;
                              -    if (!state.emittedReadable) {
                              -      state.emittedReadable = true;
                              -      emitReadable_(stream);
                              -    }
                              -  }
                              -}
                              -
                              -// Don't emit readable right away in sync mode, because this can trigger
                              -// another read() call => stack overflow.  This way, it might trigger
                              -// a nextTick recursion warning, but that's not so bad.
                              -function emitReadable(stream) {
                              -  var state = stream._readableState;
                              -  debug('emitReadable', state.needReadable, state.emittedReadable);
                              -  state.needReadable = false;
                              -  if (!state.emittedReadable) {
                              -    debug('emitReadable', state.flowing);
                              -    state.emittedReadable = true;
                              -    process.nextTick(emitReadable_, stream);
                              -  }
                              -}
                              -function emitReadable_(stream) {
                              -  var state = stream._readableState;
                              -  debug('emitReadable_', state.destroyed, state.length, state.ended);
                              -  if (!state.destroyed && (state.length || state.ended)) {
                              -    stream.emit('readable');
                              -    state.emittedReadable = false;
                              -  }
                              -
                              -  // The stream needs another readable event if
                              -  // 1. It is not flowing, as the flow mechanism will take
                              -  //    care of it.
                              -  // 2. It is not ended.
                              -  // 3. It is below the highWaterMark, so we can schedule
                              -  //    another readable later.
                              -  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;
                              -  flow(stream);
                              -}
                              -
                              -// at this point, the user has presumably seen the 'readable' event,
                              -// and called read() to consume some data.  that may have triggered
                              -// in turn another _read(n) call, in which case reading = true if
                              -// it's in progress.
                              -// However, if we're not ended, or reading, and the length < hwm,
                              -// then go ahead and try to read some more preemptively.
                              -function maybeReadMore(stream, state) {
                              -  if (!state.readingMore) {
                              -    state.readingMore = true;
                              -    process.nextTick(maybeReadMore_, stream, state);
                              -  }
                              -}
                              -function maybeReadMore_(stream, state) {
                              -  // Attempt to read more data if we should.
                              -  //
                              -  // The conditions for reading more data are (one of):
                              -  // - Not enough data buffered (state.length < state.highWaterMark). The loop
                              -  //   is responsible for filling the buffer with enough data if such data
                              -  //   is available. If highWaterMark is 0 and we are not in the flowing mode
                              -  //   we should _not_ attempt to buffer any extra data. We'll get more data
                              -  //   when the stream consumer calls read() instead.
                              -  // - No data in the buffer, and the stream is in flowing mode. In this mode
                              -  //   the loop below is responsible for ensuring read() is called. Failing to
                              -  //   call read here would abort the flow and there's no other mechanism for
                              -  //   continuing the flow if the stream consumer has just subscribed to the
                              -  //   'data' event.
                              -  //
                              -  // In addition to the above conditions to keep reading data, the following
                              -  // conditions prevent the data from being read:
                              -  // - The stream has ended (state.ended).
                              -  // - There is already a pending 'read' operation (state.reading). This is a
                              -  //   case where the the stream has called the implementation defined _read()
                              -  //   method, but they are processing the call asynchronously and have _not_
                              -  //   called push() with new data. In this case we skip performing more
                              -  //   read()s. The execution ends in this method again after the _read() ends
                              -  //   up calling push() with more data.
                              -  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {
                              -    var len = state.length;
                              -    debug('maybeReadMore read 0');
                              -    stream.read(0);
                              -    if (len === state.length)
                              -      // didn't get any data, stop spinning.
                              -      break;
                              -  }
                              -  state.readingMore = false;
                              -}
                              -
                              -// abstract method.  to be overridden in specific implementation classes.
                              -// call cb(er, data) where data is <= n in length.
                              -// for virtual (non-string, non-buffer) streams, "length" is somewhat
                              -// arbitrary, and perhaps not very meaningful.
                              -Readable.prototype._read = function (n) {
                              -  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));
                              -};
                              -Readable.prototype.pipe = function (dest, pipeOpts) {
                              -  var src = this;
                              -  var state = this._readableState;
                              -  switch (state.pipesCount) {
                              -    case 0:
                              -      state.pipes = dest;
                              -      break;
                              -    case 1:
                              -      state.pipes = [state.pipes, dest];
                              -      break;
                              -    default:
                              -      state.pipes.push(dest);
                              -      break;
                              -  }
                              -  state.pipesCount += 1;
                              -  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
                              -  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
                              -  var endFn = doEnd ? onend : unpipe;
                              -  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);
                              -  dest.on('unpipe', onunpipe);
                              -  function onunpipe(readable, unpipeInfo) {
                              -    debug('onunpipe');
                              -    if (readable === src) {
                              -      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
                              -        unpipeInfo.hasUnpiped = true;
                              -        cleanup();
                              -      }
                              -    }
                              -  }
                              -  function onend() {
                              -    debug('onend');
                              -    dest.end();
                              -  }
                              -
                              -  // when the dest drains, it reduces the awaitDrain counter
                              -  // on the source.  This would be more elegant with a .once()
                              -  // handler in flow(), but adding and removing repeatedly is
                              -  // too slow.
                              -  var ondrain = pipeOnDrain(src);
                              -  dest.on('drain', ondrain);
                              -  var cleanedUp = false;
                              -  function cleanup() {
                              -    debug('cleanup');
                              -    // cleanup event handlers once the pipe is broken
                              -    dest.removeListener('close', onclose);
                              -    dest.removeListener('finish', onfinish);
                              -    dest.removeListener('drain', ondrain);
                              -    dest.removeListener('error', onerror);
                              -    dest.removeListener('unpipe', onunpipe);
                              -    src.removeListener('end', onend);
                              -    src.removeListener('end', unpipe);
                              -    src.removeListener('data', ondata);
                              -    cleanedUp = true;
                              -
                              -    // if the reader is waiting for a drain event from this
                              -    // specific writer, then it would cause it to never start
                              -    // flowing again.
                              -    // So, if this is awaiting a drain, then we just call it now.
                              -    // If we don't know, then assume that we are waiting for one.
                              -    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
                              -  }
                              -  src.on('data', ondata);
                              -  function ondata(chunk) {
                              -    debug('ondata');
                              -    var ret = dest.write(chunk);
                              -    debug('dest.write', ret);
                              -    if (ret === false) {
                              -      // If the user unpiped during `dest.write()`, it is possible
                              -      // to get stuck in a permanently paused state if that write
                              -      // also returned false.
                              -      // => Check whether `dest` is still a piping destination.
                              -      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
                              -        debug('false write response, pause', state.awaitDrain);
                              -        state.awaitDrain++;
                              -      }
                              -      src.pause();
                              -    }
                              -  }
                              -
                              -  // if the dest has an error, then stop piping into it.
                              -  // however, don't suppress the throwing behavior for this.
                              -  function onerror(er) {
                              -    debug('onerror', er);
                              -    unpipe();
                              -    dest.removeListener('error', onerror);
                              -    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);
                              -  }
                              -
                              -  // Make sure our error handler is attached before userland ones.
                              -  prependListener(dest, 'error', onerror);
                              -
                              -  // Both close and finish should trigger unpipe, but only once.
                              -  function onclose() {
                              -    dest.removeListener('finish', onfinish);
                              -    unpipe();
                              -  }
                              -  dest.once('close', onclose);
                              -  function onfinish() {
                              -    debug('onfinish');
                              -    dest.removeListener('close', onclose);
                              -    unpipe();
                              -  }
                              -  dest.once('finish', onfinish);
                              -  function unpipe() {
                              -    debug('unpipe');
                              -    src.unpipe(dest);
                              -  }
                              -
                              -  // tell the dest that it's being piped to
                              -  dest.emit('pipe', src);
                              -
                              -  // start the flow if it hasn't been started already.
                              -  if (!state.flowing) {
                              -    debug('pipe resume');
                              -    src.resume();
                              -  }
                              -  return dest;
                              -};
                              -function pipeOnDrain(src) {
                              -  return function pipeOnDrainFunctionResult() {
                              -    var state = src._readableState;
                              -    debug('pipeOnDrain', state.awaitDrain);
                              -    if (state.awaitDrain) state.awaitDrain--;
                              -    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
                              -      state.flowing = true;
                              -      flow(src);
                              -    }
                              -  };
                              -}
                              -Readable.prototype.unpipe = function (dest) {
                              -  var state = this._readableState;
                              -  var unpipeInfo = {
                              -    hasUnpiped: false
                              -  };
                              -
                              -  // if we're not piping anywhere, then do nothing.
                              -  if (state.pipesCount === 0) return this;
                              -
                              -  // just one destination.  most common case.
                              -  if (state.pipesCount === 1) {
                              -    // passed in one, but it's not the right one.
                              -    if (dest && dest !== state.pipes) return this;
                              -    if (!dest) dest = state.pipes;
                              -
                              -    // got a match.
                              -    state.pipes = null;
                              -    state.pipesCount = 0;
                              -    state.flowing = false;
                              -    if (dest) dest.emit('unpipe', this, unpipeInfo);
                              -    return this;
                              -  }
                              -
                              -  // slow case. multiple pipe destinations.
                              -
                              -  if (!dest) {
                              -    // remove all.
                              -    var dests = state.pipes;
                              -    var len = state.pipesCount;
                              -    state.pipes = null;
                              -    state.pipesCount = 0;
                              -    state.flowing = false;
                              -    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {
                              -      hasUnpiped: false
                              -    });
                              -    return this;
                              -  }
                              -
                              -  // try to find the right one.
                              -  var index = indexOf(state.pipes, dest);
                              -  if (index === -1) return this;
                              -  state.pipes.splice(index, 1);
                              -  state.pipesCount -= 1;
                              -  if (state.pipesCount === 1) state.pipes = state.pipes[0];
                              -  dest.emit('unpipe', this, unpipeInfo);
                              -  return this;
                              -};
                              -
                              -// set up data events if they are asked for
                              -// Ensure readable listeners eventually get something
                              -Readable.prototype.on = function (ev, fn) {
                              -  var res = Stream.prototype.on.call(this, ev, fn);
                              -  var state = this._readableState;
                              -  if (ev === 'data') {
                              -    // update readableListening so that resume() may be a no-op
                              -    // a few lines down. This is needed to support once('readable').
                              -    state.readableListening = this.listenerCount('readable') > 0;
                              -
                              -    // Try start flowing on next tick if stream isn't explicitly paused
                              -    if (state.flowing !== false) this.resume();
                              -  } else if (ev === 'readable') {
                              -    if (!state.endEmitted && !state.readableListening) {
                              -      state.readableListening = state.needReadable = true;
                              -      state.flowing = false;
                              -      state.emittedReadable = false;
                              -      debug('on readable', state.length, state.reading);
                              -      if (state.length) {
                              -        emitReadable(this);
                              -      } else if (!state.reading) {
                              -        process.nextTick(nReadingNextTick, this);
                              -      }
                              -    }
                              -  }
                              -  return res;
                              -};
                              -Readable.prototype.addListener = Readable.prototype.on;
                              -Readable.prototype.removeListener = function (ev, fn) {
                              -  var res = Stream.prototype.removeListener.call(this, ev, fn);
                              -  if (ev === 'readable') {
                              -    // We need to check if there is someone still listening to
                              -    // readable and reset the state. However this needs to happen
                              -    // after readable has been emitted but before I/O (nextTick) to
                              -    // support once('readable', fn) cycles. This means that calling
                              -    // resume within the same tick will have no
                              -    // effect.
                              -    process.nextTick(updateReadableListening, this);
                              -  }
                              -  return res;
                              -};
                              -Readable.prototype.removeAllListeners = function (ev) {
                              -  var res = Stream.prototype.removeAllListeners.apply(this, arguments);
                              -  if (ev === 'readable' || ev === undefined) {
                              -    // We need to check if there is someone still listening to
                              -    // readable and reset the state. However this needs to happen
                              -    // after readable has been emitted but before I/O (nextTick) to
                              -    // support once('readable', fn) cycles. This means that calling
                              -    // resume within the same tick will have no
                              -    // effect.
                              -    process.nextTick(updateReadableListening, this);
                              -  }
                              -  return res;
                              -};
                              -function updateReadableListening(self) {
                              -  var state = self._readableState;
                              -  state.readableListening = self.listenerCount('readable') > 0;
                              -  if (state.resumeScheduled && !state.paused) {
                              -    // flowing needs to be set to true now, otherwise
                              -    // the upcoming resume will not flow.
                              -    state.flowing = true;
                              -
                              -    // crude way to check if we should resume
                              -  } else if (self.listenerCount('data') > 0) {
                              -    self.resume();
                              -  }
                              -}
                              -function nReadingNextTick(self) {
                              -  debug('readable nexttick read 0');
                              -  self.read(0);
                              -}
                              -
                              -// pause() and resume() are remnants of the legacy readable stream API
                              -// If the user uses them, then switch into old mode.
                              -Readable.prototype.resume = function () {
                              -  var state = this._readableState;
                              -  if (!state.flowing) {
                              -    debug('resume');
                              -    // we flow only if there is no one listening
                              -    // for readable, but we still have to call
                              -    // resume()
                              -    state.flowing = !state.readableListening;
                              -    resume(this, state);
                              -  }
                              -  state.paused = false;
                              -  return this;
                              -};
                              -function resume(stream, state) {
                              -  if (!state.resumeScheduled) {
                              -    state.resumeScheduled = true;
                              -    process.nextTick(resume_, stream, state);
                              -  }
                              -}
                              -function resume_(stream, state) {
                              -  debug('resume', state.reading);
                              -  if (!state.reading) {
                              -    stream.read(0);
                              -  }
                              -  state.resumeScheduled = false;
                              -  stream.emit('resume');
                              -  flow(stream);
                              -  if (state.flowing && !state.reading) stream.read(0);
                              -}
                              -Readable.prototype.pause = function () {
                              -  debug('call pause flowing=%j', this._readableState.flowing);
                              -  if (this._readableState.flowing !== false) {
                              -    debug('pause');
                              -    this._readableState.flowing = false;
                              -    this.emit('pause');
                              -  }
                              -  this._readableState.paused = true;
                              -  return this;
                              -};
                              -function flow(stream) {
                              -  var state = stream._readableState;
                              -  debug('flow', state.flowing);
                              -  while (state.flowing && stream.read() !== null);
                              -}
                              -
                              -// wrap an old-style stream as the async data source.
                              -// This is *not* part of the readable stream interface.
                              -// It is an ugly unfortunate mess of history.
                              -Readable.prototype.wrap = function (stream) {
                              -  var _this = this;
                              -  var state = this._readableState;
                              -  var paused = false;
                              -  stream.on('end', function () {
                              -    debug('wrapped end');
                              -    if (state.decoder && !state.ended) {
                              -      var chunk = state.decoder.end();
                              -      if (chunk && chunk.length) _this.push(chunk);
                              -    }
                              -    _this.push(null);
                              -  });
                              -  stream.on('data', function (chunk) {
                              -    debug('wrapped data');
                              -    if (state.decoder) chunk = state.decoder.write(chunk);
                              -
                              -    // don't skip over falsy values in objectMode
                              -    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
                              -    var ret = _this.push(chunk);
                              -    if (!ret) {
                              -      paused = true;
                              -      stream.pause();
                              -    }
                              -  });
                              -
                              -  // proxy all the other methods.
                              -  // important when wrapping filters and duplexes.
                              -  for (var i in stream) {
                              -    if (this[i] === undefined && typeof stream[i] === 'function') {
                              -      this[i] = function methodWrap(method) {
                              -        return function methodWrapReturnFunction() {
                              -          return stream[method].apply(stream, arguments);
                              -        };
                              -      }(i);
                              -    }
                              -  }
                              -
                              -  // proxy certain important events.
                              -  for (var n = 0; n < kProxyEvents.length; n++) {
                              -    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
                              -  }
                              -
                              -  // when we try to consume some more bytes, simply unpause the
                              -  // underlying stream.
                              -  this._read = function (n) {
                              -    debug('wrapped _read', n);
                              -    if (paused) {
                              -      paused = false;
                              -      stream.resume();
                              -    }
                              -  };
                              -  return this;
                              -};
                              -if (typeof Symbol === 'function') {
                              -  Readable.prototype[Symbol.asyncIterator] = function () {
                              -    if (createReadableStreamAsyncIterator === undefined) {
                              -      createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');
                              -    }
                              -    return createReadableStreamAsyncIterator(this);
                              -  };
                              -}
                              -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._readableState.highWaterMark;
                              -  }
                              -});
                              -Object.defineProperty(Readable.prototype, 'readableBuffer', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._readableState && this._readableState.buffer;
                              -  }
                              -});
                              -Object.defineProperty(Readable.prototype, 'readableFlowing', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._readableState.flowing;
                              -  },
                              -  set: function set(state) {
                              -    if (this._readableState) {
                              -      this._readableState.flowing = state;
                              -    }
                              -  }
                              -});
                              -
                              -// exposed for testing purposes only.
                              -Readable._fromList = fromList;
                              -Object.defineProperty(Readable.prototype, 'readableLength', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._readableState.length;
                              -  }
                              -});
                              -
                              -// Pluck off n bytes from an array of buffers.
                              -// Length is the combined lengths of all the buffers in the list.
                              -// This function is designed to be inlinable, so please take care when making
                              -// changes to the function body.
                              -function fromList(n, state) {
                              -  // nothing buffered
                              -  if (state.length === 0) return null;
                              -  var ret;
                              -  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
                              -    // read it all, truncate the list
                              -    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);
                              -    state.buffer.clear();
                              -  } else {
                              -    // read part of list
                              -    ret = state.buffer.consume(n, state.decoder);
                              -  }
                              -  return ret;
                              -}
                              -function endReadable(stream) {
                              -  var state = stream._readableState;
                              -  debug('endReadable', state.endEmitted);
                              -  if (!state.endEmitted) {
                              -    state.ended = true;
                              -    process.nextTick(endReadableNT, state, stream);
                              -  }
                              -}
                              -function endReadableNT(state, stream) {
                              -  debug('endReadableNT', state.endEmitted, state.length);
                              -
                              -  // Check that we didn't get one last unshift.
                              -  if (!state.endEmitted && state.length === 0) {
                              -    state.endEmitted = true;
                              -    stream.readable = false;
                              -    stream.emit('end');
                              -    if (state.autoDestroy) {
                              -      // In case of duplex streams we need a way to detect
                              -      // if the writable side is ready for autoDestroy as well
                              -      var wState = stream._writableState;
                              -      if (!wState || wState.autoDestroy && wState.finished) {
                              -        stream.destroy();
                              -      }
                              -    }
                              -  }
                              -}
                              -if (typeof Symbol === 'function') {
                              -  Readable.from = function (iterable, opts) {
                              -    if (from === undefined) {
                              -      from = require('./internal/streams/from');
                              -    }
                              -    return from(Readable, iterable, opts);
                              -  };
                              -}
                              -function indexOf(xs, x) {
                              -  for (var i = 0, l = xs.length; i < l; i++) {
                              -    if (xs[i] === x) return i;
                              -  }
                              -  return -1;
                              -}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_transform.js
                              deleted file mode 100644
                              index 1ccb7157be8b8c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_transform.js
                              +++ /dev/null
                              @@ -1,190 +0,0 @@
                              -// Copyright Joyent, Inc. and other Node contributors.
                              -//
                              -// Permission is hereby granted, free of charge, to any person obtaining a
                              -// copy of this software and associated documentation files (the
                              -// "Software"), to deal in the Software without restriction, including
                              -// without limitation the rights to use, copy, modify, merge, publish,
                              -// distribute, sublicense, and/or sell copies of the Software, and to permit
                              -// persons to whom the Software is furnished to do so, subject to the
                              -// following conditions:
                              -//
                              -// The above copyright notice and this permission notice shall be included
                              -// in all copies or substantial portions of the Software.
                              -//
                              -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
                              -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                              -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
                              -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
                              -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
                              -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
                              -// USE OR OTHER DEALINGS IN THE SOFTWARE.
                              -
                              -// a transform stream is a readable/writable stream where you do
                              -// something with the data.  Sometimes it's called a "filter",
                              -// but that's not a great name for it, since that implies a thing where
                              -// some bits pass through, and others are simply ignored.  (That would
                              -// be a valid example of a transform, of course.)
                              -//
                              -// While the output is causally related to the input, it's not a
                              -// necessarily symmetric or synchronous transformation.  For example,
                              -// a zlib stream might take multiple plain-text writes(), and then
                              -// emit a single compressed chunk some time in the future.
                              -//
                              -// Here's how this works:
                              -//
                              -// The Transform stream has all the aspects of the readable and writable
                              -// stream classes.  When you write(chunk), that calls _write(chunk,cb)
                              -// internally, and returns false if there's a lot of pending writes
                              -// buffered up.  When you call read(), that calls _read(n) until
                              -// there's enough pending readable data buffered up.
                              -//
                              -// In a transform stream, the written data is placed in a buffer.  When
                              -// _read(n) is called, it transforms the queued up data, calling the
                              -// buffered _write cb's as it consumes chunks.  If consuming a single
                              -// written chunk would result in multiple output chunks, then the first
                              -// outputted bit calls the readcb, and subsequent chunks just go into
                              -// the read buffer, and will cause it to emit 'readable' if necessary.
                              -//
                              -// This way, back-pressure is actually determined by the reading side,
                              -// since _read has to be called to start processing a new chunk.  However,
                              -// a pathological inflate type of transform can cause excessive buffering
                              -// here.  For example, imagine a stream where every byte of input is
                              -// interpreted as an integer from 0-255, and then results in that many
                              -// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
                              -// 1kb of data being output.  In this case, you could write a very small
                              -// amount of input, and end up with a very large amount of output.  In
                              -// such a pathological inflating mechanism, there'd be no way to tell
                              -// the system to stop doing the transform.  A single 4MB write could
                              -// cause the system to run out of memory.
                              -//
                              -// However, even in such a pathological case, only a single written chunk
                              -// would be consumed, and then the rest would wait (un-transformed) until
                              -// the results of the previous transformed chunk were consumed.
                              -
                              -'use strict';
                              -
                              -module.exports = Transform;
                              -var _require$codes = require('../errors').codes,
                              -  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
                              -  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
                              -  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,
                              -  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;
                              -var Duplex = require('./_stream_duplex');
                              -require('inherits')(Transform, Duplex);
                              -function afterTransform(er, data) {
                              -  var ts = this._transformState;
                              -  ts.transforming = false;
                              -  var cb = ts.writecb;
                              -  if (cb === null) {
                              -    return this.emit('error', new ERR_MULTIPLE_CALLBACK());
                              -  }
                              -  ts.writechunk = null;
                              -  ts.writecb = null;
                              -  if (data != null)
                              -    // single equals check for both `null` and `undefined`
                              -    this.push(data);
                              -  cb(er);
                              -  var rs = this._readableState;
                              -  rs.reading = false;
                              -  if (rs.needReadable || rs.length < rs.highWaterMark) {
                              -    this._read(rs.highWaterMark);
                              -  }
                              -}
                              -function Transform(options) {
                              -  if (!(this instanceof Transform)) return new Transform(options);
                              -  Duplex.call(this, options);
                              -  this._transformState = {
                              -    afterTransform: afterTransform.bind(this),
                              -    needTransform: false,
                              -    transforming: false,
                              -    writecb: null,
                              -    writechunk: null,
                              -    writeencoding: null
                              -  };
                              -
                              -  // start out asking for a readable event once data is transformed.
                              -  this._readableState.needReadable = true;
                              -
                              -  // we have implemented the _read method, and done the other things
                              -  // that Readable wants before the first _read call, so unset the
                              -  // sync guard flag.
                              -  this._readableState.sync = false;
                              -  if (options) {
                              -    if (typeof options.transform === 'function') this._transform = options.transform;
                              -    if (typeof options.flush === 'function') this._flush = options.flush;
                              -  }
                              -
                              -  // When the writable side finishes, then flush out anything remaining.
                              -  this.on('prefinish', prefinish);
                              -}
                              -function prefinish() {
                              -  var _this = this;
                              -  if (typeof this._flush === 'function' && !this._readableState.destroyed) {
                              -    this._flush(function (er, data) {
                              -      done(_this, er, data);
                              -    });
                              -  } else {
                              -    done(this, null, null);
                              -  }
                              -}
                              -Transform.prototype.push = function (chunk, encoding) {
                              -  this._transformState.needTransform = false;
                              -  return Duplex.prototype.push.call(this, chunk, encoding);
                              -};
                              -
                              -// This is the part where you do stuff!
                              -// override this function in implementation classes.
                              -// 'chunk' is an input chunk.
                              -//
                              -// Call `push(newChunk)` to pass along transformed output
                              -// to the readable side.  You may call 'push' zero or more times.
                              -//
                              -// Call `cb(err)` when you are done with this chunk.  If you pass
                              -// an error, then that'll put the hurt on the whole operation.  If you
                              -// never call cb(), then you'll never get another chunk.
                              -Transform.prototype._transform = function (chunk, encoding, cb) {
                              -  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));
                              -};
                              -Transform.prototype._write = function (chunk, encoding, cb) {
                              -  var ts = this._transformState;
                              -  ts.writecb = cb;
                              -  ts.writechunk = chunk;
                              -  ts.writeencoding = encoding;
                              -  if (!ts.transforming) {
                              -    var rs = this._readableState;
                              -    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
                              -  }
                              -};
                              -
                              -// Doesn't matter what the args are here.
                              -// _transform does all the work.
                              -// That we got here means that the readable side wants more data.
                              -Transform.prototype._read = function (n) {
                              -  var ts = this._transformState;
                              -  if (ts.writechunk !== null && !ts.transforming) {
                              -    ts.transforming = true;
                              -    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
                              -  } else {
                              -    // mark that we need a transform, so that any data that comes in
                              -    // will get processed, now that we've asked for it.
                              -    ts.needTransform = true;
                              -  }
                              -};
                              -Transform.prototype._destroy = function (err, cb) {
                              -  Duplex.prototype._destroy.call(this, err, function (err2) {
                              -    cb(err2);
                              -  });
                              -};
                              -function done(stream, er, data) {
                              -  if (er) return stream.emit('error', er);
                              -  if (data != null)
                              -    // single equals check for both `null` and `undefined`
                              -    stream.push(data);
                              -
                              -  // TODO(BridgeAR): Write a test for these two error cases
                              -  // if there's nothing in the write buffer, then that means
                              -  // that nothing more will ever be provided
                              -  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();
                              -  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();
                              -  return stream.push(null);
                              -}
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_writable.js
                              deleted file mode 100644
                              index 292415e23a192b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/_stream_writable.js
                              +++ /dev/null
                              @@ -1,641 +0,0 @@
                              -// Copyright Joyent, Inc. and other Node contributors.
                              -//
                              -// Permission is hereby granted, free of charge, to any person obtaining a
                              -// copy of this software and associated documentation files (the
                              -// "Software"), to deal in the Software without restriction, including
                              -// without limitation the rights to use, copy, modify, merge, publish,
                              -// distribute, sublicense, and/or sell copies of the Software, and to permit
                              -// persons to whom the Software is furnished to do so, subject to the
                              -// following conditions:
                              -//
                              -// The above copyright notice and this permission notice shall be included
                              -// in all copies or substantial portions of the Software.
                              -//
                              -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
                              -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                              -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
                              -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
                              -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
                              -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
                              -// USE OR OTHER DEALINGS IN THE SOFTWARE.
                              -
                              -// A bit simpler than readable streams.
                              -// Implement an async ._write(chunk, encoding, cb), and it'll handle all
                              -// the drain event emission and buffering.
                              -
                              -'use strict';
                              -
                              -module.exports = Writable;
                              -
                              -/*  */
                              -function WriteReq(chunk, encoding, cb) {
                              -  this.chunk = chunk;
                              -  this.encoding = encoding;
                              -  this.callback = cb;
                              -  this.next = null;
                              -}
                              -
                              -// It seems a linked list but it is not
                              -// there will be only 2 of these for each stream
                              -function CorkedRequest(state) {
                              -  var _this = this;
                              -  this.next = null;
                              -  this.entry = null;
                              -  this.finish = function () {
                              -    onCorkedFinish(_this, state);
                              -  };
                              -}
                              -/*  */
                              -
                              -/**/
                              -var Duplex;
                              -/**/
                              -
                              -Writable.WritableState = WritableState;
                              -
                              -/**/
                              -var internalUtil = {
                              -  deprecate: require('util-deprecate')
                              -};
                              -/**/
                              -
                              -/**/
                              -var Stream = require('./internal/streams/stream');
                              -/**/
                              -
                              -var Buffer = require('buffer').Buffer;
                              -var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};
                              -function _uint8ArrayToBuffer(chunk) {
                              -  return Buffer.from(chunk);
                              -}
                              -function _isUint8Array(obj) {
                              -  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
                              -}
                              -var destroyImpl = require('./internal/streams/destroy');
                              -var _require = require('./internal/streams/state'),
                              -  getHighWaterMark = _require.getHighWaterMark;
                              -var _require$codes = require('../errors').codes,
                              -  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,
                              -  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,
                              -  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,
                              -  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,
                              -  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,
                              -  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,
                              -  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,
                              -  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;
                              -var errorOrDestroy = destroyImpl.errorOrDestroy;
                              -require('inherits')(Writable, Stream);
                              -function nop() {}
                              -function WritableState(options, stream, isDuplex) {
                              -  Duplex = Duplex || require('./_stream_duplex');
                              -  options = options || {};
                              -
                              -  // Duplex streams are both readable and writable, but share
                              -  // the same options object.
                              -  // However, some cases require setting options to different
                              -  // values for the readable and the writable sides of the duplex stream,
                              -  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.
                              -  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;
                              -
                              -  // object stream flag to indicate whether or not this stream
                              -  // contains buffers or objects.
                              -  this.objectMode = !!options.objectMode;
                              -  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
                              -
                              -  // the point at which write() starts returning false
                              -  // Note: 0 is a valid value, means that we always return false if
                              -  // the entire buffer is not flushed immediately on write()
                              -  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);
                              -
                              -  // if _final has been called
                              -  this.finalCalled = false;
                              -
                              -  // drain event flag.
                              -  this.needDrain = false;
                              -  // at the start of calling end()
                              -  this.ending = false;
                              -  // when end() has been called, and returned
                              -  this.ended = false;
                              -  // when 'finish' is emitted
                              -  this.finished = false;
                              -
                              -  // has it been destroyed
                              -  this.destroyed = false;
                              -
                              -  // should we decode strings into buffers before passing to _write?
                              -  // this is here so that some node-core streams can optimize string
                              -  // handling at a lower level.
                              -  var noDecode = options.decodeStrings === false;
                              -  this.decodeStrings = !noDecode;
                              -
                              -  // Crypto is kind of old and crusty.  Historically, its default string
                              -  // encoding is 'binary' so we have to make this configurable.
                              -  // Everything else in the universe uses 'utf8', though.
                              -  this.defaultEncoding = options.defaultEncoding || 'utf8';
                              -
                              -  // not an actual buffer we keep track of, but a measurement
                              -  // of how much we're waiting to get pushed to some underlying
                              -  // socket or file.
                              -  this.length = 0;
                              -
                              -  // a flag to see when we're in the middle of a write.
                              -  this.writing = false;
                              -
                              -  // when true all writes will be buffered until .uncork() call
                              -  this.corked = 0;
                              -
                              -  // a flag to be able to tell if the onwrite cb is called immediately,
                              -  // or on a later tick.  We set this to true at first, because any
                              -  // actions that shouldn't happen until "later" should generally also
                              -  // not happen before the first write call.
                              -  this.sync = true;
                              -
                              -  // a flag to know if we're processing previously buffered items, which
                              -  // may call the _write() callback in the same tick, so that we don't
                              -  // end up in an overlapped onwrite situation.
                              -  this.bufferProcessing = false;
                              -
                              -  // the callback that's passed to _write(chunk,cb)
                              -  this.onwrite = function (er) {
                              -    onwrite(stream, er);
                              -  };
                              -
                              -  // the callback that the user supplies to write(chunk,encoding,cb)
                              -  this.writecb = null;
                              -
                              -  // the amount that is being written when _write is called.
                              -  this.writelen = 0;
                              -  this.bufferedRequest = null;
                              -  this.lastBufferedRequest = null;
                              -
                              -  // number of pending user-supplied write callbacks
                              -  // this must be 0 before 'finish' can be emitted
                              -  this.pendingcb = 0;
                              -
                              -  // emit prefinish if the only thing we're waiting for is _write cbs
                              -  // This is relevant for synchronous Transform streams
                              -  this.prefinished = false;
                              -
                              -  // True if the error was already emitted and should not be thrown again
                              -  this.errorEmitted = false;
                              -
                              -  // Should close be emitted on destroy. Defaults to true.
                              -  this.emitClose = options.emitClose !== false;
                              -
                              -  // Should .destroy() be called after 'finish' (and potentially 'end')
                              -  this.autoDestroy = !!options.autoDestroy;
                              -
                              -  // count buffered requests
                              -  this.bufferedRequestCount = 0;
                              -
                              -  // allocate the first CorkedRequest, there is always
                              -  // one allocated and free to use, and we maintain at most two
                              -  this.corkedRequestsFree = new CorkedRequest(this);
                              -}
                              -WritableState.prototype.getBuffer = function getBuffer() {
                              -  var current = this.bufferedRequest;
                              -  var out = [];
                              -  while (current) {
                              -    out.push(current);
                              -    current = current.next;
                              -  }
                              -  return out;
                              -};
                              -(function () {
                              -  try {
                              -    Object.defineProperty(WritableState.prototype, 'buffer', {
                              -      get: internalUtil.deprecate(function writableStateBufferGetter() {
                              -        return this.getBuffer();
                              -      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
                              -    });
                              -  } catch (_) {}
                              -})();
                              -
                              -// Test _writableState for inheritance to account for Duplex streams,
                              -// whose prototype chain only points to Readable.
                              -var realHasInstance;
                              -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
                              -  realHasInstance = Function.prototype[Symbol.hasInstance];
                              -  Object.defineProperty(Writable, Symbol.hasInstance, {
                              -    value: function value(object) {
                              -      if (realHasInstance.call(this, object)) return true;
                              -      if (this !== Writable) return false;
                              -      return object && object._writableState instanceof WritableState;
                              -    }
                              -  });
                              -} else {
                              -  realHasInstance = function realHasInstance(object) {
                              -    return object instanceof this;
                              -  };
                              -}
                              -function Writable(options) {
                              -  Duplex = Duplex || require('./_stream_duplex');
                              -
                              -  // Writable ctor is applied to Duplexes, too.
                              -  // `realHasInstance` is necessary because using plain `instanceof`
                              -  // would return false, as no `_writableState` property is attached.
                              -
                              -  // Trying to use the custom `instanceof` for Writable here will also break the
                              -  // Node.js LazyTransform implementation, which has a non-trivial getter for
                              -  // `_writableState` that would lead to infinite recursion.
                              -
                              -  // Checking for a Stream.Duplex instance is faster here instead of inside
                              -  // the WritableState constructor, at least with V8 6.5
                              -  var isDuplex = this instanceof Duplex;
                              -  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);
                              -  this._writableState = new WritableState(options, this, isDuplex);
                              -
                              -  // legacy.
                              -  this.writable = true;
                              -  if (options) {
                              -    if (typeof options.write === 'function') this._write = options.write;
                              -    if (typeof options.writev === 'function') this._writev = options.writev;
                              -    if (typeof options.destroy === 'function') this._destroy = options.destroy;
                              -    if (typeof options.final === 'function') this._final = options.final;
                              -  }
                              -  Stream.call(this);
                              -}
                              -
                              -// Otherwise people can pipe Writable streams, which is just wrong.
                              -Writable.prototype.pipe = function () {
                              -  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());
                              -};
                              -function writeAfterEnd(stream, cb) {
                              -  var er = new ERR_STREAM_WRITE_AFTER_END();
                              -  // TODO: defer error events consistently everywhere, not just the cb
                              -  errorOrDestroy(stream, er);
                              -  process.nextTick(cb, er);
                              -}
                              -
                              -// Checks that a user-supplied chunk is valid, especially for the particular
                              -// mode the stream is in. Currently this means that `null` is never accepted
                              -// and undefined/non-string values are only allowed in object mode.
                              -function validChunk(stream, state, chunk, cb) {
                              -  var er;
                              -  if (chunk === null) {
                              -    er = new ERR_STREAM_NULL_VALUES();
                              -  } else if (typeof chunk !== 'string' && !state.objectMode) {
                              -    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);
                              -  }
                              -  if (er) {
                              -    errorOrDestroy(stream, er);
                              -    process.nextTick(cb, er);
                              -    return false;
                              -  }
                              -  return true;
                              -}
                              -Writable.prototype.write = function (chunk, encoding, cb) {
                              -  var state = this._writableState;
                              -  var ret = false;
                              -  var isBuf = !state.objectMode && _isUint8Array(chunk);
                              -  if (isBuf && !Buffer.isBuffer(chunk)) {
                              -    chunk = _uint8ArrayToBuffer(chunk);
                              -  }
                              -  if (typeof encoding === 'function') {
                              -    cb = encoding;
                              -    encoding = null;
                              -  }
                              -  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
                              -  if (typeof cb !== 'function') cb = nop;
                              -  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
                              -    state.pendingcb++;
                              -    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
                              -  }
                              -  return ret;
                              -};
                              -Writable.prototype.cork = function () {
                              -  this._writableState.corked++;
                              -};
                              -Writable.prototype.uncork = function () {
                              -  var state = this._writableState;
                              -  if (state.corked) {
                              -    state.corked--;
                              -    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
                              -  }
                              -};
                              -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
                              -  // node::ParseEncoding() requires lower case.
                              -  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
                              -  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);
                              -  this._writableState.defaultEncoding = encoding;
                              -  return this;
                              -};
                              -Object.defineProperty(Writable.prototype, 'writableBuffer', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState && this._writableState.getBuffer();
                              -  }
                              -});
                              -function decodeChunk(state, chunk, encoding) {
                              -  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
                              -    chunk = Buffer.from(chunk, encoding);
                              -  }
                              -  return chunk;
                              -}
                              -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState.highWaterMark;
                              -  }
                              -});
                              -
                              -// if we're already writing something, then just put this
                              -// in the queue, and wait our turn.  Otherwise, call _write
                              -// If we return false, then we need a drain event, so set that flag.
                              -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
                              -  if (!isBuf) {
                              -    var newChunk = decodeChunk(state, chunk, encoding);
                              -    if (chunk !== newChunk) {
                              -      isBuf = true;
                              -      encoding = 'buffer';
                              -      chunk = newChunk;
                              -    }
                              -  }
                              -  var len = state.objectMode ? 1 : chunk.length;
                              -  state.length += len;
                              -  var ret = state.length < state.highWaterMark;
                              -  // we must ensure that previous needDrain will not be reset to false.
                              -  if (!ret) state.needDrain = true;
                              -  if (state.writing || state.corked) {
                              -    var last = state.lastBufferedRequest;
                              -    state.lastBufferedRequest = {
                              -      chunk: chunk,
                              -      encoding: encoding,
                              -      isBuf: isBuf,
                              -      callback: cb,
                              -      next: null
                              -    };
                              -    if (last) {
                              -      last.next = state.lastBufferedRequest;
                              -    } else {
                              -      state.bufferedRequest = state.lastBufferedRequest;
                              -    }
                              -    state.bufferedRequestCount += 1;
                              -  } else {
                              -    doWrite(stream, state, false, len, chunk, encoding, cb);
                              -  }
                              -  return ret;
                              -}
                              -function doWrite(stream, state, writev, len, chunk, encoding, cb) {
                              -  state.writelen = len;
                              -  state.writecb = cb;
                              -  state.writing = true;
                              -  state.sync = true;
                              -  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
                              -  state.sync = false;
                              -}
                              -function onwriteError(stream, state, sync, er, cb) {
                              -  --state.pendingcb;
                              -  if (sync) {
                              -    // defer the callback if we are being called synchronously
                              -    // to avoid piling up things on the stack
                              -    process.nextTick(cb, er);
                              -    // this can emit finish, and it will always happen
                              -    // after error
                              -    process.nextTick(finishMaybe, stream, state);
                              -    stream._writableState.errorEmitted = true;
                              -    errorOrDestroy(stream, er);
                              -  } else {
                              -    // the caller expect this to happen before if
                              -    // it is async
                              -    cb(er);
                              -    stream._writableState.errorEmitted = true;
                              -    errorOrDestroy(stream, er);
                              -    // this can emit finish, but finish must
                              -    // always follow error
                              -    finishMaybe(stream, state);
                              -  }
                              -}
                              -function onwriteStateUpdate(state) {
                              -  state.writing = false;
                              -  state.writecb = null;
                              -  state.length -= state.writelen;
                              -  state.writelen = 0;
                              -}
                              -function onwrite(stream, er) {
                              -  var state = stream._writableState;
                              -  var sync = state.sync;
                              -  var cb = state.writecb;
                              -  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();
                              -  onwriteStateUpdate(state);
                              -  if (er) onwriteError(stream, state, sync, er, cb);else {
                              -    // Check if we're actually ready to finish, but don't emit yet
                              -    var finished = needFinish(state) || stream.destroyed;
                              -    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
                              -      clearBuffer(stream, state);
                              -    }
                              -    if (sync) {
                              -      process.nextTick(afterWrite, stream, state, finished, cb);
                              -    } else {
                              -      afterWrite(stream, state, finished, cb);
                              -    }
                              -  }
                              -}
                              -function afterWrite(stream, state, finished, cb) {
                              -  if (!finished) onwriteDrain(stream, state);
                              -  state.pendingcb--;
                              -  cb();
                              -  finishMaybe(stream, state);
                              -}
                              -
                              -// Must force callback to be called on nextTick, so that we don't
                              -// emit 'drain' before the write() consumer gets the 'false' return
                              -// value, and has a chance to attach a 'drain' listener.
                              -function onwriteDrain(stream, state) {
                              -  if (state.length === 0 && state.needDrain) {
                              -    state.needDrain = false;
                              -    stream.emit('drain');
                              -  }
                              -}
                              -
                              -// if there's something in the buffer waiting, then process it
                              -function clearBuffer(stream, state) {
                              -  state.bufferProcessing = true;
                              -  var entry = state.bufferedRequest;
                              -  if (stream._writev && entry && entry.next) {
                              -    // Fast case, write everything using _writev()
                              -    var l = state.bufferedRequestCount;
                              -    var buffer = new Array(l);
                              -    var holder = state.corkedRequestsFree;
                              -    holder.entry = entry;
                              -    var count = 0;
                              -    var allBuffers = true;
                              -    while (entry) {
                              -      buffer[count] = entry;
                              -      if (!entry.isBuf) allBuffers = false;
                              -      entry = entry.next;
                              -      count += 1;
                              -    }
                              -    buffer.allBuffers = allBuffers;
                              -    doWrite(stream, state, true, state.length, buffer, '', holder.finish);
                              -
                              -    // doWrite is almost always async, defer these to save a bit of time
                              -    // as the hot path ends with doWrite
                              -    state.pendingcb++;
                              -    state.lastBufferedRequest = null;
                              -    if (holder.next) {
                              -      state.corkedRequestsFree = holder.next;
                              -      holder.next = null;
                              -    } else {
                              -      state.corkedRequestsFree = new CorkedRequest(state);
                              -    }
                              -    state.bufferedRequestCount = 0;
                              -  } else {
                              -    // Slow case, write chunks one-by-one
                              -    while (entry) {
                              -      var chunk = entry.chunk;
                              -      var encoding = entry.encoding;
                              -      var cb = entry.callback;
                              -      var len = state.objectMode ? 1 : chunk.length;
                              -      doWrite(stream, state, false, len, chunk, encoding, cb);
                              -      entry = entry.next;
                              -      state.bufferedRequestCount--;
                              -      // if we didn't call the onwrite immediately, then
                              -      // it means that we need to wait until it does.
                              -      // also, that means that the chunk and cb are currently
                              -      // being processed, so move the buffer counter past them.
                              -      if (state.writing) {
                              -        break;
                              -      }
                              -    }
                              -    if (entry === null) state.lastBufferedRequest = null;
                              -  }
                              -  state.bufferedRequest = entry;
                              -  state.bufferProcessing = false;
                              -}
                              -Writable.prototype._write = function (chunk, encoding, cb) {
                              -  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));
                              -};
                              -Writable.prototype._writev = null;
                              -Writable.prototype.end = function (chunk, encoding, cb) {
                              -  var state = this._writableState;
                              -  if (typeof chunk === 'function') {
                              -    cb = chunk;
                              -    chunk = null;
                              -    encoding = null;
                              -  } else if (typeof encoding === 'function') {
                              -    cb = encoding;
                              -    encoding = null;
                              -  }
                              -  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
                              -
                              -  // .end() fully uncorks
                              -  if (state.corked) {
                              -    state.corked = 1;
                              -    this.uncork();
                              -  }
                              -
                              -  // ignore unnecessary end() calls.
                              -  if (!state.ending) endWritable(this, state, cb);
                              -  return this;
                              -};
                              -Object.defineProperty(Writable.prototype, 'writableLength', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    return this._writableState.length;
                              -  }
                              -});
                              -function needFinish(state) {
                              -  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
                              -}
                              -function callFinal(stream, state) {
                              -  stream._final(function (err) {
                              -    state.pendingcb--;
                              -    if (err) {
                              -      errorOrDestroy(stream, err);
                              -    }
                              -    state.prefinished = true;
                              -    stream.emit('prefinish');
                              -    finishMaybe(stream, state);
                              -  });
                              -}
                              -function prefinish(stream, state) {
                              -  if (!state.prefinished && !state.finalCalled) {
                              -    if (typeof stream._final === 'function' && !state.destroyed) {
                              -      state.pendingcb++;
                              -      state.finalCalled = true;
                              -      process.nextTick(callFinal, stream, state);
                              -    } else {
                              -      state.prefinished = true;
                              -      stream.emit('prefinish');
                              -    }
                              -  }
                              -}
                              -function finishMaybe(stream, state) {
                              -  var need = needFinish(state);
                              -  if (need) {
                              -    prefinish(stream, state);
                              -    if (state.pendingcb === 0) {
                              -      state.finished = true;
                              -      stream.emit('finish');
                              -      if (state.autoDestroy) {
                              -        // In case of duplex streams we need a way to detect
                              -        // if the readable side is ready for autoDestroy as well
                              -        var rState = stream._readableState;
                              -        if (!rState || rState.autoDestroy && rState.endEmitted) {
                              -          stream.destroy();
                              -        }
                              -      }
                              -    }
                              -  }
                              -  return need;
                              -}
                              -function endWritable(stream, state, cb) {
                              -  state.ending = true;
                              -  finishMaybe(stream, state);
                              -  if (cb) {
                              -    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);
                              -  }
                              -  state.ended = true;
                              -  stream.writable = false;
                              -}
                              -function onCorkedFinish(corkReq, state, err) {
                              -  var entry = corkReq.entry;
                              -  corkReq.entry = null;
                              -  while (entry) {
                              -    var cb = entry.callback;
                              -    state.pendingcb--;
                              -    cb(err);
                              -    entry = entry.next;
                              -  }
                              -
                              -  // reuse the free corkReq.
                              -  state.corkedRequestsFree.next = corkReq;
                              -}
                              -Object.defineProperty(Writable.prototype, 'destroyed', {
                              -  // making it explicit this property is not enumerable
                              -  // because otherwise some prototype manipulation in
                              -  // userland will fail
                              -  enumerable: false,
                              -  get: function get() {
                              -    if (this._writableState === undefined) {
                              -      return false;
                              -    }
                              -    return this._writableState.destroyed;
                              -  },
                              -  set: function set(value) {
                              -    // we ignore the value if the stream
                              -    // has not been initialized yet
                              -    if (!this._writableState) {
                              -      return;
                              -    }
                              -
                              -    // backward compatibility, the user is explicitly
                              -    // managing destroyed
                              -    this._writableState.destroyed = value;
                              -  }
                              -});
                              -Writable.prototype.destroy = destroyImpl.destroy;
                              -Writable.prototype._undestroy = destroyImpl.undestroy;
                              -Writable.prototype._destroy = function (err, cb) {
                              -  cb(err);
                              -};
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/async_iterator.js
                              deleted file mode 100644
                              index 742c5a4674794d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/async_iterator.js
                              +++ /dev/null
                              @@ -1,180 +0,0 @@
                              -'use strict';
                              -
                              -var _Object$setPrototypeO;
                              -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
                              -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
                              -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
                              -var finished = require('./end-of-stream');
                              -var kLastResolve = Symbol('lastResolve');
                              -var kLastReject = Symbol('lastReject');
                              -var kError = Symbol('error');
                              -var kEnded = Symbol('ended');
                              -var kLastPromise = Symbol('lastPromise');
                              -var kHandlePromise = Symbol('handlePromise');
                              -var kStream = Symbol('stream');
                              -function createIterResult(value, done) {
                              -  return {
                              -    value: value,
                              -    done: done
                              -  };
                              -}
                              -function readAndResolve(iter) {
                              -  var resolve = iter[kLastResolve];
                              -  if (resolve !== null) {
                              -    var data = iter[kStream].read();
                              -    // we defer if data is null
                              -    // we can be expecting either 'end' or
                              -    // 'error'
                              -    if (data !== null) {
                              -      iter[kLastPromise] = null;
                              -      iter[kLastResolve] = null;
                              -      iter[kLastReject] = null;
                              -      resolve(createIterResult(data, false));
                              -    }
                              -  }
                              -}
                              -function onReadable(iter) {
                              -  // we wait for the next tick, because it might
                              -  // emit an error with process.nextTick
                              -  process.nextTick(readAndResolve, iter);
                              -}
                              -function wrapForNext(lastPromise, iter) {
                              -  return function (resolve, reject) {
                              -    lastPromise.then(function () {
                              -      if (iter[kEnded]) {
                              -        resolve(createIterResult(undefined, true));
                              -        return;
                              -      }
                              -      iter[kHandlePromise](resolve, reject);
                              -    }, reject);
                              -  };
                              -}
                              -var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});
                              -var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {
                              -  get stream() {
                              -    return this[kStream];
                              -  },
                              -  next: function next() {
                              -    var _this = this;
                              -    // if we have detected an error in the meanwhile
                              -    // reject straight away
                              -    var error = this[kError];
                              -    if (error !== null) {
                              -      return Promise.reject(error);
                              -    }
                              -    if (this[kEnded]) {
                              -      return Promise.resolve(createIterResult(undefined, true));
                              -    }
                              -    if (this[kStream].destroyed) {
                              -      // We need to defer via nextTick because if .destroy(err) is
                              -      // called, the error will be emitted via nextTick, and
                              -      // we cannot guarantee that there is no error lingering around
                              -      // waiting to be emitted.
                              -      return new Promise(function (resolve, reject) {
                              -        process.nextTick(function () {
                              -          if (_this[kError]) {
                              -            reject(_this[kError]);
                              -          } else {
                              -            resolve(createIterResult(undefined, true));
                              -          }
                              -        });
                              -      });
                              -    }
                              -
                              -    // if we have multiple next() calls
                              -    // we will wait for the previous Promise to finish
                              -    // this logic is optimized to support for await loops,
                              -    // where next() is only called once at a time
                              -    var lastPromise = this[kLastPromise];
                              -    var promise;
                              -    if (lastPromise) {
                              -      promise = new Promise(wrapForNext(lastPromise, this));
                              -    } else {
                              -      // fast path needed to support multiple this.push()
                              -      // without triggering the next() queue
                              -      var data = this[kStream].read();
                              -      if (data !== null) {
                              -        return Promise.resolve(createIterResult(data, false));
                              -      }
                              -      promise = new Promise(this[kHandlePromise]);
                              -    }
                              -    this[kLastPromise] = promise;
                              -    return promise;
                              -  }
                              -}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {
                              -  return this;
                              -}), _defineProperty(_Object$setPrototypeO, "return", function _return() {
                              -  var _this2 = this;
                              -  // destroy(err, cb) is a private API
                              -  // we can guarantee we have that here, because we control the
                              -  // Readable class this is attached to
                              -  return new Promise(function (resolve, reject) {
                              -    _this2[kStream].destroy(null, function (err) {
                              -      if (err) {
                              -        reject(err);
                              -        return;
                              -      }
                              -      resolve(createIterResult(undefined, true));
                              -    });
                              -  });
                              -}), _Object$setPrototypeO), AsyncIteratorPrototype);
                              -var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {
                              -  var _Object$create;
                              -  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {
                              -    value: stream,
                              -    writable: true
                              -  }), _defineProperty(_Object$create, kLastResolve, {
                              -    value: null,
                              -    writable: true
                              -  }), _defineProperty(_Object$create, kLastReject, {
                              -    value: null,
                              -    writable: true
                              -  }), _defineProperty(_Object$create, kError, {
                              -    value: null,
                              -    writable: true
                              -  }), _defineProperty(_Object$create, kEnded, {
                              -    value: stream._readableState.endEmitted,
                              -    writable: true
                              -  }), _defineProperty(_Object$create, kHandlePromise, {
                              -    value: function value(resolve, reject) {
                              -      var data = iterator[kStream].read();
                              -      if (data) {
                              -        iterator[kLastPromise] = null;
                              -        iterator[kLastResolve] = null;
                              -        iterator[kLastReject] = null;
                              -        resolve(createIterResult(data, false));
                              -      } else {
                              -        iterator[kLastResolve] = resolve;
                              -        iterator[kLastReject] = reject;
                              -      }
                              -    },
                              -    writable: true
                              -  }), _Object$create));
                              -  iterator[kLastPromise] = null;
                              -  finished(stream, function (err) {
                              -    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {
                              -      var reject = iterator[kLastReject];
                              -      // reject if we are waiting for data in the Promise
                              -      // returned by next() and store the error
                              -      if (reject !== null) {
                              -        iterator[kLastPromise] = null;
                              -        iterator[kLastResolve] = null;
                              -        iterator[kLastReject] = null;
                              -        reject(err);
                              -      }
                              -      iterator[kError] = err;
                              -      return;
                              -    }
                              -    var resolve = iterator[kLastResolve];
                              -    if (resolve !== null) {
                              -      iterator[kLastPromise] = null;
                              -      iterator[kLastResolve] = null;
                              -      iterator[kLastReject] = null;
                              -      resolve(createIterResult(undefined, true));
                              -    }
                              -    iterator[kEnded] = true;
                              -  });
                              -  stream.on('readable', onReadable.bind(null, iterator));
                              -  return iterator;
                              -};
                              -module.exports = createReadableStreamAsyncIterator;
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/buffer_list.js
                              deleted file mode 100644
                              index 69bda497d35f34..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/buffer_list.js
                              +++ /dev/null
                              @@ -1,183 +0,0 @@
                              -'use strict';
                              -
                              -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
                              -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
                              -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
                              -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
                              -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
                              -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
                              -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
                              -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
                              -var _require = require('buffer'),
                              -  Buffer = _require.Buffer;
                              -var _require2 = require('util'),
                              -  inspect = _require2.inspect;
                              -var custom = inspect && inspect.custom || 'inspect';
                              -function copyBuffer(src, target, offset) {
                              -  Buffer.prototype.copy.call(src, target, offset);
                              -}
                              -module.exports = /*#__PURE__*/function () {
                              -  function BufferList() {
                              -    _classCallCheck(this, BufferList);
                              -    this.head = null;
                              -    this.tail = null;
                              -    this.length = 0;
                              -  }
                              -  _createClass(BufferList, [{
                              -    key: "push",
                              -    value: function push(v) {
                              -      var entry = {
                              -        data: v,
                              -        next: null
                              -      };
                              -      if (this.length > 0) this.tail.next = entry;else this.head = entry;
                              -      this.tail = entry;
                              -      ++this.length;
                              -    }
                              -  }, {
                              -    key: "unshift",
                              -    value: function unshift(v) {
                              -      var entry = {
                              -        data: v,
                              -        next: this.head
                              -      };
                              -      if (this.length === 0) this.tail = entry;
                              -      this.head = entry;
                              -      ++this.length;
                              -    }
                              -  }, {
                              -    key: "shift",
                              -    value: function shift() {
                              -      if (this.length === 0) return;
                              -      var ret = this.head.data;
                              -      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
                              -      --this.length;
                              -      return ret;
                              -    }
                              -  }, {
                              -    key: "clear",
                              -    value: function clear() {
                              -      this.head = this.tail = null;
                              -      this.length = 0;
                              -    }
                              -  }, {
                              -    key: "join",
                              -    value: function join(s) {
                              -      if (this.length === 0) return '';
                              -      var p = this.head;
                              -      var ret = '' + p.data;
                              -      while (p = p.next) ret += s + p.data;
                              -      return ret;
                              -    }
                              -  }, {
                              -    key: "concat",
                              -    value: function concat(n) {
                              -      if (this.length === 0) return Buffer.alloc(0);
                              -      var ret = Buffer.allocUnsafe(n >>> 0);
                              -      var p = this.head;
                              -      var i = 0;
                              -      while (p) {
                              -        copyBuffer(p.data, ret, i);
                              -        i += p.data.length;
                              -        p = p.next;
                              -      }
                              -      return ret;
                              -    }
                              -
                              -    // Consumes a specified amount of bytes or characters from the buffered data.
                              -  }, {
                              -    key: "consume",
                              -    value: function consume(n, hasStrings) {
                              -      var ret;
                              -      if (n < this.head.data.length) {
                              -        // `slice` is the same for buffers and strings.
                              -        ret = this.head.data.slice(0, n);
                              -        this.head.data = this.head.data.slice(n);
                              -      } else if (n === this.head.data.length) {
                              -        // First chunk is a perfect match.
                              -        ret = this.shift();
                              -      } else {
                              -        // Result spans more than one buffer.
                              -        ret = hasStrings ? this._getString(n) : this._getBuffer(n);
                              -      }
                              -      return ret;
                              -    }
                              -  }, {
                              -    key: "first",
                              -    value: function first() {
                              -      return this.head.data;
                              -    }
                              -
                              -    // Consumes a specified amount of characters from the buffered data.
                              -  }, {
                              -    key: "_getString",
                              -    value: function _getString(n) {
                              -      var p = this.head;
                              -      var c = 1;
                              -      var ret = p.data;
                              -      n -= ret.length;
                              -      while (p = p.next) {
                              -        var str = p.data;
                              -        var nb = n > str.length ? str.length : n;
                              -        if (nb === str.length) ret += str;else ret += str.slice(0, n);
                              -        n -= nb;
                              -        if (n === 0) {
                              -          if (nb === str.length) {
                              -            ++c;
                              -            if (p.next) this.head = p.next;else this.head = this.tail = null;
                              -          } else {
                              -            this.head = p;
                              -            p.data = str.slice(nb);
                              -          }
                              -          break;
                              -        }
                              -        ++c;
                              -      }
                              -      this.length -= c;
                              -      return ret;
                              -    }
                              -
                              -    // Consumes a specified amount of bytes from the buffered data.
                              -  }, {
                              -    key: "_getBuffer",
                              -    value: function _getBuffer(n) {
                              -      var ret = Buffer.allocUnsafe(n);
                              -      var p = this.head;
                              -      var c = 1;
                              -      p.data.copy(ret);
                              -      n -= p.data.length;
                              -      while (p = p.next) {
                              -        var buf = p.data;
                              -        var nb = n > buf.length ? buf.length : n;
                              -        buf.copy(ret, ret.length - n, 0, nb);
                              -        n -= nb;
                              -        if (n === 0) {
                              -          if (nb === buf.length) {
                              -            ++c;
                              -            if (p.next) this.head = p.next;else this.head = this.tail = null;
                              -          } else {
                              -            this.head = p;
                              -            p.data = buf.slice(nb);
                              -          }
                              -          break;
                              -        }
                              -        ++c;
                              -      }
                              -      this.length -= c;
                              -      return ret;
                              -    }
                              -
                              -    // Make sure the linked list only shows the minimal necessary information.
                              -  }, {
                              -    key: custom,
                              -    value: function value(_, options) {
                              -      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {
                              -        // Only inspect one level.
                              -        depth: 0,
                              -        // It should not recurse.
                              -        customInspect: false
                              -      }));
                              -    }
                              -  }]);
                              -  return BufferList;
                              -}();
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/destroy.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/destroy.js
                              deleted file mode 100644
                              index 31a17c4dc46388..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/destroy.js
                              +++ /dev/null
                              @@ -1,96 +0,0 @@
                              -'use strict';
                              -
                              -// undocumented cb() API, needed for core, not for public API
                              -function destroy(err, cb) {
                              -  var _this = this;
                              -  var readableDestroyed = this._readableState && this._readableState.destroyed;
                              -  var writableDestroyed = this._writableState && this._writableState.destroyed;
                              -  if (readableDestroyed || writableDestroyed) {
                              -    if (cb) {
                              -      cb(err);
                              -    } else if (err) {
                              -      if (!this._writableState) {
                              -        process.nextTick(emitErrorNT, this, err);
                              -      } else if (!this._writableState.errorEmitted) {
                              -        this._writableState.errorEmitted = true;
                              -        process.nextTick(emitErrorNT, this, err);
                              -      }
                              -    }
                              -    return this;
                              -  }
                              -
                              -  // we set destroyed to true before firing error callbacks in order
                              -  // to make it re-entrance safe in case destroy() is called within callbacks
                              -
                              -  if (this._readableState) {
                              -    this._readableState.destroyed = true;
                              -  }
                              -
                              -  // if this is a duplex stream mark the writable part as destroyed as well
                              -  if (this._writableState) {
                              -    this._writableState.destroyed = true;
                              -  }
                              -  this._destroy(err || null, function (err) {
                              -    if (!cb && err) {
                              -      if (!_this._writableState) {
                              -        process.nextTick(emitErrorAndCloseNT, _this, err);
                              -      } else if (!_this._writableState.errorEmitted) {
                              -        _this._writableState.errorEmitted = true;
                              -        process.nextTick(emitErrorAndCloseNT, _this, err);
                              -      } else {
                              -        process.nextTick(emitCloseNT, _this);
                              -      }
                              -    } else if (cb) {
                              -      process.nextTick(emitCloseNT, _this);
                              -      cb(err);
                              -    } else {
                              -      process.nextTick(emitCloseNT, _this);
                              -    }
                              -  });
                              -  return this;
                              -}
                              -function emitErrorAndCloseNT(self, err) {
                              -  emitErrorNT(self, err);
                              -  emitCloseNT(self);
                              -}
                              -function emitCloseNT(self) {
                              -  if (self._writableState && !self._writableState.emitClose) return;
                              -  if (self._readableState && !self._readableState.emitClose) return;
                              -  self.emit('close');
                              -}
                              -function undestroy() {
                              -  if (this._readableState) {
                              -    this._readableState.destroyed = false;
                              -    this._readableState.reading = false;
                              -    this._readableState.ended = false;
                              -    this._readableState.endEmitted = false;
                              -  }
                              -  if (this._writableState) {
                              -    this._writableState.destroyed = false;
                              -    this._writableState.ended = false;
                              -    this._writableState.ending = false;
                              -    this._writableState.finalCalled = false;
                              -    this._writableState.prefinished = false;
                              -    this._writableState.finished = false;
                              -    this._writableState.errorEmitted = false;
                              -  }
                              -}
                              -function emitErrorNT(self, err) {
                              -  self.emit('error', err);
                              -}
                              -function errorOrDestroy(stream, err) {
                              -  // We have tests that rely on errors being emitted
                              -  // in the same tick, so changing this is semver major.
                              -  // For now when you opt-in to autoDestroy we allow
                              -  // the error to be emitted nextTick. In a future
                              -  // semver major update we should change the default to this.
                              -
                              -  var rState = stream._readableState;
                              -  var wState = stream._writableState;
                              -  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);
                              -}
                              -module.exports = {
                              -  destroy: destroy,
                              -  undestroy: undestroy,
                              -  errorOrDestroy: errorOrDestroy
                              -};
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
                              deleted file mode 100644
                              index 59c671b5af769b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/end-of-stream.js
                              +++ /dev/null
                              @@ -1,86 +0,0 @@
                              -// Ported from https://github.com/mafintosh/end-of-stream with
                              -// permission from the author, Mathias Buus (@mafintosh).
                              -
                              -'use strict';
                              -
                              -var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;
                              -function once(callback) {
                              -  var called = false;
                              -  return function () {
                              -    if (called) return;
                              -    called = true;
                              -    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
                              -      args[_key] = arguments[_key];
                              -    }
                              -    callback.apply(this, args);
                              -  };
                              -}
                              -function noop() {}
                              -function isRequest(stream) {
                              -  return stream.setHeader && typeof stream.abort === 'function';
                              -}
                              -function eos(stream, opts, callback) {
                              -  if (typeof opts === 'function') return eos(stream, null, opts);
                              -  if (!opts) opts = {};
                              -  callback = once(callback || noop);
                              -  var readable = opts.readable || opts.readable !== false && stream.readable;
                              -  var writable = opts.writable || opts.writable !== false && stream.writable;
                              -  var onlegacyfinish = function onlegacyfinish() {
                              -    if (!stream.writable) onfinish();
                              -  };
                              -  var writableEnded = stream._writableState && stream._writableState.finished;
                              -  var onfinish = function onfinish() {
                              -    writable = false;
                              -    writableEnded = true;
                              -    if (!readable) callback.call(stream);
                              -  };
                              -  var readableEnded = stream._readableState && stream._readableState.endEmitted;
                              -  var onend = function onend() {
                              -    readable = false;
                              -    readableEnded = true;
                              -    if (!writable) callback.call(stream);
                              -  };
                              -  var onerror = function onerror(err) {
                              -    callback.call(stream, err);
                              -  };
                              -  var onclose = function onclose() {
                              -    var err;
                              -    if (readable && !readableEnded) {
                              -      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
                              -      return callback.call(stream, err);
                              -    }
                              -    if (writable && !writableEnded) {
                              -      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();
                              -      return callback.call(stream, err);
                              -    }
                              -  };
                              -  var onrequest = function onrequest() {
                              -    stream.req.on('finish', onfinish);
                              -  };
                              -  if (isRequest(stream)) {
                              -    stream.on('complete', onfinish);
                              -    stream.on('abort', onclose);
                              -    if (stream.req) onrequest();else stream.on('request', onrequest);
                              -  } else if (writable && !stream._writableState) {
                              -    // legacy streams
                              -    stream.on('end', onlegacyfinish);
                              -    stream.on('close', onlegacyfinish);
                              -  }
                              -  stream.on('end', onend);
                              -  stream.on('finish', onfinish);
                              -  if (opts.error !== false) stream.on('error', onerror);
                              -  stream.on('close', onclose);
                              -  return function () {
                              -    stream.removeListener('complete', onfinish);
                              -    stream.removeListener('abort', onclose);
                              -    stream.removeListener('request', onrequest);
                              -    if (stream.req) stream.req.removeListener('finish', onfinish);
                              -    stream.removeListener('end', onlegacyfinish);
                              -    stream.removeListener('close', onlegacyfinish);
                              -    stream.removeListener('finish', onfinish);
                              -    stream.removeListener('end', onend);
                              -    stream.removeListener('error', onerror);
                              -    stream.removeListener('close', onclose);
                              -  };
                              -}
                              -module.exports = eos;
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from-browser.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from-browser.js
                              deleted file mode 100644
                              index a4ce56f3c90f60..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from-browser.js
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -module.exports = function () {
                              -  throw new Error('Readable.from is not available in the browser')
                              -};
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from.js
                              deleted file mode 100644
                              index 0a34ee92e3df85..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/from.js
                              +++ /dev/null
                              @@ -1,52 +0,0 @@
                              -'use strict';
                              -
                              -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
                              -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
                              -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
                              -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
                              -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
                              -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
                              -function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
                              -var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;
                              -function from(Readable, iterable, opts) {
                              -  var iterator;
                              -  if (iterable && typeof iterable.next === 'function') {
                              -    iterator = iterable;
                              -  } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);
                              -  var readable = new Readable(_objectSpread({
                              -    objectMode: true
                              -  }, opts));
                              -  // Reading boolean to protect against _read
                              -  // being called before last iteration completion.
                              -  var reading = false;
                              -  readable._read = function () {
                              -    if (!reading) {
                              -      reading = true;
                              -      next();
                              -    }
                              -  };
                              -  function next() {
                              -    return _next2.apply(this, arguments);
                              -  }
                              -  function _next2() {
                              -    _next2 = _asyncToGenerator(function* () {
                              -      try {
                              -        var _yield$iterator$next = yield iterator.next(),
                              -          value = _yield$iterator$next.value,
                              -          done = _yield$iterator$next.done;
                              -        if (done) {
                              -          readable.push(null);
                              -        } else if (readable.push(yield value)) {
                              -          next();
                              -        } else {
                              -          reading = false;
                              -        }
                              -      } catch (err) {
                              -        readable.destroy(err);
                              -      }
                              -    });
                              -    return _next2.apply(this, arguments);
                              -  }
                              -  return readable;
                              -}
                              -module.exports = from;
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/pipeline.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/pipeline.js
                              deleted file mode 100644
                              index e6f39241f98dd8..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/pipeline.js
                              +++ /dev/null
                              @@ -1,86 +0,0 @@
                              -// Ported from https://github.com/mafintosh/pump with
                              -// permission from the author, Mathias Buus (@mafintosh).
                              -
                              -'use strict';
                              -
                              -var eos;
                              -function once(callback) {
                              -  var called = false;
                              -  return function () {
                              -    if (called) return;
                              -    called = true;
                              -    callback.apply(void 0, arguments);
                              -  };
                              -}
                              -var _require$codes = require('../../../errors').codes,
                              -  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,
                              -  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;
                              -function noop(err) {
                              -  // Rethrow the error if it exists to avoid swallowing it
                              -  if (err) throw err;
                              -}
                              -function isRequest(stream) {
                              -  return stream.setHeader && typeof stream.abort === 'function';
                              -}
                              -function destroyer(stream, reading, writing, callback) {
                              -  callback = once(callback);
                              -  var closed = false;
                              -  stream.on('close', function () {
                              -    closed = true;
                              -  });
                              -  if (eos === undefined) eos = require('./end-of-stream');
                              -  eos(stream, {
                              -    readable: reading,
                              -    writable: writing
                              -  }, function (err) {
                              -    if (err) return callback(err);
                              -    closed = true;
                              -    callback();
                              -  });
                              -  var destroyed = false;
                              -  return function (err) {
                              -    if (closed) return;
                              -    if (destroyed) return;
                              -    destroyed = true;
                              -
                              -    // request.destroy just do .end - .abort is what we want
                              -    if (isRequest(stream)) return stream.abort();
                              -    if (typeof stream.destroy === 'function') return stream.destroy();
                              -    callback(err || new ERR_STREAM_DESTROYED('pipe'));
                              -  };
                              -}
                              -function call(fn) {
                              -  fn();
                              -}
                              -function pipe(from, to) {
                              -  return from.pipe(to);
                              -}
                              -function popCallback(streams) {
                              -  if (!streams.length) return noop;
                              -  if (typeof streams[streams.length - 1] !== 'function') return noop;
                              -  return streams.pop();
                              -}
                              -function pipeline() {
                              -  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {
                              -    streams[_key] = arguments[_key];
                              -  }
                              -  var callback = popCallback(streams);
                              -  if (Array.isArray(streams[0])) streams = streams[0];
                              -  if (streams.length < 2) {
                              -    throw new ERR_MISSING_ARGS('streams');
                              -  }
                              -  var error;
                              -  var destroys = streams.map(function (stream, i) {
                              -    var reading = i < streams.length - 1;
                              -    var writing = i > 0;
                              -    return destroyer(stream, reading, writing, function (err) {
                              -      if (!error) error = err;
                              -      if (err) destroys.forEach(call);
                              -      if (reading) return;
                              -      destroys.forEach(call);
                              -      callback(error);
                              -    });
                              -  });
                              -  return streams.reduce(pipe);
                              -}
                              -module.exports = pipeline;
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/state.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/state.js
                              deleted file mode 100644
                              index 3fbf8927e00179..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/state.js
                              +++ /dev/null
                              @@ -1,22 +0,0 @@
                              -'use strict';
                              -
                              -var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;
                              -function highWaterMarkFrom(options, isDuplex, duplexKey) {
                              -  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;
                              -}
                              -function getHighWaterMark(state, options, duplexKey, isDuplex) {
                              -  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);
                              -  if (hwm != null) {
                              -    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {
                              -      var name = isDuplex ? duplexKey : 'highWaterMark';
                              -      throw new ERR_INVALID_OPT_VALUE(name, hwm);
                              -    }
                              -    return Math.floor(hwm);
                              -  }
                              -
                              -  // Default value
                              -  return state.objectMode ? 16 : 16 * 1024;
                              -}
                              -module.exports = {
                              -  getHighWaterMark: getHighWaterMark
                              -};
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream-browser.js
                              deleted file mode 100644
                              index 9332a3fdae7060..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream-browser.js
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -module.exports = require('events').EventEmitter;
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream.js
                              deleted file mode 100644
                              index ce2ad5b6ee57f4..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/lib/internal/streams/stream.js
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -module.exports = require('stream');
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/package.json b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/package.json
                              deleted file mode 100644
                              index ade59e71aa0f17..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/package.json
                              +++ /dev/null
                              @@ -1,68 +0,0 @@
                              -{
                              -  "name": "readable-stream",
                              -  "version": "3.6.2",
                              -  "description": "Streams3, a user-land copy of the stream library from Node.js",
                              -  "main": "readable.js",
                              -  "engines": {
                              -    "node": ">= 6"
                              -  },
                              -  "dependencies": {
                              -    "inherits": "^2.0.3",
                              -    "string_decoder": "^1.1.1",
                              -    "util-deprecate": "^1.0.1"
                              -  },
                              -  "devDependencies": {
                              -    "@babel/cli": "^7.2.0",
                              -    "@babel/core": "^7.2.0",
                              -    "@babel/polyfill": "^7.0.0",
                              -    "@babel/preset-env": "^7.2.0",
                              -    "airtap": "0.0.9",
                              -    "assert": "^1.4.0",
                              -    "bl": "^2.0.0",
                              -    "deep-strict-equal": "^0.2.0",
                              -    "events.once": "^2.0.2",
                              -    "glob": "^7.1.2",
                              -    "gunzip-maybe": "^1.4.1",
                              -    "hyperquest": "^2.1.3",
                              -    "lolex": "^2.6.0",
                              -    "nyc": "^11.0.0",
                              -    "pump": "^3.0.0",
                              -    "rimraf": "^2.6.2",
                              -    "tap": "^12.0.0",
                              -    "tape": "^4.9.0",
                              -    "tar-fs": "^1.16.2",
                              -    "util-promisify": "^2.1.0"
                              -  },
                              -  "scripts": {
                              -    "test": "tap -J --no-esm test/parallel/*.js test/ours/*.js",
                              -    "ci": "TAP=1 tap --no-esm test/parallel/*.js test/ours/*.js | tee test.tap",
                              -    "test-browsers": "airtap --sauce-connect --loopback airtap.local -- test/browser.js",
                              -    "test-browser-local": "airtap --open --local -- test/browser.js",
                              -    "cover": "nyc npm test",
                              -    "report": "nyc report --reporter=lcov",
                              -    "update-browser-errors": "babel -o errors-browser.js errors.js"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/nodejs/readable-stream"
                              -  },
                              -  "keywords": [
                              -    "readable",
                              -    "stream",
                              -    "pipe"
                              -  ],
                              -  "browser": {
                              -    "util": false,
                              -    "worker_threads": false,
                              -    "./errors": "./errors-browser.js",
                              -    "./readable.js": "./readable-browser.js",
                              -    "./lib/internal/streams/from.js": "./lib/internal/streams/from-browser.js",
                              -    "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js"
                              -  },
                              -  "nyc": {
                              -    "include": [
                              -      "lib/**.js"
                              -    ]
                              -  },
                              -  "license": "MIT"
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable-browser.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable-browser.js
                              deleted file mode 100644
                              index adbf60de832f9d..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable-browser.js
                              +++ /dev/null
                              @@ -1,9 +0,0 @@
                              -exports = module.exports = require('./lib/_stream_readable.js');
                              -exports.Stream = exports;
                              -exports.Readable = exports;
                              -exports.Writable = require('./lib/_stream_writable.js');
                              -exports.Duplex = require('./lib/_stream_duplex.js');
                              -exports.Transform = require('./lib/_stream_transform.js');
                              -exports.PassThrough = require('./lib/_stream_passthrough.js');
                              -exports.finished = require('./lib/internal/streams/end-of-stream.js');
                              -exports.pipeline = require('./lib/internal/streams/pipeline.js');
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable.js b/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable.js
                              deleted file mode 100644
                              index 9e0ca120ded827..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/readable-stream/readable.js
                              +++ /dev/null
                              @@ -1,16 +0,0 @@
                              -var Stream = require('stream');
                              -if (process.env.READABLE_STREAM === 'disable' && Stream) {
                              -  module.exports = Stream.Readable;
                              -  Object.assign(module.exports, Stream);
                              -  module.exports.Stream = Stream;
                              -} else {
                              -  exports = module.exports = require('./lib/_stream_readable.js');
                              -  exports.Stream = Stream || exports;
                              -  exports.Readable = exports;
                              -  exports.Writable = require('./lib/_stream_writable.js');
                              -  exports.Duplex = require('./lib/_stream_duplex.js');
                              -  exports.Transform = require('./lib/_stream_transform.js');
                              -  exports.PassThrough = require('./lib/_stream_passthrough.js');
                              -  exports.finished = require('./lib/internal/streams/end-of-stream.js');
                              -  exports.pipeline = require('./lib/internal/streams/pipeline.js');
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/LICENSE.txt b/deps/npm/node_modules/node-gyp/node_modules/signal-exit/LICENSE.txt
                              deleted file mode 100644
                              index eead04a12162dc..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/LICENSE.txt
                              +++ /dev/null
                              @@ -1,16 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) 2015, Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software
                              -for any purpose with or without fee is hereby granted, provided
                              -that the above copyright notice and this permission notice
                              -appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
                              -OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
                              -LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
                              -OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                              -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                              -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/index.js b/deps/npm/node_modules/node-gyp/node_modules/signal-exit/index.js
                              deleted file mode 100644
                              index 93703f369265c6..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/index.js
                              +++ /dev/null
                              @@ -1,202 +0,0 @@
                              -// Note: since nyc uses this module to output coverage, any lines
                              -// that are in the direct sync flow of nyc's outputCoverage are
                              -// ignored, since we can never get coverage for them.
                              -// grab a reference to node's real process object right away
                              -var process = global.process
                              -
                              -const processOk = function (process) {
                              -  return process &&
                              -    typeof process === 'object' &&
                              -    typeof process.removeListener === 'function' &&
                              -    typeof process.emit === 'function' &&
                              -    typeof process.reallyExit === 'function' &&
                              -    typeof process.listeners === 'function' &&
                              -    typeof process.kill === 'function' &&
                              -    typeof process.pid === 'number' &&
                              -    typeof process.on === 'function'
                              -}
                              -
                              -// some kind of non-node environment, just no-op
                              -/* istanbul ignore if */
                              -if (!processOk(process)) {
                              -  module.exports = function () {
                              -    return function () {}
                              -  }
                              -} else {
                              -  var assert = require('assert')
                              -  var signals = require('./signals.js')
                              -  var isWin = /^win/i.test(process.platform)
                              -
                              -  var EE = require('events')
                              -  /* istanbul ignore if */
                              -  if (typeof EE !== 'function') {
                              -    EE = EE.EventEmitter
                              -  }
                              -
                              -  var emitter
                              -  if (process.__signal_exit_emitter__) {
                              -    emitter = process.__signal_exit_emitter__
                              -  } else {
                              -    emitter = process.__signal_exit_emitter__ = new EE()
                              -    emitter.count = 0
                              -    emitter.emitted = {}
                              -  }
                              -
                              -  // Because this emitter is a global, we have to check to see if a
                              -  // previous version of this library failed to enable infinite listeners.
                              -  // I know what you're about to say.  But literally everything about
                              -  // signal-exit is a compromise with evil.  Get used to it.
                              -  if (!emitter.infinite) {
                              -    emitter.setMaxListeners(Infinity)
                              -    emitter.infinite = true
                              -  }
                              -
                              -  module.exports = function (cb, opts) {
                              -    /* istanbul ignore if */
                              -    if (!processOk(global.process)) {
                              -      return function () {}
                              -    }
                              -    assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
                              -
                              -    if (loaded === false) {
                              -      load()
                              -    }
                              -
                              -    var ev = 'exit'
                              -    if (opts && opts.alwaysLast) {
                              -      ev = 'afterexit'
                              -    }
                              -
                              -    var remove = function () {
                              -      emitter.removeListener(ev, cb)
                              -      if (emitter.listeners('exit').length === 0 &&
                              -          emitter.listeners('afterexit').length === 0) {
                              -        unload()
                              -      }
                              -    }
                              -    emitter.on(ev, cb)
                              -
                              -    return remove
                              -  }
                              -
                              -  var unload = function unload () {
                              -    if (!loaded || !processOk(global.process)) {
                              -      return
                              -    }
                              -    loaded = false
                              -
                              -    signals.forEach(function (sig) {
                              -      try {
                              -        process.removeListener(sig, sigListeners[sig])
                              -      } catch (er) {}
                              -    })
                              -    process.emit = originalProcessEmit
                              -    process.reallyExit = originalProcessReallyExit
                              -    emitter.count -= 1
                              -  }
                              -  module.exports.unload = unload
                              -
                              -  var emit = function emit (event, code, signal) {
                              -    /* istanbul ignore if */
                              -    if (emitter.emitted[event]) {
                              -      return
                              -    }
                              -    emitter.emitted[event] = true
                              -    emitter.emit(event, code, signal)
                              -  }
                              -
                              -  // { : , ... }
                              -  var sigListeners = {}
                              -  signals.forEach(function (sig) {
                              -    sigListeners[sig] = function listener () {
                              -      /* istanbul ignore if */
                              -      if (!processOk(global.process)) {
                              -        return
                              -      }
                              -      // If there are no other listeners, an exit is coming!
                              -      // Simplest way: remove us and then re-send the signal.
                              -      // We know that this will kill the process, so we can
                              -      // safely emit now.
                              -      var listeners = process.listeners(sig)
                              -      if (listeners.length === emitter.count) {
                              -        unload()
                              -        emit('exit', null, sig)
                              -        /* istanbul ignore next */
                              -        emit('afterexit', null, sig)
                              -        /* istanbul ignore next */
                              -        if (isWin && sig === 'SIGHUP') {
                              -          // "SIGHUP" throws an `ENOSYS` error on Windows,
                              -          // so use a supported signal instead
                              -          sig = 'SIGINT'
                              -        }
                              -        /* istanbul ignore next */
                              -        process.kill(process.pid, sig)
                              -      }
                              -    }
                              -  })
                              -
                              -  module.exports.signals = function () {
                              -    return signals
                              -  }
                              -
                              -  var loaded = false
                              -
                              -  var load = function load () {
                              -    if (loaded || !processOk(global.process)) {
                              -      return
                              -    }
                              -    loaded = true
                              -
                              -    // This is the number of onSignalExit's that are in play.
                              -    // It's important so that we can count the correct number of
                              -    // listeners on signals, and don't wait for the other one to
                              -    // handle it instead of us.
                              -    emitter.count += 1
                              -
                              -    signals = signals.filter(function (sig) {
                              -      try {
                              -        process.on(sig, sigListeners[sig])
                              -        return true
                              -      } catch (er) {
                              -        return false
                              -      }
                              -    })
                              -
                              -    process.emit = processEmit
                              -    process.reallyExit = processReallyExit
                              -  }
                              -  module.exports.load = load
                              -
                              -  var originalProcessReallyExit = process.reallyExit
                              -  var processReallyExit = function processReallyExit (code) {
                              -    /* istanbul ignore if */
                              -    if (!processOk(global.process)) {
                              -      return
                              -    }
                              -    process.exitCode = code || /* istanbul ignore next */ 0
                              -    emit('exit', process.exitCode, null)
                              -    /* istanbul ignore next */
                              -    emit('afterexit', process.exitCode, null)
                              -    /* istanbul ignore next */
                              -    originalProcessReallyExit.call(process, process.exitCode)
                              -  }
                              -
                              -  var originalProcessEmit = process.emit
                              -  var processEmit = function processEmit (ev, arg) {
                              -    if (ev === 'exit' && processOk(global.process)) {
                              -      /* istanbul ignore else */
                              -      if (arg !== undefined) {
                              -        process.exitCode = arg
                              -      }
                              -      var ret = originalProcessEmit.apply(this, arguments)
                              -      /* istanbul ignore next */
                              -      emit('exit', process.exitCode, null)
                              -      /* istanbul ignore next */
                              -      emit('afterexit', process.exitCode, null)
                              -      /* istanbul ignore next */
                              -      return ret
                              -    } else {
                              -      return originalProcessEmit.apply(this, arguments)
                              -    }
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/package.json b/deps/npm/node_modules/node-gyp/node_modules/signal-exit/package.json
                              deleted file mode 100644
                              index e1a00311f9fbe5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/package.json
                              +++ /dev/null
                              @@ -1,38 +0,0 @@
                              -{
                              -  "name": "signal-exit",
                              -  "version": "3.0.7",
                              -  "description": "when you want to fire an event no matter how a process exits.",
                              -  "main": "index.js",
                              -  "scripts": {
                              -    "test": "tap",
                              -    "snap": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublishOnly": "git push origin --follow-tags"
                              -  },
                              -  "files": [
                              -    "index.js",
                              -    "signals.js"
                              -  ],
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/tapjs/signal-exit.git"
                              -  },
                              -  "keywords": [
                              -    "signal",
                              -    "exit"
                              -  ],
                              -  "author": "Ben Coe ",
                              -  "license": "ISC",
                              -  "bugs": {
                              -    "url": "https://github.com/tapjs/signal-exit/issues"
                              -  },
                              -  "homepage": "https://github.com/tapjs/signal-exit",
                              -  "devDependencies": {
                              -    "chai": "^3.5.0",
                              -    "coveralls": "^3.1.1",
                              -    "nyc": "^15.1.0",
                              -    "standard-version": "^9.3.1",
                              -    "tap": "^15.1.1"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/signals.js b/deps/npm/node_modules/node-gyp/node_modules/signal-exit/signals.js
                              deleted file mode 100644
                              index 3bd67a8a554e30..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/signal-exit/signals.js
                              +++ /dev/null
                              @@ -1,53 +0,0 @@
                              -// This is not the set of all possible signals.
                              -//
                              -// It IS, however, the set of all signals that trigger
                              -// an exit on either Linux or BSD systems.  Linux is a
                              -// superset of the signal names supported on BSD, and
                              -// the unknown signals just fail to register, so we can
                              -// catch that easily enough.
                              -//
                              -// Don't bother with SIGKILL.  It's uncatchable, which
                              -// means that we can't fire any callbacks anyway.
                              -//
                              -// If a user does happen to register a handler on a non-
                              -// fatal signal like SIGWINCH or something, and then
                              -// exit, it'll end up firing `process.emit('exit')`, so
                              -// the handler will be fired anyway.
                              -//
                              -// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
                              -// artificially, inherently leave the process in a
                              -// state from which it is not safe to try and enter JS
                              -// listeners.
                              -module.exports = [
                              -  'SIGABRT',
                              -  'SIGALRM',
                              -  'SIGHUP',
                              -  'SIGINT',
                              -  'SIGTERM'
                              -]
                              -
                              -if (process.platform !== 'win32') {
                              -  module.exports.push(
                              -    'SIGVTALRM',
                              -    'SIGXCPU',
                              -    'SIGXFSZ',
                              -    'SIGUSR2',
                              -    'SIGTRAP',
                              -    'SIGSYS',
                              -    'SIGQUIT',
                              -    'SIGIOT'
                              -    // should detect profiler and enable/disable accordingly.
                              -    // see #21
                              -    // 'SIGPROF'
                              -  )
                              -}
                              -
                              -if (process.platform === 'linux') {
                              -  module.exports.push(
                              -    'SIGIO',
                              -    'SIGPOLL',
                              -    'SIGPWR',
                              -    'SIGSTKFLT',
                              -    'SIGUNUSED'
                              -  )
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/which/LICENSE b/deps/npm/node_modules/node-gyp/node_modules/which/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/which/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/which/README.md b/deps/npm/node_modules/node-gyp/node_modules/which/README.md
                              deleted file mode 100644
                              index cd833509f3bcc9..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/which/README.md
                              +++ /dev/null
                              @@ -1,54 +0,0 @@
                              -# which
                              -
                              -Like the unix `which` utility.
                              -
                              -Finds the first instance of a specified executable in the PATH
                              -environment variable.  Does not cache the results, so `hash -r` is not
                              -needed when the PATH changes.
                              -
                              -## USAGE
                              -
                              -```javascript
                              -var which = require('which')
                              -
                              -// async usage
                              -which('node', function (er, resolvedPath) {
                              -  // er is returned if no "node" is found on the PATH
                              -  // if it is found, then the absolute path to the exec is returned
                              -})
                              -
                              -// or promise
                              -which('node').then(resolvedPath => { ... }).catch(er => { ... not found ... })
                              -
                              -// sync usage
                              -// throws if not found
                              -var resolved = which.sync('node')
                              -
                              -// if nothrow option is used, returns null if not found
                              -resolved = which.sync('node', {nothrow: true})
                              -
                              -// Pass options to override the PATH and PATHEXT environment vars.
                              -which('node', { path: someOtherPath }, function (er, resolved) {
                              -  if (er)
                              -    throw er
                              -  console.log('found at %j', resolved)
                              -})
                              -```
                              -
                              -## CLI USAGE
                              -
                              -Same as the BSD `which(1)` binary.
                              -
                              -```
                              -usage: which [-as] program ...
                              -```
                              -
                              -## OPTIONS
                              -
                              -You may pass an options object as the second argument.
                              -
                              -- `path`: Use instead of the `PATH` environment variable.
                              -- `pathExt`: Use instead of the `PATHEXT` environment variable.
                              -- `all`: Return all matches, instead of just the first one.  Note that
                              -  this means the function returns an array of strings instead of a
                              -  single string.
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/which/bin/node-which b/deps/npm/node_modules/node-gyp/node_modules/which/bin/node-which
                              deleted file mode 100755
                              index 7cee3729eebdd0..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/which/bin/node-which
                              +++ /dev/null
                              @@ -1,52 +0,0 @@
                              -#!/usr/bin/env node
                              -var which = require("../")
                              -if (process.argv.length < 3)
                              -  usage()
                              -
                              -function usage () {
                              -  console.error('usage: which [-as] program ...')
                              -  process.exit(1)
                              -}
                              -
                              -var all = false
                              -var silent = false
                              -var dashdash = false
                              -var args = process.argv.slice(2).filter(function (arg) {
                              -  if (dashdash || !/^-/.test(arg))
                              -    return true
                              -
                              -  if (arg === '--') {
                              -    dashdash = true
                              -    return false
                              -  }
                              -
                              -  var flags = arg.substr(1).split('')
                              -  for (var f = 0; f < flags.length; f++) {
                              -    var flag = flags[f]
                              -    switch (flag) {
                              -      case 's':
                              -        silent = true
                              -        break
                              -      case 'a':
                              -        all = true
                              -        break
                              -      default:
                              -        console.error('which: illegal option -- ' + flag)
                              -        usage()
                              -    }
                              -  }
                              -  return false
                              -})
                              -
                              -process.exit(args.reduce(function (pv, current) {
                              -  try {
                              -    var f = which.sync(current, { all: all })
                              -    if (all)
                              -      f = f.join('\n')
                              -    if (!silent)
                              -      console.log(f)
                              -    return pv;
                              -  } catch (e) {
                              -    return 1;
                              -  }
                              -}, 0))
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/which/package.json b/deps/npm/node_modules/node-gyp/node_modules/which/package.json
                              deleted file mode 100644
                              index 97ad7fbabc52b5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/which/package.json
                              +++ /dev/null
                              @@ -1,43 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me)",
                              -  "name": "which",
                              -  "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
                              -  "version": "2.0.2",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/node-which.git"
                              -  },
                              -  "main": "which.js",
                              -  "bin": {
                              -    "node-which": "./bin/node-which"
                              -  },
                              -  "license": "ISC",
                              -  "dependencies": {
                              -    "isexe": "^2.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "mkdirp": "^0.5.0",
                              -    "rimraf": "^2.6.2",
                              -    "tap": "^14.6.9"
                              -  },
                              -  "scripts": {
                              -    "test": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "prepublish": "npm run changelog",
                              -    "prechangelog": "bash gen-changelog.sh",
                              -    "changelog": "git add CHANGELOG.md",
                              -    "postchangelog": "git commit -m 'update changelog - '${npm_package_version}",
                              -    "postpublish": "git push origin --follow-tags"
                              -  },
                              -  "files": [
                              -    "which.js",
                              -    "bin/node-which"
                              -  ],
                              -  "tap": {
                              -    "check-coverage": true
                              -  },
                              -  "engines": {
                              -    "node": ">= 8"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/node_modules/which/which.js b/deps/npm/node_modules/node-gyp/node_modules/which/which.js
                              deleted file mode 100644
                              index 82afffd2143749..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/node_modules/which/which.js
                              +++ /dev/null
                              @@ -1,125 +0,0 @@
                              -const isWindows = process.platform === 'win32' ||
                              -    process.env.OSTYPE === 'cygwin' ||
                              -    process.env.OSTYPE === 'msys'
                              -
                              -const path = require('path')
                              -const COLON = isWindows ? ';' : ':'
                              -const isexe = require('isexe')
                              -
                              -const getNotFoundError = (cmd) =>
                              -  Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
                              -
                              -const getPathInfo = (cmd, opt) => {
                              -  const colon = opt.colon || COLON
                              -
                              -  // If it has a slash, then we don't bother searching the pathenv.
                              -  // just check the file itself, and that's it.
                              -  const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
                              -    : (
                              -      [
                              -        // windows always checks the cwd first
                              -        ...(isWindows ? [process.cwd()] : []),
                              -        ...(opt.path || process.env.PATH ||
                              -          /* istanbul ignore next: very unusual */ '').split(colon),
                              -      ]
                              -    )
                              -  const pathExtExe = isWindows
                              -    ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
                              -    : ''
                              -  const pathExt = isWindows ? pathExtExe.split(colon) : ['']
                              -
                              -  if (isWindows) {
                              -    if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
                              -      pathExt.unshift('')
                              -  }
                              -
                              -  return {
                              -    pathEnv,
                              -    pathExt,
                              -    pathExtExe,
                              -  }
                              -}
                              -
                              -const which = (cmd, opt, cb) => {
                              -  if (typeof opt === 'function') {
                              -    cb = opt
                              -    opt = {}
                              -  }
                              -  if (!opt)
                              -    opt = {}
                              -
                              -  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
                              -  const found = []
                              -
                              -  const step = i => new Promise((resolve, reject) => {
                              -    if (i === pathEnv.length)
                              -      return opt.all && found.length ? resolve(found)
                              -        : reject(getNotFoundError(cmd))
                              -
                              -    const ppRaw = pathEnv[i]
                              -    const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
                              -
                              -    const pCmd = path.join(pathPart, cmd)
                              -    const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
                              -      : pCmd
                              -
                              -    resolve(subStep(p, i, 0))
                              -  })
                              -
                              -  const subStep = (p, i, ii) => new Promise((resolve, reject) => {
                              -    if (ii === pathExt.length)
                              -      return resolve(step(i + 1))
                              -    const ext = pathExt[ii]
                              -    isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
                              -      if (!er && is) {
                              -        if (opt.all)
                              -          found.push(p + ext)
                              -        else
                              -          return resolve(p + ext)
                              -      }
                              -      return resolve(subStep(p, i, ii + 1))
                              -    })
                              -  })
                              -
                              -  return cb ? step(0).then(res => cb(null, res), cb) : step(0)
                              -}
                              -
                              -const whichSync = (cmd, opt) => {
                              -  opt = opt || {}
                              -
                              -  const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
                              -  const found = []
                              -
                              -  for (let i = 0; i < pathEnv.length; i ++) {
                              -    const ppRaw = pathEnv[i]
                              -    const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
                              -
                              -    const pCmd = path.join(pathPart, cmd)
                              -    const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
                              -      : pCmd
                              -
                              -    for (let j = 0; j < pathExt.length; j ++) {
                              -      const cur = p + pathExt[j]
                              -      try {
                              -        const is = isexe.sync(cur, { pathExt: pathExtExe })
                              -        if (is) {
                              -          if (opt.all)
                              -            found.push(cur)
                              -          else
                              -            return cur
                              -        }
                              -      } catch (ex) {}
                              -    }
                              -  }
                              -
                              -  if (opt.all && found.length)
                              -    return found
                              -
                              -  if (opt.nothrow)
                              -    return null
                              -
                              -  throw getNotFoundError(cmd)
                              -}
                              -
                              -module.exports = which
                              -which.sync = whichSync
                              diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
                              index 7e9fb648ab0825..80c63f2e72c3d9 100644
                              --- a/deps/npm/node_modules/node-gyp/package.json
                              +++ b/deps/npm/node_modules/node-gyp/package.json
                              @@ -11,7 +11,7 @@
                                   "bindings",
                                   "gyp"
                                 ],
                              -  "version": "9.4.0",
                              +  "version": "10.0.1",
                                 "installVersion": 11,
                                 "author": "Nathan Rajlich  (http://tootallnate.net)",
                                 "repository": {
                              @@ -24,28 +24,28 @@
                                 "dependencies": {
                                   "env-paths": "^2.2.0",
                                   "exponential-backoff": "^3.1.1",
                              -    "glob": "^7.1.4",
                              +    "glob": "^10.3.10",
                                   "graceful-fs": "^4.2.6",
                              -    "make-fetch-happen": "^11.0.3",
                              -    "nopt": "^6.0.0",
                              -    "npmlog": "^6.0.0",
                              -    "rimraf": "^3.0.2",
                              +    "make-fetch-happen": "^13.0.0",
                              +    "nopt": "^7.0.0",
                              +    "proc-log": "^3.0.0",
                                   "semver": "^7.3.5",
                                   "tar": "^6.1.2",
                              -    "which": "^2.0.2"
                              +    "which": "^4.0.0"
                                 },
                                 "engines": {
                              -    "node": "^12.13 || ^14.13 || >=16"
                              +    "node": "^16.14.0 || >=18.0.0"
                                 },
                                 "devDependencies": {
                                   "bindings": "^1.5.0",
                              +    "cross-env": "^7.0.3",
                                   "mocha": "^10.2.0",
                                   "nan": "^2.14.2",
                                   "require-inject": "^1.4.4",
                              -    "standard": "^14.3.4"
                              +    "standard": "^17.0.0"
                                 },
                                 "scripts": {
                              -    "lint": "standard */*.js test/**/*.js",
                              -    "test": "npm run lint && mocha --reporter=test/reporter.js test/test-download.js test/test-*"
                              +    "lint": "standard \"*/*.js\" \"test/**/*.js\" \".github/**/*.js\"",
                              +    "test": "cross-env NODE_GYP_NULL_LOGGER=true mocha --timeout 15000 test/test-download.js test/test-*"
                                 }
                               }
                              diff --git a/deps/npm/node_modules/node-gyp/test/common.js b/deps/npm/node_modules/node-gyp/test/common.js
                              deleted file mode 100644
                              index b714ee29029d36..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/common.js
                              +++ /dev/null
                              @@ -1,3 +0,0 @@
                              -const envPaths = require('env-paths')
                              -
                              -module.exports.devDir = () => envPaths('node-gyp', { suffix: '' }).cache
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt
                              deleted file mode 100644
                              index 244f6b07982409..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools","version":"15.9.28307.665","packages":["Microsoft.VisualStudio.Product.BuildTools","Microsoft.VisualStudio.Component.VC.CoreIde","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced","Microsoft.VisualStudio.VC.Ide.MDD","Microsoft.VisualStudio.VC.Ide.x64","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.JavaScript.LanguageService","Microsoft.VisualStudio.JavaScript.LanguageService.Resources","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.VC.Ide.Base.Resources","Microsoft.VisualStudio.PackageGroup.Core","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger.Managed","Microsoft.CodeAnalysis.VisualStudio.Setup.Resources","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.CodeAnalysis.ExpressionEvaluator.Resources","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.Debugger.Resources","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.VisualStudio.Community","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.MSHtml","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.PackageGroup.CoreEditor","PortableFacades","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.GraphProvider","Microsoft.DiaSymReader","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.PackageGroup.TeamExplorer","Microsoft.TeamFoundation.OfficeIntegration","Microsoft.TeamFoundation.OfficeIntegration.Resources","Microsoft.VisualStudio.TeamExplorer","Microsoft.ServiceHub","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.SLNX.VSIX","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.MinShell.Interop","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.Log.Resources","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.CoreEditor","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.MefHosting","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualStudio.Initializer","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.Editors","Microsoft.Net.4.TargetingPack","Microsoft.VisualStudio.Component.Windows10SDK.17134","Win10SDK_10.0.17134","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualStudio.Workload.MSBuildTools","Microsoft.VisualStudio.Component.CoreBuildTools","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.BuildTools.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Component.MSBuild","Microsoft.PythonTools.BuildCore.Vsix","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers.Resources","Microsoft.CodeAnalysis.Compilers","Microsoft.Net.PackageGroup.4.6.1.Redist","Microsoft.VisualStudio.NativeImageSupport","Microsoft.Build"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt
                              deleted file mode 100644
                              index dd5e77dafb9dfe..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community","version":"15.9.28307.665","packages":["Microsoft.VisualStudio.Component.Windows10SDK.IpOverUsb","Win10SDK_IpOverUsb","Microsoft.VisualStudio.Component.VC.ATL.ARM64","Microsoft.VisualCpp.ATL.ARM64","Microsoft.VisualStudio.Component.VC.ATL.ARM","Microsoft.VisualCpp.ATL.ARM","Microsoft.VisualStudio.Component.VC.Tools.ARM","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualStudio.Graphics.Analyzer.Resources","Microsoft.Icecap.Analysis","Microsoft.VisualCpp.CRT.Redist.arm.OneCore.Desktop","Microsoft.VisualCpp.CRT.arm.Store","Microsoft.VisualCpp.CRT.arm.Desktop","Microsoft.VisualStudio.PackageGroup.VC.Tools.x64.ARM","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetarm","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetARM.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM.Resources","Microsoft.VisualCpp.Premium.Tools.ARM.Base","Microsoft.VisualCpp.Premium.Tools.ARM.Base.Resources","Microsoft.VisualCpp.PGO.ARM","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualStudio.Product.Community","Microsoft.VisualCpp.Tools.Hostx86.Targetarm","Microsoft.VisualStudio.Component.VC.Tools.ARM64","Microsoft.VisualStudio.VC.MSBuild.Arm64","Microsoft.VisualCpp.CRT.Redist.ARM64.OneCore.Desktop","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.CRT.ARM64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ARM64.Store","Microsoft.VisualCpp.CRT.ARM64.Desktop","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.Icecap.Analysis.Resources","Microsoft.VisualCpp.VCTip.hostX86.targetARM","Microsoft.VisualStudio.PackageGroup.VC.Tools.x64.ARM64","Microsoft.VisualCpp.Tools.Core","Microsoft.VisualCpp.PGO.ARM64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetarm64","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetARM64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM64.Resources","Microsoft.VisualCpp.Premium.Tools.ARM64.Base","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Tools.HostX86.TargetARM.Resources","Microsoft.VisualCpp.CRT.Redist.ARM64","Microsoft.VisualCpp.CRT.arm.OneCore.Desktop","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Component.WixToolset.VisualStudioExtension.Dev15","WixToolset.VisualStudioExtension.Dev15","Microsoft.VisualCpp.MFC.X64","Microsoft.VisualCpp.ATL.Headers","Microsoft.VisualStudio.Component.VC.CMake.Project","Microsoft.VisualStudio.VC.CMake","Microsoft.VisualStudio.VC.CMake.Project","Microsoft.VisualStudio.Component.Windows10SDK.17763","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","MLGen","Microsoft.VisualStudio.Graphics.Analyzer","Microsoft.VisualStudio.Component.TestTools.Core","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.NuGet.Licenses","SQLCommon","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualCpp.Tools.HostX64.TargetARM","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualCpp.HTMLHelpWorkshop.Msi","Microsoft.Icecap.Collection.Msi.Resources","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.VCTip.hostX64.targetARM","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Templates.UnitTest","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.Graphics.Appid","Microsoft.VisualCpp.ATL.Source","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.Debugger.ImmersiveActivateHelper.Msi","Microsoft.VisualStudio.Debugger.JustInTime","Microsoft.DiagnosticsHub.CpuSampling","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common","Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res","Microsoft.VisualStudio.ProTools.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualCpp.Tools.HostX64.TargetARM.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent","Microsoft.Component.MSBuild","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualStudio.WebToolsExtensions","Microsoft.VisualCpp.Tools.Hostx86.Targetarm64","Microsoft.VisualStudio.TextTemplating.MSBuild","Microsoft.VisualCpp.VCTip.hostX86.targetARM64","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualCpp.Tools.HostX86.TargetARM64.Resources","Microsoft.VisualStudio.RazorExtension","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualCpp.MFC.Source","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.Graphics.Viewers","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.MFC.Redist.X86","Microsoft.VisualStudio.WebToolsExtensions.Chip","Microsoft.DiagnosticsHub.Runtime.Resources","Microsoft.DiagnosticsHub.CpuSampling.Targeted","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.Component.VC.DiagnosticTools","Microsoft.VisualCpp.MFC.Redist.X64","Microsoft.VisualStudio.PackageGroup.TestTools.Native","Microsoft.VisualStudio.Graphics.Viewers.Resources","Microsoft.VisualCpp.MFC.MBCS","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Component.TextTemplating","Win10SDK_10.0.17763","Microsoft.VisualStudio.VC.Ide.Base.Resources","Microsoft.VisualCpp.MFC.MBCS.X64","Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage","Microsoft.VisualStudio.Graphics.EnableTools","Microsoft.VisualStudio.Graphics.Appid.Resources","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualCpp.MFC.Headers","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.Graphics.Analyzer.Targeted","Microsoft.VisualCpp.CRT.Headers","Microsoft.DiagnosticsHub.Runtime.Targeted","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetARM64","Microsoft.VisualCpp.VCTip.hostX64.targetARM64","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.Icecap.Collection.Msi","Microsoft.VisualCpp.ATL.X86","Microsoft.VisualCpp.Tools.HostX64.TargetARM64.Resources","Microsoft.VisualStudio.Component.VC.ATLMFC","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.Icecap.Collection.Msi.Resources.Targeted","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualStudio.Component.Graphics.Tools","Microsoft.VisualStudio.WebTools.Resources","Microsoft.VisualCpp.ATL.X64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualStudio.Component.Graphics.Win81","Microsoft.VisualStudio.VC.Ide.MDD","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.Icecap.Analysis.Resources.Targeted","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Component.VC.CoreIde","Microsoft.VisualStudio.VC.Ide.MFC.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualStudio.TextTemplating.Core","Microsoft.VisualStudio.JavaScript.LanguageService","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.CredentialProvider","Microsoft.VisualStudio.VC.Templates.Desktop","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core","Microsoft.VisualStudio.TextTemplating.Integration","Microsoft.VisualStudio.Component.NuGet","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced","Microsoft.VisualCpp.PGO.Headers","Microsoft.DiagnosticsHub.Collection","Microsoft.Icecap.Collection.Msi.Targeted","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.WebTools.WSP.FSA","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualStudio.Branding.Community","Microsoft.VisualStudio.VC.Ide.x64","Microsoft.VisualStudio.WebToolsExtensions.Common","Microsoft.VisualStudio.WebTools.MSBuild","Microsoft.VisualStudio.NuGet.Core","Microsoft.DiagnosticsHub.Collection.Service","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.Net.4.TargetingPack","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.DiaSymReader.Native","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.Community.Extra.Resources","Microsoft.VisualStudio.Component.Roslyn.LanguageServices","Microsoft.DiagnosticsHub.Collection.StopService.Install","Microsoft.VisualStudio.InteractiveWindow","Microsoft.PackageGroup.DiagnosticsHub.Platform","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.Community.Extra","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestTools","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources","Microsoft.VisualStudio.PackageGroup.TestTools.Core","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualStudio.TestTools.Pex.Common","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy","Microsoft.VisualStudio.PackageGroup.MinShell.Interop","Microsoft.CodeAnalysis.ExpressionEvaluator.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualStudio.PackageGroup.CoreEditor","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional","Microsoft.VisualStudio.Debugger.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors","sqlsysclrtypes","Microsoft.VisualStudio.ProTools","Component.Microsoft.VisualStudio.RazorExtension","Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI","Microsoft.Build.Dependencies","Microsoft.VisualStudio.WebTools.WSP.FSA.Resources","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualStudio.VC.Ide.ATL.Resources","Microsoft.VisualStudio.VC.Templates.UnitTest.Resources","Microsoft.VisualStudio.Debugger.Managed","Microsoft.VisualStudio.Workload.NativeDesktop","Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest","Microsoft.VisualStudio.Debugger.JustInTime.Msi","Microsoft.Net.PackageGroup.4.6.1.Redist","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","sqlsysclrtypes","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.TestTools.TestWIExtension","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.WebTools","Microsoft.VisualStudio.Component.VC.Redist.14.Latest","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.TextTemplating.Integration.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.TeamFoundation.OfficeIntegration.Resources","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.JavaScript.LanguageService.Resources","Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest","Microsoft.VisualStudio.PackageGroup.Community","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.Component.Windows10SDK.17134","Microsoft.VisualStudio.PackageGroup.Core","PortableFacades","Microsoft.DiaSymReader","Microsoft.DiagnosticsHub.Runtime","Microsoft.VisualStudio.Component.CoreEditor","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.Community","Microsoft.TeamFoundation.OfficeIntegration","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualCpp.Tools.Common.UtilsPrereq","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.ServiceHub","Microsoft.VisualStudio.Editors","Microsoft.VisualStudio.TeamExplorer","Microsoft.CodeAnalysis.VisualStudio.InteractiveComponents.Resources","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.GraphProvider","Microsoft.CodeAnalysis.VisualStudio.InteractiveComponents","Microsoft.CodeAnalysis.VisualStudio.Setup.Interactive.Resources","Microsoft.CodeAnalysis.VisualStudio.Setup.Resources","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.NuGet.Build.Tasks","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.CodeAnalysis.Compilers.Resources","Microsoft.CodeAnalysis.Compilers","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.Build","Microsoft.VisualStudio.VC.Ide.TestAdapterForBoostTest","Microsoft.VisualStudio.VC.Ide.ATL","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.Workload.CoreEditor","Microsoft.VisualStudio.MinShell.Interop","Microsoft.Build.FileTracker.Msi","Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core","Microsoft.MSHtml","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips","Microsoft.VisualStudio.Devenv.Msi","Microsoft.VisualStudio.Component.VC.ATL","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualStudio.SLNX.VSIX","Microsoft.VisualStudio.CoreEditor","Win10SDK_10.0.17134","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.Component.Debugger.JustInTime","Microsoft.VisualStudio.VC.Ide.MFC","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.PackageGroup.TeamExplorer","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.Devenv","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualStudio.Devenv.Resources","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.MefHosting","Microsoft.DiagnosticsHub.Collection.StopService.Uninstall","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualCpp.MFC.X86","Microsoft.VisualStudio.Log.Resources","Microsoft.Icecap.Analysis.Targeted","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.MinShell.x86","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.LanguageServer","Microsoft.VisualStudio.NativeImageSupport","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.Devenv.Config","Microsoft.VisualStudio.MinShell.Resources","Microsoft.VisualStudio.Initializer","Microsoft.Net.PackageGroup.4.6.Redist"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt
                              deleted file mode 100644
                              index c4b3b5f2b01635..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\WDExpress","version":"15.9.28307.858","packages":["Microsoft.VisualStudio.Product.WDExpress","Microsoft.VisualStudio.Workload.WDExpress","Microsoft.VisualStudio.Component.Windows10SDK.17763","MLGen","Win10SDK_10.0.17763","Microsoft.VisualStudio.Component.Windows10SDK.14393","Win10SDK_10.0.14393.795","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.Component.VC.Tools.ARM64","Microsoft.VisualStudio.VC.MSBuild.Arm64","Microsoft.VisualCpp.CRT.Redist.ARM64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.ARM64","Microsoft.VisualCpp.CRT.ARM64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ARM64.Store","Microsoft.VisualCpp.CRT.ARM64.Desktop","Microsoft.VisualCpp.Tools.Hostx86.Targetarm64","Microsoft.VisualCpp.VCTip.hostX86.targetARM64","Microsoft.VisualCpp.Tools.HostX86.TargetARM64.Resources","Microsoft.VisualStudio.Component.VC.Tools.ARM","Microsoft.VisualCpp.Tools.Hostx86.Targetarm","Microsoft.VisualCpp.VCTip.hostX86.targetARM","Microsoft.VisualCpp.Tools.HostX86.TargetARM.Resources","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.arm.OneCore.Desktop","Microsoft.VisualCpp.CRT.arm.OneCore.Desktop","Microsoft.VisualCpp.CRT.arm.Store","Microsoft.VisualCpp.CRT.arm.Desktop","Microsoft.VisualStudio.VC.Templates.UnitTest","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP","Microsoft.VisualStudio.VC.Templates.UnitTest.Resources","Microsoft.VisualStudio.VC.Templates.Desktop","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.JavaScript.LanguageService","Microsoft.VisualStudio.JavaScript.LanguageService.Resources","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.VC.Ide.Base.Resources","Microsoft.VisualStudio.Component.VC.CLI.Support","Microsoft.VisualCpp.CLI.X86","Microsoft.VisualCpp.CLI.X64","Microsoft.VisualCpp.CLI.Source","Microsoft.VisualCpp.CLI.ARM64","Microsoft.VisualCpp.CLI.ARM","Microsoft.VisualStudio.VC.Templates.CLR","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.VC.Templates.CLR.Resources","Microsoft.Component.VC.Runtime.OSSupport","Microsoft.Windows.UniversalCRT.Tools.Msi","Microsoft.Windows.UniversalCRT.Tools.Msi","Microsoft.Windows.UniversalCRT.ExtensionSDK.Msi","Microsoft.Windows.UniversalCRT.HeadersLibsSources.Msi","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.Component.HelpViewer","Microsoft.HelpViewer","Microsoft.VisualStudio.Help.Configuration.Msi","Microsoft.VisualStudio.Component.SQL.DataSources","Microsoft.VisualStudio.Component.SQL.SSDT","Microsoft.VisualStudio.Component.SQL.CMDUtils","sqlcmdlnutils","Microsoft.VisualStudio.Component.Common.Azure.Tools","Microsoft.VisualStudio.Azure.CommonAzureTools","SSDT","Microsoft.VisualStudio.Component.SQL.ADAL","sql_adalsql","Microsoft.VisualStudio.Component.NuGet","Microsoft.CredentialProvider","Microsoft.VisualStudio.NuGet.Licenses","Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime","Microsoft.VisualStudio.Component.SQL.NCLI","sqllocaldb","sqlncli","Microsoft.VisualStudio.Component.EntityFramework","Microsoft.VisualStudio.PackageGroup.DslRuntime","Microsoft.VisualStudio.Dsl.Core","Microsoft.VisualStudio.Dsl.GraphObject","Microsoft.VisualStudio.Dsl.Core.Resources","Microsoft.VisualStudio.EntityFrameworkTools","Microsoft.VisualStudio.EntityFrameworkTools.Msi","Microsoft.VisualStudio.Component.Roslyn.LanguageServices","Microsoft.VisualStudio.InteractiveWindow","Microsoft.DiaSymReader.Native","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.CodeAnalysis.VisualStudio.InteractiveComponents.Resources","Microsoft.CodeAnalysis.VisualStudio.InteractiveComponents","Microsoft.CodeAnalysis.VisualStudio.Setup.Interactive.Resources","Microsoft.Net.ComponentGroup.TargetingPacks.Common","Microsoft.Net.Component.4.6.TargetingPack","Microsoft.Net.4.6.TargetingPack","Microsoft.Net.Component.4.5.2.TargetingPack","Microsoft.Net.4.5.2.TargetingPack","Microsoft.Net.Component.4.5.1.TargetingPack","Microsoft.Net.4.5.1.TargetingPack","Microsoft.Net.Component.4.5.TargetingPack","Microsoft.Net.4.5.TargetingPack","Microsoft.Net.Component.4.TargetingPack","Microsoft.Net.4.TargetingPack","Microsoft.Net.ComponentGroup.DevelopmentPrerequisites","Microsoft.Net.Component.4.6.1.TargetingPack","Microsoft.Net.4.6.1.TargetingPack","Microsoft.Net.Cumulative.TargetingPack.Resources","Microsoft.Net.Component.4.6.1.SDK","Microsoft.Net.4.6.1.SDK","Microsoft.VisualStudio.Component.TextTemplating","Microsoft.VisualStudio.TextTemplating.MSBuild","Microsoft.VisualStudio.TextTemplating.Integration","Microsoft.VisualStudio.TextTemplating.Core","Microsoft.VisualStudio.TextTemplating.Integration.Resources","Microsoft.VisualStudio.Component.VisualStudioData","Microsoft.VisualStudio.Component.SQL.CLR","Microsoft.VisualStudio.ProTools","sqlsysclrtypes","sqlsysclrtypes","SQLCommon","Microsoft.VisualStudio.ProTools.Resources","Microsoft.VisualStudio.XamlDiagnostics","Microsoft.VisualStudio.XamlDiagnostics.Resources","Microsoft.VisualStudio.XamlDesigner","Microsoft.VisualStudio.XamlDesigner.Resources","Microsoft.VisualStudio.XamlDesigner.Executables","Microsoft.VisualStudio.XamlShared","Microsoft.VisualStudio.XamlShared.Resources","Microsoft.VisualStudio.PackageGroup.TestTools.Managed","Microsoft.VisualStudio.PackageGroup.IntelliTrace.Core","Microsoft.IntelliTrace.Core","Microsoft.IntelliTrace.Core.Targeted","Microsoft.IntelliTrace.ProfilerProxy.Msi.x64","Microsoft.IntelliTrace.ProfilerProxy.Msi","Microsoft.VisualStudio.NuGet.Core","Microsoft.VisualStudio.TestWindow.SourceBasedTestDiscovery","Microsoft.VisualStudio.TestWindow.Dotnet","Microsoft.VisualStudio.TestTools.TestGeneration","Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage","Microsoft.VisualStudio.PackageGroup.TestTools.Enterprise","Microsoft.VisualStudio.PackageGroup.TestTools.MSTestV2.Managed","Microsoft.VisualStudio.TestTools.MSTestV2.WizardExtension.UnitTest","Microsoft.VisualStudio.PackageGroup.TestTools.Core","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.Pex.Common","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy","Microsoft.VisualStudio.PackageGroup.MinShell.Interop","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestTools","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common","Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.TestTools.TestWIExtension","Microsoft.VisualStudio.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors","Microsoft.Component.ClickOnce","Microsoft.VisualStudio.PackageGroup.ClickOnce.MSBuild","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.ClickOnce.SignTool.Msi","Microsoft.SQL.ClickOnceBootstrapper.Msi","Microsoft.Net.ClickOnceBootstrapper","Microsoft.ClickOnce.BootStrapper.Msi.Resources","Microsoft.ClickOnce.BootStrapper.Msi","Microsoft.VisualStudio.WebTools.WSP.FSA","Microsoft.VisualStudio.WebTools.WSP.FSA.Resources","Microsoft.VisualStudio.PackageGroup.Community","Microsoft.VisualStudio.Community.Extra.Resources","Microsoft.VisualStudio.Community.Extra","Microsoft.VisualStudio.PackageGroup.Core","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger.Managed","Microsoft.CodeAnalysis.VisualStudio.Setup.Resources","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.CodeAnalysis.ExpressionEvaluator.Resources","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.Debugger.Resources","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.VisualStudio.Community","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.MSHtml","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.Editors","Microsoft.VisualStudio.ClickOnce.Resources","Microsoft.VisualStudio.ClickOnce","Microsoft.Component.MSBuild","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers.Resources","Microsoft.CodeAnalysis.Compilers","Microsoft.Net.PackageGroup.4.6.1.Redist","Microsoft.VisualStudio.TemplateEngine","Microsoft.VisualStudio.WebToolsExtensions.Common","Microsoft.NET.Sdk","Microsoft.VisualStudio.PackageGroup.TestTools.Templates.Managed","Microsoft.VisualStudio.TestTools.Templates.Managed","Microsoft.VisualStudio.TestTools.Templates.Managed.Resources","Microsoft.VisualStudio.Templates.VB.MSTestv2.Desktop.UnitTest","Microsoft.VisualStudio.Templates.CS.MSTestv2.Desktop.UnitTest","Microsoft.VisualStudio.Templates.VB.Wpf","Microsoft.VisualStudio.Templates.VB.Wpf.Resources","Microsoft.VisualStudio.Templates.VB.Winforms","Microsoft.VisualStudio.Templates.VB.ManagedCore","Microsoft.VisualStudio.Templates.VB.Shared","Microsoft.VisualStudio.Templates.VB.Shared.Resources","Microsoft.VisualStudio.Templates.VB.ManagedCore.Resources","Microsoft.VisualStudio.Templates.CS.GettingStarted.Desktop.Package","Microsoft.VisualStudio.Templates.GetStarted.Desktop.Setup","Microsoft.VisualStudio.Templates.CS.GettingStarted.Console.Package","Microsoft.VisualStudio.Templates.GetStarted.Resources","Microsoft.VisualStudio.Templates.GetStarted.Common.Setup","Microsoft.VisualStudio.Templates.GetStarted.Console.Setup","Microsoft.VisualStudio.Templates.CS.Wpf","Microsoft.VisualStudio.Templates.CS.Wpf.Resources","Microsoft.VisualStudio.Templates.CS.Winforms","Microsoft.VisualStudio.Templates.CS.ManagedCore","Microsoft.VisualStudio.Templates.CS.Shared","Microsoft.VisualStudio.Templates.Editorconfig.Wizard.Setup","Templates.Editorconfig.SolutionFile.Setup","Microsoft.VisualStudio.Templates.CS.Shared.Resources","Microsoft.VisualStudio.Templates.CS.ManagedCore.Resources","Microsoft.VisualStudio.Component.CoreEditor","Microsoft.VisualStudio.PackageGroup.CoreEditor","PortableFacades","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.GraphProvider","Microsoft.DiaSymReader","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Build","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.PackageGroup.TeamExplorer","Microsoft.TeamFoundation.OfficeIntegration","Microsoft.TeamFoundation.OfficeIntegration.Resources","Microsoft.VisualStudio.TeamExplorer","Microsoft.ServiceHub","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.SLNX.VSIX","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MinShell.Interop","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.Log.Resources","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.WDExpress","Microsoft.VisualStudio.WDExpress.Resources","Microsoft.VisualStudio.CoreEditor","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.MefHosting","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualStudio.Initializer","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.MinShell.x86","Microsoft.VisualStudio.NativeImageSupport","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.LanguageServer","Microsoft.VisualStudio.MinShell.Resources","Microsoft.Net.PackageGroup.4.6.Redist","Microsoft.VisualStudio.Branding.WDExpress"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt
                              deleted file mode 100644
                              index fc0a257f447830..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildToolsUnusable","version":"15.9.28307.665","packages":["Microsoft.VisualStudio.Product.BuildTools","Microsoft.VisualStudio.Component.Windows10SDK.17134","Win10SDK_10.0.17134","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.Workload.MSBuildTools","Microsoft.VisualStudio.Component.CoreBuildTools","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.BuildTools.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Component.MSBuild","Microsoft.PythonTools.BuildCore.Vsix","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers.Resources","Microsoft.CodeAnalysis.Compilers","Microsoft.Net.PackageGroup.4.6.1.Redist","Microsoft.Net.4.6.1.FullRedist.NonThreshold","Microsoft.Windows.UniversalCRT.Msu.81","Microsoft.VisualStudio.NativeImageSupport","Microsoft.Build"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt
                              deleted file mode 100644
                              index f07d2541648829..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools","version":"16.1.28922.388","packages":["Microsoft.VisualStudio.Product.BuildTools","Microsoft.VisualStudio.Component.VC.CoreIde","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced","Microsoft.VisualStudio.VC.Ide.MDD","Microsoft.VisualStudio.PackageGroup.Core","Microsoft.VisualStudio.CodeSense.Community","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.VisualStudio.Community","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.MSHtml","Microsoft.VisualStudio.Platform.CallHierarchy","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.PackageGroup.CoreEditor","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.GraphProvider","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.PackageGroup.TeamExplorer.Common","Microsoft.VisualStudio.TeamExplorer","Microsoft.ServiceHub","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.OpenFolder.VSIX","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.MinShell.Interop","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.Log.Resources","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.CoreEditor","Microsoft.VisualStudio.Platform.NavigateTo","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.VC.Ide.x64","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.VisualC.Logging","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.VC.Ide.VCPkgDatabase","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.VC.Ide.Base.Resources","Microsoft.Net.4.TargetingPack","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.PackageGroup.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Agent","Microsoft.VisualStudio.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.VC.Ide.Debugger.Concord","Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger.Managed","Microsoft.DiaSymReader","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.VisualStudio.Debugger.Concord.Managed","Microsoft.VisualStudio.Debugger.Concord.Managed.Resources","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.PerfLib","Microsoft.VisualStudio.Debugger.Package.DiagHub.Client.VSx86","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.VisualStudio.Editors","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.MefHosting","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualStudio.Initializer","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.Platform.Editor","Microsoft.VisualStudio.Debugger.Concord","Microsoft.VisualStudio.Debugger.Concord.Resources","Microsoft.VisualStudio.Debugger.Resources","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.VisualStudio.Component.Windows10SDK.17134","Win10SDK_10.0.17134","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.VC.MSBuild.x86.v142","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualStudio.VC.MSBuild.X64.v142","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualStudio.VC.MSBuild.ARM.v142","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","Microsoft.VisualStudio.Workload.MSBuildTools","Microsoft.VisualStudio.Component.CoreBuildTools","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.BuildTools.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Component.MSBuild","Microsoft.PythonTools.BuildCore.Vsix","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers","Microsoft.Net.PackageGroup.4.7.2.Redist","Microsoft.VisualStudio.NativeImageSupport","Microsoft.Build","Microsoft.VisualStudio.PackageGroup.NuGet","Microsoft.VisualStudio.NuGet.BuildTools"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt
                              deleted file mode 100644
                              index 50071c25f189e5..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community","version":"16.1.28922.388","packages":["Microsoft.VisualStudio.Workload.NativeDesktop","Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest","Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest","Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest","Microsoft.VisualStudio.VC.Ide.TestAdapterForBoostTest","Microsoft.VisualStudio.Component.VC.ATL","Microsoft.VisualStudio.VC.Ide.ATL","Microsoft.VisualStudio.VC.Ide.ATL.Resources","Microsoft.VisualCpp.ATL.X86","Microsoft.VisualCpp.ATL.X64","Microsoft.VisualCpp.ATL.Source","Microsoft.VisualCpp.ATL.Headers","Microsoft.VisualStudio.Component.VC.CMake.Project","Microsoft.VisualStudio.VC.CMake","Microsoft.VisualStudio.VC.CMake.Project","Microsoft.VisualStudio.VC.ExternalBuildFramework","Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core","Microsoft.VisualStudio.PackageGroup.TestTools.Native","Microsoft.VisualStudio.Component.VC.Redist.14.Latest","Microsoft.VisualStudio.VC.Templates.UnitTest","Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP","Microsoft.VisualStudio.VC.Templates.UnitTest.Resources","Microsoft.VisualStudio.VC.Templates.Desktop","Microsoft.VisualStudio.Component.Debugger.JustInTime","Microsoft.VisualStudio.Debugger.ImmersiveActivateHelper.Msi","Microsoft.VisualStudio.Debugger.JustInTime","Microsoft.VisualStudio.Debugger.JustInTime.Msi","Microsoft.VisualStudio.Component.Windows10SDK.17763","Win10SDK_10.0.17763","Microsoft.VisualStudio.Component.VC.DiagnosticTools","Microsoft.VisualStudio.Component.Graphics.Tools","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.Graphics.Viewers","Microsoft.VisualStudio.Graphics.Viewers.Resources","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualStudio.Graphics.Analyzer","Microsoft.VisualStudio.Graphics.Analyzer.Targeted","Microsoft.VisualStudio.Graphics.Analyzer.Resources","Microsoft.VisualStudio.Graphics.Appid","Microsoft.VisualStudio.Graphics.Appid.Resources","Microsoft.VisualStudio.Component.VC.CoreIde","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced","Microsoft.VisualStudio.VC.Ide.x64","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.VC.MSBuild.X64.v142","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualStudio.VC.MSBuild.ARM.v142","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualStudio.VC.MSBuild.x86.v142","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.VC.Ide.VCPkgDatabase","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.VC.Ide.Base.Resources","Component.Microsoft.VisualStudio.LiveShare","Microsoft.VisualStudio.LiveShare","Microsoft.Icecap.Analysis","Microsoft.Icecap.Analysis.Targeted","Microsoft.Icecap.Analysis.Resources","Microsoft.Icecap.Analysis.Resources.Targeted","Microsoft.Icecap.Collection.Msi","Microsoft.Icecap.Collection.Msi.Targeted","Microsoft.Icecap.Collection.Msi.Resources","Microsoft.Icecap.Collection.Msi.Resources.Targeted","Microsoft.DiagnosticsHub.Instrumentation","Microsoft.DiagnosticsHub.CpuSampling.ExternalDependencies","Microsoft.DiagnosticsHub.CpuSampling","Microsoft.DiagnosticsHub.CpuSampling.Targeted","Microsoft.PackageGroup.DiagnosticsHub.Platform","Microsoft.DiagnosticsHub.Runtime.ExternalDependencies","Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.Targeted","Microsoft.DiagnosticsHub.Collection.ExternalDependencies.x64","Microsoft.DiagnosticsHub.Collection.StopService.Uninstall","Microsoft.DiagnosticsHub.Runtime","Microsoft.DiagnosticsHub.Runtime.Targeted","Microsoft.DiagnosticsHub.Collection","Microsoft.DiagnosticsHub.Collection.Service","Microsoft.DiagnosticsHub.Collection.StopService.Install","Microsoft.VisualStudio.Component.IntelliCode","Microsoft.VisualStudio.IntelliCode","Microsoft.Net.4.TargetingPack","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage","Microsoft.VisualStudio.PackageGroup.TestTools.Core","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.Pex.Common","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy","Microsoft.VisualStudio.PackageGroup.MinShell.Interop","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestTools","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common","Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.TestTools.TestWIExtension","Microsoft.VisualStudio.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors","Microsoft.VisualStudio.LiveShareApi","Microsoft.VisualStudio.Component.TextTemplating","Microsoft.VisualStudio.TextTemplating.MSBuild","Microsoft.VisualStudio.TextTemplating.Integration","Microsoft.VisualStudio.TextTemplating.Core","Microsoft.VisualStudio.TextTemplating.Integration.Resources","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.Component.MSBuild","Microsoft.NuGet.Build.Tasks","Microsoft.DiagnosticsHub.KB2882822.Win7","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions","Microsoft.VisualStudio.ProTools","sqlsysclrtypes","sqlsysclrtypes","SQLCommon","Microsoft.VisualStudio.ProTools.Resources","Microsoft.VisualStudio.WebToolsExtensions","Microsoft.VisualStudio.WebTools","Microsoft.VisualStudio.WebTools.Resources","Microsoft.VisualStudio.WebTools.MSBuild","Microsoft.VisualStudio.WebTools.WSP.FSA","Microsoft.VisualStudio.WebTools.WSP.FSA.Resources","Microsoft.VisualStudio.VC.Ide.MDD","Microsoft.VisualStudio.VisualC.Logging","Microsoft.WebTools.Shared","Microsoft.WebTools.DotNet.Core.ItemTemplates","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.Windows.UniversalCRT.Msu.7","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers","Microsoft.VisualStudio.Component.NuGet","Microsoft.CredentialProvider","Microsoft.VisualStudio.NuGet.PowershellBindingRedirect","Microsoft.VisualStudio.NuGet.Licenses","Microsoft.VisualStudio.PackageGroup.Community","Microsoft.VisualStudio.Community.Extra.Resources","Microsoft.VisualStudio.Community.Extra","Microsoft.VisualStudio.PackageGroup.Core","Microsoft.VisualStudio.CodeSense.Community","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.PackageGroup.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Agent","Microsoft.VisualStudio.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.VC.Ide.Debugger.Concord","Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger.Managed","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.VisualStudio.Debugger.Concord.Managed","Microsoft.VisualStudio.Debugger.Concord.Managed.Resources","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote.DbgHelp.Win8","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Remote.DbgHelp.Win8","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.Debugger.Package.DiagHub.Client.VSx86","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.Debugger.DbgHelp.Win8","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.Debugger.Concord","Microsoft.VisualStudio.Debugger.Concord.Resources","Microsoft.VisualStudio.Debugger.Resources","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.VisualStudio.Community","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.MSHtml","Microsoft.VisualStudio.Platform.CallHierarchy","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualStudio.Devenv.Msi","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.Editors","Microsoft.VisualStudio.Product.Community","Microsoft.VisualStudio.Workload.CoreEditor","Microsoft.VisualStudio.Component.CoreEditor","Microsoft.VisualStudio.PackageGroup.CoreEditor","Microsoft.VisualCpp.Tools.Common.UtilsPrereq","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.GraphProvider","Microsoft.DiaSymReader","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Build","Microsoft.VisualStudio.PackageGroup.NuGet","Microsoft.VisualStudio.NuGet.Core","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.PackageGroup.TeamExplorer.Common","Microsoft.VisualStudio.TeamExplorer","Microsoft.ServiceHub","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.OpenFolder.VSIX","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MinShell.Interop","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.Log.Resources","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.Devenv","Microsoft.VisualStudio.Devenv.Resources","Microsoft.VisualStudio.CoreEditor","Microsoft.VisualStudio.Platform.NavigateTo","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.PerfLib","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.MefHosting","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualStudio.Initializer","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.Platform.Editor","Microsoft.VisualStudio.MinShell.x86","Microsoft.VisualStudio.NativeImageSupport","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.LanguageServer","Microsoft.VisualStudio.Devenv.Config","Microsoft.VisualStudio.MinShell.Resources","Microsoft.Net.PackageGroup.4.7.2.Redist","Microsoft.Net.4.7.2.FullRedist","Microsoft.VisualStudio.Branding.Community"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt
                              deleted file mode 100644
                              index 806509e7ce8652..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt
                              +++ /dev/null
                              @@ -1 +0,0 @@
                              -[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview","version":"16.0.28608.199","packages":["Microsoft.VisualStudio.Product.Enterprise","Microsoft.VisualStudio.Workload.NativeDesktop","Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest","Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest","Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest","Microsoft.VisualStudio.VC.Ide.TestAdapterForBoostTest","Microsoft.VisualStudio.Component.VC.ATL","Microsoft.VisualStudio.VC.Ide.ATL","Microsoft.VisualStudio.VC.Ide.ATL.Resources","Microsoft.VisualCpp.ATL.X86","Microsoft.VisualCpp.ATL.X64","Microsoft.VisualCpp.ATL.Source","Microsoft.VisualCpp.ATL.Headers","Microsoft.VisualStudio.Component.VC.CMake.Project","Microsoft.VisualStudio.VC.CMake","Microsoft.VisualStudio.VC.CMake.Project","Microsoft.VisualStudio.VC.ExternalBuildFramework","Microsoft.VisualStudio.Component.VC.DiagnosticTools","Microsoft.VisualStudio.Component.Graphics.Tools","Microsoft.VisualStudio.Graphics.Viewers","Microsoft.VisualStudio.Graphics.Viewers.Resources","Microsoft.VisualStudio.Graphics.EnableTools","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualStudio.Graphics.Msi","Microsoft.VisualStudio.Graphics.Analyzer","Microsoft.VisualStudio.Graphics.Analyzer.Targeted","Microsoft.VisualStudio.Graphics.Analyzer.Resources","Microsoft.VisualStudio.Graphics.Appid","Microsoft.VisualStudio.Graphics.Appid.Resources","Microsoft.VisualStudio.Component.Windows10SDK.17763","Win10SDK_10.0.17763","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core","Microsoft.VisualStudio.PackageGroup.TestTools.Native","Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native","Microsoft.VisualStudio.Component.ClassDesigner","Microsoft.VisualStudio.ClassDesigner","Microsoft.VisualStudio.ClassDesigner.Resources","Microsoft.VisualStudio.Component.VC.Redist.14.Latest","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualCpp.Redist.14.Latest","Microsoft.VisualStudio.VC.Templates.UnitTest","Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP","Microsoft.VisualStudio.VC.Templates.UnitTest.Resources","Microsoft.VisualStudio.VC.Templates.Desktop","Microsoft.VisualStudio.Component.VC.CoreIde","Microsoft.VisualStudio.VC.Ide.Pro","Microsoft.VisualStudio.VC.Ide.Pro.Resources","Microsoft.VisualStudio.VC.Templates.Pro","Microsoft.VisualStudio.VC.Templates.Pro.Resources","Microsoft.VisualStudio.VC.Items.Pro","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced","Microsoft.VisualStudio.VC.Ide.x64","Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express","Microsoft.VisualStudio.VC.MSBuild.X64.v142","Microsoft.VisualStudio.VC.MSBuild.X64","Microsoft.VS.VC.MSBuild.X64.Resources","Microsoft.VisualStudio.VC.MSBuild.ARM.v142","Microsoft.VisualStudio.VC.MSBuild.ARM","Microsoft.VisualStudio.VC.MSBuild.x86.v142","Microsoft.VisualStudio.VC.MSBuild.X86","Microsoft.VisualStudio.VC.MSBuild.Base","Microsoft.VisualStudio.VC.MSBuild.Base.Resources","Microsoft.VisualStudio.VC.Ide.WinXPlus","Microsoft.VisualStudio.VC.Ide.Dskx","Microsoft.VisualStudio.VC.Ide.Dskx.Resources","Microsoft.VisualStudio.VC.Ide.Base","Microsoft.VisualStudio.VC.Ide.LanguageService","Microsoft.VisualStudio.VC.Ide.Core","Microsoft.VisualStudio.VC.Ide.Core.Resources","Microsoft.VisualStudio.VC.Ide.VCPkgDatabase","Microsoft.VisualStudio.VC.Ide.Progression.Enterprise","Microsoft.VisualStudio.VC.Ide.ProjectSystem","Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine","Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources","Microsoft.VisualStudio.VC.Ide.LanguageService.Resources","Microsoft.VisualStudio.VC.Ide.Base.Resources","Microsoft.VisualStudio.Component.CodeMap","Microsoft.VisualStudio.Component.GraphDocument","Microsoft.VisualStudio.Vmp","Microsoft.VisualStudio.GraphDocument","Microsoft.VisualStudio.GraphDocument.Resources","Microsoft.VisualStudio.CodeMap","Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime","Microsoft.VisualStudio.Component.SQL.NCLI","sqllocaldb","sqlncli","Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions","Microsoft.VisualStudio.WebToolsExtensions","Microsoft.VisualStudio.WebTools","Microsoft.VisualStudio.WebTools.Resources","Microsoft.VisualStudio.WebTools.MSBuild","Microsoft.VisualStudio.PackageGroup.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Msi","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.Debugger.Script.Resources","Microsoft.VisualStudio.VC.Ide.MDD","Microsoft.VisualStudio.Component.NuGet","Microsoft.CredentialProvider","Component.Microsoft.VisualStudio.LiveShare","Microsoft.VisualStudio.LiveShare","Microsoft.VisualStudio.Component.Debugger.JustInTime","Microsoft.VisualStudio.Debugger.ImmersiveActivateHelper.Msi","Microsoft.VisualStudio.Debugger.JustInTime","Microsoft.VisualStudio.Debugger.JustInTime.Msi","Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd","Microsoft.IntelliTrace.DiagnosticsHubAgent.Targeted","Microsoft.IntelliTrace.Debugger","Microsoft.IntelliTrace.Debugger.Targeted","Microsoft.IntelliTrace.FrontEnd","Microsoft.DiagnosticsHub.Instrumentation","Microsoft.DiagnosticsHub.CpuSampling","Microsoft.DiagnosticsHub.CpuSampling.Targeted","Microsoft.PackageGroup.DiagnosticsHub.Platform","Microsoft.DiagnosticsHub.Collection.StopService.Uninstall","Microsoft.DiagnosticsHub.Runtime","Microsoft.DiagnosticsHub.Runtime.Targeted","Microsoft.DiagnosticsHub.Runtime.Resources","Microsoft.DiagnosticsHub.Collection","Microsoft.DiagnosticsHub.Collection.Service","Microsoft.DiagnosticsHub.Collection.StopService.Install","Microsoft.VisualStudio.Dsl.GraphObject","Microsoft.Net.4.TargetingPack","Microsoft.VisualStudio.VC.Ide.ResourceEditor","Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources","Microsoft.VisualStudio.NuGet.Licenses","Microsoft.WebTools.Shared","Microsoft.VisualStudio.WebToolsExtensions.DotNet.Core.ItemTemplates","Microsoft.VisualStudio.Component.TextTemplating","Microsoft.VisualStudio.TextTemplating.MSBuild","Microsoft.VisualStudio.TextTemplating.Integration","Microsoft.VisualStudio.TextTemplating.Core","Microsoft.VisualStudio.TextTemplating.Integration.Resources","Microsoft.VisualStudio.ProTools","sqlsysclrtypes","sqlsysclrtypes","SQLCommon","Microsoft.VisualStudio.ProTools.Resources","Microsoft.VisualStudio.NuGet.Core","Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage","Microsoft.VisualStudio.PackageGroup.IntelliTrace.Core","Microsoft.IntelliTrace.Core","Microsoft.IntelliTrace.Core.Concord","Microsoft.IntelliTrace.Core.Targeted","Microsoft.IntelliTrace.ProfilerProxy.Msi.x64","Microsoft.IntelliTrace.ProfilerProxy.Msi","Microsoft.VisualStudio.TestTools.DynamicCodeCoverage","Microsoft.VisualStudio.TestTools.CodeCoverage.Msi","Microsoft.VisualStudio.TestTools.CodeCoverage","Microsoft.Icecap.Analysis","Microsoft.Icecap.Analysis.Targeted","Microsoft.Icecap.Analysis.Resources","Microsoft.Icecap.Analysis.Resources.Targeted","Microsoft.Icecap.Collection.Msi","Microsoft.Icecap.Collection.Msi.Targeted","Microsoft.Icecap.Collection.Msi.Resources","Microsoft.Icecap.Collection.Msi.Resources.Targeted","Microsoft.VisualStudio.PackageGroup.TestTools.Core","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI","Microsoft.VisualStudio.TestTools.Pex.Common","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy","Microsoft.VisualStudio.PackageGroup.MinShell.Interop","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi","Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestTools","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Remote","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Premium","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common","Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources","Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent","Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.TestTools.TestWIExtension","Microsoft.VisualStudio.TestTools.TestPlatform.IDE","Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors","Microsoft.VisualStudio.TestTools.NE.Msi.Targeted","Microsoft.VisualStudio.TestTools.NetworkEmulation","Microsoft.VisualStudio.TestTools.DataCollectors","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.WebTools.WSP.FSA","Microsoft.VisualStudio.WebTools.WSP.FSA.Resources","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualStudio.PackageGroup.Community","Microsoft.VisualStudio.Community.Extra.Resources","Microsoft.VisualStudio.Community.Extra","Microsoft.VisualStudio.PackageGroup.Core","Microsoft.VisualStudio.CodeSense","Microsoft.VisualStudio.CodeSense.Community","Microsoft.VisualStudio.TestTools.TeamFoundationClient","Microsoft.VisualStudio.PackageGroup.Debugger.Core","Microsoft.VisualStudio.PackageGroup.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Runtime","Microsoft.VisualStudio.Debugger.TimeTravel.Agent","Microsoft.VisualStudio.Debugger.TimeTravel.Record","Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost","Microsoft.VisualStudio.VC.Ide.Debugger","Microsoft.VisualStudio.VC.Ide.Debugger.Concord","Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources","Microsoft.VisualStudio.VC.Ide.Debugger.Resources","Microsoft.VisualStudio.VC.Ide.Common","Microsoft.VisualStudio.VC.Ide.Common.Resources","Microsoft.VisualStudio.Debugger.Parallel","Microsoft.VisualStudio.Debugger.Parallel.Resources","Microsoft.VisualStudio.Debugger.CollectionAgents","Microsoft.VisualStudio.Debugger.Managed","Microsoft.VisualStudio.Debugger.Concord.Managed","Microsoft.VisualStudio.Debugger.Concord.Managed.Resources","Microsoft.VisualStudio.Debugger.Managed.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote","Microsoft.VisualStudio.Debugger.Concord.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger.Remote.Resources","Microsoft.VisualStudio.Debugger","Microsoft.VisualStudio.Debugger.Package.DiagHub.Client.VSx86","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.Debugger.Remote.DiagHub.Client","Microsoft.VisualStudio.VC.MSVCDis","Microsoft.VisualStudio.ScriptedHost","Microsoft.VisualStudio.ScriptedHost.Targeted","Microsoft.VisualStudio.ScriptedHost.Resources","Microsoft.IntelliTrace.DiagnosticsHub","Microsoft.VisualStudio.Debugger.Concord","Microsoft.VisualStudio.Debugger.Concord.Resources","Microsoft.VisualStudio.Debugger.Resources","Microsoft.PackageGroup.ClientDiagnostics","Microsoft.VisualStudio.AppResponsiveness","Microsoft.VisualStudio.AppResponsiveness.Targeted","Microsoft.VisualStudio.AppResponsiveness.Resources","Microsoft.VisualStudio.ClientDiagnostics","Microsoft.VisualStudio.ClientDiagnostics.Targeted","Microsoft.VisualStudio.ClientDiagnostics.Resources","Microsoft.VisualStudio.PackageGroup.ProfessionalCore","Microsoft.VisualStudio.Professional","Microsoft.VisualStudio.Professional.Msi","Microsoft.VisualStudio.PackageGroup.EnterpriseCore","Microsoft.VisualStudio.Enterprise.Msi","Microsoft.VisualStudio.Enterprise","Microsoft.ShDocVw","Microsoft.VisualStudio.PackageGroup.CommunityCore","Microsoft.VisualStudio.ProjectSystem.Full","Microsoft.VisualStudio.ProjectSystem","Microsoft.VisualStudio.Community.x86","Microsoft.VisualStudio.Community.x64","Microsoft.VisualStudio.Community","Microsoft.IntelliTrace.CollectorCab","Microsoft.VisualStudio.Community.Resources","Microsoft.VisualStudio.WebSiteProject.DTE","Microsoft.MSHtml","Microsoft.VisualStudio.Platform.CallHierarchy","Microsoft.VisualStudio.Community.Msi.Resources","Microsoft.VisualStudio.Community.Msi","Microsoft.VisualStudio.Devenv.Msi","Microsoft.VisualStudio.MinShell.Interop.Msi","Microsoft.VisualStudio.Editors","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.CodeAnalysis.ExpressionEvaluator","Microsoft.CodeAnalysis.VisualStudio.Setup","Microsoft.Component.MSBuild","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers","Microsoft.VisualStudio.Workload.CoreEditor","Microsoft.VisualStudio.Component.CoreEditor","Microsoft.VisualStudio.PackageGroup.CoreEditor","Microsoft.VisualCpp.Tools.Common.UtilsPrereq","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.VirtualTree","Microsoft.VisualStudio.PackageGroup.Progression","Microsoft.VisualStudio.PerformanceProvider","Microsoft.VisualStudio.GraphModel","Microsoft.VisualStudio.GraphProvider","Microsoft.DiaSymReader","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Build","Microsoft.VisualStudio.TextMateGrammars","Microsoft.VisualStudio.PackageGroup.TeamExplorer.Common","Microsoft.VisualStudio.TeamExplorer","Microsoft.ServiceHub","Microsoft.VisualStudio.ProjectServices","Microsoft.VisualStudio.SLNX.VSIX","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.FileHandler.Msi","Microsoft.VisualStudio.PackageGroup.MinShell","Microsoft.VisualStudio.MinShell.Interop","Microsoft.VisualStudio.Log","Microsoft.VisualStudio.Log.Targeted","Microsoft.VisualStudio.Log.Resources","Microsoft.VisualStudio.Finalizer","Microsoft.VisualStudio.Devenv","Microsoft.VisualStudio.Devenv.Resources","Microsoft.VisualStudio.CoreEditor","Microsoft.VisualStudio.Platform.NavigateTo","Microsoft.VisualStudio.Connected","Microsoft.VisualStudio.Connected.Resources","Microsoft.VisualStudio.MinShell","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.Platform.Search","Microsoft.VisualStudio.MinShell.Platform","Microsoft.VisualStudio.MinShell.Platform.Resources","Microsoft.VisualStudio.MefHosting","Microsoft.VisualStudio.MefHosting.Resources","Microsoft.VisualStudio.Initializer","Microsoft.VisualStudio.ExtensionManager","Microsoft.VisualStudio.Platform.Editor","Microsoft.VisualStudio.MinShell.x86","Microsoft.VisualStudio.NativeImageSupport","Microsoft.VisualStudio.MinShell.Msi","Microsoft.VisualStudio.MinShell.Msi.Resources","Microsoft.VisualStudio.LanguageServer","Microsoft.VisualStudio.Devenv.Config","Microsoft.VisualStudio.MinShell.Resources","Microsoft.Net.PackageGroup.4.7.2.Redist","Microsoft.VisualStudio.Branding.Enterprise"]}]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt b/deps/npm/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt
                              deleted file mode 100644
                              index 7cd20f85989261..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt
                              +++ /dev/null
                              @@ -1,569 +0,0 @@
                              -[
                              -    {
                              -        "path": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community",
                              -        "version": "17.4.33213.308",
                              -        "packages": [
                              -            "Microsoft.VisualStudio.Product.Community",
                              -            "Microsoft.VisualStudio.PackageGroup.LiveShare.VSCore",
                              -            "Microsoft.VisualStudio.LiveShare.VSCore",
                              -            "Microsoft.VisualStudio.Workload.NativeDesktop",
                              -            "Microsoft.VisualStudio.Component.VC.ASAN",
                              -            "Microsoft.VisualCpp.ASAN.X86",
                              -            "Microsoft.VC.14.34.17.4.ASAN.X86.base",
                              -            "Microsoft.VC.14.34.17.4.ASAN.X64.base",
                              -            "Microsoft.VC.14.34.17.4.ASAN.Headers.base",
                              -            "Microsoft.VisualStudio.VC.IDE.Project.Factories",
                              -            "Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
                              -            "Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest",
                              -            "Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
                              -            "Microsoft.VisualStudio.VC.Ide.TestAdapterForBoostTest",
                              -            "Microsoft.VisualStudio.Component.VC.CMake.Project",
                              -            "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake",
                              -            "Microsoft.VisualStudio.VC.CMake",
                              -            "Microsoft.VisualStudio.VC.CMake.Project",
                              -            "Microsoft.VisualStudio.VC.CMake.Client",
                              -            "Microsoft.VisualStudio.VC.ExternalBuildFramework",
                              -            "Microsoft.VisualStudio.Component.VC.DiagnosticTools",
                              -            "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.Native",
                              -            "Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
                              -            "Microsoft.VisualStudio.VC.Templates.UnitTest",
                              -            "Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP",
                              -            "Microsoft.VisualStudio.VC.Templates.UnitTest.Resources",
                              -            "Microsoft.VisualStudio.VC.Templates.Desktop",
                              -            "Microsoft.VisualStudio.Component.Graphics",
                              -            "Microsoft.VisualStudio.Graphics.Viewers",
                              -            "Microsoft.VisualStudio.Graphics.Viewers.Resources",
                              -            "Microsoft.VisualStudio.Component.VC.ATL.ARM64",
                              -            "Microsoft.VisualCpp.ATL.ARM64",
                              -            "Microsoft.VC.14.34.17.4.ATL.ARM64.base",
                              -            "Microsoft.VisualStudio.Component.VC.ATL",
                              -            "Microsoft.VisualStudio.VC.Ide.ATL",
                              -            "Microsoft.VisualStudio.VC.Ide.ATL.Resources",
                              -            "Microsoft.VisualCpp.ATL.X86",
                              -            "Microsoft.VC.14.34.17.4.ATL.X86.base",
                              -            "Microsoft.VisualCpp.ATL.X64",
                              -            "Microsoft.VC.14.34.17.4.ATL.X64.base",
                              -            "Microsoft.VC.14.34.17.4.Props.ATLMFC",
                              -            "Microsoft.VisualCpp.ATL.Source",
                              -            "Microsoft.VC.14.34.17.4.ATL.Source.base",
                              -            "Microsoft.VisualCpp.ATL.Headers",
                              -            "Microsoft.VC.14.34.17.4.ATL.Headers.base",
                              -            "Microsoft.VC.14.34.17.4.Servicing.ATL",
                              -            "Microsoft.VisualStudio.Component.VC.Tools.ARM64",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM64.v143",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM64",
                              -            "Microsoft.VS.VC.vcvars.arm64.Shortcuts",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx64.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx86.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.HostARM64.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.Tools.Hostx86.Targetarm64",
                              -            "Microsoft.VC.14.34.17.4.Tools.Hostx86.Targetarm64.base",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX86.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostARM64.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.ARM64.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.ARM64.OneCore.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.ARM64",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.ARM64.base",
                              -            "Microsoft.VisualCpp.CRT.ARM64.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64.OneCore.Desktop.base",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64.OneCore.Desktop.debug.base",
                              -            "Microsoft.VisualCpp.CRT.ARM64.Store",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64.Store.base",
                              -            "Microsoft.VisualCpp.CRT.ARM64.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64.Desktop.base",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64.Desktop.debug.base",
                              -            "Microsoft.VisualStudio.PackageGroup.VC.Tools.x64.ARM64",
                              -            "Microsoft.VisualCpp.Tools.Core",
                              -            "Microsoft.VisualCpp.PGO.ARM64",
                              -            "Microsoft.VC.14.34.17.4.PGO.ARM64.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetarm64",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.Hostx86.Targetarm64.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostX86.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostX64.TargetARM64.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.ARM64.Base",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.ARM64.Base.base",
                              -            "Microsoft.VisualCpp.Tools.HostX64.TargetARM64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetARM64.base",
                              -            "Microsoft.VC.14.34.17.4.Props.ARM64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetARM64.Res.base",
                              -            "Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
                              -            "Microsoft.VisualStudio.Component.Windows11SDK.22621",
                              -            "Win11SDK_10.0.22621",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM64EC.v143",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM64EC",
                              -            "Microsoft.VisualCpp.CRT.ARM64EC.Store",
                              -            "Microsoft.VC.14.34.17.4.CRT.ARM64EC.Store.base",
                              -            "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
                              -            "Microsoft.VisualCpp.CodeAnalysis.Extensions",
                              -            "Microsoft.VisualCpp.CA.Ext.HostARM64.Targetx64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.HostARM64.Targetx86",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx86.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx86.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx86",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx64",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.base",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx86",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.base",
                              -            "Microsoft.VC.14.34.17.4.Servicing.CAExtensions",
                              -            "Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostX64.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.base",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostX64.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.base",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostARM64.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX86.base",
                              -            "Microsoft.VisualCpp.RuntimeDebug.14",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostARM64.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX64.base",
                              -            "Microsoft.VisualCpp.RuntimeDebug.14.ARM64",
                              -            "Microsoft.VisualCpp.Redist.14.Latest",
                              -            "Microsoft.VisualCpp.Redist.14.Latest",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostARM64.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX64.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.Hostx86.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX86.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostX86.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostARM64.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostARM64.TargetX86.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostARM64.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostARM64.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostARM64.TargetX64.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostARM64.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX86.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX64.base",
                              -            "Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX64.Res.base",
                              -            "Microsoft.VisualCpp.PGO.X86",
                              -            "Microsoft.VC.14.34.17.4.PGO.X86.base",
                              -            "Microsoft.VisualCpp.PGO.X64",
                              -            "Microsoft.VC.14.34.17.4.PGO.X64.base",
                              -            "Microsoft.VisualCpp.PGO.Headers",
                              -            "Microsoft.VC.14.34.17.4.PGO.Headers.base",
                              -            "Microsoft.VisualCpp.CRT.x86.Store",
                              -            "Microsoft.VC.14.34.17.4.CRT.x86.Store.base",
                              -            "Microsoft.VisualCpp.CRT.x86.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.x86.OneCore.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.x64.Store",
                              -            "Microsoft.VC.14.34.17.4.CRT.x64.Store.base",
                              -            "Microsoft.VisualCpp.CRT.x64.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.x64.OneCore.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.x86.OneCore.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.x64.OneCore.Desktop.base",
                              -            "Microsoft.VisualStudio.PackageGroup.VC.Tools.x86",
                              -            "Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Res",
                              -            "Microsoft.VisualCpp.Tools.HostX86.TargetX64",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX64.base",
                              -            "Microsoft.VC.14.34.17.4.Props.x64",
                              -            "Microsoft.VC.14.34.17.4.Tools.Hostx86.Targetx64.Res.base",
                              -            "Microsoft.VisualCpp.Tools.HostX86.TargetX86.Res",
                              -            "Microsoft.VisualCpp.Tools.HostX86.TargetX86",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.base",
                              -            "Microsoft.VC.14.34.17.4.Servicing.Compilers",
                              -            "Microsoft.VC.14.34.17.4.Props.x86",
                              -            "Microsoft.VC.14.34.17.4.Props",
                              -            "Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.Res.base",
                              -            "Microsoft.VisualCpp.Tools.Core.Resources",
                              -            "Microsoft.VisualCpp.Tools.Core.x86",
                              -            "Microsoft.VC.14.34.17.4.Tools.Core.Props",
                              -            "Microsoft.VisualCpp.DIA.SDK",
                              -            "Microsoft.VisualCpp.Servicing.DIASDK",
                              -            "Microsoft.VisualCpp.CRT.x86.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.x86.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.x64.Desktop",
                              -            "Microsoft.VC.14.34.17.4.CRT.x64.Desktop.base",
                              -            "Microsoft.VisualCpp.CRT.Source",
                              -            "Microsoft.VC.14.34.17.4.CRT.Source.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.X86",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.X86.base",
                              -            "Microsoft.VisualCpp.CRT.Redist.X64",
                              -            "Microsoft.VisualCpp.CRT.Redist.Resources",
                              -            "Microsoft.VC.14.34.17.4.CRT.Redist.X64.base",
                              -            "Microsoft.VisualCpp.CRT.Headers",
                              -            "Microsoft.VC.14.34.17.4.CRT.Headers.base",
                              -            "Microsoft.VC.14.34.17.4.Servicing.CrtHeaders",
                              -            "Microsoft.VC.14.34.17.4.Servicing",
                              -            "Microsoft.VisualStudio.Component.VC.CoreIde",
                              -            "Microsoft.VisualStudio.VC.Ide.Pro",
                              -            "Microsoft.VisualStudio.VC.Ide.Pro.Resources",
                              -            "Microsoft.VisualStudio.VC.Templates.General",
                              -            "Microsoft.VisualStudio.VC.Templates.General.Resources",
                              -            "Microsoft.VisualStudio.VC.Items.Pro",
                              -            "Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced",
                              -            "Microsoft.VisualStudio.VC.Ide.x64",
                              -            "Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express",
                              -            "Microsoft.VisualStudio.VC.vcvars",
                              -            "Microsoft.VS.VC.vcvars.x86.Shortcuts",
                              -            "Microsoft.VS.VC.vcvars.x64.Shortcuts",
                              -            "Microsoft.VS.VC.vcvars.arm64_x64.Shortcuts",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.X64.v143",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.X64",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM.v143",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.ARM",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.x86.v143",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.X86",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.Base",
                              -            "Microsoft.VisualStudio.VC.MSBuild.v170.Base.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.WinXPlus",
                              -            "Microsoft.VisualStudio.VC.Ide.Dskx",
                              -            "Microsoft.VisualStudio.VC.Ide.Dskx.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.Base",
                              -            "Microsoft.VisualStudio.VC.Ide.LanguageService",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.Scripts",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.PythonDistro",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.10",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.9",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.8",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.7",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.6",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.5",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.4",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.3",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.2",
                              -            "Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.1",
                              -            "Microsoft.VisualStudio.VC.Ide.VCPkgDatabase",
                              -            "Microsoft.VisualStudio.VC.Ide.Core",
                              -            "Microsoft.VisualStudio.VC.Ide.ProjectSystem",
                              -            "Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine",
                              -            "Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.LanguageService.Resources",
                              -            "Microsoft.VisualStudio.VC.Llvm.Base",
                              -            "Microsoft.VisualStudio.VC.Ide.Base.Resources",
                              -            "Microsoft.Net.PackageGroup.4.8.1.Redist",
                              -            "Microsoft.VisualStudio.Component.IntelliCode",
                              -            "Microsoft.VisualStudio.IntelliCode.CSharp",
                              -            "Microsoft.VisualStudio.IntelliCode",
                              -            "Component.Microsoft.VisualStudio.LiveShare.2022",
                              -            "Microsoft.VisualStudio.Component.Debugger.JustInTime",
                              -            "Microsoft.VisualStudio.Debugger.ImmersiveActivateHelper.Msi",
                              -            "Microsoft.VisualStudio.Debugger.JustInTime",
                              -            "Microsoft.VisualStudio.Debugger.JustInTime.Msi",
                              -            "Microsoft.VisualStudio.LiveShare.2022",
                              -            "Microsoft.Icecap.Analysis",
                              -            "Microsoft.Icecap.Analysis.Resources",
                              -            "Microsoft.Icecap.Analysis.Resources.Targeted",
                              -            "Microsoft.Icecap.Collection.Msi",
                              -            "Microsoft.Icecap.Collection.Msi.Targeted",
                              -            "Microsoft.Icecap.Collection.Msi.Resources",
                              -            "Microsoft.Icecap.Collection.Msi.Resources.Targeted",
                              -            "Microsoft.DiagnosticsHub.Instrumentation",
                              -            "Microsoft.DiagnosticsHub.Instrumentation.Targeted",
                              -            "Microsoft.DiagnosticsHub.CpuSampling",
                              -            "Microsoft.DiagnosticsHub.CpuSampling.Targeted",
                              -            "Microsoft.PackageGroup.DiagnosticsHub.Platform",
                              -            "Microsoft.VisualStudio.InstrumentationEngine.ARM64",
                              -            "Microsoft.VisualStudio.InstrumentationEngine",
                              -            "Microsoft.DiagnosticsHub.Runtime.ExternalDependencies",
                              -            "SQLiteCore",
                              -            "SQLiteCore.Targeted",
                              -            "Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.Targeted",
                              -            "Microsoft.DiagnosticsHub.Runtime",
                              -            "Microsoft.DiagnosticsHub.Runtime.Targeted",
                              -            "Microsoft.DiagnosticsHub.Collection.ExternalDependencies.arm64",
                              -            "Microsoft.DiagnosticsHub.Collection",
                              -            "Microsoft.DiagnosticsHub.Collection.Service",
                              -            "Microsoft.VisualStudio.VC.Ide.MDD",
                              -            "Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager",
                              -            "Microsoft.VisualStudio.VisualC.Utilities",
                              -            "Microsoft.VisualStudio.VisualC.Utilities.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.ResourceEditor",
                              -            "Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.Core",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI",
                              -            "Microsoft.VisualStudio.TestTools.Pex.Common",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy",
                              -            "Microsoft.VisualStudio.PackageGroup.MinShell.Interop",
                              -            "Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi",
                              -            "Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common",
                              -            "Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE",
                              -            "Microsoft.VisualStudio.Cache.Service",
                              -            "Microsoft.VisualStudio.TestTools.TestWIExtension",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI",
                              -            "Microsoft.VisualStudio.TestTools.TestPlatform.IDE",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage",
                              -            "Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors",
                              -            "Microsoft.VisualStudio.Component.NuGet",
                              -            "Microsoft.CredentialProvider",
                              -            "Microsoft.VisualStudio.NuGet.Licenses",
                              -            "Microsoft.VisualStudio.Component.TextTemplating",
                              -            "Microsoft.VisualStudio.TextTemplating.MSBuild",
                              -            "Microsoft.VisualStudio.TextTemplating.Integration",
                              -            "Microsoft.VisualStudio.TextTemplating.Core",
                              -            "Microsoft.VisualStudio.TextTemplating.Integration.Resources",
                              -            "Microsoft.VisualCpp.CRT.ClickOnce.Msi",
                              -            "Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
                              -            "Microsoft.VisualStudio.InteractiveWindow",
                              -            "Microsoft.DiaSymReader.Native",
                              -            "Microsoft.VisualCpp.Redist.14",
                              -            "Microsoft.VisualCpp.Redist.14",
                              -            "Microsoft.VisualCpp.Servicing.Redist",
                              -            "Microsoft.VisualStudio.PackageGroup.StaticAnalysis",
                              -            "Microsoft.VisualStudio.StaticAnalysis.IDE",
                              -            "Microsoft.VisualStudio.StaticAnalysis.IDE.Resources",
                              -            "Microsoft.VisualStudio.StaticAnalysis.FxCop.Resources",
                              -            "Microsoft.VisualStudio.StaticAnalysis.auxil",
                              -            "Microsoft.VisualStudio.StaticAnalysis.auxil.Resources",
                              -            "Roslyn.VisualStudio.Setup.ServiceHub",
                              -            "Microsoft.Component.MSBuild",
                              -            "Microsoft.NuGet.Build.Tasks.Setup",
                              -            "Microsoft.VisualStudio.Component.Roslyn.Compiler",
                              -            "Microsoft.CodeAnalysis.Compilers",
                              -            "Microsoft.VisualStudio.Component.JavaScript.TypeScript",
                              -            "Microsoft.VisualStudio.JavaScript.ProjectSystem",
                              -            "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
                              -            "Microsoft.VisualStudio.ProTools",
                              -            "sqlsysclrtypes",
                              -            "SQLCommon",
                              -            "Microsoft.VisualStudio.ProTools.Resources",
                              -            "Microsoft.VisualStudio.Web.Scaffolding",
                              -            "Microsoft.VisualStudio.WebToolsExtensions",
                              -            "Microsoft.VisualStudio.ConnectedServices.Core",
                              -            "Microsoft.VisualStudio.WebTools",
                              -            "Microsoft.VisualStudio.WebToolsExtensions.MSBuild",
                              -            "Microsoft.VisualStudio.WebTools.Resources",
                              -            "Microsoft.VisualStudio.WebTools.WSP.FSA",
                              -            "Microsoft.VisualStudio.WebTools.WSP.FSA.Resources",
                              -            "Microsoft.VisualStudio.PackageGroup.Debugger.Script",
                              -            "Microsoft.VisualStudio.Component.TypeScript.TSServer",
                              -            "Microsoft.VisualStudio.Package.TypeScript.TSServer",
                              -            "Microsoft.VisualStudio.PackageGroup.JavaScript.Language",
                              -            "Microsoft.VisualStudio.Package.NodeJs",
                              -            "TypeScript.Build",
                              -            "TypeScript.LanguageService",
                              -            "TypeScript.Tools",
                              -            "Microsoft.VisualStudio.PackageGroup.Community",
                              -            "Microsoft.VisualStudio.Community.VB.x86",
                              -            "Microsoft.VisualStudio.Community.VB.x64",
                              -            "Microsoft.VisualStudio.PackageGroup.Core",
                              -            "Microsoft.VisualStudio.CodeSense.Community",
                              -            "Microsoft.VisualStudio.TestTools.TeamFoundationClient",
                              -            "Microsoft.VisualStudio.PackageGroup.Debugger.Core",
                              -            "Microsoft.VisualStudio.Debugger.BrokeredServices",
                              -            "Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost",
                              -            "Microsoft.VisualStudio.Debugger.AzureAttach",
                              -            "Microsoft.VisualStudio.Web.Azure.Common",
                              -            "Microsoft.WebTools.Shared",
                              -            "Microsoft.WebTools.DotNet.Core.ItemTemplates",
                              -            "Microsoft.VisualStudio.PackageGroup.Debugger.TimeTravel.Replay",
                              -            "Microsoft.VisualStudio.VC.Ide.Debugger",
                              -            "Microsoft.VisualStudio.VC.Ide.Debugger.Concord",
                              -            "Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.Debugger.Resources",
                              -            "Microsoft.VisualStudio.VC.Ide.Common",
                              -            "Microsoft.VisualStudio.VC.Ide.Common.Resources",
                              -            "Microsoft.VisualStudio.Debugger.CollectionAgents",
                              -            "Microsoft.VisualStudio.Debugger.Parallel",
                              -            "Microsoft.VisualStudio.Debugger.Parallel.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Managed",
                              -            "Microsoft.CodeAnalysis.ExpressionEvaluator",
                              -            "Microsoft.CodeAnalysis.VisualStudio.Setup",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Managed",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Managed.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Managed.Resources",
                              -            "Microsoft.VisualStudio.Debugger.TargetComposition",
                              -            "Microsoft.VisualStudio.Debugger.TargetComposition.Remote.arm64",
                              -            "Microsoft.VisualStudio.Debugger.TargetComposition.Remote",
                              -            "Microsoft.VisualStudio.Debugger.TargetComposition.Remote",
                              -            "Microsoft.VisualStudio.Debugger.Remote",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Remote",
                              -            "Microsoft.VisualStudio.Debugger.Remote.ARM64",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.ARM64",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.ARM64",
                              -            "Microsoft.VisualStudio.Debugger.Remote.ARM",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.ARM",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.ARM",
                              -            "Microsoft.VisualStudio.Debugger.Remote.Resources.ARM",
                              -            "Microsoft.VisualStudio.Debugger.Remote.Resources.ARM64",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Remote.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Remote.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Remote.Resources",
                              -            "Microsoft.VisualStudio.Debugger",
                              -            "Microsoft.VisualStudio.VC.MSVCDis",
                              -            "Microsoft.IntelliTrace.DiagnosticsHub",
                              -            "Microsoft.VisualStudio.Debugger.Concord",
                              -            "Microsoft.VisualStudio.Debugger.Concord.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Resources",
                              -            "Microsoft.VisualStudio.Debugger.Package.DiagHub.Client",
                              -            "Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
                              -            "Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
                              -            "Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
                              -            "Microsoft.PackageGroup.ClientDiagnostics",
                              -            "Microsoft.VisualStudio.AppResponsiveness",
                              -            "Microsoft.VisualStudio.AppResponsiveness.Targeted",
                              -            "Microsoft.VisualStudio.AppResponsiveness.Resources",
                              -            "Microsoft.VisualStudio.ClientDiagnostics",
                              -            "Microsoft.VisualStudio.ClientDiagnostics.Targeted",
                              -            "Microsoft.VisualStudio.ClientDiagnostics.Resources",
                              -            "Microsoft.VisualStudio.PackageGroup.CommunityCore",
                              -            "Microsoft.VisualStudio.ProjectSystem.Full",
                              -            "Microsoft.VisualStudio.LiveShareApi",
                              -            "Microsoft.VisualStudio.ProjectSystem.Query",
                              -            "Microsoft.VisualStudio.ProjectSystem",
                              -            "Microsoft.VisualStudio.Community.x86",
                              -            "Microsoft.VisualStudio.Community.x64",
                              -            "Microsoft.VisualStudio.Community.Msi.Resources",
                              -            "Microsoft.VisualStudio.Community.Msi",
                              -            "Microsoft.VisualStudio.Community.Shared.Msi",
                              -            "Microsoft.VisualStudio.Devenv.Msi",
                              -            "Microsoft.VisualStudio.Devenv.Shared.Msi",
                              -            "Microsoft.VisualStudio.MinShell.Interop.Msi",
                              -            "Microsoft.VisualStudio.MinShell.Interop.Shared.Msi",
                              -            "Microsoft.VisualStudio.Editors",
                              -            "Microsoft.VisualStudio.Workload.CoreEditor",
                              -            "Microsoft.VisualStudio.Component.CoreEditor",
                              -            "Microsoft.VisualStudio.PackageGroup.CoreEditor",
                              -            "Microsoft.WebView2",
                              -            "Microsoft.VisualStudio.ScriptedHost",
                              -            "Microsoft.VisualStudio.ScriptedHost.Targeted",
                              -            "Microsoft.VisualCpp.Tools.Common.UtilsPrereq",
                              -            "Microsoft.VisualCpp.Tools.Common.Utils",
                              -            "Microsoft.VisualCpp.Tools.Common.Utils.Resources",
                              -            "Microsoft.VisualStudio.PackageGroup.VsDevCmd",
                              -            "Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk",
                              -            "Microsoft.VisualStudio.VsDevCmd.Core.WinSdk",
                              -            "Microsoft.VisualStudio.VsDevCmd.Core.DotNet",
                              -            "Microsoft.VisualStudio.VC.DevCmd",
                              -            "Microsoft.VisualStudio.VC.DevCmd.Resources",
                              -            "Microsoft.VisualStudio.VirtualTree",
                              -            "Microsoft.DiaSymReader",
                              -            "Microsoft.Build.Dependencies",
                              -            "Microsoft.Build.FileTracker.Msi",
                              -            "Microsoft.Build",
                              -            "Microsoft.VisualStudio.PackageGroup.NuGet",
                              -            "Microsoft.DataAI.NuGetRecommender",
                              -            "Microsoft.VisualStudio.NuGet.Core",
                              -            "Microsoft.Build.Arm64",
                              -            "Microsoft.Build.UnGAC",
                              -            "Microsoft.VisualStudio.TextMateGrammars",
                              -            "Microsoft.VisualStudio.Platform.Markdown",
                              -            "Microsoft.VisualStudio.Platform.CrossRepositorySearch",
                              -            "Microsoft.VisualStudio.PackageGroup.TeamExplorer.Common",
                              -            "Microsoft.VisualStudio.TeamExplorer",
                              -            "Microsoft.VisualStudio.PackageGroup.ServiceHub",
                              -            "Microsoft.ServiceHub.Node",
                              -            "Microsoft.ServiceHub.Managed",
                              -            "Microsoft.ServiceHub.arm64",
                              -            "Microsoft.VisualStudio.ProjectServices",
                              -            "Microsoft.VisualStudio.OpenFolder.VSIX",
                              -            "Microsoft.VisualStudio.FileHandler.Msi",
                              -            "Microsoft.VisualStudio.FileHandler.Msi",
                              -            "Microsoft.VisualStudio.PackageGroup.MinShell",
                              -            "Microsoft.VisualStudio.MinShell.Msi",
                              -            "Microsoft.VisualStudio.MinShell.Shared.Msi",
                              -            "Microsoft.VisualStudio.MinShell.Msi.Resources",
                              -            "Microsoft.VisualStudio.MinShell.Interop",
                              -            "CoreEditorFonts",
                              -            "Microsoft.VisualStudio.Log",
                              -            "Microsoft.VisualStudio.Log.Targeted",
                              -            "Microsoft.VisualStudio.Log.Resources",
                              -            "Microsoft.VisualStudio.Finalizer",
                              -            "Microsoft.VisualStudio.Devenv",
                              -            "Microsoft.VisualStudio.Devenv.Resources",
                              -            "Microsoft.VisualStudio.CoreEditor",
                              -            "Microsoft.VisualStudio.Navigation.RichCodeNav",
                              -            "Microsoft.VisualStudio.Platform.NavigateTo",
                              -            "Microsoft.VisualStudio.Connected",
                              -            "SQLitePCLRaw",
                              -            "SQLitePCLRaw.Targeted",
                              -            "Microsoft.VisualStudio.Connected.Auto",
                              -            "Microsoft.VisualStudio.Connected.Auto.Resources",
                              -            "Microsoft.VisualStudio.AzureSDK",
                              -            "Microsoft.VisualStudio.PerfLib",
                              -            "Microsoft.VisualStudio.Connected.Resources",
                              -            "Microsoft.Net.PackageGroup.4.8.Redist",
                              -            "Microsoft.VisualStudio.PackageGroup.Progression",
                              -            "Microsoft.VisualStudio.PerformanceProvider",
                              -            "Microsoft.VisualStudio.GraphModel",
                              -            "Microsoft.VisualStudio.GraphProvider",
                              -            "Microsoft.VisualStudio.Community.VB.Targeted",
                              -            "Microsoft.VisualStudio.Community.VB.Neutral",
                              -            "Microsoft.VisualStudio.Community.CSharp.Targeted",
                              -            "Microsoft.VisualStudio.Community.CSharp.Neutral",
                              -            "Microsoft.VisualStudio.Community.ProductArch.TargetedExtra",
                              -            "Microsoft.VisualStudio.Community.ProductArch.Targeted",
                              -            "Microsoft.VisualStudio.Community.ProductArch.NeutralExtra",
                              -            "Microsoft.DiaSymReader.PortablePdb",
                              -            "Microsoft.IntelliTrace.CollectorCab",
                              -            "Microsoft.VisualStudio.Community.VB.Resources.Targeted",
                              -            "Microsoft.VisualStudio.Community.VB.Resources.Neutral",
                              -            "Microsoft.VisualStudio.Community.CSharp.Resources.Targeted",
                              -            "Microsoft.VisualStudio.Community.CSharp.Resources.Neutral",
                              -            "Microsoft.VisualStudio.Community.ProductArch.Resources.Targeted",
                              -            "Microsoft.VisualStudio.Community.ProductArch.Resources.NeutralExtra",
                              -            "Microsoft.VisualStudio.Net.Eula.Resources",
                              -            "Microsoft.VisualStudio.Community.ProductArch.Resources.Neutral",
                              -            "Microsoft.VisualStudio.WebSiteProject.DTE",
                              -            "Microsoft.VisualStudio.Diagnostics.AspNetHelper",
                              -            "Microsoft.VisualStudio.Diagnostics.AspNetHelper.Standard",
                              -            "Microsoft.MSHtml",
                              -            "Microsoft.VisualStudio.Platform.CallHierarchy",
                              -            "Microsoft.VisualStudio.Community.ProductArch.Neutral",
                              -            "Microsoft.VisualStudio.MinShell",
                              -            "Microsoft.VisualStudio.VsWebProtocolSelector.Msi",
                              -            "Microsoft.Net.6.WindowsDesktop.Runtime",
                              -            "Microsoft.Net.6.Runtime",
                              -            "Microsoft.VisualStudio.PackageGroup.Setup.Common",
                              -            "Microsoft.VisualStudio.Setup.WMIProvider",
                              -            "Microsoft.VisualStudio.Setup.Configuration.Interop",
                              -            "Microsoft.VisualStudio.Setup.Configuration",
                              -            "Microsoft.VisualStudio.Extensibility.Container",
                              -            "Microsoft.VisualStudio.LanguageServer",
                              -            "Microsoft.VisualStudio.Platform.Terminal",
                              -            "Microsoft.VisualStudio.MefHosting",
                              -            "Microsoft.VisualStudio.Initializer",
                              -            "Microsoft.VisualStudio.ExtensionManager",
                              -            "Microsoft.VisualStudio.Platform.Editor",
                              -            "Microsoft.VisualStudio.MinShell.Targeted",
                              -            "Microsoft.VisualStudio.NativeImageSupport",
                              -            "Microsoft.VisualStudio.Devenv.Config",
                              -            "Microsoft.VisualStudio.MinShell.Resources.arm64",
                              -            "Microsoft.VisualStudio.MinShell.Auto",
                              -            "Microsoft.VisualStudio.MinShell.Auto.Resources",
                              -            "Microsoft.VisualStudio.Branding.Community"
                              -        ]
                              -    }
                              -]
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/certs.js b/deps/npm/node_modules/node-gyp/test/fixtures/certs.js
                              deleted file mode 100644
                              index 766e54b5ed3900..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/certs.js
                              +++ /dev/null
                              @@ -1,150 +0,0 @@
                              -module.exports['ca.key'] = `
                              ------BEGIN RSA PRIVATE KEY-----
                              -MIIEowIBAAKCAQEAtTbG0k2UFUyCdZuip0TTEtXRHh57qosegrpHPBreSNTxt7OT
                              -KfOUZp2rToTHeN9w0ZbV2eKRI5AuFx8Cmlm73/KIHKzSNTBATGMeeHnGaxvL/W/s
                              -KJdTDRNf7/qCXHQ+gsuEWWCFzOZuHmmAQa2IBX2HAQTqXJI8+2iJ9gytFfJLxjqy
                              -6O4u9ugZVHSyQJWs49tGRcWMlNm7EMStADFvJn3S11xe/kwIA2mSI/eddDnzL0Mx
                              -AkR9dQBL66xOABLL5v3QQdhipfHluX6HLbDd/1YsFTuOpgvLRlr72rTAFrQZCokV
                              -hXPiqstn5zJFW5arHakvMR0+OPaICF5feh/4qQIDAQABAoIBAHWg6exnWUF+GY0Y
                              -CrwDS/QFASpI5UNt7M809bqJQlMKjyEMmvF3YJQ/soxUWlsWx1f1TjmR/V6VX6W4
                              -hmsE5pRXDY13jTfja0lqacQQYAD02TRY63XpzIpHUlYnSWmUN2OVkgKmShQYW9C3
                              -8P4xE4Nk2TaLJ0oRzy3uzOb/kXcVaJfknBRUnOhuaTSs+w4l4pPXueYA7xuHgVsL
                              -Qq0S4kK+PmdwCMB7gzlAAQhCM3vQ1U4cjC9JIIKSmPy7BcvD0kBfVPIFQ2byGpA1
                              -VkWBLSyeig0YxA5oIshK5cLiDIfBIiCSEzm4AMhVhGf0tbGEwiPljxKjbarYUUIi
                              -ATMk83UCgYEA7kKeOveuPbMqxmT42swfa9OU5jLUjH+VExU0Kv3BbEjv/OGt0fac
                              -/cs1Ze3vnrtCHudVajocFjydb8B4c62DbA4/T+LcUw/HaMaORbOoICQidi/zZ1Lj
                              -gjg8Ip2WKXEhSAwqUpaFd6w16NZOxiTh+NDaRKywwbe8j57eDH4uR6MCgYEAwrTS
                              -q5ra6+WDGUFMs0y3GMbL8j14PGhxBQBYSTM//NysI+EM6eeKn1cV3BbphEw//jgE
                              -0pVokkjvLAQWWEG2dZyRxRE3YAMgOAIPx5zbJCim3iBVuoqY9ckLg2jF8Fqqubsb
                              -3Rf2/Xzn/rFqsXdhsjGcJpdN66T9aEjwEkAnc0MCgYA5cOYk4UGormFJo147oaqR
                              -nFjxhp+nn7qY9yu0kajoKk1xchct337J0Qv2nv5+DjdKrArzqT7MPaDXKFfhy5s7
                              -mdO5tr/XZp50rCnws/d8iDmmtLjB2EHxSw10avmg1B1p+UTa1F8pEuOMVt529r1j
                              -9zYoCFo02c8j8PEnoeQWcQKBgQCVBCuQZu5SSM/zTkTTnU0sy0lf1qflI9IMD92B
                              -+JVqg8HDnAR0KF+x38a9MVP7ixgXCuy19t+XxfY269HmLjTlArWV671D4GCSPRGy
                              -plwZ6nr72ieCo3y57+q94jxL3jh3+bozlpnUG/q6tTKBLGs7JDjsWDSsuxOu8tO6
                              -RBttXQKBgB6LQFOTjDMfsFHKsnQXFUZId3GG/iLg3WCWxEo88T5Rq3JIR0zDpW8H
                              -cKhl/sPY+JVHsxizNCMPtp7Hn7GrB6D/v9LbO0jpG2U0BFiJ6zhiDopbP9B0EAW4
                              -5JJ+JGKRKoCxs3DmSVyns0gU4j4rVte97UWyVy5TZ8Acr/qrgOA1
                              ------END RSA PRIVATE KEY-----
                              -`
                              -
                              -module.exports['ca.crt'] = `
                              ------BEGIN CERTIFICATE-----
                              -MIIDmzCCAoOgAwIBAgIUDA0GrvcnG41XT6LYFeNwvq8YV1UwDQYJKoZIhvcNAQEL
                              -BQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRAwDgYDVQQKDAdOb2RlLmpz
                              -MREwDwYDVQQLDAhub2RlLWd5cDEcMBoGA1UEAwwTbm9kZS1neXAubm9kZWpzLm9y
                              -ZzAeFw0yMjA1MTEwNDIyMjRaFw00OTA5MjUwNDIyMjRaMF0xCzAJBgNVBAYTAlVT
                              -MQswCQYDVQQIDAJDQTEQMA4GA1UECgwHTm9kZS5qczERMA8GA1UECwwIbm9kZS1n
                              -eXAxHDAaBgNVBAMME25vZGUtZ3lwLm5vZGVqcy5vcmcwggEiMA0GCSqGSIb3DQEB
                              -AQUAA4IBDwAwggEKAoIBAQC1NsbSTZQVTIJ1m6KnRNMS1dEeHnuqix6Cukc8Gt5I
                              -1PG3s5Mp85RmnatOhMd433DRltXZ4pEjkC4XHwKaWbvf8ogcrNI1MEBMYx54ecZr
                              -G8v9b+wol1MNE1/v+oJcdD6Cy4RZYIXM5m4eaYBBrYgFfYcBBOpckjz7aIn2DK0V
                              -8kvGOrLo7i726BlUdLJAlazj20ZFxYyU2bsQxK0AMW8mfdLXXF7+TAgDaZIj9510
                              -OfMvQzECRH11AEvrrE4AEsvm/dBB2GKl8eW5foctsN3/ViwVO46mC8tGWvvatMAW
                              -tBkKiRWFc+Kqy2fnMkVblqsdqS8xHT449ogIXl96H/ipAgMBAAGjUzBRMB0GA1Ud
                              -DgQWBBT6LcYYABEOAMv4hI/5bC82rGlD/DAfBgNVHSMEGDAWgBT6LcYYABEOAMv4
                              -hI/5bC82rGlD/DAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA9
                              -D+qoKw0njub+NaFRS2DFbSiKb5JKTxVjU5aNusFONFLSXBuRpnYyjjkXpJy8JMWz
                              -g8GFDEPP6kiSb8xaPNrFcUzb4PFzJabNTuaLJpBpd2gNBj5AeYwwpRa2DPv/b4yw
                              -y2mfULuCWS09ZAguI2OcaARlAsFxYN0IuQ6pN1AvGFGee67ve9l2VF/hhwEi4lCk
                              -MM0CWlP6COJ8TX7X0MTtexVOgo9m3hBuTSYEZClYFIdSOk10xkPl8Y3Iz/x6mzfK
                              -Uu2l2ZtYvSdAX1CQMds3ZWt0ChNNEjOKPv4g2QSDhGkiqrmi4wUS81g68wKqOpqn
                              -GbN8uKxIfyMjqZKaujPR
                              ------END CERTIFICATE-----
                              -`
                              -
                              -module.exports['server.key'] = `
                              ------BEGIN RSA PRIVATE KEY-----
                              -MIIEpAIBAAKCAQEAvPM99BkYrBcTM355dhz4XzhSDRGxa9qttUlBSgEsbu2UjsRm
                              -XjDS+60XXd66tWpPwLeUd2uvlC/ltv5ekv+EBu35j1KfA1+K1rtFzb1i40kMCsns
                              -OoXjgpsN2wvkxMdFkT2bkqKCS6X0xzlWea1t4poKh9iG7n3otk4RzPNawfwQ9W5n
                              -o9/8i6AUwDbuK4dhAId/Inw2aKrMyQ+AiSvsDM2wUMq+pV7nP46f7MhR4xiGz14z
                              -ATFdjM3Oo/1NKrr0WgVM6i0eNAtuIDqIs8YE7SfODe/SzpJySxewutfYi62OaLh/
                              -hmWByj/pF5SoNMLyJHxn4GyKK+Qle9NJAThLiwIDAQABAoIBAQCZs4h/Cvct7etZ
                              -pRUqxnAoDQl5xh28LXvGj1uD1qaNacfBxvO6xR6rSedLHcZlkqBjlTI5XqjJ85h6
                              -njrSevWsKWMrejsNpGetO1OSA+/wEVixYgY+qPEkKftAZ1Fl3O+zMRlfU8CHxuzy
                              -Lqsweap8fW/5h2JjmJp3ydPjE0aNqpQ+0LtYBBawKDIe2zPNOmTPwz3D8qJNQJKU
                              -Qdj08dO/vPZncllPagGvpqhfv4hMyNChr71eBbEFsi3O5VJxfZyj+fQG0DGocr/y
                              -sV54HtYk5j06wMxZFLQtaJn+1pOXquZMNwodSPnbrR/+CI1SZeB8N6VyqqOdmrDz
                              -5NbfGJiRAoGBAPrCuQxJwgc2MzpEtrXA4+1uuV8QWGy3+wNKxKw4lgyC7peXXrVK
                              -l9FkOOAPr8puPRABgDS9t6vo59BAP3Wrx0oJ9PA/Qn03WYLfJMepWqlK7ni9kS04
                              -5owRTduK7P190sp0m6iicsnchGSSOchECwB5UmtHysEFiuY0T+0pdNbjAoGBAMDl
                              -57lwZDfNTGGDxLQYVzbrXgKcD60DW9MhvH3uso6cw5NYs3tmENCh9D6YrCNN4PmL
                              -zdp4dKbOFoGJdy22TK31nrezUuNKSK+QKH2gsmNVI+a5QokNO1Cfk+PMLoOR5du2
                              -nwyVvzdaBwuXU4fhmwvLv/SCFNEJ0EgUILeMETE5AoGBAIwLXf9v3e3bJkb/gy8E
                              -mAbNVLez0D5/ja9r/WTVgW9hXFDLF/iVvS4TE/SGrj2WzYF35RsPbVmUDIrwpsBX
                              -/EfsQaA/JCn8VIBTkR31Bg4QLBjAfijMY22MaHgZIXv83lF1SE2o1ATKpCHqzFx9
                              -K8vK9e22PZUJPGaOhqjEA13TAoGAEPipSJFw38/6NmInfkjd84EFxmkAoBI5k/vV
                              -36aOoyl7s40MTYEPXavCF3fLPVfuwUXhmKUcbkiXhlIX4De3y15e1n66fjDc8EVY
                              -qqTmzQKCpBwMlI5Ld65yjoo6VW0SsiABIlRSfIY5NHXd7YiV4ZXNj6+aMUIRxyWu
                              -Mzfpk1ECgYBZw8lML+F8XbcmCLGYuicf0V/wgFaJr8nnPeW7AiQrv13Ju1ItEaC8
                              -Tz8F7OfC+FoUb0MGjXHKquDVBDs4xSuS+Ol+rlZEK68ALpm8sUgp6YjARYiXlprs
                              -6o4kN0P5F+DVU2SP6fo9zKLCxaTH9VAQ9C3VUViGAFLBt4DVDmj77g==
                              ------END RSA PRIVATE KEY-----
                              -`
                              -
                              -module.exports['server.crt'] = `
                              ------BEGIN CERTIFICATE-----
                              -MIIDNzCCAh8CFBg1Ph5t5rBlAbCrEn/PexNy9WunMA0GCSqGSIb3DQEBCwUAMF0x
                              -CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEQMA4GA1UECgwHTm9kZS5qczERMA8G
                              -A1UECwwIbm9kZS1neXAxHDAaBgNVBAMME25vZGUtZ3lwLm5vZGVqcy5vcmcwHhcN
                              -MjIwNTExMDQyMjI0WhcNMjMwOTIzMDQyMjI0WjBTMQswCQYDVQQGEwJVUzELMAkG
                              -A1UECAwCQ0ExEDAOBgNVBAoMB05vZGUuanMxETAPBgNVBAsMCG5vZGUtZ3lwMRIw
                              -EAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
                              -AQC88z30GRisFxMzfnl2HPhfOFINEbFr2q21SUFKASxu7ZSOxGZeMNL7rRdd3rq1
                              -ak/At5R3a6+UL+W2/l6S/4QG7fmPUp8DX4rWu0XNvWLjSQwKyew6heOCmw3bC+TE
                              -x0WRPZuSooJLpfTHOVZ5rW3imgqH2Ibufei2ThHM81rB/BD1bmej3/yLoBTANu4r
                              -h2EAh38ifDZoqszJD4CJK+wMzbBQyr6lXuc/jp/syFHjGIbPXjMBMV2Mzc6j/U0q
                              -uvRaBUzqLR40C24gOoizxgTtJ84N79LOknJLF7C619iLrY5ouH+GZYHKP+kXlKg0
                              -wvIkfGfgbIor5CV700kBOEuLAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAEhaNEye
                              -JsE4eG1xaGmHq7w9eV0neOaZ58XCuF1sSEMIy9uMnl3aOdctxh/1SYkqJyMct79q
                              -Ra2UZ6mauRlOeqdHb+HZKrFYYUOtd1HOWWJ44Gaya2EQMiTbd/Ns9Th2KTbTOCbL
                              -CHFNska9Ty2ioT7VcrVuIEXFPMua5T4lnCkNJQla800pHHOak2baN/c66Io+8XI2
                              -xiqaVrLT3qvpzdiiEjo4POeRnWMIgJJshy77Am5JlhaJiAqP1AHfh/tYpliGkjXF
                              -8DSgSoLHSQfalJ4VQvP4XLc/XnmF5Zt6bvwUxCllEBFRneU74bW7/euYX/TpYobr
                              -Y+YM7fGiCqwHdUs=
                              ------END CERTIFICATE-----
                              -`
                              -
                              -module.exports['ca-bundle.crt'] = `
                              ------BEGIN CERTIFICATE-----
                              -MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
                              -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
                              -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
                              -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV
                              -BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
                              -CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt
                              -Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM
                              -cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT
                              -n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia
                              -SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy
                              -0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA
                              -hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf
                              -jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH
                              -jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie
                              -Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0
                              -PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1
                              -na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW
                              ------END CERTIFICATE-----
                              ------BEGIN CERTIFICATE-----
                              -MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
                              -VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
                              -TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
                              -bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ
                              -BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ
                              -MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow
                              -GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
                              -ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE
                              -H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv
                              -lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P
                              -foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo
                              -xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ
                              -mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC
                              -AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a
                              -K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae
                              -KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+
                              -YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n
                              -VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+
                              -uGZtfEvhbNm6m2i4UNmpCXxUZQ==
                              ------END CERTIFICATE-----
                              -`
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi b/deps/npm/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi
                              deleted file mode 100644
                              index e767534082f8ce..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi
                              +++ /dev/null
                              @@ -1,6 +0,0 @@
                              -# Test configuration
                              -{
                              -  'variables': {
                              -    'build_with_electron': true
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py b/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py
                              deleted file mode 100644
                              index 63aa77bb482ef2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/fixtures/test-charmap.py
                              +++ /dev/null
                              @@ -1,31 +0,0 @@
                              -import sys
                              -import locale
                              -
                              -try:
                              -    reload(sys)
                              -except NameError:  # Python 3
                              -    pass
                              -
                              -
                              -def main():
                              -    encoding = locale.getdefaultlocale()[1]
                              -    if not encoding:
                              -        return False
                              -
                              -    try:
                              -        sys.setdefaultencoding(encoding)
                              -    except AttributeError:  # Python 3
                              -        pass
                              -
                              -    textmap = {
                              -        "cp936": "\u4e2d\u6587",
                              -        "cp1252": "Lat\u012Bna",
                              -        "cp932": "\u306b\u307b\u3093\u3054",
                              -    }
                              -    if encoding in textmap:
                              -        print(textmap[encoding])
                              -    return True
                              -
                              -
                              -if __name__ == "__main__":
                              -    print(main())
                              diff --git a/deps/npm/node_modules/node-gyp/test/process-exec-sync.js b/deps/npm/node_modules/node-gyp/test/process-exec-sync.js
                              deleted file mode 100644
                              index 21763bc26de108..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/process-exec-sync.js
                              +++ /dev/null
                              @@ -1,140 +0,0 @@
                              -'use strict'
                              -
                              -const fs = require('graceful-fs')
                              -const childProcess = require('child_process')
                              -
                              -function startsWith (str, search, pos) {
                              -  if (String.prototype.startsWith) {
                              -    return str.startsWith(search, pos)
                              -  }
                              -
                              -  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search
                              -}
                              -
                              -function processExecSync (file, args, options) {
                              -  var child, error, timeout, tmpdir, command
                              -  command = makeCommand(file, args)
                              -
                              -  /*
                              -    this function emulates child_process.execSync for legacy node <= 0.10.x
                              -    derived from https://github.com/gvarsanyi/sync-exec/blob/master/js/sync-exec.js
                              -  */
                              -
                              -  options = options || {}
                              -  // init timeout
                              -  timeout = Date.now() + options.timeout
                              -  // init tmpdir
                              -  var osTempBase = '/tmp'
                              -  var os = determineOS()
                              -  osTempBase = '/tmp'
                              -
                              -  if (process.env.TMP) {
                              -    osTempBase = process.env.TMP
                              -  }
                              -
                              -  if (osTempBase[osTempBase.length - 1] !== '/') {
                              -    osTempBase += '/'
                              -  }
                              -
                              -  tmpdir = osTempBase + 'processExecSync.' + Date.now() + Math.random()
                              -  fs.mkdirSync(tmpdir)
                              -
                              -  // init command
                              -  if (os === 'linux') {
                              -    command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
                              -      '/stderr); echo $? > ' + tmpdir + '/status'
                              -  } else {
                              -    command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
                              -      '/stderr) | echo %errorlevel% > ' + tmpdir + '/status | exit'
                              -  }
                              -
                              -  // init child
                              -  child = childProcess.exec(command, options)
                              -
                              -  var maxTry = 100000 // increases the test time by 6 seconds on win-2016-node-0.10
                              -  var tryCount = 0
                              -  while (tryCount < maxTry) {
                              -    try {
                              -      var x = fs.readFileSync(tmpdir + '/status')
                              -      if (x.toString() === '0') {
                              -        break
                              -      }
                              -    } catch (ignore) {}
                              -    tryCount++
                              -    if (Date.now() > timeout) {
                              -      error = child
                              -      break
                              -    }
                              -  }
                              -
                              -  ['stdout', 'stderr', 'status'].forEach(function (file) {
                              -    child[file] = fs.readFileSync(tmpdir + '/' + file, options.encoding)
                              -    setTimeout(unlinkFile, 500, tmpdir + '/' + file)
                              -  })
                              -
                              -  child.status = Number(child.status)
                              -  if (child.status !== 0) {
                              -    error = child
                              -  }
                              -
                              -  try {
                              -    fs.rmdirSync(tmpdir)
                              -  } catch (ignore) {}
                              -  if (error) {
                              -    throw error
                              -  }
                              -  return child.stdout
                              -}
                              -
                              -function makeCommand (file, args) {
                              -  var command, quote
                              -  command = file
                              -  if (args.length > 0) {
                              -    for (var i in args) {
                              -      command = command + ' '
                              -      if (args[i][0] === '-') {
                              -        command = command + args[i]
                              -      } else {
                              -        if (!quote) {
                              -          command = command + '"'
                              -          quote = true
                              -        }
                              -        command = command + args[i]
                              -        if (quote) {
                              -          if (args.length === (parseInt(i) + 1)) {
                              -            command = command + '"'
                              -          }
                              -        }
                              -      }
                              -    }
                              -  }
                              -  return command
                              -}
                              -
                              -function determineOS () {
                              -  var os = ''
                              -  var tmpVar = ''
                              -  if (process.env.OSTYPE) {
                              -    tmpVar = process.env.OSTYPE
                              -  } else if (process.env.OS) {
                              -    tmpVar = process.env.OS
                              -  } else {
                              -    // default is linux
                              -    tmpVar = 'linux'
                              -  }
                              -
                              -  if (startsWith(tmpVar, 'linux')) {
                              -    os = 'linux'
                              -  }
                              -  if (startsWith(tmpVar, 'win')) {
                              -    os = 'win'
                              -  }
                              -
                              -  return os
                              -}
                              -
                              -function unlinkFile (file) {
                              -  fs.unlinkSync(file)
                              -}
                              -
                              -module.exports = processExecSync
                              diff --git a/deps/npm/node_modules/node-gyp/test/reporter.js b/deps/npm/node_modules/node-gyp/test/reporter.js
                              deleted file mode 100644
                              index 9964b1b5d504c0..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/reporter.js
                              +++ /dev/null
                              @@ -1,75 +0,0 @@
                              -const Mocha = require('mocha')
                              -
                              -class Reporter {
                              -  constructor (runner) {
                              -    this.failedTests = []
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_RUN_BEGIN, () => {
                              -      console.log('Starting tests')
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_RUN_END, () => {
                              -      console.log('Tests finished')
                              -      console.log()
                              -      console.log('****************')
                              -      console.log('* TESTS REPORT *')
                              -      console.log('****************')
                              -      console.log()
                              -      console.log(`Executed ${runner.stats.suites} suites with ${runner.stats.tests} tests in ${runner.stats.duration} ms`)
                              -      console.log(`  Passed: ${runner.stats.passes}`)
                              -      console.log(`  Skipped: ${runner.stats.pending}`)
                              -      console.log(`  Failed: ${runner.stats.failures}`)
                              -      if (this.failedTests.length > 0) {
                              -        console.log()
                              -        console.log('  Failed test details')
                              -        this.failedTests.forEach((failedTest, index) => {
                              -          console.log()
                              -          console.log(`    ${index + 1}.'${failedTest.test.fullTitle()}'`)
                              -          console.log(`      Name: ${failedTest.error.name}`)
                              -          console.log(`      Message: ${failedTest.error.message}`)
                              -          console.log(`      Code: ${failedTest.error.code}`)
                              -          console.log(`      Stack: ${failedTest.error.stack}`)
                              -        })
                              -      }
                              -      console.log()
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_SUITE_BEGIN, (suite) => {
                              -      if (suite.root) {
                              -        return
                              -      }
                              -      console.log(`Starting suite '${suite.title}'`)
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_SUITE_END, (suite) => {
                              -      if (suite.root) {
                              -        return
                              -      }
                              -      console.log(`Suite '${suite.title}' finished`)
                              -      console.log()
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_TEST_BEGIN, (test) => {
                              -      console.log(`Starting test '${test.title}'`)
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_TEST_PASS, (test) => {
                              -      console.log(`Test '${test.title}' passed in ${test.duration} ms`)
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_TEST_PENDING, (test) => {
                              -      console.log(`Test '${test.title}' skipped in ${test.duration} ms`)
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_TEST_FAIL, (test, error) => {
                              -      this.failedTests.push({ test, error })
                              -      console.log(`Test '${test.title}' failed in ${test.duration} ms with ${error}`)
                              -    })
                              -
                              -    runner.on(Mocha.Runner.constants.EVENT_TEST_END, (test) => {
                              -      console.log()
                              -    })
                              -  }
                              -}
                              -
                              -module.exports = Reporter
                              diff --git a/deps/npm/node_modules/node-gyp/test/simple-proxy.js b/deps/npm/node_modules/node-gyp/test/simple-proxy.js
                              deleted file mode 100644
                              index cb0dfcfec7edcd..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/simple-proxy.js
                              +++ /dev/null
                              @@ -1,27 +0,0 @@
                              -'use strict'
                              -
                              -const http = require('http')
                              -const https = require('https')
                              -const server = http.createServer(handler)
                              -const port = +process.argv[2]
                              -const prefix = process.argv[3]
                              -const upstream = process.argv[4]
                              -var calls = 0
                              -
                              -server.listen(port)
                              -
                              -function handler (req, res) {
                              -  if (req.url.indexOf(prefix) !== 0) {
                              -    throw new Error('request url [' + req.url + '] does not start with [' + prefix + ']')
                              -  }
                              -
                              -  var upstreamUrl = upstream + req.url.substring(prefix.length)
                              -  https.get(upstreamUrl, function (ures) {
                              -    ures.on('end', function () {
                              -      if (++calls === 2) {
                              -        server.close()
                              -      }
                              -    })
                              -    ures.pipe(res)
                              -  })
                              -}
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-addon.js b/deps/npm/node_modules/node-gyp/test/test-addon.js
                              deleted file mode 100644
                              index 43556620a85abb..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-addon.js
                              +++ /dev/null
                              @@ -1,152 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const path = require('path')
                              -const fs = require('graceful-fs')
                              -const childProcess = require('child_process')
                              -const os = require('os')
                              -const addonPath = path.resolve(__dirname, 'node_modules', 'hello_world')
                              -const nodeGyp = path.resolve(__dirname, '..', 'bin', 'node-gyp.js')
                              -const execFileSync = childProcess.execFileSync || require('./process-exec-sync')
                              -const execFile = childProcess.execFile
                              -
                              -function runHello (hostProcess) {
                              -  if (!hostProcess) {
                              -    hostProcess = process.execPath
                              -  }
                              -  var testCode = "console.log(require('hello_world').hello())"
                              -  return execFileSync(hostProcess, ['-e', testCode], { cwd: __dirname }).toString()
                              -}
                              -
                              -function getEncoding () {
                              -  var code = 'import locale;print(locale.getdefaultlocale()[1])'
                              -  return execFileSync('python', ['-c', code]).toString().trim()
                              -}
                              -
                              -function checkCharmapValid () {
                              -  var data
                              -  try {
                              -    data = execFileSync('python', ['fixtures/test-charmap.py'],
                              -      { cwd: __dirname })
                              -  } catch (err) {
                              -    return false
                              -  }
                              -  var lines = data.toString().trim().split('\n')
                              -  return lines.pop() === 'True'
                              -}
                              -
                              -describe('addon', function () {
                              -  this.timeout(300000)
                              -
                              -  it('build simple addon', function (done) {
                              -    // Set the loglevel otherwise the output disappears when run via 'npm test'
                              -    var cmd = [nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose']
                              -    var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
                              -      var logLines = stderr.toString().trim().split(/\r?\n/)
                              -      var lastLine = logLines[logLines.length - 1]
                              -      assert.strictEqual(err, null)
                              -      assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
                              -      assert.strictEqual(runHello().trim(), 'world')
                              -      done()
                              -    })
                              -    proc.stdout.setEncoding('utf-8')
                              -    proc.stderr.setEncoding('utf-8')
                              -  })
                              -
                              -  it('build simple addon in path with non-ascii characters', function (done) {
                              -    if (!checkCharmapValid()) {
                              -      return this.skip('python console app can\'t encode non-ascii character.')
                              -    }
                              -
                              -    var testDirNames = {
                              -      cp936: '文件夹',
                              -      cp1252: 'Latīna',
                              -      cp932: 'フォルダ'
                              -    }
                              -    // Select non-ascii characters by current encoding
                              -    var testDirName = testDirNames[getEncoding()]
                              -    // If encoding is UTF-8 or other then no need to test
                              -    if (!testDirName) {
                              -      return this.skip('no need to test')
                              -    }
                              -
                              -    this.timeout(300000)
                              -
                              -    var data
                              -    var configPath = path.join(addonPath, 'build', 'config.gypi')
                              -    try {
                              -      data = fs.readFileSync(configPath, 'utf8')
                              -    } catch (err) {
                              -      assert.fail(err)
                              -      return
                              -    }
                              -    var config = JSON.parse(data.replace(/#.+\n/, ''))
                              -    var nodeDir = config.variables.nodedir
                              -    var testNodeDir = path.join(addonPath, testDirName)
                              -    // Create symbol link to path with non-ascii characters
                              -    try {
                              -      fs.symlinkSync(nodeDir, testNodeDir, 'dir')
                              -    } catch (err) {
                              -      switch (err.code) {
                              -        case 'EEXIST': break
                              -        case 'EPERM':
                              -          assert.fail(err, null, 'Please try to running console as an administrator')
                              -          return
                              -        default:
                              -          assert.fail(err)
                              -          return
                              -      }
                              -    }
                              -
                              -    var cmd = [
                              -      nodeGyp,
                              -      'rebuild',
                              -      '-C',
                              -      addonPath,
                              -      '--loglevel=verbose',
                              -      '-nodedir=' + testNodeDir
                              -    ]
                              -    var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
                              -      try {
                              -        fs.unlink(testNodeDir)
                              -      } catch (err) {
                              -        assert.fail(err)
                              -      }
                              -
                              -      var logLines = stderr.toString().trim().split(/\r?\n/)
                              -      var lastLine = logLines[logLines.length - 1]
                              -      assert.strictEqual(err, null)
                              -      assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
                              -      assert.strictEqual(runHello().trim(), 'world')
                              -      done()
                              -    })
                              -    proc.stdout.setEncoding('utf-8')
                              -    proc.stderr.setEncoding('utf-8')
                              -  })
                              -
                              -  it('addon works with renamed host executable', function (done) {
                              -    // No `fs.copyFileSync` before node8.
                              -    if (process.version.substr(1).split('.')[0] < 8) {
                              -      return this.skip('skipping test for old node version')
                              -    }
                              -
                              -    this.timeout(300000)
                              -
                              -    var notNodePath = path.join(os.tmpdir(), 'notnode' + path.extname(process.execPath))
                              -    fs.copyFileSync(process.execPath, notNodePath)
                              -
                              -    var cmd = [nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose']
                              -    var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
                              -      var logLines = stderr.toString().trim().split(/\r?\n/)
                              -      var lastLine = logLines[logLines.length - 1]
                              -      assert.strictEqual(err, null)
                              -      assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
                              -      assert.strictEqual(runHello(notNodePath).trim(), 'world')
                              -      fs.unlinkSync(notNodePath)
                              -      done()
                              -    })
                              -    proc.stdout.setEncoding('utf-8')
                              -    proc.stderr.setEncoding('utf-8')
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-configure-python.js b/deps/npm/node_modules/node-gyp/test/test-configure-python.js
                              deleted file mode 100644
                              index ab1e5511fad980..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-configure-python.js
                              +++ /dev/null
                              @@ -1,81 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const path = require('path')
                              -const devDir = require('./common').devDir()
                              -const gyp = require('../lib/node-gyp')
                              -const requireInject = require('require-inject')
                              -const configure = requireInject('../lib/configure', {
                              -  'graceful-fs': {
                              -    openSync: function () { return 0 },
                              -    closeSync: function () { },
                              -    writeFile: function (file, data, cb) { cb() },
                              -    stat: function (file, cb) { cb(null, {}) },
                              -    mkdir: function (dir, options, cb) { cb() },
                              -    promises: {
                              -      writeFile: function (file, data) { return Promise.resolve(null) }
                              -    },
                              -    unlink: function (path, cb) { cb() },
                              -    symlink: function (target, path, cb) { cb() }
                              -  }
                              -})
                              -
                              -const EXPECTED_PYPATH = path.join(__dirname, '..', 'gyp', 'pylib')
                              -const SEPARATOR = process.platform === 'win32' ? ';' : ':'
                              -const SPAWN_RESULT = cb => ({ on: function () { cb() } })
                              -
                              -require('npmlog').level = 'warn'
                              -
                              -describe('configure-python', function () {
                              -  it('configure PYTHONPATH with no existing env', function (done) {
                              -    delete process.env.PYTHONPATH
                              -
                              -    var prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.spawn = function () {
                              -      assert.strictEqual(process.env.PYTHONPATH, EXPECTED_PYPATH)
                              -      return SPAWN_RESULT(done)
                              -    }
                              -    prog.devDir = devDir
                              -    configure(prog, [], assert.fail)
                              -  })
                              -
                              -  it('configure PYTHONPATH with existing env of one dir', function (done) {
                              -    var existingPath = path.join('a', 'b')
                              -    process.env.PYTHONPATH = existingPath
                              -
                              -    var prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.spawn = function () {
                              -      assert.strictEqual(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR))
                              -
                              -      var dirs = process.env.PYTHONPATH.split(SEPARATOR)
                              -      assert.deepStrictEqual(dirs, [EXPECTED_PYPATH, existingPath])
                              -
                              -      return SPAWN_RESULT(done)
                              -    }
                              -    prog.devDir = devDir
                              -    configure(prog, [], assert.fail)
                              -  })
                              -
                              -  it('configure PYTHONPATH with existing env of multiple dirs', function (done) {
                              -    var pythonDir1 = path.join('a', 'b')
                              -    var pythonDir2 = path.join('b', 'c')
                              -    var existingPath = [pythonDir1, pythonDir2].join(SEPARATOR)
                              -    process.env.PYTHONPATH = existingPath
                              -
                              -    var prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.spawn = function () {
                              -      assert.strictEqual(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR))
                              -
                              -      var dirs = process.env.PYTHONPATH.split(SEPARATOR)
                              -      assert.deepStrictEqual(dirs, [EXPECTED_PYPATH, pythonDir1, pythonDir2])
                              -
                              -      return SPAWN_RESULT(done)
                              -    }
                              -    prog.devDir = devDir
                              -    configure(prog, [], assert.fail)
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-create-config-gypi.js b/deps/npm/node_modules/node-gyp/test/test-create-config-gypi.js
                              deleted file mode 100644
                              index 725819b6aa1029..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-create-config-gypi.js
                              +++ /dev/null
                              @@ -1,61 +0,0 @@
                              -'use strict'
                              -
                              -const path = require('path')
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const gyp = require('../lib/node-gyp')
                              -const createConfigGypi = require('../lib/create-config-gypi')
                              -const { parseConfigGypi, getCurrentConfigGypi } = createConfigGypi.test
                              -
                              -describe('create-config-gypi', function () {
                              -  it('config.gypi with no options', async function () {
                              -    const prog = gyp()
                              -    prog.parseArgv([])
                              -
                              -    const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
                              -    assert.strictEqual(config.target_defaults.default_configuration, 'Release')
                              -    assert.strictEqual(config.variables.target_arch, process.arch)
                              -  })
                              -
                              -  it('config.gypi with --debug', async function () {
                              -    const prog = gyp()
                              -    prog.parseArgv(['_', '_', '--debug'])
                              -
                              -    const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
                              -    assert.strictEqual(config.target_defaults.default_configuration, 'Debug')
                              -  })
                              -
                              -  it('config.gypi with custom options', async function () {
                              -    const prog = gyp()
                              -    prog.parseArgv(['_', '_', '--shared-libxml2'])
                              -
                              -    const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
                              -    assert.strictEqual(config.variables.shared_libxml2, true)
                              -  })
                              -
                              -  it('config.gypi with nodedir', async function () {
                              -    const nodeDir = path.join(__dirname, 'fixtures', 'nodedir')
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv(['_', '_', `--nodedir=${nodeDir}`])
                              -
                              -    const config = await getCurrentConfigGypi({ gyp: prog, nodeDir, vsInfo: {} })
                              -    assert.strictEqual(config.variables.build_with_electron, true)
                              -  })
                              -
                              -  it('config.gypi with --force-process-config', async function () {
                              -    const nodeDir = path.join(__dirname, 'fixtures', 'nodedir')
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv(['_', '_', '--force-process-config', `--nodedir=${nodeDir}`])
                              -
                              -    const config = await getCurrentConfigGypi({ gyp: prog, nodeDir, vsInfo: {} })
                              -    assert.strictEqual(config.variables.build_with_electron, undefined)
                              -  })
                              -
                              -  it('config.gypi parsing', function () {
                              -    const str = "# Some comments\n{'variables': {'multiline': 'A'\n'B'}}"
                              -    const config = parseConfigGypi(str)
                              -    assert.deepStrictEqual(config, { variables: { multiline: 'AB' } })
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-download.js b/deps/npm/node_modules/node-gyp/test/test-download.js
                              deleted file mode 100644
                              index 1dd5a51b062c0b..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-download.js
                              +++ /dev/null
                              @@ -1,210 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it, after } = require('mocha')
                              -const assert = require('assert')
                              -const fs = require('fs')
                              -const path = require('path')
                              -const util = require('util')
                              -const http = require('http')
                              -const https = require('https')
                              -const install = require('../lib/install')
                              -const semver = require('semver')
                              -const devDir = require('./common').devDir()
                              -const rimraf = require('rimraf')
                              -const gyp = require('../lib/node-gyp')
                              -const log = require('npmlog')
                              -const certs = require('./fixtures/certs')
                              -
                              -log.level = 'warn'
                              -
                              -describe('download', function () {
                              -  it('download over http', async function () {
                              -    const server = http.createServer((req, res) => {
                              -      assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
                              -      res.end('ok')
                              -    })
                              -
                              -    after(() => new Promise((resolve) => server.close(resolve)))
                              -
                              -    const host = 'localhost'
                              -    await new Promise((resolve) => server.listen(0, host, resolve))
                              -    const { port } = server.address()
                              -    const gyp = {
                              -      opts: {},
                              -      version: '42'
                              -    }
                              -    const url = `http://${host}:${port}`
                              -    const res = await install.test.download(gyp, url)
                              -    assert.strictEqual(await res.text(), 'ok')
                              -  })
                              -
                              -  it('download over https with custom ca', async function () {
                              -    const cafile = path.join(__dirname, 'fixtures/ca.crt')
                              -    const cacontents = certs['ca.crt']
                              -    const cert = certs['server.crt']
                              -    const key = certs['server.key']
                              -    await fs.promises.writeFile(cafile, cacontents, 'utf8')
                              -    const ca = await install.test.readCAFile(cafile)
                              -
                              -    assert.strictEqual(ca.length, 1)
                              -
                              -    const options = { ca: ca, cert: cert, key: key }
                              -    const server = https.createServer(options, (req, res) => {
                              -      assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
                              -      res.end('ok')
                              -    })
                              -
                              -    after(async () => {
                              -      await new Promise((resolve) => server.close(resolve))
                              -      await fs.promises.unlink(cafile)
                              -    })
                              -
                              -    server.on('clientError', (err) => { throw err })
                              -
                              -    const host = 'localhost'
                              -    await new Promise((resolve) => server.listen(0, host, resolve))
                              -    const { port } = server.address()
                              -    const gyp = {
                              -      opts: { cafile },
                              -      version: '42'
                              -    }
                              -    const url = `https://${host}:${port}`
                              -    const res = await install.test.download(gyp, url)
                              -    assert.strictEqual(await res.text(), 'ok')
                              -  })
                              -
                              -  it('download over http with proxy', async function () {
                              -    const server = http.createServer((_, res) => {
                              -      res.end('ok')
                              -    })
                              -
                              -    const pserver = http.createServer((req, res) => {
                              -      assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
                              -      res.end('proxy ok')
                              -    })
                              -
                              -    after(() => Promise.all([
                              -      new Promise((resolve) => server.close(resolve)),
                              -      new Promise((resolve) => pserver.close(resolve))
                              -    ]))
                              -
                              -    const host = 'localhost'
                              -    await new Promise((resolve) => server.listen(0, host, resolve))
                              -    const { port } = server.address()
                              -    await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
                              -    const gyp = {
                              -      opts: {
                              -        proxy: `http://${host}:${port + 1}`,
                              -        noproxy: 'bad'
                              -      },
                              -      version: '42'
                              -    }
                              -    const url = `http://${host}:${port}`
                              -    const res = await install.test.download(gyp, url)
                              -    assert.strictEqual(await res.text(), 'proxy ok')
                              -  })
                              -
                              -  it('download over http with noproxy', async function () {
                              -    const server = http.createServer((req, res) => {
                              -      assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
                              -      res.end('ok')
                              -    })
                              -
                              -    const pserver = http.createServer((_, res) => {
                              -      res.end('proxy ok')
                              -    })
                              -
                              -    after(() => Promise.all([
                              -      new Promise((resolve) => server.close(resolve)),
                              -      new Promise((resolve) => pserver.close(resolve))
                              -    ]))
                              -
                              -    const host = 'localhost'
                              -    await new Promise((resolve) => server.listen(0, host, resolve))
                              -    const { port } = server.address()
                              -    await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
                              -    const gyp = {
                              -      opts: {
                              -        proxy: `http://${host}:${port + 1}`,
                              -        noproxy: host
                              -      },
                              -      version: '42'
                              -    }
                              -    const url = `http://${host}:${port}`
                              -    const res = await install.test.download(gyp, url)
                              -    assert.strictEqual(await res.text(), 'ok')
                              -  })
                              -
                              -  it('download with missing cafile', async function () {
                              -    const gyp = {
                              -      opts: { cafile: 'no.such.file' }
                              -    }
                              -    try {
                              -      await install.test.download(gyp, {}, 'http://bad/')
                              -    } catch (e) {
                              -      assert.ok(/no.such.file/.test(e.message))
                              -    }
                              -  })
                              -
                              -  it('check certificate splitting', async function () {
                              -    const cafile = path.join(__dirname, 'fixtures/ca-bundle.crt')
                              -    const cacontents = certs['ca-bundle.crt']
                              -    await fs.promises.writeFile(cafile, cacontents, 'utf8')
                              -    after(async () => {
                              -      await fs.promises.unlink(cafile)
                              -    })
                              -    const cas = await install.test.readCAFile(path.join(__dirname, 'fixtures/ca-bundle.crt'))
                              -    assert.strictEqual(cas.length, 2)
                              -    assert.notStrictEqual(cas[0], cas[1])
                              -  })
                              -
                              -  // only run this test if we are running a version of Node with predictable version path behavior
                              -
                              -  it('download headers (actual)', async function () {
                              -    if (process.env.FAST_TEST ||
                              -        process.release.name !== 'node' ||
                              -        semver.prerelease(process.version) !== null ||
                              -        semver.satisfies(process.version, '<10')) {
                              -      return this.skip('Skipping actual download of headers due to test environment configuration')
                              -    }
                              -
                              -    this.timeout(300000)
                              -
                              -    const expectedDir = path.join(devDir, process.version.replace(/^v/, ''))
                              -    await util.promisify(rimraf)(expectedDir)
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.devDir = devDir
                              -    log.level = 'warn'
                              -    await util.promisify(install)(prog, [])
                              -
                              -    const data = await fs.promises.readFile(path.join(expectedDir, 'installVersion'), 'utf8')
                              -    assert.strictEqual(data, '11\n', 'correct installVersion')
                              -
                              -    const list = await fs.promises.readdir(path.join(expectedDir, 'include/node'))
                              -    assert.ok(list.includes('common.gypi'))
                              -    assert.ok(list.includes('config.gypi'))
                              -    assert.ok(list.includes('node.h'))
                              -    assert.ok(list.includes('node_version.h'))
                              -    assert.ok(list.includes('openssl'))
                              -    assert.ok(list.includes('uv'))
                              -    assert.ok(list.includes('uv.h'))
                              -    assert.ok(list.includes('v8-platform.h'))
                              -    assert.ok(list.includes('v8.h'))
                              -    assert.ok(list.includes('zlib.h'))
                              -
                              -    const lines = (await fs.promises.readFile(path.join(expectedDir, 'include/node/node_version.h'), 'utf8')).split('\n')
                              -
                              -    // extract the 3 version parts from the defines to build a valid version string and
                              -    // and check them against our current env version
                              -    const version = ['major', 'minor', 'patch'].reduce((version, type) => {
                              -      const re = new RegExp(`^#define\\sNODE_${type.toUpperCase()}_VERSION`)
                              -      const line = lines.find((l) => re.test(l))
                              -      const i = line ? parseInt(line.replace(/^[^0-9]+([0-9]+).*$/, '$1'), 10) : 'ERROR'
                              -      return `${version}${type !== 'major' ? '.' : 'v'}${i}`
                              -    }, '')
                              -
                              -    assert.strictEqual(version, process.version)
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js b/deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js
                              deleted file mode 100644
                              index 7edbc0c76446ed..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-find-accessible-sync.js
                              +++ /dev/null
                              @@ -1,73 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const path = require('path')
                              -const requireInject = require('require-inject')
                              -const configure = requireInject('../lib/configure', {
                              -  'graceful-fs': {
                              -    closeSync: function () { return undefined },
                              -    openSync: function (path) {
                              -      if (readableFiles.some(function (f) { return f === path })) {
                              -        return 0
                              -      } else {
                              -        var error = new Error('ENOENT - not found')
                              -        throw error
                              -      }
                              -    }
                              -  }
                              -})
                              -
                              -const dir = path.sep + 'testdir'
                              -const readableFile = 'readable_file'
                              -const anotherReadableFile = 'another_readable_file'
                              -const readableFileInDir = 'somedir' + path.sep + readableFile
                              -const readableFiles = [
                              -  path.resolve(dir, readableFile),
                              -  path.resolve(dir, anotherReadableFile),
                              -  path.resolve(dir, readableFileInDir)
                              -]
                              -
                              -describe('find-accessible-sync', function () {
                              -  it('find accessible - empty array', function () {
                              -    var candidates = []
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, undefined)
                              -  })
                              -
                              -  it('find accessible - single item array, readable', function () {
                              -    var candidates = [readableFile]
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, path.resolve(dir, readableFile))
                              -  })
                              -
                              -  it('find accessible - single item array, readable in subdir', function () {
                              -    var candidates = [readableFileInDir]
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, path.resolve(dir, readableFileInDir))
                              -  })
                              -
                              -  it('find accessible - single item array, unreadable', function () {
                              -    var candidates = ['unreadable_file']
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, undefined)
                              -  })
                              -
                              -  it('find accessible - multi item array, no matches', function () {
                              -    var candidates = ['non_existent_file', 'unreadable_file']
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, undefined)
                              -  })
                              -
                              -  it('find accessible - multi item array, single match', function () {
                              -    var candidates = ['non_existent_file', readableFile]
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, path.resolve(dir, readableFile))
                              -  })
                              -
                              -  it('find accessible - multi item array, return first match', function () {
                              -    var candidates = ['non_existent_file', anotherReadableFile, readableFile]
                              -    var found = configure.test.findAccessibleSync('test', dir, candidates)
                              -    assert.strictEqual(found, path.resolve(dir, anotherReadableFile))
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-find-node-directory.js b/deps/npm/node_modules/node-gyp/test/test-find-node-directory.js
                              deleted file mode 100644
                              index ca299f63306469..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-find-node-directory.js
                              +++ /dev/null
                              @@ -1,115 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const path = require('path')
                              -const findNodeDirectory = require('../lib/find-node-directory')
                              -
                              -const platforms = ['darwin', 'freebsd', 'linux', 'sunos', 'win32', 'aix', 'os400']
                              -
                              -describe('find-node-directory', function () {
                              -  // we should find the directory based on the directory
                              -  // the script is running in and it should match the layout
                              -  // in a build tree where npm is installed in
                              -  // .... /deps/npm
                              -  it('test find-node-directory - node install', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
                              -      assert.strictEqual(
                              -        findNodeDirectory('/x/deps/npm/node_modules/node-gyp/lib', processObj),
                              -        path.join('/x'))
                              -    }
                              -  })
                              -
                              -  // we should find the directory based on the directory
                              -  // the script is running in and it should match the layout
                              -  // in an installed tree where npm is installed in
                              -  // .... /lib/node_modules/npm or .../node_modules/npm
                              -  // depending on the patform
                              -  it('test find-node-directory - node build', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
                              -      if (platforms[next] === 'win32') {
                              -        assert.strictEqual(
                              -          findNodeDirectory('/y/node_modules/npm/node_modules/node-gyp/lib',
                              -            processObj), path.join('/y'))
                              -      } else {
                              -        assert.strictEqual(
                              -          findNodeDirectory('/y/lib/node_modules/npm/node_modules/node-gyp/lib',
                              -            processObj), path.join('/y'))
                              -      }
                              -    }
                              -  })
                              -
                              -  // we should find the directory based on the execPath
                              -  // for node and match because it was in the bin directory
                              -  it('test find-node-directory - node in bin directory', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
                              -      assert.strictEqual(
                              -        findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
                              -        path.join('/x/y'))
                              -    }
                              -  })
                              -
                              -  // we should find the directory based on the execPath
                              -  // for node and match because it was in the Release directory
                              -  it('test find-node-directory - node in build release dir', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj
                              -      if (platforms[next] === 'win32') {
                              -        processObj = { execPath: '/x/y/Release/node', platform: platforms[next] }
                              -      } else {
                              -        processObj = {
                              -          execPath: '/x/y/out/Release/node',
                              -          platform: platforms[next]
                              -        }
                              -      }
                              -
                              -      assert.strictEqual(
                              -        findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
                              -        path.join('/x/y'))
                              -    }
                              -  })
                              -
                              -  // we should find the directory based on the execPath
                              -  // for node and match because it was in the Debug directory
                              -  it('test find-node-directory - node in Debug release dir', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj
                              -      if (platforms[next] === 'win32') {
                              -        processObj = { execPath: '/a/b/Debug/node', platform: platforms[next] }
                              -      } else {
                              -        processObj = { execPath: '/a/b/out/Debug/node', platform: platforms[next] }
                              -      }
                              -
                              -      assert.strictEqual(
                              -        findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
                              -        path.join('/a/b'))
                              -    }
                              -  })
                              -
                              -  // we should not find it as it will not match based on the execPath nor
                              -  // the directory from which the script is running
                              -  it('test find-node-directory - not found', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj = { execPath: '/x/y/z/y', platform: next }
                              -      assert.strictEqual(findNodeDirectory('/a/b/c/d', processObj), '')
                              -    }
                              -  })
                              -
                              -  // we should find the directory based on the directory
                              -  // the script is running in and it should match the layout
                              -  // in a build tree where npm is installed in
                              -  // .... /deps/npm
                              -  // same test as above but make sure additional directory entries
                              -  // don't cause an issue
                              -  it('test find-node-directory - node install', function () {
                              -    for (var next = 0; next < platforms.length; next++) {
                              -      var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
                              -      assert.strictEqual(
                              -        findNodeDirectory('/x/y/z/a/b/c/deps/npm/node_modules/node-gyp/lib',
                              -          processObj), path.join('/x/y/z/a/b/c'))
                              -    }
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-find-python.js b/deps/npm/node_modules/node-gyp/test/test-find-python.js
                              deleted file mode 100644
                              index 592c480f24fef2..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-find-python.js
                              +++ /dev/null
                              @@ -1,213 +0,0 @@
                              -'use strict'
                              -
                              -delete process.env.PYTHON
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const findPython = require('../lib/find-python')
                              -const execFile = require('child_process').execFile
                              -const PythonFinder = findPython.test.PythonFinder
                              -
                              -require('npmlog').level = 'warn'
                              -
                              -describe('find-python', function () {
                              -  it('find python', function () {
                              -    findPython.test.findPython(null, function (err, found) {
                              -      assert.strictEqual(err, null)
                              -      var proc = execFile(found, ['-V'], function (err, stdout, stderr) {
                              -        assert.strictEqual(err, null)
                              -        assert.ok(/Python 3/.test(stdout))
                              -        assert.strictEqual(stderr, '')
                              -      })
                              -      proc.stdout.setEncoding('utf-8')
                              -      proc.stderr.setEncoding('utf-8')
                              -    })
                              -  })
                              -
                              -  function poison (object, property) {
                              -    function fail () {
                              -      console.error(Error(`Property ${property} should not have been accessed.`))
                              -      process.abort()
                              -    }
                              -    var descriptor = {
                              -      configurable: false,
                              -      enumerable: false,
                              -      get: fail,
                              -      set: fail
                              -    }
                              -    Object.defineProperty(object, property, descriptor)
                              -  }
                              -
                              -  function TestPythonFinder () {
                              -    PythonFinder.apply(this, arguments)
                              -  }
                              -  TestPythonFinder.prototype = Object.create(PythonFinder.prototype)
                              -  // Silence npmlog - remove for debugging
                              -  TestPythonFinder.prototype.log = {
                              -    silly: () => {},
                              -    verbose: () => {},
                              -    info: () => {},
                              -    warn: () => {},
                              -    error: () => {}
                              -  }
                              -  delete TestPythonFinder.prototype.env.NODE_GYP_FORCE_PYTHON
                              -
                              -  it('find python - python', function () {
                              -    var f = new TestPythonFinder('python', done)
                              -    f.execFile = function (program, args, opts, cb) {
                              -      f.execFile = function (program, args, opts, cb) {
                              -        poison(f, 'execFile')
                              -        assert.strictEqual(program, '/path/python')
                              -        assert.ok(/sys\.version_info/.test(args[1]))
                              -        cb(null, '3.9.1')
                              -      }
                              -      assert.strictEqual(program,
                              -        process.platform === 'win32' ? '"python"' : 'python')
                              -      assert.ok(/sys\.executable/.test(args[1]))
                              -      cb(null, '/path/python')
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err, python) {
                              -      assert.strictEqual(err, null)
                              -      assert.strictEqual(python, '/path/python')
                              -    }
                              -  })
                              -
                              -  it('find python - python too old', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(null, '/path/python')
                              -      } else if (/sys\.version_info/.test(args[args.length - 1])) {
                              -        cb(null, '2.3.4')
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err) {
                              -      assert.ok(/Could not find any Python/.test(err))
                              -      assert.ok(/not supported/i.test(f.errorLog))
                              -    }
                              -  })
                              -
                              -  it('find python - no python', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(new Error('not found'))
                              -      } else if (/sys\.version_info/.test(args[args.length - 1])) {
                              -        cb(new Error('not a Python executable'))
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err) {
                              -      assert.ok(/Could not find any Python/.test(err))
                              -      assert.ok(/not in PATH/.test(f.errorLog))
                              -    }
                              -  })
                              -
                              -  it('find python - no python2, no python, unix', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.checkPyLauncher = assert.fail
                              -    f.win = false
                              -
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(new Error('not found'))
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err) {
                              -      assert.ok(/Could not find any Python/.test(err))
                              -      assert.ok(/not in PATH/.test(f.errorLog))
                              -    }
                              -  })
                              -
                              -  it('find python - no python, use python launcher', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.win = true
                              -
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (program === 'py.exe') {
                              -        assert.notStrictEqual(args.indexOf('-3'), -1)
                              -        assert.notStrictEqual(args.indexOf('-c'), -1)
                              -        return cb(null, 'Z:\\snake.exe')
                              -      }
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(new Error('not found'))
                              -      } else if (f.winDefaultLocations.includes(program)) {
                              -        cb(new Error('not found'))
                              -      } else if (/sys\.version_info/.test(args[args.length - 1])) {
                              -        if (program === 'Z:\\snake.exe') {
                              -          cb(null, '3.9.0')
                              -        } else {
                              -          assert.fail()
                              -        }
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err, python) {
                              -      assert.strictEqual(err, null)
                              -      assert.strictEqual(python, 'Z:\\snake.exe')
                              -    }
                              -  })
                              -
                              -  it('find python - no python, no python launcher, good guess', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.win = true
                              -    const expectedProgram = f.winDefaultLocations[0]
                              -
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (program === 'py.exe') {
                              -        return cb(new Error('not found'))
                              -      }
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(new Error('not found'))
                              -      } else if (program === expectedProgram &&
                              -                 /sys\.version_info/.test(args[args.length - 1])) {
                              -        cb(null, '3.7.3')
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err, python) {
                              -      assert.strictEqual(err, null)
                              -      assert.ok(python === expectedProgram)
                              -    }
                              -  })
                              -
                              -  it('find python - no python, no python launcher, bad guess', function () {
                              -    var f = new TestPythonFinder(null, done)
                              -    f.win = true
                              -
                              -    f.execFile = function (program, args, opts, cb) {
                              -      if (/sys\.executable/.test(args[args.length - 1])) {
                              -        cb(new Error('not found'))
                              -      } else if (/sys\.version_info/.test(args[args.length - 1])) {
                              -        cb(new Error('not a Python executable'))
                              -      } else {
                              -        assert.fail()
                              -      }
                              -    }
                              -    f.findPython()
                              -
                              -    function done (err) {
                              -      assert.ok(/Could not find any Python/.test(err))
                              -      assert.ok(/not in PATH/.test(f.errorLog))
                              -    }
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-find-visualstudio.js b/deps/npm/node_modules/node-gyp/test/test-find-visualstudio.js
                              deleted file mode 100644
                              index 29d9a7dba5f550..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-find-visualstudio.js
                              +++ /dev/null
                              @@ -1,670 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const fs = require('fs')
                              -const path = require('path')
                              -const findVisualStudio = require('../lib/find-visualstudio')
                              -const VisualStudioFinder = findVisualStudio.test.VisualStudioFinder
                              -
                              -const semverV1 = { major: 1, minor: 0, patch: 0 }
                              -
                              -delete process.env.VCINSTALLDIR
                              -
                              -function poison (object, property) {
                              -  function fail () {
                              -    console.error(Error(`Property ${property} should not have been accessed.`))
                              -    process.abort()
                              -  }
                              -  var descriptor = {
                              -    configurable: false,
                              -    enumerable: false,
                              -    get: fail,
                              -    set: fail
                              -  }
                              -  Object.defineProperty(object, property, descriptor)
                              -}
                              -
                              -function TestVisualStudioFinder () { VisualStudioFinder.apply(this, arguments) }
                              -TestVisualStudioFinder.prototype = Object.create(VisualStudioFinder.prototype)
                              -// Silence npmlog - remove for debugging
                              -TestVisualStudioFinder.prototype.log = {
                              -  silly: () => {},
                              -  verbose: () => {},
                              -  info: () => {},
                              -  warn: () => {},
                              -  error: () => {}
                              -}
                              -
                              -describe('find-visualstudio', function () {
                              -  it('VS2013', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\MSBuild12\\MSBuild.exe',
                              -        path: 'C:\\VS2013',
                              -        sdk: null,
                              -        toolset: 'v120',
                              -        version: '12.0',
                              -        versionMajor: 12,
                              -        versionMinor: 0,
                              -        versionYear: 2013
                              -      })
                              -    })
                              -
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      finder.parseData(new Error(), '', '', cb)
                              -    }
                              -    finder.regSearchKeys = (keys, value, addOpts, cb) => {
                              -      for (var i = 0; i < keys.length; ++i) {
                              -        const fullName = `${keys[i]}\\${value}`
                              -        switch (fullName) {
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -          case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -            continue
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
                              -            assert.ok(true, `expected search for registry value ${fullName}`)
                              -            return cb(null, 'C:\\VS2013\\VC\\')
                              -          case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\12.0\\MSBuildToolsPath':
                              -            assert.ok(true, `expected search for registry value ${fullName}`)
                              -            return cb(null, 'C:\\MSBuild12\\')
                              -          default:
                              -            assert.fail(`unexpected search for registry value ${fullName}`)
                              -        }
                              -      }
                              -      return cb(new Error())
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2013 should not be found on new node versions', function () {
                              -    const finder = new TestVisualStudioFinder({
                              -      major: 10,
                              -      minor: 0,
                              -      patch: 0
                              -    }, null, (err, info) => {
                              -      assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures', 'VS_2017_Unusable.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.regSearchKeys = (keys, value, addOpts, cb) => {
                              -      for (var i = 0; i < keys.length; ++i) {
                              -        const fullName = `${keys[i]}\\${value}`
                              -        switch (fullName) {
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -          case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -            continue
                              -          default:
                              -            assert.fail(`unexpected search for registry value ${fullName}`)
                              -        }
                              -      }
                              -      return cb(new Error())
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2015', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\MSBuild14\\MSBuild.exe',
                              -        path: 'C:\\VS2015',
                              -        sdk: null,
                              -        toolset: 'v140',
                              -        version: '14.0',
                              -        versionMajor: 14,
                              -        versionMinor: 0,
                              -        versionYear: 2015
                              -      })
                              -    })
                              -
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      finder.parseData(new Error(), '', '', cb)
                              -    }
                              -    finder.regSearchKeys = (keys, value, addOpts, cb) => {
                              -      for (var i = 0; i < keys.length; ++i) {
                              -        const fullName = `${keys[i]}\\${value}`
                              -        switch (fullName) {
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -            assert.ok(true, `expected search for registry value ${fullName}`)
                              -            return cb(null, 'C:\\VS2015\\VC\\')
                              -          case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\14.0\\MSBuildToolsPath':
                              -            assert.ok(true, `expected search for registry value ${fullName}`)
                              -            return cb(null, 'C:\\MSBuild14\\')
                              -          default:
                              -            assert.fail(`unexpected search for registry value ${fullName}`)
                              -        }
                              -      }
                              -      return cb(new Error())
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('error from PowerShell', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(new Error(), '', '', (info) => {
                              -      assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('empty output from PowerShell', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(null, '', '', (info) => {
                              -      assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('output from PowerShell not JSON', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(null, 'AAAABBBB', '', (info) => {
                              -      assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('wrong JSON from PowerShell', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(null, '{}', '', (info) => {
                              -      assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('empty JSON from PowerShell', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(null, '[]', '', (info) => {
                              -      assert.ok(/find .* Visual Studio/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('future version', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    finder.parseData(null, JSON.stringify([{
                              -      packages: [
                              -        'Microsoft.VisualStudio.Component.VC.Tools.x86.x64',
                              -        'Microsoft.VisualStudio.Component.Windows10SDK.17763',
                              -        'Microsoft.VisualStudio.VC.MSBuild.Base'
                              -      ],
                              -      path: 'C:\\VS',
                              -      version: '9999.9999.9999.9999'
                              -    }]), '', (info) => {
                              -      assert.ok(/unknown version/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(/find .* Visual Studio/i.test(finder.errorLog[1]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('single unusable VS2017', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, null)
                              -
                              -    const file = path.join(__dirname, 'fixtures', 'VS_2017_Unusable.txt')
                              -    const data = fs.readFileSync(file)
                              -    finder.parseData(null, data, '', (info) => {
                              -      assert.ok(/checking/i.test(finder.errorLog[0]), 'expect error')
                              -      assert.ok(/find .* Visual Studio/i.test(finder.errorLog[2]), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -  })
                              -
                              -  it('minimal VS2017 Build Tools', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
                              -          'BuildTools\\MSBuild\\15.0\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools',
                              -        sdk: '10.0.17134.0',
                              -        toolset: 'v141',
                              -        version: '15.9.28307.665',
                              -        versionMajor: 15,
                              -        versionMinor: 9,
                              -        versionYear: 2017
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2017_BuildTools_minimal.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2017 Community with C++ workload', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
                              -          'Community\\MSBuild\\15.0\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community',
                              -        sdk: '10.0.17763.0',
                              -        toolset: 'v141',
                              -        version: '15.9.28307.665',
                              -        versionMajor: 15,
                              -        versionMinor: 9,
                              -        versionYear: 2017
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2017_Community_workload.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2017 Express', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
                              -          'WDExpress\\MSBuild\\15.0\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\WDExpress',
                              -        sdk: '10.0.17763.0',
                              -        toolset: 'v141',
                              -        version: '15.9.28307.858',
                              -        versionMajor: 15,
                              -        versionMinor: 9,
                              -        versionYear: 2017
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures', 'VS_2017_Express.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2019 Preview with C++ workload', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
                              -          'Preview\\MSBuild\\Current\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview',
                              -        sdk: '10.0.17763.0',
                              -        toolset: 'v142',
                              -        version: '16.0.28608.199',
                              -        versionMajor: 16,
                              -        versionMinor: 0,
                              -        versionYear: 2019
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2019_Preview.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('minimal VS2019 Build Tools', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
                              -          'BuildTools\\MSBuild\\Current\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools',
                              -        sdk: '10.0.17134.0',
                              -        toolset: 'v142',
                              -        version: '16.1.28922.388',
                              -        versionMajor: 16,
                              -        versionMinor: 1,
                              -        versionYear: 2019
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2019_BuildTools_minimal.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2019 Community with C++ workload', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
                              -          'Community\\MSBuild\\Current\\Bin\\MSBuild.exe',
                              -        path:
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community',
                              -        sdk: '10.0.17763.0',
                              -        toolset: 'v142',
                              -        version: '16.1.28922.388',
                              -        versionMajor: 16,
                              -        versionMinor: 1,
                              -        versionYear: 2019
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2019_Community_workload.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VS2022 Preview with C++ workload', function () {
                              -    const msBuildPath = process.arch === 'arm64'
                              -      ? 'C:\\Program Files\\Microsoft Visual Studio\\2022\\' +
                              -        'Community\\MSBuild\\Current\\Bin\\arm64\\MSBuild.exe'
                              -      : 'C:\\Program Files\\Microsoft Visual Studio\\2022\\' +
                              -        'Community\\MSBuild\\Current\\Bin\\MSBuild.exe'
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info, {
                              -        msBuild: msBuildPath,
                              -        path:
                              -          'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community',
                              -        sdk: '10.0.22621.0',
                              -        toolset: 'v143',
                              -        version: '17.4.33213.308',
                              -        versionMajor: 17,
                              -        versionMinor: 4,
                              -        versionYear: 2022
                              -      })
                              -    })
                              -
                              -    poison(finder, 'regSearchKeys')
                              -    finder.msBuildPathExists = (path) => {
                              -      return true
                              -    }
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const file = path.join(__dirname, 'fixtures',
                              -        'VS_2022_Community_workload.txt')
                              -      const data = fs.readFileSync(file)
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  function allVsVersions (finder) {
                              -    finder.findVisualStudio2017OrNewer = (cb) => {
                              -      const data0 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2017_Unusable.txt')))
                              -      const data1 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2017_BuildTools_minimal.txt')))
                              -      const data2 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2017_Community_workload.txt')))
                              -      const data3 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2017_Express.txt')))
                              -      const data4 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2019_Preview.txt')))
                              -      const data5 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2019_BuildTools_minimal.txt')))
                              -      const data6 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2019_Community_workload.txt')))
                              -      const data7 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
                              -        'VS_2022_Community_workload.txt')))
                              -      const data = JSON.stringify(data0.concat(data1, data2, data3, data4,
                              -        data5, data6, data7))
                              -      finder.parseData(null, data, '', cb)
                              -    }
                              -    finder.regSearchKeys = (keys, value, addOpts, cb) => {
                              -      for (var i = 0; i < keys.length; ++i) {
                              -        const fullName = `${keys[i]}\\${value}`
                              -        switch (fullName) {
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -          case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
                              -            continue
                              -          case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
                              -            return cb(null, 'C:\\VS2013\\VC\\')
                              -          case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\12.0\\MSBuildToolsPath':
                              -            return cb(null, 'C:\\MSBuild12\\')
                              -          case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
                              -            return cb(null, 'C:\\VS2015\\VC\\')
                              -          case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\14.0\\MSBuildToolsPath':
                              -            return cb(null, 'C:\\MSBuild14\\')
                              -          default:
                              -            assert.fail(`unexpected search for registry value ${fullName}`)
                              -        }
                              -      }
                              -      return cb(new Error())
                              -    }
                              -  }
                              -
                              -  it('fail when looking for invalid path', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, 'AABB', (err, info) => {
                              -      assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2013 by version number', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, '2013', (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2013)
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2013 by installation path', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2013',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path, 'C:\\VS2013')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2015 by version number', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, '2015', (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2015)
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2015 by installation path', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path, 'C:\\VS2015')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2017 by version number', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, '2017', (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2017)
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2017 by installation path', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1,
                              -      'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path,
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2019 by version number', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, '2019', (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2019)
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2019 by installation path', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1,
                              -      'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path,
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('look for VS2022 by version number', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, '2022', (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2022)
                              -    })
                              -
                              -    finder.msBuildPathExists = (path) => {
                              -      return true
                              -    }
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('msvs_version match should be case insensitive', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1,
                              -      'c:\\program files (x86)\\microsoft visual studio\\2019\\BUILDTOOLS',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path,
                              -          'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('latest version should be found by default', function () {
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.versionYear, 2022)
                              -    })
                              -
                              -    finder.msBuildPathExists = (path) => {
                              -      return true
                              -    }
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('run on a usable VS Command Prompt', function () {
                              -    process.env.VCINSTALLDIR = 'C:\\VS2015\\VC'
                              -    // VSINSTALLDIR is not defined on Visual C++ Build Tools 2015
                              -    delete process.env.VSINSTALLDIR
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.path, 'C:\\VS2015')
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('VCINSTALLDIR match should be case insensitive', function () {
                              -    process.env.VCINSTALLDIR =
                              -      'c:\\program files (x86)\\microsoft visual studio\\2019\\BUILDTOOLS\\VC'
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.strictEqual(err, null)
                              -      assert.deepStrictEqual(info.path,
                              -        'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('run on a unusable VS Command Prompt', function () {
                              -    process.env.VCINSTALLDIR =
                              -      'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildToolsUnusable\\VC'
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
                              -      assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
                              -      assert.ok(!info, 'no data')
                              -    })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('run on a VS Command Prompt with matching msvs_version', function () {
                              -    process.env.VCINSTALLDIR = 'C:\\VS2015\\VC'
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
                              -      (err, info) => {
                              -        assert.strictEqual(err, null)
                              -        assert.deepStrictEqual(info.path, 'C:\\VS2015')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -
                              -  it('run on a VS Command Prompt with mismatched msvs_version', function () {
                              -    process.env.VCINSTALLDIR =
                              -      'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC'
                              -
                              -    const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
                              -      (err, info) => {
                              -        assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
                              -        assert.ok(!info, 'no data')
                              -      })
                              -
                              -    allVsVersions(finder)
                              -    finder.findVisualStudio()
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-install.js b/deps/npm/node_modules/node-gyp/test/test-install.js
                              deleted file mode 100644
                              index 235acf52313969..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-install.js
                              +++ /dev/null
                              @@ -1,137 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it, after } = require('mocha')
                              -const assert = require('assert')
                              -const path = require('path')
                              -const os = require('os')
                              -const util = require('util')
                              -const { test: { download, install } } = require('../lib/install')
                              -const rimraf = require('rimraf')
                              -const gyp = require('../lib/node-gyp')
                              -const log = require('npmlog')
                              -const semver = require('semver')
                              -const stream = require('stream')
                              -const streamPipeline = util.promisify(stream.pipeline)
                              -
                              -log.level = 'error' // we expect a warning
                              -
                              -describe('install', function () {
                              -  it('EACCES retry once', async () => {
                              -    const fs = {
                              -      promises: {
                              -        stat (_) {
                              -          const err = new Error()
                              -          err.code = 'EACCES'
                              -          assert.ok(true)
                              -          throw err
                              -        }
                              -      }
                              -    }
                              -
                              -    const Gyp = {
                              -      devDir: __dirname,
                              -      opts: {
                              -        ensure: true
                              -      },
                              -      commands: {
                              -        install (argv, cb) {
                              -          install(fs, Gyp, argv).then(cb, cb)
                              -        },
                              -        remove (_, cb) {
                              -          cb()
                              -        }
                              -      }
                              -    }
                              -
                              -    try {
                              -      await install(fs, Gyp, [])
                              -    } catch (err) {
                              -      assert.ok(true)
                              -      if (/"pre" versions of node cannot be installed/.test(err.message)) {
                              -        assert.ok(true)
                              -      }
                              -    }
                              -  })
                              -
                              -  // only run these tests if we are running a version of Node with predictable version path behavior
                              -  const skipParallelInstallTests = process.env.FAST_TEST ||
                              -    process.release.name !== 'node' ||
                              -    semver.prerelease(process.version) !== null ||
                              -    semver.satisfies(process.version, '<10')
                              -
                              -  async function parallelInstallsTest (test, fs, devDir, prog) {
                              -    if (skipParallelInstallTests) {
                              -      return test.skip('Skipping parallel installs test due to test environment configuration')
                              -    }
                              -
                              -    after(async () => {
                              -      await util.promisify(rimraf)(devDir)
                              -    })
                              -
                              -    const expectedDir = path.join(devDir, process.version.replace(/^v/, ''))
                              -    await util.promisify(rimraf)(expectedDir)
                              -
                              -    await Promise.all([
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, []),
                              -      install(fs, prog, [])
                              -    ])
                              -  }
                              -
                              -  it('parallel installs (ensure=true)', async function () {
                              -    this.timeout(600000)
                              -
                              -    const fs = require('graceful-fs')
                              -    const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.devDir = devDir
                              -    prog.opts.ensure = true
                              -    log.level = 'warn'
                              -
                              -    await parallelInstallsTest(this, fs, devDir, prog)
                              -  })
                              -
                              -  it('parallel installs (ensure=false)', async function () {
                              -    this.timeout(600000)
                              -
                              -    const fs = require('graceful-fs')
                              -    const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.devDir = devDir
                              -    prog.opts.ensure = false
                              -    log.level = 'warn'
                              -
                              -    await parallelInstallsTest(this, fs, devDir, prog)
                              -  })
                              -
                              -  it('parallel installs (tarball)', async function () {
                              -    this.timeout(600000)
                              -
                              -    const fs = require('graceful-fs')
                              -    const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
                              -
                              -    const prog = gyp()
                              -    prog.parseArgv([])
                              -    prog.devDir = devDir
                              -    prog.opts.tarball = path.join(devDir, 'node-headers.tar.gz')
                              -    log.level = 'warn'
                              -
                              -    await streamPipeline(
                              -      (await download(prog, `https://nodejs.org/dist/${process.version}/node-${process.version}.tar.gz`)).body,
                              -      fs.createWriteStream(prog.opts.tarball)
                              -    )
                              -
                              -    await parallelInstallsTest(this, fs, devDir, prog)
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-options.js b/deps/npm/node_modules/node-gyp/test/test-options.js
                              deleted file mode 100644
                              index 24e79c80a18432..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-options.js
                              +++ /dev/null
                              @@ -1,41 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const gyp = require('../lib/node-gyp')
                              -
                              -describe('options', function () {
                              -  it('options in environment', () => {
                              -    // `npm test` dumps a ton of npm_config_* variables in the environment.
                              -    Object.keys(process.env)
                              -      .filter((key) => /^npm_config_/.test(key))
                              -      .forEach((key) => { delete process.env[key] })
                              -
                              -    // in some platforms, certain keys are stubborn and cannot be removed
                              -    const keys = Object.keys(process.env)
                              -      .filter((key) => /^npm_config_/.test(key))
                              -      .map((key) => key.substring('npm_config_'.length))
                              -      .concat('argv', 'x')
                              -
                              -    // Zero-length keys should get filtered out.
                              -    process.env.npm_config_ = '42'
                              -    // Other keys should get added.
                              -    process.env.npm_config_x = '42'
                              -    // Except loglevel.
                              -    process.env.npm_config_loglevel = 'debug'
                              -
                              -    const g = gyp()
                              -    g.parseArgv(['rebuild']) // Also sets opts.argv.
                              -
                              -    assert.deepStrictEqual(Object.keys(g.opts).sort(), keys.sort())
                              -  })
                              -
                              -  it('options with spaces in environment', () => {
                              -    process.env.npm_config_force_process_config = 'true'
                              -
                              -    const g = gyp()
                              -    g.parseArgv(['rebuild']) // Also sets opts.argv.
                              -
                              -    assert.strictEqual(g.opts['force-process-config'], 'true')
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/test/test-process-release.js b/deps/npm/node_modules/node-gyp/test/test-process-release.js
                              deleted file mode 100644
                              index 0f40666473028c..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/test/test-process-release.js
                              +++ /dev/null
                              @@ -1,401 +0,0 @@
                              -'use strict'
                              -
                              -const { describe, it } = require('mocha')
                              -const assert = require('assert')
                              -const processRelease = require('../lib/process-release')
                              -
                              -describe('process-release', function () {
                              -  it('test process release - process.version = 0.8.20', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.8.20', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.8.20')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.8.20',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.8.20/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.8.20/node-v0.8.20.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.8.20/SHASUMS256.txt',
                              -      versionDir: '0.8.20',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.8.20/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.8.20/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.8.20/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.version = 0.10.21', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.10.21', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.10.21')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.10.21',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.10.21/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.10.21/SHASUMS256.txt',
                              -      versionDir: '0.10.21',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.10.21/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.10.21/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.10.21/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  // prior to -headers.tar.gz
                              -  it('test process release - process.version = 0.12.9', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.12.9', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.12.9')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.12.9',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.12.9/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.12.9/SHASUMS256.txt',
                              -      versionDir: '0.12.9',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.12.9/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.12.9/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.12.9/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  // prior to -headers.tar.gz
                              -  it('test process release - process.version = 0.10.41', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.10.41', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.10.41')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.10.41',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.10.41/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt',
                              -      versionDir: '0.10.41',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.10.41/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.10.41/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.10.41/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  // has -headers.tar.gz
                              -  it('test process release - process.release ~ node@0.10.42', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.10.42', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.10.42')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.10.42',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.10.42/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt',
                              -      versionDir: '0.10.42',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.10.42/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.10.42/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.10.42/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  // has -headers.tar.gz
                              -  it('test process release - process.release ~ node@0.12.10', function () {
                              -    var release = processRelease([], { opts: {} }, 'v0.12.10', null)
                              -
                              -    assert.strictEqual(release.semver.version, '0.12.10')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.12.10',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.12.10/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt',
                              -      versionDir: '0.12.10',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.12.10/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.12.10/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.12.10/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.1.23', function () {
                              -    var release = processRelease([], { opts: {} }, 'v4.1.23', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v4.1.23/',
                              -      tarballUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v4.1.23/SHASUMS256.txt',
                              -      versionDir: '4.1.23',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.1.23 / corp build', function () {
                              -    var release = processRelease([], { opts: {} }, 'v4.1.23', {
                              -      name: 'node',
                              -      headersUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'node',
                              -      baseUrl: 'https://some.custom.location/',
                              -      tarballUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'https://some.custom.location/SHASUMS256.txt',
                              -      versionDir: '4.1.23',
                              -      ia32: { libUrl: 'https://some.custom.location/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://some.custom.location/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://some.custom.location/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@12.8.0 Windows', function () {
                              -    var release = processRelease([], { opts: {} }, 'v12.8.0', {
                              -      name: 'node',
                              -      sourceUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
                              -      headersUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
                              -      libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '12.8.0')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '12.8.0',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/download/release/v12.8.0/',
                              -      tarballUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
                              -      versionDir: '12.8.0',
                              -      ia32: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@12.8.0 Windows ARM64', function () {
                              -    var release = processRelease([], { opts: {} }, 'v12.8.0', {
                              -      name: 'node',
                              -      sourceUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
                              -      headersUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
                              -      libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '12.8.0')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '12.8.0',
                              -      name: 'node',
                              -      baseUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/',
                              -      tarballUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
                              -      shasumsUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
                              -      versionDir: '12.8.0',
                              -      ia32: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.1.23 --target=0.10.40', function () {
                              -    var release = processRelease([], { opts: { target: '0.10.40' } }, 'v4.1.23', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '0.10.40')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '0.10.40',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/dist/v0.10.40/',
                              -      tarballUrl: 'https://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/dist/v0.10.40/SHASUMS256.txt',
                              -      versionDir: '0.10.40',
                              -      ia32: { libUrl: 'https://nodejs.org/dist/v0.10.40/node.lib', libPath: 'node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/dist/v0.10.40/x64/node.lib', libPath: 'x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/dist/v0.10.40/arm64/node.lib', libPath: 'arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz', function () {
                              -    var release = processRelease([], { opts: { 'dist-url': 'https://foo.bar/baz' } }, 'v4.1.23', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'node',
                              -      baseUrl: 'https://foo.bar/baz/v4.1.23/',
                              -      tarballUrl: 'https://foo.bar/baz/v4.1.23/node-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'https://foo.bar/baz/v4.1.23/SHASUMS256.txt',
                              -      versionDir: '4.1.23',
                              -      ia32: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ frankenstein@4.1.23', function () {
                              -    var release = processRelease([], { opts: {} }, 'v4.1.23', {
                              -      name: 'frankenstein',
                              -      headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'frankenstein',
                              -      baseUrl: 'https://frankensteinjs.org/dist/v4.1.23/',
                              -      tarballUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'https://frankensteinjs.org/dist/v4.1.23/SHASUMS256.txt',
                              -      versionDir: 'frankenstein-4.1.23',
                              -      ia32: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
                              -      x64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
                              -      arm64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/', function () {
                              -    var release = processRelease([], { opts: { 'dist-url': 'http://foo.bar/baz/' } }, 'v4.1.23', {
                              -      name: 'frankenstein',
                              -      headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'frankenstein',
                              -      baseUrl: 'http://foo.bar/baz/v4.1.23/',
                              -      tarballUrl: 'http://foo.bar/baz/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'http://foo.bar/baz/v4.1.23/SHASUMS256.txt',
                              -      versionDir: 'frankenstein-4.1.23',
                              -      ia32: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
                              -      x64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
                              -      arm64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.0.0-rc.4', function () {
                              -    var release = processRelease([], { opts: {} }, 'v4.0.0-rc.4', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.0.0-rc.4')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.0.0-rc.4',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
                              -      tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
                              -      versionDir: '4.0.0-rc.4',
                              -      ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.0.0-rc.4 passed as argv[0]', function () {
                              -  // note the missing 'v' on the arg, it should normalise when checking
                              -    // whether we're on the default or not
                              -    var release = processRelease(['4.0.0-rc.4'], { opts: {} }, 'v4.0.0-rc.4', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.0.0-rc.4')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.0.0-rc.4',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
                              -      tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
                              -      versionDir: '4.0.0-rc.4',
                              -      ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - process.release ~ node@4.0.0-rc.4 - bogus string passed as argv[0]', function () {
                              -  // additional arguments can be passed in on the commandline that should be ignored if they
                              -    // are not specifying a valid version @ position 0
                              -    var release = processRelease(['this is no version!'], { opts: {} }, 'v4.0.0-rc.4', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.0.0-rc.4')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.0.0-rc.4',
                              -      name: 'node',
                              -      baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
                              -      tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
                              -      shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
                              -      versionDir: '4.0.0-rc.4',
                              -      ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -  })
                              -
                              -  it('test process release - NODEJS_ORG_MIRROR', function () {
                              -    process.env.NODEJS_ORG_MIRROR = 'http://foo.bar'
                              -
                              -    var release = processRelease([], { opts: {} }, 'v4.1.23', {
                              -      name: 'node',
                              -      headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
                              -    })
                              -
                              -    assert.strictEqual(release.semver.version, '4.1.23')
                              -    delete release.semver
                              -
                              -    assert.deepStrictEqual(release, {
                              -      version: '4.1.23',
                              -      name: 'node',
                              -      baseUrl: 'http://foo.bar/v4.1.23/',
                              -      tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz',
                              -      shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt',
                              -      versionDir: '4.1.23',
                              -      ia32: { libUrl: 'http://foo.bar/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
                              -      x64: { libUrl: 'http://foo.bar/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
                              -      arm64: { libUrl: 'http://foo.bar/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
                              -    })
                              -
                              -    delete process.env.NODEJS_ORG_MIRROR
                              -  })
                              -})
                              diff --git a/deps/npm/node_modules/node-gyp/update-gyp.py b/deps/npm/node_modules/node-gyp/update-gyp.py
                              deleted file mode 100755
                              index 70e2d100288ec6..00000000000000
                              --- a/deps/npm/node_modules/node-gyp/update-gyp.py
                              +++ /dev/null
                              @@ -1,64 +0,0 @@
                              -#!/usr/bin/env python3
                              -
                              -import argparse
                              -import os
                              -import shutil
                              -import subprocess
                              -import tarfile
                              -import tempfile
                              -import urllib.request
                              -
                              -BASE_URL = "https://github.com/nodejs/gyp-next/archive/"
                              -CHECKOUT_PATH = os.path.dirname(os.path.realpath(__file__))
                              -CHECKOUT_GYP_PATH = os.path.join(CHECKOUT_PATH, "gyp")
                              -
                              -parser = argparse.ArgumentParser()
                              -parser.add_argument("tag", help="gyp tag to update to")
                              -args = parser.parse_args()
                              -
                              -tar_url = BASE_URL + args.tag + ".tar.gz"
                              -
                              -changed_files = subprocess.check_output(["git", "diff", "--name-only"]).strip()
                              -if changed_files:
                              -    raise Exception("Can't update gyp while you have uncommitted changes in node-gyp")
                              -
                              -with tempfile.TemporaryDirectory() as tmp_dir:
                              -    tar_file = os.path.join(tmp_dir, "gyp.tar.gz")
                              -    unzip_target = os.path.join(tmp_dir, "gyp")
                              -    with open(tar_file, "wb") as f:
                              -        print("Downloading gyp-next@" + args.tag + " into temporary directory...")
                              -        print("From: " + tar_url)
                              -        with urllib.request.urlopen(tar_url) as in_file:
                              -            f.write(in_file.read())
                              -
                              -        print("Unzipping...")
                              -        with tarfile.open(tar_file, "r:gz") as tar_ref:
                              -            def is_within_directory(directory, target):
                              -
                              -                abs_directory = os.path.abspath(directory)
                              -                abs_target = os.path.abspath(target)
                              -
                              -                prefix = os.path.commonprefix([abs_directory, abs_target])
                              -
                              -                return prefix == abs_directory
                              -
                              -            def safe_extract(tar, path=".", members=None, *, numeric_owner=False):
                              -
                              -                for member in tar.getmembers():
                              -                    member_path = os.path.join(path, member.name)
                              -                    if not is_within_directory(path, member_path):
                              -                        raise Exception("Attempted Path Traversal in Tar File")
                              -
                              -                tar.extractall(path, members, numeric_owner=numeric_owner)
                              -
                              -            safe_extract(tar_ref, unzip_target)
                              -
                              -        print("Moving to current checkout (" + CHECKOUT_PATH + ")...")
                              -        if os.path.exists(CHECKOUT_GYP_PATH):
                              -            shutil.rmtree(CHECKOUT_GYP_PATH)
                              -        shutil.move(
                              -            os.path.join(unzip_target, os.listdir(unzip_target)[0]), CHECKOUT_GYP_PATH
                              -        )
                              -
                              -subprocess.check_output(["git", "add", "gyp"], cwd=CHECKOUT_PATH)
                              -subprocess.check_output(["git", "commit", "-m", "feat(gyp): update gyp to " + args.tag])
                              diff --git a/deps/npm/node_modules/npm-install-checks/lib/index.js b/deps/npm/node_modules/npm-install-checks/lib/index.js
                              index f0ba2c07ad0812..545472b61dc604 100644
                              --- a/deps/npm/node_modules/npm-install-checks/lib/index.js
                              +++ b/deps/npm/node_modules/npm-install-checks/lib/index.js
                              @@ -36,7 +36,9 @@ const checkPlatform = (target, force = false, environment = {}) => {
                                 let libcFamily = null
                                 if (target.libc) {
                                   // libc checks only work in linux, any value is a failure if we aren't
                              -    if (platform !== 'linux') {
                              +    if (environment.libc) {
                              +      libcOk = checkList(environment.libc, target.libc)
                              +    } else if (platform !== 'linux') {
                                     libcOk = false
                                   } else {
                                     const report = process.report.getReport()
                              diff --git a/deps/npm/node_modules/npm-install-checks/package.json b/deps/npm/node_modules/npm-install-checks/package.json
                              index 50378808d75d08..11a3b87750e25a 100644
                              --- a/deps/npm/node_modules/npm-install-checks/package.json
                              +++ b/deps/npm/node_modules/npm-install-checks/package.json
                              @@ -1,6 +1,6 @@
                               {
                                 "name": "npm-install-checks",
                              -  "version": "6.2.0",
                              +  "version": "6.3.0",
                                 "description": "Check the engines and platform fields in package.json",
                                 "main": "lib/index.js",
                                 "dependencies": {
                              @@ -8,7 +8,7 @@
                                 },
                                 "devDependencies": {
                                   "@npmcli/eslint-config": "^4.0.0",
                              -    "@npmcli/template-oss": "4.18.0",
                              +    "@npmcli/template-oss": "4.19.0",
                                   "tap": "^16.0.1"
                                 },
                                 "scripts": {
                              @@ -39,7 +39,7 @@
                                 "author": "GitHub Inc.",
                                 "templateOSS": {
                                   "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "4.18.0",
                              +    "version": "4.19.0",
                                   "publish": "true"
                                 },
                                 "tap": {
                              diff --git a/deps/npm/node_modules/npm-registry-fetch/lib/auth.js b/deps/npm/node_modules/npm-registry-fetch/lib/auth.js
                              index 870ce0d923cd0f..9270025fa8d902 100644
                              --- a/deps/npm/node_modules/npm-registry-fetch/lib/auth.js
                              +++ b/deps/npm/node_modules/npm-registry-fetch/lib/auth.js
                              @@ -4,8 +4,8 @@ const npa = require('npm-package-arg')
                               const { URL } = require('url')
                               
                               // Find the longest registry key that is used for some kind of auth
                              -// in the options.
                              -const regKeyFromURI = (uri, opts) => {
                              +// in the options.  Returns the registry key and the auth config.
                              +const regFromURI = (uri, opts) => {
                                 const parsed = new URL(uri)
                                 // try to find a config key indicating we have auth for this registry
                                 // can be one of :_authToken, :_auth, :_password and :username, or
                              @@ -14,23 +14,40 @@ const regKeyFromURI = (uri, opts) => {
                                 // stopping when we reach '//'.
                                 let regKey = `//${parsed.host}${parsed.pathname}`
                                 while (regKey.length > '//'.length) {
                              +    const authKey = hasAuth(regKey, opts)
                                   // got some auth for this URI
                              -    if (hasAuth(regKey, opts)) {
                              -      return regKey
                              +    if (authKey) {
                              +      return { regKey, authKey }
                                   }
                               
                                   // can be either //host/some/path/:_auth or //host/some/path:_auth
                                   // walk up by removing EITHER what's after the slash OR the slash itself
                                   regKey = regKey.replace(/([^/]+|\/)$/, '')
                                 }
                              +  return { regKey: false, authKey: null }
                               }
                               
                              -const hasAuth = (regKey, opts) => (
                              -  opts[`${regKey}:_authToken`] ||
                              -  opts[`${regKey}:_auth`] ||
                              -  opts[`${regKey}:username`] && opts[`${regKey}:_password`] ||
                              -  opts[`${regKey}:certfile`] && opts[`${regKey}:keyfile`]
                              -)
                              +// Not only do we want to know if there is auth, but if we are calling `npm
                              +// logout` we want to know what config value specifically provided it.  This is
                              +// so we can look up where the config came from to delete it (i.e. user vs
                              +// project)
                              +const hasAuth = (regKey, opts) => {
                              +  if (opts[`${regKey}:_authToken`]) {
                              +    return '_authToken'
                              +  }
                              +  if (opts[`${regKey}:_auth`]) {
                              +    return '_auth'
                              +  }
                              +  if (opts[`${regKey}:username`] && opts[`${regKey}:_password`]) {
                              +    // 'password' can be inferred to also be present
                              +    return 'username'
                              +  }
                              +  if (opts[`${regKey}:certfile`] && opts[`${regKey}:keyfile`]) {
                              +    // 'keyfile' can be inferred to also be present
                              +    return 'certfile'
                              +  }
                              +  return false
                              +}
                               
                               const sameHost = (a, b) => {
                                 const parsedA = new URL(a)
                              @@ -63,11 +80,14 @@ const getAuth = (uri, opts = {}) => {
                                 if (!uri) {
                                   throw new Error('URI is required')
                                 }
                              -  const regKey = regKeyFromURI(uri, forceAuth || opts)
                              +  const { regKey, authKey } = regFromURI(uri, forceAuth || opts)
                               
                                 // we are only allowed to use what's in forceAuth if specified
                                 if (forceAuth && !regKey) {
                                   return new Auth({
                              +      // if we force auth we don't want to refer back to anything in config
                              +      regKey: false,
                              +      authKey: null,
                                     scopeAuthKey: null,
                                     token: forceAuth._authToken || forceAuth.token,
                                     username: forceAuth.username,
                              @@ -88,8 +108,8 @@ const getAuth = (uri, opts = {}) => {
                                     // registry where we logged in, but the same auth SHOULD be sent
                                     // to that artifact host, then we track where it was coming in from,
                                     // and warn the user if we get a 4xx error on it.
                              -      const scopeAuthKey = regKeyFromURI(registry, opts)
                              -      return new Auth({ scopeAuthKey })
                              +      const { regKey: scopeAuthKey, authKey: _authKey } = regFromURI(registry, opts)
                              +      return new Auth({ scopeAuthKey, regKey: scopeAuthKey, authKey: _authKey })
                                   }
                                 }
                               
                              @@ -104,6 +124,8 @@ const getAuth = (uri, opts = {}) => {
                               
                                 return new Auth({
                                   scopeAuthKey: null,
                              +    regKey,
                              +    authKey,
                                   token,
                                   auth,
                                   username,
                              @@ -114,8 +136,22 @@ const getAuth = (uri, opts = {}) => {
                               }
                               
                               class Auth {
                              -  constructor ({ token, auth, username, password, scopeAuthKey, certfile, keyfile }) {
                              +  constructor ({
                              +    token,
                              +    auth,
                              +    username,
                              +    password,
                              +    scopeAuthKey,
                              +    certfile,
                              +    keyfile,
                              +    regKey,
                              +    authKey,
                              +  }) {
                              +    // same as regKey but only present for scoped auth. Should have been named scopeRegKey
                                   this.scopeAuthKey = scopeAuthKey
                              +    // `${regKey}:${authKey}` will get you back to the auth config that gave us auth
                              +    this.regKey = regKey
                              +    this.authKey = authKey
                                   this.token = null
                                   this.auth = null
                                   this.isBasicAuth = false
                              diff --git a/deps/npm/node_modules/npm-registry-fetch/lib/index.js b/deps/npm/node_modules/npm-registry-fetch/lib/index.js
                              index 23e349c5c5b96d..bb413f862d92d0 100644
                              --- a/deps/npm/node_modules/npm-registry-fetch/lib/index.js
                              +++ b/deps/npm/node_modules/npm-registry-fetch/lib/index.js
                              @@ -166,6 +166,8 @@ function regFetch (uri, /* istanbul ignore next */ opts_ = {}) {
                                 return Promise.resolve(body).then(doFetch)
                               }
                               
                              +module.exports.getAuth = getAuth
                              +
                               module.exports.json = fetchJSON
                               function fetchJSON (uri, opts) {
                                 return regFetch(uri, opts).then(res => res.json())
                              diff --git a/deps/npm/node_modules/npm-registry-fetch/package.json b/deps/npm/node_modules/npm-registry-fetch/package.json
                              index 2afadf939743b8..b715d52391a933 100644
                              --- a/deps/npm/node_modules/npm-registry-fetch/package.json
                              +++ b/deps/npm/node_modules/npm-registry-fetch/package.json
                              @@ -1,6 +1,6 @@
                               {
                                 "name": "npm-registry-fetch",
                              -  "version": "16.0.0",
                              +  "version": "16.1.0",
                                 "description": "Fetch-based http client for use with npm registry APIs",
                                 "main": "lib",
                                 "files": [
                              @@ -41,7 +41,7 @@
                                 },
                                 "devDependencies": {
                                   "@npmcli/eslint-config": "^4.0.0",
                              -    "@npmcli/template-oss": "4.18.0",
                              +    "@npmcli/template-oss": "4.19.0",
                                   "cacache": "^18.0.0",
                                   "nock": "^13.2.4",
                                   "require-inject": "^1.4.4",
                              @@ -61,13 +61,7 @@
                                 },
                                 "templateOSS": {
                                   "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
                              -    "version": "4.18.0",
                              -    "publish": "true",
                              -    "ciVersions": [
                              -      "16.14.0",
                              -      "16.x",
                              -      "18.0.0",
                              -      "18.x"
                              -    ]
                              +    "version": "4.19.0",
                              +    "publish": "true"
                                 }
                               }
                              diff --git a/deps/npm/node_modules/once/LICENSE b/deps/npm/node_modules/once/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/once/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/once/once.js b/deps/npm/node_modules/once/once.js
                              deleted file mode 100644
                              index 235406736d9d94..00000000000000
                              --- a/deps/npm/node_modules/once/once.js
                              +++ /dev/null
                              @@ -1,42 +0,0 @@
                              -var wrappy = require('wrappy')
                              -module.exports = wrappy(once)
                              -module.exports.strict = wrappy(onceStrict)
                              -
                              -once.proto = once(function () {
                              -  Object.defineProperty(Function.prototype, 'once', {
                              -    value: function () {
                              -      return once(this)
                              -    },
                              -    configurable: true
                              -  })
                              -
                              -  Object.defineProperty(Function.prototype, 'onceStrict', {
                              -    value: function () {
                              -      return onceStrict(this)
                              -    },
                              -    configurable: true
                              -  })
                              -})
                              -
                              -function once (fn) {
                              -  var f = function () {
                              -    if (f.called) return f.value
                              -    f.called = true
                              -    return f.value = fn.apply(this, arguments)
                              -  }
                              -  f.called = false
                              -  return f
                              -}
                              -
                              -function onceStrict (fn) {
                              -  var f = function () {
                              -    if (f.called)
                              -      throw new Error(f.onceError)
                              -    f.called = true
                              -    return f.value = fn.apply(this, arguments)
                              -  }
                              -  var name = fn.name || 'Function wrapped with `once`'
                              -  f.onceError = name + " shouldn't be called more than once"
                              -  f.called = false
                              -  return f
                              -}
                              diff --git a/deps/npm/node_modules/once/package.json b/deps/npm/node_modules/once/package.json
                              deleted file mode 100644
                              index 16815b2fa11193..00000000000000
                              --- a/deps/npm/node_modules/once/package.json
                              +++ /dev/null
                              @@ -1,33 +0,0 @@
                              -{
                              -  "name": "once",
                              -  "version": "1.4.0",
                              -  "description": "Run a function exactly one time",
                              -  "main": "once.js",
                              -  "directories": {
                              -    "test": "test"
                              -  },
                              -  "dependencies": {
                              -    "wrappy": "1"
                              -  },
                              -  "devDependencies": {
                              -    "tap": "^7.0.1"
                              -  },
                              -  "scripts": {
                              -    "test": "tap test/*.js"
                              -  },
                              -  "files": [
                              -    "once.js"
                              -  ],
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/once"
                              -  },
                              -  "keywords": [
                              -    "once",
                              -    "function",
                              -    "one",
                              -    "single"
                              -  ],
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "license": "ISC"
                              -}
                              diff --git a/deps/npm/node_modules/path-is-absolute/index.js b/deps/npm/node_modules/path-is-absolute/index.js
                              deleted file mode 100644
                              index 22aa6c35607997..00000000000000
                              --- a/deps/npm/node_modules/path-is-absolute/index.js
                              +++ /dev/null
                              @@ -1,20 +0,0 @@
                              -'use strict';
                              -
                              -function posix(path) {
                              -	return path.charAt(0) === '/';
                              -}
                              -
                              -function win32(path) {
                              -	// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
                              -	var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
                              -	var result = splitDeviceRe.exec(path);
                              -	var device = result[1] || '';
                              -	var isUnc = Boolean(device && device.charAt(1) !== ':');
                              -
                              -	// UNC paths are always absolute
                              -	return Boolean(result[2] || isUnc);
                              -}
                              -
                              -module.exports = process.platform === 'win32' ? win32 : posix;
                              -module.exports.posix = posix;
                              -module.exports.win32 = win32;
                              diff --git a/deps/npm/node_modules/path-is-absolute/license b/deps/npm/node_modules/path-is-absolute/license
                              deleted file mode 100644
                              index 654d0bfe943437..00000000000000
                              --- a/deps/npm/node_modules/path-is-absolute/license
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -The MIT License (MIT)
                              -
                              -Copyright (c) Sindre Sorhus  (sindresorhus.com)
                              -
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to deal
                              -in the Software without restriction, including without limitation the rights
                              -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                              -copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in
                              -all copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                              -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                              -THE SOFTWARE.
                              diff --git a/deps/npm/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/path-is-absolute/package.json
                              deleted file mode 100644
                              index 91196d5e9c1336..00000000000000
                              --- a/deps/npm/node_modules/path-is-absolute/package.json
                              +++ /dev/null
                              @@ -1,43 +0,0 @@
                              -{
                              -  "name": "path-is-absolute",
                              -  "version": "1.0.1",
                              -  "description": "Node.js 0.12 path.isAbsolute() ponyfill",
                              -  "license": "MIT",
                              -  "repository": "sindresorhus/path-is-absolute",
                              -  "author": {
                              -    "name": "Sindre Sorhus",
                              -    "email": "sindresorhus@gmail.com",
                              -    "url": "sindresorhus.com"
                              -  },
                              -  "engines": {
                              -    "node": ">=0.10.0"
                              -  },
                              -  "scripts": {
                              -    "test": "xo && node test.js"
                              -  },
                              -  "files": [
                              -    "index.js"
                              -  ],
                              -  "keywords": [
                              -    "path",
                              -    "paths",
                              -    "file",
                              -    "dir",
                              -    "absolute",
                              -    "isabsolute",
                              -    "is-absolute",
                              -    "built-in",
                              -    "util",
                              -    "utils",
                              -    "core",
                              -    "ponyfill",
                              -    "polyfill",
                              -    "shim",
                              -    "is",
                              -    "detect",
                              -    "check"
                              -  ],
                              -  "devDependencies": {
                              -    "xo": "^0.16.0"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/readable-stream/lib/stream/promises.js b/deps/npm/node_modules/readable-stream/lib/stream/promises.js
                              index b85c51f47f1ce1..5d4ce15f4904b7 100644
                              --- a/deps/npm/node_modules/readable-stream/lib/stream/promises.js
                              +++ b/deps/npm/node_modules/readable-stream/lib/stream/promises.js
                              @@ -4,7 +4,7 @@ const { ArrayPrototypePop, Promise } = require('../ours/primordials')
                               const { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')
                               const { pipelineImpl: pl } = require('../internal/streams/pipeline')
                               const { finished } = require('../internal/streams/end-of-stream')
                              -require('stream')
                              +require('../../lib/stream.js')
                               function pipeline(...streams) {
                                 return new Promise((resolve, reject) => {
                                   let signal
                              diff --git a/deps/npm/node_modules/readable-stream/package.json b/deps/npm/node_modules/readable-stream/package.json
                              index c4f6504cc7cc66..289f3a45a634f3 100644
                              --- a/deps/npm/node_modules/readable-stream/package.json
                              +++ b/deps/npm/node_modules/readable-stream/package.json
                              @@ -1,6 +1,6 @@
                               {
                                 "name": "readable-stream",
                              -  "version": "4.4.0",
                              +  "version": "4.4.2",
                                 "description": "Node.js Streams, a user-land copy of the stream library from Node.js",
                                 "homepage": "https://github.com/nodejs/readable-stream",
                                 "license": "MIT",
                              @@ -39,6 +39,7 @@
                                   "test:prepare": "node test/browser/runner-prepare.mjs",
                                   "test:browsers": "node test/browser/runner-browser.mjs",
                                   "test:bundlers": "node test/browser/runner-node.mjs",
                              +    "test:readable-stream-only": "node readable-stream-test/runner-prepare.mjs",
                                   "coverage": "c8 -c ./c8.json tap --rcfile=./tap.yml test/parallel/test-*.js test/ours/test-*.js",
                                   "format": "prettier -w src lib test",
                                   "lint": "eslint src"
                              @@ -47,7 +48,8 @@
                                   "abort-controller": "^3.0.0",
                                   "buffer": "^6.0.3",
                                   "events": "^3.3.0",
                              -    "process": "^0.11.10"
                              +    "process": "^0.11.10",
                              +    "string_decoder": "^1.3.0"
                                 },
                                 "devDependencies": {
                                   "@babel/core": "^7.17.10",
                              diff --git a/deps/npm/node_modules/rimraf/LICENSE b/deps/npm/node_modules/rimraf/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/rimraf/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/rimraf/README.md b/deps/npm/node_modules/rimraf/README.md
                              deleted file mode 100644
                              index 423b8cf854ad3e..00000000000000
                              --- a/deps/npm/node_modules/rimraf/README.md
                              +++ /dev/null
                              @@ -1,101 +0,0 @@
                              -[![Build Status](https://travis-ci.org/isaacs/rimraf.svg?branch=master)](https://travis-ci.org/isaacs/rimraf) [![Dependency Status](https://david-dm.org/isaacs/rimraf.svg)](https://david-dm.org/isaacs/rimraf) [![devDependency Status](https://david-dm.org/isaacs/rimraf/dev-status.svg)](https://david-dm.org/isaacs/rimraf#info=devDependencies)
                              -
                              -The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node.
                              -
                              -Install with `npm install rimraf`, or just drop rimraf.js somewhere.
                              -
                              -## API
                              -
                              -`rimraf(f, [opts], callback)`
                              -
                              -The first parameter will be interpreted as a globbing pattern for files. If you
                              -want to disable globbing you can do so with `opts.disableGlob` (defaults to
                              -`false`). This might be handy, for instance, if you have filenames that contain
                              -globbing wildcard characters.
                              -
                              -The callback will be called with an error if there is one.  Certain
                              -errors are handled for you:
                              -
                              -* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of
                              -  `opts.maxBusyTries` times before giving up, adding 100ms of wait
                              -  between each attempt.  The default `maxBusyTries` is 3.
                              -* `ENOENT` - If the file doesn't exist, rimraf will return
                              -  successfully, since your desired outcome is already the case.
                              -* `EMFILE` - Since `readdir` requires opening a file descriptor, it's
                              -  possible to hit `EMFILE` if too many file descriptors are in use.
                              -  In the sync case, there's nothing to be done for this.  But in the
                              -  async case, rimraf will gradually back off with timeouts up to
                              -  `opts.emfileWait` ms, which defaults to 1000.
                              -
                              -## options
                              -
                              -* unlink, chmod, stat, lstat, rmdir, readdir,
                              -  unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync
                              -
                              -    In order to use a custom file system library, you can override
                              -    specific fs functions on the options object.
                              -
                              -    If any of these functions are present on the options object, then
                              -    the supplied function will be used instead of the default fs
                              -    method.
                              -
                              -    Sync methods are only relevant for `rimraf.sync()`, of course.
                              -
                              -    For example:
                              -
                              -    ```javascript
                              -    var myCustomFS = require('some-custom-fs')
                              -
                              -    rimraf('some-thing', myCustomFS, callback)
                              -    ```
                              -
                              -* maxBusyTries
                              -
                              -    If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered
                              -    on Windows systems, then rimraf will retry with a linear backoff
                              -    wait of 100ms longer on each try.  The default maxBusyTries is 3.
                              -
                              -    Only relevant for async usage.
                              -
                              -* emfileWait
                              -
                              -    If an `EMFILE` error is encountered, then rimraf will retry
                              -    repeatedly with a linear backoff of 1ms longer on each try, until
                              -    the timeout counter hits this max.  The default limit is 1000.
                              -
                              -    If you repeatedly encounter `EMFILE` errors, then consider using
                              -    [graceful-fs](http://npm.im/graceful-fs) in your program.
                              -
                              -    Only relevant for async usage.
                              -
                              -* glob
                              -
                              -    Set to `false` to disable [glob](http://npm.im/glob) pattern
                              -    matching.
                              -
                              -    Set to an object to pass options to the glob module.  The default
                              -    glob options are `{ nosort: true, silent: true }`.
                              -
                              -    Glob version 6 is used in this module.
                              -
                              -    Relevant for both sync and async usage.
                              -
                              -* disableGlob
                              -
                              -    Set to any non-falsey value to disable globbing entirely.
                              -    (Equivalent to setting `glob: false`.)
                              -
                              -## rimraf.sync
                              -
                              -It can remove stuff synchronously, too.  But that's not so good.  Use
                              -the async API.  It's better.
                              -
                              -## CLI
                              -
                              -If installed with `npm install rimraf -g` it can be used as a global
                              -command `rimraf  [ ...]` which is useful for cross platform support.
                              -
                              -## mkdirp
                              -
                              -If you need to create a directory recursively, check out
                              -[mkdirp](https://github.com/substack/node-mkdirp).
                              diff --git a/deps/npm/node_modules/rimraf/bin.js b/deps/npm/node_modules/rimraf/bin.js
                              deleted file mode 100755
                              index 023814cc93e849..00000000000000
                              --- a/deps/npm/node_modules/rimraf/bin.js
                              +++ /dev/null
                              @@ -1,68 +0,0 @@
                              -#!/usr/bin/env node
                              -
                              -const rimraf = require('./')
                              -
                              -const path = require('path')
                              -
                              -const isRoot = arg => /^(\/|[a-zA-Z]:\\)$/.test(path.resolve(arg))
                              -const filterOutRoot = arg => {
                              -  const ok = preserveRoot === false || !isRoot(arg)
                              -  if (!ok) {
                              -    console.error(`refusing to remove ${arg}`)
                              -    console.error('Set --no-preserve-root to allow this')
                              -  }
                              -  return ok
                              -}
                              -
                              -let help = false
                              -let dashdash = false
                              -let noglob = false
                              -let preserveRoot = true
                              -const args = process.argv.slice(2).filter(arg => {
                              -  if (dashdash)
                              -    return !!arg
                              -  else if (arg === '--')
                              -    dashdash = true
                              -  else if (arg === '--no-glob' || arg === '-G')
                              -    noglob = true
                              -  else if (arg === '--glob' || arg === '-g')
                              -    noglob = false
                              -  else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/))
                              -    help = true
                              -  else if (arg === '--preserve-root')
                              -    preserveRoot = true
                              -  else if (arg === '--no-preserve-root')
                              -    preserveRoot = false
                              -  else
                              -    return !!arg
                              -}).filter(arg => !preserveRoot || filterOutRoot(arg))
                              -
                              -const go = n => {
                              -  if (n >= args.length)
                              -    return
                              -  const options = noglob ? { glob: false } : {}
                              -  rimraf(args[n], options, er => {
                              -    if (er)
                              -      throw er
                              -    go(n+1)
                              -  })
                              -}
                              -
                              -if (help || args.length === 0) {
                              -  // If they didn't ask for help, then this is not a "success"
                              -  const log = help ? console.log : console.error
                              -  log('Usage: rimraf  [ ...]')
                              -  log('')
                              -  log('  Deletes all files and folders at "path" recursively.')
                              -  log('')
                              -  log('Options:')
                              -  log('')
                              -  log('  -h, --help          Display this usage info')
                              -  log('  -G, --no-glob       Do not expand glob patterns in arguments')
                              -  log('  -g, --glob          Expand glob patterns in arguments (default)')
                              -  log('  --preserve-root     Do not remove \'/\' (default)')
                              -  log('  --no-preserve-root  Do not treat \'/\' specially')
                              -  log('  --                  Stop parsing flags')
                              -  process.exit(help ? 0 : 1)
                              -} else
                              -  go(0)
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/LICENSE b/deps/npm/node_modules/rimraf/node_modules/brace-expansion/LICENSE
                              deleted file mode 100644
                              index de3226673c3874..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/LICENSE
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -MIT License
                              -
                              -Copyright (c) 2013 Julian Gruber 
                              -
                              -Permission is hereby granted, free of charge, to any person obtaining a copy
                              -of this software and associated documentation files (the "Software"), to deal
                              -in the Software without restriction, including without limitation the rights
                              -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                              -copies of the Software, and to permit persons to whom the Software is
                              -furnished to do so, subject to the following conditions:
                              -
                              -The above copyright notice and this permission notice shall be included in all
                              -copies or substantial portions of the Software.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                              -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                              -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                              -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                              -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                              -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
                              -SOFTWARE.
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/index.js b/deps/npm/node_modules/rimraf/node_modules/brace-expansion/index.js
                              deleted file mode 100644
                              index 2b6f4f85c951fc..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/index.js
                              +++ /dev/null
                              @@ -1,200 +0,0 @@
                              -var concatMap = require('concat-map');
                              -var balanced = require('balanced-match');
                              -
                              -module.exports = expandTop;
                              -
                              -var escSlash = '\0SLASH'+Math.random()+'\0';
                              -var escOpen = '\0OPEN'+Math.random()+'\0';
                              -var escClose = '\0CLOSE'+Math.random()+'\0';
                              -var escComma = '\0COMMA'+Math.random()+'\0';
                              -var escPeriod = '\0PERIOD'+Math.random()+'\0';
                              -
                              -function numeric(str) {
                              -  return parseInt(str, 10) == str
                              -    ? parseInt(str, 10)
                              -    : str.charCodeAt(0);
                              -}
                              -
                              -function escapeBraces(str) {
                              -  return str.split('\\\\').join(escSlash)
                              -            .split('\\{').join(escOpen)
                              -            .split('\\}').join(escClose)
                              -            .split('\\,').join(escComma)
                              -            .split('\\.').join(escPeriod);
                              -}
                              -
                              -function unescapeBraces(str) {
                              -  return str.split(escSlash).join('\\')
                              -            .split(escOpen).join('{')
                              -            .split(escClose).join('}')
                              -            .split(escComma).join(',')
                              -            .split(escPeriod).join('.');
                              -}
                              -
                              -
                              -// Basically just str.split(","), but handling cases
                              -// where we have nested braced sections, which should be
                              -// treated as individual members, like {a,{b,c},d}
                              -function parseCommaParts(str) {
                              -  if (!str)
                              -    return [''];
                              -
                              -  var parts = [];
                              -  var m = balanced('{', '}', str);
                              -
                              -  if (!m)
                              -    return str.split(',');
                              -
                              -  var pre = m.pre;
                              -  var body = m.body;
                              -  var post = m.post;
                              -  var p = pre.split(',');
                              -
                              -  p[p.length-1] += '{' + body + '}';
                              -  var postParts = parseCommaParts(post);
                              -  if (post.length) {
                              -    p[p.length-1] += postParts.shift();
                              -    p.push.apply(p, postParts);
                              -  }
                              -
                              -  parts.push.apply(parts, p);
                              -
                              -  return parts;
                              -}
                              -
                              -function expandTop(str) {
                              -  if (!str)
                              -    return [];
                              -
                              -  // I don't know why Bash 4.3 does this, but it does.
                              -  // Anything starting with {} will have the first two bytes preserved
                              -  // but *only* at the top level, so {},a}b will not expand to anything,
                              -  // but a{},b}c will be expanded to [a}c,abc].
                              -  // One could argue that this is a bug in Bash, but since the goal of
                              -  // this module is to match Bash's rules, we escape a leading {}
                              -  if (str.substr(0, 2) === '{}') {
                              -    str = '\\{\\}' + str.substr(2);
                              -  }
                              -
                              -  return expand(escapeBraces(str), true).map(unescapeBraces);
                              -}
                              -
                              -function identity(e) {
                              -  return e;
                              -}
                              -
                              -function embrace(str) {
                              -  return '{' + str + '}';
                              -}
                              -function isPadded(el) {
                              -  return /^-?0\d/.test(el);
                              -}
                              -
                              -function lte(i, y) {
                              -  return i <= y;
                              -}
                              -function gte(i, y) {
                              -  return i >= y;
                              -}
                              -
                              -function expand(str, isTop) {
                              -  var expansions = [];
                              -
                              -  var m = balanced('{', '}', str);
                              -  if (!m || /\$$/.test(m.pre)) return [str];
                              -
                              -  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
                              -  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
                              -  var isSequence = isNumericSequence || isAlphaSequence;
                              -  var isOptions = m.body.indexOf(',') >= 0;
                              -  if (!isSequence && !isOptions) {
                              -    // {a},b}
                              -    if (m.post.match(/,.*\}/)) {
                              -      str = m.pre + '{' + m.body + escClose + m.post;
                              -      return expand(str);
                              -    }
                              -    return [str];
                              -  }
                              -
                              -  var n;
                              -  if (isSequence) {
                              -    n = m.body.split(/\.\./);
                              -  } else {
                              -    n = parseCommaParts(m.body);
                              -    if (n.length === 1) {
                              -      // x{{a,b}}y ==> x{a}y x{b}y
                              -      n = expand(n[0], false).map(embrace);
                              -      if (n.length === 1) {
                              -        var post = m.post.length
                              -          ? expand(m.post, false)
                              -          : [''];
                              -        return post.map(function(p) {
                              -          return m.pre + n[0] + p;
                              -        });
                              -      }
                              -    }
                              -  }
                              -
                              -  // at this point, n is the parts, and we know it's not a comma set
                              -  // with a single entry.
                              -
                              -  // no need to expand pre, since it is guaranteed to be free of brace-sets
                              -  var pre = m.pre;
                              -  var post = m.post.length
                              -    ? expand(m.post, false)
                              -    : [''];
                              -
                              -  var N;
                              -
                              -  if (isSequence) {
                              -    var x = numeric(n[0]);
                              -    var y = numeric(n[1]);
                              -    var width = Math.max(n[0].length, n[1].length)
                              -    var incr = n.length == 3
                              -      ? Math.abs(numeric(n[2]))
                              -      : 1;
                              -    var test = lte;
                              -    var reverse = y < x;
                              -    if (reverse) {
                              -      incr *= -1;
                              -      test = gte;
                              -    }
                              -    var pad = n.some(isPadded);
                              -
                              -    N = [];
                              -
                              -    for (var i = x; test(i, y); i += incr) {
                              -      var c;
                              -      if (isAlphaSequence) {
                              -        c = String.fromCharCode(i);
                              -        if (c === '\\')
                              -          c = '';
                              -      } else {
                              -        c = String(i);
                              -        if (pad) {
                              -          var need = width - c.length;
                              -          if (need > 0) {
                              -            var z = new Array(need + 1).join('0');
                              -            if (i < 0)
                              -              c = '-' + z + c.slice(1);
                              -            else
                              -              c = z + c;
                              -          }
                              -        }
                              -      }
                              -      N.push(c);
                              -    }
                              -  } else {
                              -    N = concatMap(n, function(el) { return expand(el, false) });
                              -  }
                              -
                              -  for (var j = 0; j < N.length; j++) {
                              -    for (var k = 0; k < post.length; k++) {
                              -      var expansion = pre + N[j] + post[k];
                              -      if (!isTop || isSequence || expansion)
                              -        expansions.push(expansion);
                              -    }
                              -  }
                              -
                              -  return expansions;
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/package.json b/deps/npm/node_modules/rimraf/node_modules/brace-expansion/package.json
                              deleted file mode 100644
                              index a18faa8fd67b82..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/brace-expansion/package.json
                              +++ /dev/null
                              @@ -1,47 +0,0 @@
                              -{
                              -  "name": "brace-expansion",
                              -  "description": "Brace expansion as known from sh/bash",
                              -  "version": "1.1.11",
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/juliangruber/brace-expansion.git"
                              -  },
                              -  "homepage": "https://github.com/juliangruber/brace-expansion",
                              -  "main": "index.js",
                              -  "scripts": {
                              -    "test": "tape test/*.js",
                              -    "gentest": "bash test/generate.sh",
                              -    "bench": "matcha test/perf/bench.js"
                              -  },
                              -  "dependencies": {
                              -    "balanced-match": "^1.0.0",
                              -    "concat-map": "0.0.1"
                              -  },
                              -  "devDependencies": {
                              -    "matcha": "^0.7.0",
                              -    "tape": "^4.6.0"
                              -  },
                              -  "keywords": [],
                              -  "author": {
                              -    "name": "Julian Gruber",
                              -    "email": "mail@juliangruber.com",
                              -    "url": "http://juliangruber.com"
                              -  },
                              -  "license": "MIT",
                              -  "testling": {
                              -    "files": "test/*.js",
                              -    "browsers": [
                              -      "ie/8..latest",
                              -      "firefox/20..latest",
                              -      "firefox/nightly",
                              -      "chrome/25..latest",
                              -      "chrome/canary",
                              -      "opera/12..latest",
                              -      "opera/next",
                              -      "safari/5.1..latest",
                              -      "ipad/6.0..latest",
                              -      "iphone/6.0..latest",
                              -      "android-browser/4.2..latest"
                              -    ]
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/glob/LICENSE b/deps/npm/node_modules/rimraf/node_modules/glob/LICENSE
                              deleted file mode 100644
                              index 42ca266df1d523..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/glob/LICENSE
                              +++ /dev/null
                              @@ -1,21 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              -
                              -## Glob Logo
                              -
                              -Glob's logo created by Tanya Brassie , licensed
                              -under a Creative Commons Attribution-ShareAlike 4.0 International License
                              -https://creativecommons.org/licenses/by-sa/4.0/
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/glob/common.js b/deps/npm/node_modules/rimraf/node_modules/glob/common.js
                              deleted file mode 100644
                              index 424c46e1dab1be..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/glob/common.js
                              +++ /dev/null
                              @@ -1,238 +0,0 @@
                              -exports.setopts = setopts
                              -exports.ownProp = ownProp
                              -exports.makeAbs = makeAbs
                              -exports.finish = finish
                              -exports.mark = mark
                              -exports.isIgnored = isIgnored
                              -exports.childrenIgnored = childrenIgnored
                              -
                              -function ownProp (obj, field) {
                              -  return Object.prototype.hasOwnProperty.call(obj, field)
                              -}
                              -
                              -var fs = require("fs")
                              -var path = require("path")
                              -var minimatch = require("minimatch")
                              -var isAbsolute = require("path-is-absolute")
                              -var Minimatch = minimatch.Minimatch
                              -
                              -function alphasort (a, b) {
                              -  return a.localeCompare(b, 'en')
                              -}
                              -
                              -function setupIgnores (self, options) {
                              -  self.ignore = options.ignore || []
                              -
                              -  if (!Array.isArray(self.ignore))
                              -    self.ignore = [self.ignore]
                              -
                              -  if (self.ignore.length) {
                              -    self.ignore = self.ignore.map(ignoreMap)
                              -  }
                              -}
                              -
                              -// ignore patterns are always in dot:true mode.
                              -function ignoreMap (pattern) {
                              -  var gmatcher = null
                              -  if (pattern.slice(-3) === '/**') {
                              -    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
                              -    gmatcher = new Minimatch(gpattern, { dot: true })
                              -  }
                              -
                              -  return {
                              -    matcher: new Minimatch(pattern, { dot: true }),
                              -    gmatcher: gmatcher
                              -  }
                              -}
                              -
                              -function setopts (self, pattern, options) {
                              -  if (!options)
                              -    options = {}
                              -
                              -  // base-matching: just use globstar for that.
                              -  if (options.matchBase && -1 === pattern.indexOf("/")) {
                              -    if (options.noglobstar) {
                              -      throw new Error("base matching requires globstar")
                              -    }
                              -    pattern = "**/" + pattern
                              -  }
                              -
                              -  self.silent = !!options.silent
                              -  self.pattern = pattern
                              -  self.strict = options.strict !== false
                              -  self.realpath = !!options.realpath
                              -  self.realpathCache = options.realpathCache || Object.create(null)
                              -  self.follow = !!options.follow
                              -  self.dot = !!options.dot
                              -  self.mark = !!options.mark
                              -  self.nodir = !!options.nodir
                              -  if (self.nodir)
                              -    self.mark = true
                              -  self.sync = !!options.sync
                              -  self.nounique = !!options.nounique
                              -  self.nonull = !!options.nonull
                              -  self.nosort = !!options.nosort
                              -  self.nocase = !!options.nocase
                              -  self.stat = !!options.stat
                              -  self.noprocess = !!options.noprocess
                              -  self.absolute = !!options.absolute
                              -  self.fs = options.fs || fs
                              -
                              -  self.maxLength = options.maxLength || Infinity
                              -  self.cache = options.cache || Object.create(null)
                              -  self.statCache = options.statCache || Object.create(null)
                              -  self.symlinks = options.symlinks || Object.create(null)
                              -
                              -  setupIgnores(self, options)
                              -
                              -  self.changedCwd = false
                              -  var cwd = process.cwd()
                              -  if (!ownProp(options, "cwd"))
                              -    self.cwd = cwd
                              -  else {
                              -    self.cwd = path.resolve(options.cwd)
                              -    self.changedCwd = self.cwd !== cwd
                              -  }
                              -
                              -  self.root = options.root || path.resolve(self.cwd, "/")
                              -  self.root = path.resolve(self.root)
                              -  if (process.platform === "win32")
                              -    self.root = self.root.replace(/\\/g, "/")
                              -
                              -  // TODO: is an absolute `cwd` supposed to be resolved against `root`?
                              -  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
                              -  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
                              -  if (process.platform === "win32")
                              -    self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
                              -  self.nomount = !!options.nomount
                              -
                              -  // disable comments and negation in Minimatch.
                              -  // Note that they are not supported in Glob itself anyway.
                              -  options.nonegate = true
                              -  options.nocomment = true
                              -  // always treat \ in patterns as escapes, not path separators
                              -  options.allowWindowsEscape = false
                              -
                              -  self.minimatch = new Minimatch(pattern, options)
                              -  self.options = self.minimatch.options
                              -}
                              -
                              -function finish (self) {
                              -  var nou = self.nounique
                              -  var all = nou ? [] : Object.create(null)
                              -
                              -  for (var i = 0, l = self.matches.length; i < l; i ++) {
                              -    var matches = self.matches[i]
                              -    if (!matches || Object.keys(matches).length === 0) {
                              -      if (self.nonull) {
                              -        // do like the shell, and spit out the literal glob
                              -        var literal = self.minimatch.globSet[i]
                              -        if (nou)
                              -          all.push(literal)
                              -        else
                              -          all[literal] = true
                              -      }
                              -    } else {
                              -      // had matches
                              -      var m = Object.keys(matches)
                              -      if (nou)
                              -        all.push.apply(all, m)
                              -      else
                              -        m.forEach(function (m) {
                              -          all[m] = true
                              -        })
                              -    }
                              -  }
                              -
                              -  if (!nou)
                              -    all = Object.keys(all)
                              -
                              -  if (!self.nosort)
                              -    all = all.sort(alphasort)
                              -
                              -  // at *some* point we statted all of these
                              -  if (self.mark) {
                              -    for (var i = 0; i < all.length; i++) {
                              -      all[i] = self._mark(all[i])
                              -    }
                              -    if (self.nodir) {
                              -      all = all.filter(function (e) {
                              -        var notDir = !(/\/$/.test(e))
                              -        var c = self.cache[e] || self.cache[makeAbs(self, e)]
                              -        if (notDir && c)
                              -          notDir = c !== 'DIR' && !Array.isArray(c)
                              -        return notDir
                              -      })
                              -    }
                              -  }
                              -
                              -  if (self.ignore.length)
                              -    all = all.filter(function(m) {
                              -      return !isIgnored(self, m)
                              -    })
                              -
                              -  self.found = all
                              -}
                              -
                              -function mark (self, p) {
                              -  var abs = makeAbs(self, p)
                              -  var c = self.cache[abs]
                              -  var m = p
                              -  if (c) {
                              -    var isDir = c === 'DIR' || Array.isArray(c)
                              -    var slash = p.slice(-1) === '/'
                              -
                              -    if (isDir && !slash)
                              -      m += '/'
                              -    else if (!isDir && slash)
                              -      m = m.slice(0, -1)
                              -
                              -    if (m !== p) {
                              -      var mabs = makeAbs(self, m)
                              -      self.statCache[mabs] = self.statCache[abs]
                              -      self.cache[mabs] = self.cache[abs]
                              -    }
                              -  }
                              -
                              -  return m
                              -}
                              -
                              -// lotta situps...
                              -function makeAbs (self, f) {
                              -  var abs = f
                              -  if (f.charAt(0) === '/') {
                              -    abs = path.join(self.root, f)
                              -  } else if (isAbsolute(f) || f === '') {
                              -    abs = f
                              -  } else if (self.changedCwd) {
                              -    abs = path.resolve(self.cwd, f)
                              -  } else {
                              -    abs = path.resolve(f)
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    abs = abs.replace(/\\/g, '/')
                              -
                              -  return abs
                              -}
                              -
                              -
                              -// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
                              -// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
                              -function isIgnored (self, path) {
                              -  if (!self.ignore.length)
                              -    return false
                              -
                              -  return self.ignore.some(function(item) {
                              -    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
                              -  })
                              -}
                              -
                              -function childrenIgnored (self, path) {
                              -  if (!self.ignore.length)
                              -    return false
                              -
                              -  return self.ignore.some(function(item) {
                              -    return !!(item.gmatcher && item.gmatcher.match(path))
                              -  })
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/glob/glob.js b/deps/npm/node_modules/rimraf/node_modules/glob/glob.js
                              deleted file mode 100644
                              index 37a4d7e60775a3..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/glob/glob.js
                              +++ /dev/null
                              @@ -1,790 +0,0 @@
                              -// Approach:
                              -//
                              -// 1. Get the minimatch set
                              -// 2. For each pattern in the set, PROCESS(pattern, false)
                              -// 3. Store matches per-set, then uniq them
                              -//
                              -// PROCESS(pattern, inGlobStar)
                              -// Get the first [n] items from pattern that are all strings
                              -// Join these together.  This is PREFIX.
                              -//   If there is no more remaining, then stat(PREFIX) and
                              -//   add to matches if it succeeds.  END.
                              -//
                              -// If inGlobStar and PREFIX is symlink and points to dir
                              -//   set ENTRIES = []
                              -// else readdir(PREFIX) as ENTRIES
                              -//   If fail, END
                              -//
                              -// with ENTRIES
                              -//   If pattern[n] is GLOBSTAR
                              -//     // handle the case where the globstar match is empty
                              -//     // by pruning it out, and testing the resulting pattern
                              -//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
                              -//     // handle other cases.
                              -//     for ENTRY in ENTRIES (not dotfiles)
                              -//       // attach globstar + tail onto the entry
                              -//       // Mark that this entry is a globstar match
                              -//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
                              -//
                              -//   else // not globstar
                              -//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
                              -//       Test ENTRY against pattern[n]
                              -//       If fails, continue
                              -//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
                              -//
                              -// Caveat:
                              -//   Cache all stats and readdirs results to minimize syscall.  Since all
                              -//   we ever care about is existence and directory-ness, we can just keep
                              -//   `true` for files, and [children,...] for directories, or `false` for
                              -//   things that don't exist.
                              -
                              -module.exports = glob
                              -
                              -var rp = require('fs.realpath')
                              -var minimatch = require('minimatch')
                              -var Minimatch = minimatch.Minimatch
                              -var inherits = require('inherits')
                              -var EE = require('events').EventEmitter
                              -var path = require('path')
                              -var assert = require('assert')
                              -var isAbsolute = require('path-is-absolute')
                              -var globSync = require('./sync.js')
                              -var common = require('./common.js')
                              -var setopts = common.setopts
                              -var ownProp = common.ownProp
                              -var inflight = require('inflight')
                              -var util = require('util')
                              -var childrenIgnored = common.childrenIgnored
                              -var isIgnored = common.isIgnored
                              -
                              -var once = require('once')
                              -
                              -function glob (pattern, options, cb) {
                              -  if (typeof options === 'function') cb = options, options = {}
                              -  if (!options) options = {}
                              -
                              -  if (options.sync) {
                              -    if (cb)
                              -      throw new TypeError('callback provided to sync glob')
                              -    return globSync(pattern, options)
                              -  }
                              -
                              -  return new Glob(pattern, options, cb)
                              -}
                              -
                              -glob.sync = globSync
                              -var GlobSync = glob.GlobSync = globSync.GlobSync
                              -
                              -// old api surface
                              -glob.glob = glob
                              -
                              -function extend (origin, add) {
                              -  if (add === null || typeof add !== 'object') {
                              -    return origin
                              -  }
                              -
                              -  var keys = Object.keys(add)
                              -  var i = keys.length
                              -  while (i--) {
                              -    origin[keys[i]] = add[keys[i]]
                              -  }
                              -  return origin
                              -}
                              -
                              -glob.hasMagic = function (pattern, options_) {
                              -  var options = extend({}, options_)
                              -  options.noprocess = true
                              -
                              -  var g = new Glob(pattern, options)
                              -  var set = g.minimatch.set
                              -
                              -  if (!pattern)
                              -    return false
                              -
                              -  if (set.length > 1)
                              -    return true
                              -
                              -  for (var j = 0; j < set[0].length; j++) {
                              -    if (typeof set[0][j] !== 'string')
                              -      return true
                              -  }
                              -
                              -  return false
                              -}
                              -
                              -glob.Glob = Glob
                              -inherits(Glob, EE)
                              -function Glob (pattern, options, cb) {
                              -  if (typeof options === 'function') {
                              -    cb = options
                              -    options = null
                              -  }
                              -
                              -  if (options && options.sync) {
                              -    if (cb)
                              -      throw new TypeError('callback provided to sync glob')
                              -    return new GlobSync(pattern, options)
                              -  }
                              -
                              -  if (!(this instanceof Glob))
                              -    return new Glob(pattern, options, cb)
                              -
                              -  setopts(this, pattern, options)
                              -  this._didRealPath = false
                              -
                              -  // process each pattern in the minimatch set
                              -  var n = this.minimatch.set.length
                              -
                              -  // The matches are stored as {: true,...} so that
                              -  // duplicates are automagically pruned.
                              -  // Later, we do an Object.keys() on these.
                              -  // Keep them as a list so we can fill in when nonull is set.
                              -  this.matches = new Array(n)
                              -
                              -  if (typeof cb === 'function') {
                              -    cb = once(cb)
                              -    this.on('error', cb)
                              -    this.on('end', function (matches) {
                              -      cb(null, matches)
                              -    })
                              -  }
                              -
                              -  var self = this
                              -  this._processing = 0
                              -
                              -  this._emitQueue = []
                              -  this._processQueue = []
                              -  this.paused = false
                              -
                              -  if (this.noprocess)
                              -    return this
                              -
                              -  if (n === 0)
                              -    return done()
                              -
                              -  var sync = true
                              -  for (var i = 0; i < n; i ++) {
                              -    this._process(this.minimatch.set[i], i, false, done)
                              -  }
                              -  sync = false
                              -
                              -  function done () {
                              -    --self._processing
                              -    if (self._processing <= 0) {
                              -      if (sync) {
                              -        process.nextTick(function () {
                              -          self._finish()
                              -        })
                              -      } else {
                              -        self._finish()
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._finish = function () {
                              -  assert(this instanceof Glob)
                              -  if (this.aborted)
                              -    return
                              -
                              -  if (this.realpath && !this._didRealpath)
                              -    return this._realpath()
                              -
                              -  common.finish(this)
                              -  this.emit('end', this.found)
                              -}
                              -
                              -Glob.prototype._realpath = function () {
                              -  if (this._didRealpath)
                              -    return
                              -
                              -  this._didRealpath = true
                              -
                              -  var n = this.matches.length
                              -  if (n === 0)
                              -    return this._finish()
                              -
                              -  var self = this
                              -  for (var i = 0; i < this.matches.length; i++)
                              -    this._realpathSet(i, next)
                              -
                              -  function next () {
                              -    if (--n === 0)
                              -      self._finish()
                              -  }
                              -}
                              -
                              -Glob.prototype._realpathSet = function (index, cb) {
                              -  var matchset = this.matches[index]
                              -  if (!matchset)
                              -    return cb()
                              -
                              -  var found = Object.keys(matchset)
                              -  var self = this
                              -  var n = found.length
                              -
                              -  if (n === 0)
                              -    return cb()
                              -
                              -  var set = this.matches[index] = Object.create(null)
                              -  found.forEach(function (p, i) {
                              -    // If there's a problem with the stat, then it means that
                              -    // one or more of the links in the realpath couldn't be
                              -    // resolved.  just return the abs value in that case.
                              -    p = self._makeAbs(p)
                              -    rp.realpath(p, self.realpathCache, function (er, real) {
                              -      if (!er)
                              -        set[real] = true
                              -      else if (er.syscall === 'stat')
                              -        set[p] = true
                              -      else
                              -        self.emit('error', er) // srsly wtf right here
                              -
                              -      if (--n === 0) {
                              -        self.matches[index] = set
                              -        cb()
                              -      }
                              -    })
                              -  })
                              -}
                              -
                              -Glob.prototype._mark = function (p) {
                              -  return common.mark(this, p)
                              -}
                              -
                              -Glob.prototype._makeAbs = function (f) {
                              -  return common.makeAbs(this, f)
                              -}
                              -
                              -Glob.prototype.abort = function () {
                              -  this.aborted = true
                              -  this.emit('abort')
                              -}
                              -
                              -Glob.prototype.pause = function () {
                              -  if (!this.paused) {
                              -    this.paused = true
                              -    this.emit('pause')
                              -  }
                              -}
                              -
                              -Glob.prototype.resume = function () {
                              -  if (this.paused) {
                              -    this.emit('resume')
                              -    this.paused = false
                              -    if (this._emitQueue.length) {
                              -      var eq = this._emitQueue.slice(0)
                              -      this._emitQueue.length = 0
                              -      for (var i = 0; i < eq.length; i ++) {
                              -        var e = eq[i]
                              -        this._emitMatch(e[0], e[1])
                              -      }
                              -    }
                              -    if (this._processQueue.length) {
                              -      var pq = this._processQueue.slice(0)
                              -      this._processQueue.length = 0
                              -      for (var i = 0; i < pq.length; i ++) {
                              -        var p = pq[i]
                              -        this._processing--
                              -        this._process(p[0], p[1], p[2], p[3])
                              -      }
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
                              -  assert(this instanceof Glob)
                              -  assert(typeof cb === 'function')
                              -
                              -  if (this.aborted)
                              -    return
                              -
                              -  this._processing++
                              -  if (this.paused) {
                              -    this._processQueue.push([pattern, index, inGlobStar, cb])
                              -    return
                              -  }
                              -
                              -  //console.error('PROCESS %d', this._processing, pattern)
                              -
                              -  // Get the first [n] parts of pattern that are all strings.
                              -  var n = 0
                              -  while (typeof pattern[n] === 'string') {
                              -    n ++
                              -  }
                              -  // now n is the index of the first one that is *not* a string.
                              -
                              -  // see if there's anything else
                              -  var prefix
                              -  switch (n) {
                              -    // if not, then this is rather simple
                              -    case pattern.length:
                              -      this._processSimple(pattern.join('/'), index, cb)
                              -      return
                              -
                              -    case 0:
                              -      // pattern *starts* with some non-trivial item.
                              -      // going to readdir(cwd), but not include the prefix in matches.
                              -      prefix = null
                              -      break
                              -
                              -    default:
                              -      // pattern has some string bits in the front.
                              -      // whatever it starts with, whether that's 'absolute' like /foo/bar,
                              -      // or 'relative' like '../baz'
                              -      prefix = pattern.slice(0, n).join('/')
                              -      break
                              -  }
                              -
                              -  var remain = pattern.slice(n)
                              -
                              -  // get the list of entries.
                              -  var read
                              -  if (prefix === null)
                              -    read = '.'
                              -  else if (isAbsolute(prefix) ||
                              -      isAbsolute(pattern.map(function (p) {
                              -        return typeof p === 'string' ? p : '[*]'
                              -      }).join('/'))) {
                              -    if (!prefix || !isAbsolute(prefix))
                              -      prefix = '/' + prefix
                              -    read = prefix
                              -  } else
                              -    read = prefix
                              -
                              -  var abs = this._makeAbs(read)
                              -
                              -  //if ignored, skip _processing
                              -  if (childrenIgnored(this, read))
                              -    return cb()
                              -
                              -  var isGlobStar = remain[0] === minimatch.GLOBSTAR
                              -  if (isGlobStar)
                              -    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
                              -  else
                              -    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
                              -}
                              -
                              -Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
                              -  var self = this
                              -  this._readdir(abs, inGlobStar, function (er, entries) {
                              -    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
                              -  })
                              -}
                              -
                              -Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
                              -
                              -  // if the abs isn't a dir, then nothing can match!
                              -  if (!entries)
                              -    return cb()
                              -
                              -  // It will only match dot entries if it starts with a dot, or if
                              -  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
                              -  var pn = remain[0]
                              -  var negate = !!this.minimatch.negate
                              -  var rawGlob = pn._glob
                              -  var dotOk = this.dot || rawGlob.charAt(0) === '.'
                              -
                              -  var matchedEntries = []
                              -  for (var i = 0; i < entries.length; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) !== '.' || dotOk) {
                              -      var m
                              -      if (negate && !prefix) {
                              -        m = !e.match(pn)
                              -      } else {
                              -        m = e.match(pn)
                              -      }
                              -      if (m)
                              -        matchedEntries.push(e)
                              -    }
                              -  }
                              -
                              -  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
                              -
                              -  var len = matchedEntries.length
                              -  // If there are no matched entries, then nothing matches.
                              -  if (len === 0)
                              -    return cb()
                              -
                              -  // if this is the last remaining pattern bit, then no need for
                              -  // an additional stat *unless* the user has specified mark or
                              -  // stat explicitly.  We know they exist, since readdir returned
                              -  // them.
                              -
                              -  if (remain.length === 1 && !this.mark && !this.stat) {
                              -    if (!this.matches[index])
                              -      this.matches[index] = Object.create(null)
                              -
                              -    for (var i = 0; i < len; i ++) {
                              -      var e = matchedEntries[i]
                              -      if (prefix) {
                              -        if (prefix !== '/')
                              -          e = prefix + '/' + e
                              -        else
                              -          e = prefix + e
                              -      }
                              -
                              -      if (e.charAt(0) === '/' && !this.nomount) {
                              -        e = path.join(this.root, e)
                              -      }
                              -      this._emitMatch(index, e)
                              -    }
                              -    // This was the last one, and no stats were needed
                              -    return cb()
                              -  }
                              -
                              -  // now test all matched entries as stand-ins for that part
                              -  // of the pattern.
                              -  remain.shift()
                              -  for (var i = 0; i < len; i ++) {
                              -    var e = matchedEntries[i]
                              -    var newPattern
                              -    if (prefix) {
                              -      if (prefix !== '/')
                              -        e = prefix + '/' + e
                              -      else
                              -        e = prefix + e
                              -    }
                              -    this._process([e].concat(remain), index, inGlobStar, cb)
                              -  }
                              -  cb()
                              -}
                              -
                              -Glob.prototype._emitMatch = function (index, e) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  if (isIgnored(this, e))
                              -    return
                              -
                              -  if (this.paused) {
                              -    this._emitQueue.push([index, e])
                              -    return
                              -  }
                              -
                              -  var abs = isAbsolute(e) ? e : this._makeAbs(e)
                              -
                              -  if (this.mark)
                              -    e = this._mark(e)
                              -
                              -  if (this.absolute)
                              -    e = abs
                              -
                              -  if (this.matches[index][e])
                              -    return
                              -
                              -  if (this.nodir) {
                              -    var c = this.cache[abs]
                              -    if (c === 'DIR' || Array.isArray(c))
                              -      return
                              -  }
                              -
                              -  this.matches[index][e] = true
                              -
                              -  var st = this.statCache[abs]
                              -  if (st)
                              -    this.emit('stat', e, st)
                              -
                              -  this.emit('match', e)
                              -}
                              -
                              -Glob.prototype._readdirInGlobStar = function (abs, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // follow all symlinked directories forever
                              -  // just proceed as if this is a non-globstar situation
                              -  if (this.follow)
                              -    return this._readdir(abs, false, cb)
                              -
                              -  var lstatkey = 'lstat\0' + abs
                              -  var self = this
                              -  var lstatcb = inflight(lstatkey, lstatcb_)
                              -
                              -  if (lstatcb)
                              -    self.fs.lstat(abs, lstatcb)
                              -
                              -  function lstatcb_ (er, lstat) {
                              -    if (er && er.code === 'ENOENT')
                              -      return cb()
                              -
                              -    var isSym = lstat && lstat.isSymbolicLink()
                              -    self.symlinks[abs] = isSym
                              -
                              -    // If it's not a symlink or a dir, then it's definitely a regular file.
                              -    // don't bother doing a readdir in that case.
                              -    if (!isSym && lstat && !lstat.isDirectory()) {
                              -      self.cache[abs] = 'FILE'
                              -      cb()
                              -    } else
                              -      self._readdir(abs, false, cb)
                              -  }
                              -}
                              -
                              -Glob.prototype._readdir = function (abs, inGlobStar, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
                              -  if (!cb)
                              -    return
                              -
                              -  //console.error('RD %j %j', +inGlobStar, abs)
                              -  if (inGlobStar && !ownProp(this.symlinks, abs))
                              -    return this._readdirInGlobStar(abs, cb)
                              -
                              -  if (ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -    if (!c || c === 'FILE')
                              -      return cb()
                              -
                              -    if (Array.isArray(c))
                              -      return cb(null, c)
                              -  }
                              -
                              -  var self = this
                              -  self.fs.readdir(abs, readdirCb(this, abs, cb))
                              -}
                              -
                              -function readdirCb (self, abs, cb) {
                              -  return function (er, entries) {
                              -    if (er)
                              -      self._readdirError(abs, er, cb)
                              -    else
                              -      self._readdirEntries(abs, entries, cb)
                              -  }
                              -}
                              -
                              -Glob.prototype._readdirEntries = function (abs, entries, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // if we haven't asked to stat everything, then just
                              -  // assume that everything in there exists, so we can avoid
                              -  // having to stat it a second time.
                              -  if (!this.mark && !this.stat) {
                              -    for (var i = 0; i < entries.length; i ++) {
                              -      var e = entries[i]
                              -      if (abs === '/')
                              -        e = abs + e
                              -      else
                              -        e = abs + '/' + e
                              -      this.cache[e] = true
                              -    }
                              -  }
                              -
                              -  this.cache[abs] = entries
                              -  return cb(null, entries)
                              -}
                              -
                              -Glob.prototype._readdirError = function (f, er, cb) {
                              -  if (this.aborted)
                              -    return
                              -
                              -  // handle errors, and cache the information
                              -  switch (er.code) {
                              -    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
                              -    case 'ENOTDIR': // totally normal. means it *does* exist.
                              -      var abs = this._makeAbs(f)
                              -      this.cache[abs] = 'FILE'
                              -      if (abs === this.cwdAbs) {
                              -        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
                              -        error.path = this.cwd
                              -        error.code = er.code
                              -        this.emit('error', error)
                              -        this.abort()
                              -      }
                              -      break
                              -
                              -    case 'ENOENT': // not terribly unusual
                              -    case 'ELOOP':
                              -    case 'ENAMETOOLONG':
                              -    case 'UNKNOWN':
                              -      this.cache[this._makeAbs(f)] = false
                              -      break
                              -
                              -    default: // some unusual error.  Treat as failure.
                              -      this.cache[this._makeAbs(f)] = false
                              -      if (this.strict) {
                              -        this.emit('error', er)
                              -        // If the error is handled, then we abort
                              -        // if not, we threw out of here
                              -        this.abort()
                              -      }
                              -      if (!this.silent)
                              -        console.error('glob error', er)
                              -      break
                              -  }
                              -
                              -  return cb()
                              -}
                              -
                              -Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
                              -  var self = this
                              -  this._readdir(abs, inGlobStar, function (er, entries) {
                              -    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
                              -  })
                              -}
                              -
                              -
                              -Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
                              -  //console.error('pgs2', prefix, remain[0], entries)
                              -
                              -  // no entries means not a dir, so it can never have matches
                              -  // foo.txt/** doesn't match foo.txt
                              -  if (!entries)
                              -    return cb()
                              -
                              -  // test without the globstar, and with every child both below
                              -  // and replacing the globstar.
                              -  var remainWithoutGlobStar = remain.slice(1)
                              -  var gspref = prefix ? [ prefix ] : []
                              -  var noGlobStar = gspref.concat(remainWithoutGlobStar)
                              -
                              -  // the noGlobStar pattern exits the inGlobStar state
                              -  this._process(noGlobStar, index, false, cb)
                              -
                              -  var isSym = this.symlinks[abs]
                              -  var len = entries.length
                              -
                              -  // If it's a symlink, and we're in a globstar, then stop
                              -  if (isSym && inGlobStar)
                              -    return cb()
                              -
                              -  for (var i = 0; i < len; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) === '.' && !this.dot)
                              -      continue
                              -
                              -    // these two cases enter the inGlobStar state
                              -    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
                              -    this._process(instead, index, true, cb)
                              -
                              -    var below = gspref.concat(entries[i], remain)
                              -    this._process(below, index, true, cb)
                              -  }
                              -
                              -  cb()
                              -}
                              -
                              -Glob.prototype._processSimple = function (prefix, index, cb) {
                              -  // XXX review this.  Shouldn't it be doing the mounting etc
                              -  // before doing stat?  kinda weird?
                              -  var self = this
                              -  this._stat(prefix, function (er, exists) {
                              -    self._processSimple2(prefix, index, er, exists, cb)
                              -  })
                              -}
                              -Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
                              -
                              -  //console.error('ps2', prefix, exists)
                              -
                              -  if (!this.matches[index])
                              -    this.matches[index] = Object.create(null)
                              -
                              -  // If it doesn't exist, then just mark the lack of results
                              -  if (!exists)
                              -    return cb()
                              -
                              -  if (prefix && isAbsolute(prefix) && !this.nomount) {
                              -    var trail = /[\/\\]$/.test(prefix)
                              -    if (prefix.charAt(0) === '/') {
                              -      prefix = path.join(this.root, prefix)
                              -    } else {
                              -      prefix = path.resolve(this.root, prefix)
                              -      if (trail)
                              -        prefix += '/'
                              -    }
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    prefix = prefix.replace(/\\/g, '/')
                              -
                              -  // Mark this as a match
                              -  this._emitMatch(index, prefix)
                              -  cb()
                              -}
                              -
                              -// Returns either 'DIR', 'FILE', or false
                              -Glob.prototype._stat = function (f, cb) {
                              -  var abs = this._makeAbs(f)
                              -  var needDir = f.slice(-1) === '/'
                              -
                              -  if (f.length > this.maxLength)
                              -    return cb()
                              -
                              -  if (!this.stat && ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -
                              -    if (Array.isArray(c))
                              -      c = 'DIR'
                              -
                              -    // It exists, but maybe not how we need it
                              -    if (!needDir || c === 'DIR')
                              -      return cb(null, c)
                              -
                              -    if (needDir && c === 'FILE')
                              -      return cb()
                              -
                              -    // otherwise we have to stat, because maybe c=true
                              -    // if we know it exists, but not what it is.
                              -  }
                              -
                              -  var exists
                              -  var stat = this.statCache[abs]
                              -  if (stat !== undefined) {
                              -    if (stat === false)
                              -      return cb(null, stat)
                              -    else {
                              -      var type = stat.isDirectory() ? 'DIR' : 'FILE'
                              -      if (needDir && type === 'FILE')
                              -        return cb()
                              -      else
                              -        return cb(null, type, stat)
                              -    }
                              -  }
                              -
                              -  var self = this
                              -  var statcb = inflight('stat\0' + abs, lstatcb_)
                              -  if (statcb)
                              -    self.fs.lstat(abs, statcb)
                              -
                              -  function lstatcb_ (er, lstat) {
                              -    if (lstat && lstat.isSymbolicLink()) {
                              -      // If it's a symlink, then treat it as the target, unless
                              -      // the target does not exist, then treat it as a file.
                              -      return self.fs.stat(abs, function (er, stat) {
                              -        if (er)
                              -          self._stat2(f, abs, null, lstat, cb)
                              -        else
                              -          self._stat2(f, abs, er, stat, cb)
                              -      })
                              -    } else {
                              -      self._stat2(f, abs, er, lstat, cb)
                              -    }
                              -  }
                              -}
                              -
                              -Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
                              -  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
                              -    this.statCache[abs] = false
                              -    return cb()
                              -  }
                              -
                              -  var needDir = f.slice(-1) === '/'
                              -  this.statCache[abs] = stat
                              -
                              -  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
                              -    return cb(null, false, stat)
                              -
                              -  var c = true
                              -  if (stat)
                              -    c = stat.isDirectory() ? 'DIR' : 'FILE'
                              -  this.cache[abs] = this.cache[abs] || c
                              -
                              -  if (needDir && c === 'FILE')
                              -    return cb()
                              -
                              -  return cb(null, c, stat)
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/glob/package.json b/deps/npm/node_modules/rimraf/node_modules/glob/package.json
                              deleted file mode 100644
                              index 5940b649b7e65a..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/glob/package.json
                              +++ /dev/null
                              @@ -1,55 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "name": "glob",
                              -  "description": "a little globber",
                              -  "version": "7.2.3",
                              -  "publishConfig": {
                              -    "tag": "v7-legacy"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/node-glob.git"
                              -  },
                              -  "main": "glob.js",
                              -  "files": [
                              -    "glob.js",
                              -    "sync.js",
                              -    "common.js"
                              -  ],
                              -  "engines": {
                              -    "node": "*"
                              -  },
                              -  "dependencies": {
                              -    "fs.realpath": "^1.0.0",
                              -    "inflight": "^1.0.4",
                              -    "inherits": "2",
                              -    "minimatch": "^3.1.1",
                              -    "once": "^1.3.0",
                              -    "path-is-absolute": "^1.0.0"
                              -  },
                              -  "devDependencies": {
                              -    "memfs": "^3.2.0",
                              -    "mkdirp": "0",
                              -    "rimraf": "^2.2.8",
                              -    "tap": "^15.0.6",
                              -    "tick": "0.0.6"
                              -  },
                              -  "tap": {
                              -    "before": "test/00-setup.js",
                              -    "after": "test/zz-cleanup.js",
                              -    "jobs": 1
                              -  },
                              -  "scripts": {
                              -    "prepublish": "npm run benchclean",
                              -    "profclean": "rm -f v8.log profile.txt",
                              -    "test": "tap",
                              -    "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
                              -    "bench": "bash benchmark.sh",
                              -    "prof": "bash prof.sh && cat profile.txt",
                              -    "benchclean": "node benchclean.js"
                              -  },
                              -  "license": "ISC",
                              -  "funding": {
                              -    "url": "https://github.com/sponsors/isaacs"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/glob/sync.js b/deps/npm/node_modules/rimraf/node_modules/glob/sync.js
                              deleted file mode 100644
                              index 2c4f480192d28d..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/glob/sync.js
                              +++ /dev/null
                              @@ -1,486 +0,0 @@
                              -module.exports = globSync
                              -globSync.GlobSync = GlobSync
                              -
                              -var rp = require('fs.realpath')
                              -var minimatch = require('minimatch')
                              -var Minimatch = minimatch.Minimatch
                              -var Glob = require('./glob.js').Glob
                              -var util = require('util')
                              -var path = require('path')
                              -var assert = require('assert')
                              -var isAbsolute = require('path-is-absolute')
                              -var common = require('./common.js')
                              -var setopts = common.setopts
                              -var ownProp = common.ownProp
                              -var childrenIgnored = common.childrenIgnored
                              -var isIgnored = common.isIgnored
                              -
                              -function globSync (pattern, options) {
                              -  if (typeof options === 'function' || arguments.length === 3)
                              -    throw new TypeError('callback provided to sync glob\n'+
                              -                        'See: https://github.com/isaacs/node-glob/issues/167')
                              -
                              -  return new GlobSync(pattern, options).found
                              -}
                              -
                              -function GlobSync (pattern, options) {
                              -  if (!pattern)
                              -    throw new Error('must provide pattern')
                              -
                              -  if (typeof options === 'function' || arguments.length === 3)
                              -    throw new TypeError('callback provided to sync glob\n'+
                              -                        'See: https://github.com/isaacs/node-glob/issues/167')
                              -
                              -  if (!(this instanceof GlobSync))
                              -    return new GlobSync(pattern, options)
                              -
                              -  setopts(this, pattern, options)
                              -
                              -  if (this.noprocess)
                              -    return this
                              -
                              -  var n = this.minimatch.set.length
                              -  this.matches = new Array(n)
                              -  for (var i = 0; i < n; i ++) {
                              -    this._process(this.minimatch.set[i], i, false)
                              -  }
                              -  this._finish()
                              -}
                              -
                              -GlobSync.prototype._finish = function () {
                              -  assert.ok(this instanceof GlobSync)
                              -  if (this.realpath) {
                              -    var self = this
                              -    this.matches.forEach(function (matchset, index) {
                              -      var set = self.matches[index] = Object.create(null)
                              -      for (var p in matchset) {
                              -        try {
                              -          p = self._makeAbs(p)
                              -          var real = rp.realpathSync(p, self.realpathCache)
                              -          set[real] = true
                              -        } catch (er) {
                              -          if (er.syscall === 'stat')
                              -            set[self._makeAbs(p)] = true
                              -          else
                              -            throw er
                              -        }
                              -      }
                              -    })
                              -  }
                              -  common.finish(this)
                              -}
                              -
                              -
                              -GlobSync.prototype._process = function (pattern, index, inGlobStar) {
                              -  assert.ok(this instanceof GlobSync)
                              -
                              -  // Get the first [n] parts of pattern that are all strings.
                              -  var n = 0
                              -  while (typeof pattern[n] === 'string') {
                              -    n ++
                              -  }
                              -  // now n is the index of the first one that is *not* a string.
                              -
                              -  // See if there's anything else
                              -  var prefix
                              -  switch (n) {
                              -    // if not, then this is rather simple
                              -    case pattern.length:
                              -      this._processSimple(pattern.join('/'), index)
                              -      return
                              -
                              -    case 0:
                              -      // pattern *starts* with some non-trivial item.
                              -      // going to readdir(cwd), but not include the prefix in matches.
                              -      prefix = null
                              -      break
                              -
                              -    default:
                              -      // pattern has some string bits in the front.
                              -      // whatever it starts with, whether that's 'absolute' like /foo/bar,
                              -      // or 'relative' like '../baz'
                              -      prefix = pattern.slice(0, n).join('/')
                              -      break
                              -  }
                              -
                              -  var remain = pattern.slice(n)
                              -
                              -  // get the list of entries.
                              -  var read
                              -  if (prefix === null)
                              -    read = '.'
                              -  else if (isAbsolute(prefix) ||
                              -      isAbsolute(pattern.map(function (p) {
                              -        return typeof p === 'string' ? p : '[*]'
                              -      }).join('/'))) {
                              -    if (!prefix || !isAbsolute(prefix))
                              -      prefix = '/' + prefix
                              -    read = prefix
                              -  } else
                              -    read = prefix
                              -
                              -  var abs = this._makeAbs(read)
                              -
                              -  //if ignored, skip processing
                              -  if (childrenIgnored(this, read))
                              -    return
                              -
                              -  var isGlobStar = remain[0] === minimatch.GLOBSTAR
                              -  if (isGlobStar)
                              -    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
                              -  else
                              -    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
                              -}
                              -
                              -
                              -GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
                              -  var entries = this._readdir(abs, inGlobStar)
                              -
                              -  // if the abs isn't a dir, then nothing can match!
                              -  if (!entries)
                              -    return
                              -
                              -  // It will only match dot entries if it starts with a dot, or if
                              -  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
                              -  var pn = remain[0]
                              -  var negate = !!this.minimatch.negate
                              -  var rawGlob = pn._glob
                              -  var dotOk = this.dot || rawGlob.charAt(0) === '.'
                              -
                              -  var matchedEntries = []
                              -  for (var i = 0; i < entries.length; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) !== '.' || dotOk) {
                              -      var m
                              -      if (negate && !prefix) {
                              -        m = !e.match(pn)
                              -      } else {
                              -        m = e.match(pn)
                              -      }
                              -      if (m)
                              -        matchedEntries.push(e)
                              -    }
                              -  }
                              -
                              -  var len = matchedEntries.length
                              -  // If there are no matched entries, then nothing matches.
                              -  if (len === 0)
                              -    return
                              -
                              -  // if this is the last remaining pattern bit, then no need for
                              -  // an additional stat *unless* the user has specified mark or
                              -  // stat explicitly.  We know they exist, since readdir returned
                              -  // them.
                              -
                              -  if (remain.length === 1 && !this.mark && !this.stat) {
                              -    if (!this.matches[index])
                              -      this.matches[index] = Object.create(null)
                              -
                              -    for (var i = 0; i < len; i ++) {
                              -      var e = matchedEntries[i]
                              -      if (prefix) {
                              -        if (prefix.slice(-1) !== '/')
                              -          e = prefix + '/' + e
                              -        else
                              -          e = prefix + e
                              -      }
                              -
                              -      if (e.charAt(0) === '/' && !this.nomount) {
                              -        e = path.join(this.root, e)
                              -      }
                              -      this._emitMatch(index, e)
                              -    }
                              -    // This was the last one, and no stats were needed
                              -    return
                              -  }
                              -
                              -  // now test all matched entries as stand-ins for that part
                              -  // of the pattern.
                              -  remain.shift()
                              -  for (var i = 0; i < len; i ++) {
                              -    var e = matchedEntries[i]
                              -    var newPattern
                              -    if (prefix)
                              -      newPattern = [prefix, e]
                              -    else
                              -      newPattern = [e]
                              -    this._process(newPattern.concat(remain), index, inGlobStar)
                              -  }
                              -}
                              -
                              -
                              -GlobSync.prototype._emitMatch = function (index, e) {
                              -  if (isIgnored(this, e))
                              -    return
                              -
                              -  var abs = this._makeAbs(e)
                              -
                              -  if (this.mark)
                              -    e = this._mark(e)
                              -
                              -  if (this.absolute) {
                              -    e = abs
                              -  }
                              -
                              -  if (this.matches[index][e])
                              -    return
                              -
                              -  if (this.nodir) {
                              -    var c = this.cache[abs]
                              -    if (c === 'DIR' || Array.isArray(c))
                              -      return
                              -  }
                              -
                              -  this.matches[index][e] = true
                              -
                              -  if (this.stat)
                              -    this._stat(e)
                              -}
                              -
                              -
                              -GlobSync.prototype._readdirInGlobStar = function (abs) {
                              -  // follow all symlinked directories forever
                              -  // just proceed as if this is a non-globstar situation
                              -  if (this.follow)
                              -    return this._readdir(abs, false)
                              -
                              -  var entries
                              -  var lstat
                              -  var stat
                              -  try {
                              -    lstat = this.fs.lstatSync(abs)
                              -  } catch (er) {
                              -    if (er.code === 'ENOENT') {
                              -      // lstat failed, doesn't exist
                              -      return null
                              -    }
                              -  }
                              -
                              -  var isSym = lstat && lstat.isSymbolicLink()
                              -  this.symlinks[abs] = isSym
                              -
                              -  // If it's not a symlink or a dir, then it's definitely a regular file.
                              -  // don't bother doing a readdir in that case.
                              -  if (!isSym && lstat && !lstat.isDirectory())
                              -    this.cache[abs] = 'FILE'
                              -  else
                              -    entries = this._readdir(abs, false)
                              -
                              -  return entries
                              -}
                              -
                              -GlobSync.prototype._readdir = function (abs, inGlobStar) {
                              -  var entries
                              -
                              -  if (inGlobStar && !ownProp(this.symlinks, abs))
                              -    return this._readdirInGlobStar(abs)
                              -
                              -  if (ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -    if (!c || c === 'FILE')
                              -      return null
                              -
                              -    if (Array.isArray(c))
                              -      return c
                              -  }
                              -
                              -  try {
                              -    return this._readdirEntries(abs, this.fs.readdirSync(abs))
                              -  } catch (er) {
                              -    this._readdirError(abs, er)
                              -    return null
                              -  }
                              -}
                              -
                              -GlobSync.prototype._readdirEntries = function (abs, entries) {
                              -  // if we haven't asked to stat everything, then just
                              -  // assume that everything in there exists, so we can avoid
                              -  // having to stat it a second time.
                              -  if (!this.mark && !this.stat) {
                              -    for (var i = 0; i < entries.length; i ++) {
                              -      var e = entries[i]
                              -      if (abs === '/')
                              -        e = abs + e
                              -      else
                              -        e = abs + '/' + e
                              -      this.cache[e] = true
                              -    }
                              -  }
                              -
                              -  this.cache[abs] = entries
                              -
                              -  // mark and cache dir-ness
                              -  return entries
                              -}
                              -
                              -GlobSync.prototype._readdirError = function (f, er) {
                              -  // handle errors, and cache the information
                              -  switch (er.code) {
                              -    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
                              -    case 'ENOTDIR': // totally normal. means it *does* exist.
                              -      var abs = this._makeAbs(f)
                              -      this.cache[abs] = 'FILE'
                              -      if (abs === this.cwdAbs) {
                              -        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
                              -        error.path = this.cwd
                              -        error.code = er.code
                              -        throw error
                              -      }
                              -      break
                              -
                              -    case 'ENOENT': // not terribly unusual
                              -    case 'ELOOP':
                              -    case 'ENAMETOOLONG':
                              -    case 'UNKNOWN':
                              -      this.cache[this._makeAbs(f)] = false
                              -      break
                              -
                              -    default: // some unusual error.  Treat as failure.
                              -      this.cache[this._makeAbs(f)] = false
                              -      if (this.strict)
                              -        throw er
                              -      if (!this.silent)
                              -        console.error('glob error', er)
                              -      break
                              -  }
                              -}
                              -
                              -GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
                              -
                              -  var entries = this._readdir(abs, inGlobStar)
                              -
                              -  // no entries means not a dir, so it can never have matches
                              -  // foo.txt/** doesn't match foo.txt
                              -  if (!entries)
                              -    return
                              -
                              -  // test without the globstar, and with every child both below
                              -  // and replacing the globstar.
                              -  var remainWithoutGlobStar = remain.slice(1)
                              -  var gspref = prefix ? [ prefix ] : []
                              -  var noGlobStar = gspref.concat(remainWithoutGlobStar)
                              -
                              -  // the noGlobStar pattern exits the inGlobStar state
                              -  this._process(noGlobStar, index, false)
                              -
                              -  var len = entries.length
                              -  var isSym = this.symlinks[abs]
                              -
                              -  // If it's a symlink, and we're in a globstar, then stop
                              -  if (isSym && inGlobStar)
                              -    return
                              -
                              -  for (var i = 0; i < len; i++) {
                              -    var e = entries[i]
                              -    if (e.charAt(0) === '.' && !this.dot)
                              -      continue
                              -
                              -    // these two cases enter the inGlobStar state
                              -    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
                              -    this._process(instead, index, true)
                              -
                              -    var below = gspref.concat(entries[i], remain)
                              -    this._process(below, index, true)
                              -  }
                              -}
                              -
                              -GlobSync.prototype._processSimple = function (prefix, index) {
                              -  // XXX review this.  Shouldn't it be doing the mounting etc
                              -  // before doing stat?  kinda weird?
                              -  var exists = this._stat(prefix)
                              -
                              -  if (!this.matches[index])
                              -    this.matches[index] = Object.create(null)
                              -
                              -  // If it doesn't exist, then just mark the lack of results
                              -  if (!exists)
                              -    return
                              -
                              -  if (prefix && isAbsolute(prefix) && !this.nomount) {
                              -    var trail = /[\/\\]$/.test(prefix)
                              -    if (prefix.charAt(0) === '/') {
                              -      prefix = path.join(this.root, prefix)
                              -    } else {
                              -      prefix = path.resolve(this.root, prefix)
                              -      if (trail)
                              -        prefix += '/'
                              -    }
                              -  }
                              -
                              -  if (process.platform === 'win32')
                              -    prefix = prefix.replace(/\\/g, '/')
                              -
                              -  // Mark this as a match
                              -  this._emitMatch(index, prefix)
                              -}
                              -
                              -// Returns either 'DIR', 'FILE', or false
                              -GlobSync.prototype._stat = function (f) {
                              -  var abs = this._makeAbs(f)
                              -  var needDir = f.slice(-1) === '/'
                              -
                              -  if (f.length > this.maxLength)
                              -    return false
                              -
                              -  if (!this.stat && ownProp(this.cache, abs)) {
                              -    var c = this.cache[abs]
                              -
                              -    if (Array.isArray(c))
                              -      c = 'DIR'
                              -
                              -    // It exists, but maybe not how we need it
                              -    if (!needDir || c === 'DIR')
                              -      return c
                              -
                              -    if (needDir && c === 'FILE')
                              -      return false
                              -
                              -    // otherwise we have to stat, because maybe c=true
                              -    // if we know it exists, but not what it is.
                              -  }
                              -
                              -  var exists
                              -  var stat = this.statCache[abs]
                              -  if (!stat) {
                              -    var lstat
                              -    try {
                              -      lstat = this.fs.lstatSync(abs)
                              -    } catch (er) {
                              -      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
                              -        this.statCache[abs] = false
                              -        return false
                              -      }
                              -    }
                              -
                              -    if (lstat && lstat.isSymbolicLink()) {
                              -      try {
                              -        stat = this.fs.statSync(abs)
                              -      } catch (er) {
                              -        stat = lstat
                              -      }
                              -    } else {
                              -      stat = lstat
                              -    }
                              -  }
                              -
                              -  this.statCache[abs] = stat
                              -
                              -  var c = true
                              -  if (stat)
                              -    c = stat.isDirectory() ? 'DIR' : 'FILE'
                              -
                              -  this.cache[abs] = this.cache[abs] || c
                              -
                              -  if (needDir && c === 'FILE')
                              -    return false
                              -
                              -  return c
                              -}
                              -
                              -GlobSync.prototype._mark = function (p) {
                              -  return common.mark(this, p)
                              -}
                              -
                              -GlobSync.prototype._makeAbs = function (f) {
                              -  return common.makeAbs(this, f)
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/minimatch/LICENSE b/deps/npm/node_modules/rimraf/node_modules/minimatch/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/minimatch/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/rimraf/node_modules/minimatch/minimatch.js
                              deleted file mode 100644
                              index fda45ade7cfc35..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/minimatch/minimatch.js
                              +++ /dev/null
                              @@ -1,947 +0,0 @@
                              -module.exports = minimatch
                              -minimatch.Minimatch = Minimatch
                              -
                              -var path = (function () { try { return require('path') } catch (e) {}}()) || {
                              -  sep: '/'
                              -}
                              -minimatch.sep = path.sep
                              -
                              -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
                              -var expand = require('brace-expansion')
                              -
                              -var plTypes = {
                              -  '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
                              -  '?': { open: '(?:', close: ')?' },
                              -  '+': { open: '(?:', close: ')+' },
                              -  '*': { open: '(?:', close: ')*' },
                              -  '@': { open: '(?:', close: ')' }
                              -}
                              -
                              -// any single thing other than /
                              -// don't need to escape / when using new RegExp()
                              -var qmark = '[^/]'
                              -
                              -// * => any number of characters
                              -var star = qmark + '*?'
                              -
                              -// ** when dots are allowed.  Anything goes, except .. and .
                              -// not (^ or / followed by one or two dots followed by $ or /),
                              -// followed by anything, any number of times.
                              -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
                              -
                              -// not a ^ or / followed by a dot,
                              -// followed by anything, any number of times.
                              -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
                              -
                              -// characters that need to be escaped in RegExp.
                              -var reSpecials = charSet('().*{}+?[]^$\\!')
                              -
                              -// "abc" -> { a:true, b:true, c:true }
                              -function charSet (s) {
                              -  return s.split('').reduce(function (set, c) {
                              -    set[c] = true
                              -    return set
                              -  }, {})
                              -}
                              -
                              -// normalizes slashes.
                              -var slashSplit = /\/+/
                              -
                              -minimatch.filter = filter
                              -function filter (pattern, options) {
                              -  options = options || {}
                              -  return function (p, i, list) {
                              -    return minimatch(p, pattern, options)
                              -  }
                              -}
                              -
                              -function ext (a, b) {
                              -  b = b || {}
                              -  var t = {}
                              -  Object.keys(a).forEach(function (k) {
                              -    t[k] = a[k]
                              -  })
                              -  Object.keys(b).forEach(function (k) {
                              -    t[k] = b[k]
                              -  })
                              -  return t
                              -}
                              -
                              -minimatch.defaults = function (def) {
                              -  if (!def || typeof def !== 'object' || !Object.keys(def).length) {
                              -    return minimatch
                              -  }
                              -
                              -  var orig = minimatch
                              -
                              -  var m = function minimatch (p, pattern, options) {
                              -    return orig(p, pattern, ext(def, options))
                              -  }
                              -
                              -  m.Minimatch = function Minimatch (pattern, options) {
                              -    return new orig.Minimatch(pattern, ext(def, options))
                              -  }
                              -  m.Minimatch.defaults = function defaults (options) {
                              -    return orig.defaults(ext(def, options)).Minimatch
                              -  }
                              -
                              -  m.filter = function filter (pattern, options) {
                              -    return orig.filter(pattern, ext(def, options))
                              -  }
                              -
                              -  m.defaults = function defaults (options) {
                              -    return orig.defaults(ext(def, options))
                              -  }
                              -
                              -  m.makeRe = function makeRe (pattern, options) {
                              -    return orig.makeRe(pattern, ext(def, options))
                              -  }
                              -
                              -  m.braceExpand = function braceExpand (pattern, options) {
                              -    return orig.braceExpand(pattern, ext(def, options))
                              -  }
                              -
                              -  m.match = function (list, pattern, options) {
                              -    return orig.match(list, pattern, ext(def, options))
                              -  }
                              -
                              -  return m
                              -}
                              -
                              -Minimatch.defaults = function (def) {
                              -  return minimatch.defaults(def).Minimatch
                              -}
                              -
                              -function minimatch (p, pattern, options) {
                              -  assertValidPattern(pattern)
                              -
                              -  if (!options) options = {}
                              -
                              -  // shortcut: comments match nothing.
                              -  if (!options.nocomment && pattern.charAt(0) === '#') {
                              -    return false
                              -  }
                              -
                              -  return new Minimatch(pattern, options).match(p)
                              -}
                              -
                              -function Minimatch (pattern, options) {
                              -  if (!(this instanceof Minimatch)) {
                              -    return new Minimatch(pattern, options)
                              -  }
                              -
                              -  assertValidPattern(pattern)
                              -
                              -  if (!options) options = {}
                              -
                              -  pattern = pattern.trim()
                              -
                              -  // windows support: need to use /, not \
                              -  if (!options.allowWindowsEscape && path.sep !== '/') {
                              -    pattern = pattern.split(path.sep).join('/')
                              -  }
                              -
                              -  this.options = options
                              -  this.set = []
                              -  this.pattern = pattern
                              -  this.regexp = null
                              -  this.negate = false
                              -  this.comment = false
                              -  this.empty = false
                              -  this.partial = !!options.partial
                              -
                              -  // make the set of regexps etc.
                              -  this.make()
                              -}
                              -
                              -Minimatch.prototype.debug = function () {}
                              -
                              -Minimatch.prototype.make = make
                              -function make () {
                              -  var pattern = this.pattern
                              -  var options = this.options
                              -
                              -  // empty patterns and comments match nothing.
                              -  if (!options.nocomment && pattern.charAt(0) === '#') {
                              -    this.comment = true
                              -    return
                              -  }
                              -  if (!pattern) {
                              -    this.empty = true
                              -    return
                              -  }
                              -
                              -  // step 1: figure out negation, etc.
                              -  this.parseNegate()
                              -
                              -  // step 2: expand braces
                              -  var set = this.globSet = this.braceExpand()
                              -
                              -  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // step 3: now we have a set, so turn each one into a series of path-portion
                              -  // matching patterns.
                              -  // These will be regexps, except in the case of "**", which is
                              -  // set to the GLOBSTAR object for globstar behavior,
                              -  // and will not contain any / characters
                              -  set = this.globParts = set.map(function (s) {
                              -    return s.split(slashSplit)
                              -  })
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // glob --> regexps
                              -  set = set.map(function (s, si, set) {
                              -    return s.map(this.parse, this)
                              -  }, this)
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  // filter out everything that didn't compile properly.
                              -  set = set.filter(function (s) {
                              -    return s.indexOf(false) === -1
                              -  })
                              -
                              -  this.debug(this.pattern, set)
                              -
                              -  this.set = set
                              -}
                              -
                              -Minimatch.prototype.parseNegate = parseNegate
                              -function parseNegate () {
                              -  var pattern = this.pattern
                              -  var negate = false
                              -  var options = this.options
                              -  var negateOffset = 0
                              -
                              -  if (options.nonegate) return
                              -
                              -  for (var i = 0, l = pattern.length
                              -    ; i < l && pattern.charAt(i) === '!'
                              -    ; i++) {
                              -    negate = !negate
                              -    negateOffset++
                              -  }
                              -
                              -  if (negateOffset) this.pattern = pattern.substr(negateOffset)
                              -  this.negate = negate
                              -}
                              -
                              -// Brace expansion:
                              -// a{b,c}d -> abd acd
                              -// a{b,}c -> abc ac
                              -// a{0..3}d -> a0d a1d a2d a3d
                              -// a{b,c{d,e}f}g -> abg acdfg acefg
                              -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
                              -//
                              -// Invalid sets are not expanded.
                              -// a{2..}b -> a{2..}b
                              -// a{b}c -> a{b}c
                              -minimatch.braceExpand = function (pattern, options) {
                              -  return braceExpand(pattern, options)
                              -}
                              -
                              -Minimatch.prototype.braceExpand = braceExpand
                              -
                              -function braceExpand (pattern, options) {
                              -  if (!options) {
                              -    if (this instanceof Minimatch) {
                              -      options = this.options
                              -    } else {
                              -      options = {}
                              -    }
                              -  }
                              -
                              -  pattern = typeof pattern === 'undefined'
                              -    ? this.pattern : pattern
                              -
                              -  assertValidPattern(pattern)
                              -
                              -  // Thanks to Yeting Li  for
                              -  // improving this regexp to avoid a ReDOS vulnerability.
                              -  if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) {
                              -    // shortcut. no need to expand.
                              -    return [pattern]
                              -  }
                              -
                              -  return expand(pattern)
                              -}
                              -
                              -var MAX_PATTERN_LENGTH = 1024 * 64
                              -var assertValidPattern = function (pattern) {
                              -  if (typeof pattern !== 'string') {
                              -    throw new TypeError('invalid pattern')
                              -  }
                              -
                              -  if (pattern.length > MAX_PATTERN_LENGTH) {
                              -    throw new TypeError('pattern is too long')
                              -  }
                              -}
                              -
                              -// parse a component of the expanded set.
                              -// At this point, no pattern may contain "/" in it
                              -// so we're going to return a 2d array, where each entry is the full
                              -// pattern, split on '/', and then turned into a regular expression.
                              -// A regexp is made at the end which joins each array with an
                              -// escaped /, and another full one which joins each regexp with |.
                              -//
                              -// Following the lead of Bash 4.1, note that "**" only has special meaning
                              -// when it is the *only* thing in a path portion.  Otherwise, any series
                              -// of * is equivalent to a single *.  Globstar behavior is enabled by
                              -// default, and can be disabled by setting options.noglobstar.
                              -Minimatch.prototype.parse = parse
                              -var SUBPARSE = {}
                              -function parse (pattern, isSub) {
                              -  assertValidPattern(pattern)
                              -
                              -  var options = this.options
                              -
                              -  // shortcuts
                              -  if (pattern === '**') {
                              -    if (!options.noglobstar)
                              -      return GLOBSTAR
                              -    else
                              -      pattern = '*'
                              -  }
                              -  if (pattern === '') return ''
                              -
                              -  var re = ''
                              -  var hasMagic = !!options.nocase
                              -  var escaping = false
                              -  // ? => one single character
                              -  var patternListStack = []
                              -  var negativeLists = []
                              -  var stateChar
                              -  var inClass = false
                              -  var reClassStart = -1
                              -  var classStart = -1
                              -  // . and .. never match anything that doesn't start with .,
                              -  // even when options.dot is set.
                              -  var patternStart = pattern.charAt(0) === '.' ? '' // anything
                              -  // not (start or / followed by . or .. followed by / or end)
                              -  : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
                              -  : '(?!\\.)'
                              -  var self = this
                              -
                              -  function clearStateChar () {
                              -    if (stateChar) {
                              -      // we had some state-tracking character
                              -      // that wasn't consumed by this pass.
                              -      switch (stateChar) {
                              -        case '*':
                              -          re += star
                              -          hasMagic = true
                              -        break
                              -        case '?':
                              -          re += qmark
                              -          hasMagic = true
                              -        break
                              -        default:
                              -          re += '\\' + stateChar
                              -        break
                              -      }
                              -      self.debug('clearStateChar %j %j', stateChar, re)
                              -      stateChar = false
                              -    }
                              -  }
                              -
                              -  for (var i = 0, len = pattern.length, c
                              -    ; (i < len) && (c = pattern.charAt(i))
                              -    ; i++) {
                              -    this.debug('%s\t%s %s %j', pattern, i, re, c)
                              -
                              -    // skip over any that are escaped.
                              -    if (escaping && reSpecials[c]) {
                              -      re += '\\' + c
                              -      escaping = false
                              -      continue
                              -    }
                              -
                              -    switch (c) {
                              -      /* istanbul ignore next */
                              -      case '/': {
                              -        // completely not allowed, even escaped.
                              -        // Should already be path-split by now.
                              -        return false
                              -      }
                              -
                              -      case '\\':
                              -        clearStateChar()
                              -        escaping = true
                              -      continue
                              -
                              -      // the various stateChar values
                              -      // for the "extglob" stuff.
                              -      case '?':
                              -      case '*':
                              -      case '+':
                              -      case '@':
                              -      case '!':
                              -        this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
                              -
                              -        // all of those are literals inside a class, except that
                              -        // the glob [!a] means [^a] in regexp
                              -        if (inClass) {
                              -          this.debug('  in class')
                              -          if (c === '!' && i === classStart + 1) c = '^'
                              -          re += c
                              -          continue
                              -        }
                              -
                              -        // if we already have a stateChar, then it means
                              -        // that there was something like ** or +? in there.
                              -        // Handle the stateChar, then proceed with this one.
                              -        self.debug('call clearStateChar %j', stateChar)
                              -        clearStateChar()
                              -        stateChar = c
                              -        // if extglob is disabled, then +(asdf|foo) isn't a thing.
                              -        // just clear the statechar *now*, rather than even diving into
                              -        // the patternList stuff.
                              -        if (options.noext) clearStateChar()
                              -      continue
                              -
                              -      case '(':
                              -        if (inClass) {
                              -          re += '('
                              -          continue
                              -        }
                              -
                              -        if (!stateChar) {
                              -          re += '\\('
                              -          continue
                              -        }
                              -
                              -        patternListStack.push({
                              -          type: stateChar,
                              -          start: i - 1,
                              -          reStart: re.length,
                              -          open: plTypes[stateChar].open,
                              -          close: plTypes[stateChar].close
                              -        })
                              -        // negation is (?:(?!js)[^/]*)
                              -        re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
                              -        this.debug('plType %j %j', stateChar, re)
                              -        stateChar = false
                              -      continue
                              -
                              -      case ')':
                              -        if (inClass || !patternListStack.length) {
                              -          re += '\\)'
                              -          continue
                              -        }
                              -
                              -        clearStateChar()
                              -        hasMagic = true
                              -        var pl = patternListStack.pop()
                              -        // negation is (?:(?!js)[^/]*)
                              -        // The others are (?:)
                              -        re += pl.close
                              -        if (pl.type === '!') {
                              -          negativeLists.push(pl)
                              -        }
                              -        pl.reEnd = re.length
                              -      continue
                              -
                              -      case '|':
                              -        if (inClass || !patternListStack.length || escaping) {
                              -          re += '\\|'
                              -          escaping = false
                              -          continue
                              -        }
                              -
                              -        clearStateChar()
                              -        re += '|'
                              -      continue
                              -
                              -      // these are mostly the same in regexp and glob
                              -      case '[':
                              -        // swallow any state-tracking char before the [
                              -        clearStateChar()
                              -
                              -        if (inClass) {
                              -          re += '\\' + c
                              -          continue
                              -        }
                              -
                              -        inClass = true
                              -        classStart = i
                              -        reClassStart = re.length
                              -        re += c
                              -      continue
                              -
                              -      case ']':
                              -        //  a right bracket shall lose its special
                              -        //  meaning and represent itself in
                              -        //  a bracket expression if it occurs
                              -        //  first in the list.  -- POSIX.2 2.8.3.2
                              -        if (i === classStart + 1 || !inClass) {
                              -          re += '\\' + c
                              -          escaping = false
                              -          continue
                              -        }
                              -
                              -        // handle the case where we left a class open.
                              -        // "[z-a]" is valid, equivalent to "\[z-a\]"
                              -        // split where the last [ was, make sure we don't have
                              -        // an invalid re. if so, re-walk the contents of the
                              -        // would-be class to re-translate any characters that
                              -        // were passed through as-is
                              -        // TODO: It would probably be faster to determine this
                              -        // without a try/catch and a new RegExp, but it's tricky
                              -        // to do safely.  For now, this is safe and works.
                              -        var cs = pattern.substring(classStart + 1, i)
                              -        try {
                              -          RegExp('[' + cs + ']')
                              -        } catch (er) {
                              -          // not a valid class!
                              -          var sp = this.parse(cs, SUBPARSE)
                              -          re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
                              -          hasMagic = hasMagic || sp[1]
                              -          inClass = false
                              -          continue
                              -        }
                              -
                              -        // finish up the class.
                              -        hasMagic = true
                              -        inClass = false
                              -        re += c
                              -      continue
                              -
                              -      default:
                              -        // swallow any state char that wasn't consumed
                              -        clearStateChar()
                              -
                              -        if (escaping) {
                              -          // no need
                              -          escaping = false
                              -        } else if (reSpecials[c]
                              -          && !(c === '^' && inClass)) {
                              -          re += '\\'
                              -        }
                              -
                              -        re += c
                              -
                              -    } // switch
                              -  } // for
                              -
                              -  // handle the case where we left a class open.
                              -  // "[abc" is valid, equivalent to "\[abc"
                              -  if (inClass) {
                              -    // split where the last [ was, and escape it
                              -    // this is a huge pita.  We now have to re-walk
                              -    // the contents of the would-be class to re-translate
                              -    // any characters that were passed through as-is
                              -    cs = pattern.substr(classStart + 1)
                              -    sp = this.parse(cs, SUBPARSE)
                              -    re = re.substr(0, reClassStart) + '\\[' + sp[0]
                              -    hasMagic = hasMagic || sp[1]
                              -  }
                              -
                              -  // handle the case where we had a +( thing at the *end*
                              -  // of the pattern.
                              -  // each pattern list stack adds 3 chars, and we need to go through
                              -  // and escape any | chars that were passed through as-is for the regexp.
                              -  // Go through and escape them, taking care not to double-escape any
                              -  // | chars that were already escaped.
                              -  for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
                              -    var tail = re.slice(pl.reStart + pl.open.length)
                              -    this.debug('setting tail', re, pl)
                              -    // maybe some even number of \, then maybe 1 \, followed by a |
                              -    tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
                              -      if (!$2) {
                              -        // the | isn't already escaped, so escape it.
                              -        $2 = '\\'
                              -      }
                              -
                              -      // need to escape all those slashes *again*, without escaping the
                              -      // one that we need for escaping the | character.  As it works out,
                              -      // escaping an even number of slashes can be done by simply repeating
                              -      // it exactly after itself.  That's why this trick works.
                              -      //
                              -      // I am sorry that you have to see this.
                              -      return $1 + $1 + $2 + '|'
                              -    })
                              -
                              -    this.debug('tail=%j\n   %s', tail, tail, pl, re)
                              -    var t = pl.type === '*' ? star
                              -      : pl.type === '?' ? qmark
                              -      : '\\' + pl.type
                              -
                              -    hasMagic = true
                              -    re = re.slice(0, pl.reStart) + t + '\\(' + tail
                              -  }
                              -
                              -  // handle trailing things that only matter at the very end.
                              -  clearStateChar()
                              -  if (escaping) {
                              -    // trailing \\
                              -    re += '\\\\'
                              -  }
                              -
                              -  // only need to apply the nodot start if the re starts with
                              -  // something that could conceivably capture a dot
                              -  var addPatternStart = false
                              -  switch (re.charAt(0)) {
                              -    case '[': case '.': case '(': addPatternStart = true
                              -  }
                              -
                              -  // Hack to work around lack of negative lookbehind in JS
                              -  // A pattern like: *.!(x).!(y|z) needs to ensure that a name
                              -  // like 'a.xyz.yz' doesn't match.  So, the first negative
                              -  // lookahead, has to look ALL the way ahead, to the end of
                              -  // the pattern.
                              -  for (var n = negativeLists.length - 1; n > -1; n--) {
                              -    var nl = negativeLists[n]
                              -
                              -    var nlBefore = re.slice(0, nl.reStart)
                              -    var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
                              -    var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
                              -    var nlAfter = re.slice(nl.reEnd)
                              -
                              -    nlLast += nlAfter
                              -
                              -    // Handle nested stuff like *(*.js|!(*.json)), where open parens
                              -    // mean that we should *not* include the ) in the bit that is considered
                              -    // "after" the negated section.
                              -    var openParensBefore = nlBefore.split('(').length - 1
                              -    var cleanAfter = nlAfter
                              -    for (i = 0; i < openParensBefore; i++) {
                              -      cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
                              -    }
                              -    nlAfter = cleanAfter
                              -
                              -    var dollar = ''
                              -    if (nlAfter === '' && isSub !== SUBPARSE) {
                              -      dollar = '$'
                              -    }
                              -    var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
                              -    re = newRe
                              -  }
                              -
                              -  // if the re is not "" at this point, then we need to make sure
                              -  // it doesn't match against an empty path part.
                              -  // Otherwise a/* will match a/, which it should not.
                              -  if (re !== '' && hasMagic) {
                              -    re = '(?=.)' + re
                              -  }
                              -
                              -  if (addPatternStart) {
                              -    re = patternStart + re
                              -  }
                              -
                              -  // parsing just a piece of a larger pattern.
                              -  if (isSub === SUBPARSE) {
                              -    return [re, hasMagic]
                              -  }
                              -
                              -  // skip the regexp for non-magical patterns
                              -  // unescape anything in it, though, so that it'll be
                              -  // an exact match against a file etc.
                              -  if (!hasMagic) {
                              -    return globUnescape(pattern)
                              -  }
                              -
                              -  var flags = options.nocase ? 'i' : ''
                              -  try {
                              -    var regExp = new RegExp('^' + re + '$', flags)
                              -  } catch (er) /* istanbul ignore next - should be impossible */ {
                              -    // If it was an invalid regular expression, then it can't match
                              -    // anything.  This trick looks for a character after the end of
                              -    // the string, which is of course impossible, except in multi-line
                              -    // mode, but it's not a /m regex.
                              -    return new RegExp('$.')
                              -  }
                              -
                              -  regExp._glob = pattern
                              -  regExp._src = re
                              -
                              -  return regExp
                              -}
                              -
                              -minimatch.makeRe = function (pattern, options) {
                              -  return new Minimatch(pattern, options || {}).makeRe()
                              -}
                              -
                              -Minimatch.prototype.makeRe = makeRe
                              -function makeRe () {
                              -  if (this.regexp || this.regexp === false) return this.regexp
                              -
                              -  // at this point, this.set is a 2d array of partial
                              -  // pattern strings, or "**".
                              -  //
                              -  // It's better to use .match().  This function shouldn't
                              -  // be used, really, but it's pretty convenient sometimes,
                              -  // when you just want to work with a regex.
                              -  var set = this.set
                              -
                              -  if (!set.length) {
                              -    this.regexp = false
                              -    return this.regexp
                              -  }
                              -  var options = this.options
                              -
                              -  var twoStar = options.noglobstar ? star
                              -    : options.dot ? twoStarDot
                              -    : twoStarNoDot
                              -  var flags = options.nocase ? 'i' : ''
                              -
                              -  var re = set.map(function (pattern) {
                              -    return pattern.map(function (p) {
                              -      return (p === GLOBSTAR) ? twoStar
                              -      : (typeof p === 'string') ? regExpEscape(p)
                              -      : p._src
                              -    }).join('\\\/')
                              -  }).join('|')
                              -
                              -  // must match entire pattern
                              -  // ending in a * or ** will make it less strict.
                              -  re = '^(?:' + re + ')$'
                              -
                              -  // can match anything, as long as it's not this.
                              -  if (this.negate) re = '^(?!' + re + ').*$'
                              -
                              -  try {
                              -    this.regexp = new RegExp(re, flags)
                              -  } catch (ex) /* istanbul ignore next - should be impossible */ {
                              -    this.regexp = false
                              -  }
                              -  return this.regexp
                              -}
                              -
                              -minimatch.match = function (list, pattern, options) {
                              -  options = options || {}
                              -  var mm = new Minimatch(pattern, options)
                              -  list = list.filter(function (f) {
                              -    return mm.match(f)
                              -  })
                              -  if (mm.options.nonull && !list.length) {
                              -    list.push(pattern)
                              -  }
                              -  return list
                              -}
                              -
                              -Minimatch.prototype.match = function match (f, partial) {
                              -  if (typeof partial === 'undefined') partial = this.partial
                              -  this.debug('match', f, this.pattern)
                              -  // short-circuit in the case of busted things.
                              -  // comments, etc.
                              -  if (this.comment) return false
                              -  if (this.empty) return f === ''
                              -
                              -  if (f === '/' && partial) return true
                              -
                              -  var options = this.options
                              -
                              -  // windows: need to use /, not \
                              -  if (path.sep !== '/') {
                              -    f = f.split(path.sep).join('/')
                              -  }
                              -
                              -  // treat the test path as a set of pathparts.
                              -  f = f.split(slashSplit)
                              -  this.debug(this.pattern, 'split', f)
                              -
                              -  // just ONE of the pattern sets in this.set needs to match
                              -  // in order for it to be valid.  If negating, then just one
                              -  // match means that we have failed.
                              -  // Either way, return on the first hit.
                              -
                              -  var set = this.set
                              -  this.debug(this.pattern, 'set', set)
                              -
                              -  // Find the basename of the path by looking for the last non-empty segment
                              -  var filename
                              -  var i
                              -  for (i = f.length - 1; i >= 0; i--) {
                              -    filename = f[i]
                              -    if (filename) break
                              -  }
                              -
                              -  for (i = 0; i < set.length; i++) {
                              -    var pattern = set[i]
                              -    var file = f
                              -    if (options.matchBase && pattern.length === 1) {
                              -      file = [filename]
                              -    }
                              -    var hit = this.matchOne(file, pattern, partial)
                              -    if (hit) {
                              -      if (options.flipNegate) return true
                              -      return !this.negate
                              -    }
                              -  }
                              -
                              -  // didn't get any hits.  this is success if it's a negative
                              -  // pattern, failure otherwise.
                              -  if (options.flipNegate) return false
                              -  return this.negate
                              -}
                              -
                              -// set partial to true to test if, for example,
                              -// "/a/b" matches the start of "/*/b/*/d"
                              -// Partial means, if you run out of file before you run
                              -// out of pattern, then that's fine, as long as all
                              -// the parts match.
                              -Minimatch.prototype.matchOne = function (file, pattern, partial) {
                              -  var options = this.options
                              -
                              -  this.debug('matchOne',
                              -    { 'this': this, file: file, pattern: pattern })
                              -
                              -  this.debug('matchOne', file.length, pattern.length)
                              -
                              -  for (var fi = 0,
                              -      pi = 0,
                              -      fl = file.length,
                              -      pl = pattern.length
                              -      ; (fi < fl) && (pi < pl)
                              -      ; fi++, pi++) {
                              -    this.debug('matchOne loop')
                              -    var p = pattern[pi]
                              -    var f = file[fi]
                              -
                              -    this.debug(pattern, p, f)
                              -
                              -    // should be impossible.
                              -    // some invalid regexp stuff in the set.
                              -    /* istanbul ignore if */
                              -    if (p === false) return false
                              -
                              -    if (p === GLOBSTAR) {
                              -      this.debug('GLOBSTAR', [pattern, p, f])
                              -
                              -      // "**"
                              -      // a/**/b/**/c would match the following:
                              -      // a/b/x/y/z/c
                              -      // a/x/y/z/b/c
                              -      // a/b/x/b/x/c
                              -      // a/b/c
                              -      // To do this, take the rest of the pattern after
                              -      // the **, and see if it would match the file remainder.
                              -      // If so, return success.
                              -      // If not, the ** "swallows" a segment, and try again.
                              -      // This is recursively awful.
                              -      //
                              -      // a/**/b/**/c matching a/b/x/y/z/c
                              -      // - a matches a
                              -      // - doublestar
                              -      //   - matchOne(b/x/y/z/c, b/**/c)
                              -      //     - b matches b
                              -      //     - doublestar
                              -      //       - matchOne(x/y/z/c, c) -> no
                              -      //       - matchOne(y/z/c, c) -> no
                              -      //       - matchOne(z/c, c) -> no
                              -      //       - matchOne(c, c) yes, hit
                              -      var fr = fi
                              -      var pr = pi + 1
                              -      if (pr === pl) {
                              -        this.debug('** at the end')
                              -        // a ** at the end will just swallow the rest.
                              -        // We have found a match.
                              -        // however, it will not swallow /.x, unless
                              -        // options.dot is set.
                              -        // . and .. are *never* matched by **, for explosively
                              -        // exponential reasons.
                              -        for (; fi < fl; fi++) {
                              -          if (file[fi] === '.' || file[fi] === '..' ||
                              -            (!options.dot && file[fi].charAt(0) === '.')) return false
                              -        }
                              -        return true
                              -      }
                              -
                              -      // ok, let's see if we can swallow whatever we can.
                              -      while (fr < fl) {
                              -        var swallowee = file[fr]
                              -
                              -        this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
                              -
                              -        // XXX remove this slice.  Just pass the start index.
                              -        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
                              -          this.debug('globstar found match!', fr, fl, swallowee)
                              -          // found a match.
                              -          return true
                              -        } else {
                              -          // can't swallow "." or ".." ever.
                              -          // can only swallow ".foo" when explicitly asked.
                              -          if (swallowee === '.' || swallowee === '..' ||
                              -            (!options.dot && swallowee.charAt(0) === '.')) {
                              -            this.debug('dot detected!', file, fr, pattern, pr)
                              -            break
                              -          }
                              -
                              -          // ** swallows a segment, and continue.
                              -          this.debug('globstar swallow a segment, and continue')
                              -          fr++
                              -        }
                              -      }
                              -
                              -      // no match was found.
                              -      // However, in partial mode, we can't say this is necessarily over.
                              -      // If there's more *pattern* left, then
                              -      /* istanbul ignore if */
                              -      if (partial) {
                              -        // ran out of file
                              -        this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
                              -        if (fr === fl) return true
                              -      }
                              -      return false
                              -    }
                              -
                              -    // something other than **
                              -    // non-magic patterns just have to match exactly
                              -    // patterns with magic have been turned into regexps.
                              -    var hit
                              -    if (typeof p === 'string') {
                              -      hit = f === p
                              -      this.debug('string match', p, f, hit)
                              -    } else {
                              -      hit = f.match(p)
                              -      this.debug('pattern match', p, f, hit)
                              -    }
                              -
                              -    if (!hit) return false
                              -  }
                              -
                              -  // Note: ending in / means that we'll get a final ""
                              -  // at the end of the pattern.  This can only match a
                              -  // corresponding "" at the end of the file.
                              -  // If the file ends in /, then it can only match a
                              -  // a pattern that ends in /, unless the pattern just
                              -  // doesn't have any more for it. But, a/b/ should *not*
                              -  // match "a/b/*", even though "" matches against the
                              -  // [^/]*? pattern, except in partial mode, where it might
                              -  // simply not be reached yet.
                              -  // However, a/b/ should still satisfy a/*
                              -
                              -  // now either we fell off the end of the pattern, or we're done.
                              -  if (fi === fl && pi === pl) {
                              -    // ran out of pattern and filename at the same time.
                              -    // an exact hit!
                              -    return true
                              -  } else if (fi === fl) {
                              -    // ran out of file, but still had pattern left.
                              -    // this is ok if we're doing the match as part of
                              -    // a glob fs traversal.
                              -    return partial
                              -  } else /* istanbul ignore else */ if (pi === pl) {
                              -    // ran out of pattern, still have file left.
                              -    // this is only acceptable if we're on the very last
                              -    // empty segment of a file with a trailing slash.
                              -    // a/* should match a/b/
                              -    return (fi === fl - 1) && (file[fi] === '')
                              -  }
                              -
                              -  // should be unreachable.
                              -  /* istanbul ignore next */
                              -  throw new Error('wtf?')
                              -}
                              -
                              -// replace stuff like \* with *
                              -function globUnescape (s) {
                              -  return s.replace(/\\(.)/g, '$1')
                              -}
                              -
                              -function regExpEscape (s) {
                              -  return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/node_modules/minimatch/package.json b/deps/npm/node_modules/rimraf/node_modules/minimatch/package.json
                              deleted file mode 100644
                              index 566efdfe45cb80..00000000000000
                              --- a/deps/npm/node_modules/rimraf/node_modules/minimatch/package.json
                              +++ /dev/null
                              @@ -1,33 +0,0 @@
                              -{
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me)",
                              -  "name": "minimatch",
                              -  "description": "a glob matcher in javascript",
                              -  "version": "3.1.2",
                              -  "publishConfig": {
                              -    "tag": "v3-legacy"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/isaacs/minimatch.git"
                              -  },
                              -  "main": "minimatch.js",
                              -  "scripts": {
                              -    "test": "tap",
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "postpublish": "git push origin --all; git push origin --tags"
                              -  },
                              -  "engines": {
                              -    "node": "*"
                              -  },
                              -  "dependencies": {
                              -    "brace-expansion": "^1.1.7"
                              -  },
                              -  "devDependencies": {
                              -    "tap": "^15.1.6"
                              -  },
                              -  "license": "ISC",
                              -  "files": [
                              -    "minimatch.js"
                              -  ]
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/package.json b/deps/npm/node_modules/rimraf/package.json
                              deleted file mode 100644
                              index 1bf8d5e38775d7..00000000000000
                              --- a/deps/npm/node_modules/rimraf/package.json
                              +++ /dev/null
                              @@ -1,32 +0,0 @@
                              -{
                              -  "name": "rimraf",
                              -  "version": "3.0.2",
                              -  "main": "rimraf.js",
                              -  "description": "A deep deletion module for node (like `rm -rf`)",
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "license": "ISC",
                              -  "repository": "git://github.com/isaacs/rimraf.git",
                              -  "scripts": {
                              -    "preversion": "npm test",
                              -    "postversion": "npm publish",
                              -    "postpublish": "git push origin --follow-tags",
                              -    "test": "tap test/*.js"
                              -  },
                              -  "bin": "./bin.js",
                              -  "dependencies": {
                              -    "glob": "^7.1.3"
                              -  },
                              -  "files": [
                              -    "LICENSE",
                              -    "README.md",
                              -    "bin.js",
                              -    "rimraf.js"
                              -  ],
                              -  "devDependencies": {
                              -    "mkdirp": "^0.5.1",
                              -    "tap": "^12.1.1"
                              -  },
                              -  "funding": {
                              -    "url": "https://github.com/sponsors/isaacs"
                              -  }
                              -}
                              diff --git a/deps/npm/node_modules/rimraf/rimraf.js b/deps/npm/node_modules/rimraf/rimraf.js
                              deleted file mode 100644
                              index 34da4171d75598..00000000000000
                              --- a/deps/npm/node_modules/rimraf/rimraf.js
                              +++ /dev/null
                              @@ -1,360 +0,0 @@
                              -const assert = require("assert")
                              -const path = require("path")
                              -const fs = require("fs")
                              -let glob = undefined
                              -try {
                              -  glob = require("glob")
                              -} catch (_err) {
                              -  // treat glob as optional.
                              -}
                              -
                              -const defaultGlobOpts = {
                              -  nosort: true,
                              -  silent: true
                              -}
                              -
                              -// for EMFILE handling
                              -let timeout = 0
                              -
                              -const isWindows = (process.platform === "win32")
                              -
                              -const defaults = options => {
                              -  const methods = [
                              -    'unlink',
                              -    'chmod',
                              -    'stat',
                              -    'lstat',
                              -    'rmdir',
                              -    'readdir'
                              -  ]
                              -  methods.forEach(m => {
                              -    options[m] = options[m] || fs[m]
                              -    m = m + 'Sync'
                              -    options[m] = options[m] || fs[m]
                              -  })
                              -
                              -  options.maxBusyTries = options.maxBusyTries || 3
                              -  options.emfileWait = options.emfileWait || 1000
                              -  if (options.glob === false) {
                              -    options.disableGlob = true
                              -  }
                              -  if (options.disableGlob !== true && glob === undefined) {
                              -    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')
                              -  }
                              -  options.disableGlob = options.disableGlob || false
                              -  options.glob = options.glob || defaultGlobOpts
                              -}
                              -
                              -const rimraf = (p, options, cb) => {
                              -  if (typeof options === 'function') {
                              -    cb = options
                              -    options = {}
                              -  }
                              -
                              -  assert(p, 'rimraf: missing path')
                              -  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
                              -  assert.equal(typeof cb, 'function', 'rimraf: callback function required')
                              -  assert(options, 'rimraf: invalid options argument provided')
                              -  assert.equal(typeof options, 'object', 'rimraf: options should be object')
                              -
                              -  defaults(options)
                              -
                              -  let busyTries = 0
                              -  let errState = null
                              -  let n = 0
                              -
                              -  const next = (er) => {
                              -    errState = errState || er
                              -    if (--n === 0)
                              -      cb(errState)
                              -  }
                              -
                              -  const afterGlob = (er, results) => {
                              -    if (er)
                              -      return cb(er)
                              -
                              -    n = results.length
                              -    if (n === 0)
                              -      return cb()
                              -
                              -    results.forEach(p => {
                              -      const CB = (er) => {
                              -        if (er) {
                              -          if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") &&
                              -              busyTries < options.maxBusyTries) {
                              -            busyTries ++
                              -            // try again, with the same exact callback as this one.
                              -            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)
                              -          }
                              -
                              -          // this one won't happen if graceful-fs is used.
                              -          if (er.code === "EMFILE" && timeout < options.emfileWait) {
                              -            return setTimeout(() => rimraf_(p, options, CB), timeout ++)
                              -          }
                              -
                              -          // already gone
                              -          if (er.code === "ENOENT") er = null
                              -        }
                              -
                              -        timeout = 0
                              -        next(er)
                              -      }
                              -      rimraf_(p, options, CB)
                              -    })
                              -  }
                              -
                              -  if (options.disableGlob || !glob.hasMagic(p))
                              -    return afterGlob(null, [p])
                              -
                              -  options.lstat(p, (er, stat) => {
                              -    if (!er)
                              -      return afterGlob(null, [p])
                              -
                              -    glob(p, options.glob, afterGlob)
                              -  })
                              -
                              -}
                              -
                              -// Two possible strategies.
                              -// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
                              -// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
                              -//
                              -// Both result in an extra syscall when you guess wrong.  However, there
                              -// are likely far more normal files in the world than directories.  This
                              -// is based on the assumption that a the average number of files per
                              -// directory is >= 1.
                              -//
                              -// If anyone ever complains about this, then I guess the strategy could
                              -// be made configurable somehow.  But until then, YAGNI.
                              -const rimraf_ = (p, options, cb) => {
                              -  assert(p)
                              -  assert(options)
                              -  assert(typeof cb === 'function')
                              -
                              -  // sunos lets the root user unlink directories, which is... weird.
                              -  // so we have to lstat here and make sure it's not a dir.
                              -  options.lstat(p, (er, st) => {
                              -    if (er && er.code === "ENOENT")
                              -      return cb(null)
                              -
                              -    // Windows can EPERM on stat.  Life is suffering.
                              -    if (er && er.code === "EPERM" && isWindows)
                              -      fixWinEPERM(p, options, er, cb)
                              -
                              -    if (st && st.isDirectory())
                              -      return rmdir(p, options, er, cb)
                              -
                              -    options.unlink(p, er => {
                              -      if (er) {
                              -        if (er.code === "ENOENT")
                              -          return cb(null)
                              -        if (er.code === "EPERM")
                              -          return (isWindows)
                              -            ? fixWinEPERM(p, options, er, cb)
                              -            : rmdir(p, options, er, cb)
                              -        if (er.code === "EISDIR")
                              -          return rmdir(p, options, er, cb)
                              -      }
                              -      return cb(er)
                              -    })
                              -  })
                              -}
                              -
                              -const fixWinEPERM = (p, options, er, cb) => {
                              -  assert(p)
                              -  assert(options)
                              -  assert(typeof cb === 'function')
                              -
                              -  options.chmod(p, 0o666, er2 => {
                              -    if (er2)
                              -      cb(er2.code === "ENOENT" ? null : er)
                              -    else
                              -      options.stat(p, (er3, stats) => {
                              -        if (er3)
                              -          cb(er3.code === "ENOENT" ? null : er)
                              -        else if (stats.isDirectory())
                              -          rmdir(p, options, er, cb)
                              -        else
                              -          options.unlink(p, cb)
                              -      })
                              -  })
                              -}
                              -
                              -const fixWinEPERMSync = (p, options, er) => {
                              -  assert(p)
                              -  assert(options)
                              -
                              -  try {
                              -    options.chmodSync(p, 0o666)
                              -  } catch (er2) {
                              -    if (er2.code === "ENOENT")
                              -      return
                              -    else
                              -      throw er
                              -  }
                              -
                              -  let stats
                              -  try {
                              -    stats = options.statSync(p)
                              -  } catch (er3) {
                              -    if (er3.code === "ENOENT")
                              -      return
                              -    else
                              -      throw er
                              -  }
                              -
                              -  if (stats.isDirectory())
                              -    rmdirSync(p, options, er)
                              -  else
                              -    options.unlinkSync(p)
                              -}
                              -
                              -const rmdir = (p, options, originalEr, cb) => {
                              -  assert(p)
                              -  assert(options)
                              -  assert(typeof cb === 'function')
                              -
                              -  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
                              -  // if we guessed wrong, and it's not a directory, then
                              -  // raise the original error.
                              -  options.rmdir(p, er => {
                              -    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
                              -      rmkids(p, options, cb)
                              -    else if (er && er.code === "ENOTDIR")
                              -      cb(originalEr)
                              -    else
                              -      cb(er)
                              -  })
                              -}
                              -
                              -const rmkids = (p, options, cb) => {
                              -  assert(p)
                              -  assert(options)
                              -  assert(typeof cb === 'function')
                              -
                              -  options.readdir(p, (er, files) => {
                              -    if (er)
                              -      return cb(er)
                              -    let n = files.length
                              -    if (n === 0)
                              -      return options.rmdir(p, cb)
                              -    let errState
                              -    files.forEach(f => {
                              -      rimraf(path.join(p, f), options, er => {
                              -        if (errState)
                              -          return
                              -        if (er)
                              -          return cb(errState = er)
                              -        if (--n === 0)
                              -          options.rmdir(p, cb)
                              -      })
                              -    })
                              -  })
                              -}
                              -
                              -// this looks simpler, and is strictly *faster*, but will
                              -// tie up the JavaScript thread and fail on excessively
                              -// deep directory trees.
                              -const rimrafSync = (p, options) => {
                              -  options = options || {}
                              -  defaults(options)
                              -
                              -  assert(p, 'rimraf: missing path')
                              -  assert.equal(typeof p, 'string', 'rimraf: path should be a string')
                              -  assert(options, 'rimraf: missing options')
                              -  assert.equal(typeof options, 'object', 'rimraf: options should be object')
                              -
                              -  let results
                              -
                              -  if (options.disableGlob || !glob.hasMagic(p)) {
                              -    results = [p]
                              -  } else {
                              -    try {
                              -      options.lstatSync(p)
                              -      results = [p]
                              -    } catch (er) {
                              -      results = glob.sync(p, options.glob)
                              -    }
                              -  }
                              -
                              -  if (!results.length)
                              -    return
                              -
                              -  for (let i = 0; i < results.length; i++) {
                              -    const p = results[i]
                              -
                              -    let st
                              -    try {
                              -      st = options.lstatSync(p)
                              -    } catch (er) {
                              -      if (er.code === "ENOENT")
                              -        return
                              -
                              -      // Windows can EPERM on stat.  Life is suffering.
                              -      if (er.code === "EPERM" && isWindows)
                              -        fixWinEPERMSync(p, options, er)
                              -    }
                              -
                              -    try {
                              -      // sunos lets the root user unlink directories, which is... weird.
                              -      if (st && st.isDirectory())
                              -        rmdirSync(p, options, null)
                              -      else
                              -        options.unlinkSync(p)
                              -    } catch (er) {
                              -      if (er.code === "ENOENT")
                              -        return
                              -      if (er.code === "EPERM")
                              -        return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
                              -      if (er.code !== "EISDIR")
                              -        throw er
                              -
                              -      rmdirSync(p, options, er)
                              -    }
                              -  }
                              -}
                              -
                              -const rmdirSync = (p, options, originalEr) => {
                              -  assert(p)
                              -  assert(options)
                              -
                              -  try {
                              -    options.rmdirSync(p)
                              -  } catch (er) {
                              -    if (er.code === "ENOENT")
                              -      return
                              -    if (er.code === "ENOTDIR")
                              -      throw originalEr
                              -    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
                              -      rmkidsSync(p, options)
                              -  }
                              -}
                              -
                              -const rmkidsSync = (p, options) => {
                              -  assert(p)
                              -  assert(options)
                              -  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))
                              -
                              -  // We only end up here once we got ENOTEMPTY at least once, and
                              -  // at this point, we are guaranteed to have removed all the kids.
                              -  // So, we know that it won't be ENOENT or ENOTDIR or anything else.
                              -  // try really hard to delete stuff on windows, because it has a
                              -  // PROFOUNDLY annoying habit of not closing handles promptly when
                              -  // files are deleted, resulting in spurious ENOTEMPTY errors.
                              -  const retries = isWindows ? 100 : 1
                              -  let i = 0
                              -  do {
                              -    let threw = true
                              -    try {
                              -      const ret = options.rmdirSync(p, options)
                              -      threw = false
                              -      return ret
                              -    } finally {
                              -      if (++i < retries && threw)
                              -        continue
                              -    }
                              -  } while (true)
                              -}
                              -
                              -module.exports = rimraf
                              -rimraf.sync = rimrafSync
                              diff --git a/deps/npm/node_modules/socks-proxy-agent/dist/index.js b/deps/npm/node_modules/socks-proxy-agent/dist/index.js
                              deleted file mode 100644
                              index 55b598b7f5ca73..00000000000000
                              --- a/deps/npm/node_modules/socks-proxy-agent/dist/index.js
                              +++ /dev/null
                              @@ -1,197 +0,0 @@
                              -"use strict";
                              -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
                              -    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
                              -    return new (P || (P = Promise))(function (resolve, reject) {
                              -        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
                              -        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
                              -        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
                              -        step((generator = generator.apply(thisArg, _arguments || [])).next());
                              -    });
                              -};
                              -var __importDefault = (this && this.__importDefault) || function (mod) {
                              -    return (mod && mod.__esModule) ? mod : { "default": mod };
                              -};
                              -Object.defineProperty(exports, "__esModule", { value: true });
                              -exports.SocksProxyAgent = void 0;
                              -const socks_1 = require("socks");
                              -const agent_base_1 = require("agent-base");
                              -const debug_1 = __importDefault(require("debug"));
                              -const dns_1 = __importDefault(require("dns"));
                              -const tls_1 = __importDefault(require("tls"));
                              -const debug = (0, debug_1.default)('socks-proxy-agent');
                              -function parseSocksProxy(opts) {
                              -    var _a;
                              -    let port = 0;
                              -    let lookup = false;
                              -    let type = 5;
                              -    const host = opts.hostname;
                              -    if (host == null) {
                              -        throw new TypeError('No "host"');
                              -    }
                              -    if (typeof opts.port === 'number') {
                              -        port = opts.port;
                              -    }
                              -    else if (typeof opts.port === 'string') {
                              -        port = parseInt(opts.port, 10);
                              -    }
                              -    // From RFC 1928, Section 3: https://tools.ietf.org/html/rfc1928#section-3
                              -    // "The SOCKS service is conventionally located on TCP port 1080"
                              -    if (port == null) {
                              -        port = 1080;
                              -    }
                              -    // figure out if we want socks v4 or v5, based on the "protocol" used.
                              -    // Defaults to 5.
                              -    if (opts.protocol != null) {
                              -        switch (opts.protocol.replace(':', '')) {
                              -            case 'socks4':
                              -                lookup = true;
                              -            // pass through
                              -            case 'socks4a':
                              -                type = 4;
                              -                break;
                              -            case 'socks5':
                              -                lookup = true;
                              -            // pass through
                              -            case 'socks': // no version specified, default to 5h
                              -            case 'socks5h':
                              -                type = 5;
                              -                break;
                              -            default:
                              -                throw new TypeError(`A "socks" protocol must be specified! Got: ${String(opts.protocol)}`);
                              -        }
                              -    }
                              -    if (typeof opts.type !== 'undefined') {
                              -        if (opts.type === 4 || opts.type === 5) {
                              -            type = opts.type;
                              -        }
                              -        else {
                              -            throw new TypeError(`"type" must be 4 or 5, got: ${String(opts.type)}`);
                              -        }
                              -    }
                              -    const proxy = {
                              -        host,
                              -        port,
                              -        type
                              -    };
                              -    let userId = (_a = opts.userId) !== null && _a !== void 0 ? _a : opts.username;
                              -    let password = opts.password;
                              -    if (opts.auth != null) {
                              -        const auth = opts.auth.split(':');
                              -        userId = auth[0];
                              -        password = auth[1];
                              -    }
                              -    if (userId != null) {
                              -        Object.defineProperty(proxy, 'userId', {
                              -            value: userId,
                              -            enumerable: false
                              -        });
                              -    }
                              -    if (password != null) {
                              -        Object.defineProperty(proxy, 'password', {
                              -            value: password,
                              -            enumerable: false
                              -        });
                              -    }
                              -    return { lookup, proxy };
                              -}
                              -const normalizeProxyOptions = (input) => {
                              -    let proxyOptions;
                              -    if (typeof input === 'string') {
                              -        proxyOptions = new URL(input);
                              -    }
                              -    else {
                              -        proxyOptions = input;
                              -    }
                              -    if (proxyOptions == null) {
                              -        throw new TypeError('a SOCKS proxy server `host` and `port` must be specified!');
                              -    }
                              -    return proxyOptions;
                              -};
                              -class SocksProxyAgent extends agent_base_1.Agent {
                              -    constructor(input, options) {
                              -        var _a;
                              -        const proxyOptions = normalizeProxyOptions(input);
                              -        super(proxyOptions);
                              -        const parsedProxy = parseSocksProxy(proxyOptions);
                              -        this.shouldLookup = parsedProxy.lookup;
                              -        this.proxy = parsedProxy.proxy;
                              -        this.tlsConnectionOptions = proxyOptions.tls != null ? proxyOptions.tls : {};
                              -        this.timeout = (_a = options === null || options === void 0 ? void 0 : options.timeout) !== null && _a !== void 0 ? _a : null;
                              -    }
                              -    /**
                              -     * Initiates a SOCKS connection to the specified SOCKS proxy server,
                              -     * which in turn connects to the specified remote host and port.
                              -     *
                              -     * @api protected
                              -     */
                              -    callback(req, opts) {
                              -        var _a;
                              -        return __awaiter(this, void 0, void 0, function* () {
                              -            const { shouldLookup, proxy, timeout } = this;
                              -            let { host, port, lookup: lookupCallback } = opts;
                              -            if (host == null) {
                              -                throw new Error('No `host` defined!');
                              -            }
                              -            if (shouldLookup) {
                              -                // Client-side DNS resolution for "4" and "5" socks proxy versions.
                              -                host = yield new Promise((resolve, reject) => {
                              -                    // Use the request's custom lookup, if one was configured:
                              -                    const lookupFn = lookupCallback !== null && lookupCallback !== void 0 ? lookupCallback : dns_1.default.lookup;
                              -                    lookupFn(host, {}, (err, res) => {
                              -                        if (err) {
                              -                            reject(err);
                              -                        }
                              -                        else {
                              -                            resolve(res);
                              -                        }
                              -                    });
                              -                });
                              -            }
                              -            const socksOpts = {
                              -                proxy,
                              -                destination: { host, port },
                              -                command: 'connect',
                              -                timeout: timeout !== null && timeout !== void 0 ? timeout : undefined
                              -            };
                              -            const cleanup = (tlsSocket) => {
                              -                req.destroy();
                              -                socket.destroy();
                              -                if (tlsSocket)
                              -                    tlsSocket.destroy();
                              -            };
                              -            debug('Creating socks proxy connection: %o', socksOpts);
                              -            const { socket } = yield socks_1.SocksClient.createConnection(socksOpts);
                              -            debug('Successfully created socks proxy connection');
                              -            if (timeout !== null) {
                              -                socket.setTimeout(timeout);
                              -                socket.on('timeout', () => cleanup());
                              -            }
                              -            if (opts.secureEndpoint) {
                              -                // The proxy is connecting to a TLS server, so upgrade
                              -                // this socket connection to a TLS connection.
                              -                debug('Upgrading socket connection to TLS');
                              -                const servername = (_a = opts.servername) !== null && _a !== void 0 ? _a : opts.host;
                              -                const tlsSocket = tls_1.default.connect(Object.assign(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket,
                              -                    servername }), this.tlsConnectionOptions));
                              -                tlsSocket.once('error', (error) => {
                              -                    debug('socket TLS error', error.message);
                              -                    cleanup(tlsSocket);
                              -                });
                              -                return tlsSocket;
                              -            }
                              -            return socket;
                              -        });
                              -    }
                              -}
                              -exports.SocksProxyAgent = SocksProxyAgent;
                              -function omit(obj, ...keys) {
                              -    const ret = {};
                              -    let key;
                              -    for (key in obj) {
                              -        if (!keys.includes(key)) {
                              -            ret[key] = obj[key];
                              -        }
                              -    }
                              -    return ret;
                              -}
                              -//# sourceMappingURL=index.js.map
                              \ No newline at end of file
                              diff --git a/deps/npm/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/socks-proxy-agent/package.json
                              deleted file mode 100644
                              index aa2999969c1743..00000000000000
                              --- a/deps/npm/node_modules/socks-proxy-agent/package.json
                              +++ /dev/null
                              @@ -1,181 +0,0 @@
                              -{
                              -  "name": "socks-proxy-agent",
                              -  "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
                              -  "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
                              -  "version": "7.0.0",
                              -  "main": "dist/index.js",
                              -  "author": {
                              -    "email": "nathan@tootallnate.net",
                              -    "name": "Nathan Rajlich",
                              -    "url": "http://n8.io/"
                              -  },
                              -  "contributors": [
                              -    {
                              -      "name": "Kiko Beats",
                              -      "email": "josefrancisco.verdu@gmail.com"
                              -    },
                              -    {
                              -      "name": "Josh Glazebrook",
                              -      "email": "josh@joshglazebrook.com"
                              -    },
                              -    {
                              -      "name": "talmobi",
                              -      "email": "talmobi@users.noreply.github.com"
                              -    },
                              -    {
                              -      "name": "Indospace.io",
                              -      "email": "justin@indospace.io"
                              -    },
                              -    {
                              -      "name": "Kilian von Pflugk",
                              -      "email": "github@jumoog.io"
                              -    },
                              -    {
                              -      "name": "Kyle",
                              -      "email": "admin@hk1229.cn"
                              -    },
                              -    {
                              -      "name": "Matheus Fernandes",
                              -      "email": "matheus.frndes@gmail.com"
                              -    },
                              -    {
                              -      "name": "Ricky Miller",
                              -      "email": "richardkazuomiller@gmail.com"
                              -    },
                              -    {
                              -      "name": "Shantanu Sharma",
                              -      "email": "shantanu34@outlook.com"
                              -    },
                              -    {
                              -      "name": "Tim Perry",
                              -      "email": "pimterry@gmail.com"
                              -    },
                              -    {
                              -      "name": "Vadim Baryshev",
                              -      "email": "vadimbaryshev@gmail.com"
                              -    },
                              -    {
                              -      "name": "jigu",
                              -      "email": "luo1257857309@gmail.com"
                              -    },
                              -    {
                              -      "name": "Alba Mendez",
                              -      "email": "me@jmendeth.com"
                              -    },
                              -    {
                              -      "name": "Дмитрий Гуденков",
                              -      "email": "Dimangud@rambler.ru"
                              -    },
                              -    {
                              -      "name": "Andrei Bitca",
                              -      "email": "63638922+andrei-bitca-dc@users.noreply.github.com"
                              -    },
                              -    {
                              -      "name": "Andrew Casey",
                              -      "email": "amcasey@users.noreply.github.com"
                              -    },
                              -    {
                              -      "name": "Brandon Ros",
                              -      "email": "brandonros1@gmail.com"
                              -    },
                              -    {
                              -      "name": "Dang Duy Thanh",
                              -      "email": "thanhdd.it@gmail.com"
                              -    },
                              -    {
                              -      "name": "Dimitar Nestorov",
                              -      "email": "8790386+dimitarnestorov@users.noreply.github.com"
                              -    }
                              -  ],
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
                              -  },
                              -  "bugs": {
                              -    "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
                              -  },
                              -  "keywords": [
                              -    "agent",
                              -    "http",
                              -    "https",
                              -    "proxy",
                              -    "socks",
                              -    "socks4",
                              -    "socks4a",
                              -    "socks5",
                              -    "socks5h"
                              -  ],
                              -  "dependencies": {
                              -    "agent-base": "^6.0.2",
                              -    "debug": "^4.3.3",
                              -    "socks": "^2.6.2"
                              -  },
                              -  "devDependencies": {
                              -    "@commitlint/cli": "latest",
                              -    "@commitlint/config-conventional": "latest",
                              -    "@types/debug": "latest",
                              -    "@types/node": "latest",
                              -    "cacheable-lookup": "latest",
                              -    "conventional-github-releaser": "latest",
                              -    "dns2": "latest",
                              -    "finepack": "latest",
                              -    "git-authors-cli": "latest",
                              -    "mocha": "9",
                              -    "nano-staged": "latest",
                              -    "npm-check-updates": "latest",
                              -    "prettier-standard": "latest",
                              -    "raw-body": "latest",
                              -    "rimraf": "latest",
                              -    "simple-git-hooks": "latest",
                              -    "socksv5": "github:TooTallNate/socksv5#fix/dstSock-close-event",
                              -    "standard": "latest",
                              -    "standard-markdown": "latest",
                              -    "standard-version": "latest",
                              -    "ts-standard": "latest",
                              -    "typescript": "latest"
                              -  },
                              -  "engines": {
                              -    "node": ">= 10"
                              -  },
                              -  "files": [
                              -    "dist"
                              -  ],
                              -  "scripts": {
                              -    "build": "tsc",
                              -    "clean": "rimraf node_modules",
                              -    "contributors": "(git-authors-cli && finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true",
                              -    "lint": "ts-standard",
                              -    "postrelease": "npm run release:tags && npm run release:github && (ci-publish || npm publish --access=public)",
                              -    "prebuild": "rimraf dist",
                              -    "prepublishOnly": "npm run build",
                              -    "prerelease": "npm run update:check && npm run contributors",
                              -    "release": "standard-version -a",
                              -    "release:github": "conventional-github-releaser -p angular",
                              -    "release:tags": "git push --follow-tags origin HEAD:master",
                              -    "test": "mocha --reporter spec",
                              -    "update": "ncu -u",
                              -    "update:check": "ncu -- --error-level 2"
                              -  },
                              -  "license": "MIT",
                              -  "commitlint": {
                              -    "extends": [
                              -      "@commitlint/config-conventional"
                              -    ]
                              -  },
                              -  "nano-staged": {
                              -    "*.js": [
                              -      "prettier-standard"
                              -    ],
                              -    "*.md": [
                              -      "standard-markdown"
                              -    ],
                              -    "package.json": [
                              -      "finepack"
                              -    ]
                              -  },
                              -  "simple-git-hooks": {
                              -    "commit-msg": "npx commitlint --edit",
                              -    "pre-commit": "npx nano-staged"
                              -  },
                              -  "typings": "dist/index.d.ts"
                              -}
                              diff --git a/deps/npm/node_modules/spdx-license-ids/deprecated.json b/deps/npm/node_modules/spdx-license-ids/deprecated.json
                              index 278531e40c613d..a877dc3efd8bd2 100644
                              --- a/deps/npm/node_modules/spdx-license-ids/deprecated.json
                              +++ b/deps/npm/node_modules/spdx-license-ids/deprecated.json
                              @@ -7,18 +7,24 @@
                               	"GFDL-1.2",
                               	"GFDL-1.3",
                               	"GPL-1.0",
                              +	"GPL-1.0+",
                               	"GPL-2.0",
                              +	"GPL-2.0+",
                               	"GPL-2.0-with-GCC-exception",
                               	"GPL-2.0-with-autoconf-exception",
                               	"GPL-2.0-with-bison-exception",
                               	"GPL-2.0-with-classpath-exception",
                               	"GPL-2.0-with-font-exception",
                               	"GPL-3.0",
                              +	"GPL-3.0+",
                               	"GPL-3.0-with-GCC-exception",
                               	"GPL-3.0-with-autoconf-exception",
                               	"LGPL-2.0",
                              +	"LGPL-2.0+",
                               	"LGPL-2.1",
                              +	"LGPL-2.1+",
                               	"LGPL-3.0",
                              +	"LGPL-3.0+",
                               	"Nunit",
                               	"StandardML-NJ",
                               	"bzip2-1.0.5",
                              diff --git a/deps/npm/node_modules/spdx-license-ids/index.json b/deps/npm/node_modules/spdx-license-ids/index.json
                              index 04c03126d98eb8..a7b98b24b6273e 100644
                              --- a/deps/npm/node_modules/spdx-license-ids/index.json
                              +++ b/deps/npm/node_modules/spdx-license-ids/index.json
                              @@ -22,10 +22,13 @@
                               	"APSL-1.1",
                               	"APSL-1.2",
                               	"APSL-2.0",
                              +	"ASWF-Digital-Assets-1.0",
                              +	"ASWF-Digital-Assets-1.1",
                               	"Abstyles",
                               	"AdaCore-doc",
                               	"Adobe-2006",
                               	"Adobe-Glyph",
                              +	"Adobe-Utopia",
                               	"Afmparse",
                               	"Aladdin",
                               	"Apache-1.0",
                              @@ -44,6 +47,7 @@
                               	"BSD-3-Clause",
                               	"BSD-3-Clause-Attribution",
                               	"BSD-3-Clause-Clear",
                              +	"BSD-3-Clause-HP",
                               	"BSD-3-Clause-LBNL",
                               	"BSD-3-Clause-Modification",
                               	"BSD-3-Clause-No-Military-License",
                              @@ -51,6 +55,8 @@
                               	"BSD-3-Clause-No-Nuclear-License-2014",
                               	"BSD-3-Clause-No-Nuclear-Warranty",
                               	"BSD-3-Clause-Open-MPI",
                              +	"BSD-3-Clause-Sun",
                              +	"BSD-3-Clause-flex",
                               	"BSD-4-Clause",
                               	"BSD-4-Clause-Shortened",
                               	"BSD-4-Clause-UC",
                              @@ -58,8 +64,10 @@
                               	"BSD-4.3TAHOE",
                               	"BSD-Advertising-Acknowledgement",
                               	"BSD-Attribution-HPND-disclaimer",
                              +	"BSD-Inferno-Nettverk",
                               	"BSD-Protection",
                               	"BSD-Source-Code",
                              +	"BSD-Systemics",
                               	"BSL-1.0",
                               	"BUSL-1.1",
                               	"Baekmuk",
                              @@ -71,6 +79,7 @@
                               	"Bitstream-Charter",
                               	"Bitstream-Vera",
                               	"BlueOak-1.0.0",
                              +	"Boehm-GC",
                               	"Borceux",
                               	"Brian-Gladman-3-Clause",
                               	"C-UDA-1.0",
                              @@ -125,6 +134,7 @@
                               	"CC-BY-SA-3.0",
                               	"CC-BY-SA-3.0-AT",
                               	"CC-BY-SA-3.0-DE",
                              +	"CC-BY-SA-3.0-IGO",
                               	"CC-BY-SA-4.0",
                               	"CC-PDDC",
                               	"CC0-1.0",
                              @@ -161,11 +171,13 @@
                               	"Community-Spec-1.0",
                               	"Condor-1.1",
                               	"Cornell-Lossless-JPEG",
                              +	"Cronyx",
                               	"Crossword",
                               	"CrystalStacker",
                               	"Cube",
                               	"D-FSL-1.0",
                               	"DL-DE-BY-2.0",
                              +	"DL-DE-ZERO-2.0",
                               	"DOC",
                               	"DRL-1.0",
                               	"DSDP",
                              @@ -185,6 +197,7 @@
                               	"Entessa",
                               	"ErlPL-1.1",
                               	"Eurosym",
                              +	"FBM",
                               	"FDK-AAC",
                               	"FSFAP",
                               	"FSFUL",
                              @@ -192,9 +205,11 @@
                               	"FSFULLRWD",
                               	"FTL",
                               	"Fair",
                              +	"Ferguson-Twofish",
                               	"Frameworx-1.0",
                               	"FreeBSD-DOC",
                               	"FreeImage",
                              +	"Furuseth",
                               	"GD",
                               	"GFDL-1.1-invariants-only",
                               	"GFDL-1.1-invariants-or-later",
                              @@ -227,9 +242,17 @@
                               	"Glulxe",
                               	"Graphics-Gems",
                               	"HP-1986",
                              +	"HP-1989",
                               	"HPND",
                              +	"HPND-DEC",
                               	"HPND-Markus-Kuhn",
                              +	"HPND-Pbmplus",
                              +	"HPND-UC",
                              +	"HPND-doc",
                              +	"HPND-doc-sell",
                               	"HPND-export-US",
                              +	"HPND-export-US-modify",
                              +	"HPND-sell-regexpr",
                               	"HPND-sell-variant",
                               	"HPND-sell-variant-MIT-disclaimer",
                               	"HTMLTIDY",
                              @@ -246,6 +269,7 @@
                               	"ImageMagick",
                               	"Imlib2",
                               	"Info-ZIP",
                              +	"Inner-Net-2.0",
                               	"Intel",
                               	"Intel-ACPI",
                               	"Interbase-1.0",
                              @@ -254,6 +278,7 @@
                               	"JSON",
                               	"Jam",
                               	"JasPer-2.0",
                              +	"Kastrup",
                               	"Kazlib",
                               	"Knuth-CTAN",
                               	"LAL-1.2",
                              @@ -276,23 +301,32 @@
                               	"LZMA-SDK-9.11-to-9.20",
                               	"LZMA-SDK-9.22",
                               	"Latex2e",
                              +	"Latex2e-translated-notice",
                               	"Leptonica",
                               	"LiLiQ-P-1.1",
                               	"LiLiQ-R-1.1",
                               	"LiLiQ-Rplus-1.1",
                               	"Libpng",
                               	"Linux-OpenIB",
                              +	"Linux-man-pages-1-para",
                               	"Linux-man-pages-copyleft",
                              +	"Linux-man-pages-copyleft-2-para",
                              +	"Linux-man-pages-copyleft-var",
                              +	"Lucida-Bitmap-Fonts",
                               	"MIT",
                               	"MIT-0",
                               	"MIT-CMU",
                              +	"MIT-Festival",
                               	"MIT-Modern-Variant",
                               	"MIT-Wu",
                               	"MIT-advertising",
                               	"MIT-enna",
                               	"MIT-feh",
                               	"MIT-open-group",
                              +	"MIT-testregex",
                               	"MITNFA",
                              +	"MMIXware",
                              +	"MPEG-SSG",
                               	"MPL-1.0",
                               	"MPL-1.1",
                               	"MPL-2.0",
                              @@ -303,6 +337,7 @@
                               	"MTLL",
                               	"MakeIndex",
                               	"Martin-Birgmeier",
                              +	"McPhee-slideshow",
                               	"Minpack",
                               	"MirOS",
                               	"Motosoto",
                              @@ -319,6 +354,7 @@
                               	"NICTA-1.0",
                               	"NIST-PD",
                               	"NIST-PD-fallback",
                              +	"NIST-Software",
                               	"NLOD-1.0",
                               	"NLOD-2.0",
                               	"NLPL",
                              @@ -370,8 +406,10 @@
                               	"OLDAP-2.6",
                               	"OLDAP-2.7",
                               	"OLDAP-2.8",
                              +	"OLFL-1.3",
                               	"OML",
                               	"OPL-1.0",
                              +	"OPL-UK-3.0",
                               	"OPUBL-1.0",
                               	"OSET-PL-2.1",
                               	"OSL-1.0",
                              @@ -381,6 +419,7 @@
                               	"OSL-3.0",
                               	"OpenPBS-2.3",
                               	"OpenSSL",
                              +	"PADL",
                               	"PDDL-1.0",
                               	"PHP-3.0",
                               	"PHP-3.01",
                              @@ -409,10 +448,13 @@
                               	"SGI-B-1.0",
                               	"SGI-B-1.1",
                               	"SGI-B-2.0",
                              +	"SGI-OpenGL",
                              +	"SGP4",
                               	"SHL-0.5",
                               	"SHL-0.51",
                               	"SISSL",
                               	"SISSL-1.2",
                              +	"SL",
                               	"SMLNJ",
                               	"SMPPL",
                               	"SNIA",
                              @@ -427,6 +469,7 @@
                               	"Sendmail-8.23",
                               	"SimPL-2.0",
                               	"Sleepycat",
                              +	"Soundex",
                               	"Spencer-86",
                               	"Spencer-94",
                               	"Spencer-99",
                              @@ -442,14 +485,18 @@
                               	"TPDL",
                               	"TPL-1.0",
                               	"TTWL",
                              +	"TTYP0",
                               	"TU-Berlin-1.0",
                               	"TU-Berlin-2.0",
                              +	"TermReadKey",
                               	"UCAR",
                               	"UCL-1.0",
                               	"UPL-1.0",
                              +	"URT-RLE",
                               	"Unicode-DFS-2015",
                               	"Unicode-DFS-2016",
                               	"Unicode-TOU",
                              +	"UnixCrypt",
                               	"Unlicense",
                               	"VOSTROM",
                               	"VSL-1.0",
                              @@ -459,12 +506,15 @@
                               	"W3C-20150513",
                               	"WTFPL",
                               	"Watcom-1.0",
                              +	"Widget-Workshop",
                               	"Wsuipa",
                               	"X11",
                               	"X11-distribute-modifications-variant",
                               	"XFree86-1.1",
                               	"XSkat",
                              +	"Xdebug-1.03",
                               	"Xerox",
                              +	"Xfig",
                               	"Xnet",
                               	"YPL-1.0",
                               	"YPL-1.1",
                              @@ -472,20 +522,24 @@
                               	"ZPL-2.0",
                               	"ZPL-2.1",
                               	"Zed",
                              +	"Zeeff",
                               	"Zend-2.0",
                               	"Zimbra-1.3",
                               	"Zimbra-1.4",
                               	"Zlib",
                               	"blessing",
                               	"bzip2-1.0.6",
                              +	"check-cvs",
                               	"checkmk",
                               	"copyleft-next-0.3.0",
                               	"copyleft-next-0.3.1",
                               	"curl",
                               	"diffmark",
                              +	"dtoa",
                               	"dvipdfm",
                               	"eGenix",
                               	"etalab-2.0",
                              +	"fwlw",
                               	"gSOAP-1.3b",
                               	"gnuplot",
                               	"iMatix",
                              @@ -493,12 +547,20 @@
                               	"libselinux-1.0",
                               	"libtiff",
                               	"libutil-David-Nugent",
                              +	"lsof",
                              +	"magaz",
                              +	"metamail",
                               	"mpi-permissive",
                               	"mpich2",
                               	"mplus",
                              +	"pnmstitch",
                               	"psfrag",
                               	"psutils",
                              +	"python-ldap",
                               	"snprintf",
                              +	"ssh-keyscan",
                              +	"swrule",
                              +	"ulem",
                               	"w3m",
                               	"xinetd",
                               	"xlock",
                              diff --git a/deps/npm/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/spdx-license-ids/package.json
                              index ea060776d9cf76..196b02705769a9 100644
                              --- a/deps/npm/node_modules/spdx-license-ids/package.json
                              +++ b/deps/npm/node_modules/spdx-license-ids/package.json
                              @@ -1,6 +1,6 @@
                               {
                               	"name": "spdx-license-ids",
                              -	"version": "3.0.13",
                              +	"version": "3.0.16",
                               	"description": "A list of SPDX license identifiers",
                               	"repository": "jslicense/spdx-license-ids",
                               	"author": "Shinnosuke Watanabe (https://github.com/shinnn)",
                              @@ -28,10 +28,10 @@
                               	],
                               	"devDependencies": {
                               		"@shinnn/eslint-config": "^7.0.0",
                              -		"eslint": "^8.2.0",
                              +		"eslint": "^8.49.0",
                               		"eslint-formatter-codeframe": "^7.32.1",
                               		"rmfr": "^2.0.0",
                              -		"tape": "^5.3.1"
                              +		"tape": "^5.6.6"
                               	},
                               	"eslintConfig": {
                               		"extends": "@shinnn"
                              diff --git a/deps/npm/node_modules/wrappy/LICENSE b/deps/npm/node_modules/wrappy/LICENSE
                              deleted file mode 100644
                              index 19129e315fe593..00000000000000
                              --- a/deps/npm/node_modules/wrappy/LICENSE
                              +++ /dev/null
                              @@ -1,15 +0,0 @@
                              -The ISC License
                              -
                              -Copyright (c) Isaac Z. Schlueter and Contributors
                              -
                              -Permission to use, copy, modify, and/or distribute this software for any
                              -purpose with or without fee is hereby granted, provided that the above
                              -copyright notice and this permission notice appear in all copies.
                              -
                              -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                              -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                              -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                              -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                              -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                              -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
                              -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                              diff --git a/deps/npm/node_modules/wrappy/package.json b/deps/npm/node_modules/wrappy/package.json
                              deleted file mode 100644
                              index 130752046714d6..00000000000000
                              --- a/deps/npm/node_modules/wrappy/package.json
                              +++ /dev/null
                              @@ -1,29 +0,0 @@
                              -{
                              -  "name": "wrappy",
                              -  "version": "1.0.2",
                              -  "description": "Callback wrapping utility",
                              -  "main": "wrappy.js",
                              -  "files": [
                              -    "wrappy.js"
                              -  ],
                              -  "directories": {
                              -    "test": "test"
                              -  },
                              -  "dependencies": {},
                              -  "devDependencies": {
                              -    "tap": "^2.3.1"
                              -  },
                              -  "scripts": {
                              -    "test": "tap --coverage test/*.js"
                              -  },
                              -  "repository": {
                              -    "type": "git",
                              -    "url": "https://github.com/npm/wrappy"
                              -  },
                              -  "author": "Isaac Z. Schlueter  (http://blog.izs.me/)",
                              -  "license": "ISC",
                              -  "bugs": {
                              -    "url": "https://github.com/npm/wrappy/issues"
                              -  },
                              -  "homepage": "https://github.com/npm/wrappy"
                              -}
                              diff --git a/deps/npm/node_modules/wrappy/wrappy.js b/deps/npm/node_modules/wrappy/wrappy.js
                              deleted file mode 100644
                              index bb7e7d6fcf70fd..00000000000000
                              --- a/deps/npm/node_modules/wrappy/wrappy.js
                              +++ /dev/null
                              @@ -1,33 +0,0 @@
                              -// Returns a wrapper function that returns a wrapped callback
                              -// The wrapper function should do some stuff, and return a
                              -// presumably different callback function.
                              -// This makes sure that own properties are retained, so that
                              -// decorations and such are not lost along the way.
                              -module.exports = wrappy
                              -function wrappy (fn, cb) {
                              -  if (fn && cb) return wrappy(fn)(cb)
                              -
                              -  if (typeof fn !== 'function')
                              -    throw new TypeError('need wrapper function')
                              -
                              -  Object.keys(fn).forEach(function (k) {
                              -    wrapper[k] = fn[k]
                              -  })
                              -
                              -  return wrapper
                              -
                              -  function wrapper() {
                              -    var args = new Array(arguments.length)
                              -    for (var i = 0; i < args.length; i++) {
                              -      args[i] = arguments[i]
                              -    }
                              -    var ret = fn.apply(this, args)
                              -    var cb = args[args.length-1]
                              -    if (typeof ret === 'function' && ret !== cb) {
                              -      Object.keys(cb).forEach(function (k) {
                              -        ret[k] = cb[k]
                              -      })
                              -    }
                              -    return ret
                              -  }
                              -}
                              diff --git a/deps/npm/package.json b/deps/npm/package.json
                              index 3246377f0cb725..185b5090cb9a2f 100644
                              --- a/deps/npm/package.json
                              +++ b/deps/npm/package.json
                              @@ -1,5 +1,5 @@
                               {
                              -  "version": "10.2.0",
                              +  "version": "10.2.3",
                                 "name": "npm",
                                 "description": "a package manager for JavaScript",
                                 "workspaces": [
                              @@ -52,19 +52,19 @@
                                 },
                                 "dependencies": {
                                   "@isaacs/string-locale-compare": "^1.1.0",
                              -    "@npmcli/arborist": "^7.2.0",
                              -    "@npmcli/config": "^8.0.0",
                              +    "@npmcli/arborist": "^7.2.1",
                              +    "@npmcli/config": "^8.0.1",
                                   "@npmcli/fs": "^3.1.0",
                                   "@npmcli/map-workspaces": "^3.0.4",
                                   "@npmcli/package-json": "^5.0.0",
                                   "@npmcli/promise-spawn": "^7.0.0",
                              -    "@npmcli/run-script": "^7.0.1",
                              +    "@npmcli/run-script": "^7.0.2",
                                   "@sigstore/tuf": "^2.1.0",
                                   "abbrev": "^2.0.0",
                                   "archy": "~1.0.0",
                                   "cacache": "^18.0.0",
                                   "chalk": "^5.3.0",
                              -    "ci-info": "^3.8.0",
                              +    "ci-info": "^3.9.0",
                                   "cli-columns": "^4.0.0",
                                   "cli-table3": "^0.6.3",
                                   "columnify": "^1.6.0",
                              @@ -78,30 +78,30 @@
                                   "is-cidr": "^4.0.2",
                                   "json-parse-even-better-errors": "^3.0.0",
                                   "libnpmaccess": "^8.0.1",
                              -    "libnpmdiff": "^6.0.2",
                              -    "libnpmexec": "^7.0.2",
                              -    "libnpmfund": "^5.0.0",
                              +    "libnpmdiff": "^6.0.3",
                              +    "libnpmexec": "^7.0.3",
                              +    "libnpmfund": "^5.0.1",
                                   "libnpmhook": "^10.0.0",
                                   "libnpmorg": "^6.0.1",
                              -    "libnpmpack": "^6.0.2",
                              +    "libnpmpack": "^6.0.3",
                                   "libnpmpublish": "^9.0.1",
                                   "libnpmsearch": "^7.0.0",
                                   "libnpmteam": "^6.0.0",
                              -    "libnpmversion": "^5.0.0",
                              +    "libnpmversion": "^5.0.1",
                                   "make-fetch-happen": "^13.0.0",
                                   "minimatch": "^9.0.3",
                                   "minipass": "^7.0.4",
                                   "minipass-pipeline": "^1.2.4",
                                   "ms": "^2.1.2",
                              -    "node-gyp": "^9.4.0",
                              +    "node-gyp": "^10.0.1",
                                   "nopt": "^7.2.0",
                                   "normalize-package-data": "^6.0.0",
                                   "npm-audit-report": "^5.0.0",
                              -    "npm-install-checks": "^6.2.0",
                              +    "npm-install-checks": "^6.3.0",
                                   "npm-package-arg": "^11.0.1",
                                   "npm-pick-manifest": "^9.0.0",
                                   "npm-profile": "^9.0.0",
                              -    "npm-registry-fetch": "^16.0.0",
                              +    "npm-registry-fetch": "^16.1.0",
                                   "npm-user-validate": "^2.0.0",
                                   "npmlog": "^7.0.1",
                                   "p-map": "^4.0.0",
                              diff --git a/deps/npm/tap-snapshots/test/lib/commands/view.js.test.cjs b/deps/npm/tap-snapshots/test/lib/commands/view.js.test.cjs
                              index d5b7a3b4a79068..5248d439afad95 100644
                              --- a/deps/npm/tap-snapshots/test/lib/commands/view.js.test.cjs
                              +++ b/deps/npm/tap-snapshots/test/lib/commands/view.js.test.cjs
                              @@ -315,6 +315,10 @@ maintainers[0].name = 'claudia'
                               maintainers[1].name = 'isaacs'
                               `
                               
                              +exports[`test/lib/commands/view.js TAP specific field names fields with empty values > must match snapshot 1`] = `
                              +
                              +`
                              +
                               exports[`test/lib/commands/view.js TAP specific field names maintainers with email > must match snapshot 1`] = `
                               maintainers = [
                                 { name: 'claudia', email: 'c@yellow.com', twitter: 'cyellow' },
                              diff --git a/deps/npm/tap-snapshots/test/lib/utils/error-message.js.test.cjs b/deps/npm/tap-snapshots/test/lib/utils/error-message.js.test.cjs
                              index 1cd3d4cf1ac567..fe581fb6beb291 100644
                              --- a/deps/npm/tap-snapshots/test/lib/utils/error-message.js.test.cjs
                              +++ b/deps/npm/tap-snapshots/test/lib/utils/error-message.js.test.cjs
                              @@ -1137,7 +1137,7 @@ Object {
                                   Array [
                                     "",
                                     String(
                              -        To correct this please trying logging in again with:
                              +        To correct this please try logging in again with:
                                           npm login
                                     ),
                                   ],
                              diff --git a/deps/npm/test/bin/windows-shims.js b/deps/npm/test/bin/windows-shims.js
                              index 5e8a75842293d7..5fa6ff142b7377 100644
                              --- a/deps/npm/test/bin/windows-shims.js
                              +++ b/deps/npm/test/bin/windows-shims.js
                              @@ -1,20 +1,23 @@
                               const t = require('tap')
                               const { spawnSync } = require('child_process')
                               const { resolve, join, extname, basename, sep } = require('path')
                              -const { copyFileSync, readFileSync, chmodSync, readdirSync, rmSync } = require('fs')
                              +const { copyFileSync, readFileSync, chmodSync, readdirSync, rmSync, statSync } = require('fs')
                               const Diff = require('diff')
                               const { sync: which } = require('which')
                               const { version } = require('../../package.json')
                               
                              -const ROOT = resolve(__dirname, '../..')
                              -const BIN = join(ROOT, 'bin')
                              -const SHIMS = readdirSync(BIN).reduce((acc, shim) => {
                              -  if (extname(shim) !== '.js') {
                              -    acc[shim] = readFileSync(join(BIN, shim), 'utf-8')
                              +const readNonJsFiles = (dir) => readdirSync(dir).reduce((acc, shim) => {
                              +  const p = join(dir, shim)
                              +  if (extname(p) !== '.js' && !statSync(p).isDirectory()) {
                              +    acc[shim] = readFileSync(p, 'utf-8')
                                 }
                                 return acc
                               }, {})
                               
                              +const ROOT = resolve(__dirname, '../..')
                              +const BIN = join(ROOT, 'bin')
                              +const SHIMS = readNonJsFiles(BIN)
                              +const NODE_GYP = readNonJsFiles(join(BIN, 'node-gyp-bin'))
                               const SHIM_EXTS = [...new Set(Object.keys(SHIMS).map(p => extname(p)))]
                               
                               // windows requires each segment of a command path to be quoted when using shell: true
                              @@ -63,6 +66,21 @@ t.test('shim contents', t => {
                                 })
                               })
                               
                              +t.test('node-gyp', t => {
                              +  // these files need to exist to avoid breaking yarn 1.x
                              +
                              +  for (const [key, file] of Object.entries(NODE_GYP)) {
                              +    t.match(file, /npm_config_node_gyp/, `${key} contains env var`)
                              +    t.match(
                              +      file,
                              +      /[\\/]\.\.[\\/]\.\.[\\/]node_modules[\\/]node-gyp[\\/]bin[\\/]node-gyp\.js/,
                              +      `${key} contains path`
                              +    )
                              +  }
                              +
                              +  t.end()
                              +})
                              +
                               t.test('run shims', t => {
                                 const path = t.testdir({
                                   ...SHIMS,
                              diff --git a/deps/npm/test/lib/commands/audit.js b/deps/npm/test/lib/commands/audit.js
                              index 25ced6655e654a..623c7b6485159f 100644
                              --- a/deps/npm/test/lib/commands/audit.js
                              +++ b/deps/npm/test/lib/commands/audit.js
                              @@ -1393,7 +1393,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              @@ -1424,7 +1424,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              @@ -1766,7 +1766,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              @@ -1787,7 +1787,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              @@ -1815,7 +1815,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              @@ -1844,7 +1844,7 @@ t.test('audit signatures', async t => {
                               
                                   await t.rejects(
                                     npm.exec('audit', ['signatures']),
                              -      /found no dependencies to audit that where installed from a supported registry/
                              +      /found no dependencies to audit that were installed from a supported registry/
                                   )
                                 })
                               
                              diff --git a/deps/npm/test/lib/commands/link.js b/deps/npm/test/lib/commands/link.js
                              index 65792fd141acba..85bada28d67b1e 100644
                              --- a/deps/npm/test/lib/commands/link.js
                              +++ b/deps/npm/test/lib/commands/link.js
                              @@ -369,6 +369,40 @@ t.test('link pkg already in global space when prefix is a symlink', async t => {
                                 t.matchSnapshot(await printLinks(), 'should create a local symlink to global pkg')
                               })
                               
                              +t.test('should not save link to package file', async t => {
                              +  const { link, prefix } = await mockLink(t, {
                              +    globalPrefixDir: {
                              +      node_modules: {
                              +        '@myscope': {
                              +          linked: t.fixture('symlink', '../../../other/scoped-linked'),
                              +        },
                              +      },
                              +    },
                              +    otherDirs: {
                              +      'scoped-linked': {
                              +        'package.json': JSON.stringify({
                              +          name: '@myscope/linked',
                              +          version: '1.0.0',
                              +        }),
                              +      },
                              +    },
                              +    prefixDir: {
                              +      'package.json': JSON.stringify({
                              +        name: 'my-project',
                              +        version: '1.0.0',
                              +      }),
                              +    },
                              +    config: { save: false },
                              +  })
                              +
                              +  await link.exec(['@myscope/linked'])
                              +  t.match(
                              +    require(resolve(prefix, 'package.json')).dependencies,
                              +    undefined,
                              +    'should not save to package.json upon linking'
                              +  )
                              +})
                              +
                               t.test('should not prune dependencies when linking packages', async t => {
                                 const { link, prefix } = await mockLink(t, {
                                   globalPrefixDir: {
                              diff --git a/deps/npm/test/lib/commands/logout.js b/deps/npm/test/lib/commands/logout.js
                              index 4ff21665f30354..881003729ab4a1 100644
                              --- a/deps/npm/test/lib/commands/logout.js
                              +++ b/deps/npm/test/lib/commands/logout.js
                              @@ -1,170 +1,154 @@
                               const t = require('tap')
                               const fs = require('fs/promises')
                              -const npmFetch = require('npm-registry-fetch')
                              -const mockNpm = require('../../fixtures/mock-npm')
                              +const { load: loadMockNpm } = require('../../fixtures/mock-npm.js')
                              +const MockRegistry = require('@npmcli/mock-registry')
                               const { join } = require('path')
                               
                              -const mockLogout = async (t, { userRc = [], ...npmOpts } = {}) => {
                              -  let result = null
                              -
                              -  const mock = await mockNpm(t, {
                              -    command: 'logout',
                              -    mocks: {
                              -      // XXX: refactor to use mock registry
                              -      'npm-registry-fetch': Object.assign(async (url, opts) => {
                              -        result = { url, opts }
                              -      }, npmFetch),
                              -    },
                              -    ...npmOpts,
                              +t.test('token logout - user config', async t => {
                              +  const { npm, home, logs } = await loadMockNpm(t, {
                                   homeDir: {
                              -      '.npmrc': userRc.join('\n'),
                              +      '.npmrc': [
                              +        '//registry.npmjs.org/:_authToken=@foo/',
                              +        'other-config=true',
                              +      ].join('\n'),
                                   },
                                 })
                               
                              -  return {
                              -    ...mock,
                              -    result: () => result,
                              -    // get only the message portion of the verbose log from the command
                              -    logMsg: () => mock.logs.verbose.find(l => l[0] === 'logout')[1],
                              -    userRc: () => fs.readFile(join(mock.home, '.npmrc'), 'utf-8').then(r => r.trim()),
                              -  }
                              -}
                              -
                              -t.test('token logout', async t => {
                              -  const { logout, logMsg, result, userRc } = await mockLogout(t, {
                              -    userRc: [
                              -      '//registry.npmjs.org/:_authToken=@foo/',
                              -      'other-config=true',
                              -    ],
                              -  })
                              -
                              -  await logout.exec([])
                              -
                              +  const mockRegistry = new MockRegistry({ tap: t, registry: 'https://registry.npmjs.org/' })
                              +  mockRegistry.logout('@foo/')
                              +  await npm.exec('logout', [])
                                 t.equal(
                              -    logMsg(),
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                                   'clearing token for https://registry.npmjs.org/',
                                   'should log message with correct registry'
                                 )
                              +  const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
                              +  t.equal(userRc.trim(), 'other-config=true')
                              +})
                               
                              -  t.match(
                              -    result(),
                              -    {
                              -      url: '/-/user/token/%40foo%2F',
                              -      opts: {
                              -        registry: 'https://registry.npmjs.org/',
                              -        scope: '',
                              -        '//registry.npmjs.org/:_authToken': '@foo/',
                              -        method: 'DELETE',
                              -        ignoreBody: true,
                              -      },
                              +t.test('token scoped logout - user config', async t => {
                              +  const { npm, home, logs } = await loadMockNpm(t, {
                              +    config: {
                              +      scope: '@myscope',
                                   },
                              -    'should call npm-registry-fetch with expected values'
                              -  )
                              -
                              -  t.equal(await userRc(), 'other-config=true')
                              -})
                              +    homeDir: {
                              +      '.npmrc': [
                              +        '//diff-registry.npmjs.com/:_authToken=@bar/',
                              +        '//registry.npmjs.org/:_authToken=@foo/',
                              +        '@myscope:registry=https://diff-registry.npmjs.com/',
                               
                              -t.test('token scoped logout', async t => {
                              -  const { logout, logMsg, result, userRc } = await mockLogout(t, {
                              -    config: { scope: '@myscope' },
                              -    userRc: [
                              -      '//diff-registry.npmjs.com/:_authToken=@bar/',
                              -      '//registry.npmjs.org/:_authToken=@foo/',
                              -      '@myscope:registry=https://diff-registry.npmjs.com/',
                              -    ],
                              +      ].join('\n'),
                              +    },
                                 })
                               
                              -  await logout.exec([])
                              -
                              +  const mockRegistry = new MockRegistry({ tap: t, registry: 'https://diff-registry.npmjs.com/' })
                              +  mockRegistry.logout('@bar/')
                              +  await npm.exec('logout', [])
                                 t.equal(
                              -    logMsg(),
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                                   'clearing token for https://diff-registry.npmjs.com/',
                                   'should log message with correct registry'
                                 )
                               
                              -  t.match(
                              -    result(),
                              -    {
                              -      url: '/-/user/token/%40bar%2F',
                              -      opts: {
                              -        registry: 'https://registry.npmjs.org/',
                              -        '@myscope:registry': 'https://diff-registry.npmjs.com/',
                              -        scope: '@myscope',
                              -        '//registry.npmjs.org/:_authToken': '@foo/', // <- removed by npm-registry-fetch
                              -        '//diff-registry.npmjs.com/:_authToken': '@bar/',
                              -        method: 'DELETE',
                              -        ignoreBody: true,
                              -      },
                              -    },
                              -    'should call npm-registry-fetch with expected values'
                              -  )
                              -
                              -  t.equal(await userRc(), '//registry.npmjs.org/:_authToken=@foo/')
                              +  const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
                              +  t.equal(userRc.trim(), '//registry.npmjs.org/:_authToken=@foo/')
                               })
                               
                              -t.test('user/pass logout', async t => {
                              -  const { logout, logMsg, userRc } = await mockLogout(t, {
                              -    userRc: [
                              -      '//registry.npmjs.org/:username=foo',
                              -      '//registry.npmjs.org/:_password=bar',
                              -      'other-config=true',
                              -    ],
                              +t.test('user/pass logout - user config', async t => {
                              +  const { npm, home, logs } = await loadMockNpm(t, {
                              +    homeDir: {
                              +      '.npmrc': [
                              +        '//registry.npmjs.org/:username=foo',
                              +        '//registry.npmjs.org/:_password=bar',
                              +        'other-config=true',
                              +      ].join('\n'),
                              +    },
                                 })
                               
                              -  await logout.exec([])
                              -
                              +  await npm.exec('logout', [])
                                 t.equal(
                              -    logMsg(),
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                                   'clearing user credentials for https://registry.npmjs.org/',
                                   'should log message with correct registry'
                                 )
                               
                              -  t.equal(await userRc(), 'other-config=true')
                              +  const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
                              +  t.equal(userRc.trim(), 'other-config=true')
                               })
                               
                               t.test('missing credentials', async t => {
                              -  const { logout } = await mockLogout(t)
                              +  const { npm } = await loadMockNpm(t)
                               
                                 await t.rejects(
                              -    logout.exec([]),
                              +    npm.exec('logout', []),
                                   {
                                     code: 'ENEEDAUTH',
                                     message: /not logged in to https:\/\/registry.npmjs.org\/, so can't log out!/,
                                   },
                              -    'should throw with expected error code'
                              +    'should reject with expected error code'
                                 )
                               })
                               
                               t.test('ignore invalid scoped registry config', async t => {
                              -  const { logout, logMsg, result, userRc } = await mockLogout(t, {
                              +  const { npm, home, logs } = await loadMockNpm(t, {
                                   config: { scope: '@myscope' },
                              -    userRc: [
                              -      '//registry.npmjs.org/:_authToken=@foo/',
                              -      'other-config=true',
                              -    ],
                              +    homeDir: {
                              +      '.npmrc': [
                              +        '//registry.npmjs.org/:_authToken=@foo/',
                              +        'other-config=true',
                              +
                              +      ].join('\n'),
                              +    },
                                 })
                               
                              -  await logout.exec([])
                              +  const mockRegistry = new MockRegistry({ tap: t, registry: 'https://registry.npmjs.org/' })
                              +  mockRegistry.logout('@foo/')
                              +  await npm.exec('logout', [])
                               
                                 t.equal(
                              -    logMsg(),
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                                   'clearing token for https://registry.npmjs.org/',
                                   'should log message with correct registry'
                                 )
                              +  const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
                              +  t.equal(userRc.trim(), 'other-config=true')
                              +})
                               
                              -  t.match(
                              -    result(),
                              -    {
                              -      url: '/-/user/token/%40foo%2F',
                              -      opts: {
                              -        '//registry.npmjs.org/:_authToken': '@foo/',
                              -        registry: 'https://registry.npmjs.org/',
                              -        method: 'DELETE',
                              -        ignoreBody: true,
                              -      },
                              +t.test('token logout - project config', async t => {
                              +  const { npm, home, logs, prefix } = await loadMockNpm(t, {
                              +    homeDir: {
                              +      '.npmrc': [
                              +        '//registry.npmjs.org/:_authToken=@foo/',
                              +        'other-config=true',
                              +      ].join('\n'),
                                   },
                              -    'should call npm-registry-fetch with expected values'
                              -  )
                              +    prefixDir: {
                              +      '.npmrc': [
                              +        '//registry.npmjs.org/:_authToken=@bar/',
                              +        'other-config=true',
                              +      ].join('\n'),
                              +    },
                              +  })
                               
                              -  t.equal(await userRc(), 'other-config=true')
                              +  const mockRegistry = new MockRegistry({ tap: t, registry: 'https://registry.npmjs.org/' })
                              +  mockRegistry.logout('@bar/')
                              +  await npm.exec('logout', [])
                              +
                              +  t.equal(
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                              +    'clearing token for https://registry.npmjs.org/',
                              +    'should log message with correct registry'
                              +  )
                              +  const userRc = await fs.readFile(join(home, '.npmrc'), 'utf-8')
                              +  t.equal(userRc.trim(), [
                              +    '//registry.npmjs.org/:_authToken=@foo/',
                              +    'other-config=true',
                              +  ].join('\n'), 'leaves user config alone')
                              +  t.equal(
                              +    logs.verbose.find(l => l[0] === 'logout')[1],
                              +    'clearing token for https://registry.npmjs.org/',
                              +    'should log message with correct registry'
                              +  )
                              +  const projectRc = await fs.readFile(join(prefix, '.npmrc'), 'utf-8')
                              +  t.equal(projectRc.trim(), 'other-config=true', 'removes project config')
                               })
                              diff --git a/deps/npm/test/lib/commands/pkg.js b/deps/npm/test/lib/commands/pkg.js
                              index e915ef942410f5..f3401bde5226a8 100644
                              --- a/deps/npm/test/lib/commands/pkg.js
                              +++ b/deps/npm/test/lib/commands/pkg.js
                              @@ -83,6 +83,50 @@ t.test('get single arg', async t => {
                                 )
                               })
                               
                              +t.test('get multiple arg', async t => {
                              +  const { pkg, OUTPUT } = await mockNpm(t, {
                              +    prefixDir: {
                              +      'package.json': JSON.stringify({
                              +        name: 'foo',
                              +        version: '1.1.1',
                              +      }),
                              +    },
                              +  })
                              +
                              +  await pkg('get', 'name', 'version')
                              +
                              +  t.strictSame(
                              +    JSON.parse(OUTPUT()),
                              +    {
                              +      name: 'foo',
                              +      version: '1.1.1',
                              +    },
                              +    'should print retrieved package.json field'
                              +  )
                              +})
                              +
                              +t.test('get multiple arg with empty value', async t => {
                              +  const { pkg, OUTPUT } = await mockNpm(t, {
                              +    prefixDir: {
                              +      'package.json': JSON.stringify({
                              +        name: 'foo',
                              +        author: '',
                              +      }),
                              +    },
                              +  })
                              +
                              +  await pkg('get', 'name', 'author')
                              +
                              +  t.strictSame(
                              +    JSON.parse(OUTPUT()),
                              +    {
                              +      name: 'foo',
                              +      author: '',
                              +    },
                              +    'should print retrieved package.json field regardless of empty value'
                              +  )
                              +})
                              +
                               t.test('get nested arg', async t => {
                                 const { pkg, OUTPUT } = await mockNpm(t, {
                                   prefixDir: {
                              diff --git a/deps/npm/test/lib/commands/view.js b/deps/npm/test/lib/commands/view.js
                              index ca07ef9eec2ff6..a99c8d6242212c 100644
                              --- a/deps/npm/test/lib/commands/view.js
                              +++ b/deps/npm/test/lib/commands/view.js
                              @@ -101,6 +101,7 @@ const packument = (nv, opts) => {
                                       email: 'foo@yellow.com',
                                       twitter: 'foo',
                                     },
                              +      empty: '',
                                     readme: 'a very useful readme',
                                     versions: {
                                       '1.0.0': {
                              @@ -425,6 +426,11 @@ t.test('specific field names', async t => {
                                   await view.exec(['yellow@1.x.x', 'maintainers.name'])
                                   t.matchSnapshot(outputs.join('\n'))
                                 })
                              +
                              +  t.test('fields with empty values', async t => {
                              +    await view.exec(['yellow', 'empty'])
                              +    t.matchSnapshot(outputs.join('\n'))
                              +  })
                               })
                               
                               t.test('throw error if global mode', async t => {
                              
                              From a2206640f366cc145b17a2ece66d36bfa75720ee Mon Sep 17 00:00:00 2001
                              From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= 
                              Date: Sun, 12 Nov 2023 08:52:51 +0100
                              Subject: [PATCH 232/232] 2023-11-22, Version 20.10.0 'Iron' (LTS)
                              MIME-Version: 1.0
                              Content-Type: text/plain; charset=UTF-8
                              Content-Transfer-Encoding: 8bit
                              
                              Notable changes:
                              
                              deps:
                                * (SEMVER-MINOR) update uvwasi to 0.0.19 (Node.js GitHub Bot) https://github.com/nodejs/node/pull/49908
                              doc:
                                * add H4ad to collaborators (Vinícius Lourenço) https://github.com/nodejs/node/pull/50217
                              esm:
                                * (SEMVER-MINOR) detect ESM syntax in ambiguous JavaScript (Geoffrey Booth) https://github.com/nodejs/node/pull/50096
                                * use import attributes instead of import assertions (Antoine du Hamel) https://github.com/nodejs/node/pull/50140
                                * --experimental-default-type flag to flip module defaults (Geoffrey Booth) https://github.com/nodejs/node/pull/49869
                              fs:
                                * (SEMVER-MINOR) add flush option to appendFile() functions (Colin Ihrig) https://github.com/nodejs/node/pull/50095
                                * add flush option to writeFile() functions (Colin Ihrig) https://github.com/nodejs/node/pull/50009
                              lib:
                                * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) https://github.com/nodejs/node/pull/49830
                              stream:
                                * (SEMVER-MINOR) allow pass stream class to `stream.compose` (Alex Yang) https://github.com/nodejs/node/pull/50187
                                * call helper function from push and unshift (Raz Luvaton) https://github.com/nodejs/node/pull/50173
                                * optimize Writable (Robert Nagy) https://github.com/nodejs/node/pull/50012
                              test_runner, cli:
                                * (SEMVER-MINOR) add --test-concurrency flag (Colin Ihrig) https://github.com/nodejs/node/pull/49996
                              vm:
                                * (SEMVER-MINOR) use import attributes instead of import assertions (Antoine du Hamel) https://github.com/nodejs/node/pull/50141
                                * use default HDO when importModuleDynamically is not set (Joyee Cheung) https://github.com/nodejs/node/pull/49950
                              wasi:
                              
                              PR-URL: https://github.com/nodejs/node/pull/50682
                              ---
                               CHANGELOG.md                    |   3 +-
                               doc/api/cli.md                  |   8 +-
                               doc/api/errors.md               |   2 +-
                               doc/api/esm.md                  |   4 +-
                               doc/api/fs.md                   |  18 +-
                               doc/api/globals.md              |   2 +-
                               doc/api/module.md               |   2 +-
                               doc/api/n-api.md                |   2 +-
                               doc/api/stream.md               |   2 +-
                               doc/api/vm.md                   |   2 +-
                               doc/changelogs/CHANGELOG_V20.md | 325 ++++++++++++++++++++++++++++++++
                               src/node_version.h              |   6 +-
                               12 files changed, 351 insertions(+), 25 deletions(-)
                              
                              diff --git a/CHANGELOG.md b/CHANGELOG.md
                              index 4d411d570e18c9..b71f71e187aa1d 100644
                              --- a/CHANGELOG.md
                              +++ b/CHANGELOG.md
                              @@ -35,7 +35,8 @@ release.
                               

-20.9.0
+20.10.0
+20.9.0
20.8.1
20.8.0
20.7.0
diff --git a/doc/api/cli.md b/doc/api/cli.md index 11ff77dd8745fa..73748553a4f65f 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -585,7 +585,7 @@ and `"` are usable. > Stability: 1.0 - Early development @@ -615,7 +615,7 @@ JavaScript. > Stability: 1.0 - Early development @@ -787,7 +787,7 @@ Enable experimental WebAssembly module support. ### `--experimental-websocket` Enable experimental [`WebSocket`][] support. @@ -1655,7 +1655,7 @@ for more details. ### `--test-concurrency` The maximum number of test files that the test runner CLI will execute diff --git a/doc/api/errors.md b/doc/api/errors.md index a98f4d527e8659..e57960e7893c4a 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -1791,7 +1791,7 @@ An import attribute is not supported by this version of Node.js. ### `ERR_IMPORT_ATTRIBUTE_UNSUPPORTED` An import attribute is not supported by this version of Node.js. diff --git a/doc/api/esm.md b/doc/api/esm.md index 6f02f654e00caf..b8579a58ed2bd5 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -7,7 +7,7 @@ diff --git a/doc/api/fs.md b/doc/api/fs.md index 7a544a59593e08..64caa39cbea40b 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -180,7 +180,7 @@ longer be used. @@ -884,7 +884,7 @@ the error raised if the file is not accessible. @@ -1737,7 +1737,7 @@ All the [caveats][] for `fs.watch()` also apply to `fsPromises.watch()`. > Stability: 1 - Experimental. diff --git a/doc/api/module.md b/doc/api/module.md index 857c02142b199f..09196d952079f8 100644 --- a/doc/api/module.md +++ b/doc/api/module.md @@ -458,7 +458,7 @@ register('./path-to-my-hooks.js', { > Stability: 1 - Experimental diff --git a/doc/api/stream.md b/doc/api/stream.md index 50b83d1df72268..f13367a4bf8df1 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -2850,7 +2850,7 @@ const server = http.createServer((req, res) => {